Orderapp/Api/FormProperties.php000064400000007360147600120010011523 0ustar00form = $form; } /** * Get Form formatted inputs * * @param string[] $with * * @return array */ public function inputs($with = ['admin_label', 'raw']) { return FormFieldsParser::getEntryInputs($this->form, $with); } /** * Get Form Input labels * * @return array */ public function labels() { $inputs = $this->inputs(); return FormFieldsParser::getAdminLabels($this->form, $inputs); } /** * Get Form Fields * * @return array */ public function fields() { return json_decode($this->form->form_fields, true); } /** * Get Form Settings * * @return array */ public function settings() { return (array) Helper::getFormMeta($this->form->id, 'formSettings', []); } /** * Get Email Notifications as an array * * @return array */ public function emailNotifications() { $emailNotifications = wpFluent() ->table('fluentform_form_meta') ->where('form_id', $this->form->id) ->where('meta_key', 'notifications') ->get(); $formattedNotifications = []; foreach ($emailNotifications as $notification) { $value = \json_decode($notification->value, true); $formattedNotifications[] = [ 'id' => $notification->id, 'settings' => $value, ]; } return $formattedNotifications; } /** * Get Form metas * * @param $metaName * @param false $default * * @return mixed|string */ public function meta($metaName, $default = false) { return Helper::getFormMeta($this->form->id, $metaName, $default); } /** * Get form renerable pass settings as an array * * @return array */ public function renderable() { $isRenderable = [ 'status' => true, 'message' => '', ]; /* This filter is deprecated and will be removed soon */ $isRenderable = apply_filters('fluentform_is_form_renderable', $isRenderable, $this->form); return apply_filters('fluentform/is_form_renderable', $isRenderable, $this->form); } public function conversionRate() { if (!$this->form->total_Submissions) { return 0; } if (!$this->form->total_views) { return 0; } return ceil(($this->form->total_Submissions / $this->form->total_views) * 100); } public function submissionCount() { return wpFluent() ->table('fluentform_submissions') ->where('form_id', $this->form->id) ->where('status', '!=', 'trashed') ->count(); } public function viewCount() { $hasCount = wpFluent() ->table('fluentform_form_meta') ->where('meta_key', '_total_views') ->where('form_id', $this->form->id) ->first(); if ($hasCount) { return intval($hasCount->value); } return 0; } public function unreadCount() { return wpFluent()->table('fluentform_submissions') ->where('status', 'unread') ->where('form_id', $this->form->id) ->count(); } public function __get($name) { if (property_exists($this->form, $name)) { return $this->form->{$name}; } return false; } } app/Api/Form.php000064400000014064147600120010007445 0ustar00 '', 'status' => 'all', 'sort_column' => 'id', 'filter_by' => 'all', 'date_range' => [], 'sort_by' => 'DESC', 'per_page' => 10, 'page' => 1, ]; $atts = wp_parse_args($atts, $defaultAtts); $perPage = (int) ArrayHelper::get($atts, 'per_page', 10); $search = sanitize_text_field(ArrayHelper::get($atts, 'search', '')); $status = sanitize_text_field(ArrayHelper::get($atts, 'status', 'all')); $filter_by = sanitize_text_field(ArrayHelper::get($atts, 'filter_by', 'all')); $dateRange = ArrayHelper::get($atts, 'date_range', []); $is_filter_by_conv_or_step_form = $filter_by && ('conv_form' == $filter_by || 'step_form' == $filter_by); $shortColumn = sanitize_sql_orderby(ArrayHelper::get($atts, 'sort_column', 'id')); $sortBy = Helper::sanitizeOrderValue(ArrayHelper::get($atts, 'sort_by', 'DESC')); $query = \FluentForm\App\Models\Form::orderBy($shortColumn, $sortBy)->getQuery(); if ($status && 'all' != $status) { $query->where('status', $status); } if ($allowIds = FormManagerService::getUserAllowedForms()) { $query->whereIn('id', $allowIds); } if ($filter_by && !$is_filter_by_conv_or_step_form) { switch ($filter_by) { case 'published': $query->where('status', 'published'); break; case 'unpublished': $query->where('status', 'unpublished'); break; case 'post': $query->where('type', 'post'); break; case 'is_payment': $query->where('has_payment', 1); break; default: break; } } if ($dateRange) { $query->where('created_at', '>=', sanitize_text_field($dateRange[0] . ' 00:00:01')); $query->where('created_at', '<=', sanitize_text_field($dateRange[1] . ' 23:59:59')); } if ($search) { $query->where(function ($q) use ($search) { $q->where('id', 'LIKE', '%' . $search . '%'); $q->orWhere('title', 'LIKE', '%' . $search . '%'); }); } $currentPage = intval(ArrayHelper::get($atts, 'page', 1)); $total = $query->count(); $skip = $perPage * ($currentPage - 1); if ($is_filter_by_conv_or_step_form) { $data = (array) $query->select('*')->get(); } else { $data = (array) $query->select('*')->limit($perPage)->offset($skip)->get(); } $conversationOrStepForms = []; foreach ($data as $form) { $is_conv_form = Helper::isConversionForm($form->id); // skip form if filter by conversation form but form is not conversational form if ('conv_form' == $filter_by && !$is_conv_form) { continue; } // skip form if filter by step form but form is not step form if ('step_form' == $filter_by && !Helper::isMultiStepForm($form->id)) { continue; } $formInstance = $this->form($form); $form->preview_url = Helper::getPreviewUrl($form->id, 'classic'); $form->edit_url = Helper::getFormAdminPermalink('editor', $form); $form->settings_url = Helper::getFormSettingsUrl($form); $form->entries_url = Helper::getFormAdminPermalink('entries', $form); $form->analytics_url = Helper::getFormAdminPermalink('analytics', $form); $form->total_views = Helper::getFormMeta($form->id, '_total_views', 0); $form->total_Submissions = $formInstance->submissionCount(); $form->unread_count = $formInstance->unreadCount(); $form->conversion = $formInstance->conversionRate(); if ($is_conv_form) { $form->conversion_preview = Helper::getPreviewUrl($form->id, 'conversational'); } if (!$withFields) { unset($form->form_fields); } if ($is_filter_by_conv_or_step_form) { $conversationOrStepForms[] = $form; } } if ($is_filter_by_conv_or_step_form) { $total = count($conversationOrStepForms); $conversationOrStepForms = array_slice($conversationOrStepForms, $skip, $perPage); $dataCount = count($conversationOrStepForms); } else { $dataCount = count($data); } $from = $dataCount > 0 ? ($currentPage - 1) * $perPage + 1 : null; $to = $dataCount > 0 ? $from + $dataCount - 1 : null; $lastPage = (int) ceil($total / $perPage); return [ 'current_page' => $currentPage, 'per_page' => $perPage, 'from' => $from, 'to' => $to, 'last_page' => $lastPage, 'total' => $total, 'data' => $is_filter_by_conv_or_step_form ? $conversationOrStepForms : $data, ]; } public function find($formId) { return \FluentForm\App\Models\Form::where('id', $formId)->first(); } /** * Get Form Properties instance * * @param int|object $form * * @return \FluentForm\App\Api\FormProperties */ public function form($form) { if (is_numeric($form)) { $form = $this->find($form); } return (new FormProperties($form)); } public function entryInstance($form) { if (is_numeric($form)) { $form = $this->find($form); } return (new Entry($form)); } } app/Api/Submission.php000064400000017241147600120010010675 0ustar00 10, 'page' => 1, 'search' => '', 'form_ids' => [], 'sort_type' => 'DESC', 'entry_type' => 'all', 'user_id' => false, ]); $offset = $args['per_page'] * ($args['page'] - 1); $entryQuery = \FluentForm\App\Models\Submission::orderBy('id', \FluentForm\App\Helpers\Helper::sanitizeOrderValue($args['sort_type'])) ->limit($args['per_page']) ->offset($offset); $type = sanitize_text_field($args['entry_type']); if ($type && 'all' != $type) { $entryQuery->where('status', $type); } if ($args['form_ids'] && is_array($args['form_ids'])) { $entryQuery->whereIn('form_id', $args['form_ids']); } if ($searchString = sanitize_text_field($args['search'])) { $entryQuery->where(function ($q) use ($searchString) { $q->where('id', 'LIKE', "%{$searchString}%") ->orWhere('response', 'LIKE', "%{$searchString}%") ->orWhere('status', 'LIKE', "%{$searchString}%") ->orWhere('created_at', 'LIKE', "%{$searchString}%"); }); } if ($args['user_id']) { $entryQuery->where('user_id', (int) $args['user_id']); } $count = $entryQuery->count(); $data = $entryQuery->get(); $dataCount = count($data); $from = $dataCount > 0 ? ($args['page'] - 1) * $args['per_page'] + 1 : null; $to = $dataCount > 0 ? $from + $dataCount - 1 : null; $lastPage = (int) ceil($count / $args['per_page']); foreach ($data as $datum) { $datum->response = json_decode($datum->response, true); } return [ 'current_page' => $args['page'], 'per_page' => $args['per_page'], 'from' => $from, 'to' => $to, 'last_page' => $lastPage, 'total' => $count, 'data' => $data, ]; } public function find($submissionId) { $submission = \FluentForm\App\Models\Submission::find($submissionId); $submission->response = json_decode($submission->response); return $submission; } public function transactions($columnValue, $column = 'submission_id') { if (!defined('FLUENTFORMPRO')) { return []; } return wpFluent()->table('fluentform_transactions') ->where($column, $columnValue) ->get(); } public function transaction($columnValue, $column = 'id') { if (!defined('FLUENTFORMPRO')) { return []; } return wpFluent()->table('fluentform_transactions') ->where($column, $columnValue) ->first(); } public function subscriptions($submissionId, $withTransactions = false) { if (!defined('FLUENTFORMPRO')) { return []; } $subscriptions = wpFluent()->table('fluentform_subscriptions') ->where('submission_id', $submissionId) ->get(); if ($withTransactions) { foreach ($subscriptions as $subscription) { $subscription->transactions = $this->transactionsBySubscriptionId($subscription->id); } } return $subscriptions; } public function getSubscription($subscriptionId, $withTransactions = false) { if (!defined('FLUENTFORMPRO')) { return []; } $subscription = wpFluent()->table('fluentform_subscriptions') ->where('id', $subscriptionId) ->first(); if (!$subscription) { return false; } if ($withTransactions) { $subscription->transactions = $this->transactionsBySubscriptionId($subscription->id); } return $subscription; } public function transactionsByUserId($userId = false, $args = []) { if (!defined('FLUENTFORMPRO')) { return []; } if (!$userId) { $userId = get_current_user_id(); } if (!$userId) { return []; } $user = get_user_by('ID', $userId); if (!$user) { return []; } $args = wp_parse_args($args, [ 'transaction_types' => [], 'statuses' => [], 'grouped' => false, ]); $query = wpFluent()->table('fluentform_transactions') ->orderBy('id', 'DESC') ->where(function ($q) use ($user) { $q->where('user_id', $user->ID) ->orderBy('id', 'DESC') ->orWhere('payer_email', $user->user_email); }); if (!empty($args['transaction_types'])) { $query->whereIn('transaction_type', $args['transaction_types']); } if (!empty($args['statuses'])) { $query->whereIn('status', $args['statuses']); } if (!empty($args['grouped'])) { $query->groupBy('submission_id'); } return $query->get(); } public function transactionsBySubscriptionId($subscriptionId) { if (!defined('FLUENTFORMPRO')) { return []; } return wpFluent()->table('fluentform_transactions') ->where('subscription_id', $subscriptionId) ->orderBy('id', 'DESC') ->get(); } public function transactionsBySubmissionId($submissionId) { if (!defined('FLUENTFORMPRO')) { return []; } return wpFluent()->table('fluentform_transactions') ->where('submission_id', $submissionId) ->get(); } public function subscriptionsByUserId($userId = false, $args = []) { if (!defined('FLUENTFORMPRO')) { return []; } if (!$userId) { $userId = get_current_user_id(); } if (!$userId) { return []; } $user = get_user_by('ID', $userId); if (!$user) { return []; } $args = wp_parse_args($args, [ 'statuses' => [], 'form_title' => false, ]); $submissions = \FluentForm\App\Models\Submission::select(['id', 'currency']) ->where('user_id', $userId) ->where('payment_type', 'subscription') ->get(); if (!$submissions) { return []; } $submissionIds = []; $currencyMaps = []; foreach ($submissions as $submission) { $submissionIds[] = $submission->id; $currencyMaps[$submission->id] = $submission->currency; } $query = wpFluent()->table('fluentform_subscriptions') ->select(['fluentform_subscriptions.*']) ->orderBy('id', 'DESC') ->whereIn('submission_id', $submissionIds); if ($args['statuses']) { $query->whereIn('status', $args['statuses']); } if ($args['form_title']) { $query->addSelect(['fluentform_forms.title']) ->leftJoin('fluentform_forms', 'fluentform_forms.id', '=', 'fluentform_subscriptions.form_id'); } $subscriptions = $query->get(); foreach ($subscriptions as $subscription) { $subscription->currency = ArrayHelper::get($currencyMaps, $subscription->submission_id); } return $subscriptions; } } app/Api/Entry.php000064400000011644147600120010007644 0ustar00form = $form; } public function entries($atts = [], $includeFormats = false) { if ($includeFormats) { if (!defined('FLUENTFORM_RENDERING_ENTRIES')) { define('FLUENTFORM_RENDERING_ENTRIES', true); } } $atts = wp_parse_args($atts, [ 'per_page' => 10, 'page' => 1, 'search' => '', 'sort_type' => 'DESC', 'entry_type' => 'all', ]); $offset = $atts['per_page'] * ($atts['page'] - 1); $entryQuery = \FluentForm\App\Models\Submission::where('form_id', $this->form->id) ->orderBy('id', \FluentForm\App\Helpers\Helper::sanitizeOrderValue($atts['sort_type'])) ->limit($atts['per_page']) ->offset($offset); $type = $atts['entry_type']; if ($type && 'all' != $type) { $entryQuery->where('status', $type); } if ($searchString = sanitize_text_field($atts['search'])) { $entryQuery->where(function ($q) use ($searchString) { $q->where('id', 'LIKE', "%{$searchString}%") ->orWhere('response', 'LIKE', "%{$searchString}%") ->orWhere('status', 'LIKE', "%{$searchString}%") ->orWhere('created_at', 'LIKE', "%{$searchString}%"); }); } $count = $entryQuery->count(); $data = $entryQuery->get(); $dataCount = count($data); $from = $dataCount > 0 ? ($atts['page'] - 1) * $atts['per_page'] + 1 : null; $to = $dataCount > 0 ? $from + $dataCount - 1 : null; $lastPage = (int) ceil($count / $atts['per_page']); if ($includeFormats) { $data = FormDataParser::parseFormEntries($data, $this->form); } foreach ($data as $datum) { $datum->response = json_decode($datum->response, true); } return [ 'current_page' => $atts['page'], 'per_page' => $atts['per_page'], 'from' => $from, 'to' => $to, 'last_page' => $lastPage, 'total' => $count, 'data' => $data, ]; } public function entry($entryId, $includeFormats = false) { $submission = \FluentForm\App\Models\Submission::where('form_id', $this->form->id) ->where('id', $entryId) ->first(); return $this->getFormattedEntry($submission,$includeFormats); } public function entryBySerial($serialNumber, $includeFormats = false){ $submission = \FluentForm\App\Models\Submission::where('form_id', $this->form->id) ->where('serial_number', $serialNumber) ->first(); return $this->getFormattedEntry($submission,$includeFormats); } public function getFormattedEntry($submission,$includeFormats = false){ if (!$submission) { return null; } $inputs = FormFieldsParser::getEntryInputs($this->form); $submission = FormDataParser::parseFormEntry($submission, $this->form, $inputs, true); if (!$includeFormats) { $submission->response = json_decode($submission->response, true); return [ 'submission' => $submission, ]; } if ($submission->user_id) { $user = get_user_by('ID', $submission->user_id); $user_data = [ 'name' => $user->display_name, 'email' => $user->user_email, 'ID' => $user->ID, 'permalink' => get_edit_user_link($user->ID), ]; $submission->user = $user_data; } $submission= apply_filters_deprecated( 'fluentform_single_response_data', [ $submission, $this->form->id ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/find_submission', 'Use fluentform/find_submission instead of fluentform_single_response_data.' ); $submission = apply_filters('fluentform/find_submission', $submission, $this->form->id); $submission->response = json_decode($submission->response); $inputLabels = FormFieldsParser::getAdminLabels($this->form, $inputs); return [ 'submission' => $submission, 'labels' => $inputLabels, ]; } public function report($statuses = ['read', 'unread', 'unapproved', 'approved', 'declined', 'unconfirmed', 'confirmed']) { return ReportHelper::generateReport($this->form, $statuses); } } app/Helpers/Traits/GlobalDefaultMessages.php000064400000013374147600120010015101 0ustar00 $field) { $default_messages[$key] = $field['value']; } $globalSettings = get_option('_fluentform_global_form_settings'); if ($globalSettings && $messages = Arr::get($globalSettings, 'default_messages', [])) { $default_messages = array_merge($default_messages, $messages); } static::$globalDefaultMessages = apply_filters('fluentform/global_default_messages', $default_messages); } public static function globalDefaultMessageSettingFields() { $default_message_setting_fields = [ 'required' => [ 'label' => __('Required Field', 'fluentform'), 'value' => __('This field is required', 'fluentform'), 'help_text' => __("This message will be shown if validation fails for required field.", 'fluentform'), ], 'email' => [ 'label' => __('Email', 'fluentform'), 'value' => __('This field must contain a valid email', 'fluentform'), 'help_text' => __("This message will be shown if validation fails for email.", 'fluentform'), ], 'numeric' => [ 'label' => __('Numeric', 'fluentform'), 'value' => __('This field must contain numeric value', 'fluentform'), 'help_text' => __("This message will be shown if validation fails for numeric value.", 'fluentform'), ], 'min' => [ 'label' => __('Minimum', 'fluentform'), 'value' => __('Validation fails for minimum value', 'fluentform'), 'help_text' => __("This message will be shown if validation fails for minimum value.", 'fluentform'), ], 'max' => [ 'label' => __('Maximum', 'fluentform'), 'value' => __('Validation fails for maximum value', 'fluentform'), 'help_text' => __("This message will be shown if validation fails for maximum value.", 'fluentform'), ], 'digits' => [ 'label' => __('Digits', 'fluentform'), 'value' => __('Validation fails for limited digits', 'fluentform'), 'help_text' => __("This message will be shown if validation fails for digits value.", 'fluentform'), ], 'url' => [ 'label' => __('Url', 'fluentform'), 'value' => __('This field must contain a valid url', 'fluentform'), 'help_text' => __("This message will be shown if validation fails for validate URL.", 'fluentform'), ], 'allowed_image_types' => [ 'label' => __('Allowed Image Types', 'fluentform'), 'value' => __('Allowed image types does not match', 'fluentform'), 'help_text' => __("This message will be shown if validation fails for image types.", 'fluentform'), ], 'allowed_file_types' => [ 'label' => __('Allowed File Types', 'fluentform'), 'value' => __('Invalid file type', 'fluentform'), 'help_text' => __("This message will be shown if validation fails for allowed file type.", 'fluentform'), ], 'max_file_size' => [ 'label' => __('Maximum File Size', 'fluentform'), 'value' => __('Validation fails for maximum file size', 'fluentform'), 'help_text' => __("This message will be shown if validation fails for maximum file size.", 'fluentform'), ], 'max_file_count' => [ 'label' => __('Maximum File Count', 'fluentform'), 'value' => __('Validation fails for maximum file count', 'fluentform'), 'help_text' => __("This message will be shown if validation fails for maximum file count.", 'fluentform'), ], ]; if (defined('FLUENTFORMPRO')) { $default_message_setting_fields['valid_phone_number'] = [ 'label' => __('Valid Phone Number', 'fluentformpro'), 'value' => __('Phone number is not valid', 'fluentformpro'), 'help_text' => __("This message will be shown if validation fails for validate phone number.", 'fluentform'), ]; } return apply_filters('fluentform/global_default_message_setting_fields', $default_message_setting_fields); } }app/Helpers/Helper.php000064400000117775147600120010010667 0ustar00 &$value) { $attribute = $attribute ? $attribute . '[' . $key . ']' : $key; $value = static::sanitizer($value, $attribute, $fields); $attribute = null; } } return $input; } public static function makeMenuUrl($page = 'fluent_forms_settings', $component = null) { $baseUrl = admin_url('admin.php?page=' . $page); $hash = ArrayHelper::get($component, 'hash', ''); if ($hash) { $baseUrl = $baseUrl . '#' . $hash; } $query = ArrayHelper::get($component, 'query'); if ($query) { $paramString = http_build_query($query); if ($hash) { $baseUrl .= '?' . $paramString; } else { $baseUrl .= '&' . $paramString; } } return $baseUrl; } public static function getHtmlElementClass($value1, $value2, $class = 'active', $default = '') { return $value1 === $value2 ? $class : $default; } /** * Determines if the given string is a valid json. * * @param $string * * @return bool */ public static function isJson($string) { json_decode($string); return JSON_ERROR_NONE === json_last_error(); } public static function isSlackEnabled() { $globalModules = get_option('fluentform_global_modules_status'); return $globalModules && isset($globalModules['slack']) && 'yes' == $globalModules['slack']; } public static function getEntryStatuses($form_id = false) { $statuses = [ 'unread' => __('Unread', 'fluentform'), 'read' => __('Read', 'fluentform'), 'favorites' => __('Favorites', 'fluentform'), ]; $statuses = apply_filters_deprecated( 'fluentform_entry_statuses_core', [ $statuses, $form_id ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/entry_statuses_core', 'Use fluentform/entry_statuses_core instead of fluentform_entry_statuses_core.' ); $statuses = apply_filters('fluentform/entry_statuses_core', $statuses, $form_id); $statuses['trashed'] = 'Trashed'; return $statuses; } public static function getReportableInputs() { $data = [ 'select', 'input_radio', 'input_checkbox', 'ratings', 'net_promoter', 'select_country', 'net_promoter_score', ]; $data = apply_filters_deprecated( 'fluentform_reportable_inputs', [ $data ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/reportable_inputs', 'Use fluentform/reportable_inputs instead of fluentform_reportable_inputs.' ); return apply_filters('fluentform/reportable_inputs', $data); } public static function getSubFieldReportableInputs() { $grid = apply_filters_deprecated( 'fluentform_subfield_reportable_inputs', [ ['tabular_grid'] ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/subfield_reportable_inputs', 'Use fluentform/subfield_reportable_inputs instead of fluentform_subfield_reportable_inputs.' ); return apply_filters('fluentform/subfield_reportable_inputs', $grid); } public static function getFormMeta($formId, $metaKey, $default = '') { return FormMeta::retrieve($metaKey, $formId, $default); } public static function setFormMeta($formId, $metaKey, $value) { if ($meta = FormMeta::persist($formId, $metaKey, $value)) { return $meta->id; } return null; } public static function deleteFormMeta($formId, $metaKey) { try { FormMeta::remove($formId, $metaKey); return true; } catch (\Exception $ex) { return null; } } public static function getSubmissionMeta($submissionId, $metaKey, $default = false) { return SubmissionMeta::retrieve($metaKey, $submissionId, $default); } public static function setSubmissionMeta($submissionId, $metaKey, $value, $formId = false) { if ($meta = SubmissionMeta::persist($submissionId, $metaKey, $value, $formId)) { return $meta->id; } return null; } public static function setSubmissionMetaAsArrayPush($submissionId, $metaKey, $value, $formId = false) { if ($meta = SubmissionMeta::persistArray($submissionId, $metaKey, $value, $formId)) { return $meta->id; } return null; } public static function isEntryAutoDeleteEnabled($formId) { if ( 'yes' == ArrayHelper::get(static::getFormMeta($formId, 'formSettings', []), 'delete_entry_on_submission', '') ) { return true; } return false; } public static function formExtraCssClass($form) { if (!$form->settings) { $formSettings = static::getFormMeta($form->id, 'formSettings'); } else { $formSettings = $form->settings; } if (!$formSettings) { return ''; } if ($extraClass = ArrayHelper::get($formSettings, 'form_extra_css_class')) { return esc_attr($extraClass); } return ''; } public static function getNextTabIndex($increment = 1) { if (static::isTabIndexEnabled()) { static::$tabIndex += $increment; return static::$tabIndex; } return ''; } public static function getFormInstaceClass($formId) { static::$formInstance += 1; return 'ff_form_instance_' . $formId . '_' . static::$formInstance; } public static function resetTabIndex() { static::$tabIndex = 0; } public static function isFluentAdminPage() { $fluentPages = [ 'fluent_forms', 'fluent_forms_all_entries', 'fluent_forms_transfer', 'fluent_forms_settings', 'fluent_forms_add_ons', 'fluent_forms_docs', 'fluent_forms_payment_entries', 'fluent_forms_smtp' ]; $status = true; $page = wpFluentForm('request')->get('page'); if (!$page || !in_array($page, $fluentPages)) { $status = false; } $status = apply_filters_deprecated( 'fluentform_is_admin_page', [ $status ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/is_admin_page', 'Use fluentform/is_admin_page instead of fluentform_is_admin_page.' ); return apply_filters('fluentform/is_admin_page', $status); } public static function getShortCodeIds($content, $tag = 'fluentform', $selector = 'id') { if (false === strpos($content, '[')) { return []; } preg_match_all('/' . get_shortcode_regex() . '/', $content, $matches, PREG_SET_ORDER); if (empty($matches)) { return []; } $ids = []; $attributes = []; foreach ($matches as $shortcode) { if (count($shortcode) >= 2 && $tag === $shortcode[2]) { // Replace braces with empty string. $parsedCode = str_replace(['[', ']', '[', ']'], '', $shortcode[0]); $result = shortcode_parse_atts($parsedCode); if (!empty($result[$selector])) { if ($tag == 'fluentform' && !empty($result['type']) && $result['type'] == 'conversational') { continue; } $ids[$result[$selector]] = $result[$selector]; $theme = ArrayHelper::get($result, 'theme'); if ($theme) { $attributes[] = [ 'formId' => $result[$selector], 'theme' => $theme ]; } } } } if ($attributes) { $ids['attributes'] = $attributes; } return $ids; } public static function getFormsIdsFromBlocks($content) { $ids = []; $attributes = []; if (!function_exists('parse_blocks')) { return $ids; } $has_block = false !== strpos($content, '|--!>|A(e,t)))}const P=e=>X(e)?e:null==e?"":Q(e)||te(e)&&(e.toString===oe||!J(e.toString))?JSON.stringify(e,F,2):String(e),F=(e,t)=>t&&t.__v_isRef?F(e,t.value):Y(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[`${t} =>`]=n,e)),{})}:G(t)?{[`Set(${t.size})`]:[...t.values()]}:!te(t)||Q(t)||se(t)?t:String(t),L={},D=[],I=()=>{},R=()=>!1,j=/^on[^a-z]/,$=e=>j.test(e),z=e=>e.startsWith("onUpdate:"),H=Object.assign,U=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},K=Object.prototype.hasOwnProperty,W=(e,t)=>K.call(e,t),Q=Array.isArray,Y=e=>"[object Map]"===re(e),G=e=>"[object Set]"===re(e),Z=e=>"[object Date]"===re(e),J=e=>"function"==typeof e,X=e=>"string"==typeof e,ee=e=>"symbol"==typeof e,te=e=>null!==e&&"object"==typeof e,ne=e=>te(e)&&J(e.then)&&J(e.catch),oe=Object.prototype.toString,re=e=>oe.call(e),ie=e=>re(e).slice(8,-1),se=e=>"[object Object]"===re(e),ae=e=>X(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,le=o(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ce=o("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),ue=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},de=/-(\w)/g,pe=ue((e=>e.replace(de,((e,t)=>t?t.toUpperCase():"")))),fe=/\B([A-Z])/g,he=ue((e=>e.replace(fe,"-$1").toLowerCase())),me=ue((e=>e.charAt(0).toUpperCase()+e.slice(1))),ve=ue((e=>e?`on${me(e)}`:"")),ge=(e,t)=>!Object.is(e,t),ye=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},_e=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let we;const xe=()=>we||(we="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{}),ke=/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/;function Ee(e){return ke.test(e)?`__props.${e}`:`__props[${JSON.stringify(e)}]`}},7478:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var whatwg_fetch__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(7147),_components_Form__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(2660),_models_LanguageModel__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(6484),_models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(3012),_models_Helper__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(3356);function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n=0;--r){var i=this.tryEntries[r],s=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var a=n.call(i,"catchLoc"),l=n.call(i,"finallyLoc");if(a&&l){if(this.prev=0;--o){var r=this.tryEntries[o];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),x(n),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var r=o.arg;x(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}function asyncGeneratorStep(e,t,n,o,r,i,s){try{var a=e[i](s),l=a.value}catch(e){return void n(e)}a.done?t(l):Promise.resolve(l).then(o,r)}function _asyncToGenerator(e){return function(){var t=this,n=arguments;return new Promise((function(o,r){var i=e.apply(t,n);function s(e){asyncGeneratorStep(i,o,r,s,a,"next",e)}function a(e){asyncGeneratorStep(i,o,r,s,a,"throw",e)}s(void 0)}))}}const __WEBPACK_DEFAULT_EXPORT__={name:"app",components:{FlowForm:_components_Form__WEBPACK_IMPORTED_MODULE_1__.Z},data:function(){return{submitted:!1,completed:!1,language:new _models_LanguageModel__WEBPACK_IMPORTED_MODULE_3__.Z,submissionMessage:"",responseMessage:"",hasError:!1,hasjQuery:"function"==typeof window.jQuery,isActiveForm:!1,submitting:!1,handlingScroll:!1,isScrollInit:!1,scrollDom:null,saveAndResumeData:{hash:"",saved_url:"",message:""}}},computed:{questions:function questions(){var questions=[],fieldsWithOptions=[_models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.ce.Dropdown,_models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.ce.MultipleChoice,_models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.ce.MultiplePictureChoice,_models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.ce.TermsAndCondition,"FlowFormDropdownMultipleType"];return this.globalVars.form.questions.forEach((function(q){if(fieldsWithOptions.includes(q.type))q.options=q.options.map((function(e){return q.type===_models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.ce.MultiplePictureChoice&&(e.imageSrc=e.image),new _models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.L1(e)}));else if(q.type===_models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.ce.Date)try{eval("q.dateCustomConfig="+q.dateCustomConfig)}catch(e){q.dateCustomConfig={}}else if("FlowFormMatrixType"===q.type){for(var rowIndex in q.rows=[],q.columns=[],q.grid_rows)q.rows.push(new _models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.Ux({id:rowIndex,label:q.grid_rows[rowIndex]}));for(var colIndex in q.grid_columns)q.columns.push(new _models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.vF({value:colIndex,label:q.grid_columns[colIndex]}))}else"FlowFormPaymentMethodType"===q.type?q.options=q.options.map((function(e){return q.type===_models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.ce.MultiplePictureChoice&&(e.imageSrc=e.image),new _models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.L1(e)})):"FlowFormSubscriptionType"===q.type&&q.options&&(q.options=q.options.map((function(e){return new _models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.L1(e)})));questions.push(new _models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.ZP(q))})),questions}},watch:{isActiveForm:function(e){e&&!this.isScrollInit?(this.initScrollHandler(),this.isScrollInit=!0):(this.isScrollInit=!1,this.removeScrollHandler())}},mounted:function(){if(this.initActiveFormFocus(),"yes"!=this.globalVars.design.disable_scroll_to_next){var e=document.getElementsByClassName("ff_conv_app_"+this.globalVars.form.id);e.length&&(this.scrollDom=e[0])}if(this.globalVars.form.has_per_step_save&&this.globalVars.form.has_resume_from_last_step){var t=this.globalVars.form.step_completed;t&&this.$refs.flowform.goToQuestion(t)}},beforeDestroy:function(){},methods:{onAnswer:function(){this.isActiveForm=!0},initScrollHandler:function(){this.scrollDom&&(this.scrollDom.addEventListener("wheel",this.onMouseScroll),this.scrollDom.addEventListener("swiped",this.onSwipe))},onMouseScroll:function(e){if(this.handlingScroll)return!1;e.deltaY>50?this.handleAutoQChange("next"):e.deltaY<-50&&this.handleAutoQChange("prev")},onSwipe:function(e){var t=e.detail.dir;"up"===t?this.handleAutoQChange("next"):"down"===t&&this.handleAutoQChange("prev")},removeScrollHandler:function(){this.scrollDom&&(this.scrollDom.removeEventListener("wheel",this.onMouseScroll),this.scrollDom.removeEventListener("swiped",this.onSwipe))},handleAutoQChange:function(e){var t,n=document.querySelector(".ff_conv_app_"+this.globalVars.form.id+" .f-"+e);!n||(t="f-disabled",(" "+n.className+" ").indexOf(" "+t+" ")>-1)||(this.handlingScroll=!0,n.click())},activeQuestionIndexChanged:function(){var e=this;setTimeout((function(){e.handlingScroll=!1}),1500)},initActiveFormFocus:function(){var e=this;if(this.globalVars.is_inline_form){this.isActiveForm=!1;var t=document.querySelector(".ff_conv_app_frame");document.addEventListener("click",(function(n){e.isActiveForm=t.contains(n.target)}))}else this.isActiveForm=!0},onKeyListener:function(e){"Enter"===e.key&&this.completed&&!this.submitted&&this.submitting},onComplete:function(e,t){this.completed=e},onSubmit:function(e){this.submitting||this.onSendData()},onSendData:function(e,t){var n=this;return _asyncToGenerator(_regeneratorRuntime().mark((function o(){var r,i,s,a,l;return _regeneratorRuntime().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(a=function(e){var t=s;return t+=(t.split("?")[1]?"&":"?")+e},n.submitting=!0,!t&&n.globalVars.form.hasPayment&&(t=n.globalVars.paymentConfig.i18n.confirming_text),n.responseMessage=t||"",n.hasError=!1,e){o.next=14;break}return o.next=8,n.getData();case 8:for(i in r=o.sent,n.globalVars.extra_inputs)r+="&"+encodeURIComponent(i)+"="+encodeURIComponent(n.globalVars.extra_inputs[i]);r+="&isFFConversational=true",(e=new FormData).append("action","fluentform_submit"),e.append("data",r);case 14:e.append("form_id",n.globalVars.form.id),s=n.globalVars.ajaxurl,l=a("t="+Date.now()),fetch(l,{method:"POST",body:e}).then((function(e){return e.json()})).then((function(e){return e&&e.data&&e.data.result?e.data.nextAction?(n.handleNextAction(e.data),void n.triggerCustomEvent("fluentform_next_action_"+e.data.nextAction,{response:e})):(n.triggerCustomEvent("fluentform_submission_success",{response:e}),n.triggerCustomEvent("fluentform_submission_success",{response:e},document.body),n.$refs.flowform.submitted=n.submitted=!0,e.data.result.message&&(n.submissionMessage=e.data.result.message),void("redirectUrl"in e.data.result&&e.data.result.redirectUrl&&(location.href=e.data.result.redirectUrl))):(e.errors?(n.showErrorMessages(e.errors),n.showErrorMessages(e.message)):e.success?(n.showErrorMessages(e),n.showErrorMessages(e.message)):n.showErrorMessages(e.data.message),void n.triggerCustomEvent("fluentform_submission_failed",{response:e}))})).catch((function(e){n.triggerCustomEvent("fluentform_submission_failed",{response:e}),e.errors?n.showErrorMessages(e.errors):n.showErrorMessages(e)})).finally((function(e){n.submitting=!1}));case 18:case"end":return o.stop()}}),o)})))()},getData:function(){var e=this;return _asyncToGenerator(_regeneratorRuntime().mark((function t(){var n;return _regeneratorRuntime().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=[],e.$refs.flowform.questionList.forEach((function(t){null!==t.answer&&e.serializeAnswer(t,n),t.type!==_models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.ce.MultipleChoice||null!==t.answer||t.multiple||n.push(encodeURIComponent(t.name)+"=")})),e.questions.forEach((function(t){t.type===_models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.ce.Hidden&&(null!==t.answer?e.serializeAnswer(t,n):n.push(encodeURIComponent(t.name)+"="))})),t.next=5,e.setCaptchaResponse(n);case 5:return t.abrupt("return",n.join("&"));case 6:case"end":return t.stop()}}),t)})))()},serializeAnswer:function(e,t){if(e.type===_models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.ce.Address||e.type===_models_QuestionModel__WEBPACK_IMPORTED_MODULE_2__.ce.Name)for(var n in e.answer)t.push(encodeURIComponent(e.name+"["+n+"]")+"="+encodeURIComponent(e.answer[n]));else if("FlowFormMatrixType"===e.type){var o=function(n){e.multiple?e.answer[n].forEach((function(o){t.push(encodeURIComponent(e.name+"["+n+"][]")+"="+encodeURIComponent(o))})):t.push(encodeURIComponent(e.name+"["+n+"]")+"="+encodeURIComponent(e.answer[n]))};for(var r in e.answer)o(r)}else if(e.is_subscription_field){if(t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.answer)),e.customPayment){var i=e.name+"_custom_"+e.answer;t.push(encodeURIComponent(i)+"="+encodeURIComponent(e.customPayment))}}else if(e.multiple){if(!e.answer.length)return t.push(encodeURIComponent(e.name+"[]")+"="),t;e.answer.forEach((function(n){n=(0,_models_Helper__WEBPACK_IMPORTED_MODULE_4__.h)(n,e),t.push(encodeURIComponent(e.name+"[]")+"="+encodeURIComponent(n))}))}else{var s=(0,_models_Helper__WEBPACK_IMPORTED_MODULE_4__.h)(e.answer,e);t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(s))}return t},getSubmitText:function(){return this.globalVars.form.submit_button.settings.button_ui.text||"Submit"},showErrorMessages:function(e){var t=this;if(e){if(this.hasError=!0,"string"==typeof e)this.responseMessage=e;else{var n=function(n){if("string"==typeof e[n])t.responseMessage=e[n];else for(var o in e[n]){var r=t.questions.filter((function(e){return e.name===n}));r&&r.length?((r=r[0]).error=e[n][o],t.$refs.flowform.activeQuestionIndex=r.index,t.$refs.flowform.questionRefs[r.index].focusField()):t.responseMessage=e[n][o];break}return"break"};for(var o in e){if("break"===n(o))break}}this.replayForm()}},handleNextAction:function(e){this[e.actionName]?(this.responseMessage=e.message,this.hasError=!1,this[e.actionName](e)):alert("No method found")},normalRedirect:function(e){window.location.href=e.redirect_url},stripeRedirectToCheckout:function(e){var t=new Stripe(this.globalVars.paymentConfig.stripe.publishable_key);t.registerAppInfo(this.globalVars.paymentConfig.stripe_app_info),t.redirectToCheckout({sessionId:e.sessionId}).then((function(e){console.log(e)}))},initRazorPayModal:function(e){var t=this,n=e.modal_data;n.handler=function(n){t.handlePaymentConfirm({action:"fluentform_razorpay_confirm_payment",transaction_hash:e.transaction_hash,razorpay_order_id:n.razorpay_order_id,razorpay_payment_id:n.razorpay_payment_id,razorpay_signature:n.razorpay_signature},e.confirming_text)},n.modal={escape:!1,ondismiss:function(){t.responseMessage="",t.replayForm(!0)}};var o=new Razorpay(n);o.on("payment.failed",(function(e){this.replayForm(!0)})),o.open()},initPaystackModal:function(e){var t=this,n=e.modal_data;n.callback=function(n){t.handlePaymentConfirm(_objectSpread({action:"fluentform_paystack_confirm_payment"},n),e.confirming_text)},n.onClose=function(e){t.responseMessage=""},PaystackPop.setup(n).openIframe()},initStripeSCAModal:function(e){var t=this;this.stripe.handleCardAction(e.client_secret).then((function(n){n.error?t.showErrorMessages(n.error.message):t.handlePaymentConfirm({action:"fluentform_sca_inline_confirm_payment",payment_method:n.paymentIntent.payment_method,payment_intent_id:n.paymentIntent.id,submission_id:e.submission_id,type:"handleCardAction"})}))},stripeSetupIntent:function(e){var t=this;this.stripe.confirmCardPayment(e.client_secret,{payment_method:e.payment_method_id}).then((function(n){n.error?t.showErrorMessages(n.error.message):t.handlePaymentConfirm({action:"fluentform_sca_inline_confirm_payment_setup_intents",payment_method:n.paymentIntent.payment_method,payemnt_method_id:e.payemnt_method_id,payment_intent_id:n.paymentIntent.id,submission_id:e.submission_id,stripe_subscription_id:e.stripe_subscription_id,type:"handleCardSetup"})}))},handlePaymentConfirm:function(e,t){t=t||this.globalVars.paymentConfig.i18n.confirming_text;for(var n=Object.entries(e),o=new FormData,r=0,i=n;r1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".ff_conv_app";if(e&&("string"==typeof n&&(n=this.$refs.flowform.$el.closest(n)),n)){var o=this.$refs.flowform.$el.closest(".ff_conv_app"),r=this.globalVars.form_id,i=this.globalVars.form;t=_objectSpread(_objectSpread({},t),{},{form_id:r,config:i,form:o}),n.dispatchEvent(new CustomEvent(e,{detail:t}))}},saveAndResume:function(e){var t=this,n=[];this.questions.forEach((function(e){e.answered&&null!==e.answer&&t.serializeAnswer(e,n)}));var o=n.join("&");for(var r in this.globalVars.extra_inputs)o+="&"+encodeURIComponent(r)+"="+encodeURIComponent(this.globalVars.extra_inputs[r]);o+="&isFFConversational=true";var i=new FormData;i.append("action","fluentform_save_form_progress_with_link"),i.append("sourceurl",this.formStateSaveVars.source_url),i.append("form_id",this.formStateSaveVars.form_id),i.append("hash","-1"),i.append("active_step",e),i.append("data",o),i.append("nonce",this.formStateSaveVars.nonce);var s=this.formStateSaveVars.ajaxurl;var a,l,c=(a="t="+Date.now(),l=s,l+=(l.split("?")[1]?"&":"?")+a);fetch(c,{method:"POST",body:i}).then((function(e){return e.json()})).then((function(e){e&&e.data&&e.data.result||(e.errors?(t.showErrorMessages(e.errors),t.showErrorMessages(e.message)):e.success?(t.showErrorMessages(e),t.showErrorMessages(e.message)):t.showErrorMessages(e.data.message)),e.data&&(t.saveAndResumeData.hash=e.data.hash,t.saveAndResumeData.message=e.data.message,t.saveAndResumeData.saved_url=e.data.saved_url)})).catch((function(e){t.showErrorMessages(e.errors),t.showErrorMessages(e.message)}))},handlePerStepSave:function(e){var t,n,o=this;if(this.globalVars.form.has_per_step_save){var r=[];this.questions.forEach((function(e){e.answered&&null!==e.answer&&o.serializeAnswer(e,r)}));var i=r.join("&");for(var s in this.globalVars.extra_inputs)i+="&"+encodeURIComponent(s)+"="+encodeURIComponent(this.globalVars.extra_inputs[s]);i+="&isFFConversational=true";var a=new FormData;a.append("action","fluentform_step_form_save_data"),a.append("form_id",this.globalVars.form_id),a.append("active_step",e),a.append("data",i),a.append("nonce",this.globalVars.nonce);var l=this.globalVars.ajaxurl,c=(t="t="+Date.now(),n=l,n+=(n.split("?")[1]?"&":"?")+t);fetch(c,{method:"POST",body:a}).then((function(e){return e.json()}))}}}}},8289:(e,t,n)=>{"use strict";function o(e,t){for(var n=0;nr});var r=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.enterKey="Enter",this.shiftKey="Shift",this.ok="OK",this.continue="Continue",this.skip="Skip",this.pressEnter="Press :enterKey",this.multipleChoiceHelpText="Choose as many as you like",this.multipleChoiceHelpTextSingle="Choose only one answer",this.otherPrompt="Other",this.placeholder="Type your answer here...",this.submitText="Submit",this.longTextHelpText=":shiftKey + :enterKey to make a line break.",this.prev="Prev",this.next="Next",this.percentCompleted=":percent% completed",this.invalidPrompt="Please fill out the field correctly",this.thankYouText="Thank you!",this.successText="Your submission has been sent.",this.ariaOk="Press to continue",this.ariaRequired="This step is required",this.ariaPrev="Previous step",this.ariaNext="Next step",this.ariaSubmitText="Press to submit",this.ariaMultipleChoice="Press :letter to select",this.ariaTypeAnswer="Type your answer here",this.errorAllowedFileTypes="Invalid file type. Allowed file types: :fileTypes.",this.errorMaxFileSize="File(s) too large. Maximum allowed file size: :size.",this.errorMinFiles="Too few files added. Minimum allowed files: :min.",this.errorMaxFiles="Too many files added. Maximum allowed files: :max.",Object.assign(this,t||{})}var t,n,r;return t=e,(n=[{key:"formatString",value:function(e,t){var n=this;return e.replace(/:(\w+)/g,(function(e,o){return n[o]?''+n[o]+"":t&&t[o]?t[o]:e}))}},{key:"formatFileSize",value:function(e){var t=e>0?Math.floor(Math.log(e)/Math.log(1024)):0;return 1*(e/Math.pow(1024,t)).toFixed(2)+" "+["B","kB","MB","GB","TB"][t]}}])&&o(t.prototype,n),r&&o(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}()},5291:(e,t,n)=>{"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var n=0;nl,Ux:()=>d,ZP:()=>p,ce:()=>s,fB:()=>c,vF:()=>u});var s=Object.freeze({Date:"FlowFormDateType",Dropdown:"FlowFormDropdownType",Email:"FlowFormEmailType",File:"FlowFormFileType",LongText:"FlowFormLongTextType",MultipleChoice:"FlowFormMultipleChoiceType",MultiplePictureChoice:"FlowFormMultiplePictureChoiceType",Number:"FlowFormNumberType",Password:"FlowFormPasswordType",Phone:"FlowFormPhoneType",SectionBreak:"FlowFormSectionBreakType",Text:"FlowFormTextType",Url:"FlowFormUrlType",Matrix:"FlowFormMatrixType"}),a=(Object.freeze({label:"",value:"",disabled:!0}),Object.freeze({Date:"##/##/####",DateIso:"####-##-##",PhoneUs:"(###) ###-####"})),l=function(){function e(t){o(this,e),this.label="",this.value=null,this.selected=!1,this.imageSrc=null,this.imageAlt=null,Object.assign(this,t)}return i(e,[{key:"choiceLabel",value:function(){return this.label||this.value}},{key:"choiceValue",value:function(){return null!==this.value?this.value:this.label||this.imageAlt||this.imageSrc}},{key:"toggle",value:function(){this.selected=!this.selected}}]),e}(),c=i((function e(t){o(this,e),this.url="",this.text="",this.target="_blank",Object.assign(this,t)})),u=i((function e(t){o(this,e),this.value="",this.label="",Object.assign(this,t)})),d=i((function e(t){o(this,e),this.id="",this.label="",Object.assign(this,t)})),p=function(){function e(t){o(this,e),t=t||{},this.id=null,this.answer=null,this.answered=!1,this.index=0,this.options=[],this.description="",this.className="",this.type=null,this.html=null,this.required=!1,this.jump=null,this.placeholder=null,this.mask="",this.multiple=!1,this.allowOther=!1,this.other=null,this.language=null,this.tagline=null,this.title=null,this.subtitle=null,this.content=null,this.inline=!1,this.helpText=null,this.helpTextShow=!0,this.descriptionLink=[],this.min=null,this.max=null,this.maxLength=null,this.nextStepOnAnswer=!1,this.accept=null,this.maxSize=null,this.rows=[],this.columns=[],Object.assign(this,t),this.type===s.Phone&&(this.mask||(this.mask=a.Phone),this.placeholder||(this.placeholder=this.mask)),this.type===s.Url&&(this.mask=null),this.type!==s.Date||this.placeholder||(this.placeholder="yyyy-mm-dd"),this.type!==s.Matrix&&this.multiple&&!Array.isArray(this.answer)&&(this.answer=this.answer?[this.answer]:[]),(this.required||void 0===t.answer)&&(!this.answer||this.multiple&&!this.answer.length)||(this.answered=!0),this.resetOptions()}return i(e,[{key:"getJumpId",value:function(){var e=null;return"function"==typeof this.jump?e=this.jump.call(this):this.jump[this.answer]?e=this.jump[this.answer]:this.jump._other&&(e=this.jump._other),e}},{key:"setAnswer",value:function(e){this.type!==s.Number||""===e||isNaN(+e)||(e=+e),this.answer=e}},{key:"setIndex",value:function(e){this.id||(this.id="q_"+e),this.index=e}},{key:"resetOptions",value:function(){var e=this;if(this.options){var t=Array.isArray(this.answer),n=0;if(this.options.forEach((function(o){var r=o.choiceValue();e.answer===r||t&&-1!==e.answer.indexOf(r)?(o.selected=!0,++n):o.selected=!1})),this.allowOther){var o=null;t?this.answer.length&&this.answer.length!==n&&(o=this.answer[this.answer.length-1]):-1===this.options.map((function(e){return e.choiceValue()})).indexOf(this.answer)&&(o=this.answer),null!==o&&(this.other=o)}}}},{key:"resetAnswer",value:function(){this.answered=!1,this.answer=this.multiple?[]:null,this.other=null,this.resetOptions()}},{key:"isMultipleChoiceType",value:function(){return[s.MultipleChoice,s.MultiplePictureChoice].includes(this.type)}}]),e}()},3815:(e,t,n)=>{"use strict";var o=n(4865),r=(0,o.createElementVNode)("div",null,null,-1),i={key:0,class:"ff-response-msg"},s={key:1,class:"text-success ff_completed ff-response ff-section-text"},a={class:"vff vff_layout_default"},l={class:"f-container"},c={class:"f-form-wrap"},u={class:"vff-animate q-form f-fade-in-up field-welcomescreen"},d=["innerHTML"];var p=n(7478);const f=(0,n(3744).Z)(p.Z,[["render",function(e,t,n,p,f,h){var m=(0,o.resolveComponent)("flow-form");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[f.submissionMessage?((0,o.openBlock)(),(0,o.createElementBlock)("div",s,[(0,o.createElementVNode)("div",a,[(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("div",c,[(0,o.createElementVNode)("div",u,[(0,o.createElementVNode)("div",{class:"ff_conv_input q-inner",innerHTML:f.submissionMessage},null,8,d)])])])])])):((0,o.openBlock)(),(0,o.createBlock)(m,{key:0,ref:"flowform",onComplete:h.onComplete,onSubmit:h.onSubmit,onActiveQuestionIndexChanged:[h.activeQuestionIndexChanged,h.handlePerStepSave],onAnswer:h.onAnswer,questions:h.questions,isActiveForm:f.isActiveForm,language:f.language,globalVars:e.globalVars,standalone:!0,submitting:f.submitting,navigation:1!=e.globalVars.disable_step_naviagtion,onSaveAndResume:h.saveAndResume,saveAndResumeData:f.saveAndResumeData},{complete:(0,o.withCtx)((function(){return[r]})),completeButton:(0,o.withCtx)((function(){return[(0,o.createElementVNode)("div",null,[f.responseMessage?((0,o.openBlock)(),(0,o.createElementBlock)("div",i,[(0,o.createElementVNode)("div",{class:(0,o.normalizeClass)(f.hasError?"f-invalid":"f-info"),role:"alert","aria-live":"assertive"},(0,o.toDisplayString)(f.responseMessage),3)])):(0,o.createCommentVNode)("",!0)])]})),_:1},8,["onComplete","onSubmit","onActiveQuestionIndexChanged","onAnswer","questions","isActiveForm","language","globalVars","submitting","navigation","onSaveAndResume","saveAndResumeData"]))])}]]);function h(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:[],n=h(t);try{for(n.s();!(e=n.n()).done;){var o=e.value;v(o)}}catch(e){n.e(e)}finally{n.f()}}n(6770),g(document.getElementsByClassName("ffc_conv_form")),document.addEventListener("ff-elm-conv-form-event",(function(e){g(e.detail)}))},3356:(e,t,n)=>{"use strict";function o(e,t){if(t.is_payment_field&&t.options&&t.options.length){var n=t.options.find((function(t){return t.value==e}));n&&(e=n.label)}return e}n.d(t,{h:()=>o})},6484:(e,t,n)=>{"use strict";function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function r(e,t){for(var n=0;nc});var c=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&i(e,t)}(l,e);var t,n,o,a=s(l);function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=a.call(this,e)).ok=window.fluent_forms_global_var.i18n.confirm_btn,t.continue=window.fluent_forms_global_var.i18n.continue,t.skip=window.fluent_forms_global_var.i18n.skip_btn,t.pressEnter=window.fluent_forms_global_var.i18n.keyboard_instruction,t.multipleChoiceHelpText=window.fluent_forms_global_var.i18n.multi_select_hint,t.multipleChoiceHelpTextSingle=window.fluent_forms_global_var.i18n.single_select_hint,t.longTextHelpText=window.fluent_forms_global_var.i18n.long_text_help,t.percentCompleted=window.fluent_forms_global_var.i18n.progress_text,t.invalidPrompt=window.fluent_forms_global_var.i18n.invalid_prompt,t.errorMaxLength=window.fluent_forms_global_var.i18n.errorMaxLength,t.placeholder=window.fluent_forms_global_var.i18n.default_placeholder,t.chooseFile=window.fluent_forms_global_var.i18n.choose_file,t.limit=window.fluent_forms_global_var.i18n.limit,t}return t=l,n&&r(t.prototype,n),o&&r(t,o),Object.defineProperty(t,"prototype",{writable:!1}),t}(n(8289).Z)},3012:(e,t,n)=>{"use strict";n.d(t,{L1:()=>o.L1,Ux:()=>o.Ux,ZP:()=>f,ce:()=>p,vF:()=>o.vF});var o=n(5291);function r(){r=function(e,t){return new n(e,void 0,t)};var e=RegExp.prototype,t=new WeakMap;function n(e,o,r){var i=new RegExp(e,o);return t.set(i,r||t.get(e)),l(i,n.prototype)}function o(e,n){var o=t.get(n);return Object.keys(o).reduce((function(t,n){return t[n]=e[o[n]],t}),Object.create(null))}return a(n,RegExp),n.prototype.exec=function(t){var n=e.exec.call(this,t);return n&&(n.groups=o(n,this)),n},n.prototype[Symbol.replace]=function(n,r){if("string"==typeof r){var s=t.get(this);return e[Symbol.replace].call(this,n,r.replace(/\$<([^>]+)>/g,(function(e,t){return"$"+s[t]})))}if("function"==typeof r){var a=this;return e[Symbol.replace].call(this,n,(function(){var e=arguments;return"object"!=i(e[e.length-1])&&(e=[].slice.call(e)).push(o(e,a)),r.apply(this,e)}))}return e[Symbol.replace].call(this,n,r)},r.apply(this,arguments)}function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function s(e,t){for(var n=0;n"==e.operator?t&&t>Number(e.value):"<"==e.operator?t&&t="==e.operator?t&&t>=Number(e.value):"<="==e.operator?t&&t<=Number(e.value):"startsWith"==e.operator?null!==t&&t.startsWith(e.value):"endsWith"==e.operator?null!==t&&t.endsWith(e.value):"contains"==e.operator?null!==t&&-1!=t.indexOf(e.value):"doNotContains"==e.operator?null!==t&&-1==t.indexOf(e.value):"test_regex"==e.operator&&(t=t||"",this.stringToRegex(e.value).test(t))}},{key:"isMultipleChoiceType",value:function(){return[p.MultipleChoice,p.MultiplePictureChoice,p.DropdownMultiple].includes(this.type)}},{key:"stringToRegex",value:function(e){var t,n=(null===(t=String(e).match(r(/^\/(.*)\/([gimsuy]*)$/,{body:1,flags:2})))||void 0===t?void 0:t.groups)||{},o=n.body,i=n.flags;return o?(i=i||"g",RegExp(o,i)):new RegExp(e,"g")}}])&&s(t.prototype,n),o&&s(t,o),Object.defineProperty(t,"prototype",{writable:!1}),u}(o.ZP)},7484:function(e){e.exports=function(){"use strict";var e=1e3,t=6e4,n=36e5,o="millisecond",r="second",i="minute",s="hour",a="day",l="week",c="month",u="quarter",d="year",p="date",f="Invalid Date",h=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},g=function(e,t,n){var o=String(e);return!o||o.length>=t?e:""+Array(t+1-o.length).join(n)+e},y={s:g,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),o=Math.floor(n/60),r=n%60;return(t<=0?"+":"-")+g(o,2,"0")+":"+g(r,2,"0")},m:function e(t,n){if(t.date()1)return e(s[0])}else{var a=t.name;_[a]=t,r=a}return!o&&r&&(b=r),r||!o&&b},k=function(e,t){if(w(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new C(n)},E=y;E.l=x,E.i=w,E.w=function(e,t){return k(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var C=function(){function v(e){this.$L=x(e.locale,null,!0),this.parse(e)}var g=v.prototype;return g.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(E.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var o=t.match(h);if(o){var r=o[2]-1||0,i=(o[7]||"0").substring(0,3);return n?new Date(Date.UTC(o[1],r,o[3]||1,o[4]||0,o[5]||0,o[6]||0,i)):new Date(o[1],r,o[3]||1,o[4]||0,o[5]||0,o[6]||0,i)}}return new Date(t)}(e),this.$x=e.x||{},this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return E},g.isValid=function(){return!(this.$d.toString()===f)},g.isSame=function(e,t){var n=k(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return k(e){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(6722),r=n(3566),i=n(4865),s=n(9272),a=n(2796);function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=l(r),u=l(a);const d=new Map;let p;function f(e,t){let n=[];return Array.isArray(t.arg)?n=t.arg:n.push(t.arg),function(o,r){const i=t.instance.popperRef,s=o.target,a=null==r?void 0:r.target,l=!t||!t.instance,c=!s||!a,u=e.contains(s)||e.contains(a),d=e===s,p=n.length&&n.some((e=>null==e?void 0:e.contains(s)))||n.length&&n.includes(a),f=i&&(i.contains(s)||i.contains(a));l||c||u||d||p||f||t.value(o,r)}}c.default||(o.on(document,"mousedown",(e=>p=e)),o.on(document,"mouseup",(e=>{for(const{documentHandler:t}of d.values())t(e,p)})));const h={beforeMount(e,t){d.set(e,{documentHandler:f(e,t),bindingFn:t.value})},updated(e,t){d.set(e,{documentHandler:f(e,t),bindingFn:t.value})},unmounted(e){d.delete(e)}};var m={beforeMount(e,t){let n,r=null;const i=()=>t.value&&t.value(),s=()=>{Date.now()-n<100&&i(),clearInterval(r),r=null};o.on(e,"mousedown",(e=>{0===e.button&&(n=Date.now(),o.once(document,"mouseup",s),clearInterval(r),r=setInterval(i,100))}))}};const v="_trap-focus-children",g=[],y=e=>{if(0===g.length)return;const t=g[g.length-1][v];if(t.length>0&&e.code===s.EVENT_CODE.tab){if(1===t.length)return e.preventDefault(),void(document.activeElement!==t[0]&&t[0].focus());const n=e.shiftKey,o=e.target===t[0],r=e.target===t[t.length-1];o&&n&&(e.preventDefault(),t[t.length-1].focus()),r&&!n&&(e.preventDefault(),t[0].focus())}},b={beforeMount(e){e[v]=s.obtainAllFocusableElements(e),g.push(e),g.length<=1&&o.on(document,"keydown",y)},updated(e){i.nextTick((()=>{e[v]=s.obtainAllFocusableElements(e)}))},unmounted(){g.shift(),0===g.length&&o.off(document,"keydown",y)}},_="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>-1,w={beforeMount(e,t){!function(e,t){if(e&&e.addEventListener){const n=function(e){const n=u.default(e);t&&t.apply(this,[e,n])};_?e.addEventListener("DOMMouseScroll",n):e.onmousewheel=n}}(e,t.value)}};t.ClickOutside=h,t.Mousewheel=w,t.RepeatClick=m,t.TrapFocus=b},8074:(e,t,n)=>{"use strict";var o=n(4865),r=n(5450),i=n(6801),s=n(7800),a=o.defineComponent({name:"ElButton",props:{type:{type:String,default:"default",validator:e=>["default","primary","success","warning","info","danger","text"].includes(e)},size:{type:String,validator:i.isValidComponentSize},icon:{type:String,default:""},nativeType:{type:String,default:"button",validator:e=>["button","submit","reset"].includes(e)},loading:Boolean,disabled:Boolean,plain:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean},emits:["click"],setup(e,{emit:t}){const n=r.useGlobalConfig(),i=o.inject(s.elFormKey,{}),a=o.inject(s.elFormItemKey,{});return{buttonSize:o.computed((()=>e.size||a.size||n.size)),buttonDisabled:o.computed((()=>e.disabled||i.disabled)),handleClick:e=>{t("click",e)}}}});const l={key:0,class:"el-icon-loading"},c={key:2};a.render=function(e,t,n,r,i,s){return o.openBlock(),o.createBlock("button",{class:["el-button",e.type?"el-button--"+e.type:"",e.buttonSize?"el-button--"+e.buttonSize:"",{"is-disabled":e.buttonDisabled,"is-loading":e.loading,"is-plain":e.plain,"is-round":e.round,"is-circle":e.circle}],disabled:e.buttonDisabled||e.loading,autofocus:e.autofocus,type:e.nativeType,onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t))},[e.loading?(o.openBlock(),o.createBlock("i",l)):o.createCommentVNode("v-if",!0),e.icon&&!e.loading?(o.openBlock(),o.createBlock("i",{key:1,class:e.icon},null,2)):o.createCommentVNode("v-if",!0),e.$slots.default?(o.openBlock(),o.createBlock("span",c,[o.renderSlot(e.$slots,"default")])):o.createCommentVNode("v-if",!0)],10,["disabled","autofocus","type"])},a.__file="packages/button/src/button.vue",a.install=e=>{e.component(a.name,a)};const u=a;t.Z=u},7800:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(4865);function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=r(n(9652));const s="elForm",a={addField:"el.form.addField",removeField:"el.form.removeField"};var l=Object.defineProperty,c=Object.defineProperties,u=Object.getOwnPropertyDescriptors,d=Object.getOwnPropertySymbols,p=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable,h=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,m=(e,t)=>{for(var n in t||(t={}))p.call(t,n)&&h(e,n,t[n]);if(d)for(var n of d(t))f.call(t,n)&&h(e,n,t[n]);return e};var v=o.defineComponent({name:"ElForm",props:{model:Object,rules:Object,labelPosition:String,labelWidth:String,labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:String,disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1}},emits:["validate"],setup(e,{emit:t}){const n=i.default(),r=[];o.watch((()=>e.rules),(()=>{r.forEach((e=>{e.removeValidateEvents(),e.addValidateEvents()})),e.validateOnRuleChange&&p((()=>({})))})),n.on(a.addField,(e=>{e&&r.push(e)})),n.on(a.removeField,(e=>{e.prop&&r.splice(r.indexOf(e),1)}));const l=()=>{e.model?r.forEach((e=>{e.resetField()})):console.warn("[Element Warn][Form]model is required for resetFields to work.")},d=(e=[])=>{(e.length?"string"==typeof e?r.filter((t=>e===t.prop)):r.filter((t=>e.indexOf(t.prop)>-1)):r).forEach((e=>{e.clearValidate()}))},p=t=>{if(!e.model)return void console.warn("[Element Warn][Form]model is required for validate to work!");let n;"function"!=typeof t&&(n=new Promise(((e,n)=>{t=function(t,o){t?e(!0):n(o)}}))),0===r.length&&t(!0);let o=!0,i=0,s={};for(const e of r)e.validate("",((e,n)=>{e&&(o=!1),s=m(m({},s),n),++i===r.length&&t(o,s)}));return n},f=(e,t)=>{e=[].concat(e);const n=r.filter((t=>-1!==e.indexOf(t.prop)));r.length?n.forEach((e=>{e.validate("",t)})):console.warn("[Element Warn]please pass correct props!")},h=o.reactive(m((v=m({formMitt:n},o.toRefs(e)),c(v,u({resetFields:l,clearValidate:d,validateField:f,emit:t}))),function(){const e=o.ref([]);function t(t){const n=e.value.indexOf(t);return-1===n&&console.warn("[Element Warn][ElementForm]unexpected width "+t),n}return{autoLabelWidth:o.computed((()=>{if(!e.value.length)return"0";const t=Math.max(...e.value);return t?`${t}px`:""})),registerLabelWidth:function(n,o){if(n&&o){const r=t(o);e.value.splice(r,1,n)}else n&&e.value.push(n)},deregisterLabelWidth:function(n){const o=t(n);o>-1&&e.value.splice(o,1)}}}()));var v;return o.provide(s,h),{validate:p,resetFields:l,clearValidate:d,validateField:f}}});v.render=function(e,t,n,r,i,s){return o.openBlock(),o.createBlock("form",{class:["el-form",[e.labelPosition?"el-form--label-"+e.labelPosition:"",{"el-form--inline":e.inline}]]},[o.renderSlot(e.$slots,"default")],2)},v.__file="packages/form/src/form.vue",v.install=e=>{e.component(v.name,v)};const g=v;t.default=g,t.elFormEvents=a,t.elFormItemKey="elFormItem",t.elFormKey=s},4167:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(4865),r=n(1247),i=n(1002),s=n(5450),a=n(6801),l=n(7800);function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=c(i);const d=Object.prototype.toString,p=e=>(e=>d.call(e))(e).slice(8,-1);var f=o.defineComponent({name:"ElInputNumber",components:{ElInput:u.default},directives:{RepeatClick:r.RepeatClick},props:{step:{type:Number,default:1},stepStrictly:{type:Boolean,default:!1},max:{type:Number,default:1/0},min:{type:Number,default:-1/0},modelValue:{required:!0,validator:e=>"Number"===p(e)||void 0===e},disabled:{type:Boolean,default:!1},size:{type:String,validator:a.isValidComponentSize},controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:""},name:String,label:String,placeholder:String,precision:{type:Number,validator:e=>e>=0&&e===parseInt(e+"",10)}},emits:["update:modelValue","change","input","blur","focus"],setup(e,{emit:t}){const n=s.useGlobalConfig(),r=o.inject(l.elFormKey,{}),i=o.inject(l.elFormItemKey,{}),a=o.ref(null),c=o.reactive({currentValue:e.modelValue,userInput:null}),u=o.computed((()=>w(e.modelValue)_(e.modelValue)>e.max)),f=o.computed((()=>{const t=b(e.step);return void 0!==e.precision?(t>e.precision&&console.warn("[Element Warn][InputNumber]precision should not be less than the decimal places of step"),e.precision):Math.max(b(e.modelValue),t)})),h=o.computed((()=>e.controls&&"right"===e.controlsPosition)),m=o.computed((()=>e.size||i.size||n.size)),v=o.computed((()=>e.disabled||r.disabled)),g=o.computed((()=>{if(null!==c.userInput)return c.userInput;let t=c.currentValue;return"number"==typeof t&&void 0!==e.precision&&(t=t.toFixed(e.precision)),t})),y=(e,t)=>(void 0===t&&(t=f.value),parseFloat(Math.round(e*Math.pow(10,t))/Math.pow(10,t)+"")),b=e=>{if(void 0===e)return 0;const t=e.toString(),n=t.indexOf(".");let o=0;return-1!==n&&(o=t.length-n-1),o},_=t=>{if("number"!=typeof t&&void 0!==t)return c.currentValue;const n=Math.pow(10,f.value);return y((n*t+n*e.step)/n)},w=t=>{if("number"!=typeof t&&void 0!==t)return c.currentValue;const n=Math.pow(10,f.value);return y((n*t-n*e.step)/n)},x=n=>{const o=c.currentValue;"number"==typeof n&&void 0!==e.precision&&(n=y(n,e.precision)),void 0!==n&&n>=e.max&&(n=e.max),void 0!==n&&n<=e.min&&(n=e.min),o!==n&&(c.userInput=null,t("update:modelValue",n),t("input",n),t("change",n,o),c.currentValue=n)};return o.watch((()=>e.modelValue),(n=>{let o=void 0===n?n:Number(n);if(void 0!==o){if(isNaN(o))return;if(e.stepStrictly){const t=b(e.step),n=Math.pow(10,t);o=Math.round(o/e.step)*n*e.step/n}void 0!==e.precision&&(o=y(o,e.precision))}void 0!==o&&o>=e.max&&(o=e.max,t("update:modelValue",o)),void 0!==o&&o<=e.min&&(o=e.min,t("update:modelValue",o)),c.currentValue=o,c.userInput=null}),{immediate:!0}),o.onMounted((()=>{let n=a.value.input;n.setAttribute("role","spinbutton"),n.setAttribute("aria-valuemax",e.max),n.setAttribute("aria-valuemin",e.min),n.setAttribute("aria-valuenow",c.currentValue),n.setAttribute("aria-disabled",v.value),"Number"!==p(e.modelValue)&&void 0!==e.modelValue&&t("update:modelValue",void 0)})),o.onUpdated((()=>{a.value.input.setAttribute("aria-valuenow",c.currentValue)})),{input:a,displayValue:g,handleInput:e=>c.userInput=e,handleInputChange:e=>{const t=""===e?void 0:Number(e);isNaN(t)&&""!==e||x(t),c.userInput=null},controlsAtRight:h,decrease:()=>{if(v.value||u.value)return;const t=e.modelValue||0,n=w(t);x(n)},increase:()=>{if(v.value||d.value)return;const t=e.modelValue||0,n=_(t);x(n)},inputNumberSize:m,inputNumberDisabled:v,maxDisabled:d,minDisabled:u}}});f.render=function(e,t,n,r,i,s){const a=o.resolveComponent("el-input"),l=o.resolveDirective("repeat-click");return o.openBlock(),o.createBlock("div",{class:["el-input-number",e.inputNumberSize?"el-input-number--"+e.inputNumberSize:"",{"is-disabled":e.inputNumberDisabled},{"is-without-controls":!e.controls},{"is-controls-right":e.controlsAtRight}],onDragstart:t[5]||(t[5]=o.withModifiers((()=>{}),["prevent"]))},[e.controls?o.withDirectives((o.openBlock(),o.createBlock("span",{key:0,class:["el-input-number__decrease",{"is-disabled":e.minDisabled}],role:"button",onKeydown:t[1]||(t[1]=o.withKeys(((...t)=>e.decrease&&e.decrease(...t)),["enter"]))},[o.createVNode("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-down":"minus")},null,2)],34)),[[l,e.decrease]]):o.createCommentVNode("v-if",!0),e.controls?o.withDirectives((o.openBlock(),o.createBlock("span",{key:1,class:["el-input-number__increase",{"is-disabled":e.maxDisabled}],role:"button",onKeydown:t[2]||(t[2]=o.withKeys(((...t)=>e.increase&&e.increase(...t)),["enter"]))},[o.createVNode("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-up":"plus")},null,2)],34)),[[l,e.increase]]):o.createCommentVNode("v-if",!0),o.createVNode(a,{ref:"input","model-value":e.displayValue,placeholder:e.placeholder,disabled:e.inputNumberDisabled,size:e.inputNumberSize,max:e.max,min:e.min,name:e.name,label:e.label,onKeydown:[o.withKeys(o.withModifiers(e.increase,["prevent"]),["up"]),o.withKeys(o.withModifiers(e.decrease,["prevent"]),["down"])],onBlur:t[3]||(t[3]=t=>e.$emit("blur",t)),onFocus:t[4]||(t[4]=t=>e.$emit("focus",t)),onInput:e.handleInput,onChange:e.handleInputChange},null,8,["model-value","placeholder","disabled","size","max","min","name","label","onKeydown","onInput","onChange"])],34)},f.__file="packages/input-number/src/index.vue",f.install=e=>{e.component(f.name,f)};const h=f;t.default=h},1002:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(4865),r=n(3676),i=n(2532),s=n(5450),a=n(3566),l=n(6645),c=n(6801),u=n(7800);function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=d(a);let f;const h=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function m(e,t=1,n=null){var o;f||(f=document.createElement("textarea"),document.body.appendChild(f));const{paddingSize:r,borderSize:i,boxSizing:s,contextStyle:a}=function(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),o=parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),r=parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:h.map((e=>`${e}:${t.getPropertyValue(e)}`)).join(";"),paddingSize:o,borderSize:r,boxSizing:n}}(e);f.setAttribute("style",`${a};\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important;\n`),f.value=e.value||e.placeholder||"";let l=f.scrollHeight;const c={};"border-box"===s?l+=i:"content-box"===s&&(l-=r),f.value="";const u=f.scrollHeight-r;if(null!==t){let e=u*t;"border-box"===s&&(e=e+r+i),l=Math.max(e,l),c.minHeight=`${e}px`}if(null!==n){let e=u*n;"border-box"===s&&(e=e+r+i),l=Math.min(e,l)}return c.height=`${l}px`,null==(o=f.parentNode)||o.removeChild(f),f=null,c}var v=Object.defineProperty,g=Object.defineProperties,y=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertySymbols,_=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?v(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,k=(e,t)=>{for(var n in t||(t={}))_.call(t,n)&&x(e,n,t[n]);if(b)for(var n of b(t))w.call(t,n)&&x(e,n,t[n]);return e},E=(e,t)=>g(e,y(t));const C={suffix:"append",prefix:"prepend"};var S=o.defineComponent({name:"ElInput",inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text"},size:{type:String,validator:c.isValidComponentSize},resize:{type:String,validator:e=>["none","both","horizontal","vertical"].includes(e)},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off",validator:e=>["on","off"].includes(e)},placeholder:{type:String},form:{type:String,default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:String,default:""},prefixIcon:{type:String,default:""},label:{type:String},tabindex:{type:[Number,String]},validateEvent:{type:Boolean,default:!0},inputStyle:{type:Object,default:()=>({})}},emits:[i.UPDATE_MODEL_EVENT,"input","change","focus","blur","clear","mouseleave","mouseenter","keydown"],setup(e,t){const n=o.getCurrentInstance(),a=r.useAttrs(),c=s.useGlobalConfig(),d=o.inject(u.elFormKey,{}),f=o.inject(u.elFormItemKey,{}),h=o.ref(null),v=o.ref(null),g=o.ref(!1),y=o.ref(!1),b=o.ref(!1),_=o.ref(!1),w=o.shallowRef(e.inputStyle),x=o.computed((()=>h.value||v.value)),S=o.computed((()=>e.size||f.size||c.size)),O=o.computed((()=>d.statusIcon)),T=o.computed((()=>f.validateState||"")),V=o.computed((()=>i.VALIDATE_STATE_MAP[T.value])),B=o.computed((()=>E(k({},w.value),{resize:e.resize}))),M=o.computed((()=>e.disabled||d.disabled)),N=o.computed((()=>null===e.modelValue||void 0===e.modelValue?"":String(e.modelValue))),A=o.computed((()=>t.attrs.maxlength)),q=o.computed((()=>e.clearable&&!M.value&&!e.readonly&&N.value&&(g.value||y.value))),P=o.computed((()=>e.showPassword&&!M.value&&!e.readonly&&(!!N.value||g.value))),F=o.computed((()=>e.showWordLimit&&t.attrs.maxlength&&("text"===e.type||"textarea"===e.type)&&!M.value&&!e.readonly&&!e.showPassword)),L=o.computed((()=>"number"==typeof e.modelValue?String(e.modelValue).length:(e.modelValue||"").length)),D=o.computed((()=>F.value&&L.value>A.value)),I=()=>{const{type:t,autosize:n}=e;if(!p.default&&"textarea"===t)if(n){const t=s.isObject(n)?n.minRows:void 0,o=s.isObject(n)?n.maxRows:void 0;w.value=k(k({},e.inputStyle),m(v.value,t,o))}else w.value=E(k({},e.inputStyle),{minHeight:m(v.value).minHeight})},R=()=>{const e=x.value;e&&e.value!==N.value&&(e.value=N.value)},j=e=>{const{el:o}=n.vnode,r=Array.from(o.querySelectorAll(`.el-input__${e}`)).find((e=>e.parentNode===o));if(!r)return;const i=C[e];t.slots[i]?r.style.transform=`translateX(${"suffix"===e?"-":""}${o.querySelector(`.el-input-group__${i}`).offsetWidth}px)`:r.removeAttribute("style")},$=()=>{j("prefix"),j("suffix")},z=e=>{const{value:n}=e.target;b.value||n!==N.value&&(t.emit(i.UPDATE_MODEL_EVENT,n),t.emit("input",n),o.nextTick(R))},H=()=>{o.nextTick((()=>{x.value.focus()}))};o.watch((()=>e.modelValue),(t=>{var n;o.nextTick(I),e.validateEvent&&(null==(n=f.formItemMitt)||n.emit("el.form.change",[t]))})),o.watch(N,(()=>{R()})),o.watch((()=>e.type),(()=>{o.nextTick((()=>{R(),I(),$()}))})),o.onMounted((()=>{R(),$(),o.nextTick(I)})),o.onUpdated((()=>{o.nextTick($)}));return{input:h,textarea:v,attrs:a,inputSize:S,validateState:T,validateIcon:V,computedTextareaStyle:B,resizeTextarea:I,inputDisabled:M,showClear:q,showPwdVisible:P,isWordLimitVisible:F,upperLimit:A,textLength:L,hovering:y,inputExceed:D,passwordVisible:_,inputOrTextarea:x,handleInput:z,handleChange:e=>{t.emit("change",e.target.value)},handleFocus:e=>{g.value=!0,t.emit("focus",e)},handleBlur:n=>{var o;g.value=!1,t.emit("blur",n),e.validateEvent&&(null==(o=f.formItemMitt)||o.emit("el.form.blur",[e.modelValue]))},handleCompositionStart:()=>{b.value=!0},handleCompositionUpdate:e=>{const t=e.target.value,n=t[t.length-1]||"";b.value=!l.isKorean(n)},handleCompositionEnd:e=>{b.value&&(b.value=!1,z(e))},handlePasswordVisible:()=>{_.value=!_.value,H()},clear:()=>{t.emit(i.UPDATE_MODEL_EVENT,""),t.emit("change",""),t.emit("clear")},select:()=>{x.value.select()},focus:H,blur:()=>{x.value.blur()},getSuffixVisible:()=>t.slots.suffix||e.suffixIcon||q.value||e.showPassword||F.value||T.value&&O.value,onMouseLeave:e=>{y.value=!1,t.emit("mouseleave",e)},onMouseEnter:e=>{y.value=!0,t.emit("mouseenter",e)},handleKeydown:e=>{t.emit("keydown",e)}}}});const O={key:0,class:"el-input-group__prepend"},T={key:2,class:"el-input__prefix"},V={key:3,class:"el-input__suffix"},B={class:"el-input__suffix-inner"},M={key:3,class:"el-input__count"},N={class:"el-input__count-inner"},A={key:4,class:"el-input-group__append"},q={key:2,class:"el-input__count"};S.render=function(e,t,n,r,i,s){return o.openBlock(),o.createBlock("div",{class:["textarea"===e.type?"el-textarea":"el-input",e.inputSize?"el-input--"+e.inputSize:"",{"is-disabled":e.inputDisabled,"is-exceed":e.inputExceed,"el-input-group":e.$slots.prepend||e.$slots.append,"el-input-group--append":e.$slots.append,"el-input-group--prepend":e.$slots.prepend,"el-input--prefix":e.$slots.prefix||e.prefixIcon,"el-input--suffix":e.$slots.suffix||e.suffixIcon||e.clearable||e.showPassword,"el-input--suffix--password-clear":e.clearable&&e.showPassword},e.$attrs.class],style:e.$attrs.style,onMouseenter:t[20]||(t[20]=(...t)=>e.onMouseEnter&&e.onMouseEnter(...t)),onMouseleave:t[21]||(t[21]=(...t)=>e.onMouseLeave&&e.onMouseLeave(...t))},["textarea"!==e.type?(o.openBlock(),o.createBlock(o.Fragment,{key:0},[o.createCommentVNode(" 前置元素 "),e.$slots.prepend?(o.openBlock(),o.createBlock("div",O,[o.renderSlot(e.$slots,"prepend")])):o.createCommentVNode("v-if",!0),"textarea"!==e.type?(o.openBlock(),o.createBlock("input",o.mergeProps({key:1,ref:"input",class:"el-input__inner"},e.attrs,{type:e.showPassword?e.passwordVisible?"text":"password":e.type,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autocomplete,tabindex:e.tabindex,"aria-label":e.label,placeholder:e.placeholder,style:e.inputStyle,onCompositionstart:t[1]||(t[1]=(...t)=>e.handleCompositionStart&&e.handleCompositionStart(...t)),onCompositionupdate:t[2]||(t[2]=(...t)=>e.handleCompositionUpdate&&e.handleCompositionUpdate(...t)),onCompositionend:t[3]||(t[3]=(...t)=>e.handleCompositionEnd&&e.handleCompositionEnd(...t)),onInput:t[4]||(t[4]=(...t)=>e.handleInput&&e.handleInput(...t)),onFocus:t[5]||(t[5]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onBlur:t[6]||(t[6]=(...t)=>e.handleBlur&&e.handleBlur(...t)),onChange:t[7]||(t[7]=(...t)=>e.handleChange&&e.handleChange(...t)),onKeydown:t[8]||(t[8]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))}),null,16,["type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder"])):o.createCommentVNode("v-if",!0),o.createCommentVNode(" 前置内容 "),e.$slots.prefix||e.prefixIcon?(o.openBlock(),o.createBlock("span",T,[o.renderSlot(e.$slots,"prefix"),e.prefixIcon?(o.openBlock(),o.createBlock("i",{key:0,class:["el-input__icon",e.prefixIcon]},null,2)):o.createCommentVNode("v-if",!0)])):o.createCommentVNode("v-if",!0),o.createCommentVNode(" 后置内容 "),e.getSuffixVisible()?(o.openBlock(),o.createBlock("span",V,[o.createVNode("span",B,[e.showClear&&e.showPwdVisible&&e.isWordLimitVisible?o.createCommentVNode("v-if",!0):(o.openBlock(),o.createBlock(o.Fragment,{key:0},[o.renderSlot(e.$slots,"suffix"),e.suffixIcon?(o.openBlock(),o.createBlock("i",{key:0,class:["el-input__icon",e.suffixIcon]},null,2)):o.createCommentVNode("v-if",!0)],64)),e.showClear?(o.openBlock(),o.createBlock("i",{key:1,class:"el-input__icon el-icon-circle-close el-input__clear",onMousedown:t[9]||(t[9]=o.withModifiers((()=>{}),["prevent"])),onClick:t[10]||(t[10]=(...t)=>e.clear&&e.clear(...t))},null,32)):o.createCommentVNode("v-if",!0),e.showPwdVisible?(o.openBlock(),o.createBlock("i",{key:2,class:"el-input__icon el-icon-view el-input__clear",onClick:t[11]||(t[11]=(...t)=>e.handlePasswordVisible&&e.handlePasswordVisible(...t))})):o.createCommentVNode("v-if",!0),e.isWordLimitVisible?(o.openBlock(),o.createBlock("span",M,[o.createVNode("span",N,o.toDisplayString(e.textLength)+"/"+o.toDisplayString(e.upperLimit),1)])):o.createCommentVNode("v-if",!0)]),e.validateState?(o.openBlock(),o.createBlock("i",{key:0,class:["el-input__icon","el-input__validateIcon",e.validateIcon]},null,2)):o.createCommentVNode("v-if",!0)])):o.createCommentVNode("v-if",!0),o.createCommentVNode(" 后置元素 "),e.$slots.append?(o.openBlock(),o.createBlock("div",A,[o.renderSlot(e.$slots,"append")])):o.createCommentVNode("v-if",!0)],64)):(o.openBlock(),o.createBlock("textarea",o.mergeProps({key:1,ref:"textarea",class:"el-textarea__inner"},e.attrs,{tabindex:e.tabindex,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autocomplete,style:e.computedTextareaStyle,"aria-label":e.label,placeholder:e.placeholder,onCompositionstart:t[12]||(t[12]=(...t)=>e.handleCompositionStart&&e.handleCompositionStart(...t)),onCompositionupdate:t[13]||(t[13]=(...t)=>e.handleCompositionUpdate&&e.handleCompositionUpdate(...t)),onCompositionend:t[14]||(t[14]=(...t)=>e.handleCompositionEnd&&e.handleCompositionEnd(...t)),onInput:t[15]||(t[15]=(...t)=>e.handleInput&&e.handleInput(...t)),onFocus:t[16]||(t[16]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onBlur:t[17]||(t[17]=(...t)=>e.handleBlur&&e.handleBlur(...t)),onChange:t[18]||(t[18]=(...t)=>e.handleChange&&e.handleChange(...t)),onKeydown:t[19]||(t[19]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))}),"\n ",16,["tabindex","disabled","readonly","autocomplete","aria-label","placeholder"])),e.isWordLimitVisible&&"textarea"===e.type?(o.openBlock(),o.createBlock("span",q,o.toDisplayString(e.textLength)+"/"+o.toDisplayString(e.upperLimit),1)):o.createCommentVNode("v-if",!0)],38)},S.__file="packages/input/src/index.vue",S.install=e=>{e.component(S.name,S)};const P=S;t.default=P},3377:(e,t,n)=>{"use strict";const o=n(5853).Option;o.install=e=>{e.component(o.name,o)},t.Z=o},2815:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(4865),r=n(1617),i=n(6980),s=n(5450),a=n(9169),l=n(6722),c=n(7050),u=n(1247);function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=d(r),f=d(a);function h(e,t=[]){const{arrow:n,arrowOffset:o,offset:r,gpuAcceleration:i,fallbackPlacements:s}=e,a=[{name:"offset",options:{offset:[0,null!=r?r:12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:null!=s?s:[]}},{name:"computeStyles",options:{gpuAcceleration:i,adaptive:i}}];return n&&a.push({name:"arrow",options:{element:n,padding:null!=o?o:5}}),a.push(...t),a}var m,v=Object.defineProperty,g=Object.defineProperties,y=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertySymbols,_=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?v(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function k(e,t){return o.computed((()=>{var n,o,r;return o=((e,t)=>{for(var n in t||(t={}))_.call(t,n)&&x(e,n,t[n]);if(b)for(var n of b(t))w.call(t,n)&&x(e,n,t[n]);return e})({placement:e.placement},e.popperOptions),r={modifiers:h({arrow:t.arrow.value,arrowOffset:e.arrowOffset,offset:e.offset,gpuAcceleration:e.gpuAcceleration,fallbackPlacements:e.fallbackPlacements},null==(n=e.popperOptions)?void 0:n.modifiers)},g(o,y(r))}))}(m=t.Effect||(t.Effect={})).DARK="dark",m.LIGHT="light";var E={arrowOffset:{type:Number,default:5},appendToBody:{type:Boolean,default:!0},autoClose:{type:Number,default:0},boundariesPadding:{type:Number,default:0},content:{type:String,default:""},class:{type:String,default:""},style:Object,hideAfter:{type:Number,default:200},cutoff:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},effect:{type:String,default:t.Effect.DARK},enterable:{type:Boolean,default:!0},manualMode:{type:Boolean,default:!1},showAfter:{type:Number,default:0},offset:{type:Number,default:12},placement:{type:String,default:"bottom"},popperClass:{type:String,default:""},pure:{type:Boolean,default:!1},popperOptions:{type:Object,default:()=>null},showArrow:{type:Boolean,default:!0},strategy:{type:String,default:"fixed"},transition:{type:String,default:"el-fade-in-linear"},trigger:{type:[String,Array],default:"hover"},visible:{type:Boolean,default:void 0},stopPopperMouseEvent:{type:Boolean,default:!0},gpuAcceleration:{type:Boolean,default:!0},fallbackPlacements:{type:Array,default:[]}};function C(e,{emit:t}){const n=o.ref(null),r=o.ref(null),a=o.ref(null),l=`el-popper-${s.generateId()}`;let c=null,u=null,d=null,p=!1;const h=()=>e.manualMode||"manual"===e.trigger,m=o.ref({zIndex:f.default.nextZIndex()}),v=k(e,{arrow:n}),g=o.reactive({visible:!!e.visible}),y=o.computed({get:()=>!e.disabled&&(s.isBool(e.visible)?e.visible:g.visible),set(n){h()||(s.isBool(e.visible)?t("update:visible",n):g.visible=n)}});function b(){e.autoClose>0&&(d=window.setTimeout((()=>{_()}),e.autoClose)),y.value=!0}function _(){y.value=!1}function w(){clearTimeout(u),clearTimeout(d)}const x=()=>{h()||e.disabled||(w(),0===e.showAfter?b():u=window.setTimeout((()=>{b()}),e.showAfter))},E=()=>{h()||(w(),e.hideAfter>0?d=window.setTimeout((()=>{C()}),e.hideAfter):C())},C=()=>{_(),e.disabled&&O(!0)};function S(){if(!s.$(y))return;const e=s.$(r),t=s.isHTMLElement(e)?e:e.$el;c=i.createPopper(t,s.$(a),s.$(v)),c.update()}function O(e){!c||s.$(y)&&!e||T()}function T(){var e;null==(e=null==c?void 0:c.destroy)||e.call(c),c=null}const V={};if(!h()){const t=()=>{s.$(y)?E():x()},n=e=>{switch(e.stopPropagation(),e.type){case"click":p?p=!1:t();break;case"mouseenter":x();break;case"mouseleave":E();break;case"focus":p=!0,x();break;case"blur":p=!1,E()}},o={click:["onClick"],hover:["onMouseenter","onMouseleave"],focus:["onFocus","onBlur"]},r=e=>{o[e].forEach((e=>{V[e]=n}))};s.isArray(e.trigger)?Object.values(e.trigger).forEach(r):r(e.trigger)}return o.watch(v,(e=>{c&&(c.setOptions(e),c.update())})),o.watch(y,(function(e){e&&(m.value.zIndex=f.default.nextZIndex(),S())})),{update:function(){s.$(y)&&(c?c.update():S())},doDestroy:O,show:x,hide:E,onPopperMouseEnter:function(){e.enterable&&"click"!==e.trigger&&clearTimeout(d)},onPopperMouseLeave:function(){const{trigger:t}=e;s.isString(t)&&("click"===t||"focus"===t)||1===t.length&&("click"===t[0]||"focus"===t[0])||E()},onAfterEnter:()=>{t("after-enter")},onAfterLeave:()=>{T(),t("after-leave")},onBeforeEnter:()=>{t("before-enter")},onBeforeLeave:()=>{t("before-leave")},initializePopper:S,isManualMode:h,arrowRef:n,events:V,popperId:l,popperInstance:c,popperRef:a,popperStyle:m,triggerRef:r,visibility:y}}const S=()=>{};function O(e,t){const{effect:n,name:r,stopPopperMouseEvent:i,popperClass:s,popperStyle:a,popperRef:c,pure:u,popperId:d,visibility:p,onMouseenter:f,onMouseleave:h,onAfterEnter:m,onAfterLeave:v,onBeforeEnter:g,onBeforeLeave:y}=e,b=[s,"el-popper","is-"+n,u?"is-pure":""],_=i?l.stop:S;return o.h(o.Transition,{name:r,onAfterEnter:m,onAfterLeave:v,onBeforeEnter:g,onBeforeLeave:y},{default:o.withCtx((()=>[o.withDirectives(o.h("div",{"aria-hidden":String(!p),class:b,style:null!=a?a:{},id:d,ref:null!=c?c:"popperRef",role:"tooltip",onMouseenter:f,onMouseleave:h,onClick:l.stop,onMousedown:_,onMouseup:_},t),[[o.vShow,p]])]))})}function T(e,t){const n=c.getFirstValidNode(e,1);return n||p.default("renderTrigger","trigger expects single rooted node"),o.cloneVNode(n,t,!0)}function V(e){return e?o.h("div",{ref:"arrowRef",class:"el-popper__arrow","data-popper-arrow":""},null):o.h(o.Comment,null,"")}var B=Object.defineProperty,M=Object.getOwnPropertySymbols,N=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable,q=(e,t,n)=>t in e?B(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const P="ElPopper";var F=o.defineComponent({name:P,props:E,emits:["update:visible","after-enter","after-leave","before-enter","before-leave"],setup(e,t){t.slots.trigger||p.default(P,"Trigger must be provided");const n=C(e,t),r=()=>n.doDestroy(!0);return o.onMounted(n.initializePopper),o.onBeforeUnmount(r),o.onActivated(n.initializePopper),o.onDeactivated(r),n},render(){var e;const{$slots:t,appendToBody:n,class:r,style:i,effect:s,hide:a,onPopperMouseEnter:l,onPopperMouseLeave:c,onAfterEnter:d,onAfterLeave:p,onBeforeEnter:f,onBeforeLeave:h,popperClass:m,popperId:v,popperStyle:g,pure:y,showArrow:b,transition:_,visibility:w,stopPopperMouseEvent:x}=this,k=this.isManualMode(),E=V(b),C=O({effect:s,name:_,popperClass:m,popperId:v,popperStyle:g,pure:y,stopPopperMouseEvent:x,onMouseenter:l,onMouseleave:c,onAfterEnter:d,onAfterLeave:p,onBeforeEnter:f,onBeforeLeave:h,visibility:w},[o.renderSlot(t,"default",{},(()=>[o.toDisplayString(this.content)])),E]),S=null==(e=t.trigger)?void 0:e.call(t),B=((e,t)=>{for(var n in t||(t={}))N.call(t,n)&&q(e,n,t[n]);if(M)for(var n of M(t))A.call(t,n)&&q(e,n,t[n]);return e})({"aria-describedby":v,class:r,style:i,ref:"triggerRef"},this.events),P=k?T(S,B):o.withDirectives(T(S,B),[[u.ClickOutside,a]]);return o.h(o.Fragment,null,[P,o.h(o.Teleport,{to:"body",disabled:!n},[C])])}});F.__file="packages/popper/src/index.vue",F.install=e=>{e.component(F.name,F)};const L=F;t.default=L,t.defaultProps=E,t.renderArrow=V,t.renderPopper=O,t.renderTrigger=T,t.usePopper=C},4153:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(2406),r=n(5450),i=n(4865),s=n(6722);const a={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}};var l=i.defineComponent({name:"Bar",props:{vertical:Boolean,size:String,move:Number},setup(e){const t=i.ref(null),n=i.ref(null),o=i.inject("scrollbar",{}),r=i.inject("scrollbar-wrap",{}),l=i.computed((()=>a[e.vertical?"vertical":"horizontal"])),c=i.ref({}),u=i.ref(null),d=i.ref(null),p=i.ref(!1);let f=null;const h=e=>{e.stopImmediatePropagation(),u.value=!0,s.on(document,"mousemove",m),s.on(document,"mouseup",v),f=document.onselectstart,document.onselectstart=()=>!1},m=e=>{if(!1===u.value)return;const o=c.value[l.value.axis];if(!o)return;const i=100*(-1*(t.value.getBoundingClientRect()[l.value.direction]-e[l.value.client])-(n.value[l.value.offset]-o))/t.value[l.value.offset];r.value[l.value.scroll]=i*r.value[l.value.scrollSize]/100},v=()=>{u.value=!1,c.value[l.value.axis]=0,s.off(document,"mousemove",m),document.onselectstart=f,d.value&&(p.value=!1)},g=i.computed((()=>function({move:e,size:t,bar:n}){const o={},r=`translate${n.axis}(${e}%)`;return o[n.size]=t,o.transform=r,o.msTransform=r,o.webkitTransform=r,o}({size:e.size,move:e.move,bar:l.value}))),y=()=>{d.value=!1,p.value=!!e.size},b=()=>{d.value=!0,p.value=u.value};return i.onMounted((()=>{s.on(o.value,"mousemove",y),s.on(o.value,"mouseleave",b)})),i.onBeforeUnmount((()=>{s.off(document,"mouseup",v),s.off(o.value,"mousemove",y),s.off(o.value,"mouseleave",b)})),{instance:t,thumb:n,bar:l,clickTrackHandler:e=>{const o=100*(Math.abs(e.target.getBoundingClientRect()[l.value.direction]-e[l.value.client])-n.value[l.value.offset]/2)/t.value[l.value.offset];r.value[l.value.scroll]=o*r.value[l.value.scrollSize]/100},clickThumbHandler:e=>{e.stopPropagation(),e.ctrlKey||[1,2].includes(e.button)||(window.getSelection().removeAllRanges(),h(e),c.value[l.value.axis]=e.currentTarget[l.value.offset]-(e[l.value.client]-e.currentTarget.getBoundingClientRect()[l.value.direction]))},thumbStyle:g,visible:p}}});l.render=function(e,t,n,o,r,s){return i.openBlock(),i.createBlock(i.Transition,{name:"el-scrollbar-fade"},{default:i.withCtx((()=>[i.withDirectives(i.createVNode("div",{ref:"instance",class:["el-scrollbar__bar","is-"+e.bar.key],onMousedown:t[2]||(t[2]=(...t)=>e.clickTrackHandler&&e.clickTrackHandler(...t))},[i.createVNode("div",{ref:"thumb",class:"el-scrollbar__thumb",style:e.thumbStyle,onMousedown:t[1]||(t[1]=(...t)=>e.clickThumbHandler&&e.clickThumbHandler(...t))},null,36)],34),[[i.vShow,e.visible]])])),_:1})},l.__file="packages/scrollbar/src/bar.vue";var c=i.defineComponent({name:"ElScrollbar",components:{Bar:l},props:{height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:[String,Array],default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array],default:""},noresize:Boolean,tag:{type:String,default:"div"}},emits:["scroll"],setup(e,{emit:t}){const n=i.ref("0"),s=i.ref("0"),a=i.ref(0),l=i.ref(0),c=i.ref(null),u=i.ref(null),d=i.ref(null);i.provide("scrollbar",c),i.provide("scrollbar-wrap",u);const p=()=>{if(!u.value)return;const e=100*u.value.clientHeight/u.value.scrollHeight,t=100*u.value.clientWidth/u.value.scrollWidth;s.value=e<100?e+"%":"",n.value=t<100?t+"%":""},f=i.computed((()=>{let t=e.wrapStyle;return r.isArray(t)?(t=r.toObject(t),t.height=r.addUnit(e.height),t.maxHeight=r.addUnit(e.maxHeight)):r.isString(t)&&(t+=r.addUnit(e.height)?`height: ${r.addUnit(e.height)};`:"",t+=r.addUnit(e.maxHeight)?`max-height: ${r.addUnit(e.maxHeight)};`:""),t}));return i.onMounted((()=>{e.native||i.nextTick(p),e.noresize||(o.addResizeListener(d.value,p),addEventListener("resize",p))})),i.onBeforeUnmount((()=>{e.noresize||(o.removeResizeListener(d.value,p),removeEventListener("resize",p))})),{moveX:a,moveY:l,sizeWidth:n,sizeHeight:s,style:f,scrollbar:c,wrap:u,resize:d,update:p,handleScroll:()=>{u.value&&(l.value=100*u.value.scrollTop/u.value.clientHeight,a.value=100*u.value.scrollLeft/u.value.clientWidth,t("scroll",{scrollLeft:a.value,scrollTop:l.value}))}}}});const u={ref:"scrollbar",class:"el-scrollbar"};c.render=function(e,t,n,o,r,s){const a=i.resolveComponent("bar");return i.openBlock(),i.createBlock("div",u,[i.createVNode("div",{ref:"wrap",class:[e.wrapClass,"el-scrollbar__wrap",e.native?"":"el-scrollbar__wrap--hidden-default"],style:e.style,onScroll:t[1]||(t[1]=(...t)=>e.handleScroll&&e.handleScroll(...t))},[(i.openBlock(),i.createBlock(i.resolveDynamicComponent(e.tag),{ref:"resize",class:["el-scrollbar__view",e.viewClass],style:e.viewStyle},{default:i.withCtx((()=>[i.renderSlot(e.$slots,"default")])),_:3},8,["class","style"]))],38),e.native?i.createCommentVNode("v-if",!0):(i.openBlock(),i.createBlock(i.Fragment,{key:0},[i.createVNode(a,{move:e.moveX,size:e.sizeWidth},null,8,["move","size"]),i.createVNode(a,{vertical:"",move:e.moveY,size:e.sizeHeight},null,8,["move","size"])],64))],512)},c.__file="packages/scrollbar/src/index.vue",c.install=e=>{e.component(c.name,c)};const d=c;t.default=d},5853:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(4865),r=n(1002),i=n(5450),s=n(2406),a=n(4912),l=n(2815),c=n(4153),u=n(1247),d=n(7993),p=n(2532),f=n(6801),h=n(9652),m=n(9272),v=n(3566),g=n(4593),y=n(3279),b=n(6645),_=n(7800),w=n(8446),x=n(3676);function k(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var E=k(r),C=k(a),S=k(l),O=k(c),T=k(h),V=k(v),B=k(g),M=k(y),N=k(w);const A="ElSelect",q="elOptionQueryChange";var P=o.defineComponent({name:"ElOption",componentName:"ElOption",props:{value:{required:!0,type:[String,Number,Boolean,Object]},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},setup(e){const t=o.reactive({index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}),{currentLabel:n,itemSelected:r,isDisabled:s,select:a,hoverItem:l}=function(e,t){const n=o.inject(A),r=o.inject("ElSelectGroup",{disabled:!1}),s=o.computed((()=>"[object object]"===Object.prototype.toString.call(e.value).toLowerCase())),a=o.computed((()=>n.props.multiple?f(n.props.modelValue,e.value):h(e.value,n.props.modelValue))),l=o.computed((()=>{if(n.props.multiple){const e=n.props.modelValue||[];return!a.value&&e.length>=n.props.multipleLimit&&n.props.multipleLimit>0}return!1})),c=o.computed((()=>e.label||(s.value?"":e.value))),u=o.computed((()=>e.value||e.label||"")),d=o.computed((()=>e.disabled||t.groupDisabled||l.value)),p=o.getCurrentInstance(),f=(e=[],t)=>{if(s.value){const o=n.props.valueKey;return e&&e.some((e=>i.getValueByPath(e,o)===i.getValueByPath(t,o)))}return e&&e.indexOf(t)>-1},h=(e,t)=>{if(s.value){const{valueKey:o}=n.props;return i.getValueByPath(e,o)===i.getValueByPath(t,o)}return e===t};return o.watch((()=>c.value),(()=>{e.created||n.props.remote||n.setSelected()})),o.watch((()=>e.value),((t,o)=>{const{remote:r,valueKey:i}=n.props;if(!e.created&&!r){if(i&&"object"==typeof t&&"object"==typeof o&&t[i]===o[i])return;n.setSelected()}})),o.watch((()=>r.disabled),(()=>{t.groupDisabled=r.disabled}),{immediate:!0}),n.selectEmitter.on(q,(o=>{const r=new RegExp(i.escapeRegexpString(o),"i");t.visible=r.test(c.value)||e.created,t.visible||n.filteredOptionsCount--})),{select:n,currentLabel:c,currentValue:u,itemSelected:a,isDisabled:d,hoverItem:()=>{e.disabled||r.disabled||(n.hoverIndex=n.optionsArray.indexOf(p))}}}(e,t),{visible:c,hover:u}=o.toRefs(t),d=o.getCurrentInstance().proxy;return a.onOptionCreate(d),o.onBeforeUnmount((()=>{const{selected:t}=a;let n=a.props.multiple?t:[t];const o=a.cachedOptions.has(e.value),r=n.some((e=>e.value===d.value));o&&!r&&a.cachedOptions.delete(e.value),a.onOptionDestroy(e.value)})),{currentLabel:n,itemSelected:r,isDisabled:s,select:a,hoverItem:l,visible:c,hover:u,selectOptionClick:function(){!0!==e.disabled&&!0!==t.groupDisabled&&a.handleOptionSelect(d,!0)}}}});P.render=function(e,t,n,r,i,s){return o.withDirectives((o.openBlock(),o.createBlock("li",{class:["el-select-dropdown__item",{selected:e.itemSelected,"is-disabled":e.isDisabled,hover:e.hover}],onMouseenter:t[1]||(t[1]=(...t)=>e.hoverItem&&e.hoverItem(...t)),onClick:t[2]||(t[2]=o.withModifiers(((...t)=>e.selectOptionClick&&e.selectOptionClick(...t)),["stop"]))},[o.renderSlot(e.$slots,"default",{},(()=>[o.createVNode("span",null,o.toDisplayString(e.currentLabel),1)]))],34)),[[o.vShow,e.visible]])},P.__file="packages/select/src/option.vue";var F=o.defineComponent({name:"ElSelectDropdown",componentName:"ElSelectDropdown",setup(){const e=o.inject(A),t=o.computed((()=>e.props.popperClass)),n=o.computed((()=>e.props.multiple)),r=o.ref("");function i(){var t;r.value=(null==(t=e.selectWrapper)?void 0:t.getBoundingClientRect().width)+"px"}return o.onMounted((()=>{s.addResizeListener(e.selectWrapper,i)})),o.onBeforeUnmount((()=>{s.removeResizeListener(e.selectWrapper,i)})),{minWidth:r,popperClass:t,isMultiple:n}}});F.render=function(e,t,n,r,i,s){return o.openBlock(),o.createBlock("div",{class:["el-select-dropdown",[{"is-multiple":e.isMultiple},e.popperClass]],style:{minWidth:e.minWidth}},[o.renderSlot(e.$slots,"default")],6)},F.__file="packages/select/src/select-dropdown.vue";const L=e=>null!==e&&"object"==typeof e,D=Object.prototype.toString,I=e=>(e=>D.call(e))(e).slice(8,-1);const R=(e,t,n)=>{const r=i.useGlobalConfig(),s=o.ref(null),a=o.ref(null),l=o.ref(null),c=o.ref(null),u=o.ref(null),f=o.ref(null),h=o.ref(-1),v=o.inject(_.elFormKey,{}),g=o.inject(_.elFormItemKey,{}),y=o.computed((()=>!e.filterable||e.multiple||!i.isIE()&&!i.isEdge()&&!t.visible)),w=o.computed((()=>e.disabled||v.disabled)),x=o.computed((()=>{const n=e.multiple?Array.isArray(e.modelValue)&&e.modelValue.length>0:void 0!==e.modelValue&&null!==e.modelValue&&""!==e.modelValue;return e.clearable&&!w.value&&t.inputHovering&&n})),k=o.computed((()=>e.remote&&e.filterable?"":t.visible?"arrow-up is-reverse":"arrow-up")),E=o.computed((()=>e.remote?300:0)),C=o.computed((()=>e.loading?e.loadingText||d.t("el.select.loading"):(!e.remote||""!==t.query||0!==t.options.size)&&(e.filterable&&t.query&&t.options.size>0&&0===t.filteredOptionsCount?e.noMatchText||d.t("el.select.noMatch"):0===t.options.size?e.noDataText||d.t("el.select.noData"):null))),S=o.computed((()=>Array.from(t.options.values()))),O=o.computed((()=>Array.from(t.cachedOptions.values()))),T=o.computed((()=>{const n=S.value.filter((e=>!e.created)).some((e=>e.currentLabel===t.query));return e.filterable&&e.allowCreate&&""!==t.query&&!n})),A=o.computed((()=>e.size||g.size||r.size)),q=o.computed((()=>["small","mini"].indexOf(A.value)>-1?"mini":"small")),P=o.computed((()=>t.visible&&!1!==C.value));o.watch((()=>w.value),(()=>{o.nextTick((()=>{F()}))})),o.watch((()=>e.placeholder),(e=>{t.cachedPlaceHolder=t.currentPlaceholder=e})),o.watch((()=>e.modelValue),((n,o)=>{var r;e.multiple&&(F(),n&&n.length>0||a.value&&""!==t.query?t.currentPlaceholder="":t.currentPlaceholder=t.cachedPlaceHolder,e.filterable&&!e.reserveKeyword&&(t.query="",D(t.query))),$(),e.filterable&&!e.multiple&&(t.inputLength=20),N.default(n,o)||null==(r=g.formItemMitt)||r.emit("el.form.change",n)}),{flush:"post",deep:!0}),o.watch((()=>t.visible),(r=>{var i,s;r?(null==(s=null==(i=l.value)?void 0:i.update)||s.call(i),e.filterable&&(t.filteredOptionsCount=t.optionsCount,t.query=e.remote?"":t.selectedLabel,e.multiple?a.value.focus():t.selectedLabel&&(t.currentPlaceholder=t.selectedLabel,t.selectedLabel=""),D(t.query),e.multiple||e.remote||(t.selectEmitter.emit("elOptionQueryChange",""),t.selectEmitter.emit("elOptionGroupQueryChange")))):(a.value&&a.value.blur(),t.query="",t.previousQuery=null,t.selectedLabel="",t.inputLength=20,t.menuVisibleOnFocus=!1,H(),o.nextTick((()=>{a.value&&""===a.value.value&&0===t.selected.length&&(t.currentPlaceholder=t.cachedPlaceHolder)})),e.multiple||(t.selected&&(e.filterable&&e.allowCreate&&t.createdSelected&&t.createdLabel?t.selectedLabel=t.createdLabel:t.selectedLabel=t.selected.currentLabel,e.filterable&&(t.query=t.selectedLabel)),e.filterable&&(t.currentPlaceholder=t.cachedPlaceHolder))),n.emit("visible-change",r)})),o.watch((()=>t.options.entries()),(()=>{var n,o,r;if(V.default)return;null==(o=null==(n=l.value)?void 0:n.update)||o.call(n),e.multiple&&F();const i=(null==(r=u.value)?void 0:r.querySelectorAll("input"))||[];-1===[].indexOf.call(i,document.activeElement)&&$(),e.defaultFirstOption&&(e.filterable||e.remote)&&t.filteredOptionsCount&&j()}),{flush:"post"}),o.watch((()=>t.hoverIndex),(e=>{"number"==typeof e&&e>-1&&(h.value=S.value[e]||{}),S.value.forEach((e=>{e.hover=h.value===e}))}));const F=()=>{e.collapseTags&&!e.filterable||o.nextTick((()=>{var e,n;if(!s.value)return;const o=s.value.$el.childNodes,r=[].filter.call(o,(e=>"INPUT"===e.tagName))[0],i=c.value,a=t.initialInputHeight||40;r.style.height=0===t.selected.length?a+"px":Math.max(i?i.clientHeight+(i.clientHeight>a?6:0):0,a)+"px",t.tagInMultiLine=parseFloat(r.style.height)>a,t.visible&&!1!==C.value&&(null==(n=null==(e=l.value)?void 0:e.update)||n.call(e))}))},D=n=>{t.previousQuery===n||t.isOnComposition||(null!==t.previousQuery||"function"!=typeof e.filterMethod&&"function"!=typeof e.remoteMethod?(t.previousQuery=n,o.nextTick((()=>{var e,n;t.visible&&(null==(n=null==(e=l.value)?void 0:e.update)||n.call(e))})),t.hoverIndex=-1,e.multiple&&e.filterable&&o.nextTick((()=>{const n=15*a.value.length+20;t.inputLength=e.collapseTags?Math.min(50,n):n,R(),F()})),e.remote&&"function"==typeof e.remoteMethod?(t.hoverIndex=-1,e.remoteMethod(n)):"function"==typeof e.filterMethod?(e.filterMethod(n),t.selectEmitter.emit("elOptionGroupQueryChange")):(t.filteredOptionsCount=t.optionsCount,t.selectEmitter.emit("elOptionQueryChange",n),t.selectEmitter.emit("elOptionGroupQueryChange")),e.defaultFirstOption&&(e.filterable||e.remote)&&t.filteredOptionsCount&&j()):t.previousQuery=n)},R=()=>{""!==t.currentPlaceholder&&(t.currentPlaceholder=a.value.value?"":t.cachedPlaceHolder)},j=()=>{t.hoverIndex=-1;let e=!1;for(let n=t.options.size-1;n>=0;n--)if(S.value[n].created){e=!0,t.hoverIndex=n;break}if(!e)for(let e=0;e!==t.options.size;++e){const n=S.value[e];if(t.query){if(!n.disabled&&!n.groupDisabled&&n.visible){t.hoverIndex=e;break}}else if(n.itemSelected){t.hoverIndex=e;break}}},$=()=>{var n;if(!e.multiple){const o=z(e.modelValue);return(null==(n=o.props)?void 0:n.created)?(t.createdLabel=o.props.value,t.createdSelected=!0):t.createdSelected=!1,t.selectedLabel=o.currentLabel,t.selected=o,void(e.filterable&&(t.query=t.selectedLabel))}const r=[];Array.isArray(e.modelValue)&&e.modelValue.forEach((e=>{r.push(z(e))})),t.selected=r,o.nextTick((()=>{F()}))},z=n=>{let o;const r="object"===I(n).toLowerCase(),s="null"===I(n).toLowerCase(),a="undefined"===I(n).toLowerCase();for(let s=t.cachedOptions.size-1;s>=0;s--){const t=O.value[s];if(r?i.getValueByPath(t.value,e.valueKey)===i.getValueByPath(n,e.valueKey):t.value===n){o={value:n,currentLabel:t.currentLabel,isDisabled:t.isDisabled};break}}if(o)return o;const l={value:n,currentLabel:r||s||a?"":n};return e.multiple&&(l.hitState=!1),l},H=()=>{setTimeout((()=>{e.multiple?t.selected.length>0?t.hoverIndex=Math.min.apply(null,t.selected.map((e=>S.value.indexOf(e)))):t.hoverIndex=-1:t.hoverIndex=S.value.indexOf(t.selected)}),300)},U=()=>{var e;t.inputWidth=null==(e=s.value)?void 0:e.$el.getBoundingClientRect().width},K=M.default((()=>{e.filterable&&t.query!==t.selectedLabel&&(t.query=t.selectedLabel,D(t.query))}),E.value),W=M.default((e=>{D(e.target.value)}),E.value),Q=t=>{N.default(e.modelValue,t)||n.emit(p.CHANGE_EVENT,t)},Y=o=>{o.stopPropagation();const r=e.multiple?[]:"";if("string"!=typeof r)for(const e of t.selected)e.isDisabled&&r.push(e.value);n.emit(p.UPDATE_MODEL_EVENT,r),Q(r),t.visible=!1,n.emit("clear")},G=(r,i)=>{if(e.multiple){const o=(e.modelValue||[]).slice(),i=Z(o,r.value);i>-1?o.splice(i,1):(e.multipleLimit<=0||o.length{X(r)}))},Z=(t=[],n)=>{if(!L(n))return t.indexOf(n);const o=e.valueKey;let r=-1;return t.some(((e,t)=>i.getValueByPath(e,o)===i.getValueByPath(n,o)&&(r=t,!0))),r},J=()=>{t.softFocus=!0;const e=a.value||s.value;e&&e.focus()},X=e=>{var t,n,o,r;const i=Array.isArray(e)?e[0]:e;let s=null;if(null==i?void 0:i.value){const e=S.value.filter((e=>e.value===i.value));e.length>0&&(s=e[0].$el)}if(l.value&&s){const e=null==(o=null==(n=null==(t=l.value)?void 0:t.popperRef)?void 0:n.querySelector)?void 0:o.call(n,".el-select-dropdown__wrap");e&&B.default(e,s)}null==(r=f.value)||r.handleScroll()},ee=e=>{if(!Array.isArray(t.selected))return;const n=t.selected[t.selected.length-1];return n?!0===e||!1===e?(n.hitState=e,e):(n.hitState=!n.hitState,n.hitState):void 0},te=()=>{e.automaticDropdown||w.value||(t.menuVisibleOnFocus?t.menuVisibleOnFocus=!1:t.visible=!t.visible,t.visible&&(a.value||s.value).focus())},ne=o.computed((()=>S.value.filter((e=>e.visible)).every((e=>e.disabled)))),oe=e=>{if(t.visible){if(0!==t.options.size&&0!==t.filteredOptionsCount&&!ne.value){"next"===e?(t.hoverIndex++,t.hoverIndex===t.options.size&&(t.hoverIndex=0)):"prev"===e&&(t.hoverIndex--,t.hoverIndex<0&&(t.hoverIndex=t.options.size-1));const n=S.value[t.hoverIndex];!0!==n.disabled&&!0!==n.groupDisabled&&n.visible||oe(e),o.nextTick((()=>X(h.value)))}}else t.visible=!0};return{optionsArray:S,selectSize:A,handleResize:()=>{var t,n;U(),null==(n=null==(t=l.value)?void 0:t.update)||n.call(t),e.multiple&&F()},debouncedOnInputChange:K,debouncedQueryChange:W,deletePrevTag:o=>{if(o.target.value.length<=0&&!ee()){const t=e.modelValue.slice();t.pop(),n.emit(p.UPDATE_MODEL_EVENT,t),Q(t)}1===o.target.value.length&&0===e.modelValue.length&&(t.currentPlaceholder=t.cachedPlaceHolder)},deleteTag:(o,r)=>{const i=t.selected.indexOf(r);if(i>-1&&!w.value){const t=e.modelValue.slice();t.splice(i,1),n.emit(p.UPDATE_MODEL_EVENT,t),Q(t),n.emit("remove-tag",r.value)}o.stopPropagation()},deleteSelected:Y,handleOptionSelect:G,scrollToOption:X,readonly:y,resetInputHeight:F,showClose:x,iconClass:k,showNewOption:T,collapseTagSize:q,setSelected:$,managePlaceholder:R,selectDisabled:w,emptyText:C,toggleLastOptionHitState:ee,resetInputState:e=>{e.code!==m.EVENT_CODE.backspace&&ee(!1),t.inputLength=15*a.value.length+20,F()},handleComposition:e=>{const n=e.target.value;if("compositionend"===e.type)t.isOnComposition=!1,o.nextTick((()=>D(n)));else{const e=n[n.length-1]||"";t.isOnComposition=!b.isKorean(e)}},onOptionCreate:e=>{t.optionsCount++,t.filteredOptionsCount++,t.options.set(e.value,e),t.cachedOptions.set(e.value,e)},onOptionDestroy:e=>{t.optionsCount--,t.filteredOptionsCount--,t.options.delete(e)},handleMenuEnter:()=>{o.nextTick((()=>X(t.selected)))},handleFocus:o=>{t.softFocus?t.softFocus=!1:((e.automaticDropdown||e.filterable)&&(t.visible=!0,e.filterable&&(t.menuVisibleOnFocus=!0)),n.emit("focus",o))},blur:()=>{t.visible=!1,s.value.blur()},handleBlur:e=>{o.nextTick((()=>{t.isSilentBlur?t.isSilentBlur=!1:n.emit("blur",e)})),t.softFocus=!1},handleClearClick:e=>{Y(e)},handleClose:()=>{t.visible=!1},toggleMenu:te,selectOption:()=>{t.visible?S.value[t.hoverIndex]&&G(S.value[t.hoverIndex],void 0):te()},getValueKey:t=>L(t.value)?i.getValueByPath(t.value,e.valueKey):t.value,navigateOptions:oe,dropMenuVisible:P,reference:s,input:a,popper:l,tags:c,selectWrapper:u,scrollbar:f}};var j=o.defineComponent({name:"ElSelect",componentName:"ElSelect",components:{ElInput:E.default,ElSelectMenu:F,ElOption:P,ElTag:C.default,ElScrollbar:O.default,ElPopper:S.default},directives:{ClickOutside:u.ClickOutside},props:{name:String,id:String,modelValue:[Array,String,Number,Boolean,Object],autocomplete:{type:String,default:"off"},automaticDropdown:Boolean,size:{type:String,validator:f.isValidComponentSize},disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:{type:String,default:""},remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String},defaultFirstOption:Boolean,reserveKeyword:Boolean,valueKey:{type:String,default:"value"},collapseTags:Boolean,popperAppendToBody:{type:Boolean,default:!0},clearIcon:{type:String,default:"el-icon-circle-close"}},emits:[p.UPDATE_MODEL_EVENT,p.CHANGE_EVENT,"remove-tag","clear","visible-change","focus","blur"],setup(e,t){const n=function(e){const t=T.default();return o.reactive({options:new Map,cachedOptions:new Map,createdLabel:null,createdSelected:!1,selected:e.multiple?[]:{},inputLength:20,inputWidth:0,initialInputHeight:0,optionsCount:0,filteredOptionsCount:0,visible:!1,softFocus:!1,selectedLabel:"",hoverIndex:-1,query:"",previousQuery:null,inputHovering:!1,cachedPlaceHolder:"",currentPlaceholder:d.t("el.select.placeholder"),menuVisibleOnFocus:!1,isOnComposition:!1,isSilentBlur:!1,selectEmitter:t,prefixWidth:null,tagInMultiLine:!1})}(e),{optionsArray:r,selectSize:i,readonly:a,handleResize:l,collapseTagSize:c,debouncedOnInputChange:u,debouncedQueryChange:f,deletePrevTag:h,deleteTag:m,deleteSelected:v,handleOptionSelect:g,scrollToOption:y,setSelected:b,resetInputHeight:_,managePlaceholder:w,showClose:k,selectDisabled:E,iconClass:C,showNewOption:S,emptyText:O,toggleLastOptionHitState:V,resetInputState:B,handleComposition:M,onOptionCreate:N,onOptionDestroy:q,handleMenuEnter:P,handleFocus:F,blur:L,handleBlur:D,handleClearClick:I,handleClose:j,toggleMenu:$,selectOption:z,getValueKey:H,navigateOptions:U,dropMenuVisible:K,reference:W,input:Q,popper:Y,tags:G,selectWrapper:Z,scrollbar:J}=R(e,n,t),{focus:X}=x.useFocus(W),{inputWidth:ee,selected:te,inputLength:ne,filteredOptionsCount:oe,visible:re,softFocus:ie,selectedLabel:se,hoverIndex:ae,query:le,inputHovering:ce,currentPlaceholder:ue,menuVisibleOnFocus:de,isOnComposition:pe,isSilentBlur:fe,options:he,cachedOptions:me,optionsCount:ve,prefixWidth:ge,tagInMultiLine:ye}=o.toRefs(n);o.provide(A,o.reactive({props:e,options:he,optionsArray:r,cachedOptions:me,optionsCount:ve,filteredOptionsCount:oe,hoverIndex:ae,handleOptionSelect:g,selectEmitter:n.selectEmitter,onOptionCreate:N,onOptionDestroy:q,selectWrapper:Z,selected:te,setSelected:b})),o.onMounted((()=>{if(n.cachedPlaceHolder=ue.value=e.placeholder||d.t("el.select.placeholder"),e.multiple&&Array.isArray(e.modelValue)&&e.modelValue.length>0&&(ue.value=""),s.addResizeListener(Z.value,l),W.value&&W.value.$el){const e={medium:36,small:32,mini:28},t=W.value.input;n.initialInputHeight=t.getBoundingClientRect().height||e[i.value]}e.remote&&e.multiple&&_(),o.nextTick((()=>{if(W.value.$el&&(ee.value=W.value.$el.getBoundingClientRect().width),t.slots.prefix){const e=W.value.$el.childNodes,t=[].filter.call(e,(e=>"INPUT"===e.tagName))[0],o=W.value.$el.querySelector(".el-input__prefix");ge.value=Math.max(o.getBoundingClientRect().width+5,30),n.prefixWidth&&(t.style.paddingLeft=`${Math.max(n.prefixWidth,30)}px`)}})),b()})),o.onBeforeUnmount((()=>{s.removeResizeListener(Z.value,l)})),e.multiple&&!Array.isArray(e.modelValue)&&t.emit(p.UPDATE_MODEL_EVENT,[]),!e.multiple&&Array.isArray(e.modelValue)&&t.emit(p.UPDATE_MODEL_EVENT,"");const be=o.computed((()=>{var e;return null==(e=Y.value)?void 0:e.popperRef}));return{tagInMultiLine:ye,prefixWidth:ge,selectSize:i,readonly:a,handleResize:l,collapseTagSize:c,debouncedOnInputChange:u,debouncedQueryChange:f,deletePrevTag:h,deleteTag:m,deleteSelected:v,handleOptionSelect:g,scrollToOption:y,inputWidth:ee,selected:te,inputLength:ne,filteredOptionsCount:oe,visible:re,softFocus:ie,selectedLabel:se,hoverIndex:ae,query:le,inputHovering:ce,currentPlaceholder:ue,menuVisibleOnFocus:de,isOnComposition:pe,isSilentBlur:fe,options:he,resetInputHeight:_,managePlaceholder:w,showClose:k,selectDisabled:E,iconClass:C,showNewOption:S,emptyText:O,toggleLastOptionHitState:V,resetInputState:B,handleComposition:M,handleMenuEnter:P,handleFocus:F,blur:L,handleBlur:D,handleClearClick:I,handleClose:j,toggleMenu:$,selectOption:z,getValueKey:H,navigateOptions:U,dropMenuVisible:K,focus:X,reference:W,input:Q,popper:Y,popperPaneRef:be,tags:G,selectWrapper:Z,scrollbar:J}}});const $={class:"select-trigger"},z={key:0},H={class:"el-select__tags-text"},U={style:{height:"100%",display:"flex","justify-content":"center","align-items":"center"}},K={key:1,class:"el-select-dropdown__empty"};j.render=function(e,t,n,r,i,s){const a=o.resolveComponent("el-tag"),l=o.resolveComponent("el-input"),c=o.resolveComponent("el-option"),u=o.resolveComponent("el-scrollbar"),d=o.resolveComponent("el-select-menu"),p=o.resolveComponent("el-popper"),f=o.resolveDirective("click-outside");return o.withDirectives((o.openBlock(),o.createBlock("div",{ref:"selectWrapper",class:["el-select",[e.selectSize?"el-select--"+e.selectSize:""]],onClick:t[26]||(t[26]=o.withModifiers(((...t)=>e.toggleMenu&&e.toggleMenu(...t)),["stop"]))},[o.createVNode(p,{ref:"popper",visible:e.dropMenuVisible,"onUpdate:visible":t[25]||(t[25]=t=>e.dropMenuVisible=t),placement:"bottom-start","append-to-body":e.popperAppendToBody,"popper-class":`el-select__popper ${e.popperClass}`,"fallback-placements":["auto"],"manual-mode":"",effect:"light",pure:"",trigger:"click",transition:"el-zoom-in-top","stop-popper-mouse-event":!1,"gpu-acceleration":!1,onBeforeEnter:e.handleMenuEnter},{trigger:o.withCtx((()=>[o.createVNode("div",$,[e.multiple?(o.openBlock(),o.createBlock("div",{key:0,ref:"tags",class:"el-select__tags",style:{"max-width":e.inputWidth-32+"px",width:"100%"}},[e.collapseTags&&e.selected.length?(o.openBlock(),o.createBlock("span",z,[o.createVNode(a,{closable:!e.selectDisabled&&!e.selected[0].isDisabled,size:e.collapseTagSize,hit:e.selected[0].hitState,type:"info","disable-transitions":"",onClose:t[1]||(t[1]=t=>e.deleteTag(t,e.selected[0]))},{default:o.withCtx((()=>[o.createVNode("span",{class:"el-select__tags-text",style:{"max-width":e.inputWidth-123+"px"}},o.toDisplayString(e.selected[0].currentLabel),5)])),_:1},8,["closable","size","hit"]),e.selected.length>1?(o.openBlock(),o.createBlock(a,{key:0,closable:!1,size:e.collapseTagSize,type:"info","disable-transitions":""},{default:o.withCtx((()=>[o.createVNode("span",H,"+ "+o.toDisplayString(e.selected.length-1),1)])),_:1},8,["size"])):o.createCommentVNode("v-if",!0)])):o.createCommentVNode("v-if",!0),o.createCommentVNode("
"),e.collapseTags?o.createCommentVNode("v-if",!0):(o.openBlock(),o.createBlock(o.Transition,{key:1,onAfterLeave:e.resetInputHeight},{default:o.withCtx((()=>[o.createVNode("span",{style:{marginLeft:e.prefixWidth&&e.selected.length?`${e.prefixWidth}px`:null}},[(o.openBlock(!0),o.createBlock(o.Fragment,null,o.renderList(e.selected,(t=>(o.openBlock(),o.createBlock(a,{key:e.getValueKey(t),closable:!e.selectDisabled&&!t.isDisabled,size:e.collapseTagSize,hit:t.hitState,type:"info","disable-transitions":"",onClose:n=>e.deleteTag(n,t)},{default:o.withCtx((()=>[o.createVNode("span",{class:"el-select__tags-text",style:{"max-width":e.inputWidth-75+"px"}},o.toDisplayString(t.currentLabel),5)])),_:2},1032,["closable","size","hit","onClose"])))),128))],4)])),_:1},8,["onAfterLeave"])),o.createCommentVNode("
"),e.filterable?o.withDirectives((o.openBlock(),o.createBlock("input",{key:2,ref:"input","onUpdate:modelValue":t[2]||(t[2]=t=>e.query=t),type:"text",class:["el-select__input",[e.selectSize?`is-${e.selectSize}`:""]],disabled:e.selectDisabled,autocomplete:e.autocomplete,style:{marginLeft:e.prefixWidth&&!e.selected.length||e.tagInMultiLine?`${e.prefixWidth}px`:null,flexGrow:"1",width:e.inputLength/(e.inputWidth-32)+"%",maxWidth:e.inputWidth-42+"px"},onFocus:t[3]||(t[3]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onBlur:t[4]||(t[4]=(...t)=>e.handleBlur&&e.handleBlur(...t)),onKeyup:t[5]||(t[5]=(...t)=>e.managePlaceholder&&e.managePlaceholder(...t)),onKeydown:[t[6]||(t[6]=(...t)=>e.resetInputState&&e.resetInputState(...t)),t[7]||(t[7]=o.withKeys(o.withModifiers((t=>e.navigateOptions("next")),["prevent"]),["down"])),t[8]||(t[8]=o.withKeys(o.withModifiers((t=>e.navigateOptions("prev")),["prevent"]),["up"])),t[9]||(t[9]=o.withKeys(o.withModifiers((t=>e.visible=!1),["stop","prevent"]),["esc"])),t[10]||(t[10]=o.withKeys(o.withModifiers(((...t)=>e.selectOption&&e.selectOption(...t)),["stop","prevent"]),["enter"])),t[11]||(t[11]=o.withKeys(((...t)=>e.deletePrevTag&&e.deletePrevTag(...t)),["delete"])),t[12]||(t[12]=o.withKeys((t=>e.visible=!1),["tab"]))],onCompositionstart:t[13]||(t[13]=(...t)=>e.handleComposition&&e.handleComposition(...t)),onCompositionupdate:t[14]||(t[14]=(...t)=>e.handleComposition&&e.handleComposition(...t)),onCompositionend:t[15]||(t[15]=(...t)=>e.handleComposition&&e.handleComposition(...t)),onInput:t[16]||(t[16]=(...t)=>e.debouncedQueryChange&&e.debouncedQueryChange(...t))},null,46,["disabled","autocomplete"])),[[o.vModelText,e.query]]):o.createCommentVNode("v-if",!0)],4)):o.createCommentVNode("v-if",!0),o.createVNode(l,{id:e.id,ref:"reference",modelValue:e.selectedLabel,"onUpdate:modelValue":t[18]||(t[18]=t=>e.selectedLabel=t),type:"text",placeholder:e.currentPlaceholder,name:e.name,autocomplete:e.autocomplete,size:e.selectSize,disabled:e.selectDisabled,readonly:e.readonly,"validate-event":!1,class:{"is-focus":e.visible},tabindex:e.multiple&&e.filterable?"-1":null,onFocus:e.handleFocus,onBlur:e.handleBlur,onInput:e.debouncedOnInputChange,onPaste:e.debouncedOnInputChange,onKeydown:[t[19]||(t[19]=o.withKeys(o.withModifiers((t=>e.navigateOptions("next")),["stop","prevent"]),["down"])),t[20]||(t[20]=o.withKeys(o.withModifiers((t=>e.navigateOptions("prev")),["stop","prevent"]),["up"])),o.withKeys(o.withModifiers(e.selectOption,["stop","prevent"]),["enter"]),t[21]||(t[21]=o.withKeys(o.withModifiers((t=>e.visible=!1),["stop","prevent"]),["esc"])),t[22]||(t[22]=o.withKeys((t=>e.visible=!1),["tab"]))],onMouseenter:t[23]||(t[23]=t=>e.inputHovering=!0),onMouseleave:t[24]||(t[24]=t=>e.inputHovering=!1)},o.createSlots({suffix:o.withCtx((()=>[o.withDirectives(o.createVNode("i",{class:["el-select__caret","el-input__icon","el-icon-"+e.iconClass]},null,2),[[o.vShow,!e.showClose]]),e.showClose?(o.openBlock(),o.createBlock("i",{key:0,class:`el-select__caret el-input__icon ${e.clearIcon}`,onClick:t[17]||(t[17]=(...t)=>e.handleClearClick&&e.handleClearClick(...t))},null,2)):o.createCommentVNode("v-if",!0)])),_:2},[e.$slots.prefix?{name:"prefix",fn:o.withCtx((()=>[o.createVNode("div",U,[o.renderSlot(e.$slots,"prefix")])]))}:void 0]),1032,["id","modelValue","placeholder","name","autocomplete","size","disabled","readonly","class","tabindex","onFocus","onBlur","onInput","onPaste","onKeydown"])])])),default:o.withCtx((()=>[o.createVNode(d,null,{default:o.withCtx((()=>[o.withDirectives(o.createVNode(u,{ref:"scrollbar",tag:"ul","wrap-class":"el-select-dropdown__wrap","view-class":"el-select-dropdown__list",class:{"is-empty":!e.allowCreate&&e.query&&0===e.filteredOptionsCount}},{default:o.withCtx((()=>[e.showNewOption?(o.openBlock(),o.createBlock(c,{key:0,value:e.query,created:!0},null,8,["value"])):o.createCommentVNode("v-if",!0),o.renderSlot(e.$slots,"default")])),_:3},8,["class"]),[[o.vShow,e.options.size>0&&!e.loading]]),e.emptyText&&(!e.allowCreate||e.loading||e.allowCreate&&0===e.options.size)?(o.openBlock(),o.createBlock(o.Fragment,{key:0},[e.$slots.empty?o.renderSlot(e.$slots,"empty",{key:0}):(o.openBlock(),o.createBlock("p",K,o.toDisplayString(e.emptyText),1))],2112)):o.createCommentVNode("v-if",!0)])),_:3})])),_:1},8,["visible","append-to-body","popper-class","onBeforeEnter"])],2)),[[f,e.handleClose,e.popperPaneRef]])},j.__file="packages/select/src/select.vue",j.install=e=>{e.component(j.name,j)};const W=j;t.Option=P,t.default=W},6483:(e,t,n)=>{"use strict";var o=n(4865),r=n(2532),i=n(6722),s=n(1617),a=n(4167),l=n(8782),c=n(3279),u=n(7800);function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=d(s),f=d(a),h=d(l),m=d(c);const v=(e,t,n)=>{const{disabled:s,min:a,max:l,step:c,showTooltip:u,precision:d,sliderSize:p,formatTooltip:f,emitChange:h,resetSize:v,updateDragging:g}=o.inject("SliderProvider"),{tooltip:y,tooltipVisible:b,formatValue:_,displayTooltip:w,hideTooltip:x}=((e,t,n)=>{const r=o.ref(null),i=o.ref(!1),s=o.computed((()=>t.value instanceof Function)),a=o.computed((()=>s.value&&t.value(e.modelValue)||e.modelValue)),l=m.default((()=>{n.value&&(i.value=!0)}),50),c=m.default((()=>{n.value&&(i.value=!1)}),50);return{tooltip:r,tooltipVisible:i,formatValue:a,displayTooltip:l,hideTooltip:c}})(e,f,u),k=o.computed((()=>(e.modelValue-a.value)/(l.value-a.value)*100+"%")),E=o.computed((()=>e.vertical?{bottom:k.value}:{left:k.value})),C=e=>{let t,n;return e.type.startsWith("touch")?(n=e.touches[0].clientY,t=e.touches[0].clientX):(n=e.clientY,t=e.clientX),{clientX:t,clientY:n}},S=n=>{t.dragging=!0,t.isClick=!0;const{clientX:o,clientY:r}=C(n);e.vertical?t.startY=r:t.startX=o,t.startPosition=parseFloat(k.value),t.newPosition=t.startPosition},O=n=>{if(t.dragging){let o;t.isClick=!1,w(),v();const{clientX:r,clientY:i}=C(n);e.vertical?(t.currentY=i,o=(t.startY-t.currentY)/p.value*100):(t.currentX=r,o=(t.currentX-t.startX)/p.value*100),t.newPosition=t.startPosition+o,V(t.newPosition)}},T=()=>{t.dragging&&(setTimeout((()=>{t.dragging=!1,t.hovering||x(),t.isClick||(V(t.newPosition),h())}),0),i.off(window,"mousemove",O),i.off(window,"touchmove",O),i.off(window,"mouseup",T),i.off(window,"touchend",T),i.off(window,"contextmenu",T))},V=i=>{return s=void 0,u=null,p=function*(){if(null===i||isNaN(i))return;i<0?i=0:i>100&&(i=100);const s=100/((l.value-a.value)/c.value);let u=Math.round(i/s)*s*(l.value-a.value)*.01+a.value;u=parseFloat(u.toFixed(d.value)),n(r.UPDATE_MODEL_EVENT,u),t.dragging||e.modelValue===t.oldValue||(t.oldValue=e.modelValue),yield o.nextTick(),t.dragging&&w(),y.value.updatePopper()},new Promise(((e,t)=>{var n=e=>{try{r(p.next(e))}catch(e){t(e)}},o=e=>{try{r(p.throw(e))}catch(e){t(e)}},r=t=>t.done?e(t.value):Promise.resolve(t.value).then(n,o);r((p=p.apply(s,u)).next())}));var s,u,p};return o.watch((()=>t.dragging),(e=>{g(e)})),{tooltip:y,tooltipVisible:b,showTooltip:u,wrapperStyle:E,formatValue:_,handleMouseEnter:()=>{t.hovering=!0,w()},handleMouseLeave:()=>{t.hovering=!1,t.dragging||x()},onButtonDown:e=>{s.value||(e.preventDefault(),S(e),i.on(window,"mousemove",O),i.on(window,"touchmove",O),i.on(window,"mouseup",T),i.on(window,"touchend",T),i.on(window,"contextmenu",T))},onLeftKeyDown:()=>{s.value||(t.newPosition=parseFloat(k.value)-c.value/(l.value-a.value)*100,V(t.newPosition),h())},onRightKeyDown:()=>{s.value||(t.newPosition=parseFloat(k.value)+c.value/(l.value-a.value)*100,V(t.newPosition),h())},setPosition:V}};var g=o.defineComponent({name:"ElSliderButton",components:{ElTooltip:h.default},props:{modelValue:{type:Number,default:0},vertical:{type:Boolean,default:!1},tooltipClass:{type:String,default:""}},emits:[r.UPDATE_MODEL_EVENT],setup(e,{emit:t}){const n=o.reactive({hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:0,oldValue:e.modelValue}),{tooltip:r,showTooltip:i,tooltipVisible:s,wrapperStyle:a,formatValue:l,handleMouseEnter:c,handleMouseLeave:u,onButtonDown:d,onLeftKeyDown:p,onRightKeyDown:f,setPosition:h}=v(e,n,t),{hovering:m,dragging:g}=o.toRefs(n);return{tooltip:r,tooltipVisible:s,showTooltip:i,wrapperStyle:a,formatValue:l,handleMouseEnter:c,handleMouseLeave:u,onButtonDown:d,onLeftKeyDown:p,onRightKeyDown:f,setPosition:h,hovering:m,dragging:g}}});g.render=function(e,t,n,r,i,s){const a=o.resolveComponent("el-tooltip");return o.openBlock(),o.createBlock("div",{ref:"button",class:["el-slider__button-wrapper",{hover:e.hovering,dragging:e.dragging}],style:e.wrapperStyle,tabindex:"0",onMouseenter:t[2]||(t[2]=(...t)=>e.handleMouseEnter&&e.handleMouseEnter(...t)),onMouseleave:t[3]||(t[3]=(...t)=>e.handleMouseLeave&&e.handleMouseLeave(...t)),onMousedown:t[4]||(t[4]=(...t)=>e.onButtonDown&&e.onButtonDown(...t)),onTouchstart:t[5]||(t[5]=(...t)=>e.onButtonDown&&e.onButtonDown(...t)),onFocus:t[6]||(t[6]=(...t)=>e.handleMouseEnter&&e.handleMouseEnter(...t)),onBlur:t[7]||(t[7]=(...t)=>e.handleMouseLeave&&e.handleMouseLeave(...t)),onKeydown:[t[8]||(t[8]=o.withKeys(((...t)=>e.onLeftKeyDown&&e.onLeftKeyDown(...t)),["left"])),t[9]||(t[9]=o.withKeys(((...t)=>e.onRightKeyDown&&e.onRightKeyDown(...t)),["right"])),t[10]||(t[10]=o.withKeys(o.withModifiers(((...t)=>e.onLeftKeyDown&&e.onLeftKeyDown(...t)),["prevent"]),["down"])),t[11]||(t[11]=o.withKeys(o.withModifiers(((...t)=>e.onRightKeyDown&&e.onRightKeyDown(...t)),["prevent"]),["up"]))]},[o.createVNode(a,{ref:"tooltip",modelValue:e.tooltipVisible,"onUpdate:modelValue":t[1]||(t[1]=t=>e.tooltipVisible=t),placement:"top","stop-popper-mouse-event":!1,"popper-class":e.tooltipClass,disabled:!e.showTooltip,manual:""},{content:o.withCtx((()=>[o.createVNode("span",null,o.toDisplayString(e.formatValue),1)])),default:o.withCtx((()=>[o.createVNode("div",{class:["el-slider__button",{hover:e.hovering,dragging:e.dragging}]},null,2)])),_:1},8,["modelValue","popper-class","disabled"])],38)},g.__file="packages/slider/src/button.vue";var y=o.defineComponent({name:"ElMarker",props:{mark:{type:[String,Object],default:()=>{}}},setup:e=>({label:o.computed((()=>"string"==typeof e.mark?e.mark:e.mark.label))}),render(){var e;return o.h("div",{class:"el-slider__marks-text",style:null==(e=this.mark)?void 0:e.style},this.label)}});y.__file="packages/slider/src/marker.vue";const b=(e,t,n)=>{const i=o.inject(u.elFormKey,{}),s=o.inject(u.elFormItemKey,{}),a=o.ref(null),l=o.ref(null),c=o.ref(null),d={firstButton:l,secondButton:c},p=o.computed((()=>e.disabled||i.disabled||!1)),f=o.computed((()=>Math.min(t.firstValue,t.secondValue))),h=o.computed((()=>Math.max(t.firstValue,t.secondValue))),m=o.computed((()=>e.range?100*(h.value-f.value)/(e.max-e.min)+"%":100*(t.firstValue-e.min)/(e.max-e.min)+"%")),v=o.computed((()=>e.range?100*(f.value-e.min)/(e.max-e.min)+"%":"0%")),g=o.computed((()=>e.vertical?{height:e.height}:{})),y=o.computed((()=>e.vertical?{height:m.value,bottom:v.value}:{width:m.value,left:v.value})),b=()=>{a.value&&(t.sliderSize=a.value["client"+(e.vertical?"Height":"Width")])},_=n=>{const o=e.min+n*(e.max-e.min)/100;if(!e.range)return void l.value.setPosition(n);let r;r=Math.abs(f.value-o)t.secondValue?"firstButton":"secondButton",d[r].value.setPosition(n)},w=()=>{return t=void 0,i=null,s=function*(){yield o.nextTick(),n(r.CHANGE_EVENT,e.range?[f.value,h.value]:e.modelValue)},new Promise(((e,n)=>{var o=e=>{try{a(s.next(e))}catch(e){n(e)}},r=e=>{try{a(s.throw(e))}catch(e){n(e)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,r);a((s=s.apply(t,i)).next())}));var t,i,s};return{elFormItem:s,slider:a,firstButton:l,secondButton:c,sliderDisabled:p,minValue:f,maxValue:h,runwayStyle:g,barStyle:y,resetSize:b,setPosition:_,emitChange:w,onSliderClick:n=>{if(!p.value&&!t.dragging){if(b(),e.vertical){const e=a.value.getBoundingClientRect().bottom;_((e-n.clientY)/t.sliderSize*100)}else{const e=a.value.getBoundingClientRect().left;_((n.clientX-e)/t.sliderSize*100)}w()}}}};var _=Object.defineProperty,w=Object.defineProperties,x=Object.getOwnPropertyDescriptors,k=Object.getOwnPropertySymbols,E=Object.prototype.hasOwnProperty,C=Object.prototype.propertyIsEnumerable,S=(e,t,n)=>t in e?_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,O=o.defineComponent({name:"ElSlider",components:{ElInputNumber:f.default,SliderButton:g,SliderMarker:y},props:{modelValue:{type:[Number,Array],default:0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},showInput:{type:Boolean,default:!1},showInputControls:{type:Boolean,default:!0},inputSize:{type:String,default:"small"},showStops:{type:Boolean,default:!1},showTooltip:{type:Boolean,default:!0},formatTooltip:{type:Function,default:void 0},disabled:{type:Boolean,default:!1},range:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},height:{type:String,default:""},debounce:{type:Number,default:300},label:{type:String,default:void 0},tooltipClass:{type:String,default:void 0},marks:Object},emits:[r.UPDATE_MODEL_EVENT,r.CHANGE_EVENT,r.INPUT_EVENT],setup(e,{emit:t}){const n=o.reactive({firstValue:0,secondValue:0,oldValue:0,dragging:!1,sliderSize:1}),{elFormItem:r,slider:i,firstButton:s,secondButton:a,sliderDisabled:l,minValue:c,maxValue:u,runwayStyle:d,barStyle:p,resetSize:f,emitChange:h,onSliderClick:m}=b(e,n,t),{stops:v,getStopStyle:g}=((e,t,n,r)=>({stops:o.computed((()=>{if(!e.showStops||e.min>e.max)return[];if(0===e.step)return[];const o=(e.max-e.min)/e.step,i=100*e.step/(e.max-e.min),s=Array.from({length:o-1}).map(((e,t)=>(t+1)*i));return e.range?s.filter((t=>t<100*(n.value-e.min)/(e.max-e.min)||t>100*(r.value-e.min)/(e.max-e.min))):s.filter((n=>n>100*(t.firstValue-e.min)/(e.max-e.min)))})),getStopStyle:t=>e.vertical?{bottom:t+"%"}:{left:t+"%"}}))(e,n,c,u),y=(e=>o.computed((()=>e.marks?Object.keys(e.marks).map(parseFloat).sort(((e,t)=>e-t)).filter((t=>t<=e.max&&t>=e.min)).map((t=>({point:t,position:100*(t-e.min)/(e.max-e.min),mark:e.marks[t]}))):[])))(e);T(e,n,c,u,t,r);const _=o.computed((()=>{let t=[e.min,e.max,e.step].map((e=>{let t=(""+e).split(".")[1];return t?t.length:0}));return Math.max.apply(null,t)})),{sliderWrapper:O}=V(e,n,f),{firstValue:B,secondValue:M,oldValue:N,dragging:A,sliderSize:q}=o.toRefs(n);var P;return o.provide("SliderProvider",(P=((e,t)=>{for(var n in t||(t={}))E.call(t,n)&&S(e,n,t[n]);if(k)for(var n of k(t))C.call(t,n)&&S(e,n,t[n]);return e})({},o.toRefs(e)),w(P,x({sliderSize:q,disabled:l,precision:_,emitChange:h,resetSize:f,updateDragging:e=>{n.dragging=e}})))),{firstValue:B,secondValue:M,oldValue:N,dragging:A,sliderSize:q,slider:i,firstButton:s,secondButton:a,sliderDisabled:l,runwayStyle:d,barStyle:p,emitChange:h,onSliderClick:m,getStopStyle:g,stops:v,markList:y,sliderWrapper:O}}});const T=(e,t,n,i,s,a)=>{const l=e=>{s(r.UPDATE_MODEL_EVENT,e),s(r.INPUT_EVENT,e)},c=()=>e.range?![n.value,i.value].every(((e,n)=>e===t.oldValue[n])):e.modelValue!==t.oldValue,u=()=>{var o,r;if(e.min>e.max)return void p.default("Slider","min should not be greater than max.");const s=e.modelValue;e.range&&Array.isArray(s)?s[1]e.max?l([e.max,e.max]):s[0]e.max?l([s[0],e.max]):(t.firstValue=s[0],t.secondValue=s[1],c()&&(null==(o=a.formItemMitt)||o.emit("el.form.change",[n.value,i.value]),t.oldValue=s.slice())):e.range||"number"!=typeof s||isNaN(s)||(se.max?l(e.max):(t.firstValue=s,c()&&(null==(r=a.formItemMitt)||r.emit("el.form.change",s),t.oldValue=s)))};u(),o.watch((()=>t.dragging),(e=>{e||u()})),o.watch((()=>t.firstValue),(t=>{e.range?l([n.value,i.value]):l(t)})),o.watch((()=>t.secondValue),(()=>{e.range&&l([n.value,i.value])})),o.watch((()=>e.modelValue),((e,n)=>{t.dragging||Array.isArray(e)&&Array.isArray(n)&&e.every(((e,t)=>e===n[t]))||u()})),o.watch((()=>[e.min,e.max]),(()=>{u()}))},V=(e,t,n)=>{const r=o.ref(null);return o.onMounted((()=>{return s=void 0,a=null,l=function*(){let s;e.range?(Array.isArray(e.modelValue)?(t.firstValue=Math.max(e.min,e.modelValue[0]),t.secondValue=Math.min(e.max,e.modelValue[1])):(t.firstValue=e.min,t.secondValue=e.max),t.oldValue=[t.firstValue,t.secondValue],s=`${t.firstValue}-${t.secondValue}`):("number"!=typeof e.modelValue||isNaN(e.modelValue)?t.firstValue=e.min:t.firstValue=Math.min(e.max,Math.max(e.min,e.modelValue)),t.oldValue=t.firstValue,s=t.firstValue),r.value.setAttribute("aria-valuetext",s),r.value.setAttribute("aria-label",e.label?e.label:`slider between ${e.min} and ${e.max}`),i.on(window,"resize",n),yield o.nextTick(),n()},new Promise(((e,t)=>{var n=e=>{try{r(l.next(e))}catch(e){t(e)}},o=e=>{try{r(l.throw(e))}catch(e){t(e)}},r=t=>t.done?e(t.value):Promise.resolve(t.value).then(n,o);r((l=l.apply(s,a)).next())}));var s,a,l})),o.onBeforeUnmount((()=>{i.off(window,"resize",n)})),{sliderWrapper:r}},B={key:1},M={class:"el-slider__marks"};O.render=function(e,t,n,r,i,s){const a=o.resolveComponent("el-input-number"),l=o.resolveComponent("slider-button"),c=o.resolveComponent("slider-marker");return o.openBlock(),o.createBlock("div",{ref:"sliderWrapper",class:["el-slider",{"is-vertical":e.vertical,"el-slider--with-input":e.showInput}],role:"slider","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-orientation":e.vertical?"vertical":"horizontal","aria-disabled":e.sliderDisabled},[e.showInput&&!e.range?(o.openBlock(),o.createBlock(a,{key:0,ref:"input",modelValue:e.firstValue,"onUpdate:modelValue":t[1]||(t[1]=t=>e.firstValue=t),class:"el-slider__input",step:e.step,disabled:e.sliderDisabled,controls:e.showInputControls,min:e.min,max:e.max,debounce:e.debounce,size:e.inputSize,onChange:e.emitChange},null,8,["modelValue","step","disabled","controls","min","max","debounce","size","onChange"])):o.createCommentVNode("v-if",!0),o.createVNode("div",{ref:"slider",class:["el-slider__runway",{"show-input":e.showInput&&!e.range,disabled:e.sliderDisabled}],style:e.runwayStyle,onClick:t[4]||(t[4]=(...t)=>e.onSliderClick&&e.onSliderClick(...t))},[o.createVNode("div",{class:"el-slider__bar",style:e.barStyle},null,4),o.createVNode(l,{ref:"firstButton",modelValue:e.firstValue,"onUpdate:modelValue":t[2]||(t[2]=t=>e.firstValue=t),vertical:e.vertical,"tooltip-class":e.tooltipClass},null,8,["modelValue","vertical","tooltip-class"]),e.range?(o.openBlock(),o.createBlock(l,{key:0,ref:"secondButton",modelValue:e.secondValue,"onUpdate:modelValue":t[3]||(t[3]=t=>e.secondValue=t),vertical:e.vertical,"tooltip-class":e.tooltipClass},null,8,["modelValue","vertical","tooltip-class"])):o.createCommentVNode("v-if",!0),e.showStops?(o.openBlock(),o.createBlock("div",B,[(o.openBlock(!0),o.createBlock(o.Fragment,null,o.renderList(e.stops,((t,n)=>(o.openBlock(),o.createBlock("div",{key:n,class:"el-slider__stop",style:e.getStopStyle(t)},null,4)))),128))])):o.createCommentVNode("v-if",!0),e.markList.length>0?(o.openBlock(),o.createBlock(o.Fragment,{key:2},[o.createVNode("div",null,[(o.openBlock(!0),o.createBlock(o.Fragment,null,o.renderList(e.markList,((t,n)=>(o.openBlock(),o.createBlock("div",{key:n,style:e.getStopStyle(t.position),class:"el-slider__stop el-slider__marks-stop"},null,4)))),128))]),o.createVNode("div",M,[(o.openBlock(!0),o.createBlock(o.Fragment,null,o.renderList(e.markList,((t,n)=>(o.openBlock(),o.createBlock(c,{key:n,mark:t.mark,style:e.getStopStyle(t.position)},null,8,["mark","style"])))),128))])],64)):o.createCommentVNode("v-if",!0)],6)],10,["aria-valuemin","aria-valuemax","aria-orientation","aria-disabled"])},O.__file="packages/slider/src/index.vue",O.install=e=>{e.component(O.name,O)};const N=O;t.Z=N},4912:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(4865),r=n(5450),i=n(6801),s=o.defineComponent({name:"ElTag",props:{closable:Boolean,type:{type:String,default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,validator:i.isValidComponentSize},effect:{type:String,default:"light",validator:e=>-1!==["dark","light","plain"].indexOf(e)}},emits:["close","click"],setup(e,t){const n=r.useGlobalConfig(),i=o.computed((()=>e.size||n.size)),s=o.computed((()=>{const{type:t,hit:n,effect:o}=e;return["el-tag",t?`el-tag--${t}`:"",i.value?`el-tag--${i.value}`:"",o?`el-tag--${o}`:"",n&&"is-hit"]}));return{tagSize:i,classes:s,handleClose:e=>{e.stopPropagation(),t.emit("close",e)},handleClick:e=>{t.emit("click",e)}}}});s.render=function(e,t,n,r,i,s){return e.disableTransitions?(o.openBlock(),o.createBlock(o.Transition,{key:1,name:"el-zoom-in-center"},{default:o.withCtx((()=>[o.createVNode("span",{class:e.classes,style:{backgroundColor:e.color},onClick:t[4]||(t[4]=(...t)=>e.handleClick&&e.handleClick(...t))},[o.renderSlot(e.$slots,"default"),e.closable?(o.openBlock(),o.createBlock("i",{key:0,class:"el-tag__close el-icon-close",onClick:t[3]||(t[3]=(...t)=>e.handleClose&&e.handleClose(...t))})):o.createCommentVNode("v-if",!0)],6)])),_:3})):(o.openBlock(),o.createBlock("span",{key:0,class:e.classes,style:{backgroundColor:e.color},onClick:t[2]||(t[2]=(...t)=>e.handleClick&&e.handleClick(...t))},[o.renderSlot(e.$slots,"default"),e.closable?(o.openBlock(),o.createBlock("i",{key:0,class:"el-tag__close el-icon-close",onClick:t[1]||(t[1]=(...t)=>e.handleClose&&e.handleClose(...t))})):o.createCommentVNode("v-if",!0)],6))},s.__file="packages/tag/src/index.vue",s.install=e=>{e.component(s.name,s)};const a=s;t.default=a},8782:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(4865),r=n(2815),i=n(2532),s=n(1617),a=n(7050);function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=l(r),u=l(s),d=Object.defineProperty,p=Object.defineProperties,f=Object.getOwnPropertyDescriptors,h=Object.getOwnPropertySymbols,m=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable,g=(e,t,n)=>t in e?d(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,y=(e,t)=>{for(var n in t||(t={}))m.call(t,n)&&g(e,n,t[n]);if(h)for(var n of h(t))v.call(t,n)&&g(e,n,t[n]);return e},b=(e,t)=>p(e,f(t)),_=o.defineComponent({name:"ElTooltip",components:{ElPopper:c.default},props:b(y({},r.defaultProps),{manual:{type:Boolean,default:!1},modelValue:{type:Boolean,validator:e=>"boolean"==typeof e,default:void 0},openDelay:{type:Number,default:0},visibleArrow:{type:Boolean,default:!0},tabindex:{type:[String,Number],default:"0"}}),emits:[i.UPDATE_MODEL_EVENT],setup(e,t){e.manual&&void 0===e.modelValue&&u.default("[ElTooltip]","You need to pass a v-model to el-tooltip when `manual` is true");const n=o.ref(null);return{popper:n,onUpdateVisible:e=>{t.emit(i.UPDATE_MODEL_EVENT,e)},updatePopper:()=>n.value.update()}},render(){const{$slots:e,content:t,manual:n,openDelay:i,onUpdateVisible:s,showAfter:l,visibleArrow:d,modelValue:p,tabindex:f}=this,h=()=>{u.default("[ElTooltip]","you need to provide a valid default slot.")};return o.h(c.default,b(y({},Object.keys(r.defaultProps).reduce(((e,t)=>b(y({},e),{[t]:this[t]})),{})),{ref:"popper",manualMode:n,showAfter:i||l,showArrow:d,visible:p,"onUpdate:visible":s}),{default:()=>e.content?e.content():t,trigger:()=>{if(e.default){const t=a.getFirstValidNode(e.default(),1);return t||h(),o.cloneVNode(t,{tabindex:f},!0)}h()}})}});_.install=e=>{e.component(_.name,_)};const w=_;t.default=w},3676:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(4865),r=n(5450),i=n(6722),s=n(6311),a=n(1617),l=n(9272),c=n(3566);function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=u(s),p=u(a);const f=["class","style"],h=/^on[A-Z]/;const m=[],v=e=>{if(0!==m.length&&e.code===l.EVENT_CODE.esc){e.stopPropagation();m[m.length-1].handleClose()}};u(c).default||i.on(document,"keydown",v);t.useAttrs=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n=[]}=e,i=o.getCurrentInstance(),s=o.shallowRef({}),a=n.concat(f);return i.attrs=o.reactive(i.attrs),o.watchEffect((()=>{const e=r.entries(i.attrs).reduce(((e,[n,o])=>(a.includes(n)||t&&h.test(n)||(e[n]=o),e)),{});s.value=e})),s},t.useEvents=(e,t)=>{o.watch(e,(n=>{n?t.forEach((({name:t,handler:n})=>{i.on(e.value,t,n)})):t.forEach((({name:t,handler:n})=>{i.off(e.value,t,n)}))}))},t.useFocus=e=>({focus:()=>{var t,n;null==(n=null==(t=e.value)?void 0:t.focus)||n.call(t)}}),t.useLockScreen=e=>{o.isRef(e)||p.default("[useLockScreen]","You need to pass a ref param to this function");let t=0,n=!1,r="0",s=0;o.onUnmounted((()=>{a()}));const a=()=>{i.removeClass(document.body,"el-popup-parent--hidden"),n&&(document.body.style.paddingRight=r)};o.watch(e,(e=>{if(e){n=!i.hasClass(document.body,"el-popup-parent--hidden"),n&&(r=document.body.style.paddingRight,s=parseInt(i.getStyle(document.body,"paddingRight"),10)),t=d.default();const e=document.documentElement.clientHeight0&&(e||"scroll"===o)&&n&&(document.body.style.paddingRight=s+t+"px"),i.addClass(document.body,"el-popup-parent--hidden")}else a()}))},t.useMigrating=function(){o.onMounted((()=>{o.getCurrentInstance()}));const e=function(){return{props:{},events:{}}};return{getMigratingConfig:e}},t.useModal=(e,t)=>{o.watch((()=>t.value),(t=>{t?m.push(e):m.splice(m.findIndex((t=>t===e)),1)}))},t.usePreventGlobal=(e,t,n)=>{const r=e=>{n(e)&&e.stopImmediatePropagation()};o.watch((()=>e.value),(e=>{e?i.on(document,t,r,!0):i.off(document,t,r,!0)}),{immediate:!0})},t.useRestoreActive=(e,t)=>{let n;o.watch((()=>e.value),(e=>{var r,i;e?(n=document.activeElement,o.isRef(t)&&(null==(i=(r=t.value).focus)||i.call(r))):n.focus()}))},t.useThrottleRender=function(e,t=0){if(0===t)return e;const n=o.ref(!1);let r=0;const i=()=>{r&&clearTimeout(r),r=window.setTimeout((()=>{n.value=e.value}),t)};return o.onMounted(i),o.watch((()=>e.value),(e=>{e?i():n.value=e})),n}},7993:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(2372),r=n(7484);function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=i(o),a=i(r);let l=s.default,c=null;const u=e=>{c=e};function d(e,t){return e&&t?e.replace(/\{(\w+)\}/g,((e,n)=>t[n])):e}const p=(...e)=>{if(c)return c(...e);const[t,n]=e;let o;const r=t.split(".");let i=l;for(let e=0,t=r.length;e{l=e||l,l.name&&a.default.locale(l.name)};var h={use:f,t:p,i18n:u};t.default=h,t.i18n=u,t.t=p,t.use=f},2372:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:""},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}}},9272:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=e=>{return"fixed"!==getComputedStyle(e).position&&null!==e.offsetParent},o=e=>{if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return!("hidden"===e.type||"file"===e.type);case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},r=e=>{var t;return!!o(e)&&(i.IgnoreUtilFocusChanges=!0,null===(t=e.focus)||void 0===t||t.call(e),i.IgnoreUtilFocusChanges=!1,document.activeElement===e)},i={IgnoreUtilFocusChanges:!1,focusFirstDescendant:function(e){for(let t=0;t=0;t--){const n=e.childNodes[t];if(r(n)||this.focusLastDescendant(n))return!0}return!1}};t.EVENT_CODE={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace"},t.attemptFocus=r,t.default=i,t.isFocusable=o,t.isVisible=n,t.obtainAllFocusableElements=e=>Array.from(e.querySelectorAll('a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])')).filter(o).filter(n),t.triggerEvent=function(e,t,...n){let o;o=t.includes("mouse")||t.includes("click")?"MouseEvents":t.includes("key")?"KeyboardEvent":"HTMLEvents";const r=document.createEvent(o);return r.initEvent(t,...n),e.dispatchEvent(r),e}},544:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});let n={};t.getConfig=e=>n[e],t.setConfig=e=>{n=e}},2532:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.CHANGE_EVENT="change",t.INPUT_EVENT="input",t.UPDATE_MODEL_EVENT="update:modelValue",t.VALIDATE_STATE_MAP={validating:"el-icon-loading",success:"el-icon-circle-check",error:"el-icon-circle-close"}},6722:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(3566),r=n(5450);function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=i(o);const a=function(e,t,n,o=!1){e&&t&&n&&e.addEventListener(t,n,o)},l=function(e,t,n,o=!1){e&&t&&n&&e.removeEventListener(t,n,o)};function c(e,t){if(!e||!t)return!1;if(-1!==t.indexOf(" "))throw new Error("className should not contain space.");return e.classList?e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}const u=function(e,t){if(!s.default){if(!e||!t)return null;"float"===(t=r.camelize(t))&&(t="cssFloat");try{const n=e.style[t];if(n)return n;const o=document.defaultView.getComputedStyle(e,"");return o?o[t]:""}catch(n){return e.style[t]}}};function d(e,t,n){e&&t&&(r.isObject(t)?Object.keys(t).forEach((n=>{d(e,n,t[n])})):(t=r.camelize(t),e.style[t]=n))}const p=(e,t)=>{if(s.default)return;return u(e,null==t?"overflow":t?"overflow-y":"overflow-x").match(/(scroll|auto)/)},f=e=>{let t=0,n=e;for(;n;)t+=n.offsetTop,n=n.offsetParent;return t};t.addClass=function(e,t){if(!e)return;let n=e.className;const o=(t||"").split(" ");for(let t=0,r=o.length;tMath.abs(f(e)-f(t)),t.getScrollContainer=(e,t)=>{if(s.default)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if(p(n,t))return n;n=n.parentNode}return n},t.getStyle=u,t.hasClass=c,t.isInContainer=(e,t)=>{if(s.default||!e||!t)return!1;const n=e.getBoundingClientRect();let o;return o=[window,document,document.documentElement,null,void 0].includes(t)?{top:0,right:window.innerWidth,bottom:window.innerHeight,left:0}:t.getBoundingClientRect(),n.topo.top&&n.right>o.left&&n.left{d(e,t,"")})):d(e,t,""))},t.setStyle=d,t.stop=e=>e.stopPropagation()},1617:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class n extends Error{constructor(e){super(e),this.name="ElementPlusError"}}t.default=(e,t)=>{throw new n(`[${e}] ${t}`)},t.warn=function(e,t){console.warn(new n(`[${e}] ${t}`))}},6645:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isKorean=function(e){return/([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi.test(e)}},3566:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="undefined"==typeof window;t.default=n},9169:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(3566),r=n(544),i=n(6722),s=n(9272);function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=a(o);const c=e=>{e.preventDefault(),e.stopPropagation()},u=()=>{null==m||m.doOnModalClick()};let d,p=!1;const f=function(){if(l.default)return;let e=m.modalDom;return e?p=!0:(p=!1,e=document.createElement("div"),m.modalDom=e,i.on(e,"touchmove",c),i.on(e,"click",u)),e},h={},m={modalFade:!0,modalDom:void 0,zIndex:d,getInstance:function(e){return h[e]},register:function(e,t){e&&t&&(h[e]=t)},deregister:function(e){e&&(h[e]=null,delete h[e])},nextZIndex:function(){return++m.zIndex},modalStack:[],doOnModalClick:function(){const e=m.modalStack[m.modalStack.length-1];if(!e)return;const t=m.getInstance(e.id);t&&t.closeOnClickModal.value&&t.close()},openModal:function(e,t,n,o,r){if(l.default)return;if(!e||void 0===t)return;this.modalFade=r;const s=this.modalStack;for(let t=0,n=s.length;ti.addClass(a,e)))}setTimeout((()=>{i.removeClass(a,"v-modal-enter")}),200),n&&n.parentNode&&11!==n.parentNode.nodeType?n.parentNode.appendChild(a):document.body.appendChild(a),t&&(a.style.zIndex=String(t)),a.tabIndex=0,a.style.display="",this.modalStack.push({id:e,zIndex:t,modalClass:o})},closeModal:function(e){const t=this.modalStack,n=f();if(t.length>0){const o=t[t.length-1];if(o.id===e){if(o.modalClass){o.modalClass.trim().split(/\s+/).forEach((e=>i.removeClass(n,e)))}t.pop(),t.length>0&&(n.style.zIndex=t[t.length-1].zIndex)}else for(let n=t.length-1;n>=0;n--)if(t[n].id===e){t.splice(n,1);break}}0===t.length&&(this.modalFade&&i.addClass(n,"v-modal-leave"),setTimeout((()=>{0===t.length&&(n.parentNode&&n.parentNode.removeChild(n),n.style.display="none",m.modalDom=void 0),i.removeClass(n,"v-modal-leave")}),200))}};Object.defineProperty(m,"zIndex",{configurable:!0,get:()=>(void 0===d&&(d=r.getConfig("zIndex")||2e3),d),set(e){d=e}});l.default||i.on(window,"keydown",(function(e){if(e.code===s.EVENT_CODE.esc){const e=function(){if(!l.default&&m.modalStack.length>0){const e=m.modalStack[m.modalStack.length-1];if(!e)return;return m.getInstance(e.id)}}();e&&e.closeOnPressEscape.value&&(e.handleClose?e.handleClose():e.handleAction?e.handleAction("cancel"):e.close())}})),t.default=m},2406:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(1033),r=n(3566);function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=i(o),a=i(r);const l=function(e){for(const t of e){const e=t.target.__resizeListeners__||[];e.length&&e.forEach((e=>{e()}))}};t.addResizeListener=function(e,t){!a.default&&e&&(e.__resizeListeners__||(e.__resizeListeners__=[],e.__ro__=new s.default(l),e.__ro__.observe(e)),e.__resizeListeners__.push(t))},t.removeResizeListener=function(e,t){e&&e.__resizeListeners__&&(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||e.__ro__.disconnect())}},4593:(e,t,n)=>{"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(3566));t.default=function(e,t){if(r.default)return;if(!t)return void(e.scrollTop=0);const n=[];let o=t.offsetParent;for(;null!==o&&e!==o&&e.contains(o);)n.push(o),o=o.offsetParent;const i=t.offsetTop+n.reduce(((e,t)=>e+t.offsetTop),0),s=i+t.offsetHeight,a=e.scrollTop,l=a+e.clientHeight;il&&(e.scrollTop=s-e.clientHeight)}},6311:(e,t,n)=>{"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(3566));let i;t.default=function(){if(r.default)return 0;if(void 0!==i)return i;const e=document.createElement("div");e.className="el-scrollbar__wrap",e.style.visibility="hidden",e.style.width="100px",e.style.position="absolute",e.style.top="-9999px",document.body.appendChild(e);const t=e.offsetWidth;e.style.overflow="scroll";const n=document.createElement("div");n.style.width="100%",e.appendChild(n);const o=n.offsetWidth;return e.parentNode.removeChild(e),i=t-o,i}},5450:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(4865),r=n(3577),i=n(3566);n(1617);function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=s(i);const l=r.hyphenate,c=e=>"number"==typeof e;Object.defineProperty(t,"isVNode",{enumerable:!0,get:function(){return o.isVNode}}),Object.defineProperty(t,"camelize",{enumerable:!0,get:function(){return r.camelize}}),Object.defineProperty(t,"capitalize",{enumerable:!0,get:function(){return r.capitalize}}),Object.defineProperty(t,"extend",{enumerable:!0,get:function(){return r.extend}}),Object.defineProperty(t,"hasOwn",{enumerable:!0,get:function(){return r.hasOwn}}),Object.defineProperty(t,"isArray",{enumerable:!0,get:function(){return r.isArray}}),Object.defineProperty(t,"isObject",{enumerable:!0,get:function(){return r.isObject}}),Object.defineProperty(t,"isString",{enumerable:!0,get:function(){return r.isString}}),Object.defineProperty(t,"looseEqual",{enumerable:!0,get:function(){return r.looseEqual}}),t.$=function(e){return e.value},t.SCOPE="Util",t.addUnit=function(e){return r.isString(e)?e:c(e)?e+"px":""},t.arrayFind=function(e,t){return e.find(t)},t.arrayFindIndex=function(e,t){return e.findIndex(t)},t.arrayFlat=function e(t){return t.reduce(((t,n)=>{const o=Array.isArray(n)?e(n):n;return t.concat(o)}),[])},t.autoprefixer=function(e){const t=["ms-","webkit-"];return["transform","transition","animation"].forEach((n=>{const o=e[n];n&&o&&t.forEach((t=>{e[t+n]=o}))})),e},t.clearTimer=e=>{clearTimeout(e.value),e.value=null},t.coerceTruthyValueToArray=e=>e||0===e?Array.isArray(e)?e:[e]:[],t.deduplicate=function(e){return Array.from(new Set(e))},t.entries=function(e){return Object.keys(e).map((t=>[t,e[t]]))},t.escapeRegexpString=(e="")=>String(e).replace(/[|\\{}()[\]^$+*?.]/g,"\\$&"),t.generateId=()=>Math.floor(1e4*Math.random()),t.getPropByPath=function(e,t,n){let o=e;const r=(t=(t=t.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split(".");let i=0;for(;i{let n=e;return t.split(".").map((e=>{n=null==n?void 0:n[e]})),n},t.isBool=e=>"boolean"==typeof e,t.isEdge=function(){return!a.default&&navigator.userAgent.indexOf("Edge")>-1},t.isEmpty=function(e){return!!(!e&&0!==e||r.isArray(e)&&!e.length||r.isObject(e)&&!Object.keys(e).length)},t.isFirefox=function(){return!a.default&&!!window.navigator.userAgent.match(/firefox/i)},t.isHTMLElement=e=>r.toRawType(e).startsWith("HTML"),t.isIE=function(){return!a.default&&!isNaN(Number(document.documentMode))},t.isNumber=c,t.isUndefined=function(e){return void 0===e},t.kebabCase=l,t.rafThrottle=function(e){let t=!1;return function(...n){t||(t=!0,window.requestAnimationFrame((()=>{e.apply(this,n),t=!1})))}},t.toObject=function(e){const t={};for(let n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(5450);t.isValidComponentSize=e=>["","large","medium","small","mini"].includes(e),t.isValidDatePickType=e=>["year","month","date","dates","week","datetime","datetimerange","daterange","monthrange"].includes(e),t.isValidWidthUnit=e=>!!o.isNumber(e)||["px","rem","em","vw","%","vmin","vmax"].some((t=>e.endsWith(t)))},7050:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(4865);var r;(r=t.PatchFlags||(t.PatchFlags={}))[r.TEXT=1]="TEXT",r[r.CLASS=2]="CLASS",r[r.STYLE=4]="STYLE",r[r.PROPS=8]="PROPS",r[r.FULL_PROPS=16]="FULL_PROPS",r[r.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",r[r.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",r[r.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",r[r.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",r[r.NEED_PATCH=512]="NEED_PATCH",r[r.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",r[r.HOISTED=-1]="HOISTED",r[r.BAIL=-2]="BAIL";const i=e=>e.type===o.Fragment,s=e=>e.type===o.Comment,a=e=>"template"===e.type;function l(e,t){if(!s(e))return i(e)||a(e)?t>0?c(e.children,t-1):void 0:e}const c=(e,t=3)=>Array.isArray(e)?l(e[0],t):l(e,t);function u(e,t,n,r,i){return o.openBlock(),o.createBlock(e,t,n,r,i)}t.getFirstValidNode=c,t.isComment=s,t.isFragment=i,t.isTemplate=a,t.isText=e=>e.type===o.Text,t.isValidElementNode=e=>!(i(e)||s(e)),t.renderBlock=u,t.renderIf=function(e,t,n,r,i,s){return e?u(t,n,r,i,s):o.createCommentVNode("v-if",!0)}},8552:(e,t,n)=>{var o=n(852)(n(5639),"DataView");e.exports=o},1989:(e,t,n)=>{var o=n(1789),r=n(401),i=n(7667),s=n(1327),a=n(1866);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var o=n(7040),r=n(4125),i=n(2117),s=n(7518),a=n(4705);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var o=n(852)(n(5639),"Map");e.exports=o},3369:(e,t,n)=>{var o=n(4785),r=n(1285),i=n(6e3),s=n(9916),a=n(5265);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var o=n(852)(n(5639),"Promise");e.exports=o},8525:(e,t,n)=>{var o=n(852)(n(5639),"Set");e.exports=o},8668:(e,t,n)=>{var o=n(3369),r=n(619),i=n(2385);function s(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new o;++t{var o=n(8407),r=n(7465),i=n(3779),s=n(7599),a=n(4758),l=n(4309);function c(e){var t=this.__data__=new o(e);this.size=t.size}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=s,c.prototype.has=a,c.prototype.set=l,e.exports=c},2705:(e,t,n)=>{var o=n(5639).Symbol;e.exports=o},1149:(e,t,n)=>{var o=n(5639).Uint8Array;e.exports=o},577:(e,t,n)=>{var o=n(852)(n(5639),"WeakMap");e.exports=o},4963:e=>{e.exports=function(e,t){for(var n=-1,o=null==e?0:e.length,r=0,i=[];++n{var o=n(2545),r=n(5694),i=n(1469),s=n(4144),a=n(5776),l=n(6719),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=i(e),u=!n&&r(e),d=!n&&!u&&s(e),p=!n&&!u&&!d&&l(e),f=n||u||d||p,h=f?o(e.length,String):[],m=h.length;for(var v in e)!t&&!c.call(e,v)||f&&("length"==v||d&&("offset"==v||"parent"==v)||p&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||a(v,m))||h.push(v);return h}},2488:e=>{e.exports=function(e,t){for(var n=-1,o=t.length,r=e.length;++n{e.exports=function(e,t){for(var n=-1,o=null==e?0:e.length;++n{var o=n(7813);e.exports=function(e,t){for(var n=e.length;n--;)if(o(e[n][0],t))return n;return-1}},8866:(e,t,n)=>{var o=n(2488),r=n(1469);e.exports=function(e,t,n){var i=t(e);return r(e)?i:o(i,n(e))}},4239:(e,t,n)=>{var o=n(2705),r=n(9607),i=n(2333),s=o?o.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":s&&s in Object(e)?r(e):i(e)}},9454:(e,t,n)=>{var o=n(4239),r=n(7005);e.exports=function(e){return r(e)&&"[object Arguments]"==o(e)}},939:(e,t,n)=>{var o=n(2492),r=n(7005);e.exports=function e(t,n,i,s,a){return t===n||(null==t||null==n||!r(t)&&!r(n)?t!=t&&n!=n:o(t,n,i,s,e,a))}},2492:(e,t,n)=>{var o=n(6384),r=n(7114),i=n(8351),s=n(6096),a=n(4160),l=n(1469),c=n(4144),u=n(6719),d="[object Arguments]",p="[object Array]",f="[object Object]",h=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,v,g){var y=l(e),b=l(t),_=y?p:a(e),w=b?p:a(t),x=(_=_==d?f:_)==f,k=(w=w==d?f:w)==f,E=_==w;if(E&&c(e)){if(!c(t))return!1;y=!0,x=!1}if(E&&!x)return g||(g=new o),y||u(e)?r(e,t,n,m,v,g):i(e,t,_,n,m,v,g);if(!(1&n)){var C=x&&h.call(e,"__wrapped__"),S=k&&h.call(t,"__wrapped__");if(C||S){var O=C?e.value():e,T=S?t.value():t;return g||(g=new o),v(O,T,n,m,g)}}return!!E&&(g||(g=new o),s(e,t,n,m,v,g))}},8458:(e,t,n)=>{var o=n(3560),r=n(5346),i=n(3218),s=n(346),a=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,u=l.toString,d=c.hasOwnProperty,p=RegExp("^"+u.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||r(e))&&(o(e)?p:a).test(s(e))}},8749:(e,t,n)=>{var o=n(4239),r=n(1780),i=n(7005),s={};s["[object Float32Array]"]=s["[object Float64Array]"]=s["[object Int8Array]"]=s["[object Int16Array]"]=s["[object Int32Array]"]=s["[object Uint8Array]"]=s["[object Uint8ClampedArray]"]=s["[object Uint16Array]"]=s["[object Uint32Array]"]=!0,s["[object Arguments]"]=s["[object Array]"]=s["[object ArrayBuffer]"]=s["[object Boolean]"]=s["[object DataView]"]=s["[object Date]"]=s["[object Error]"]=s["[object Function]"]=s["[object Map]"]=s["[object Number]"]=s["[object Object]"]=s["[object RegExp]"]=s["[object Set]"]=s["[object String]"]=s["[object WeakMap]"]=!1,e.exports=function(e){return i(e)&&r(e.length)&&!!s[o(e)]}},280:(e,t,n)=>{var o=n(5726),r=n(6916),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!o(e))return r(e);var t=[];for(var n in Object(e))i.call(e,n)&&"constructor"!=n&&t.push(n);return t}},2545:e=>{e.exports=function(e,t){for(var n=-1,o=Array(e);++n{var o=n(7990),r=/^\s+/;e.exports=function(e){return e?e.slice(0,o(e)+1).replace(r,""):e}},1717:e=>{e.exports=function(e){return function(t){return e(t)}}},4757:e=>{e.exports=function(e,t){return e.has(t)}},4429:(e,t,n)=>{var o=n(5639)["__core-js_shared__"];e.exports=o},7114:(e,t,n)=>{var o=n(8668),r=n(2908),i=n(4757);e.exports=function(e,t,n,s,a,l){var c=1&n,u=e.length,d=t.length;if(u!=d&&!(c&&d>u))return!1;var p=l.get(e),f=l.get(t);if(p&&f)return p==t&&f==e;var h=-1,m=!0,v=2&n?new o:void 0;for(l.set(e,t),l.set(t,e);++h{var o=n(2705),r=n(1149),i=n(7813),s=n(7114),a=n(8776),l=n(1814),c=o?o.prototype:void 0,u=c?c.valueOf:void 0;e.exports=function(e,t,n,o,c,d,p){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!d(new r(e),new r(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return i(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var f=a;case"[object Set]":var h=1&o;if(f||(f=l),e.size!=t.size&&!h)return!1;var m=p.get(e);if(m)return m==t;o|=2,p.set(e,t);var v=s(f(e),f(t),o,c,d,p);return p.delete(e),v;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},6096:(e,t,n)=>{var o=n(8234),r=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,i,s,a){var l=1&n,c=o(e),u=c.length;if(u!=o(t).length&&!l)return!1;for(var d=u;d--;){var p=c[d];if(!(l?p in t:r.call(t,p)))return!1}var f=a.get(e),h=a.get(t);if(f&&h)return f==t&&h==e;var m=!0;a.set(e,t),a.set(t,e);for(var v=l;++d{var o="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=o},8234:(e,t,n)=>{var o=n(8866),r=n(9551),i=n(3674);e.exports=function(e){return o(e,i,r)}},5050:(e,t,n)=>{var o=n(7019);e.exports=function(e,t){var n=e.__data__;return o(t)?n["string"==typeof t?"string":"hash"]:n.map}},852:(e,t,n)=>{var o=n(8458),r=n(7801);e.exports=function(e,t){var n=r(e,t);return o(n)?n:void 0}},9607:(e,t,n)=>{var o=n(2705),r=Object.prototype,i=r.hasOwnProperty,s=r.toString,a=o?o.toStringTag:void 0;e.exports=function(e){var t=i.call(e,a),n=e[a];try{e[a]=void 0;var o=!0}catch(e){}var r=s.call(e);return o&&(t?e[a]=n:delete e[a]),r}},9551:(e,t,n)=>{var o=n(4963),r=n(479),i=Object.prototype.propertyIsEnumerable,s=Object.getOwnPropertySymbols,a=s?function(e){return null==e?[]:(e=Object(e),o(s(e),(function(t){return i.call(e,t)})))}:r;e.exports=a},4160:(e,t,n)=>{var o=n(8552),r=n(7071),i=n(3818),s=n(8525),a=n(577),l=n(4239),c=n(346),u="[object Map]",d="[object Promise]",p="[object Set]",f="[object WeakMap]",h="[object DataView]",m=c(o),v=c(r),g=c(i),y=c(s),b=c(a),_=l;(o&&_(new o(new ArrayBuffer(1)))!=h||r&&_(new r)!=u||i&&_(i.resolve())!=d||s&&_(new s)!=p||a&&_(new a)!=f)&&(_=function(e){var t=l(e),n="[object Object]"==t?e.constructor:void 0,o=n?c(n):"";if(o)switch(o){case m:return h;case v:return u;case g:return d;case y:return p;case b:return f}return t}),e.exports=_},7801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},1789:(e,t,n)=>{var o=n(4536);e.exports=function(){this.__data__=o?o(null):{},this.size=0}},401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},7667:(e,t,n)=>{var o=n(4536),r=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(o){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return r.call(t,e)?t[e]:void 0}},1327:(e,t,n)=>{var o=n(4536),r=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return o?void 0!==t[e]:r.call(t,e)}},1866:(e,t,n)=>{var o=n(4536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=o&&void 0===t?"__lodash_hash_undefined__":t,this}},5776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var o=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==o||"symbol"!=o&&t.test(e))&&e>-1&&e%1==0&&e{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},5346:(e,t,n)=>{var o,r=n(4429),i=(o=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||""))?"Symbol(src)_1."+o:"";e.exports=function(e){return!!i&&i in e}},5726:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},7040:e=>{e.exports=function(){this.__data__=[],this.size=0}},4125:(e,t,n)=>{var o=n(8470),r=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=o(t,e);return!(n<0)&&(n==t.length-1?t.pop():r.call(t,n,1),--this.size,!0)}},2117:(e,t,n)=>{var o=n(8470);e.exports=function(e){var t=this.__data__,n=o(t,e);return n<0?void 0:t[n][1]}},7518:(e,t,n)=>{var o=n(8470);e.exports=function(e){return o(this.__data__,e)>-1}},4705:(e,t,n)=>{var o=n(8470);e.exports=function(e,t){var n=this.__data__,r=o(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}},4785:(e,t,n)=>{var o=n(1989),r=n(8407),i=n(7071);e.exports=function(){this.size=0,this.__data__={hash:new o,map:new(i||r),string:new o}}},1285:(e,t,n)=>{var o=n(5050);e.exports=function(e){var t=o(this,e).delete(e);return this.size-=t?1:0,t}},6e3:(e,t,n)=>{var o=n(5050);e.exports=function(e){return o(this,e).get(e)}},9916:(e,t,n)=>{var o=n(5050);e.exports=function(e){return o(this,e).has(e)}},5265:(e,t,n)=>{var o=n(5050);e.exports=function(e,t){var n=o(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}},8776:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,o){n[++t]=[o,e]})),n}},4536:(e,t,n)=>{var o=n(852)(Object,"create");e.exports=o},6916:(e,t,n)=>{var o=n(5569)(Object.keys,Object);e.exports=o},1167:(e,t,n)=>{e=n.nmd(e);var o=n(1957),r=t&&!t.nodeType&&t,i=r&&e&&!e.nodeType&&e,s=i&&i.exports===r&&o.process,a=function(){try{var e=i&&i.require&&i.require("util").types;return e||s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=a},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},5639:(e,t,n)=>{var o=n(1957),r="object"==typeof self&&self&&self.Object===Object&&self,i=o||r||Function("return this")();e.exports=i},619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},2385:e=>{e.exports=function(e){return this.__data__.has(e)}},1814:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},7465:(e,t,n)=>{var o=n(8407);e.exports=function(){this.__data__=new o,this.size=0}},3779:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},7599:e=>{e.exports=function(e){return this.__data__.get(e)}},4758:e=>{e.exports=function(e){return this.__data__.has(e)}},4309:(e,t,n)=>{var o=n(8407),r=n(7071),i=n(3369);e.exports=function(e,t){var n=this.__data__;if(n instanceof o){var s=n.__data__;if(!r||s.length<199)return s.push([e,t]),this.size=++n.size,this;n=this.__data__=new i(s)}return n.set(e,t),this.size=n.size,this}},346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},7990:e=>{var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},3279:(e,t,n)=>{var o=n(3218),r=n(7771),i=n(4841),s=Math.max,a=Math.min;e.exports=function(e,t,n){var l,c,u,d,p,f,h=0,m=!1,v=!1,g=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){var n=l,o=c;return l=c=void 0,h=t,d=e.apply(o,n)}function b(e){return h=e,p=setTimeout(w,t),m?y(e):d}function _(e){var n=e-f;return void 0===f||n>=t||n<0||v&&e-h>=u}function w(){var e=r();if(_(e))return x(e);p=setTimeout(w,function(e){var n=t-(e-f);return v?a(n,u-(e-h)):n}(e))}function x(e){return p=void 0,g&&l?y(e):(l=c=void 0,d)}function k(){var e=r(),n=_(e);if(l=arguments,c=this,f=e,n){if(void 0===p)return b(f);if(v)return clearTimeout(p),p=setTimeout(w,t),y(f)}return void 0===p&&(p=setTimeout(w,t)),d}return t=i(t)||0,o(n)&&(m=!!n.leading,u=(v="maxWait"in n)?s(i(n.maxWait)||0,t):u,g="trailing"in n?!!n.trailing:g),k.cancel=function(){void 0!==p&&clearTimeout(p),h=0,l=f=c=p=void 0},k.flush=function(){return void 0===p?d:x(r())},k}},7813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},5694:(e,t,n)=>{var o=n(9454),r=n(7005),i=Object.prototype,s=i.hasOwnProperty,a=i.propertyIsEnumerable,l=o(function(){return arguments}())?o:function(e){return r(e)&&s.call(e,"callee")&&!a.call(e,"callee")};e.exports=l},1469:e=>{var t=Array.isArray;e.exports=t},8612:(e,t,n)=>{var o=n(3560),r=n(1780);e.exports=function(e){return null!=e&&r(e.length)&&!o(e)}},4144:(e,t,n)=>{e=n.nmd(e);var o=n(5639),r=n(5062),i=t&&!t.nodeType&&t,s=i&&e&&!e.nodeType&&e,a=s&&s.exports===i?o.Buffer:void 0,l=(a?a.isBuffer:void 0)||r;e.exports=l},8446:(e,t,n)=>{var o=n(939);e.exports=function(e,t){return o(e,t)}},3560:(e,t,n)=>{var o=n(4239),r=n(3218);e.exports=function(e){if(!r(e))return!1;var t=o(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},1780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},3218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},3448:(e,t,n)=>{var o=n(4239),r=n(7005);e.exports=function(e){return"symbol"==typeof e||r(e)&&"[object Symbol]"==o(e)}},6719:(e,t,n)=>{var o=n(8749),r=n(1717),i=n(1167),s=i&&i.isTypedArray,a=s?r(s):o;e.exports=a},3674:(e,t,n)=>{var o=n(4636),r=n(280),i=n(8612);e.exports=function(e){return i(e)?o(e):r(e)}},7771:(e,t,n)=>{var o=n(5639);e.exports=function(){return o.Date.now()}},479:e=>{e.exports=function(){return[]}},5062:e=>{e.exports=function(){return!1}},4841:(e,t,n)=>{var o=n(7561),r=n(3218),i=n(3448),s=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return NaN;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=o(e);var n=a.test(e);return n||l.test(e)?c(e.slice(2),n?2:8):s.test(e)?NaN:+e}},7230:()=>{},9652:(e,t,n)=>{"use strict";function o(e){return{all:e=e||new Map,on:function(t,n){var o=e.get(t);o&&o.push(n)||e.set(t,[n])},off:function(t,n){var o=e.get(t);o&&o.splice(o.indexOf(n)>>>0,1)},emit:function(t,n){(e.get(t)||[]).slice().map((function(e){e(n)})),(e.get("*")||[]).slice().map((function(e){e(t,n)}))}}}n.r(t),n.d(t,{default:()=>o})},2796:(e,t,n)=>{e.exports=n(643)},3264:e=>{"use strict";var t=!("undefined"==typeof window||!window.document||!window.document.createElement),n={canUseDOM:t,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:t&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:t&&!!window.screen,isInWorker:!t};e.exports=n},4518:e=>{var t,n,o,r,i,s,a,l,c,u,d,p,f,h,m,v=!1;function g(){if(!v){v=!0;var e=navigator.userAgent,g=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),y=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(p=/\b(iPhone|iP[ao]d)/.exec(e),f=/\b(iP[ao]d)/.exec(e),u=/Android/i.exec(e),h=/FBAN\/\w+;/i.exec(e),m=/Mobile/i.exec(e),d=!!/Win64/.exec(e),g){(t=g[1]?parseFloat(g[1]):g[5]?parseFloat(g[5]):NaN)&&document&&document.documentMode&&(t=document.documentMode);var b=/(?:Trident\/(\d+.\d+))/.exec(e);s=b?parseFloat(b[1])+4:t,n=g[2]?parseFloat(g[2]):NaN,o=g[3]?parseFloat(g[3]):NaN,(r=g[4]?parseFloat(g[4]):NaN)?(g=/(?:Chrome\/(\d+\.\d+))/.exec(e),i=g&&g[1]?parseFloat(g[1]):NaN):i=NaN}else t=n=o=i=r=NaN;if(y){if(y[1]){var _=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);a=!_||parseFloat(_[1].replace("_","."))}else a=!1;l=!!y[2],c=!!y[3]}else a=l=c=!1}}var y={ie:function(){return g()||t},ieCompatibilityMode:function(){return g()||s>t},ie64:function(){return y.ie()&&d},firefox:function(){return g()||n},opera:function(){return g()||o},webkit:function(){return g()||r},safari:function(){return y.webkit()},chrome:function(){return g()||i},windows:function(){return g()||l},osx:function(){return g()||a},linux:function(){return g()||c},iphone:function(){return g()||p},mobile:function(){return g()||p||f||u||m},nativeApp:function(){return g()||h},android:function(){return g()||u},ipad:function(){return g()||f}};e.exports=y},6534:(e,t,n)=>{"use strict";var o,r=n(3264);r.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),e.exports=function(e,t){if(!r.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,i=n in document;if(!i){var s=document.createElement("div");s.setAttribute(n,"return;"),i="function"==typeof s[n]}return!i&&o&&"wheel"===e&&(i=document.implementation.hasFeature("Events.wheel","3.0")),i}},643:(e,t,n)=>{"use strict";var o=n(4518),r=n(6534);function i(e){var t=0,n=0,o=0,r=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),o=10*t,r=10*n,"deltaY"in e&&(r=e.deltaY),"deltaX"in e&&(o=e.deltaX),(o||r)&&e.deltaMode&&(1==e.deltaMode?(o*=40,r*=40):(o*=800,r*=800)),o&&!t&&(t=o<1?-1:1),r&&!n&&(n=r<1?-1:1),{spinX:t,spinY:n,pixelX:o,pixelY:r}}i.getEventType=function(){return o.firefox()?"DOMMouseScroll":r("wheel")?"wheel":"mousewheel"},e.exports=i},1033:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>E});var o=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,o){return e[0]===t&&(n=o,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),o=this.__entries__[n];return o&&o[1]},t.prototype.set=function(t,n){var o=e(this.__entries__,t);~o?this.__entries__[o][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,o=e(n,t);~o&&n.splice(o,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,o=this.__entries__;n0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),l?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;a.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),u=function(e,t){for(var n=0,o=Object.keys(t);n0},e}(),x="undefined"!=typeof WeakMap?new WeakMap:new o,k=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=c.getInstance(),o=new w(t,n,this);x.set(this,o)};["observe","unobserve","disconnect"].forEach((function(e){k.prototype[e]=function(){var t;return(t=x.get(this))[e].apply(t,arguments)}}));const E=void 0!==i.ResizeObserver?i.ResizeObserver:k},6770:()=>{!function(e,t){"use strict";"function"!=typeof e.CustomEvent&&(e.CustomEvent=function(e,n){n=n||{bubbles:!1,cancelable:!1,detail:void 0};var o=t.createEvent("CustomEvent");return o.initCustomEvent(e,n.bubbles,n.cancelable,n.detail),o},e.CustomEvent.prototype=e.Event.prototype),t.addEventListener("touchstart",(function(e){if("true"===e.target.getAttribute("data-swipe-ignore"))return;a=e.target,s=Date.now(),n=e.touches[0].clientX,o=e.touches[0].clientY,r=0,i=0}),!1),t.addEventListener("touchmove",(function(e){if(!n||!o)return;var t=e.touches[0].clientX,s=e.touches[0].clientY;r=n-t,i=o-s}),!1),t.addEventListener("touchend",(function(e){if(a!==e.target)return;var t=parseInt(l(a,"data-swipe-threshold","20"),10),c=parseInt(l(a,"data-swipe-timeout","500"),10),u=Date.now()-s,d="",p=e.changedTouches||e.touches||[];Math.abs(r)>Math.abs(i)?Math.abs(r)>t&&u0?"swiped-left":"swiped-right"):Math.abs(i)>t&&u0?"swiped-up":"swiped-down");if(""!==d){var f={dir:d.replace(/swiped-/,""),touchType:(p[0]||{}).touchType||"direct",xStart:parseInt(n,10),xEnd:parseInt((p[0]||{}).clientX||-1,10),yStart:parseInt(o,10),yEnd:parseInt((p[0]||{}).clientY||-1,10)};a.dispatchEvent(new CustomEvent("swiped",{bubbles:!0,cancelable:!0,detail:f})),a.dispatchEvent(new CustomEvent(d,{bubbles:!0,cancelable:!0,detail:f}))}n=null,o=null,s=null}),!1);var n=null,o=null,r=null,i=null,s=null,a=null;function l(e,n,o){for(;e&&e!==t.documentElement;){var r=e.getAttribute(n);if(r)return r;e=e.parentNode}return o}}(window,document)},3744:(e,t)=>{"use strict";t.Z=(e,t)=>{const n=e.__vccOpts||e;for(const[e,o]of t)n[e]=o;return n}},2660:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ia});var o=n(4865),r={class:"f-container"},i={class:"f-form-wrap"},s={key:0,class:"vff-animate f-fade-in-up field-submittype"},a={class:"f-section-wrap"},l={class:"fh2"},c=["disabled","aria-label"],u=["innerHTML"],d={key:2,class:"text-success"},p={class:"vff-footer"},f={class:"footer-inner-wrap"},h={key:0,class:"ffc_progress_label"},m={class:"f-progress-bar"},v={key:1,class:"f-nav"},g={key:0,href:"https://fluentforms.com/",target:"_blank",rel:"noopener",class:"ffc_power"},y=[(0,o.createTextVNode)(" Powered by "),(0,o.createElementVNode)("b",null,"FluentForms",-1)],b=["aria-label"],_=(0,o.createElementVNode)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",width:"42.333px",height:"28.334px",viewBox:"78.833 5.5 42.333 28.334","aria-hidden":"true"},[(0,o.createElementVNode)("path",{d:"M82.039,31.971L100,11.442l17.959,20.529L120,30.187L101.02,8.492c-0.258-0.295-0.629-0.463-1.02-0.463c-0.39,0-0.764,0.168-1.02,0.463L80,30.187L82.039,31.971z"})],-1),w={class:"f-nav-text","aria-hidden":"true"},x=["aria-label"],k=(0,o.createElementVNode)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",width:"42.333px",height:"28.334px",viewBox:"78.833 5.5 42.333 28.334","aria-hidden":"true"},[(0,o.createElementVNode)("path",{d:"M117.963,8.031l-17.961,20.529L82.042,8.031l-2.041,1.784l18.98,21.695c0.258,0.295,0.629,0.463,1.02,0.463c0.39,0,0.764-0.168,1.02-0.463l18.98-21.695L117.963,8.031z"})],-1),E={class:"f-nav-text","aria-hidden":"true"},C={key:2,class:"f-timer"};var S={class:"ffc_q_header"},O=["innerHTML"],T={key:1,class:"f-text"},V=["aria-label"],B=[(0,o.createElementVNode)("span",{"aria-hidden":"true"},"*",-1)],M=["innerHTML"],N=["aria-label"],A=[(0,o.createElementVNode)("span",{"aria-hidden":"true"},"*",-1)],q={key:2,class:"f-answer"},P=["innerHTML"],F={key:0,class:"f-answer f-full-width"},L={key:1,class:"f-sub"},D=["innerHTML"],I=["innerHTML"],R={key:2,class:"f-help"},j={key:3,class:"f-help"},$={key:0,class:"f-description"},z={key:0},H=["href","target"],U={key:0,class:"vff-animate f-fade-in f-enter"},K=["disabled","aria-label"],W={key:0},Q=["innerHTML"],Y=["innerHTML"],G=["innerHTML"],Z=["innerHTML"],J={key:1,class:"f-invalid",role:"alert","aria-live":"assertive"},X={key:0,class:"ff_conv_media_holder"},ee={key:0,class:"fc_image_holder"},te=["alt","src"];var ne={class:"ffc-counter"},oe={class:"ffc-counter-in"},re={class:"ffc-counter-div"},ie={class:"counter-value"},se={class:"counter-icon-container"},ae={class:"counter-icon-span"},le={key:0,height:"8",width:"7"},ce=[(0,o.createElementVNode)("path",{d:"M5 3.5v1.001H-.002v-1z"},null,-1),(0,o.createElementVNode)("path",{d:"M4.998 4L2.495 1.477 3.2.782 6.416 4 3.199 7.252l-.704-.709z"},null,-1)],ue={key:1,height:"10",width:"11"},de=[(0,o.createElementVNode)("path",{d:"M7.586 5L4.293 1.707 5.707.293 10.414 5 5.707 9.707 4.293 8.293z"},null,-1),(0,o.createElementVNode)("path",{d:"M8 4v2H0V4z"},null,-1)];const pe={name:"Counter",props:["serial","isMobile"]};var fe=n(3744);const he=(0,fe.Z)(pe,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("div",ne,[(0,o.createElementVNode)("div",oe,[(0,o.createElementVNode)("div",re,[(0,o.createElementVNode)("span",ie,[(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(n.serial),1)]),(0,o.createElementVNode)("div",se,[(0,o.createElementVNode)("span",ae,[n.isMobile?((0,o.openBlock)(),(0,o.createElementBlock)("svg",le,ce)):((0,o.openBlock)(),(0,o.createElementBlock)("svg",ue,de))])])])])])}]]);var me=["aria-label","disabled"],ve=["innerHTML"],ge=["disabled","src","aria-label"],ye=["innerHTML"];const be=function(e,t){e||(e=0);var n=parseInt(e)/100,o=2;e%100==0&&0==t.decimal_points&&(o=0);var r=",",i=".";"dot_comma"!=t.currency_separator&&(r=".",i=",");var s,a,l,c,u,d,p,f,h,m,v=t.currency_sign||"",g=(s=n,a=o,l=i,c=r,u=isNaN(a)?2:Math.abs(a),d=l||".",p=void 0===c?",":c,f=s<0?"-":"",h=parseInt(s=Math.abs(s).toFixed(u))+"",m=(m=h.length)>3?m%3:0,f+(m?h.substr(0,m)+p:"")+h.substr(m).replace(/(\d{3})(?=\d)/g,"$1"+p)+(u?d+Math.abs(s-h).toFixed(u).slice(2):""));return"right"==t.currency_sign_position?g+""+v:"left_space"==t.currency_sign_position?v+" "+g:"right_space"==t.currency_sign_position?g+" "+v:v+""+g};function _e(e,t,n){e.signup_fee&&n.push({label:this.$t("Signup Fee for")+" "+t.title+" - "+e.name,price:e.signup_fee,quantity:1,lineTotal:1*e.signup_fee});var o=e.subscription_amount;return"yes"==e.user_input&&(o=t.customPayment),e.trial_days&&(o=0),o}function we(e){for(var t=[],n=function(n){var o=e[n],r=!o.multiple&&null!=o.answer||o.multiple&&o.answer&&o.answer.length,i=o.paymentItemQty||1;if(o.is_payment_field&&r){var s=Array.isArray(o.answer)?o.answer:[o.answer];if(o.options.length){var a=[];if(o.options.forEach((function(e){var n=o.is_subscription_field?"value":"label";if(s.includes(e[n])){var r=e.value;if(!r)return;if(o.is_subscription_field){var l=o.plans[e.value],c=!("yes"===l.has_trial_days&&l.trial_days);if(!(r=_e(l,o,t))&&c)return}a.push({label:e.label,price:r,quantity:i,lineTotal:r*i})}})),a.length){var l=0,c=0;a.forEach((function(e){l+=parseFloat(e.price),c+=e.lineTotal})),t.push({label:o.title,price:l,quantity:i,lineTotal:c,childItems:a})}}else{var u=o.answer;o.is_subscription_field&&(u=_e(o.plans[o.answer],o,t)),t.push({label:o.title,price:u,quantity:i,lineTotal:u*i})}}},o=0;o0:!Array.isArray(e)||e.length>0}return!1},hasCalculation:function(){var e,t,n;return!(null===(e=this.globalVars)||void 0===e||!e.hasPro||null===(t=this.question)||void 0===t||null===(n=t.calculation_settings)||void 0===n||!n.status)}}},Le=["value"];function De(e,t,n=!0,o){e=e||"",t=t||"";for(var r=0,i=0,s="";re.length-t.length)),function(o,r,i=!0){for(var s=0;sa.length))return e(o,a,i,n)}return""}}(De,t,o)(e,t,n,o):De(e,t,n,o)}var Re=n(5460),je=n.n(Re);function $e(e){var t=document.createEvent("Event");return t.initEvent(e,!0,!0),t}const ze={name:"TheMask",props:{value:[String,Number],mask:{type:[String,Array],required:!0},masked:{type:Boolean,default:!1},tokens:{type:Object,default:()=>je()}},directives:{mask:function(e,t){var n=t.value;if((Array.isArray(n)||"string"==typeof n)&&(n={mask:n,tokens:je()}),"INPUT"!==e.tagName.toLocaleUpperCase()){var o=e.getElementsByTagName("input");if(1!==o.length)throw new Error("v-mask directive requires 1 input, found "+o.length);e=o[0]}e.oninput=function(t){if(t.isTrusted){var o=e.selectionEnd,r=e.value[o-1];for(e.value=Ie(e.value,n.mask,!0,n.tokens);os.onInput&&s.onInput(...e))},null,40,Le)),[[a,s.config]])}]]),Ue={extends:Fe,name:Me.ce.Text,components:{TheMask:He},data:function(){return{inputType:"text",canReceiveFocus:!0}},methods:{validate:function(){return this.question.mask&&this.hasValue?this.validateMask():!this.question.required||this.hasValue},validateMask:function(){var e=this;return Array.isArray(this.question.mask)?this.question.mask.some((function(t){return t.length===e.dataValue.length})):this.dataValue.length===this.question.mask.length}}},Ke=(0,fe.Z)(Ue,[["render",function(e,t,n,r,i,s){var a=(0,o.resolveComponent)("the-mask");return(0,o.openBlock)(),(0,o.createElementBlock)("span",{"data-placeholder":"date"===i.inputType?e.placeholder:null},[e.question.mask?((0,o.openBlock)(),(0,o.createBlock)(a,{key:0,ref:"input",name:e.question.name,mask:e.question.mask,masked:!1,type:i.inputType,value:e.modelValue,required:e.question.required,disabled:e.hasCalculation,onKeydown:e.onKeyDown,onKeyup:[e.onChange,(0,o.withKeys)((0,o.withModifiers)(e.onEnter,["prevent"]),["enter"]),(0,o.withKeys)((0,o.withModifiers)(e.onEnter,["prevent"]),["tab"])],onFocus:e.setFocus,onBlur:e.unsetFocus,placeholder:e.placeholder,min:e.question.min,max:e.question.max,onChange:e.onChange},null,8,["name","mask","type","value","required","disabled","onKeydown","onKeyup","onFocus","onBlur","placeholder","min","max","onChange"])):((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,ref:"input",name:e.question.name,type:i.inputType,value:e.modelValue,required:e.question.required,onKeydown:t[0]||(t[0]=function(){return e.onKeyDown&&e.onKeyDown.apply(e,arguments)}),onKeyup:t[1]||(t[1]=function(){return e.onChange&&e.onChange.apply(e,arguments)}),disabled:e.hasCalculation,onFocus:t[2]||(t[2]=function(){return e.setFocus&&e.setFocus.apply(e,arguments)}),onBlur:t[3]||(t[3]=function(){return e.unsetFocus&&e.unsetFocus.apply(e,arguments)}),min:e.question.min,max:e.question.max,onChange:t[4]||(t[4]=function(){return e.onChange&&e.onChange.apply(e,arguments)}),placeholder:e.placeholder,maxlength:e.question.maxLength},null,40,Be))],8,Ve)}]]),We={extends:Ke,name:Me.ce.Url,data:function(){return{inputType:"url"}},methods:{fixAnswer:function(e){return e&&-1===e.indexOf("://")&&(e="https://"+e),e},validate:function(){if(this.hasValue)try{return new URL(this.fixAnswer(this.dataValue)),!0}catch(e){return!1}return!this.question.required}}},Qe={extends:We,methods:{validate:function(){if(this.hasValue&&this.question.validationRules.url.value){if(!/^[(ftp|http(s)?):\/\/(www\.)?a-zA-Z0-9-]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/.test(this.fixAnswer(this.dataValue)))return this.errorMessage=this.question.validationRules.url.message,!1}return!(this.question.required&&!this.hasValue)||(this.errorMessage=this.question.validationRules.required.message,!1)},shouldPrev:function(){return!0}}};var Ye=["data-placeholder"],Ge=["name","type","value","required","readonly","disabled","min","max","maxlength","placeholder"];const Ze={extends:Ke,data:function(){return{tokens:{"*":{pattern:/[0-9a-zA-Z]/},0:{pattern:/\d/},9:{pattern:/\d/,optional:!0},"#":{pattern:/\d/,recursive:!0},A:{pattern:/[a-zA-Z0-9]/},S:{pattern:/[a-zA-Z]/}}}},methods:{validate:function(){var e=this.question.maxLength;if(this.hasValue&&e&&this.dataValue.length>+e)return this.errorMessage=this.language.errorMaxLength.replace("{maxLength}",e),!1;if(this.question.mask&&this.hasValue){var t=this.validateMask();return t||(this.errorMessage=this.language.invalidPrompt),t}return!(this.question.required&&!this.hasValue)||(this.errorMessage=this.question.validationRules.required.message,!1)},shouldPrev:function(){return!0}}},Je=(0,fe.Z)(Ze,[["render",function(e,t,n,r,i,s){var a=(0,o.resolveComponent)("the-mask");return(0,o.openBlock)(),(0,o.createElementBlock)("span",{"data-placeholder":"date"===e.inputType?e.placeholder:null},[e.question.mask?((0,o.openBlock)(),(0,o.createBlock)(a,{key:0,ref:"input",name:e.question.name,mask:e.question.mask,masked:!1,tokens:i.tokens,type:e.inputType,value:e.modelValue,required:e.question.required,disabled:e.hasCalculation,onKeydown:e.onKeyDown,onKeyup:e.onChange,onFocus:e.setFocus,onBlur:e.unsetFocus,placeholder:e.placeholder,min:e.question.min,max:e.question.max,onChange:e.onChange},null,8,["name","mask","tokens","type","value","required","disabled","onKeydown","onKeyup","onFocus","onBlur","placeholder","min","max","onChange"])):((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,ref:"input",name:e.question.name,type:e.inputType,value:e.modelValue,required:e.question.required,readonly:e.question.readonly,disabled:e.hasCalculation,onKeydown:t[0]||(t[0]=function(){return e.onKeyDown&&e.onKeyDown.apply(e,arguments)}),onKeyup:t[1]||(t[1]=function(){return e.onChange&&e.onChange.apply(e,arguments)}),onFocus:t[2]||(t[2]=function(){return e.setFocus&&e.setFocus.apply(e,arguments)}),onBlur:t[3]||(t[3]=function(){return e.unsetFocus&&e.unsetFocus.apply(e,arguments)}),min:e.question.min,max:e.question.max,maxlength:e.question.maxLength,onChange:t[4]||(t[4]=function(){return e.onChange&&e.onChange.apply(e,arguments)}),placeholder:e.placeholder},null,40,Ge))],8,Ye)}]]);var Xe={class:"ff_file_upload"},et={class:"ff_file_upload_wrapper"},tt={class:"ff_file_upload_field_wrap"},nt=["accept","multiple","required"],ot={"aria-hidden":"true",class:"help_text"},rt={class:"ff_file_upload_field"},it={class:"icon_wrap"},st={height:"68px",viewBox:"0 0 92 68",width:"92px",style:{display:"block"}},at=["fill"],lt={class:"file_upload_arrow_wrap"},ct={class:"file_upload_arrow"},ut={height:"60px",viewBox:"0 0 26 31",width:"26px"},dt=["fill"],pt={class:"upload_text_wrap"},ft=["innerHTML"],ht={class:"upload_text size"},mt={key:0,class:"ff-uploaded-list"},vt={class:"ff-upload-thumb"},gt={class:"ff-upload-filename"},yt={class:"ff-upload-progress-inline ff-el-progress"},bt={class:"ff-upload-progress-inline-text ff-inline-block"},_t={class:"ff-upload-filesize ff-inline-block"},wt={class:"ff-upload-error"},xt=["onClick"];var kt=n(3012);function Et(e){return Et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Et(e)}function Ct(){Ct=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},r=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function a(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{a({},"")}catch(e){a=function(e,t,n){return e[t]=n}}function l(e,t,n,o){var r=t&&t.prototype instanceof d?t:d,i=Object.create(r.prototype),s=new k(o||[]);return i._invoke=function(e,t,n){var o="suspendedStart";return function(r,i){if("executing"===o)throw new Error("Generator is already running");if("completed"===o){if("throw"===r)throw i;return C()}for(n.method=r,n.arg=i;;){var s=n.delegate;if(s){var a=_(s,n);if(a){if(a===u)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===o)throw o="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o="executing";var l=c(e,t,n);if("normal"===l.type){if(o=n.done?"completed":"suspendedYield",l.arg===u)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o="completed",n.method="throw",n.arg=l.arg)}}}(e,n,s),i}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=l;var u={};function d(){}function p(){}function f(){}var h={};a(h,r,(function(){return this}));var m=Object.getPrototypeOf,v=m&&m(m(E([])));v&&v!==t&&n.call(v,r)&&(h=v);var g=f.prototype=d.prototype=Object.create(h);function y(e){["next","throw","return"].forEach((function(t){a(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){function o(r,i,s,a){var l=c(e[r],e,i);if("throw"!==l.type){var u=l.arg,d=u.value;return d&&"object"==Et(d)&&n.call(d,"__await")?t.resolve(d.__await).then((function(e){o("next",e,s,a)}),(function(e){o("throw",e,s,a)})):t.resolve(d).then((function(e){u.value=e,s(u)}),(function(e){return o("throw",e,s,a)}))}a(l.arg)}var r;this._invoke=function(e,n){function i(){return new t((function(t,r){o(e,n,t,r)}))}return r=r?r.then(i,i):i()}}function _(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,_(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var o=c(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,u;var r=o.arg;return r?r.done?(t[e.resultName]=r.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):r:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function E(e){if(e){var t=e[r];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function t(){for(;++o=0;--r){var i=this.tryEntries[r],s=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var a=n.call(i,"catchLoc"),l=n.call(i,"finallyLoc");if(a&&l){if(this.prev=0;--o){var r=this.tryEntries[o];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),x(n),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var r=o.arg;x(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}function St(e,t,n,o,r,i,s){try{var a=e[i](s),l=a.value}catch(e){return void n(e)}a.done?t(l):Promise.resolve(l).then(o,r)}const Ot={extends:Je,name:kt.ce.File,data:function(){return{files:[],uploadsInfo:{}}},mounted:function(){var e=this;this.question.accept&&(this.mimeTypeRegex=new RegExp(this.question.accept.replace("*","[^\\/,]+"))),this.question.answer&&this.question.has_save_and_resume&&this.question.answer.forEach(function(){var t,n=(t=Ct().mark((function t(n){var o,r,i,s,a;return Ct().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=n.replace("http://","https://"),t.prev=1,t.next=4,fetch(n);case 4:return(o=t.sent).ok||console.error("Failed to fetch image (status ".concat(o.status,")")),t.next=8,o.blob();case 8:r=t.sent,i=n.substring(n.lastIndexOf("/")+1),s=new File([r],i,{type:r.type}),a=(new Date).getTime(),e.uploadsInfo[a]={progress:100,uploading:!1,uploadingClass:"",uploadingTxt:e.globalVars.upload_completed_txt},s.id=a,e.files.push(s),s.url=n,s.path=s.name,e.setAnswer(s.path),t.next=24;break;case 20:t.prev=20,t.t0=t.catch(1),e.errorMessage=t.t0,console.error("Error:",t.t0);case 24:case"end":return t.stop()}}),t,null,[[1,20]])})),function(){var e=this,n=arguments;return new Promise((function(o,r){var i=t.apply(e,n);function s(e){St(i,o,r,s,a,"next",e)}function a(e){St(i,o,r,s,a,"throw",e)}s(void 0)}))});return function(e){return n.apply(this,arguments)}}())},methods:{setAnswer:function(e){this.question.setAnswer(this.files.map((function(e){return e.url}))),this.answer.push=e,this.question.answered=!0},showInvalid:function(){return null!==this.errorMessage},validate:function(){return!(this.question.required&&!this.hasValue)||(this.errorMessage=this.question.validationRules.required.message,!1)},validateFiles:function(e){var t=this;if(this.errorMessage=null,this.question.accept&&!e.every((function(e){return t.mimeTypeRegex.test(e.name.split(".").pop())})))return this.errorMessage=this.question.validationRules.allowed_file_types.message,!1;if(this.question.multiple){var n=e.length;if(null!==this.question.min&&n<+this.question.min)return this.errorMessage=this.language.formatString(this.language.errorMinFiles,{min:this.question.min}),!1;if(null!==this.question.max&&n>+this.question.max)return this.errorMessage=this.question.validationRules.max_file_count.message,!1}return!(null!==this.question.maxSize&&!e.every((function(e){return e.size<+t.question.maxSize})))||(this.errorMessage=this.question.validationRules.max_file_size.message,!1)},onFileChange:function(e){var t=this;if(!e.target.files.length)return!1;var n=this.files.concat(Array.from(e.target.files));if(this.validateFiles(n))for(var o=function(n){var o=e.target.files.item(n),r=(new Date).getTime();t.uploadsInfo[r]={progress:0,uploading:!0,uploadingClass:"ff_uploading",uploadingTxt:t.globalVars.uploading_txt},o.id=r,t.files.push(o);var i=new FormData;for(var s in t.globalVars.extra_inputs)i.append(s,t.globalVars.extra_inputs[s]);i.append(t.question.name,o),i.append("action","fluentform_file_upload"),i.append("formId",t.globalVars.form_id);var a=new XMLHttpRequest,l=t.globalVars.ajaxurl;a.open("POST",l),a.responseType="json",a.upload.addEventListener("progress",(function(e){t.uploadsInfo[r].progress=parseInt(e.loaded/e.total*100,10)}),!1),a.onload=function(){if(200!==a.status)t.processAPIError(a,r);else{if(a.response.data.files[0].error)return void t.processAPIError({responseText:a.response.data.files[0].error},r);o.path=a.response.data.files[0].file,o.url=a.response.data.files[0].url,t.uploadsInfo[r].uploading=!1,t.uploadsInfo[r].uploadingTxt=t.globalVars.upload_completed_txt,t.uploadsInfo[r].uploadingClass="",t.dirty=!0,t.dataValue=o.path,t.onKeyDown(),t.setAnswer(o.path)}},a.send(i)},r=0;r=e&&null!=this.dataValue,"is-hovered":this.temp_value>=e&&null!=this.temp_value,"is-disabled":this.disabled,blink:this.dataValue===e}},addKeyListener:function(){this.removeKeyListener(),this.$el.addEventListener("keyup",this.onKeyListener)},removeKeyListener:function(){this.$el.removeEventListener("keyup",this.onKeyListener)},onKeyListener:function(e){if(this.active&&!this.editingOther&&e.key)if(-1!==["ArrowRight","ArrowLeft"].indexOf(e.key))"ArrowRight"===e.key?this.hover_value=Math.min(this.hover_value+1,Object.keys(this.ratings).length):this.hover_value=Math.max(this.hover_value-1,1),this.hover_value>0&&this.focus(this.hover_value);else if(1===e.key.length){var t=parseInt(e.key);32==e.keyCode&&this.temp_value&&(t=this.temp_value);var n=this.question.rateOptions[t];n&&this.set(t,n)}},getTabIndex:function(e){var t=-1;return(this.dataValue&&this.dataValue==e||Object.keys(this.ratings)[0]==e)&&(t=0),t},focus:function(e){var t=0;(e=e||this.dataValue||this.hover_value)?(t=Object.keys(this.ratings).findIndex((function(t){return t==e})),this.toggleDataFocus(t)):e=Object.keys(this.ratings)[0],this.temp_value=parseInt(e),this.hover_value=this.temp_value},toggleDataFocus:function(e){for(var t=this.$el.getElementsByClassName("f-star-field-wrap"),n=0;nthis.question.max?(this.errorMessage=this.question.validationRules.max.message,!1):!(this.question.required&&!this.hasValue)||(this.errorMessage=this.question.validationRules.required.message,!1)},shouldPrev:function(){return!0},focus:function(){var e=this;setTimeout((function(){e.$refs.input.focus(),e.canReceiveFocus=!0}),500)}},mounted:function(){this.init(),1===this.question.counter&&this.focus()},watch:{active:function(e){e?this.focus():(this.fp.close(),this.canReceiveFocus=!1)}}},jt=(0,fe.Z)(Rt,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("input",{ref:"input",required:e.question.required,placeholder:e.placeholder,value:e.modelValue},null,8,It)}]]);var $t=["value"];const zt={name:"HiddenType",extends:Ft},Ht=(0,fe.Z)(zt,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("input",{type:"hidden",value:e.modelValue},null,8,$t)}]]),Ut={extends:Ke,name:Me.ce.Email,data:function(){return{inputType:"email"}},methods:{validate:function(){return this.hasValue?/^[^@]+@.+[^.]$/.test(this.dataValue):!this.question.required}}},Kt={extends:Ut,name:kt.ce.Email,methods:{validate:function(){if(this.hasValue){return!!/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(this.dataValue)||(this.errorMessage=this.question.validationRules.email.message||this.language.invalidPrompt,!1)}return!(this.question.required&&!this.hasValue)||(this.errorMessage=this.question.validationRules.required.message,!1)},shouldPrev:function(){return!0}}},Wt={extends:Je,name:kt.ce.Phone,data:function(){return{inputType:"tel",canReceiveFocus:!0}},methods:{validate:function(){if(this.hasValue&&this.question.phone_settings.enabled&&this.iti){var e=this.iti.isValidNumber();return e||(this.errorMessage=this.question.validationRules.valid_phone_number.message),e}return!(this.question.required&&!this.hasValue)||(this.errorMessage=this.question.validationRules.required.message,!1)},init:function(){var e=this;if("undefined"!=typeof intlTelInput&&0!=this.question.phone_settings.enabled){var t=this.getElement(),n=JSON.parse(this.question.phone_settings.itlOptions);this.question.phone_settings.ipLookupUrl&&(n.geoIpLookup=function(t,n){fetch(e.question.phone_settings.ipLookupUrl,{headers:{Accept:"application/json"}}).then((function(e){return e.json()})).then((function(e){var n=e&&e.country?e.country:"";t(n)}))}),this.iti=intlTelInput(t,n),t.addEventListener("change",(function(){e.itiFormat()})),t.addEventListener("keyup",(function(){e.itiFormat()}))}},itiFormat:function(){if("undefined"!=typeof intlTelInputUtils){var e=this.iti.getNumber(intlTelInputUtils.numberFormat.E164);this.iti.isValidNumber()&&"string"==typeof e&&(this.iti.setNumber(e),this.dataValue=e,this.dirty=!0,this.onKeyDown(),this.setAnswer(this.dataValue))}}},mounted:function(){this.init()},watch:{active:function(e){var t=this;e&&setTimeout((function(){t.itiFormat()}),1)}}},Qt={extends:Je,name:kt.ce.Number,data:function(){return{inputType:"number",allowedChars:"-0123456789.TabArrowDownArrowUpCommand+vCommand+cCommand+x"}},computed:{hasValue:function(){return null!==this.dataValue}},methods:{fixAnswer:function(e){return e=null===e?"":e,this.maybeHandleTargetProduct(e),e},showInvalid:function(){return this.dirty&&!this.isValid()},validate:function(){if(null!==this.question.min&&!isNaN(this.question.min)&&+this.dataValue<+this.question.min)return this.errorMessage=this.question.validationRules.min.message,!1;if(null!==this.question.max&&!isNaN(this.question.max)&&+this.dataValue>+this.question.max)return this.errorMessage=this.question.validationRules.max.message,!1;if(this.hasValue){var e=this.question.validationRules.digits;if(null!=e&&e.value&&(""+this.dataValue).length>+e.value)return this.errorMessage=e.message,!1;if(this.question.mask)return this.errorMessage=this.language.invalidPrompt,this.validateMask();var t=+this.dataValue;return this.question.targetProduct&&t%1!=0?(this.errorMessage=this.question.stepErrorMsg.replace("{lower_value}",Math.floor(t)).replace("{upper_value}",Math.ceil(t)),!1):!isNaN(t)}return!(this.question.required&&!this.hasValue)||(this.errorMessage=this.question.validationRules.required.message,!1)},maybeHandleTargetProduct:function(e){var t=this;this.question.targetProduct&&(e=e||this.question.min||1,this.$parent.$parent.questionList.forEach((function(n){n.is_payment_field&&n.name==t.question.targetProduct&&(n.paymentItemQty=e)})))},onChange:function(e){e.target.value&&(this.dirty=!0,this.dataValue=+e.target.value,this.onKeyDown(),this.setAnswer(this.dataValue))}}};var Yt={class:"f-coupon-field-wrap"},Gt={class:"f-coupon-field"},Zt={key:0,class:"f-coupon-applied-list f-radios-wrap"},Jt={class:"f-radios",role:"listbox"},Xt=["onClick","onKeyup","onFocusin"],en=["innerHTML"],tn=(0,o.createElementVNode)("span",{class:"error-clear"},"×",-1),nn={class:"f-coupon-field-btn-wrap f-enter"},on=["innerHTML"];var rn=n(6484);const sn={extends:Ft,name:"CouponType",data:function(){return{appliedCoupons:{},canReceiveFocus:!0}},props:{language:rn.Z},watch:{dataValue:function(e){this.question.error=""}},computed:{couponMode:function(){return!!this.dataValue},btnText:function(){var e=this.language.skip||"SKIP";return e=this.couponMode?"APPLY COUPON":Object.keys(this.appliedCoupons).length?"OK":e},paymentConfig:function(){return this.globalVars.paymentConfig}},methods:{applyCoupon:function(){var e=this;this.$emit("update:modelValue",""),this.question.error="";var t=new XMLHttpRequest,n=this.globalVars.ajaxurl+"?action=fluentform_apply_coupon",o=new FormData;o.append("form_id",this.globalVars.form_id),o.append("coupon",this.dataValue),o.append("other_coupons",JSON.stringify(Object.keys(this.appliedCoupons))),t.open("POST",n),t.responseType="json",t.onload=function(){if(200!==t.status)e.question.error=t.response.message;else{var n=t.response.coupon,o=n.amount+"%";"fixed"==n.coupon_type&&(o=e.formatMoney(n.amount)),n.message="".concat(n.code," - ").concat(o),e.appliedCoupons[n.code]=n,e.globalVars.appliedCoupons=e.appliedCoupons,e.dataValue="",e.globalVars.extra_inputs.__ff_all_applied_coupons=JSON.stringify(Object.keys(e.appliedCoupons)),e.focus()}},t.send(o)},handleKeyDown:function(e){this.couponMode&&"Enter"===e.key&&(e.preventDefault(),e.stopPropagation(),this.applyCoupon())},discard:function(e){delete this.appliedCoupons[e.code],this.focus()},formatMoney:function(e){return be(parseFloat(100*e).toFixed(2),this.paymentConfig.currency_settings)},handleBtnClick:function(){this.couponMode?this.applyCoupon():this.$emit("next")},onBtnFocus:function(){this.$parent.btnFocusIn=!this.$parent.btnFocusIn},onFocus:function(e){this.focusIndex=e},onInputFocus:function(){this.focusIndex=null},shouldPrev:function(){return!this.focusIndex}},mounted:function(){this.question.answer&&this.question.has_save_and_resume&&(this.$refs.couponButton.click(),this.question.answer="")}},an=(0,fe.Z)(sn,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("div",Yt,[(0,o.createElementVNode)("div",Gt,[(0,o.withDirectives)((0,o.createElementVNode)("input",{ref:"input",type:"text","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.dataValue=t}),onKeydown:t[1]||(t[1]=function(){return s.handleKeyDown&&s.handleKeyDown.apply(s,arguments)}),onFocusin:t[2]||(t[2]=function(){return s.onInputFocus&&s.onInputFocus.apply(s,arguments)})},null,544),[[o.vModelText,e.dataValue]])]),i.appliedCoupons?((0,o.openBlock)(),(0,o.createElementBlock)("div",Zt,[(0,o.createElementVNode)("ul",Jt,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(i.appliedCoupons,(function(e){return(0,o.openBlock)(),(0,o.createElementBlock)("li",{class:"f-coupon-applied-item",role:"option",tabindex:"0",key:e.code,onClick:(0,o.withModifiers)((function(t){return s.discard(e)}),["prevent"]),onKeyup:(0,o.withKeys)((function(t){return s.discard(e)}),["space"]),onFocusin:function(t){return s.onFocus(e.code)}},[(0,o.createElementVNode)("span",{class:"f-label",innerHTML:e.message},null,8,en),tn],40,Xt)})),128))])])):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",nn,[(0,o.createElementVNode)("button",{ref:"couponButton",class:"o-btn-action f-coupon-field-btn",type:"button",href:"#","aria-label":"Press to continue",onClick:t[3]||(t[3]=function(){return s.handleBtnClick&&s.handleBtnClick.apply(s,arguments)}),onFocusin:t[4]||(t[4]=function(){return s.onBtnFocus&&s.onBtnFocus.apply(s,arguments)}),onFocusout:t[5]||(t[5]=function(){return s.onBtnFocus&&s.onBtnFocus.apply(s,arguments)})},[(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(s.btnText),1)],544),e.isMobile?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("a",{key:0,class:"f-enter-desc",href:"#",innerHTML:n.language.formatString(n.language.pressEnter),onClick:t[6]||(t[6]=function(){return s.handleBtnClick&&s.handleBtnClick.apply(s,arguments)})},null,8,on))])])}]]);var ln=(0,o.createElementVNode)("td",null,null,-1),cn={class:"f-table-string"},un={class:"f-table-cell f-row-cell"},dn={class:"f-table-string"},pn=["title"],fn={key:0,class:"f-field-wrap"},hn={class:"f-matrix-field f-matrix-radio"},mn=["name","id","aria-label","data-id","value","onUpdate:modelValue","onFocusin"],vn={key:1,class:"f-field-wrap"},gn={class:"f-matrix-field f-matrix-checkbox"},yn=["id","aria-label","data-id","value","onUpdate:modelValue","onFocusin"];var bn={class:"f-matrix-wrap"},_n=(0,o.createElementVNode)("td",null,null,-1),wn={class:"f-table-string"},xn={class:"f-table-cell f-row-cell"},kn={class:"f-table-string"},En=["title"],Cn={key:0,class:"f-field-wrap"},Sn={class:"f-matrix-field f-matrix-radio"},On=["name","id","aria-label","data-id","value","onUpdate:modelValue"],Tn=(0,o.createElementVNode)("span",{class:"f-field-mask f-radio-mask"},[(0,o.createElementVNode)("svg",{viewBox:"0 0 24 24",class:"f-field-svg f-radio-svg"},[(0,o.createElementVNode)("circle",{r:"6",cx:"12",cy:"12"})])],-1),Vn={key:1,class:"f-field-wrap"},Bn={class:"f-matrix-field f-matrix-checkbox"},Mn=["id","aria-label","data-id","value","onUpdate:modelValue"],Nn=(0,o.createElementVNode)("span",{class:"f-field-mask f-checkbox-mask"},[(0,o.createElementVNode)("svg",{viewBox:"0 0 24 24",class:"f-field-svg f-checkbox-svg"},[(0,o.createElementVNode)("rect",{width:"12",height:"12",x:"6",y:"6"})])],-1);function An(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function qn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Pn(e){return function(e){if(Array.isArray(e))return Dn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ln(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Fn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Ln(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function Ln(e,t){if(e){if("string"==typeof e)return Dn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Dn(e,t):void 0}}function Dn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);nthis.fieldWidth},getFieldWrapperClass:function(){return this.hasMoreColumns?"f-matrix-has-more-columns":""},handleScroll:function(e){this.hasMoreColumns=!(this.tableWidth-e.target.scrollLeft<=this.fieldWidth)},focus:function(){var e=this,t=this.question.counter+"-c0-"+this.question.rows[0].id;if(!this.question.multiple&&this.question.answer){var n=Object.keys(this.question.answer)[0];if(n===this.question.rows[0].id){var o=this.question.columns.findIndex((function(t){return t.value===e.question.answer[n]}));o&&(t=this.question.counter+"-c"+o+"-"+n)}}document.getElementById(t).focus()}},watch:{active:function(e){e&&null===this.hasMoreColumns&&this.detectMoreColumns()}},mounted:function(){1===this.question.counter&&this.detectMoreColumns()}},$n=(0,fe.Z)(jn,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:(0,o.normalizeClass)(["f-matrix-wrap",s.getFieldWrapperClass()]),onScroll:t[2]||(t[2]=function(){return s.handleScroll&&s.handleScroll.apply(s,arguments)}),id:"adre"},[(0,o.createElementVNode)("table",{class:(0,o.normalizeClass)(["f-matrix-table",{"f-matrix-multiple":e.question.multiple}])},[(0,o.createElementVNode)("thead",null,[(0,o.createElementVNode)("tr",null,[ln,((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(e.question.columns,(function(e,t){return(0,o.openBlock)(),(0,o.createElementBlock)("th",{key:"c"+t,class:"f-table-cell f-column-cell"},[(0,o.createElementVNode)("span",cn,(0,o.toDisplayString)(e.label),1)])})),128))])]),(0,o.createElementVNode)("tbody",null,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(e.question.rows,(function(n,r){return(0,o.openBlock)(),(0,o.createElementBlock)("tr",{key:"r"+r,class:"f-table-row"},[(0,o.createElementVNode)("td",un,[(0,o.createElementVNode)("span",dn,(0,o.toDisplayString)(n.label),1)]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(e.question.columns,(function(i,a){return(0,o.openBlock)(),(0,o.createElementBlock)("td",{key:"l"+a,title:i.label,class:"f-table-cell f-matrix-cell"},[e.question.multiple?((0,o.openBlock)(),(0,o.createElementBlock)("div",vn,[(0,o.createElementVNode)("label",gn,[(0,o.withDirectives)((0,o.createElementVNode)("input",{type:"checkbox",ref_for:!0,ref:function(t){return e.inputList.push(t)},id:e.question.counter+"-c"+a+"-"+n.id,"aria-label":n.label,"data-id":n.id,value:i.value,class:"f-field-control f-checkbox-control","onUpdate:modelValue":function(t){return e.selected[n.id]=t},onChange:t[1]||(t[1]=function(){return e.onChange&&e.onChange.apply(e,arguments)}),onFocusin:function(e){return s.onFocus(r,a)}},null,40,yn),[[o.vModelCheckbox,e.selected[n.id]]]),(0,o.createCommentVNode)("",!0)])])):((0,o.openBlock)(),(0,o.createElementBlock)("div",fn,[(0,o.createElementVNode)("label",hn,[(0,o.withDirectives)((0,o.createElementVNode)("input",{type:"radio",ref_for:!0,ref:function(t){return e.inputList.push(t)},name:n.id,id:e.question.counter+"-c"+a+"-"+n.id,"aria-label":n.label,"data-id":n.id,value:i.value,"onUpdate:modelValue":function(t){return e.selected[n.id]=t},class:"f-field-control f-radio-control",onChange:t[0]||(t[0]=function(){return e.onChange&&e.onChange.apply(e,arguments)}),onFocusin:function(e){return s.onFocus(r,a)}},null,40,mn),[[o.vModelRadio,e.selected[n.id]]]),(0,o.createCommentVNode)("",!0)])]))],8,pn)})),128))])})),128))])],2)],34)}]]);var zn=["innerHTML"];const Hn={extends:Ft,name:"PaymentType",data:function(){return{canReceiveFocus:!0}},computed:{paymentConfig:function(){return this.globalVars.paymentConfig}},watch:{active:function(e){var t=this;e?setTimeout((function(){t.focus()}),100):this.canReceiveFocus=!0}},methods:{focus:function(){this.$el.parentElement.parentElement.parentElement.parentElement.getElementsByClassName("o-btn-action")[0].focus(),0!==this.question.index&&(this.canReceiveFocus=!1)},formatMoney:function(e){return be(parseFloat(100*e).toFixed(2),this.paymentConfig.currency_settings)}}},Un=(0,fe.Z)(Hn,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createTextVNode)((0,o.toDisplayString)(e.question.priceLabel)+" ",1),(0,o.createElementVNode)("span",{innerHTML:s.formatMoney(e.question.answer)},null,8,zn)])}]]);var Kn=n(3377),Wn=n(5853);const Qn={extends:Ft,name:kt.ce.Dropdown,components:{ElSelect:Wn.default,ElOption:Kn.Z},data:function(){return{canReceiveFocus:!0,insideElementorModal:!1}},methods:{shouldPrev:function(){return!0},focus:function(){var e=this;this.$refs.input.blur(),setTimeout((function(){e.$refs.input.focus()}),1e3)}},computed:{popperClass:function(){return"ff-conversational-dropdown-modal ".concat(this.insideElementorModal?"ff-conversational-dropdown-on-elementor-modal":"")},isChoiceLabel:function(){return this.question.is_payment_field&&!this.question.is_subscription_field}},mounted:function(){var e=this,t=document.querySelectorAll("[data-elementor-type='popup']");t.length&&t.forEach((function(t){t.contains(e.$refs.input.$el)&&(e.insideElementorModal=!0)}))}},Yn=(0,fe.Z)(Qn,[["render",function(e,t,n,r,i,s){var a=(0,o.resolveComponent)("el-option"),l=(0,o.resolveComponent)("el-select");return(0,o.openBlock)(),(0,o.createBlock)(l,{ref:"input",multiple:e.question.multiple,modelValue:e.dataValue,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.dataValue=t}),placeholder:e.question.placeholder,"multiple-limit":e.question.max_selection,clearable:!0,"popper-class":s.popperClass,"popper-append-to-body":!i.insideElementorModal,filterable:"yes"===e.question.searchable,class:"f-full-width",onChange:e.setAnswer},{default:(0,o.withCtx)((function(){return[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(e.question.options,(function(e){return(0,o.openBlock)(),(0,o.createBlock)(a,{key:e.value,label:e.label+(null!=e&&e.quantiy_label?e.quantiy_label:""),value:s.isChoiceLabel?e.label:e.value},null,8,["label","value"])})),128))]})),_:1},8,["multiple","modelValue","placeholder","multiple-limit","popper-class","popper-append-to-body","filterable","onChange"])}]]);const Gn={name:"TextareaAutosize",props:{value:{type:[String,Number],default:""},autosize:{type:Boolean,default:!0},minHeight:{type:[Number],default:null},maxHeight:{type:[Number],default:null},important:{type:[Boolean,Array],default:!1}},data:()=>({val:null,maxHeightScroll:!1,height:"auto"}),computed:{computedStyles(){return this.autosize?{resize:this.isResizeImportant?"none !important":"none",height:this.height,overflow:this.maxHeightScroll?"auto":this.isOverflowImportant?"hidden !important":"hidden"}:{}},isResizeImportant(){const e=this.important;return!0===e||Array.isArray(e)&&e.includes("resize")},isOverflowImportant(){const e=this.important;return!0===e||Array.isArray(e)&&e.includes("overflow")},isHeightImportant(){const e=this.important;return!0===e||Array.isArray(e)&&e.includes("height")}},watch:{value(e){this.val=e},val(e){this.$nextTick(this.resize),this.$emit("input",e)},minHeight(){this.$nextTick(this.resize)},maxHeight(){this.$nextTick(this.resize)},autosize(e){e&&this.resize()}},methods:{resize(){const e=this.isHeightImportant?"important":"";return this.height="auto"+(e?" !important":""),this.$nextTick((()=>{let t=this.$el.scrollHeight+1;this.minHeight&&(t=tthis.maxHeight?(t=this.maxHeight,this.maxHeightScroll=!0):this.maxHeightScroll=!1);const n=t+"px";this.height=`${n}${e?" !important":""}`})),this}},created(){this.val=this.value},mounted(){this.resize()}},Zn=(0,fe.Z)(Gn,[["render",function(e,t,n,r,i,s){return(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("textarea",{style:(0,o.normalizeStyle)(s.computedStyles),"onUpdate:modelValue":t[0]||(t[0]=e=>i.val=e),onFocus:t[1]||(t[1]=(...e)=>s.resize&&s.resize(...e))},null,36)),[[o.vModelText,i.val]])}]]),Jn={extends:Fe,name:Me.ce.LongText,components:{TextareaAutosize:Zn},data:function(){return{canReceiveFocus:!0}},mounted:function(){window.addEventListener("resize",this.onResizeListener)},beforeUnmount:function(){window.removeEventListener("resize",this.onResizeListener)},methods:{onResizeListener:function(){this.$refs.input.resize()},unsetFocus:function(e){!e&&this.isMobile||(this.focused=!1)},onEnterDown:function(e){this.isMobile||e.preventDefault()},onEnter:function(){this._onEnter(),this.isMobile&&this.focus()}}},Xn=(0,fe.Z)(Jn,[["render",function(e,t,n,r,i,s){var a=(0,o.resolveComponent)("textarea-autosize");return(0,o.openBlock)(),(0,o.createElementBlock)("span",null,[(0,o.createVNode)(a,{ref:"input",rows:"1",value:e.modelValue,required:e.question.required,onKeydown:[e.onKeyDown,(0,o.withKeys)((0,o.withModifiers)(s.onEnterDown,["exact"]),["enter"])],onKeyup:[e.onChange,(0,o.withKeys)((0,o.withModifiers)(s.onEnter,["exact","prevent"]),["enter"]),(0,o.withKeys)((0,o.withModifiers)(s.onEnter,["prevent"]),["tab"])],onFocus:e.setFocus,onBlur:s.unsetFocus,placeholder:e.placeholder,maxlength:e.question.maxLength},null,8,["value","required","onKeydown","onKeyup","onFocus","onBlur","placeholder","maxlength"])])}]]),eo={extends:Xn,methods:{validate:function(){var e=this.question.maxLength;return this.hasValue&&e&&this.dataValue.length>+e?(this.errorMessage=this.language.errorMaxLength.replace("{maxLength}",e),!1):!(this.question.required&&!this.hasValue)||(this.errorMessage=this.question.validationRules.required.message,!1)},shouldPrev:function(){return!0}}},to={extends:Je,name:kt.ce.Password,data:function(){return{inputType:"password"}}};var no={id:"recaptcha-container"};const oo={extends:Ft,name:"FlowFormReCaptchaType",methods:{render:function(){var e=this;grecaptcha.ready((function(){grecaptcha.render("recaptcha-container",{sitekey:e.siteKey,callback:e.responseHandler})}))},responseHandler:function(e){this.dataValue=e,this.setAnswer(e)}},computed:{siteKey:function(){return this.question.siteKey}},mounted:function(){this.render(),this.dataValue=!1}},ro=(0,fe.Z)(oo,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("div",no)}]]);var io=[(0,o.createElementVNode)("div",{id:"hcaptcha-container"},null,-1)];const so={extends:Ft,name:"FlowFormHCaptchaType",methods:{render:function(){hcaptcha.render("hcaptcha-container",{sitekey:this.siteKey,callback:this.responseHandler})},responseHandler:function(e){this.dataValue=e,this.setAnswer(e)}},computed:{siteKey:function(){return this.question.siteKey}},mounted:function(){this.render(),this.dataValue=!1}},ao=(0,fe.Z)(so,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,io)}]]);var lo=["data-theme","data-appearance"];const co={extends:Ft,name:"FlowFormTurnstileType",methods:{render:function(){var e=this;turnstile.ready((function(){turnstile.render("#turnstile",{sitekey:e.siteKey,callback:e.responseHandler})}))},responseHandler:function(e){this.dataValue=e,this.setAnswer(e)}},computed:{siteKey:function(){return this.question.siteKey},appearance:function(){return this.question.appearance},theme:function(){return this.question.theme}},mounted:function(){this.render(),this.dataValue=!1}},uo=(0,fe.Z)(co,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("div",{id:"turnstile","data-theme":s.theme,"data-appearance":s.appearance},null,8,lo)}]]);var po={class:"f-subscription-wrap"},fo={key:1,class:"f-subscription-custom-payment-wrap"},ho=["for"],mo=["id"];var vo={class:"f-radios-wrap"},go=["onClick","aria-label","onFocusin","onKeyup"],yo={key:0,class:"f-image"},bo=["src","alt"],_o={class:"f-label-wrap"},wo=["title"],xo=["title"],ko={key:0,class:"f-label"},Eo=(0,o.createElementVNode)("span",{class:"ffc_check_svg"},[(0,o.createElementVNode)("svg",{height:"13",width:"16"},[(0,o.createElementVNode)("path",{d:"M14.293.293l1.414 1.414L5 12.414.293 7.707l1.414-1.414L5 9.586z"})])],-1),Co=["aria-label"],So={class:"f-label-wrap"},Oo={key:0,class:"f-key"},To={key:2,class:"f-selected"},Vo={class:"f-label"},Bo={key:3,class:"f-label"};var Mo={class:"f-radios-wrap"},No=["onClick","aria-label"],Ao={key:0,class:"f-image"},qo=["src","alt"],Po={class:"f-label-wrap"},Fo={class:"f-key"},Lo={key:0,class:"f-label"},Do=["aria-label"],Io={class:"f-label-wrap"},Ro={key:0,class:"f-key"},jo={key:2,class:"f-selected"},$o={class:"f-label"},zo={key:3,class:"f-label"};const Ho={extends:Fe,name:Me.ce.MultipleChoice,data:function(){return{editingOther:!1,hasImages:!1}},mounted:function(){this.addKeyListener()},beforeUnmount:function(){this.removeKeyListener()},watch:{active:function(e){e?(this.addKeyListener(),this.question.multiple&&this.question.answered&&(this.enterPressed=!1)):this.removeKeyListener()}},methods:{addKeyListener:function(){this.removeKeyListener(),document.addEventListener("keyup",this.onKeyListener)},removeKeyListener:function(){document.removeEventListener("keyup",this.onKeyListener)},onKeyListener:function(e){if(this.active&&!this.editingOther&&e.key&&1===e.key.length){var t=e.key.toUpperCase().charCodeAt(0);if(t>=65&&t<=90){var n=t-65;if(n>-1){var o=this.question.options[n];o?this.toggleAnswer(o):this.question.allowOther&&n===this.question.options.length&&this.startEditOther()}}}},getLabel:function(e){return this.language.ariaMultipleChoice.replace(":letter",this.getToggleKey(e))},getToggleKey:function(e){var t=65+e;return t<=90?String.fromCharCode(t):""},toggleAnswer:function(e){if(!this.question.multiple){this.question.allowOther&&(this.question.other=this.dataValue=null,this.setAnswer(this.dataValue));for(var t=0;t0)}}},Uo=(0,fe.Z)(Ho,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("div",Mo,[(0,o.createElementVNode)("ul",{class:(0,o.normalizeClass)(["f-radios",{"f-multiple":e.question.multiple}]),role:"listbox"},[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(e.question.options,(function(e,t){return(0,o.openBlock)(),(0,o.createElementBlock)("li",{onClick:(0,o.withModifiers)((function(t){return s.toggleAnswer(e)}),["prevent"]),class:(0,o.normalizeClass)({"f-selected":e.selected}),key:"m"+t,"aria-label":s.getLabel(t),role:"option"},[i.hasImages&&e.imageSrc?((0,o.openBlock)(),(0,o.createElementBlock)("span",Ao,[(0,o.createElementVNode)("img",{src:e.imageSrc,alt:e.imageAlt},null,8,qo)])):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",Po,[(0,o.createElementVNode)("span",Fo,(0,o.toDisplayString)(s.getToggleKey(t)),1),e.choiceLabel()?((0,o.openBlock)(),(0,o.createElementBlock)("span",Lo,(0,o.toDisplayString)(e.choiceLabel()),1)):(0,o.createCommentVNode)("",!0)])],10,No)})),128)),!i.hasImages&&e.question.allowOther?((0,o.openBlock)(),(0,o.createElementBlock)("li",{key:0,class:(0,o.normalizeClass)(["f-other",{"f-selected":e.question.other,"f-focus":i.editingOther}]),onClick:t[5]||(t[5]=(0,o.withModifiers)((function(){return s.startEditOther&&s.startEditOther.apply(s,arguments)}),["prevent"])),"aria-label":e.language.ariaTypeAnswer,role:"option"},[(0,o.createElementVNode)("div",Io,[i.editingOther?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("span",Ro,(0,o.toDisplayString)(s.getToggleKey(e.question.options.length)),1)),i.editingOther?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.question.other=t}),type:"text",ref:"otherInput",onBlur:t[1]||(t[1]=function(){return s.stopEditOther&&s.stopEditOther.apply(s,arguments)}),onKeyup:[t[2]||(t[2]=(0,o.withKeys)((0,o.withModifiers)((function(){return s.stopEditOther&&s.stopEditOther.apply(s,arguments)}),["prevent"]),["enter"])),t[3]||(t[3]=function(){return s.onChangeOther&&s.onChangeOther.apply(s,arguments)})],onChange:t[4]||(t[4]=function(){return s.onChangeOther&&s.onChangeOther.apply(s,arguments)}),maxlength:"256"},null,544)),[[o.vModelText,e.question.other]]):e.question.other?((0,o.openBlock)(),(0,o.createElementBlock)("span",jo,[(0,o.createElementVNode)("span",$o,(0,o.toDisplayString)(e.question.other),1)])):((0,o.openBlock)(),(0,o.createElementBlock)("span",zo,(0,o.toDisplayString)(e.language.otherPrompt),1))])],10,Do)):(0,o.createCommentVNode)("",!0)],2)])}]]),Ko={extends:Uo,name:kt.ce.MultipleChoice,data:function(){return{canReceiveFocus:!0}},computed:{showKeyHint:function(){return"yes"===this.globalVars.design.key_hint},keyHintText:function(){return this.globalVars.i18n.key_hint_text},keyHintTooltip:function(){return this.globalVars.i18n.key_hint_tooltip},isChoiceLabel:function(){return this.question.is_payment_field&&!this.question.is_subscription_field}},methods:{toggleAnswer:function(e){if(!this.question.multiple){this.question.allowOther&&(this.question.other=this.dataValue=null,this.setAnswer(this.dataValue));for(var t=0;t0?t:0,this.$el.firstElementChild.children[t].focus()},addKeyListener:function(){this.removeKeyListener(),this.$el.addEventListener("keyup",this.onKeyListener)},removeKeyListener:function(){this.$el.removeEventListener("keyup",this.onKeyListener)}},mounted:function(){var e=this;this.question.answer&&"multi_payment_component"===this.question.ff_input_type&&this.question.has_save_and_resume&&this.question.options.forEach((function(t){e.question.multiple?e.question.answer.forEach((function(e){t.label===e&&(t.selected=!0)})):t.label===e.question.answer&&(t.selected=!0)}))}},Wo=(0,fe.Z)(Ko,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("div",vo,[(0,o.createElementVNode)("ul",{class:(0,o.normalizeClass)(["f-radios",e.question.multiple?"f-multiple":"f-single"]),role:"listbox"},[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(e.question.options,(function(t,n){return(0,o.openBlock)(),(0,o.createElementBlock)("li",{onClick:(0,o.withModifiers)((function(e){return s.toggleAnswer(t)}),["prevent"]),class:(0,o.normalizeClass)({"f-selected":t.selected}),key:"m"+n,"aria-label":e.getLabel(n),role:"option",tabindex:"0",onFocusin:function(e){return s.onFocus(n)},onKeyup:(0,o.withKeys)((function(e){return s.toggleAnswer(t)}),["space"])},[e.hasImages&&t.imageSrc?((0,o.openBlock)(),(0,o.createElementBlock)("span",yo,[(0,o.createElementVNode)("img",{src:t.imageSrc,alt:t.imageAlt},null,8,bo)])):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",_o,[(0,o.withDirectives)((0,o.createElementVNode)("span",{title:s.keyHintTooltip,class:"f-key"},[(0,o.createElementVNode)("span",{title:s.keyHintTooltip,class:"f-key-hint"},(0,o.toDisplayString)(s.keyHintText),9,xo),(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(e.getToggleKey(n)),1)],8,wo),[[o.vShow,s.showKeyHint]]),t.choiceLabel()?((0,o.openBlock)(),(0,o.createElementBlock)("span",ko,[(0,o.createTextVNode)((0,o.toDisplayString)(t.choiceLabel())+" "+(0,o.toDisplayString)((null==t?void 0:t.quantiy_label)||"")+" ",1),(0,o.withDirectives)((0,o.createElementVNode)("span",{class:"f-label-sub"},(0,o.toDisplayString)(t.sub),513),[[o.vShow,t.sub]])])):(0,o.createCommentVNode)("",!0),Eo])],42,go)})),128)),!e.hasImages&&e.question.allowOther?((0,o.openBlock)(),(0,o.createElementBlock)("li",{key:0,class:(0,o.normalizeClass)(["f-other",{"f-selected":e.question.other,"f-focus":e.editingOther}]),onClick:t[5]||(t[5]=(0,o.withModifiers)((function(){return e.startEditOther&&e.startEditOther.apply(e,arguments)}),["prevent"])),"aria-label":e.language.ariaTypeAnswer,role:"option"},[(0,o.createElementVNode)("div",So,[e.editingOther?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("span",Oo,(0,o.toDisplayString)(e.getToggleKey(e.question.options.length)),1)),e.editingOther?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.question.other=t}),type:"text",ref:"otherInput",onBlur:t[1]||(t[1]=function(){return e.stopEditOther&&e.stopEditOther.apply(e,arguments)}),onKeyup:[t[2]||(t[2]=(0,o.withKeys)((0,o.withModifiers)((function(){return e.stopEditOther&&e.stopEditOther.apply(e,arguments)}),["prevent"]),["enter"])),t[3]||(t[3]=function(){return e.onChangeOther&&e.onChangeOther.apply(e,arguments)})],onChange:t[4]||(t[4]=function(){return e.onChangeOther&&e.onChangeOther.apply(e,arguments)}),maxlength:"256"},null,544)),[[o.vModelText,e.question.other]]):e.question.other?((0,o.openBlock)(),(0,o.createElementBlock)("span",To,[(0,o.createElementVNode)("span",Vo,(0,o.toDisplayString)(e.question.other),1)])):((0,o.openBlock)(),(0,o.createElementBlock)("span",Bo,(0,o.toDisplayString)(e.language.otherPrompt),1))])],10,Co)):(0,o.createCommentVNode)("",!0)],2)])}]]),Qo={extends:Ft,name:"SubscriptionType",components:{FlowFormDropdownType:Yn,FlowFormMultipleChoiceType:Wo},data:function(){return{canReceiveFocus:!0,customPaymentFocus:!1}},computed:{single:function(){return"single"==this.question.subscriptionFieldType},hasCustomPayment:function(){return this.question.plans[this.question.answer]&&"yes"==this.question.plans[this.question.answer].user_input},customPlan:function(){return this.hasCustomPayment?this.question.plans[this.question.answer]:null},btnFocusIn:function(){return 0!==this.question.index&&(this.canReceiveFocus=!this.$parent.btnFocusIn),this.$parent.btnFocusIn},paymentConfig:function(){return this.globalVars.paymentConfig},regexPattern:function(){var e=/\$[0-9\.]+/g;switch(this.paymentConfig.currency_settings.currency_sign_position){case"left":e="\\"+this.paymentConfig.currency_settings.currency_symbol+"[0-9.]+";break;case"left_space":e="\\"+this.paymentConfig.currency_settings.currency_symbol+" [0-9.]+";break;case"right_space":e="[0-9.]+ \\"+this.paymentConfig.currency_settings.currency_symbol;break;case"right":e="[0-9.]+\\"+this.paymentConfig.currency_settings.currency_symbol}return new RegExp(e,"g")}},watch:{dataValue:function(){this.question.has_save_and_resume||(this.question.customPayment=this.customPlan&&this.customPlan.subscription_amount,this.dirty=!0)},"question.customPayment":function(e,t){if(null!=this.question.answer&&this.customPlan){e=e||0,this.dirty=!0,this.enterPressed=!0;var n=this.question.plans[this.question.answer],o=n;this.single||(o=this.question.options[this.question.answer]);var r=o.sub.match(this.regexPattern);if(r&&r.length){var i=this.formatMoney(e).replace(this.paymentConfig.currency_settings.currency_sign,this.paymentConfig.currency_settings.currency_symbol);if(1==r.length)o.sub=o.sub.replace(r[0],i);else{var s=this.formatMoney(e+n.signup_fee).replace(this.paymentConfig.currency_settings.currency_sign,this.paymentConfig.currency_settings.currency_symbol);o.sub=o.sub.replace(r[0],"{firstTime}").replace(r[1],i).replace("{firstTime}",s)}}}}},methods:{validate:function(){return this.hasCustomPayment?this.question.required&&!this.question.customPayment?(this.errorMessage=this.question.requiredMsg,!1):!(this.customPlan.user_input_min_value&&this.question.customPayment=0;--r){var i=this.tryEntries[r],s=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var a=n.call(i,"catchLoc"),l=n.call(i,"finallyLoc");if(a&&l){if(this.prev=0;--o){var r=this.tryEntries[o];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),x(n),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var r=o.arg;x(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}function cr(e,t,n,o,r,i,s){try{var a=e[i](s),l=a.value}catch(e){return void n(e)}a.done?t(l):Promise.resolve(l).then(o,r)}const ur={extends:Ft,name:"PaymentMethodType",components:{MultipleChoiceType:Wo},data:function(){return{canReceiveFocus:!0,processingPayment:!1}},computed:{btnFocusIn:function(){return this.$parent.btnFocusIn},isStripeEmbedded:function(){return"stripe"==this.question.answer&&"yes"==this.question.paymentMethods.stripe.settings.embedded_checkout.value},paymentConfig:function(){return this.globalVars.paymentConfig},stripeInlineElementId:function(){return"payment_method_"+this.globalVars.form.id+"_"+this.question.counter+"_stripe_inline"}},watch:{isStripeEmbedded:function(e){this.disableBtn(e),e||(this.errorMessage=null,this.$parent.dataValue=null,this.globalVars.extra_inputs.__stripe_payment_method_id="")}},methods:{focus:function(){this.isStripeEmbedded?this.btnFocusIn&&this.stripeCard.focus():this.$refs.questionComponent.focus()},shouldPrev:function(){return this.$refs.questionComponent.shouldPrev()},onNext:function(){this.isStripeEmbedded?this.initStripeInline():this.$emit("next")},validate:function(){return this.isStripeEmbedded?!this.errorMessage:this.$refs.questionComponent.validate()},initStripeInline:function(){var e=this;this.stripe=new Stripe(this.paymentConfig.stripe.publishable_key),this.stripe.registerAppInfo(this.paymentConfig.stripe_app_info),this.$parent.$parent.$parent.stripe=this.stripe;var t=this.stripe.elements(),n={base:{color:this.globalVars.design.answer_color,fontFamily:"-apple-system, BlinkMacSystemFont, sans-serif",fontSmoothing:"antialiased",fontSize:"18px","::placeholder":{color:this.globalVars.design.answer_color+"80"}},invalid:{color:"#fa755a",iconColor:"#fa755a"}},o=t.create("card",{style:n,hidePostalCode:!this.paymentConfig.stripe.inlineConfig.verifyZip}),r=this.stripeInlineElementId;o.mount("#"+r),o.on("ready",(function(){e.disableBtn(!0),e.$parent.dataValue=e.dataValue,o.focus()})),o.on("change",(function(t){e.globalVars.extra_inputs.__stripe_payment_method_id="",e.disableBtn(!0),e.errorMessage=t.error&&t.error.message,e.errorMessage?o.focus():t.complete&&e.registerStripePaymentToken()})),this.stripeCard=o},registerStripePaymentToken:function(){var e,t=this;return(e=lr().mark((function e(){var n;return lr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.processingPayment=!0,e.next=3,t.stripe.createPaymentMethod("card",t.stripeCard);case 3:(n=e.sent)&&(n.error?t.errorMessage=n.error.message:(t.globalVars.extra_inputs.__stripe_payment_method_id=n.paymentMethod.id,t.errorMessage=null,t.disableBtn(!1),t.focusBtn())),t.processingPayment=!1;case 6:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(o,r){var i=e.apply(t,n);function s(e){cr(i,o,r,s,a,"next",e)}function a(e){cr(i,o,r,s,a,"throw",e)}s(void 0)}))})()},disableBtn:function(e){var t=this;if(this.$parent.$el.getElementsByClassName("o-btn-action")[0]){this.$parent.$el.getElementsByClassName("o-btn-action")[0].disabled=e;var n=e?"setAttribute":"removeAttribute";this.$parent.$el.getElementsByClassName("f-enter-desc")[0][n]("disabled",e)}else this.errorMessage||setTimeout((function(){t.disableBtn(e)}),200)},focusBtn:function(){this.$parent.$el.getElementsByClassName("o-btn-action")[0].focus()}}},dr=(0,fe.Z)(ur,[["render",function(e,t,n,r,i,s){var a=(0,o.resolveComponent)("multiple-choice-type");return(0,o.openBlock)(),(0,o.createElementBlock)("div",or,[(0,o.createVNode)(a,{ref:"questionComponent",question:e.question,language:e.language,modelValue:e.dataValue,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.dataValue=t}),active:e.active,disabled:e.disabled,onNext:s.onNext},null,8,["question","language","modelValue","active","disabled","onNext"]),(0,o.withDirectives)((0,o.createElementVNode)("div",rr,[ir,(0,o.createElementVNode)("div",{id:s.stripeInlineElementId,class:"stripe-inline-holder"},null,8,sr),(0,o.withDirectives)((0,o.createElementVNode)("p",{class:"payment-processing"},(0,o.toDisplayString)(s.paymentConfig.i18n.processing_text),513),[[o.vShow,i.processingPayment]])],512),[[o.vShow,s.isStripeEmbedded]])])}]]);var pr={class:"ffc_q_header"},fr={class:"f-text"},hr={class:"f-sub"},mr=["innerHTML"],vr={class:"ff_custom_button f-enter"},gr=["innerHTML"],yr=["innerHTML"];function br(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _r(e){for(var t=1;t.ff_default_submit_button_wrapper {display: none !important;}",canReceiveFocus:!0}},computed:{btnStyles:function(){if(""!=this.question.settings.button_style)return"default"===this.question.settings.button_style?{}:{backgroundColor:this.question.settings.background_color,color:this.question.settings.color};var e=this.question.settings.normal_styles,t="normal_styles";if("hover_styles"==this.question.settings.current_state&&(t="hover_styles"),!this.question.settings[t])return e;var n=JSON.parse(JSON.stringify(this.question.settings[t]));return n.borderRadius?n.borderRadius=n.borderRadius+"px":delete n.borderRadius,n.minWidth||delete n.minWidth,_r(_r({},e),n)},btnStyleClass:function(){return this.question.settings.button_style},btnSize:function(){return"ff-btn-"+this.question.settings.button_size},wrapperStyle:function(){var e={};return e.textAlign=this.question.settings.align,e},enterStyle:function(){if(""!=this.question.settings.button_style)return"default"===this.question.settings.button_style?{}:{color:this.question.settings.background_color};var e=this.question.settings.normal_styles,t="normal_styles";return"hover_styles"==this.question.settings.current_state&&(t="hover_styles"),this.question.settings[t]?{color:JSON.parse(JSON.stringify(this.question.settings[t])).backgroundColor}:e}},watch:{active:function(e){e?this.focus():this.canReceiveFocus=!0}}},kr=(0,fe.Z)(xr,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:"fh2 f-welcome-screen",style:(0,o.normalizeStyle)(s.wrapperStyle)},[(0,o.createElementVNode)("div",pr,[(0,o.createElementVNode)("h4",fr,(0,o.toDisplayString)(n.replaceSmartCodes(e.question.title)),1)]),(0,o.createElementVNode)("div",hr,[e.question.subtitle?((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:0,innerHTML:n.replaceSmartCodes(e.question.subtitle)},null,8,mr)):(0,o.createCommentVNode)("",!0)]),(0,o.createElementVNode)("div",vr,["default"==e.question.settings.button_ui.type?((0,o.openBlock)(),(0,o.createElementBlock)("button",{key:0,class:(0,o.normalizeClass)(["ff-btn o-btn-action",[s.btnSize,s.btnStyleClass]]),type:"button",ref:"button",href:"#",onClick:t[0]||(t[0]=(0,o.withModifiers)((function(){return s.next&&s.next.apply(s,arguments)}),["prevent"])),onFocusin:t[1]||(t[1]=function(){return s.onBtnFocus&&s.onBtnFocus.apply(s,arguments)}),onFocusout:t[2]||(t[2]=function(){return s.onBtnFocus&&s.onBtnFocus.apply(s,arguments)}),style:(0,o.normalizeStyle)(s.btnStyles)},[(0,o.createElementVNode)("span",{innerHTML:e.question.settings.button_ui.text},null,8,gr)],38)):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("a",{class:"f-enter-desc",href:"#",onClick:t[3]||(t[3]=(0,o.withModifiers)((function(){return s.next&&s.next.apply(s,arguments)}),["prevent"])),style:(0,o.normalizeStyle)(s.enterStyle),innerHTML:e.language.formatString(e.language.pressEnter)},null,12,yr)])],4)}]]);var Er={class:"f-payment-summary-wrap"},Cr={key:0,class:"f-payment-summary-table"},Sr={class:"f-table-cell f-column-cell"},Or={class:"f-table-cell f-column-cell"},Tr={class:"f-table-cell f-column-cell"},Vr={class:"f-table-cell f-column-cell"},Br={class:"f-table-cell"},Mr={key:0},Nr=["innerHTML"],Ar={class:"f-table-cell"},qr=["innerHTML"],Pr={colspan:"3",class:"f-table-cell right"},Fr=["innerHTML"],Lr={colspan:"3",class:"f-table-cell right"},Dr=["innerHTML"],Ir={colspan:"3",class:"f-table-cell right"},Rr=["innerHTML"],jr=["innerHTML"];const $r={extends:Ft,name:"PaymentSummaryType",data:function(){return{canReceiveFocus:!0,appliedCoupons:null}},computed:{paymentItems:function(){var e=[];return this.active&&(e=we(this.$parent.$parent.questionList)),e},paymentConfig:function(){return this.globalVars.paymentConfig},btnFocusIn:function(){return 0!==this.question.index&&(this.canReceiveFocus=!this.$parent.btnFocusIn),this.$parent.btnFocusIn},subTotal:function(){return xe(this.paymentItems)},totalAmount:function(){return ke(this.subTotal,this.appliedCoupons)}},methods:{formatMoney:function(e){return be(parseFloat(100*e).toFixed(2),this.paymentConfig.currency_settings)},formatDiscountAmount:function(e){var t=e.amount;return"percent"===e.coupon_type&&(t=e.amount/100*this.subTotal),"-"+this.formatMoney(t)},$t:function(e){return this.paymentConfig.i18n[e]||e},focus:function(){var e=this;setTimeout((function(){e.$el.parentElement.parentElement.parentElement.parentElement.getElementsByClassName("o-btn-action")[0].focus()}),100)}},watch:{active:function(e){e?(this.focus(),this.appliedCoupons=this.globalVars.appliedCoupons,this.canReceiveFocus=!1):(this.canReceiveFocus=!0,this.appliedCoupons=null)}}},zr=(0,fe.Z)($r,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("div",Er,[e.active&&s.paymentItems.length?((0,o.openBlock)(),(0,o.createElementBlock)("table",Cr,[(0,o.createElementVNode)("thead",null,[(0,o.createElementVNode)("tr",null,[(0,o.createElementVNode)("th",Sr,(0,o.toDisplayString)(s.$t("item")),1),(0,o.createElementVNode)("th",Or,(0,o.toDisplayString)(s.$t("price")),1),(0,o.createElementVNode)("th",Tr,(0,o.toDisplayString)(s.$t("qty")),1),(0,o.createElementVNode)("th",Vr,(0,o.toDisplayString)(s.$t("line_total")),1)])]),(0,o.createElementVNode)("tbody",null,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(s.paymentItems,(function(e,t){return(0,o.openBlock)(),(0,o.createElementBlock)("tr",{key:t},[(0,o.createElementVNode)("td",Br,[(0,o.createTextVNode)((0,o.toDisplayString)(e.label)+" ",1),e.childItems?((0,o.openBlock)(),(0,o.createElementBlock)("ul",Mr,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(e.childItems,(function(e,t){return(0,o.openBlock)(),(0,o.createElementBlock)("li",{key:t},(0,o.toDisplayString)(e.label),1)})),128))])):(0,o.createCommentVNode)("",!0)]),(0,o.createElementVNode)("td",{class:"f-table-cell",innerHTML:s.formatMoney(e.price)},null,8,Nr),(0,o.createElementVNode)("td",Ar,(0,o.toDisplayString)(e.quantity),1),(0,o.createElementVNode)("td",{class:"f-table-cell",innerHTML:s.formatMoney(e.lineTotal)},null,8,qr)])})),128))]),(0,o.createElementVNode)("tfoot",null,[i.appliedCoupons?((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:0},[(0,o.createElementVNode)("tr",null,[(0,o.createElementVNode)("th",Pr,(0,o.toDisplayString)(s.$t("line_total")),1),(0,o.createElementVNode)("th",{class:"f-table-cell",innerHTML:s.formatMoney(s.subTotal)},null,8,Fr)]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(i.appliedCoupons,(function(e){return(0,o.openBlock)(),(0,o.createElementBlock)("tr",{key:e.code},[(0,o.createElementVNode)("th",Lr," Discount: "+(0,o.toDisplayString)(e.title),1),(0,o.createElementVNode)("th",{class:"f-table-cell",innerHTML:s.formatDiscountAmount(e)},null,8,Dr)])})),128))],64)):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("tr",null,[(0,o.createElementVNode)("th",Ir,(0,o.toDisplayString)(s.$t("total")),1),(0,o.createElementVNode)("th",{class:"f-table-cell",innerHTML:s.formatMoney(s.totalAmount)},null,8,Rr)])])])):((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:1,innerHTML:e.question.emptyText},null,8,jr))])}]]),Hr={extends:Wo,name:kt.ce.TermsAndCondition,data:function(){return{hasImages:!0}},methods:{validate:function(){return"on"===this.dataValue?(this.question.error="",!0):!this.question.required||(this.question.error=this.question.requiredMsg,!1)}}};var Ur={class:"q-inner"},Kr={key:0,class:"f-tagline"},Wr={key:0,class:"fh2"},Qr={key:1,class:"f-text"},Yr=["aria-label"],Gr=[(0,o.createElementVNode)("span",{"aria-hidden":"true"},"*",-1)],Zr={key:1,class:"f-answer"},Jr={key:2,class:"f-sub"},Xr={key:0},ei=["innerHTML"],ti={key:2,class:"f-help"},ni={key:3,class:"f-help"},oi={key:3,class:"f-answer f-full-width"},ri={key:0,class:"f-description"},ii={key:0},si=["href","target"],ai={key:0,class:"vff-animate f-fade-in f-enter"},li=["aria-label"],ci={key:0},ui={key:1},di={key:2},pi=["innerHTML"],fi={key:1,class:"f-invalid",role:"alert","aria-live":"assertive"};var hi={class:"faux-form"},mi=["value","required"],vi={key:0,label:" ",value:"",disabled:"",selected:"",hidden:""},gi=["disabled","value"],yi=(0,o.createElementVNode)("span",{class:"f-arrow-down"},[(0,o.createElementVNode)("svg",{version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"-163 254.1 284.9 284.9",style:"","xml:space":"preserve"},[(0,o.createElementVNode)("g",null,[(0,o.createElementVNode)("path",{d:"M119.1,330.6l-14.3-14.3c-1.9-1.9-4.1-2.9-6.6-2.9c-2.5,0-4.7,1-6.6,2.9L-20.5,428.5l-112.2-112.2c-1.9-1.9-4.1-2.9-6.6-2.9c-2.5,0-4.7,0.9-6.6,2.9l-14.3,14.3c-1.9,1.9-2.9,4.1-2.9,6.6c0,2.5,1,4.7,2.9,6.6l133,133c1.9,1.9,4.1,2.9,6.6,2.9s4.7-1,6.6-2.9l133.1-133c1.9-1.9,2.8-4.1,2.8-6.6C121.9,334.7,121,332.5,119.1,330.6z"})])])],-1);const bi={extends:Fe,name:Me.ce.Dropdown,computed:{answerLabel:function(){for(var e=0;e+this.question.max)&&(this.hasValue?this.question.mask?this.validateMask():!isNaN(+this.dataValue):!this.question.required||this.hasValue))}}},ki={extends:Ke,name:Me.ce.Password,data:function(){return{inputType:"password"}}},Ei={extends:Ke,name:Me.ce.Phone,data:function(){return{inputType:"tel",canReceiveFocus:!0}}},Ci={extends:Ke,name:Me.ce.Date,data:function(){return{inputType:"date"}},methods:{validate:function(){return!(this.question.min&&this.dataValuethis.question.max)&&(!this.question.required||this.hasValue))}}};var Si=["accept","multiple","value","required"];const Oi={extends:Ke,name:Me.ce.File,mounted:function(){this.question.accept&&(this.mimeTypeRegex=new RegExp(this.question.accept.replace("*","[^\\/,]+")))},methods:{setAnswer:function(e){this.question.setAnswer(this.files),this.answer=e,this.question.answered=this.isValid(),this.$emit("update:modelValue",e)},showInvalid:function(){return null!==this.errorMessage},validate:function(){var e=this;if(this.errorMessage=null,this.question.required&&!this.hasValue)return!1;if(this.question.accept&&!Array.from(this.files).every((function(t){return e.mimeTypeRegex.test(t.type)})))return this.errorMessage=this.language.formatString(this.language.errorAllowedFileTypes,{fileTypes:this.question.accept}),!1;if(this.question.multiple){var t=this.files.length;if(null!==this.question.min&&t<+this.question.min)return this.errorMessage=this.language.formatString(this.language.errorMinFiles,{min:this.question.min}),!1;if(null!==this.question.max&&t>+this.question.max)return this.errorMessage=this.language.formatString(this.language.errorMaxFiles,{max:this.question.max}),!1}if(null!==this.question.maxSize&&Array.from(this.files).reduce((function(e,t){return e+t.size}),0)>+this.question.maxSize)return this.errorMessage=this.language.formatString(this.language.errorMaxFileSize,{size:this.language.formatFileSize(this.question.maxSize)}),!1;return this.$refs.input.checkValidity()}},computed:{files:function(){return this.$refs.input.files}}},Ti={name:"FlowFormQuestion",components:{FlowFormDateType:Ci,FlowFormDropdownType:_i,FlowFormEmailType:Ut,FlowFormLongTextType:Xn,FlowFormMultipleChoiceType:Uo,FlowFormMultiplePictureChoiceType:wi,FlowFormNumberType:xi,FlowFormPasswordType:ki,FlowFormPhoneType:Ei,FlowFormSectionBreakType:er,FlowFormTextType:Ke,FlowFormFileType:(0,fe.Z)(Oi,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("input",{ref:"input",type:"file",accept:e.question.accept,multiple:e.question.multiple,value:e.modelValue,required:e.question.required,onKeyup:[t[0]||(t[0]=(0,o.withKeys)((0,o.withModifiers)((function(){return e.onEnter&&e.onEnter.apply(e,arguments)}),["prevent"]),["enter"])),t[1]||(t[1]=(0,o.withKeys)((0,o.withModifiers)((function(){return e.onEnter&&e.onEnter.apply(e,arguments)}),["prevent"]),["tab"]))],onFocus:t[2]||(t[2]=function(){return e.setFocus&&e.setFocus.apply(e,arguments)}),onBlur:t[3]||(t[3]=function(){return e.unsetFocus&&e.unsetFocus.apply(e,arguments)}),onChange:t[4]||(t[4]=function(){return e.onChange&&e.onChange.apply(e,arguments)})},null,40,Si)}]]),FlowFormUrlType:We,FlowFormMatrixType:Rn},props:{question:Me.ZP,language:Ne.Z,value:[String,Array,Boolean,Number,Object],active:{type:Boolean,default:!1},reverse:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!0}},mixins:[Pe],data:function(){return{QuestionType:Me.ce,dataValue:null,debounced:!1}},mounted:function(){this.autofocus&&this.focusField(),this.dataValue=this.question.answer,this.$refs.qanimate.addEventListener("animationend",this.onAnimationEnd)},beforeUnmount:function(){this.$refs.qanimate.removeEventListener("animationend",this.onAnimationEnd)},methods:{focusField:function(){var e=this.$refs.questionComponent;e&&e.focus()},onAnimationEnd:function(){this.autofocus&&this.focusField()},shouldFocus:function(){var e=this.$refs.questionComponent;return e&&e.canReceiveFocus&&!e.focused},returnFocus:function(){this.$refs.questionComponent;this.shouldFocus()&&this.focusField()},onEnter:function(e){this.checkAnswer(this.emitAnswer)},onTab:function(e){this.checkAnswer(this.emitAnswerTab)},checkAnswer:function(e){var t=this,n=this.$refs.questionComponent;n.isValid()&&this.question.isMultipleChoiceType()&&this.question.nextStepOnAnswer&&!this.question.multiple?(this.$emit("disable",!0),this.debounce((function(){e(n),t.$emit("disable",!1)}),350)):e(n)},emitAnswer:function(e){e&&(e.focused||this.$emit("answer",e),e.onEnter())},emitAnswerTab:function(e){e&&this.question.type!==Me.ce.Date&&(this.returnFocus(),this.$emit("answer",e),e.onEnter())},debounce:function(e,t){var n;return this.debounced=!0,clearTimeout(n),void(n=setTimeout(e,t))},showOkButton:function(){var e=this.$refs.questionComponent;return this.question.type===Me.ce.SectionBreak?this.active:!this.question.required||(!(!this.question.allowOther||!this.question.other)||!(this.question.isMultipleChoiceType()&&!this.question.multiple&&this.question.nextStepOnAnswer)&&(!(!e||null===this.dataValue)&&(e.hasValue&&e.isValid())))},showSkip:function(){var e=this.$refs.questionComponent;return!(this.question.required||e&&e.hasValue)},showInvalid:function(){var e=this.$refs.questionComponent;return!(!e||null===this.dataValue)&&e.showInvalid()}},computed:{mainClasses:{cache:!1,get:function(){var e={"q-is-active":this.active,"q-is-inactive":!this.active,"f-fade-in-down":this.reverse,"f-fade-in-up":!this.reverse,"f-focused":this.$refs.questionComponent&&this.$refs.questionComponent.focused,"f-has-value":this.$refs.questionComponent&&this.$refs.questionComponent.hasValue};return e["field-"+this.question.type.toLowerCase().substring(8,this.question.type.length-4)]=!0,e}},showHelperText:function(){return!!this.question.subtitle||(this.question.type===Me.ce.LongText||this.question.type===Me.ce.MultipleChoice)&&this.question.helpTextShow},errorMessage:function(){var e=this.$refs.questionComponent;return e&&e.errorMessage?e.errorMessage:this.language.invalidPrompt}}},Vi=(0,fe.Z)(Ti,[["render",function(e,t,n,r,i,s){return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:(0,o.normalizeClass)(["vff-animate q-form",s.mainClasses]),ref:"qanimate"},[(0,o.createElementVNode)("div",Ur,[(0,o.createElementVNode)("div",{class:(0,o.normalizeClass)({"f-section-wrap":n.question.type===i.QuestionType.SectionBreak})},[(0,o.createElementVNode)("div",{class:(0,o.normalizeClass)({fh2:n.question.type!==i.QuestionType.SectionBreak})},[n.question.tagline?((0,o.openBlock)(),(0,o.createElementBlock)("span",Kr,(0,o.toDisplayString)(n.question.tagline),1)):(0,o.createCommentVNode)("",!0),n.question.title?((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:1},[n.question.type===i.QuestionType.SectionBreak?((0,o.openBlock)(),(0,o.createElementBlock)("span",Wr,(0,o.toDisplayString)(n.question.title),1)):((0,o.openBlock)(),(0,o.createElementBlock)("span",Qr,[(0,o.createTextVNode)((0,o.toDisplayString)(n.question.title)+"  ",1),n.question.required?((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:0,class:"f-required","aria-label":n.language.ariaRequired,role:"note"},Gr,8,Yr)):(0,o.createCommentVNode)("",!0),n.question.inline?((0,o.openBlock)(),(0,o.createElementBlock)("span",Zr,[((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)(n.question.type),{ref:"questionComponent",question:n.question,language:n.language,modelValue:i.dataValue,"onUpdate:modelValue":t[0]||(t[0]=function(e){return i.dataValue=e}),active:n.active,disabled:n.disabled,onNext:s.onEnter},null,40,["question","language","modelValue","active","disabled","onNext"]))])):(0,o.createCommentVNode)("",!0)]))],64)):(0,o.createCommentVNode)("",!0),s.showHelperText?((0,o.openBlock)(),(0,o.createElementBlock)("span",Jr,[n.question.subtitle?((0,o.openBlock)(),(0,o.createElementBlock)("span",Xr,(0,o.toDisplayString)(n.question.subtitle),1)):(0,o.createCommentVNode)("",!0),n.question.type!==i.QuestionType.LongText||e.isMobile?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:1,class:"f-help",innerHTML:n.question.helpText||n.language.formatString(n.language.longTextHelpText)},null,8,ei)),n.question.type===i.QuestionType.MultipleChoice&&n.question.multiple?((0,o.openBlock)(),(0,o.createElementBlock)("span",ti,(0,o.toDisplayString)(n.question.helpText||n.language.multipleChoiceHelpText),1)):n.question.type===i.QuestionType.MultipleChoice?((0,o.openBlock)(),(0,o.createElementBlock)("span",ni,(0,o.toDisplayString)(n.question.helpText||n.language.multipleChoiceHelpTextSingle),1)):(0,o.createCommentVNode)("",!0)])):(0,o.createCommentVNode)("",!0),n.question.inline?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("div",oi,[((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)(n.question.type),{ref:"questionComponent",question:n.question,language:n.language,modelValue:i.dataValue,"onUpdate:modelValue":t[1]||(t[1]=function(e){return i.dataValue=e}),active:n.active,disabled:n.disabled,onNext:s.onEnter},null,40,["question","language","modelValue","active","disabled","onNext"]))]))],2),n.question.description||0!==n.question.descriptionLink.length?((0,o.openBlock)(),(0,o.createElementBlock)("p",ri,[n.question.description?((0,o.openBlock)(),(0,o.createElementBlock)("span",ii,(0,o.toDisplayString)(n.question.description),1)):(0,o.createCommentVNode)("",!0),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(n.question.descriptionLink,(function(e,t){return(0,o.openBlock)(),(0,o.createElementBlock)("a",{class:"f-link",key:"m"+t,href:e.url,target:e.target},(0,o.toDisplayString)(e.text||e.url),9,si)})),128))])):(0,o.createCommentVNode)("",!0)],2),s.showOkButton()?((0,o.openBlock)(),(0,o.createElementBlock)("div",ai,[(0,o.createElementVNode)("button",{class:"o-btn-action",type:"button",ref:"button",href:"#",onClick:t[2]||(t[2]=(0,o.withModifiers)((function(){return s.onEnter&&s.onEnter.apply(s,arguments)}),["prevent"])),"aria-label":n.language.ariaOk},[n.question.type===i.QuestionType.SectionBreak?((0,o.openBlock)(),(0,o.createElementBlock)("span",ci,(0,o.toDisplayString)(n.language.continue),1)):s.showSkip()?((0,o.openBlock)(),(0,o.createElementBlock)("span",ui,(0,o.toDisplayString)(n.language.skip),1)):((0,o.openBlock)(),(0,o.createElementBlock)("span",di,(0,o.toDisplayString)(n.language.ok),1))],8,li),n.question.type===i.QuestionType.LongText&&e.isMobile?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("a",{key:0,class:"f-enter-desc",href:"#",onClick:t[3]||(t[3]=(0,o.withModifiers)((function(){return s.onEnter&&s.onEnter.apply(s,arguments)}),["prevent"])),innerHTML:n.language.formatString(n.language.pressEnter)},null,8,pi))])):(0,o.createCommentVNode)("",!0),s.showInvalid()?((0,o.openBlock)(),(0,o.createElementBlock)("div",fi,(0,o.toDisplayString)(s.errorMessage),1)):(0,o.createCommentVNode)("",!0)])],2)}]]),Bi={extends:Wo,name:kt.ce.MultiplePictureChoice,data:function(){return{hasImages:!0}}};var Mi={class:"ff_range_value"};var Ni=n(6483);const Ai={extends:Ft,name:kt.ce.Rangeslider,components:{ElSlider:Ni.Z},data:function(){return{checked1:!0}},methods:{validate:function(){return!!(!this.question.required||this.hasValue&&this.answer)||(this.errorMessage=this.question.validationRules.required.message,!1)},shouldPrev:function(){return!0}}},qi=(0,fe.Z)(Ai,[["render",function(e,t,n,r,i,s){var a=(0,o.resolveComponent)("el-slider");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createVNode)(a,{modelValue:e.dataValue,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.dataValue=t}),modelModifiers:{number:!0},min:e.question.min,max:e.question.max,step:e.question.step,onChange:e.setAnswer},null,8,["modelValue","min","max","step","onChange"]),(0,o.createElementVNode)("div",Mi,(0,o.toDisplayString)(e.dataValue||0),1)])}]]);var Pi={class:"ff_conv_address",ref:"address"},Fi=["for","aria-label"],Li=["aria-label"],Di=[(0,o.createElementVNode)("span",{"aria-hidden":"true"},"*",-1)],Ii=["onFocusin","id","name","type","placeholder","required","onUpdate:modelValue"],Ri={class:"ff_input-group-text"},ji=["fill"],$i=[(0,o.createElementVNode)("path",{d:"M 14.984375 0.98632812 A 1.0001 1.0001 0 0 0 14 2 L 14 3.0507812 C 8.1822448 3.5345683 3.5345683 8.1822448 3.0507812 14 L 2 14 A 1.0001 1.0001 0 1 0 2 16 L 3.0507812 16 C 3.5345683 21.817755 8.1822448 26.465432 14 26.949219 L 14 28 A 1.0001 1.0001 0 1 0 16 28 L 16 26.949219 C 21.817755 26.465432 26.465432 21.817755 26.949219 16 L 28 16 A 1.0001 1.0001 0 1 0 28 14 L 26.949219 14 C 26.465432 8.1822448 21.817755 3.5345683 16 3.0507812 L 16 2 A 1.0001 1.0001 0 0 0 14.984375 0.98632812 z M 14 5.0488281 L 14 6 A 1.0001 1.0001 0 1 0 16 6 L 16 5.0488281 C 20.732953 5.5164646 24.483535 9.2670468 24.951172 14 L 24 14 A 1.0001 1.0001 0 1 0 24 16 L 24.951172 16 C 24.483535 20.732953 20.732953 24.483535 16 24.951172 L 16 24 A 1.0001 1.0001 0 0 0 14.984375 22.986328 A 1.0001 1.0001 0 0 0 14 24 L 14 24.951172 C 9.2670468 24.483535 5.5164646 20.732953 5.0488281 16 L 6 16 A 1.0001 1.0001 0 1 0 6 14 L 5.0488281 14 C 5.5164646 9.2670468 9.2670468 5.5164646 14 5.0488281 z"},null,-1)],zi=(0,o.createTextVNode)("Show Map"),Hi={class:"ff_map_wrapper"},Ui=(0,o.createTextVNode)("Close Map"),Ki=["id"];var Wi=n(8074);function Qi(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Yi(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Yi(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function Yi(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n=5||this.inputsRefs.push(e)},onFocus:function(e){this.focusIndex=e},onChange:function(e){if(this.dataValue=this.address,this.setAnswer(this.address),this.focus(),this.showMap){this.showMap=!1;var t=(document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen||null!==document.fullscreenElement)&&document.querySelector(".ff_map_body .gm-control-active.gm-fullscreen-control");t&&t.click()}},focus:function(){var e,t,n=this,o=null;if(this.$parent.btnFocusIn){var r=this.fields[this.fields.length-1];r&&"select_country"===r.element?this.focusedElName="country":o=this.inputsRefs.length-1}else o=this.focusedElName?this.inputsRefs.findIndex((function(e){return e.name===n.focusedElName})):this.focusIndex;"country"===this.focusedElName?(null===(e=this.$refs.country)||void 0===e?void 0:e.length)&&(null===(t=this.$refs.country[0])||void 0===t||t.focus()):null!==o&&this.inputsRefs[o]&&this.inputsRefs[o].focus()},locateUser:function(){Gi(this)},validate:function(){var e=!0;if(!this.question.requiredFields||!this.question.requiredFields.length)return e;for(var t=0;t0&&o.setComponentRestrictions({country:i})}n.autoLocateType&&"on_load"===n.autoLocateType&&Gi(n),o.addListener("place_changed",(function(){var e=o.getPlace();e.geometry&&e.geometry.location&&e.address_components&&(e.latLng=e.geometry.location,Ji(e,n),Zi(n,e))}))}};var t=document.createElement("script");t.setAttribute("id","ff_map_autocomplete_script_"+this.question.id),t.setAttribute("src","https://maps.googleapis.com/maps/api/js?key="+this.question.GmapApiKey+"&libraries=places&callback=fluentform_conv_gmap_callback"),document.getElementsByTagName("head")[0].appendChild(t)}var n},mounted:function(){var e=this;this.fields.forEach((function(t){t.attributes.value&&(e.address[t.attributes.name]=t.attributes.value)})),this.question.answer&&this.question.has_save_and_resume&&(console.log(this.question),this.address=this.question.answer)}},ts=(0,fe.Z)(es,[["render",function(e,t,n,r,i,s){var a=(0,o.resolveComponent)("el-option"),l=(0,o.resolveComponent)("el-select"),c=(0,o.resolveComponent)("el-button");return(0,o.openBlock)(),(0,o.createElementBlock)("div",Pi,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(s.fields,(function(n,r){return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:"ff_conv_input_wrapper",key:"field_"+r},[(0,o.createElementVNode)("label",{for:e.question.name+"_"+n.attributes.name,class:"f-text","aria-label":n.settings.label},[(0,o.createTextVNode)((0,o.toDisplayString)(n.settings.label)+" ",1),n.required?((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:0,class:"f-required asterisk-right","aria-label":e.language.ariaRequired,role:"note"},Di,8,Li)):(0,o.createCommentVNode)("",!0)],8,Fi),"text"===n.attributes.type?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:0,ref_for:!0,ref:s.setInputsRefs,tabindex:"0",onFocusin:function(e){return s.onFocus(r)},id:e.question.name+"_"+n.attributes.name,name:n.attributes.name,type:n.attributes.type,placeholder:n.attributes.placeholder,required:n.required,"onUpdate:modelValue":function(e){return i.address[n.attributes.name]=e},class:"f-full-width",onChange:t[0]||(t[0]=function(){return s.onChange&&s.onChange.apply(s,arguments)})},null,40,Ii)),[[o.vModelDynamic,i.address[n.attributes.name]]]):(0,o.createCommentVNode)("",!0),s.showGmapAutocompleteButton&&"address_line_1"===n.attributes.name?((0,o.openBlock)(),(0,o.createElementBlock)("button",{key:1,tabindex:"-1",class:"ff_input-group-append o-btn-action",onClick:t[1]||(t[1]=function(){return s.locateUser&&s.locateUser.apply(s,arguments)})},[(0,o.createElementVNode)("span",Ri,[((0,o.openBlock)(),(0,o.createElementBlock)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",viewBox:"0 0 30 30",fill:s.svgFillColor},$i,8,ji))])])):"select_country"===n.element?((0,o.openBlock)(),(0,o.createBlock)(l,{key:2,ref_for:!0,ref:"country",modelValue:i.address[n.attributes.name],"onUpdate:modelValue":function(e){return i.address[n.attributes.name]=e},placeholder:n.attributes.placeholder,class:"f-full-width",clearable:!0,filterable:!0,onChange:s.onChange},{default:(0,o.withCtx)((function(){return[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(n.options,(function(e){return(0,o.openBlock)(),(0,o.createBlock)(a,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])})),128))]})),_:2},1032,["modelValue","onUpdate:modelValue","placeholder","onChange"])):(0,o.createCommentVNode)("",!0)])})),128)),i.hasMap?((0,o.openBlock)(),(0,o.createBlock)(c,{key:0,tabindex:"-1",plain:"",onClick:t[2]||(t[2]=function(e){return i.showMap=!0}),class:"ff_show_map_btn o-btn-action"},{default:(0,o.withCtx)((function(){return[zi]})),_:1})):(0,o.createCommentVNode)("",!0),(0,o.withDirectives)((0,o.createElementVNode)("div",Hi,[i.showMap?((0,o.openBlock)(),(0,o.createBlock)(c,{key:0,tabindex:"-1",onClick:t[3]||(t[3]=function(e){return i.showMap=!1}),class:"ff_address_map_close_btn o-btn-action",round:""},{default:(0,o.withCtx)((function(){return[Ui]})),_:1})):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",{id:"ff_map_elm_"+e.question.id,ref:"show_map",class:"ff_map_body"},null,8,Ki)],512),[[o.vShow,i.showMap]])],512)}]]);var ns={class:"ff_conv_name"},os=["for","aria-label"],rs=["aria-label"],is=[(0,o.createElementVNode)("span",{"aria-hidden":"true"},"*",-1)],ss=["onFocusin","id","name","type","placeholder","required","onUpdate:modelValue"];const as={extends:Ft,name:kt.ce.Name,data:function(){return{canReceiveFocus:!0,inputsRefs:[],names:{},dataValue:{},focusedElName:"",focusIndex:0}},methods:{shouldPrev:function(){return 0===this.focusIndex},_onEnter:function(){this.enterPressed=!0,this.dataValue=this.fixAnswer(this.names),this.setAnswer(this.dataValue),this.isValid()?this.blur():this.focus()},setInputsRefs:function(e){this.inputsRefs.length>=this.fields.length||this.inputsRefs.push(e)},onFocus:function(e){this.focusIndex=e},onChange:function(){this.dataValue=this.names,this.setAnswer(this.dataValue),this.focus()},focus:function(){var e=this,t=null;null!==(t=this.$parent.btnFocusIn?this.inputsRefs.length-1:this.focusedElName?this.inputsRefs.findIndex((function(t){return t.name===e.focusedElName})):this.focusIndex)&&this.inputsRefs[t]&&this.inputsRefs[t].focus()},validate:function(){var e=!0;if(!this.question.requiredFields||!this.question.requiredFields.length)return e;for(var t=0;t0&&(t+="contrast("+((100-e)/100).toFixed(2)+") "),t+"brightness("+(1+this.question.style_pref.brightness/100)+")"},imagePositionCSS:function(){return("media_right_full"==this.question.style_pref.layout||"media_left_full"==this.question.style_pref.layout)&&this.question.style_pref.media_x_position+"% "+this.question.style_pref.media_y_position+"%"},isLongContent:function(){return this.$el.querySelector(".ffc_question").scrollHeight>window.outerHeight}},mounted:function(){}},Os=(0,fe.Z)(Ss,[["render",function(e,t,n,r,i,s){var a=(0,o.resolveComponent)("flow-form-welcome-screen-type"),l=(0,o.resolveComponent)("counter"),c=(0,o.resolveComponent)("submit-button");return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:(0,o.normalizeClass)(["vff-animate q-form",s.mainClasses]),ref:"qanimate"},[(0,o.createElementVNode)("div",{class:(0,o.normalizeClass)(["ff_conv_section_wrapper",["ff_conv_layout_"+s.layoutClass,e.question.container_class]])},[(0,o.createElementVNode)("div",{class:(0,o.normalizeClass)(["ff_conv_input q-inner",[e.question.contentAlign]])},[(0,o.createElementVNode)("div",{class:(0,o.normalizeClass)(["ffc_question",{"f-section-wrap":e.question.type===i.QuestionType.SectionBreak}])},[e.question.type===i.QuestionType.WelcomeScreen?((0,o.openBlock)(),(0,o.createBlock)(a,{key:0,ref:"questionComponent",is:e.question.type,question:e.question,language:e.language,modelValue:e.dataValue,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.dataValue=t}),active:e.active,replaceSmartCodes:n.replaceSmartCodes,disabled:e.disabled,onNext:e.onEnter,onFocusIn:s.onBtnFocus},null,8,["is","question","language","modelValue","active","replaceSmartCodes","disabled","onNext","onFocusIn"])):((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:1},[(0,o.createElementVNode)("div",{class:(0,o.normalizeClass)({fh2:e.question.type!==i.QuestionType.SectionBreak})},[(0,o.createElementVNode)("div",S,[[i.QuestionType.SectionBreak,i.QuestionType.Hidden].includes(e.question.type)?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(l,{serial:e.question.counter,key:e.question.counter,isMobile:e.isMobile},null,8,["serial","isMobile"])),e.question.title?((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:1},[e.question.type===i.QuestionType.SectionBreak?((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:0,class:"fh2",innerHTML:n.replaceSmartCodes(e.question.title)},null,8,O)):((0,o.openBlock)(),(0,o.createElementBlock)("span",T,[e.question.required&&"asterisk-left"==e.globalVars.design.asteriskPlacement?((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:0,class:"f-required asterisk-left","aria-label":e.language.ariaRequired,role:"note"},B,8,V)):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("span",{innerHTML:n.replaceSmartCodes(e.question.title)},null,8,M),e.question.required&&"asterisk-right"==e.globalVars.design.asteriskPlacement?((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:1,class:"f-required asterisk-right","aria-label":e.language.ariaRequired,role:"note"},A,8,N)):(0,o.createCommentVNode)("",!0),e.question.inline?((0,o.openBlock)(),(0,o.createElementBlock)("span",q,[((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)(e.question.type),{ref:"questionComponent",question:e.question,language:e.language,key:e.question.id,replaceSmartCodes:n.replaceSmartCodes,modelValue:e.dataValue,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.dataValue=t}),active:e.active,disabled:e.disabled,onNext:e.onEnter,onSaveAndResume:s.saveAndResume,saveAndResumeData:n.saveAndResumeData},null,40,["question","language","replaceSmartCodes","modelValue","active","disabled","onNext","onSaveAndResume","saveAndResumeData"]))])):(0,o.createCommentVNode)("",!0)]))],64)):(0,o.createCommentVNode)("",!0),e.question.tagline?((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:2,class:"f-tagline",innerHTML:n.replaceSmartCodes(e.question.tagline)},null,8,P)):(0,o.createCommentVNode)("",!0)]),e.question.inline?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("div",F,[((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)(e.question.type),{ref:"questionComponent",question:e.question,language:e.language,key:e.question.id,modelValue:e.dataValue,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.dataValue=t}),replaceSmartCodes:n.replaceSmartCodes,active:e.active,disabled:e.disabled,onNext:e.onEnter,onSaveAndResume:s.saveAndResume,saveAndResumeData:n.saveAndResumeData},null,40,["question","language","modelValue","replaceSmartCodes","active","disabled","onNext","onSaveAndResume","saveAndResumeData"]))])),e.showHelperText?((0,o.openBlock)(),(0,o.createElementBlock)("span",L,[e.question.subtitle?((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:0,innerHTML:e.question.subtitle},null,8,D)):(0,o.createCommentVNode)("",!0),e.question.type!==i.QuestionType.LongText||e.isMobile?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:1,class:"f-help",innerHTML:e.question.helpText||e.language.formatString(e.language.longTextHelpText)},null,8,I)),e.question.type===i.QuestionType.MultipleChoice&&e.question.multiple?((0,o.openBlock)(),(0,o.createElementBlock)("span",R,(0,o.toDisplayString)(e.question.helpText||e.language.multipleChoiceHelpText),1)):e.question.type===i.QuestionType.MultipleChoice?((0,o.openBlock)(),(0,o.createElementBlock)("span",j,(0,o.toDisplayString)(e.question.helpText||e.language.multipleChoiceHelpTextSingle),1)):(0,o.createCommentVNode)("",!0)])):(0,o.createCommentVNode)("",!0)],2),e.question.description||0!==e.question.descriptionLink.length?((0,o.openBlock)(),(0,o.createElementBlock)("p",$,[e.question.description?((0,o.openBlock)(),(0,o.createElementBlock)("span",z,(0,o.toDisplayString)(n.replaceSmartCodes(e.question.description)),1)):(0,o.createCommentVNode)("",!0),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(e.question.descriptionLink,(function(e,t){return(0,o.openBlock)(),(0,o.createElementBlock)("a",{class:"f-link",key:"m"+t,href:e.url,target:e.target},(0,o.toDisplayString)(e.text||e.url),9,H)})),128))])):(0,o.createCommentVNode)("",!0)],64))],2),e.active&&s.showOkButton()?((0,o.openBlock)(),(0,o.createElementBlock)("div",U,[n.lastStep?((0,o.openBlock)(),(0,o.createBlock)(c,{key:0,language:e.language,disabled:n.submitting,onSubmit:s.onSubmit,onFocusIn:s.onBtnFocus},null,8,["language","disabled","onSubmit","onFocusIn"])):((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:1},[(0,o.createElementVNode)("button",{class:(0,o.normalizeClass)(["o-btn-action",{ffc_submitting:n.submitting}]),type:"button",ref:"button",href:"#",onClick:t[3]||(t[3]=(0,o.withModifiers)((function(){return e.onEnter&&e.onEnter.apply(e,arguments)}),["prevent"])),disabled:n.submitting,"aria-label":e.language.ariaOk,onFocusin:t[4]||(t[4]=function(){return s.onBtnFocus&&s.onBtnFocus.apply(s,arguments)}),onFocusout:t[5]||(t[5]=function(){return s.onBtnFocus&&s.onBtnFocus.apply(s,arguments)})},[n.lastStep?((0,o.openBlock)(),(0,o.createElementBlock)("span",W,(0,o.toDisplayString)(e.language.submitText),1)):e.question.type===i.QuestionType.SectionBreak?((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:1,innerHTML:e.language.continue},null,8,Q)):e.showSkip()?((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:2,innerHTML:e.language.skip},null,8,Y)):((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:3,innerHTML:e.language.ok},null,8,G))],42,K),e.question.type===i.QuestionType.LongText&&e.isMobile?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("a",{key:0,class:"f-enter-desc",href:"#",onClick:t[6]||(t[6]=(0,o.withModifiers)((function(){return e.onEnter&&e.onEnter.apply(e,arguments)}),["prevent"])),innerHTML:e.language.formatString(e.language.pressEnter)},null,8,Z))],64))])):(0,o.createCommentVNode)("",!0),e.active&&s.showInvalid()?((0,o.openBlock)(),(0,o.createElementBlock)("div",J,(0,o.toDisplayString)(e.question.error||e.errorMessage),1)):(0,o.createCommentVNode)("",!0)],2),"default"!=e.question.style_pref.layout?((0,o.openBlock)(),(0,o.createElementBlock)("div",X,[(0,o.createElementVNode)("div",{style:(0,o.normalizeStyle)({filter:s.brightness}),class:(0,o.normalizeClass)(["fcc_block_media_attachment","fc_i_layout_"+e.question.style_pref.layout])},[e.question.style_pref.media?((0,o.openBlock)(),(0,o.createElementBlock)("picture",ee,[(0,o.createElementVNode)("img",{style:(0,o.normalizeStyle)({"object-position":s.imagePositionCSS}),alt:e.question.style_pref.alt_text,src:e.question.style_pref.media},null,12,te)])):(0,o.createCommentVNode)("",!0)],6)])):(0,o.createCommentVNode)("",!0)],2)],2)}]]);var Ts={class:"f-container"},Vs={class:"f-form-wrap"},Bs={key:0,class:"vff-animate f-fade-in-up field-submittype"},Ms={class:"f-section-wrap"},Ns={class:"fh2"},As=["aria-label"],qs=["innerHTML"],Ps={key:2,class:"text-success"},Fs={class:"vff-footer"},Ls={class:"footer-inner-wrap"},Ds={class:"f-progress-bar"},Is={key:1,class:"f-nav"},Rs=["aria-label"],js=(0,o.createElementVNode)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",width:"42.333px",height:"28.334px",viewBox:"78.833 5.5 42.333 28.334","aria-hidden":"true"},[(0,o.createElementVNode)("path",{d:"M82.039,31.971L100,11.442l17.959,20.529L120,30.187L101.02,8.492c-0.258-0.295-0.629-0.463-1.02-0.463c-0.39,0-0.764,0.168-1.02,0.463L80,30.187L82.039,31.971z"})],-1),$s={class:"f-nav-text","aria-hidden":"true"},zs=["aria-label"],Hs=(0,o.createElementVNode)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",width:"42.333px",height:"28.334px",viewBox:"78.833 5.5 42.333 28.334","aria-hidden":"true"},[(0,o.createElementVNode)("path",{d:"M117.963,8.031l-17.961,20.529L82.042,8.031l-2.041,1.784l18.98,21.695c0.258,0.295,0.629,0.463,1.02,0.463c0.39,0,0.764-0.168,1.02-0.463l18.98-21.695L117.963,8.031z"})],-1),Us={class:"f-nav-text","aria-hidden":"true"},Ks={key:2,class:"f-timer"};var Ws={},Qs={methods:{getInstance:function(e){return Ws[e]},setInstance:function(){Ws[this.id]=this}}};const Ys={name:"FlowForm",components:{FlowFormQuestion:Vi},props:{questions:{type:Array,validator:function(e){return e.every((function(e){return e instanceof Me.ZP}))}},language:{type:Ne.Z,default:function(){return new Ne.Z}},progressbar:{type:Boolean,default:!0},standalone:{type:Boolean,default:!0},navigation:{type:Boolean,default:!0},timer:{type:Boolean,default:!1},timerStartStep:[String,Number],timerStopStep:[String,Number],autofocus:{type:Boolean,default:!0}},mixins:[Pe,Qs],data:function(){return{questionRefs:[],completed:!1,submitted:!1,activeQuestionIndex:0,questionList:[],questionListActivePath:[],reverse:!1,timerOn:!1,timerInterval:null,time:0,disabled:!1}},mounted:function(){document.addEventListener("keydown",this.onKeyDownListener),document.addEventListener("keyup",this.onKeyUpListener,!0),window.addEventListener("beforeunload",this.onBeforeUnload),this.setQuestions(),this.checkTimer()},beforeUnmount:function(){document.removeEventListener("keydown",this.onKeyDownListener),document.removeEventListener("keyup",this.onKeyUpListener,!0),window.removeEventListener("beforeunload",this.onBeforeUnload),this.stopTimer()},beforeUpdate:function(){this.questionRefs=[]},computed:{numActiveQuestions:function(){return this.questionListActivePath.length},activeQuestion:function(){return this.questionListActivePath[this.activeQuestionIndex]},activeQuestionId:function(){var e=this.questionModels[this.activeQuestionIndex];return this.isOnLastStep?"_submit":e&&e.id?e.id:null},numCompletedQuestions:function(){var e=0;return this.questionListActivePath.forEach((function(t){t.answered&&++e})),e},percentCompleted:function(){return this.numActiveQuestions?Math.floor(this.numCompletedQuestions/this.numActiveQuestions*100):0},isOnLastStep:function(){return this.numActiveQuestions>0&&this.activeQuestionIndex===this.questionListActivePath.length},isOnTimerStartStep:function(){return this.activeQuestionId===this.timerStartStep||!this.timerOn&&!this.timerStartStep&&0===this.activeQuestionIndex},isOnTimerStopStep:function(){return!!this.submitted||this.activeQuestionId===this.timerStopStep},questionModels:{cache:!1,get:function(){var e=this;if(this.questions&&this.questions.length)return this.questions;var t=[];if(!this.questions){var n={options:Me.L1,descriptionLink:Me.fB},o=this.$slots.default(),r=null;o&&o.length&&((r=o[0].children)||(r=o)),r&&r.filter((function(e){return e.type&&-1!==e.type.name.indexOf("Question")})).forEach((function(o){var r=o.props,i=e.getInstance(r.id),s=new Me.ZP;null!==i.question&&(s=i.question),r.modelValue&&(s.answer=r.modelValue),Object.keys(s).forEach((function(e){if(void 0!==r[e])if("boolean"==typeof s[e])s[e]=!1!==r[e];else if(e in n){var t=n[e],o=[];r[e].forEach((function(e){var n=new t;Object.keys(n).forEach((function(t){void 0!==e[t]&&(n[t]=e[t])})),o.push(n)})),s[e]=o}else if("type"===e){if(-1!==Object.values(Me.ce).indexOf(r[e]))s[e]=r[e];else for(var i in Me.ce)if(i.toLowerCase()===r[e].toLowerCase()){s[e]=Me.ce[i];break}}else s[e]=r[e]})),i.question=s,s.resetOptions(),t.push(s)}))}return t}}},methods:{setQuestionRef:function(e){this.questionRefs.push(e)},activeQuestionComponent:function(){return this.questionRefs[this.activeQuestionIndex]},setQuestions:function(){this.setQuestionListActivePath(),this.setQuestionList()},setQuestionListActivePath:function(){var e=this,t=[];if(this.questionModels.length){var n,o=0,r=0,i=this.activeQuestionIndex,s=function(){var s=e.questionModels[o];if(t.some((function(e){return e===s})))return"break";if(s.setIndex(r),s.language=e.language,t.push(s),s.jump)if(s.answered)if(n=s.getJumpId())if("_submit"===n)o=e.questionModels.length;else for(var a=function(r){if(e.questionModels[r].id===n)return r0&&!this.submitted&&(e.preventDefault(),e.returnValue="")},onKeyDownListener:function(e){if("Tab"===e.key&&!this.submitted)if(e.shiftKey)e.stopPropagation(),e.preventDefault(),this.navigation&&this.goToPreviousQuestion();else{var t=this.activeQuestionComponent();t.shouldFocus()?(e.preventDefault(),t.focusField()):(e.stopPropagation(),this.emitTab(),this.reverse=!1)}},onKeyUpListener:function(e){if(!e.shiftKey&&-1!==["Tab","Enter"].indexOf(e.key)&&!this.submitted){var t=this.activeQuestionComponent();"Tab"===e.key&&t.shouldFocus()?t.focusField():("Enter"===e.key&&this.emitEnter(),e.stopPropagation(),this.reverse=!1)}},emitEnter:function(){if(!this.disabled){var e=this.activeQuestionComponent();e?e.onEnter():this.completed&&this.isOnLastStep&&this.submit()}},emitTab:function(){var e=this.activeQuestionComponent();e?e.onTab():this.emitEnter()},submit:function(){this.emitSubmit(),this.submitted=!0},emitComplete:function(){this.$emit("complete",this.completed,this.questionList)},emitSubmit:function(){this.$emit("submit",this.questionList)},isNextQuestionAvailable:function(){if(this.submitted)return!1;var e=this.activeQuestion;return!(!e||e.required)||(!(!this.completed||this.isOnLastStep)||this.activeQuestionIndex0&&!this.submitted&&(this.isOnTimerStopStep&&this.startTimer(),--this.activeQuestionIndex,this.reverse=!0,this.checkTimer())},goToNextQuestion:function(){this.blurFocus(),this.isNextQuestionAvailable()&&this.emitEnter(),this.reverse=!1},goToQuestion:function(e){if(isNaN(+e)){var t=this.activeQuestionIndex;this.questionListActivePath.forEach((function(n,o){n.id===e&&(t=o)})),e=t}if(e!==this.activeQuestionIndex&&(this.blurFocus(),!this.submitted&&e<=this.questionListActivePath.length-1)){do{if(this.questionListActivePath.slice(0,e).every((function(e){return e.answered})))break;--e}while(e>0);this.reverse=e=3600&&(t=11,n=8),new Date(1e3*e).toISOString().substr(t,n)},setDisabled:function(e){this.disabled=e},reset:function(){this.questionModels.forEach((function(e){return e.resetAnswer()})),this.goToQuestion(0)}},watch:{completed:function(){this.emitComplete()},submitted:function(){this.stopTimer()}}},Gs=(0,fe.Z)(Ys,[["render",function(e,t,n,r,i,s){var a=(0,o.resolveComponent)("flow-form-question");return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:(0,o.normalizeClass)(["vff",{"vff-not-standalone":!n.standalone,"vff-is-mobile":e.isMobile,"vff-is-ios":e.isIos}])},[(0,o.createElementVNode)("div",Ts,[(0,o.createElementVNode)("div",Vs,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(i.questionList,(function(e,t){return(0,o.openBlock)(),(0,o.createBlock)(a,{ref_for:!0,ref:s.setQuestionRef,question:e,language:n.language,key:"q"+t,active:e.index===i.activeQuestionIndex,modelValue:e.answer,"onUpdate:modelValue":function(t){return e.answer=t},onAnswer:s.onQuestionAnswered,reverse:i.reverse,disabled:i.disabled,onDisable:s.setDisabled,autofocus:n.autofocus},null,8,["question","language","active","modelValue","onUpdate:modelValue","onAnswer","reverse","disabled","onDisable","autofocus"])})),128)),(0,o.renderSlot)(e.$slots,"default"),s.isOnLastStep?((0,o.openBlock)(),(0,o.createElementBlock)("div",Bs,[(0,o.renderSlot)(e.$slots,"complete",{},(function(){return[(0,o.createElementVNode)("div",Ms,[(0,o.createElementVNode)("p",null,[(0,o.createElementVNode)("span",Ns,(0,o.toDisplayString)(n.language.thankYouText),1)])])]})),(0,o.renderSlot)(e.$slots,"completeButton",{},(function(){return[i.submitted?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("button",{key:0,class:"o-btn-action",ref:"button",type:"button",href:"#",onClick:t[0]||(t[0]=(0,o.withModifiers)((function(e){return s.submit()}),["prevent"])),"aria-label":n.language.ariaSubmitText},[(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(n.language.submitText),1)],8,As)),i.submitted?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("a",{key:1,class:"f-enter-desc",href:"#",onClick:t[1]||(t[1]=(0,o.withModifiers)((function(e){return s.submit()}),["prevent"])),innerHTML:n.language.formatString(n.language.pressEnter)},null,8,qs)),i.submitted?((0,o.openBlock)(),(0,o.createElementBlock)("p",Ps,(0,o.toDisplayString)(n.language.successText),1)):(0,o.createCommentVNode)("",!0)]}))])):(0,o.createCommentVNode)("",!0)])]),(0,o.createElementVNode)("div",Fs,[(0,o.createElementVNode)("div",Ls,[n.progressbar?((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:0,class:(0,o.normalizeClass)(["f-progress",{"not-started":0===s.percentCompleted,completed:100===s.percentCompleted}])},[(0,o.createElementVNode)("div",Ds,[(0,o.createElementVNode)("div",{class:"f-progress-bar-inner",style:(0,o.normalizeStyle)("width: "+s.percentCompleted+"%;")},null,4)]),(0,o.createTextVNode)(" "+(0,o.toDisplayString)(n.language.percentCompleted.replace(":percent",s.percentCompleted)),1)],2)):(0,o.createCommentVNode)("",!0),n.navigation?((0,o.openBlock)(),(0,o.createElementBlock)("div",Is,[(0,o.createElementVNode)("a",{class:(0,o.normalizeClass)(["f-prev",{"f-disabled":0===i.activeQuestionIndex||i.submitted}]),href:"#",onClick:t[2]||(t[2]=(0,o.withModifiers)((function(e){return s.goToPreviousQuestion()}),["prevent"])),role:"button","aria-label":n.language.ariaPrev},[js,(0,o.createElementVNode)("span",$s,(0,o.toDisplayString)(n.language.prev),1)],10,Rs),(0,o.createElementVNode)("a",{class:(0,o.normalizeClass)(["f-next",{"f-disabled":!s.isNextQuestionAvailable()}]),href:"#",onClick:t[3]||(t[3]=(0,o.withModifiers)((function(e){return s.goToNextQuestion()}),["prevent"])),role:"button","aria-label":n.language.ariaNext},[Hs,(0,o.createElementVNode)("span",Us,(0,o.toDisplayString)(n.language.next),1)],10,zs)])):(0,o.createCommentVNode)("",!0),n.timer?((0,o.openBlock)(),(0,o.createElementBlock)("div",Ks,[(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(s.formatTime(i.time)),1)])):(0,o.createCommentVNode)("",!0)])])],2)}]]);var Zs=n(3356),Js=[{type:8,token:"round",show:"round",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t||0===t||(t=2),e=parseFloat(e).toFixed(t),parseFloat(e)}},{type:0,token:"ceil",show:"ceil",value:function(e){return Math.ceil(e)}},{type:0,token:"floor",show:"floor",value:function(e){return Math.floor(e)}},{type:0,token:"abs",show:"abs",value:function(e){return Math.abs(e)}},{type:8,token:"max",show:"max",value:function(e,t){return e>t?e:t}},{type:8,token:"min",show:"min",value:function(e,t){return e0&&this.activeQuestionIndex===this.questionListActivePath.length-1},hasImageLayout:function(){if(this.questionListActivePath[this.activeQuestionIndex])return"default"!=this.questionListActivePath[this.activeQuestionIndex].style_pref.layout},vffClasses:function(){var e=[];if(this.standalone||e.push("vff-not-standalone"),this.isMobile&&e.push("vff-is-mobile"),this.isIos&&e.push("vff-is-ios"),this.hasImageLayout?e.push("has-img-layout"):e.push("has-default-layout"),this.questionListActivePath[this.activeQuestionIndex]){var t=this.questionListActivePath[this.activeQuestionIndex].style_pref;e.push("vff_layout_"+t.layout)}else e.push("vff_layout_default");return this.isOnLastStep&&e.push("ffc_last_step"),e},isCalculable:function(){return this.hasPro&&!!this.activeQuestion.is_calculable}},methods:{onKeyDownListener:function(e){if(-1!==["Tab","Enter"].indexOf(e.key)&&!this.submitted){var t=this.activeQuestionComponent();if(e.shiftKey)"Tab"===e.key&&(t.btnFocusIn&&t.shouldFocus()?(t.focusField(),e.stopPropagation(),e.preventDefault()):this.navigation&&t.$refs.questionComponent.shouldPrev()&&(this.goToPreviousQuestion(),e.stopPropagation(),e.preventDefault()));else if("Enter"===e.key||t.btnFocusIn){if(e.stopPropagation(),e.preventDefault(),"Tab"===e.key&&this.isOnLastStep)return;this.emitEnter()}}},onKeyUpListener:function(e){},setQuestionListActivePath:function(){var e=[];if(this.questionModels.length){var t={};this.questionModels.forEach((function(e){e.name&&(t[e.name]=(0,Zs.h)(e.answer,e))}));var n,o=0,r=0,i=0;do{var s=this.questionModels[o];if(s.showQuestion(t)){if(s.setIndex(r),s.language=this.language,[kt.ce.WelcomeScreen,kt.ce.SectionBreak].includes(s.type)||(++i,s.setCounter(i)),e.push(s),s.jump)if(s.answered)if(n=s.getJumpId()){if("_submit"===n)o=this.questionModels.length;else for(var a=0;a0&&e===this.questionListActivePath.length-1},calculation:function(){this.hasPro&&na.run(this.questionList)},saveAndResume:function(e){this.$emit("saveAndResume",e)}},watch:{activeQuestionIndex:function(e){this.$emit("activeQuestionIndexChanged",e)}},mounted:function(){this.hasPro&&this.globalVars.form.hasCalculation&&(na.setup(),this.calculation())},updated:function(){this.$refs.conv.closest(".ffc_inline_form")&&(document.removeEventListener("keydown",this.onKeyDownListener),document.removeEventListener("keyup",this.onKeyUpListener,!0),this.$refs.conv.closest(".ffc_inline_form").addEventListener("keydown",this.onKeyDownListener),this.$refs.conv.closest(".ffc_inline_form").addEventListener("keyup",this.onKeyUpListener,!0))}},ia=(0,fe.Z)(ra,[["render",function(e,t,n,S,O,T){var V=(0,o.resolveComponent)("form-question");return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:(0,o.normalizeClass)(["vff",T.vffClasses]),ref:"conv"},[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",i,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(e.questionList,(function(t,r){return(0,o.openBlock)(),(0,o.createBlock)(V,{ref_for:!0,ref:e.setQuestionRef,question:t,language:n.language,isActiveForm:n.isActiveForm,key:"q"+r,active:t.index===e.activeQuestionIndex,modelValue:t.answer,"onUpdate:modelValue":function(e){return t.answer=e},onAnswer:T.onQuestionAnswered,reverse:e.reverse,disabled:e.disabled,onDisable:e.setDisabled,submitting:n.submitting,lastStep:T.isQuestionOnLastStep(r),replaceSmartCodes:T.replaceSmartCodes,onAnswered:T.onQuestionAnswerChanged,onSubmit:T.onSubmit,onSaveAndResume:T.saveAndResume,saveAndResumeData:n.saveAndResumeData},null,8,["question","language","isActiveForm","active","modelValue","onUpdate:modelValue","onAnswer","reverse","disabled","onDisable","submitting","lastStep","replaceSmartCodes","onAnswered","onSubmit","onSaveAndResume","saveAndResumeData"])})),128)),(0,o.renderSlot)(e.$slots,"default"),T.isOnLastStep?((0,o.openBlock)(),(0,o.createElementBlock)("div",s,[(0,o.renderSlot)(e.$slots,"complete",{},(function(){return[(0,o.createElementVNode)("div",a,[(0,o.createElementVNode)("p",null,[(0,o.createElementVNode)("span",l,(0,o.toDisplayString)(n.language.thankYouText),1)])])]})),(0,o.renderSlot)(e.$slots,"completeButton",{},(function(){return[e.submitted?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("button",{key:0,class:(0,o.normalizeClass)(["o-btn-action",{ffc_submitting:n.submitting}]),ref:"button",type:"button",href:"#",disabled:n.submitting,onClick:t[0]||(t[0]=(0,o.withModifiers)((function(t){return e.submit()}),["prevent"])),"aria-label":n.language.ariaSubmitText},[(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(n.language.submitText),1)],10,c)),e.submitted?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("a",{key:1,class:"f-enter-desc",href:"#",onClick:t[1]||(t[1]=(0,o.withModifiers)((function(t){return e.submit()}),["prevent"])),innerHTML:n.language.formatString(n.language.pressEnter)},null,8,u)),e.submitted?((0,o.openBlock)(),(0,o.createElementBlock)("p",d,(0,o.toDisplayString)(n.language.successText),1)):(0,o.createCommentVNode)("",!0)]}))])):(0,o.createCommentVNode)("",!0)])]),(0,o.createElementVNode)("div",p,[(0,o.createElementVNode)("div",f,[e.progressbar?((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:0,class:(0,o.normalizeClass)(["f-progress",{"not-started":0===e.percentCompleted,completed:100===e.percentCompleted}])},[n.language.percentCompleted?((0,o.openBlock)(),(0,o.createElementBlock)("span",h,(0,o.toDisplayString)(n.language.percentCompleted.replace("{percent}",e.percentCompleted).replace("{step}",T.numCompletedQuestions).replace("{total}",T.numActiveQuestions)),1)):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",m,[(0,o.createElementVNode)("div",{class:"f-progress-bar-inner",style:(0,o.normalizeStyle)("width: "+e.percentCompleted+"%;")},null,4)])],2)):(0,o.createCommentVNode)("",!0),e.navigation?((0,o.openBlock)(),(0,o.createElementBlock)("div",v,["yes"!=n.globalVars.design.disable_branding?((0,o.openBlock)(),(0,o.createElementBlock)("a",g,y)):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("a",{class:(0,o.normalizeClass)(["f-prev",{"f-disabled":0===e.activeQuestionIndex||e.submitted}]),href:"#",onClick:t[2]||(t[2]=(0,o.withModifiers)((function(t){return e.goToPreviousQuestion()}),["prevent"])),role:"button","aria-label":n.language.ariaPrev},[_,(0,o.createElementVNode)("span",w,(0,o.toDisplayString)(n.language.prev),1)],10,b),(0,o.createElementVNode)("a",{class:(0,o.normalizeClass)(["f-next",{"f-disabled":!T.isNextQuestionAvailable()}]),href:"#",onClick:t[3]||(t[3]=(0,o.withModifiers)((function(e){return T.emitEnter()}),["prevent"])),role:"button","aria-label":n.language.ariaNext},[k,(0,o.createElementVNode)("span",E,(0,o.toDisplayString)(n.language.next),1)],10,x)])):(0,o.createCommentVNode)("",!0),e.timer?((0,o.openBlock)(),(0,o.createElementBlock)("div",C,[(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(e.formatTime(e.time)),1)])):(0,o.createCommentVNode)("",!0)])])],2)}]])},5460:e=>{e.exports={"#":{pattern:/\d/},X:{pattern:/[0-9a-zA-Z]/},S:{pattern:/[a-zA-Z]/},A:{pattern:/[a-zA-Z]/,transform:e=>e.toLocaleUpperCase()},a:{pattern:/[a-zA-Z]/,transform:e=>e.toLocaleLowerCase()},"!":{escape:!0}}},4865:(e,t,n)=>{"use strict";n.r(t),n.d(t,{BaseTransition:()=>fn,Comment:()=>er,EffectScope:()=>s,Fragment:()=>Jo,KeepAlive:()=>Cn,ReactiveEffect:()=>_,Static:()=>tr,Suspense:()=>Wt,Teleport:()=>Zo,Text:()=>Xo,Transition:()=>Wi,TransitionGroup:()=>ds,VueElement:()=>Ri,callWithAsyncErrorHandling:()=>nt,callWithErrorHandling:()=>tt,camelize:()=>r.camelize,capitalize:()=>r.capitalize,cloneVNode:()=>xr,compatUtils:()=>bi,compile:()=>Au,computed:()=>Xr,createApp:()=>zs,createBlock:()=>dr,createCommentVNode:()=>Cr,createElementBlock:()=>ur,createElementVNode:()=>yr,createHydrationRenderer:()=>zo,createPropsRestProxy:()=>li,createRenderer:()=>$o,createSSRApp:()=>Hs,createSlots:()=>to,createStaticVNode:()=>Er,createTextVNode:()=>kr,createVNode:()=>br,customRef:()=>Ke,defineAsyncComponent:()=>xn,defineComponent:()=>_n,defineCustomElement:()=>Li,defineEmits:()=>ti,defineExpose:()=>ni,defineProps:()=>ei,defineSSRCustomElement:()=>Di,devtools:()=>St,effect:()=>x,effectScope:()=>a,getCurrentInstance:()=>Pr,getCurrentScope:()=>c,getTransitionRawChildren:()=>bn,guardReactiveProps:()=>wr,h:()=>ui,handleError:()=>ot,hydrate:()=>$s,initCustomFormatter:()=>fi,initDirectivesForSSR:()=>Ws,inject:()=>en,isMemoSame:()=>mi,isProxy:()=>Ve,isReactive:()=>Se,isReadonly:()=>Oe,isRef:()=>Fe,isRuntimeOnly:()=>Ur,isShallow:()=>Te,isVNode:()=>pr,markRaw:()=>Me,mergeDefaults:()=>ai,mergeProps:()=>Vr,nextTick:()=>gt,normalizeClass:()=>r.normalizeClass,normalizeProps:()=>r.normalizeProps,normalizeStyle:()=>r.normalizeStyle,onActivated:()=>On,onBeforeMount:()=>Pn,onBeforeUnmount:()=>In,onBeforeUpdate:()=>Ln,onDeactivated:()=>Tn,onErrorCaptured:()=>Hn,onMounted:()=>Fn,onRenderTracked:()=>zn,onRenderTriggered:()=>$n,onScopeDispose:()=>u,onServerPrefetch:()=>jn,onUnmounted:()=>Rn,onUpdated:()=>Dn,openBlock:()=>rr,popScopeId:()=>Lt,provide:()=>Xt,proxyRefs:()=>He,pushScopeId:()=>Ft,queuePostFlushCb:()=>wt,reactive:()=>we,readonly:()=>ke,ref:()=>Le,registerRuntimeCompiler:()=>Hr,render:()=>js,renderList:()=>eo,renderSlot:()=>no,resolveComponent:()=>Qn,resolveDirective:()=>Zn,resolveDynamicComponent:()=>Gn,resolveFilter:()=>yi,resolveTransitionHooks:()=>mn,setBlockTracking:()=>lr,setDevtoolsHook:()=>Vt,setTransitionHooks:()=>yn,shallowReactive:()=>xe,shallowReadonly:()=>Ee,shallowRef:()=>De,ssrContextKey:()=>di,ssrUtils:()=>gi,stop:()=>k,toDisplayString:()=>r.toDisplayString,toHandlerKey:()=>r.toHandlerKey,toHandlers:()=>ro,toRaw:()=>Be,toRef:()=>Ye,toRefs:()=>We,transformVNodeArgs:()=>hr,triggerRef:()=>je,unref:()=>$e,useAttrs:()=>ii,useCssModule:()=>ji,useCssVars:()=>$i,useSSRContext:()=>pi,useSlots:()=>ri,useTransitionState:()=>dn,vModelCheckbox:()=>bs,vModelDynamic:()=>Ss,vModelRadio:()=>ws,vModelSelect:()=>xs,vModelText:()=>ys,vShow:()=>qs,version:()=>vi,warn:()=>Je,watch:()=>sn,watchEffect:()=>tn,watchPostEffect:()=>nn,watchSyncEffect:()=>on,withAsyncContext:()=>ci,withCtx:()=>It,withDefaults:()=>oi,withDirectives:()=>Un,withKeys:()=>As,withMemo:()=>hi,withModifiers:()=>Ms,withScopeId:()=>Dt});var o={};n.r(o),n.d(o,{BaseTransition:()=>fn,Comment:()=>er,EffectScope:()=>s,Fragment:()=>Jo,KeepAlive:()=>Cn,ReactiveEffect:()=>_,Static:()=>tr,Suspense:()=>Wt,Teleport:()=>Zo,Text:()=>Xo,Transition:()=>Wi,TransitionGroup:()=>ds,VueElement:()=>Ri,callWithAsyncErrorHandling:()=>nt,callWithErrorHandling:()=>tt,camelize:()=>r.camelize,capitalize:()=>r.capitalize,cloneVNode:()=>xr,compatUtils:()=>bi,computed:()=>Xr,createApp:()=>zs,createBlock:()=>dr,createCommentVNode:()=>Cr,createElementBlock:()=>ur,createElementVNode:()=>yr,createHydrationRenderer:()=>zo,createPropsRestProxy:()=>li,createRenderer:()=>$o,createSSRApp:()=>Hs,createSlots:()=>to,createStaticVNode:()=>Er,createTextVNode:()=>kr,createVNode:()=>br,customRef:()=>Ke,defineAsyncComponent:()=>xn,defineComponent:()=>_n,defineCustomElement:()=>Li,defineEmits:()=>ti,defineExpose:()=>ni,defineProps:()=>ei,defineSSRCustomElement:()=>Di,devtools:()=>St,effect:()=>x,effectScope:()=>a,getCurrentInstance:()=>Pr,getCurrentScope:()=>c,getTransitionRawChildren:()=>bn,guardReactiveProps:()=>wr,h:()=>ui,handleError:()=>ot,hydrate:()=>$s,initCustomFormatter:()=>fi,initDirectivesForSSR:()=>Ws,inject:()=>en,isMemoSame:()=>mi,isProxy:()=>Ve,isReactive:()=>Se,isReadonly:()=>Oe,isRef:()=>Fe,isRuntimeOnly:()=>Ur,isShallow:()=>Te,isVNode:()=>pr,markRaw:()=>Me,mergeDefaults:()=>ai,mergeProps:()=>Vr,nextTick:()=>gt,normalizeClass:()=>r.normalizeClass,normalizeProps:()=>r.normalizeProps,normalizeStyle:()=>r.normalizeStyle,onActivated:()=>On,onBeforeMount:()=>Pn,onBeforeUnmount:()=>In,onBeforeUpdate:()=>Ln,onDeactivated:()=>Tn,onErrorCaptured:()=>Hn,onMounted:()=>Fn,onRenderTracked:()=>zn,onRenderTriggered:()=>$n,onScopeDispose:()=>u,onServerPrefetch:()=>jn,onUnmounted:()=>Rn,onUpdated:()=>Dn,openBlock:()=>rr,popScopeId:()=>Lt,provide:()=>Xt,proxyRefs:()=>He,pushScopeId:()=>Ft,queuePostFlushCb:()=>wt,reactive:()=>we,readonly:()=>ke,ref:()=>Le,registerRuntimeCompiler:()=>Hr,render:()=>js,renderList:()=>eo,renderSlot:()=>no,resolveComponent:()=>Qn,resolveDirective:()=>Zn,resolveDynamicComponent:()=>Gn,resolveFilter:()=>yi,resolveTransitionHooks:()=>mn,setBlockTracking:()=>lr,setDevtoolsHook:()=>Vt,setTransitionHooks:()=>yn,shallowReactive:()=>xe,shallowReadonly:()=>Ee,shallowRef:()=>De,ssrContextKey:()=>di,ssrUtils:()=>gi,stop:()=>k,toDisplayString:()=>r.toDisplayString,toHandlerKey:()=>r.toHandlerKey,toHandlers:()=>ro,toRaw:()=>Be,toRef:()=>Ye,toRefs:()=>We,transformVNodeArgs:()=>hr,triggerRef:()=>je,unref:()=>$e,useAttrs:()=>ii,useCssModule:()=>ji,useCssVars:()=>$i,useSSRContext:()=>pi,useSlots:()=>ri,useTransitionState:()=>dn,vModelCheckbox:()=>bs,vModelDynamic:()=>Ss,vModelRadio:()=>ws,vModelSelect:()=>xs,vModelText:()=>ys,vShow:()=>qs,version:()=>vi,warn:()=>Je,watch:()=>sn,watchEffect:()=>tn,watchPostEffect:()=>nn,watchSyncEffect:()=>on,withAsyncContext:()=>ci,withCtx:()=>It,withDefaults:()=>oi,withDirectives:()=>Un,withKeys:()=>As,withMemo:()=>hi,withModifiers:()=>Ms,withScopeId:()=>Dt});var r=n(3577);let i;class s{constructor(e=!1){this.active=!0,this.effects=[],this.cleanups=[],!e&&i&&(this.parent=i,this.index=(i.scopes||(i.scopes=[])).push(this)-1)}run(e){if(this.active){const t=i;try{return i=this,e()}finally{i=t}}else 0}on(){i=this}off(){i=this.parent}stop(e){if(this.active){let t,n;for(t=0,n=this.effects.length;t{const t=new Set(e);return t.w=0,t.n=0,t},p=e=>(e.w&v)>0,f=e=>(e.n&v)>0,h=new WeakMap;let m=0,v=1;let g;const y=Symbol(""),b=Symbol("");class _{constructor(e,t=null,n){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,l(this,n)}run(){if(!this.active)return this.fn();let e=g,t=E;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=g,g=this,E=!0,v=1<<++m,m<=30?(({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o{("length"===t||t>=o)&&l.push(e)}));else switch(void 0!==n&&l.push(a.get(n)),t){case"add":(0,r.isArray)(e)?(0,r.isIntegerKey)(n)&&l.push(a.get("length")):(l.push(a.get(y)),(0,r.isMap)(e)&&l.push(a.get(b)));break;case"delete":(0,r.isArray)(e)||(l.push(a.get(y)),(0,r.isMap)(e)&&l.push(a.get(b)));break;case"set":(0,r.isMap)(e)&&l.push(a.get(y))}if(1===l.length)l[0]&&M(l[0]);else{const e=[];for(const t of l)t&&e.push(...t);M(d(e))}}function M(e,t){const n=(0,r.isArray)(e)?e:[...e];for(const e of n)e.computed&&N(e,t);for(const e of n)e.computed||N(e,t)}function N(e,t){(e!==g||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const A=(0,r.makeMap)("__proto__,__v_isRef,__isVue"),q=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(r.isSymbol)),P=j(),F=j(!1,!0),L=j(!0),D=j(!0,!0),I=R();function R(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=Be(this);for(let e=0,t=this.length;e{e[t]=function(...e){S();const n=Be(this)[t].apply(this,e);return O(),n}})),e}function j(e=!1,t=!1){return function(n,o,i){if("__v_isReactive"===o)return!e;if("__v_isReadonly"===o)return e;if("__v_isShallow"===o)return t;if("__v_raw"===o&&i===(e?t?_e:be:t?ye:ge).get(n))return n;const s=(0,r.isArray)(n);if(!e&&s&&(0,r.hasOwn)(I,o))return Reflect.get(I,o,i);const a=Reflect.get(n,o,i);return((0,r.isSymbol)(o)?q.has(o):A(o))?a:(e||T(n,0,o),t?a:Fe(a)?s&&(0,r.isIntegerKey)(o)?a:a.value:(0,r.isObject)(a)?e?ke(a):we(a):a)}}const $=H(),z=H(!0);function H(e=!1){return function(t,n,o,i){let s=t[n];if(Oe(s)&&Fe(s)&&!Fe(o))return!1;if(!e&&!Oe(o)&&(Te(o)||(o=Be(o),s=Be(s)),!(0,r.isArray)(t)&&Fe(s)&&!Fe(o)))return s.value=o,!0;const a=(0,r.isArray)(t)&&(0,r.isIntegerKey)(n)?Number(n)!0,deleteProperty:(e,t)=>!0},W=(0,r.extend)({},U,{get:F,set:z}),Q=(0,r.extend)({},K,{get:D}),Y=e=>e,G=e=>Reflect.getPrototypeOf(e);function Z(e,t,n=!1,o=!1){const r=Be(e=e.__v_raw),i=Be(t);n||(t!==i&&T(r,0,t),T(r,0,i));const{has:s}=G(r),a=o?Y:n?Ae:Ne;return s.call(r,t)?a(e.get(t)):s.call(r,i)?a(e.get(i)):void(e!==r&&e.get(t))}function J(e,t=!1){const n=this.__v_raw,o=Be(n),r=Be(e);return t||(e!==r&&T(o,0,e),T(o,0,r)),e===r?n.has(e):n.has(e)||n.has(r)}function X(e,t=!1){return e=e.__v_raw,!t&&T(Be(e),0,y),Reflect.get(e,"size",e)}function ee(e){e=Be(e);const t=Be(this);return G(t).has.call(t,e)||(t.add(e),B(t,"add",e,e)),this}function te(e,t){t=Be(t);const n=Be(this),{has:o,get:i}=G(n);let s=o.call(n,e);s||(e=Be(e),s=o.call(n,e));const a=i.call(n,e);return n.set(e,t),s?(0,r.hasChanged)(t,a)&&B(n,"set",e,t):B(n,"add",e,t),this}function ne(e){const t=Be(this),{has:n,get:o}=G(t);let r=n.call(t,e);r||(e=Be(e),r=n.call(t,e));o&&o.call(t,e);const i=t.delete(e);return r&&B(t,"delete",e,void 0),i}function oe(){const e=Be(this),t=0!==e.size,n=e.clear();return t&&B(e,"clear",void 0,void 0),n}function re(e,t){return function(n,o){const r=this,i=r.__v_raw,s=Be(i),a=t?Y:e?Ae:Ne;return!e&&T(s,0,y),i.forEach(((e,t)=>n.call(o,a(e),a(t),r)))}}function ie(e,t,n){return function(...o){const i=this.__v_raw,s=Be(i),a=(0,r.isMap)(s),l="entries"===e||e===Symbol.iterator&&a,c="keys"===e&&a,u=i[e](...o),d=n?Y:t?Ae:Ne;return!t&&T(s,0,c?b:y),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:l?[d(e[0]),d(e[1])]:d(e),done:t}},[Symbol.iterator](){return this}}}}function se(e){return function(...t){return"delete"!==e&&this}}function ae(){const e={get(e){return Z(this,e)},get size(){return X(this)},has:J,add:ee,set:te,delete:ne,clear:oe,forEach:re(!1,!1)},t={get(e){return Z(this,e,!1,!0)},get size(){return X(this)},has:J,add:ee,set:te,delete:ne,clear:oe,forEach:re(!1,!0)},n={get(e){return Z(this,e,!0)},get size(){return X(this,!0)},has(e){return J.call(this,e,!0)},add:se("add"),set:se("set"),delete:se("delete"),clear:se("clear"),forEach:re(!0,!1)},o={get(e){return Z(this,e,!0,!0)},get size(){return X(this,!0)},has(e){return J.call(this,e,!0)},add:se("add"),set:se("set"),delete:se("delete"),clear:se("clear"),forEach:re(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((r=>{e[r]=ie(r,!1,!1),n[r]=ie(r,!0,!1),t[r]=ie(r,!1,!0),o[r]=ie(r,!0,!0)})),[e,n,t,o]}const[le,ce,ue,de]=ae();function pe(e,t){const n=t?e?de:ue:e?ce:le;return(t,o,i)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get((0,r.hasOwn)(n,o)&&o in t?n:t,o,i)}const fe={get:pe(!1,!1)},he={get:pe(!1,!0)},me={get:pe(!0,!1)},ve={get:pe(!0,!0)};const ge=new WeakMap,ye=new WeakMap,be=new WeakMap,_e=new WeakMap;function we(e){return Oe(e)?e:Ce(e,!1,U,fe,ge)}function xe(e){return Ce(e,!1,W,he,ye)}function ke(e){return Ce(e,!0,K,me,be)}function Ee(e){return Ce(e,!0,Q,ve,_e)}function Ce(e,t,n,o,i){if(!(0,r.isObject)(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const s=i.get(e);if(s)return s;const a=(l=e).__v_skip||!Object.isExtensible(l)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((0,r.toRawType)(l));var l;if(0===a)return e;const c=new Proxy(e,2===a?o:n);return i.set(e,c),c}function Se(e){return Oe(e)?Se(e.__v_raw):!(!e||!e.__v_isReactive)}function Oe(e){return!(!e||!e.__v_isReadonly)}function Te(e){return!(!e||!e.__v_isShallow)}function Ve(e){return Se(e)||Oe(e)}function Be(e){const t=e&&e.__v_raw;return t?Be(t):e}function Me(e){return(0,r.def)(e,"__v_skip",!0),e}const Ne=e=>(0,r.isObject)(e)?we(e):e,Ae=e=>(0,r.isObject)(e)?ke(e):e;function qe(e){E&&g&&V((e=Be(e)).dep||(e.dep=d()))}function Pe(e,t){(e=Be(e)).dep&&M(e.dep)}function Fe(e){return!(!e||!0!==e.__v_isRef)}function Le(e){return Ie(e,!1)}function De(e){return Ie(e,!0)}function Ie(e,t){return Fe(e)?e:new Re(e,t)}class Re{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:Be(e),this._value=t?e:Ne(e)}get value(){return qe(this),this._value}set value(e){e=this.__v_isShallow?e:Be(e),(0,r.hasChanged)(e,this._rawValue)&&(this._rawValue=e,this._value=this.__v_isShallow?e:Ne(e),Pe(this))}}function je(e){Pe(e)}function $e(e){return Fe(e)?e.value:e}const ze={get:(e,t,n)=>$e(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Fe(r)&&!Fe(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function He(e){return Se(e)?e:new Proxy(e,ze)}class Ue{constructor(e){this.dep=void 0,this.__v_isRef=!0;const{get:t,set:n}=e((()=>qe(this)),(()=>Pe(this)));this._get=t,this._set=n}get value(){return this._get()}set value(e){this._set(e)}}function Ke(e){return new Ue(e)}function We(e){const t=(0,r.isArray)(e)?new Array(e.length):{};for(const n in e)t[n]=Ye(e,n);return t}class Qe{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0}get value(){const e=this._object[this._key];return void 0===e?this._defaultValue:e}set value(e){this._object[this._key]=e}}function Ye(e,t,n){const o=e[t];return Fe(o)?o:new Qe(e,t,n)}class Ge{constructor(e,t,n,o){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new _(e,(()=>{this._dirty||(this._dirty=!0,Pe(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=n}get value(){const e=Be(this);return qe(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}const Ze=[];function Je(e,...t){S();const n=Ze.length?Ze[Ze.length-1].component:null,o=n&&n.appContext.config.warnHandler,r=function(){let e=Ze[Ze.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}();if(o)tt(o,n,11,[e+t.join(""),n&&n.proxy,r.map((({vnode:e})=>`at <${Zr(n,e.type)}>`)).join("\n"),r]);else{const n=[`[Vue warn]: ${e}`,...t];r.length&&n.push("\n",...function(e){const t=[];return e.forEach(((e,n)=>{t.push(...0===n?[]:["\n"],...function({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=!!e.component&&null==e.component.parent,r=` at <${Zr(e.component,e.type,o)}`,i=">"+n;return e.props?[r,...Xe(e.props),i]:[r+i]}(e))})),t}(r)),console.warn(...n)}O()}function Xe(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach((n=>{t.push(...et(n,e[n]))})),n.length>3&&t.push(" ..."),t}function et(e,t,n){return(0,r.isString)(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):"number"==typeof t||"boolean"==typeof t||null==t?n?t:[`${e}=${t}`]:Fe(t)?(t=et(e,Be(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):(0,r.isFunction)(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Be(t),n?t:[`${e}=`,t])}function tt(e,t,n,o){let r;try{r=o?e(...o):e()}catch(e){ot(e,t,n)}return r}function nt(e,t,n,o){if((0,r.isFunction)(e)){const i=tt(e,t,n,o);return i&&(0,r.isPromise)(i)&&i.catch((e=>{ot(e,t,n)})),i}const i=[];for(let r=0;r>>1;Et(st[o])Et(e)-Et(t))),ft=0;ftnull==e.id?1/0:e.id;function Ct(e){it=!1,rt=!0,xt(e),st.sort(((e,t)=>Et(e)-Et(t)));r.NOOP;try{for(at=0;atSt.emit(e,...t))),Ot=[];else if("undefined"!=typeof window&&window.HTMLElement&&!(null===(o=null===(n=window.navigator)||void 0===n?void 0:n.userAgent)||void 0===o?void 0:o.includes("jsdom"))){(t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push((e=>{Vt(e,t)})),setTimeout((()=>{St||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Tt=!0,Ot=[])}),3e3)}else Tt=!0,Ot=[]}function Bt(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||r.EMPTY_OBJ;let i=n;const s=t.startsWith("update:"),a=s&&t.slice(7);if(a&&a in o){const e=`${"modelValue"===a?"model":a}Modifiers`,{number:t,trim:s}=o[e]||r.EMPTY_OBJ;s&&(i=n.map((e=>e.trim()))),t&&(i=n.map(r.toNumber))}let l;let c=o[l=(0,r.toHandlerKey)(t)]||o[l=(0,r.toHandlerKey)((0,r.camelize)(t))];!c&&s&&(c=o[l=(0,r.toHandlerKey)((0,r.hyphenate)(t))]),c&&nt(c,e,6,i);const u=o[l+"Once"];if(u){if(e.emitted){if(e.emitted[l])return}else e.emitted={};e.emitted[l]=!0,nt(u,e,6,i)}}function Mt(e,t,n=!1){const o=t.emitsCache,i=o.get(e);if(void 0!==i)return i;const s=e.emits;let a={},l=!1;if(!(0,r.isFunction)(e)){const o=e=>{const n=Mt(e,t,!0);n&&(l=!0,(0,r.extend)(a,n))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return s||l?((0,r.isArray)(s)?s.forEach((e=>a[e]=null)):(0,r.extend)(a,s),o.set(e,a),a):(o.set(e,null),null)}function Nt(e,t){return!(!e||!(0,r.isOn)(t))&&(t=t.slice(2).replace(/Once$/,""),(0,r.hasOwn)(e,t[0].toLowerCase()+t.slice(1))||(0,r.hasOwn)(e,(0,r.hyphenate)(t))||(0,r.hasOwn)(e,t))}let At=null,qt=null;function Pt(e){const t=At;return At=e,qt=e&&e.type.__scopeId||null,t}function Ft(e){qt=e}function Lt(){qt=null}const Dt=e=>It;function It(e,t=At,n){if(!t)return e;if(e._n)return e;const o=(...n)=>{o._d&&lr(-1);const r=Pt(t),i=e(...n);return Pt(r),o._d&&lr(1),i};return o._n=!0,o._c=!0,o._d=!0,o}function Rt(e){const{type:t,vnode:n,proxy:o,withProxy:i,props:s,propsOptions:[a],slots:l,attrs:c,emit:u,render:d,renderCache:p,data:f,setupState:h,ctx:m,inheritAttrs:v}=e;let g,y;const b=Pt(e);try{if(4&n.shapeFlag){const e=i||o;g=Sr(d.call(e,e,p,s,h,f,m)),y=c}else{const e=t;0,g=Sr(e.length>1?e(s,{attrs:c,slots:l,emit:u}):e(s,null)),y=t.props?c:$t(c)}}catch(t){nr.length=0,ot(t,e,1),g=br(er)}let _=g;if(y&&!1!==v){const e=Object.keys(y),{shapeFlag:t}=_;e.length&&7&t&&(a&&e.some(r.isModelListener)&&(y=zt(y,a)),_=xr(_,y))}return n.dirs&&(_=xr(_),_.dirs=_.dirs?_.dirs.concat(n.dirs):n.dirs),n.transition&&(_.transition=n.transition),g=_,Pt(b),g}function jt(e){let t;for(let n=0;n{let t;for(const n in e)("class"===n||"style"===n||(0,r.isOn)(n))&&((t||(t={}))[n]=e[n]);return t},zt=(e,t)=>{const n={};for(const o in e)(0,r.isModelListener)(o)&&o.slice(9)in t||(n[o]=e[o]);return n};function Ht(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let r=0;re.__isSuspense,Wt={name:"Suspense",__isSuspense:!0,process(e,t,n,o,r,i,s,a,l,c){null==e?function(e,t,n,o,r,i,s,a,l){const{p:c,o:{createElement:u}}=l,d=u("div"),p=e.suspense=Yt(e,r,o,t,d,n,i,s,a,l);c(null,p.pendingBranch=e.ssContent,d,null,o,p,i,s),p.deps>0?(Qt(e,"onPending"),Qt(e,"onFallback"),c(null,e.ssFallback,t,n,o,null,i,s),Jt(p,e.ssFallback)):p.resolve()}(t,n,o,r,i,s,a,l,c):function(e,t,n,o,r,i,s,a,{p:l,um:c,o:{createElement:u}}){const d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;const p=t.ssContent,f=t.ssFallback,{activeBranch:h,pendingBranch:m,isInFallback:v,isHydrating:g}=d;if(m)d.pendingBranch=p,fr(p,m)?(l(m,p,d.hiddenContainer,null,r,d,i,s,a),d.deps<=0?d.resolve():v&&(l(h,f,n,o,r,null,i,s,a),Jt(d,f))):(d.pendingId++,g?(d.isHydrating=!1,d.activeBranch=m):c(m,r,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u("div"),v?(l(null,p,d.hiddenContainer,null,r,d,i,s,a),d.deps<=0?d.resolve():(l(h,f,n,o,r,null,i,s,a),Jt(d,f))):h&&fr(p,h)?(l(h,p,n,o,r,d,i,s,a),d.resolve(!0)):(l(null,p,d.hiddenContainer,null,r,d,i,s,a),d.deps<=0&&d.resolve()));else if(h&&fr(p,h))l(h,p,n,o,r,d,i,s,a),Jt(d,p);else if(Qt(t,"onPending"),d.pendingBranch=p,d.pendingId++,l(null,p,d.hiddenContainer,null,r,d,i,s,a),d.deps<=0)d.resolve();else{const{timeout:e,pendingId:t}=d;e>0?setTimeout((()=>{d.pendingId===t&&d.fallback(f)}),e):0===e&&d.fallback(f)}}(e,t,n,o,r,s,a,l,c)},hydrate:function(e,t,n,o,r,i,s,a,l){const c=t.suspense=Yt(t,o,n,e.parentNode,document.createElement("div"),null,r,i,s,a,!0),u=l(e,c.pendingBranch=t.ssContent,n,c,i,s);0===c.deps&&c.resolve();return u},create:Yt,normalize:function(e){const{shapeFlag:t,children:n}=e,o=32&t;e.ssContent=Gt(o?n.default:n),e.ssFallback=o?Gt(n.fallback):br(er)}};function Qt(e,t){const n=e.props&&e.props[t];(0,r.isFunction)(n)&&n()}function Yt(e,t,n,o,i,s,a,l,c,u,d=!1){const{p,m:f,um:h,n:m,o:{parentNode:v,remove:g}}=u,y=(0,r.toNumber)(e.props&&e.props.timeout),b={vnode:e,parent:t,parentComponent:n,isSVG:a,container:o,hiddenContainer:i,anchor:s,deps:0,pendingId:0,timeout:"number"==typeof y?y:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:d,isUnmounted:!1,effects:[],resolve(e=!1){const{vnode:t,activeBranch:n,pendingBranch:o,pendingId:r,effects:i,parentComponent:s,container:a}=b;if(b.isHydrating)b.isHydrating=!1;else if(!e){const e=n&&o.transition&&"out-in"===o.transition.mode;e&&(n.transition.afterLeave=()=>{r===b.pendingId&&f(o,a,t,0)});let{anchor:t}=b;n&&(t=m(n),h(n,s,b,!0)),e||f(o,a,t,0)}Jt(b,o),b.pendingBranch=null,b.isInFallback=!1;let l=b.parent,c=!1;for(;l;){if(l.pendingBranch){l.effects.push(...i),c=!0;break}l=l.parent}c||wt(i),b.effects=[],Qt(t,"onResolve")},fallback(e){if(!b.pendingBranch)return;const{vnode:t,activeBranch:n,parentComponent:o,container:r,isSVG:i}=b;Qt(t,"onFallback");const s=m(n),a=()=>{b.isInFallback&&(p(null,e,r,s,o,null,i,l,c),Jt(b,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(n.transition.afterLeave=a),b.isInFallback=!0,h(n,o,null,!0),u||a()},move(e,t,n){b.activeBranch&&f(b.activeBranch,e,t,n),b.container=e},next:()=>b.activeBranch&&m(b.activeBranch),registerDep(e,t){const n=!!b.pendingBranch;n&&b.deps++;const o=e.vnode.el;e.asyncDep.catch((t=>{ot(t,e,0)})).then((r=>{if(e.isUnmounted||b.isUnmounted||b.pendingId!==e.suspenseId)return;e.asyncResolved=!0;const{vnode:i}=e;zr(e,r,!1),o&&(i.el=o);const s=!o&&e.subTree.el;t(e,i,v(o||e.subTree.el),o?null:m(e.subTree),b,a,c),s&&g(s),Ut(e,i.el),n&&0==--b.deps&&b.resolve()}))},unmount(e,t){b.isUnmounted=!0,b.activeBranch&&h(b.activeBranch,n,e,t),b.pendingBranch&&h(b.pendingBranch,n,e,t)}};return b}function Gt(e){let t;if((0,r.isFunction)(e)){const n=ar&&e._c;n&&(e._d=!1,rr()),e=e(),n&&(e._d=!0,t=or,ir())}if((0,r.isArray)(e)){const t=jt(e);0,e=t}return e=Sr(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter((t=>t!==e))),e}function Zt(e,t){t&&t.pendingBranch?(0,r.isArray)(e)?t.effects.push(...e):t.effects.push(e):wt(e)}function Jt(e,t){e.activeBranch=t;const{vnode:n,parentComponent:o}=e,r=n.el=t.el;o&&o.subTree===n&&(o.vnode.el=r,Ut(o,r))}function Xt(e,t){if(qr){let n=qr.provides;const o=qr.parent&&qr.parent.provides;o===n&&(n=qr.provides=Object.create(o)),n[e]=t}else 0}function en(e,t,n=!1){const o=qr||At;if(o){const i=null==o.parent?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return n&&(0,r.isFunction)(t)?t.call(o.proxy):t}else 0}function tn(e,t){return an(e,null,t)}function nn(e,t){return an(e,null,{flush:"post"})}function on(e,t){return an(e,null,{flush:"sync"})}const rn={};function sn(e,t,n){return an(e,t,n)}function an(e,t,{immediate:n,deep:o,flush:i,onTrack:s,onTrigger:a}=r.EMPTY_OBJ){const l=qr;let c,u,d=!1,p=!1;if(Fe(e)?(c=()=>e.value,d=Te(e)):Se(e)?(c=()=>e,o=!0):(0,r.isArray)(e)?(p=!0,d=e.some((e=>Se(e)||Te(e))),c=()=>e.map((e=>Fe(e)?e.value:Se(e)?un(e):(0,r.isFunction)(e)?tt(e,l,2):void 0))):c=(0,r.isFunction)(e)?t?()=>tt(e,l,2):()=>{if(!l||!l.isUnmounted)return u&&u(),nt(e,l,3,[f])}:r.NOOP,t&&o){const e=c;c=()=>un(e())}let f=e=>{u=g.onStop=()=>{tt(e,l,4)}};if(jr)return f=r.NOOP,t?n&&nt(t,l,3,[c(),p?[]:void 0,f]):c(),r.NOOP;let h=p?[]:rn;const m=()=>{if(g.active)if(t){const e=g.run();(o||d||(p?e.some(((e,t)=>(0,r.hasChanged)(e,h[t]))):(0,r.hasChanged)(e,h)))&&(u&&u(),nt(t,l,3,[e,h===rn?void 0:h,f]),h=e)}else g.run()};let v;m.allowRecurse=!!t,v="sync"===i?m:"post"===i?()=>jo(m,l&&l.suspense):()=>function(e){_t(e,ct,lt,ut)}(m);const g=new _(c,v);return t?n?m():h=g.run():"post"===i?jo(g.run.bind(g),l&&l.suspense):g.run(),()=>{g.stop(),l&&l.scope&&(0,r.remove)(l.scope.effects,g)}}function ln(e,t,n){const o=this.proxy,i=(0,r.isString)(e)?e.includes(".")?cn(o,e):()=>o[e]:e.bind(o,o);let s;(0,r.isFunction)(t)?s=t:(s=t.handler,n=t);const a=qr;Fr(this);const l=an(i,s.bind(o),n);return a?Fr(a):Lr(),l}function cn(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e{un(e,t)}));else if((0,r.isPlainObject)(e))for(const n in e)un(e[n],t);return e}function dn(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Fn((()=>{e.isMounted=!0})),In((()=>{e.isUnmounting=!0})),e}const pn=[Function,Array],fn={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:pn,onEnter:pn,onAfterEnter:pn,onEnterCancelled:pn,onBeforeLeave:pn,onLeave:pn,onAfterLeave:pn,onLeaveCancelled:pn,onBeforeAppear:pn,onAppear:pn,onAfterAppear:pn,onAppearCancelled:pn},setup(e,{slots:t}){const n=Pr(),o=dn();let r;return()=>{const i=t.default&&bn(t.default(),!0);if(!i||!i.length)return;let s=i[0];if(i.length>1){let e=!1;for(const t of i)if(t.type!==er){0,s=t,e=!0;break}}const a=Be(e),{mode:l}=a;if(o.isLeaving)return vn(s);const c=gn(s);if(!c)return vn(s);const u=mn(c,a,o,n);yn(c,u);const d=n.subTree,p=d&&gn(d);let f=!1;const{getTransitionKey:h}=c.type;if(h){const e=h();void 0===r?r=e:e!==r&&(r=e,f=!0)}if(p&&p.type!==er&&(!fr(c,p)||f)){const e=mn(p,a,o,n);if(yn(p,e),"out-in"===l)return o.isLeaving=!0,e.afterLeave=()=>{o.isLeaving=!1,n.update()},vn(s);"in-out"===l&&c.type!==er&&(e.delayLeave=(e,t,n)=>{hn(o,p)[String(p.key)]=p,e._leaveCb=()=>{t(),e._leaveCb=void 0,delete u.delayedLeave},u.delayedLeave=n})}return s}}};function hn(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function mn(e,t,n,o){const{appear:i,mode:s,persisted:a=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:f,onAfterLeave:h,onLeaveCancelled:m,onBeforeAppear:v,onAppear:g,onAfterAppear:y,onAppearCancelled:b}=t,_=String(e.key),w=hn(n,e),x=(e,t)=>{e&&nt(e,o,9,t)},k=(e,t)=>{const n=t[1];x(e,t),(0,r.isArray)(e)?e.every((e=>e.length<=1))&&n():e.length<=1&&n()},E={mode:s,persisted:a,beforeEnter(t){let o=l;if(!n.isMounted){if(!i)return;o=v||l}t._leaveCb&&t._leaveCb(!0);const r=w[_];r&&fr(e,r)&&r.el._leaveCb&&r.el._leaveCb(),x(o,[t])},enter(e){let t=c,o=u,r=d;if(!n.isMounted){if(!i)return;t=g||c,o=y||u,r=b||d}let s=!1;const a=e._enterCb=t=>{s||(s=!0,x(t?r:o,[e]),E.delayedLeave&&E.delayedLeave(),e._enterCb=void 0)};t?k(t,[e,a]):a()},leave(t,o){const r=String(e.key);if(t._enterCb&&t._enterCb(!0),n.isUnmounting)return o();x(p,[t]);let i=!1;const s=t._leaveCb=n=>{i||(i=!0,o(),x(n?m:h,[t]),t._leaveCb=void 0,w[r]===e&&delete w[r])};w[r]=e,f?k(f,[t,s]):s()},clone:e=>mn(e,t,n,o)};return E}function vn(e){if(En(e))return(e=xr(e)).children=null,e}function gn(e){return En(e)?e.children?e.children[0]:void 0:e}function yn(e,t){6&e.shapeFlag&&e.component?yn(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function bn(e,t=!1,n){let o=[],r=0;for(let i=0;i1)for(let e=0;e!!e.type.__asyncLoader;function xn(e){(0,r.isFunction)(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:i=200,timeout:s,suspensible:a=!0,onError:l}=e;let c,u=null,d=0;const p=()=>{let e;return u||(e=u=t().catch((e=>{if(e=e instanceof Error?e:new Error(String(e)),l)return new Promise(((t,n)=>{l(e,(()=>t((d++,u=null,p()))),(()=>n(e)),d+1)}));throw e})).then((t=>e!==u&&u?u:(t&&(t.__esModule||"Module"===t[Symbol.toStringTag])&&(t=t.default),c=t,t))))};return _n({name:"AsyncComponentWrapper",__asyncLoader:p,get __asyncResolved(){return c},setup(){const e=qr;if(c)return()=>kn(c,e);const t=t=>{u=null,ot(t,e,13,!o)};if(a&&e.suspense||jr)return p().then((t=>()=>kn(t,e))).catch((e=>(t(e),()=>o?br(o,{error:e}):null)));const r=Le(!1),l=Le(),d=Le(!!i);return i&&setTimeout((()=>{d.value=!1}),i),null!=s&&setTimeout((()=>{if(!r.value&&!l.value){const e=new Error(`Async component timed out after ${s}ms.`);t(e),l.value=e}}),s),p().then((()=>{r.value=!0,e.parent&&En(e.parent.vnode)&&yt(e.parent.update)})).catch((e=>{t(e),l.value=e})),()=>r.value&&c?kn(c,e):l.value&&o?br(o,{error:l.value}):n&&!d.value?br(n):void 0}})}function kn(e,{vnode:{ref:t,props:n,children:o,shapeFlag:r},parent:i}){const s=br(e,n,o);return s.ref=t,s}const En=e=>e.type.__isKeepAlive,Cn={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=Pr(),o=n.ctx;if(!o.renderer)return()=>{const e=t.default&&t.default();return e&&1===e.length?e[0]:e};const i=new Map,s=new Set;let a=null;const l=n.suspense,{renderer:{p:c,m:u,um:d,o:{createElement:p}}}=o,f=p("div");function h(e){Mn(e),d(e,n,l,!0)}function m(e){i.forEach(((t,n)=>{const o=Gr(t.type);!o||e&&e(o)||v(n)}))}function v(e){const t=i.get(e);a&&t.type===a.type?a&&Mn(a):h(t),i.delete(e),s.delete(e)}o.activate=(e,t,n,o,i)=>{const s=e.component;u(e,t,n,0,l),c(s.vnode,e,t,n,s,l,o,e.slotScopeIds,i),jo((()=>{s.isDeactivated=!1,s.a&&(0,r.invokeArrayFns)(s.a);const t=e.props&&e.props.onVnodeMounted;t&&Br(t,s.parent,e)}),l)},o.deactivate=e=>{const t=e.component;u(e,f,null,1,l),jo((()=>{t.da&&(0,r.invokeArrayFns)(t.da);const n=e.props&&e.props.onVnodeUnmounted;n&&Br(n,t.parent,e),t.isDeactivated=!0}),l)},sn((()=>[e.include,e.exclude]),(([e,t])=>{e&&m((t=>Sn(e,t))),t&&m((e=>!Sn(t,e)))}),{flush:"post",deep:!0});let g=null;const y=()=>{null!=g&&i.set(g,Nn(n.subTree))};return Fn(y),Dn(y),In((()=>{i.forEach((e=>{const{subTree:t,suspense:o}=n,r=Nn(t);if(e.type!==r.type)h(e);else{Mn(r);const e=r.component.da;e&&jo(e,o)}}))})),()=>{if(g=null,!t.default)return null;const n=t.default(),o=n[0];if(n.length>1)return a=null,n;if(!(pr(o)&&(4&o.shapeFlag||128&o.shapeFlag)))return a=null,o;let r=Nn(o);const l=r.type,c=Gr(wn(r)?r.type.__asyncResolved||{}:l),{include:u,exclude:d,max:p}=e;if(u&&(!c||!Sn(u,c))||d&&c&&Sn(d,c))return a=r,o;const f=null==r.key?l:r.key,h=i.get(f);return r.el&&(r=xr(r),128&o.shapeFlag&&(o.ssContent=r)),g=f,h?(r.el=h.el,r.component=h.component,r.transition&&yn(r,r.transition),r.shapeFlag|=512,s.delete(f),s.add(f)):(s.add(f),p&&s.size>parseInt(p,10)&&v(s.values().next().value)),r.shapeFlag|=256,a=r,Kt(o.type)?o:r}}};function Sn(e,t){return(0,r.isArray)(e)?e.some((e=>Sn(e,t))):(0,r.isString)(e)?e.split(",").includes(t):!!e.test&&e.test(t)}function On(e,t){Vn(e,"a",t)}function Tn(e,t){Vn(e,"da",t)}function Vn(e,t,n=qr){const o=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(An(t,o,n),n){let e=n.parent;for(;e&&e.parent;)En(e.parent.vnode)&&Bn(o,t,n,e),e=e.parent}}function Bn(e,t,n,o){const i=An(t,e,o,!0);Rn((()=>{(0,r.remove)(o[t],i)}),n)}function Mn(e){let t=e.shapeFlag;256&t&&(t-=256),512&t&&(t-=512),e.shapeFlag=t}function Nn(e){return 128&e.shapeFlag?e.ssContent:e}function An(e,t,n=qr,o=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;S(),Fr(n);const r=nt(t,n,e,o);return Lr(),O(),r});return o?r.unshift(i):r.push(i),i}}const qn=e=>(t,n=qr)=>(!jr||"sp"===e)&&An(e,t,n),Pn=qn("bm"),Fn=qn("m"),Ln=qn("bu"),Dn=qn("u"),In=qn("bum"),Rn=qn("um"),jn=qn("sp"),$n=qn("rtg"),zn=qn("rtc");function Hn(e,t=qr){An("ec",e,t)}function Un(e,t){const n=At;if(null===n)return e;const o=Qr(n)||n.proxy,i=e.dirs||(e.dirs=[]);for(let e=0;et(e,n,void 0,s&&s[n])));else{const n=Object.keys(e);i=new Array(n.length);for(let o=0,r=n.length;o!pr(e)||e.type!==er&&!(e.type===Jo&&!oo(e.children))))?e:null}function ro(e){const t={};for(const n in e)t[(0,r.toHandlerKey)(n)]=e[n];return t}const io=e=>e?Dr(e)?Qr(e)||e.proxy:io(e.parent):null,so=(0,r.extend)(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>io(e.parent),$root:e=>io(e.root),$emit:e=>e.emit,$options:e=>ho(e),$forceUpdate:e=>e.f||(e.f=()=>yt(e.update)),$nextTick:e=>e.n||(e.n=gt.bind(e.proxy)),$watch:e=>ln.bind(e)}),ao={get({_:e},t){const{ctx:n,setupState:o,data:i,props:s,accessCache:a,type:l,appContext:c}=e;let u;if("$"!==t[0]){const l=a[t];if(void 0!==l)switch(l){case 1:return o[t];case 2:return i[t];case 4:return n[t];case 3:return s[t]}else{if(o!==r.EMPTY_OBJ&&(0,r.hasOwn)(o,t))return a[t]=1,o[t];if(i!==r.EMPTY_OBJ&&(0,r.hasOwn)(i,t))return a[t]=2,i[t];if((u=e.propsOptions[0])&&(0,r.hasOwn)(u,t))return a[t]=3,s[t];if(n!==r.EMPTY_OBJ&&(0,r.hasOwn)(n,t))return a[t]=4,n[t];co&&(a[t]=0)}}const d=so[t];let p,f;return d?("$attrs"===t&&T(e,0,t),d(e)):(p=l.__cssModules)&&(p=p[t])?p:n!==r.EMPTY_OBJ&&(0,r.hasOwn)(n,t)?(a[t]=4,n[t]):(f=c.config.globalProperties,(0,r.hasOwn)(f,t)?f[t]:void 0)},set({_:e},t,n){const{data:o,setupState:i,ctx:s}=e;return i!==r.EMPTY_OBJ&&(0,r.hasOwn)(i,t)?(i[t]=n,!0):o!==r.EMPTY_OBJ&&(0,r.hasOwn)(o,t)?(o[t]=n,!0):!(0,r.hasOwn)(e.props,t)&&(("$"!==t[0]||!(t.slice(1)in e))&&(s[t]=n,!0))},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:i,propsOptions:s}},a){let l;return!!n[a]||e!==r.EMPTY_OBJ&&(0,r.hasOwn)(e,a)||t!==r.EMPTY_OBJ&&(0,r.hasOwn)(t,a)||(l=s[0])&&(0,r.hasOwn)(l,a)||(0,r.hasOwn)(o,a)||(0,r.hasOwn)(so,a)||(0,r.hasOwn)(i.config.globalProperties,a)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:(0,r.hasOwn)(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};const lo=(0,r.extend)({},ao,{get(e,t){if(t!==Symbol.unscopables)return ao.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!(0,r.isGloballyWhitelisted)(t)});let co=!0;function uo(e){const t=ho(e),n=e.proxy,o=e.ctx;co=!1,t.beforeCreate&&po(t.beforeCreate,e,"bc");const{data:i,computed:s,methods:a,watch:l,provide:c,inject:u,created:d,beforeMount:p,mounted:f,beforeUpdate:h,updated:m,activated:v,deactivated:g,beforeDestroy:y,beforeUnmount:b,destroyed:_,unmounted:w,render:x,renderTracked:k,renderTriggered:E,errorCaptured:C,serverPrefetch:S,expose:O,inheritAttrs:T,components:V,directives:B,filters:M}=t;if(u&&function(e,t,n=r.NOOP,o=!1){(0,r.isArray)(e)&&(e=yo(e));for(const n in e){const i=e[n];let s;s=(0,r.isObject)(i)?"default"in i?en(i.from||n,i.default,!0):en(i.from||n):en(i),Fe(s)&&o?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e}):t[n]=s}}(u,o,null,e.appContext.config.unwrapInjectedRef),a)for(const e in a){const t=a[e];(0,r.isFunction)(t)&&(o[e]=t.bind(n))}if(i){0;const t=i.call(n,n);0,(0,r.isObject)(t)&&(e.data=we(t))}if(co=!0,s)for(const e in s){const t=s[e],i=(0,r.isFunction)(t)?t.bind(n,n):(0,r.isFunction)(t.get)?t.get.bind(n,n):r.NOOP;0;const a=!(0,r.isFunction)(t)&&(0,r.isFunction)(t.set)?t.set.bind(n):r.NOOP,l=Xr({get:i,set:a});Object.defineProperty(o,e,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e})}if(l)for(const e in l)fo(l[e],o,n,e);if(c){const e=(0,r.isFunction)(c)?c.call(n):c;Reflect.ownKeys(e).forEach((t=>{Xt(t,e[t])}))}function N(e,t){(0,r.isArray)(t)?t.forEach((t=>e(t.bind(n)))):t&&e(t.bind(n))}if(d&&po(d,e,"c"),N(Pn,p),N(Fn,f),N(Ln,h),N(Dn,m),N(On,v),N(Tn,g),N(Hn,C),N(zn,k),N($n,E),N(In,b),N(Rn,w),N(jn,S),(0,r.isArray)(O))if(O.length){const t=e.exposed||(e.exposed={});O.forEach((e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})}))}else e.exposed||(e.exposed={});x&&e.render===r.NOOP&&(e.render=x),null!=T&&(e.inheritAttrs=T),V&&(e.components=V),B&&(e.directives=B)}function po(e,t,n){nt((0,r.isArray)(e)?e.map((e=>e.bind(t.proxy))):e.bind(t.proxy),t,n)}function fo(e,t,n,o){const i=o.includes(".")?cn(n,o):()=>n[o];if((0,r.isString)(e)){const n=t[e];(0,r.isFunction)(n)&&sn(i,n)}else if((0,r.isFunction)(e))sn(i,e.bind(n));else if((0,r.isObject)(e))if((0,r.isArray)(e))e.forEach((e=>fo(e,t,n,o)));else{const o=(0,r.isFunction)(e.handler)?e.handler.bind(n):t[e.handler];(0,r.isFunction)(o)&&sn(i,o,e)}else 0}function ho(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:s}}=e.appContext,a=i.get(t);let l;return a?l=a:r.length||n||o?(l={},r.length&&r.forEach((e=>mo(l,e,s,!0))),mo(l,t,s)):l=t,i.set(t,l),l}function mo(e,t,n,o=!1){const{mixins:r,extends:i}=t;i&&mo(e,i,n,!0),r&&r.forEach((t=>mo(e,t,n,!0)));for(const r in t)if(o&&"expose"===r);else{const o=vo[r]||n&&n[r];e[r]=o?o(e[r],t[r]):t[r]}return e}const vo={data:go,props:_o,emits:_o,methods:_o,computed:_o,beforeCreate:bo,created:bo,beforeMount:bo,mounted:bo,beforeUpdate:bo,updated:bo,beforeDestroy:bo,beforeUnmount:bo,destroyed:bo,unmounted:bo,activated:bo,deactivated:bo,errorCaptured:bo,serverPrefetch:bo,components:_o,directives:_o,watch:function(e,t){if(!e)return t;if(!t)return e;const n=(0,r.extend)(Object.create(null),e);for(const o in t)n[o]=bo(e[o],t[o]);return n},provide:go,inject:function(e,t){return _o(yo(e),yo(t))}};function go(e,t){return t?e?function(){return(0,r.extend)((0,r.isFunction)(e)?e.call(this,this):e,(0,r.isFunction)(t)?t.call(this,this):t)}:t:e}function yo(e){if((0,r.isArray)(e)){const t={};for(let n=0;n{c=!0;const[n,o]=ko(e,t,!0);(0,r.extend)(a,n),o&&l.push(...o)};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}if(!s&&!c)return o.set(e,r.EMPTY_ARR),r.EMPTY_ARR;if((0,r.isArray)(s))for(let e=0;e-1,o[1]=n<0||e-1||(0,r.hasOwn)(o,"default"))&&l.push(t)}}}}const u=[a,l];return o.set(e,u),u}function Eo(e){return"$"!==e[0]}function Co(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:null===e?"null":""}function So(e,t){return Co(e)===Co(t)}function Oo(e,t){return(0,r.isArray)(t)?t.findIndex((t=>So(t,e))):(0,r.isFunction)(t)&&So(t,e)?0:-1}const To=e=>"_"===e[0]||"$stable"===e,Vo=e=>(0,r.isArray)(e)?e.map(Sr):[Sr(e)],Bo=(e,t,n)=>{if(t._n)return t;const o=It(((...e)=>Vo(t(...e))),n);return o._c=!1,o},Mo=(e,t,n)=>{const o=e._ctx;for(const n in e){if(To(n))continue;const i=e[n];if((0,r.isFunction)(i))t[n]=Bo(0,i,o);else if(null!=i){0;const e=Vo(i);t[n]=()=>e}}},No=(e,t)=>{const n=Vo(t);e.slots.default=()=>n};function Ao(){return{app:null,config:{isNativeTag:r.NO,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let qo=0;function Po(e,t){return function(n,o=null){(0,r.isFunction)(n)||(n=Object.assign({},n)),null==o||(0,r.isObject)(o)||(o=null);const i=Ao(),s=new Set;let a=!1;const l=i.app={_uid:qo++,_component:n,_props:o,_container:null,_context:i,_instance:null,version:vi,get config(){return i.config},set config(e){0},use:(e,...t)=>(s.has(e)||(e&&(0,r.isFunction)(e.install)?(s.add(e),e.install(l,...t)):(0,r.isFunction)(e)&&(s.add(e),e(l,...t))),l),mixin:e=>(i.mixins.includes(e)||i.mixins.push(e),l),component:(e,t)=>t?(i.components[e]=t,l):i.components[e],directive:(e,t)=>t?(i.directives[e]=t,l):i.directives[e],mount(r,s,c){if(!a){0;const u=br(n,o);return u.appContext=i,s&&t?t(u,r):e(u,r,c),a=!0,l._container=r,r.__vue_app__=l,Qr(u.component)||u.component.proxy}},unmount(){a&&(e(null,l._container),delete l._container.__vue_app__)},provide:(e,t)=>(i.provides[e]=t,l)};return l}}function Fo(e,t,n,o,i=!1){if((0,r.isArray)(e))return void e.forEach(((e,s)=>Fo(e,t&&((0,r.isArray)(t)?t[s]:t),n,o,i)));if(wn(o)&&!i)return;const s=4&o.shapeFlag?Qr(o.component)||o.component.proxy:o.el,a=i?null:s,{i:l,r:c}=e;const u=t&&t.r,d=l.refs===r.EMPTY_OBJ?l.refs={}:l.refs,p=l.setupState;if(null!=u&&u!==c&&((0,r.isString)(u)?(d[u]=null,(0,r.hasOwn)(p,u)&&(p[u]=null)):Fe(u)&&(u.value=null)),(0,r.isFunction)(c))tt(c,l,12,[a,d]);else{const t=(0,r.isString)(c),o=Fe(c);if(t||o){const l=()=>{if(e.f){const n=t?d[c]:c.value;i?(0,r.isArray)(n)&&(0,r.remove)(n,s):(0,r.isArray)(n)?n.includes(s)||n.push(s):t?(d[c]=[s],(0,r.hasOwn)(p,c)&&(p[c]=d[c])):(c.value=[s],e.k&&(d[e.k]=c.value))}else t?(d[c]=a,(0,r.hasOwn)(p,c)&&(p[c]=a)):o&&(c.value=a,e.k&&(d[e.k]=a))};a?(l.id=-1,jo(l,n)):l()}else 0}}let Lo=!1;const Do=e=>/svg/.test(e.namespaceURI)&&"foreignObject"!==e.tagName,Io=e=>8===e.nodeType;function Ro(e){const{mt:t,p:n,o:{patchProp:o,createText:i,nextSibling:s,parentNode:a,remove:l,insert:c,createComment:u}}=e,d=(n,o,r,l,u,g=!1)=>{const y=Io(n)&&"["===n.data,b=()=>m(n,o,r,l,u,y),{type:_,ref:w,shapeFlag:x,patchFlag:k}=o,E=n.nodeType;o.el=n,-2===k&&(g=!1,o.dynamicChildren=null);let C=null;switch(_){case Xo:3!==E?""===o.children?(c(o.el=i(""),a(n),n),C=n):C=b():(n.data!==o.children&&(Lo=!0,n.data=o.children),C=s(n));break;case er:C=8!==E||y?b():s(n);break;case tr:if(1===E||3===E){C=n;const e=!o.children.length;for(let t=0;t{a=a||!!t.dynamicChildren;const{type:c,props:u,patchFlag:d,shapeFlag:p,dirs:h}=t,m="input"===c&&h||"option"===c;if(m||-1!==d){if(h&&Kn(t,null,n,"created"),u)if(m||!a||48&d)for(const t in u)(m&&t.endsWith("value")||(0,r.isOn)(t)&&!(0,r.isReservedProp)(t))&&o(e,t,null,u[t],!1,void 0,n);else u.onClick&&o(e,"onClick",null,u.onClick,!1,void 0,n);let c;if((c=u&&u.onVnodeBeforeMount)&&Br(c,n,t),h&&Kn(t,null,n,"beforeMount"),((c=u&&u.onVnodeMounted)||h)&&Zt((()=>{c&&Br(c,n,t),h&&Kn(t,null,n,"mounted")}),i),16&p&&(!u||!u.innerHTML&&!u.textContent)){let o=f(e.firstChild,t,e,n,i,s,a);for(;o;){Lo=!0;const e=o;o=o.nextSibling,l(e)}}else 8&p&&e.textContent!==t.children&&(Lo=!0,e.textContent=t.children)}return e.nextSibling},f=(e,t,o,r,i,s,a)=>{a=a||!!t.dynamicChildren;const l=t.children,c=l.length;for(let t=0;t{const{slotScopeIds:l}=t;l&&(r=r?r.concat(l):l);const d=a(e),p=f(s(e),t,d,n,o,r,i);return p&&Io(p)&&"]"===p.data?s(t.anchor=p):(Lo=!0,c(t.anchor=u("]"),d,p),p)},m=(e,t,o,r,i,c)=>{if(Lo=!0,t.el=null,c){const t=v(e);for(;;){const n=s(e);if(!n||n===t)break;l(n)}}const u=s(e),d=a(e);return l(e),n(null,t,d,u,o,r,Do(d),i),u},v=e=>{let t=0;for(;e;)if((e=s(e))&&Io(e)&&("["===e.data&&t++,"]"===e.data)){if(0===t)return s(e);t--}return e};return[(e,t)=>{if(!t.hasChildNodes())return n(null,e,t),kt(),void(t._vnode=e);Lo=!1,d(t.firstChild,e,null,null,null),kt(),t._vnode=e,Lo&&console.error("Hydration completed but contains mismatches.")},d]}const jo=Zt;function $o(e){return Ho(e)}function zo(e){return Ho(e,Ro)}function Ho(e,t){(0,r.getGlobalThis)().__VUE__=!0;const{insert:n,remove:o,patchProp:i,createElement:s,createText:a,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:p,setScopeId:f=r.NOOP,cloneNode:h,insertStaticContent:m}=e,v=(e,t,n,o=null,r=null,i=null,s=!1,a=null,l=!!t.dynamicChildren)=>{if(e===t)return;e&&!fr(e,t)&&(o=W(e),$(e,r,i,!0),e=null),-2===t.patchFlag&&(l=!1,t.dynamicChildren=null);const{type:c,ref:u,shapeFlag:d}=t;switch(c){case Xo:g(e,t,n,o);break;case er:y(e,t,n,o);break;case tr:null==e&&b(t,n,o,s);break;case Jo:N(e,t,n,o,r,i,s,a,l);break;default:1&d?x(e,t,n,o,r,i,s,a,l):6&d?A(e,t,n,o,r,i,s,a,l):(64&d||128&d)&&c.process(e,t,n,o,r,i,s,a,l,Y)}null!=u&&r&&Fo(u,e&&e.ref,i,t||e,!t)},g=(e,t,o,r)=>{if(null==e)n(t.el=a(t.children),o,r);else{const n=t.el=e.el;t.children!==e.children&&c(n,t.children)}},y=(e,t,o,r)=>{null==e?n(t.el=l(t.children||""),o,r):t.el=e.el},b=(e,t,n,o)=>{[e.el,e.anchor]=m(e.children,t,n,o,e.el,e.anchor)},w=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=p(e),o(e),e=n;o(t)},x=(e,t,n,o,r,i,s,a,l)=>{s=s||"svg"===t.type,null==e?k(t,n,o,r,i,s,a,l):T(e,t,r,i,s,a,l)},k=(e,t,o,a,l,c,d,p)=>{let f,m;const{type:v,props:g,shapeFlag:y,transition:b,patchFlag:_,dirs:w}=e;if(e.el&&void 0!==h&&-1===_)f=e.el=h(e.el);else{if(f=e.el=s(e.type,c,g&&g.is,g),8&y?u(f,e.children):16&y&&C(e.children,f,null,a,l,c&&"foreignObject"!==v,d,p),w&&Kn(e,null,a,"created"),g){for(const t in g)"value"===t||(0,r.isReservedProp)(t)||i(f,t,null,g[t],c,e.children,a,l,K);"value"in g&&i(f,"value",null,g.value),(m=g.onVnodeBeforeMount)&&Br(m,a,e)}E(f,e,e.scopeId,d,a)}w&&Kn(e,null,a,"beforeMount");const x=(!l||l&&!l.pendingBranch)&&b&&!b.persisted;x&&b.beforeEnter(f),n(f,t,o),((m=g&&g.onVnodeMounted)||x||w)&&jo((()=>{m&&Br(m,a,e),x&&b.enter(f),w&&Kn(e,null,a,"mounted")}),l)},E=(e,t,n,o,r)=>{if(n&&f(e,n),o)for(let t=0;t{for(let c=l;c{const c=t.el=e.el;let{patchFlag:d,dynamicChildren:p,dirs:f}=t;d|=16&e.patchFlag;const h=e.props||r.EMPTY_OBJ,m=t.props||r.EMPTY_OBJ;let v;n&&Uo(n,!1),(v=m.onVnodeBeforeUpdate)&&Br(v,n,t,e),f&&Kn(t,e,n,"beforeUpdate"),n&&Uo(n,!0);const g=s&&"foreignObject"!==t.type;if(p?V(e.dynamicChildren,p,c,n,o,g,a):l||D(e,t,c,null,n,o,g,a,!1),d>0){if(16&d)M(c,t,h,m,n,o,s);else if(2&d&&h.class!==m.class&&i(c,"class",null,m.class,s),4&d&&i(c,"style",h.style,m.style,s),8&d){const r=t.dynamicProps;for(let t=0;t{v&&Br(v,n,t,e),f&&Kn(t,e,n,"updated")}),o)},V=(e,t,n,o,r,i,s)=>{for(let a=0;a{if(n!==o){for(const c in o){if((0,r.isReservedProp)(c))continue;const u=o[c],d=n[c];u!==d&&"value"!==c&&i(e,c,d,u,l,t.children,s,a,K)}if(n!==r.EMPTY_OBJ)for(const c in n)(0,r.isReservedProp)(c)||c in o||i(e,c,n[c],null,l,t.children,s,a,K);"value"in o&&i(e,"value",n.value,o.value)}},N=(e,t,o,r,i,s,l,c,u)=>{const d=t.el=e?e.el:a(""),p=t.anchor=e?e.anchor:a("");let{patchFlag:f,dynamicChildren:h,slotScopeIds:m}=t;m&&(c=c?c.concat(m):m),null==e?(n(d,o,r),n(p,o,r),C(t.children,o,p,i,s,l,c,u)):f>0&&64&f&&h&&e.dynamicChildren?(V(e.dynamicChildren,h,o,i,s,l,c),(null!=t.key||i&&t===i.subTree)&&Ko(e,t,!0)):D(e,t,o,p,i,s,l,c,u)},A=(e,t,n,o,r,i,s,a,l)=>{t.slotScopeIds=a,null==e?512&t.shapeFlag?r.ctx.activate(t,n,o,s,l):q(t,n,o,r,i,s,l):P(e,t,l)},q=(e,t,n,o,r,i,s)=>{const a=e.component=Ar(e,o,r);if(En(e)&&(a.ctx.renderer=Y),$r(a),a.asyncDep){if(r&&r.registerDep(a,F),!e.el){const e=a.subTree=br(er);y(null,e,t,n)}}else F(a,e,t,n,r,i,s)},P=(e,t,n)=>{const o=t.component=e.component;if(function(e,t,n){const{props:o,children:r,component:i}=e,{props:s,children:a,patchFlag:l}=t,c=i.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&l>=0))return!(!r&&!a||a&&a.$stable)||o!==s&&(o?!s||Ht(o,s,c):!!s);if(1024&l)return!0;if(16&l)return o?Ht(o,s,c):!!s;if(8&l){const e=t.dynamicProps;for(let t=0;tat&&st.splice(t,1)}(o.update),o.update()}else t.el=e.el,o.vnode=t},F=(e,t,n,o,i,s,a)=>{const l=e.effect=new _((()=>{if(e.isMounted){let t,{next:n,bu:o,u:l,parent:c,vnode:u}=e,p=n;0,Uo(e,!1),n?(n.el=u.el,L(e,n,a)):n=u,o&&(0,r.invokeArrayFns)(o),(t=n.props&&n.props.onVnodeBeforeUpdate)&&Br(t,c,n,u),Uo(e,!0);const f=Rt(e);0;const h=e.subTree;e.subTree=f,v(h,f,d(h.el),W(h),e,i,s),n.el=f.el,null===p&&Ut(e,f.el),l&&jo(l,i),(t=n.props&&n.props.onVnodeUpdated)&&jo((()=>Br(t,c,n,u)),i)}else{let a;const{el:l,props:c}=t,{bm:u,m:d,parent:p}=e,f=wn(t);if(Uo(e,!1),u&&(0,r.invokeArrayFns)(u),!f&&(a=c&&c.onVnodeBeforeMount)&&Br(a,p,t),Uo(e,!0),l&&Z){const n=()=>{e.subTree=Rt(e),Z(l,e.subTree,e,i,null)};f?t.type.__asyncLoader().then((()=>!e.isUnmounted&&n())):n()}else{0;const r=e.subTree=Rt(e);0,v(null,r,n,o,e,i,s),t.el=r.el}if(d&&jo(d,i),!f&&(a=c&&c.onVnodeMounted)){const e=t;jo((()=>Br(a,p,e)),i)}(256&t.shapeFlag||p&&wn(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&jo(e.a,i),e.isMounted=!0,t=n=o=null}}),(()=>yt(c)),e.scope),c=e.update=()=>l.run();c.id=e.uid,Uo(e,!0),c()},L=(e,t,n)=>{t.component=e;const o=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,o){const{props:i,attrs:s,vnode:{patchFlag:a}}=e,l=Be(i),[c]=e.propsOptions;let u=!1;if(!(o||a>0)||16&a){let o;wo(e,t,i,s)&&(u=!0);for(const s in l)t&&((0,r.hasOwn)(t,s)||(o=(0,r.hyphenate)(s))!==s&&(0,r.hasOwn)(t,o))||(c?!n||void 0===n[s]&&void 0===n[o]||(i[s]=xo(c,l,s,void 0,e,!0)):delete i[s]);if(s!==l)for(const e in s)t&&(0,r.hasOwn)(t,e)||(delete s[e],u=!0)}else if(8&a){const n=e.vnode.dynamicProps;for(let o=0;o{const{vnode:o,slots:i}=e;let s=!0,a=r.EMPTY_OBJ;if(32&o.shapeFlag){const e=t._;e?n&&1===e?s=!1:((0,r.extend)(i,t),n||1!==e||delete i._):(s=!t.$stable,Mo(t,i)),a=t}else t&&(No(e,t),a={default:1});if(s)for(const e in i)To(e)||e in a||delete i[e]})(e,t.children,n),S(),xt(void 0,e.update),O()},D=(e,t,n,o,r,i,s,a,l=!1)=>{const c=e&&e.children,d=e?e.shapeFlag:0,p=t.children,{patchFlag:f,shapeFlag:h}=t;if(f>0){if(128&f)return void R(c,p,n,o,r,i,s,a,l);if(256&f)return void I(c,p,n,o,r,i,s,a,l)}8&h?(16&d&&K(c,r,i),p!==c&&u(n,p)):16&d?16&h?R(c,p,n,o,r,i,s,a,l):K(c,r,i,!0):(8&d&&u(n,""),16&h&&C(p,n,o,r,i,s,a,l))},I=(e,t,n,o,i,s,a,l,c)=>{e=e||r.EMPTY_ARR,t=t||r.EMPTY_ARR;const u=e.length,d=t.length,p=Math.min(u,d);let f;for(f=0;fd?K(e,i,s,!0,!1,p):C(t,n,o,i,s,a,l,c,p)},R=(e,t,n,o,i,s,a,l,c)=>{let u=0;const d=t.length;let p=e.length-1,f=d-1;for(;u<=p&&u<=f;){const o=e[u],r=t[u]=c?Or(t[u]):Sr(t[u]);if(!fr(o,r))break;v(o,r,n,null,i,s,a,l,c),u++}for(;u<=p&&u<=f;){const o=e[p],r=t[f]=c?Or(t[f]):Sr(t[f]);if(!fr(o,r))break;v(o,r,n,null,i,s,a,l,c),p--,f--}if(u>p){if(u<=f){const e=f+1,r=ef)for(;u<=p;)$(e[u],i,s,!0),u++;else{const h=u,m=u,g=new Map;for(u=m;u<=f;u++){const e=t[u]=c?Or(t[u]):Sr(t[u]);null!=e.key&&g.set(e.key,u)}let y,b=0;const _=f-m+1;let w=!1,x=0;const k=new Array(_);for(u=0;u<_;u++)k[u]=0;for(u=h;u<=p;u++){const o=e[u];if(b>=_){$(o,i,s,!0);continue}let r;if(null!=o.key)r=g.get(o.key);else for(y=m;y<=f;y++)if(0===k[y-m]&&fr(o,t[y])){r=y;break}void 0===r?$(o,i,s,!0):(k[r-m]=u+1,r>=x?x=r:w=!0,v(o,t[r],n,null,i,s,a,l,c),b++)}const E=w?function(e){const t=e.slice(),n=[0];let o,r,i,s,a;const l=e.length;for(o=0;o>1,e[n[a]]0&&(t[o]=n[i-1]),n[i]=o)}}i=n.length,s=n[i-1];for(;i-- >0;)n[i]=s,s=t[s];return n}(k):r.EMPTY_ARR;for(y=E.length-1,u=_-1;u>=0;u--){const e=m+u,r=t[e],p=e+1{const{el:s,type:a,transition:l,children:c,shapeFlag:u}=e;if(6&u)return void j(e.component.subTree,t,o,r);if(128&u)return void e.suspense.move(t,o,r);if(64&u)return void a.move(e,t,o,Y);if(a===Jo){n(s,t,o);for(let e=0;e{let i;for(;e&&e!==t;)i=p(e),n(e,o,r),e=i;n(t,o,r)})(e,t,o);if(2!==r&&1&u&&l)if(0===r)l.beforeEnter(s),n(s,t,o),jo((()=>l.enter(s)),i);else{const{leave:e,delayLeave:r,afterLeave:i}=l,a=()=>n(s,t,o),c=()=>{e(s,(()=>{a(),i&&i()}))};r?r(s,a,c):c()}else n(s,t,o)},$=(e,t,n,o=!1,r=!1)=>{const{type:i,props:s,ref:a,children:l,dynamicChildren:c,shapeFlag:u,patchFlag:d,dirs:p}=e;if(null!=a&&Fo(a,null,n,e,!0),256&u)return void t.ctx.deactivate(e);const f=1&u&&p,h=!wn(e);let m;if(h&&(m=s&&s.onVnodeBeforeUnmount)&&Br(m,t,e),6&u)U(e.component,n,o);else{if(128&u)return void e.suspense.unmount(n,o);f&&Kn(e,null,t,"beforeUnmount"),64&u?e.type.remove(e,t,n,r,Y,o):c&&(i!==Jo||d>0&&64&d)?K(c,t,n,!1,!0):(i===Jo&&384&d||!r&&16&u)&&K(l,t,n),o&&z(e)}(h&&(m=s&&s.onVnodeUnmounted)||f)&&jo((()=>{m&&Br(m,t,e),f&&Kn(e,null,t,"unmounted")}),n)},z=e=>{const{type:t,el:n,anchor:r,transition:i}=e;if(t===Jo)return void H(n,r);if(t===tr)return void w(e);const s=()=>{o(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){const{leave:t,delayLeave:o}=i,r=()=>t(n,s);o?o(e.el,s,r):r()}else s()},H=(e,t)=>{let n;for(;e!==t;)n=p(e),o(e),e=n;o(t)},U=(e,t,n)=>{const{bum:o,scope:i,update:s,subTree:a,um:l}=e;o&&(0,r.invokeArrayFns)(o),i.stop(),s&&(s.active=!1,$(a,e,t,n)),l&&jo(l,t),jo((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},K=(e,t,n,o=!1,r=!1,i=0)=>{for(let s=i;s6&e.shapeFlag?W(e.component.subTree):128&e.shapeFlag?e.suspense.next():p(e.anchor||e.el),Q=(e,t,n)=>{null==e?t._vnode&&$(t._vnode,null,null,!0):v(t._vnode||null,e,t,null,null,null,n),kt(),t._vnode=e},Y={p:v,um:$,m:j,r:z,mt:q,mc:C,pc:D,pbc:V,n:W,o:e};let G,Z;return t&&([G,Z]=t(Y)),{render:Q,hydrate:G,createApp:Po(Q,G)}}function Uo({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Ko(e,t,n=!1){const o=e.children,i=t.children;if((0,r.isArray)(o)&&(0,r.isArray)(i))for(let e=0;ee&&(e.disabled||""===e.disabled),Qo=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,Yo=(e,t)=>{const n=e&&e.to;if((0,r.isString)(n)){if(t){const e=t(n);return e}return null}return n};function Go(e,t,n,{o:{insert:o},m:r},i=2){0===i&&o(e.targetAnchor,t,n);const{el:s,anchor:a,shapeFlag:l,children:c,props:u}=e,d=2===i;if(d&&o(s,t,n),(!d||Wo(u))&&16&l)for(let e=0;e{16&y&&u(b,e,t,r,i,s,a,l)};g?v(n,c):d&&v(d,p)}else{t.el=e.el;const o=t.anchor=e.anchor,u=t.target=e.target,f=t.targetAnchor=e.targetAnchor,m=Wo(e.props),v=m?n:u,y=m?o:f;if(s=s||Qo(u),_?(p(e.dynamicChildren,_,v,r,i,s,a),Ko(e,t,!0)):l||d(e,t,v,y,r,i,s,a,!1),g)m||Go(t,n,o,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=Yo(t.props,h);e&&Go(t,e,null,c,0)}else m&&Go(t,u,f,c,1)}},remove(e,t,n,o,{um:r,o:{remove:i}},s){const{shapeFlag:a,children:l,anchor:c,targetAnchor:u,target:d,props:p}=e;if(d&&i(u),(s||!Wo(p))&&(i(c),16&a))for(let e=0;e0?or||r.EMPTY_ARR:null,ir(),ar>0&&or&&or.push(e),e}function ur(e,t,n,o,r,i){return cr(yr(e,t,n,o,r,i,!0))}function dr(e,t,n,o,r){return cr(br(e,t,n,o,r,!0))}function pr(e){return!!e&&!0===e.__v_isVNode}function fr(e,t){return e.type===t.type&&e.key===t.key}function hr(e){sr=e}const mr="__vInternal",vr=({key:e})=>null!=e?e:null,gr=({ref:e,ref_key:t,ref_for:n})=>null!=e?(0,r.isString)(e)||Fe(e)||(0,r.isFunction)(e)?{i:At,r:e,k:t,f:!!n}:e:null;function yr(e,t=null,n=null,o=0,i=null,s=(e===Jo?0:1),a=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&vr(t),ref:t&&gr(t),scopeId:qt,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:i,dynamicChildren:null,appContext:null};return l?(Tr(c,n),128&s&&e.normalize(c)):n&&(c.shapeFlag|=(0,r.isString)(n)?8:16),ar>0&&!a&&or&&(c.patchFlag>0||6&s)&&32!==c.patchFlag&&or.push(c),c}const br=_r;function _r(e,t=null,n=null,o=0,i=null,s=!1){if(e&&e!==Yn||(e=er),pr(e)){const o=xr(e,t,!0);return n&&Tr(o,n),ar>0&&!s&&or&&(6&o.shapeFlag?or[or.indexOf(e)]=o:or.push(o)),o.patchFlag|=-2,o}if(Jr(e)&&(e=e.__vccOpts),t){t=wr(t);let{class:e,style:n}=t;e&&!(0,r.isString)(e)&&(t.class=(0,r.normalizeClass)(e)),(0,r.isObject)(n)&&(Ve(n)&&!(0,r.isArray)(n)&&(n=(0,r.extend)({},n)),t.style=(0,r.normalizeStyle)(n))}return yr(e,t,n,o,i,(0,r.isString)(e)?1:Kt(e)?128:(e=>e.__isTeleport)(e)?64:(0,r.isObject)(e)?4:(0,r.isFunction)(e)?2:0,s,!0)}function wr(e){return e?Ve(e)||mr in e?(0,r.extend)({},e):e:null}function xr(e,t,n=!1){const{props:o,ref:i,patchFlag:s,children:a}=e,l=t?Vr(o||{},t):o;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&vr(l),ref:t&&t.ref?n&&i?(0,r.isArray)(i)?i.concat(gr(t)):[i,gr(t)]:gr(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Jo?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&xr(e.ssContent),ssFallback:e.ssFallback&&xr(e.ssFallback),el:e.el,anchor:e.anchor}}function kr(e=" ",t=0){return br(Xo,null,e,t)}function Er(e,t){const n=br(tr,null,e);return n.staticCount=t,n}function Cr(e="",t=!1){return t?(rr(),dr(er,null,e)):br(er,null,e)}function Sr(e){return null==e||"boolean"==typeof e?br(er):(0,r.isArray)(e)?br(Jo,null,e.slice()):"object"==typeof e?Or(e):br(Xo,null,String(e))}function Or(e){return null===e.el||e.memo?e:xr(e)}function Tr(e,t){let n=0;const{shapeFlag:o}=e;if(null==t)t=null;else if((0,r.isArray)(t))n=16;else if("object"==typeof t){if(65&o){const n=t.default;return void(n&&(n._c&&(n._d=!1),Tr(e,n()),n._c&&(n._d=!0)))}{n=32;const o=t._;o||mr in t?3===o&&At&&(1===At.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=At}}else(0,r.isFunction)(t)?(t={default:t,_ctx:At},n=32):(t=String(t),64&o?(n=16,t=[kr(t)]):n=8);e.children=t,e.shapeFlag|=n}function Vr(...e){const t={};for(let n=0;nqr||At,Fr=e=>{qr=e,e.scope.on()},Lr=()=>{qr&&qr.scope.off(),qr=null};function Dr(e){return 4&e.vnode.shapeFlag}let Ir,Rr,jr=!1;function $r(e,t=!1){jr=t;const{props:n,children:o}=e.vnode,i=Dr(e);!function(e,t,n,o=!1){const i={},s={};(0,r.def)(s,mr,1),e.propsDefaults=Object.create(null),wo(e,t,i,s);for(const t in e.propsOptions[0])t in i||(i[t]=void 0);n?e.props=o?i:xe(i):e.type.props?e.props=i:e.props=s,e.attrs=s}(e,n,i,t),((e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=Be(t),(0,r.def)(t,"_",n)):Mo(t,e.slots={})}else e.slots={},t&&No(e,t);(0,r.def)(e.slots,mr,1)})(e,o);const s=i?function(e,t){const n=e.type;0;e.accessCache=Object.create(null),e.proxy=Me(new Proxy(e.ctx,ao)),!1;const{setup:o}=n;if(o){const n=e.setupContext=o.length>1?Wr(e):null;Fr(e),S();const i=tt(o,e,0,[e.props,n]);if(O(),Lr(),(0,r.isPromise)(i)){if(i.then(Lr,Lr),t)return i.then((n=>{zr(e,n,t)})).catch((t=>{ot(t,e,0)}));e.asyncDep=i}else zr(e,i,t)}else Kr(e,t)}(e,t):void 0;return jr=!1,s}function zr(e,t,n){(0,r.isFunction)(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:(0,r.isObject)(t)&&(e.setupState=He(t)),Kr(e,n)}function Hr(e){Ir=e,Rr=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,lo))}}const Ur=()=>!Ir;function Kr(e,t,n){const o=e.type;if(!e.render){if(!t&&Ir&&!o.render){const t=o.template;if(t){0;const{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:s,compilerOptions:a}=o,l=(0,r.extend)((0,r.extend)({isCustomElement:n,delimiters:s},i),a);o.render=Ir(t,l)}}e.render=o.render||r.NOOP,Rr&&Rr(e)}Fr(e),S(),uo(e),O(),Lr()}function Wr(e){const t=t=>{e.exposed=t||{}};let n;return{get attrs(){return n||(n=function(e){return new Proxy(e.attrs,{get:(t,n)=>(T(e,0,"$attrs"),t[n])})}(e))},slots:e.slots,emit:e.emit,expose:t}}function Qr(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(He(Me(e.exposed)),{get:(t,n)=>n in t?t[n]:n in so?so[n](e):void 0}))}const Yr=/(?:^|[-_])(\w)/g;function Gr(e,t=!0){return(0,r.isFunction)(e)?e.displayName||e.name:e.name||t&&e.__name}function Zr(e,t,n=!1){let o=Gr(t);if(!o&&t.__file){const e=t.__file.match(/([^/\\]+)\.\w+$/);e&&(o=e[1])}if(!o&&e&&e.parent){const n=e=>{for(const n in e)if(e[n]===t)return n};o=n(e.components||e.parent.type.components)||n(e.appContext.components)}return o?o.replace(Yr,(e=>e.toUpperCase())).replace(/[-_]/g,""):n?"App":"Anonymous"}function Jr(e){return(0,r.isFunction)(e)&&"__vccOpts"in e}const Xr=(e,t)=>function(e,t,n=!1){let o,i;const s=(0,r.isFunction)(e);return s?(o=e,i=r.NOOP):(o=e.get,i=e.set),new Ge(o,i,s||!i,n)}(e,0,jr);function ei(){return null}function ti(){return null}function ni(e){0}function oi(e,t){return null}function ri(){return si().slots}function ii(){return si().attrs}function si(){const e=Pr();return e.setupContext||(e.setupContext=Wr(e))}function ai(e,t){const n=(0,r.isArray)(e)?e.reduce(((e,t)=>(e[t]={},e)),{}):e;for(const e in t){const o=n[e];o?(0,r.isArray)(o)||(0,r.isFunction)(o)?n[e]={type:o,default:t[e]}:o.default=t[e]:null===o&&(n[e]={default:t[e]})}return n}function li(e,t){const n={};for(const o in e)t.includes(o)||Object.defineProperty(n,o,{enumerable:!0,get:()=>e[o]});return n}function ci(e){const t=Pr();let n=e();return Lr(),(0,r.isPromise)(n)&&(n=n.catch((e=>{throw Fr(t),e}))),[n,()=>Fr(t)]}function ui(e,t,n){const o=arguments.length;return 2===o?(0,r.isObject)(t)&&!(0,r.isArray)(t)?pr(t)?br(e,null,[t]):br(e,t):br(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):3===o&&pr(n)&&(n=[n]),br(e,t,n))}const di=Symbol(""),pi=()=>{{const e=en(di);return e||Je("Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build."),e}};function fi(){return void 0}function hi(e,t,n,o){const r=n[o];if(r&&mi(r,e))return r;const i=t();return i.memo=e.slice(),n[o]=i}function mi(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e0&&or&&or.push(e),!0}const vi="3.2.37",gi={createComponentInstance:Ar,setupComponent:$r,renderComponentRoot:Rt,setCurrentRenderingInstance:Pt,isVNode:pr,normalizeVNode:Sr},yi=null,bi=null,_i="undefined"!=typeof document?document:null,wi=_i&&_i.createElement("template"),xi={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t?_i.createElementNS("http://www.w3.org/2000/svg",e):_i.createElement(e,n?{is:n}:void 0);return"select"===e&&o&&null!=o.multiple&&r.setAttribute("multiple",o.multiple),r},createText:e=>_i.createTextNode(e),createComment:e=>_i.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>_i.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,o,r,i){const s=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),r!==i&&(r=r.nextSibling););else{wi.innerHTML=o?`${e}`:e;const r=wi.content;if(o){const e=r.firstChild;for(;e.firstChild;)r.appendChild(e.firstChild);r.removeChild(e)}t.insertBefore(r,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};const ki=/\s*!important$/;function Ei(e,t,n){if((0,r.isArray)(n))n.forEach((n=>Ei(e,t,n)));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=function(e,t){const n=Si[t];if(n)return n;let o=(0,r.camelize)(t);if("filter"!==o&&o in e)return Si[t]=o;o=(0,r.capitalize)(o);for(let n=0;n{let e=Date.now,t=!1;if("undefined"!=typeof window){Date.now()>document.createEvent("Event").timeStamp&&(e=performance.now.bind(performance));const n=navigator.userAgent.match(/firefox\/(\d+)/i);t=!!(n&&Number(n[1])<=53)}return[e,t]})();let Bi=0;const Mi=Promise.resolve(),Ni=()=>{Bi=0};function Ai(e,t,n,o){e.addEventListener(t,n,o)}function qi(e,t,n,o,i=null){const s=e._vei||(e._vei={}),a=s[t];if(o&&a)a.value=o;else{const[n,l]=function(e){let t;if(Pi.test(e)){let n;for(t={};n=e.match(Pi);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[(0,r.hyphenate)(e.slice(2)),t]}(t);if(o){const a=s[t]=function(e,t){const n=e=>{const o=e.timeStamp||Ti();(Vi||o>=n.attached-1)&&nt(function(e,t){if((0,r.isArray)(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e&&e(t)))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=(()=>Bi||(Mi.then(Ni),Bi=Ti()))(),n}(o,i);Ai(e,n,a,l)}else a&&(!function(e,t,n,o){e.removeEventListener(t,n,o)}(e,n,a,l),s[t]=void 0)}}const Pi=/(?:Once|Passive|Capture)$/;const Fi=/^on[a-z]/;function Li(e,t){const n=_n(e);class o extends Ri{constructor(e){super(n,e,t)}}return o.def=n,o}const Di=e=>Li(e,$s),Ii="undefined"!=typeof HTMLElement?HTMLElement:class{};class Ri extends Ii{constructor(e,t={},n){super(),this._def=e,this._props=t,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&n?n(this._createVNode(),this.shadowRoot):this.attachShadow({mode:"open"})}connectedCallback(){this._connected=!0,this._instance||this._resolveDef()}disconnectedCallback(){this._connected=!1,gt((()=>{this._connected||(js(null,this.shadowRoot),this._instance=null)}))}_resolveDef(){if(this._resolved)return;this._resolved=!0;for(let e=0;e{for(const t of e)this._setAttr(t.attributeName)})).observe(this,{attributes:!0});const e=e=>{const{props:t,styles:n}=e,o=!(0,r.isArray)(t),i=t?o?Object.keys(t):t:[];let s;if(o)for(const e in this._props){const n=t[e];(n===Number||n&&n.type===Number)&&(this._props[e]=(0,r.toNumber)(this._props[e]),(s||(s=Object.create(null)))[e]=!0)}this._numberProps=s;for(const e of Object.keys(this))"_"!==e[0]&&this._setProp(e,this[e],!0,!1);for(const e of i.map(r.camelize))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t)}});this._applyStyles(n),this._update()},t=this._def.__asyncLoader;t?t().then(e):e(this._def)}_setAttr(e){let t=this.getAttribute(e);this._numberProps&&this._numberProps[e]&&(t=(0,r.toNumber)(t)),this._setProp((0,r.camelize)(e),t,!1)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,o=!0){t!==this._props[e]&&(this._props[e]=t,o&&this._instance&&this._update(),n&&(!0===t?this.setAttribute((0,r.hyphenate)(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute((0,r.hyphenate)(e),t+""):t||this.removeAttribute((0,r.hyphenate)(e))))}_update(){js(this._createVNode(),this.shadowRoot)}_createVNode(){const e=br(this._def,(0,r.extend)({},this._props));return this._instance||(e.ce=e=>{this._instance=e,e.isCE=!0,e.emit=(e,...t)=>{this.dispatchEvent(new CustomEvent(e,{detail:t}))};let t=this;for(;t=t&&(t.parentNode||t.host);)if(t instanceof Ri){e.parent=t._instance;break}}),e}_applyStyles(e){e&&e.forEach((e=>{const t=document.createElement("style");t.textContent=e,this.shadowRoot.appendChild(t)}))}}function ji(e="$style"){{const t=Pr();if(!t)return r.EMPTY_OBJ;const n=t.type.__cssModules;if(!n)return r.EMPTY_OBJ;const o=n[e];return o||r.EMPTY_OBJ}}function $i(e){const t=Pr();if(!t)return;const n=()=>zi(t.subTree,e(t.proxy));nn(n),Fn((()=>{const e=new MutationObserver(n);e.observe(t.subTree.el.parentNode,{childList:!0}),Rn((()=>e.disconnect()))}))}function zi(e,t){if(128&e.shapeFlag){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push((()=>{zi(n.activeBranch,t)}))}for(;e.component;)e=e.component.subTree;if(1&e.shapeFlag&&e.el)Hi(e.el,t);else if(e.type===Jo)e.children.forEach((e=>zi(e,t)));else if(e.type===tr){let{el:n,anchor:o}=e;for(;n&&(Hi(n,t),n!==o);)n=n.nextSibling}}function Hi(e,t){if(1===e.nodeType){const n=e.style;for(const e in t)n.setProperty(`--${e}`,t[e])}}const Ui="transition",Ki="animation",Wi=(e,{slots:t})=>ui(fn,Ji(e),t);Wi.displayName="Transition";const Qi={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Yi=Wi.props=(0,r.extend)({},fn.props,Qi),Gi=(e,t=[])=>{(0,r.isArray)(e)?e.forEach((e=>e(...t))):e&&e(...t)},Zi=e=>!!e&&((0,r.isArray)(e)?e.some((e=>e.length>1)):e.length>1);function Ji(e){const t={};for(const n in e)n in Qi||(t[n]=e[n]);if(!1===e.css)return t;const{name:n="v",type:o,duration:i,enterFromClass:s=`${n}-enter-from`,enterActiveClass:a=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=s,appearActiveClass:u=a,appearToClass:d=l,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,m=function(e){if(null==e)return null;if((0,r.isObject)(e))return[Xi(e.enter),Xi(e.leave)];{const t=Xi(e);return[t,t]}}(i),v=m&&m[0],g=m&&m[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:w,onLeaveCancelled:x,onBeforeAppear:k=y,onAppear:E=b,onAppearCancelled:C=_}=t,S=(e,t,n)=>{ts(e,t?d:l),ts(e,t?u:a),n&&n()},O=(e,t)=>{e._isLeaving=!1,ts(e,p),ts(e,h),ts(e,f),t&&t()},T=e=>(t,n)=>{const r=e?E:b,i=()=>S(t,e,n);Gi(r,[t,i]),ns((()=>{ts(t,e?c:s),es(t,e?d:l),Zi(r)||rs(t,o,v,i)}))};return(0,r.extend)(t,{onBeforeEnter(e){Gi(y,[e]),es(e,s),es(e,a)},onBeforeAppear(e){Gi(k,[e]),es(e,c),es(e,u)},onEnter:T(!1),onAppear:T(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>O(e,t);es(e,p),ls(),es(e,f),ns((()=>{e._isLeaving&&(ts(e,p),es(e,h),Zi(w)||rs(e,o,g,n))})),Gi(w,[e,n])},onEnterCancelled(e){S(e,!1),Gi(_,[e])},onAppearCancelled(e){S(e,!0),Gi(C,[e])},onLeaveCancelled(e){O(e),Gi(x,[e])}})}function Xi(e){return(0,r.toNumber)(e)}function es(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e._vtc||(e._vtc=new Set)).add(t)}function ts(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function ns(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let os=0;function rs(e,t,n,o){const r=e._endId=++os,i=()=>{r===e._endId&&o()};if(n)return setTimeout(i,n);const{type:s,timeout:a,propCount:l}=is(e,t);if(!s)return o();const c=s+"end";let u=0;const d=()=>{e.removeEventListener(c,p),i()},p=t=>{t.target===e&&++u>=l&&d()};setTimeout((()=>{u(n[e]||"").split(", "),r=o("transitionDelay"),i=o("transitionDuration"),s=ss(r,i),a=o("animationDelay"),l=o("animationDuration"),c=ss(a,l);let u=null,d=0,p=0;t===Ui?s>0&&(u=Ui,d=s,p=i.length):t===Ki?c>0&&(u=Ki,d=c,p=l.length):(d=Math.max(s,c),u=d>0?s>c?Ui:Ki:null,p=u?u===Ui?i.length:l.length:0);return{type:u,timeout:d,propCount:p,hasTransform:u===Ui&&/\b(transform|all)(,|$)/.test(n.transitionProperty)}}function ss(e,t){for(;e.lengthas(t)+as(e[n]))))}function as(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function ls(){return document.body.offsetHeight}const cs=new WeakMap,us=new WeakMap,ds={name:"TransitionGroup",props:(0,r.extend)({},Yi,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Pr(),o=dn();let r,i;return Dn((()=>{if(!r.length)return;const t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){const o=e.cloneNode();e._vtc&&e._vtc.forEach((e=>{e.split(/\s+/).forEach((e=>e&&o.classList.remove(e)))}));n.split(/\s+/).forEach((e=>e&&o.classList.add(e))),o.style.display="none";const r=1===t.nodeType?t:t.parentNode;r.appendChild(o);const{hasTransform:i}=is(o);return r.removeChild(o),i}(r[0].el,n.vnode.el,t))return;r.forEach(ps),r.forEach(fs);const o=r.filter(hs);ls(),o.forEach((e=>{const n=e.el,o=n.style;es(n,t),o.transform=o.webkitTransform=o.transitionDuration="";const r=n._moveCb=e=>{e&&e.target!==n||e&&!/transform$/.test(e.propertyName)||(n.removeEventListener("transitionend",r),n._moveCb=null,ts(n,t))};n.addEventListener("transitionend",r)}))})),()=>{const s=Be(e),a=Ji(s);let l=s.tag||Jo;r=i,i=t.default?bn(t.default()):[];for(let e=0;e{const t=e.props["onUpdate:modelValue"]||!1;return(0,r.isArray)(t)?e=>(0,r.invokeArrayFns)(t,e):t};function vs(e){e.target.composing=!0}function gs(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ys={created(e,{modifiers:{lazy:t,trim:n,number:o}},i){e._assign=ms(i);const s=o||i.props&&"number"===i.props.type;Ai(e,t?"change":"input",(t=>{if(t.target.composing)return;let o=e.value;n&&(o=o.trim()),s&&(o=(0,r.toNumber)(o)),e._assign(o)})),n&&Ai(e,"change",(()=>{e.value=e.value.trim()})),t||(Ai(e,"compositionstart",vs),Ai(e,"compositionend",gs),Ai(e,"change",gs))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:o,number:i}},s){if(e._assign=ms(s),e.composing)return;if(document.activeElement===e&&"range"!==e.type){if(n)return;if(o&&e.value.trim()===t)return;if((i||"number"===e.type)&&(0,r.toNumber)(e.value)===t)return}const a=null==t?"":t;e.value!==a&&(e.value=a)}},bs={deep:!0,created(e,t,n){e._assign=ms(n),Ai(e,"change",(()=>{const t=e._modelValue,n=Es(e),o=e.checked,i=e._assign;if((0,r.isArray)(t)){const e=(0,r.looseIndexOf)(t,n),s=-1!==e;if(o&&!s)i(t.concat(n));else if(!o&&s){const n=[...t];n.splice(e,1),i(n)}}else if((0,r.isSet)(t)){const e=new Set(t);o?e.add(n):e.delete(n),i(e)}else i(Cs(e,o))}))},mounted:_s,beforeUpdate(e,t,n){e._assign=ms(n),_s(e,t,n)}};function _s(e,{value:t,oldValue:n},o){e._modelValue=t,(0,r.isArray)(t)?e.checked=(0,r.looseIndexOf)(t,o.props.value)>-1:(0,r.isSet)(t)?e.checked=t.has(o.props.value):t!==n&&(e.checked=(0,r.looseEqual)(t,Cs(e,!0)))}const ws={created(e,{value:t},n){e.checked=(0,r.looseEqual)(t,n.props.value),e._assign=ms(n),Ai(e,"change",(()=>{e._assign(Es(e))}))},beforeUpdate(e,{value:t,oldValue:n},o){e._assign=ms(o),t!==n&&(e.checked=(0,r.looseEqual)(t,o.props.value))}},xs={deep:!0,created(e,{value:t,modifiers:{number:n}},o){const i=(0,r.isSet)(t);Ai(e,"change",(()=>{const t=Array.prototype.filter.call(e.options,(e=>e.selected)).map((e=>n?(0,r.toNumber)(Es(e)):Es(e)));e._assign(e.multiple?i?new Set(t):t:t[0])})),e._assign=ms(o)},mounted(e,{value:t}){ks(e,t)},beforeUpdate(e,t,n){e._assign=ms(n)},updated(e,{value:t}){ks(e,t)}};function ks(e,t){const n=e.multiple;if(!n||(0,r.isArray)(t)||(0,r.isSet)(t)){for(let o=0,i=e.options.length;o-1:i.selected=t.has(s);else if((0,r.looseEqual)(Es(i),t))return void(e.selectedIndex!==o&&(e.selectedIndex=o))}n||-1===e.selectedIndex||(e.selectedIndex=-1)}}function Es(e){return"_value"in e?e._value:e.value}function Cs(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Ss={created(e,t,n){Ts(e,t,n,null,"created")},mounted(e,t,n){Ts(e,t,n,null,"mounted")},beforeUpdate(e,t,n,o){Ts(e,t,n,o,"beforeUpdate")},updated(e,t,n,o){Ts(e,t,n,o,"updated")}};function Os(e,t){switch(e){case"SELECT":return xs;case"TEXTAREA":return ys;default:switch(t){case"checkbox":return bs;case"radio":return ws;default:return ys}}}function Ts(e,t,n,o,r){const i=Os(e.tagName,n.props&&n.props.type)[r];i&&i(e,t,n,o)}const Vs=["ctrl","shift","alt","meta"],Bs={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>Vs.some((n=>e[`${n}Key`]&&!t.includes(n)))},Ms=(e,t)=>(n,...o)=>{for(let e=0;en=>{if(!("key"in n))return;const o=(0,r.hyphenate)(n.key);return t.some((e=>e===o||Ns[e]===o))?e(n):void 0},qs={beforeMount(e,{value:t},{transition:n}){e._vod="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):Ps(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Ps(e,!0),o.enter(e)):o.leave(e,(()=>{Ps(e,!1)})):Ps(e,t))},beforeUnmount(e,{value:t}){Ps(e,t)}};function Ps(e,t){e.style.display=t?e._vod:"none"}const Fs=(0,r.extend)({patchProp:(e,t,n,o,i=!1,s,a,l,c)=>{"class"===t?function(e,t,n){const o=e._vtc;o&&(t=(t?[t,...o]:[...o]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,o,i):"style"===t?function(e,t,n){const o=e.style,i=(0,r.isString)(n);if(n&&!i){for(const e in n)Ei(o,e,n[e]);if(t&&!(0,r.isString)(t))for(const e in t)null==n[e]&&Ei(o,e,"")}else{const r=o.display;i?t!==n&&(o.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(o.display=r)}}(e,n,o):(0,r.isOn)(t)?(0,r.isModelListener)(t)||qi(e,t,0,o,a):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,o){if(o)return"innerHTML"===t||"textContent"===t||!!(t in e&&Fi.test(t)&&(0,r.isFunction)(n));if("spellcheck"===t||"draggable"===t||"translate"===t)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if(Fi.test(t)&&(0,r.isString)(n))return!1;return t in e}(e,t,o,i))?function(e,t,n,o,i,s,a){if("innerHTML"===t||"textContent"===t)return o&&a(o,i,s),void(e[t]=null==n?"":n);if("value"===t&&"PROGRESS"!==e.tagName&&!e.tagName.includes("-")){e._value=n;const o=null==n?"":n;return e.value===o&&"OPTION"!==e.tagName||(e.value=o),void(null==n&&e.removeAttribute(t))}let l=!1;if(""===n||null==n){const o=typeof e[t];"boolean"===o?n=(0,r.includeBooleanAttr)(n):null==n&&"string"===o?(n="",l=!0):"number"===o&&(n=0,l=!0)}try{e[t]=n}catch(e){}l&&e.removeAttribute(t)}(e,t,o,s,a,l,c):("true-value"===t?e._trueValue=o:"false-value"===t&&(e._falseValue=o),function(e,t,n,o,i){if(o&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(Oi,t.slice(6,t.length)):e.setAttributeNS(Oi,t,n);else{const o=(0,r.isSpecialBooleanAttr)(t);null==n||o&&!(0,r.includeBooleanAttr)(n)?e.removeAttribute(t):e.setAttribute(t,o?"":n)}}(e,t,o,i))}},xi);let Ls,Ds=!1;function Is(){return Ls||(Ls=$o(Fs))}function Rs(){return Ls=Ds?Ls:zo(Fs),Ds=!0,Ls}const js=(...e)=>{Is().render(...e)},$s=(...e)=>{Rs().hydrate(...e)},zs=(...e)=>{const t=Is().createApp(...e);const{mount:n}=t;return t.mount=e=>{const o=Us(e);if(!o)return;const i=t._component;(0,r.isFunction)(i)||i.render||i.template||(i.template=o.innerHTML),o.innerHTML="";const s=n(o,!1,o instanceof SVGElement);return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),s},t},Hs=(...e)=>{const t=Rs().createApp(...e);const{mount:n}=t;return t.mount=e=>{const t=Us(e);if(t)return n(t,!0,t instanceof SVGElement)},t};function Us(e){if((0,r.isString)(e)){return document.querySelector(e)}return e}let Ks=!1;const Ws=()=>{Ks||(Ks=!0,ys.getSSRProps=({value:e})=>({value:e}),ws.getSSRProps=({value:e},t)=>{if(t.props&&(0,r.looseEqual)(t.props.value,e))return{checked:!0}},bs.getSSRProps=({value:e},t)=>{if((0,r.isArray)(e)){if(t.props&&(0,r.looseIndexOf)(e,t.props.value)>-1)return{checked:!0}}else if((0,r.isSet)(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},Ss.getSSRProps=(e,t)=>{if("string"!=typeof t.type)return;const n=Os(t.type.toUpperCase(),t.props&&t.props.type);return n.getSSRProps?n.getSSRProps(e,t):void 0},qs.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}})};function Qs(e){throw e}function Ys(e){}function Gs(e,t,n,o){const r=new SyntaxError(String(e));return r.code=e,r.loc=t,r}const Zs=Symbol(""),Js=Symbol(""),Xs=Symbol(""),ea=Symbol(""),ta=Symbol(""),na=Symbol(""),oa=Symbol(""),ra=Symbol(""),ia=Symbol(""),sa=Symbol(""),aa=Symbol(""),la=Symbol(""),ca=Symbol(""),ua=Symbol(""),da=Symbol(""),pa=Symbol(""),fa=Symbol(""),ha=Symbol(""),ma=Symbol(""),va=Symbol(""),ga=Symbol(""),ya=Symbol(""),ba=Symbol(""),_a=Symbol(""),wa=Symbol(""),xa=Symbol(""),ka=Symbol(""),Ea=Symbol(""),Ca=Symbol(""),Sa=Symbol(""),Oa=Symbol(""),Ta=Symbol(""),Va=Symbol(""),Ba=Symbol(""),Ma=Symbol(""),Na=Symbol(""),Aa=Symbol(""),qa=Symbol(""),Pa=Symbol(""),Fa={[Zs]:"Fragment",[Js]:"Teleport",[Xs]:"Suspense",[ea]:"KeepAlive",[ta]:"BaseTransition",[na]:"openBlock",[oa]:"createBlock",[ra]:"createElementBlock",[ia]:"createVNode",[sa]:"createElementVNode",[aa]:"createCommentVNode",[la]:"createTextVNode",[ca]:"createStaticVNode",[ua]:"resolveComponent",[da]:"resolveDynamicComponent",[pa]:"resolveDirective",[fa]:"resolveFilter",[ha]:"withDirectives",[ma]:"renderList",[va]:"renderSlot",[ga]:"createSlots",[ya]:"toDisplayString",[ba]:"mergeProps",[_a]:"normalizeClass",[wa]:"normalizeStyle",[xa]:"normalizeProps",[ka]:"guardReactiveProps",[Ea]:"toHandlers",[Ca]:"camelize",[Sa]:"capitalize",[Oa]:"toHandlerKey",[Ta]:"setBlockTracking",[Va]:"pushScopeId",[Ba]:"popScopeId",[Ma]:"withCtx",[Na]:"unref",[Aa]:"isRef",[qa]:"withMemo",[Pa]:"isMemoSame"};const La={source:"",start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}};function Da(e,t,n,o,r,i,s,a=!1,l=!1,c=!1,u=La){return e&&(a?(e.helper(na),e.helper(fl(e.inSSR,c))):e.helper(pl(e.inSSR,c)),s&&e.helper(ha)),{type:13,tag:t,props:n,children:o,patchFlag:r,dynamicProps:i,directives:s,isBlock:a,disableTracking:l,isComponent:c,loc:u}}function Ia(e,t=La){return{type:17,loc:t,elements:e}}function Ra(e,t=La){return{type:15,loc:t,properties:e}}function ja(e,t){return{type:16,loc:La,key:(0,r.isString)(e)?$a(e,!0):e,value:t}}function $a(e,t=!1,n=La,o=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:o}}function za(e,t=La){return{type:8,loc:t,children:e}}function Ha(e,t=[],n=La){return{type:14,loc:n,callee:e,arguments:t}}function Ua(e,t,n=!1,o=!1,r=La){return{type:18,params:e,returns:t,newline:n,isSlot:o,loc:r}}function Ka(e,t,n,o=!0){return{type:19,test:e,consequent:t,alternate:n,newline:o,loc:La}}const Wa=e=>4===e.type&&e.isStatic,Qa=(e,t)=>e===t||e===(0,r.hyphenate)(t);function Ya(e){return Qa(e,"Teleport")?Js:Qa(e,"Suspense")?Xs:Qa(e,"KeepAlive")?ea:Qa(e,"BaseTransition")?ta:void 0}const Ga=/^\d|[^\$\w]/,Za=e=>!Ga.test(e),Ja=/[A-Za-z_$\xA0-\uFFFF]/,Xa=/[\.\?\w$\xA0-\uFFFF]/,el=/\s+[.[]\s*|\s*[.[]\s+/g,tl=e=>{e=e.trim().replace(el,(e=>e.trim()));let t=0,n=[],o=0,r=0,i=null;for(let s=0;s4===e.key.type&&e.key.content===n))}e||s.properties.unshift(t),o=s}else o=Ha(n.helper(ba),[Ra([t]),s]),i&&i.callee===ka&&(i=a[a.length-2]);13===e.type?i?i.arguments[0]=o:e.props=o:i?i.arguments[0]=o:e.arguments[2]=o}function gl(e,t){return`_${t}_${e.replace(/[^\w]/g,((t,n)=>"-"===t?"_":e.charCodeAt(n).toString()))}`}function yl(e,{helper:t,removeHelper:n,inSSR:o}){e.isBlock||(e.isBlock=!0,n(pl(o,e.isComponent)),t(na),t(fl(o,e.isComponent)))}function bl(e,t){const n=t.options?t.options.compatConfig:t.compatConfig,o=n&&n[e];return"MODE"===e?o||3:o}function _l(e,t){const n=bl("MODE",t),o=bl(e,t);return 3===n?!0===o:!1!==o}function wl(e,t,n,...o){return _l(e,t)}const xl=/&(gt|lt|amp|apos|quot);/g,kl={gt:">",lt:"<",amp:"&",apos:"'",quot:'"'},El={delimiters:["{{","}}"],getNamespace:()=>0,getTextMode:()=>0,isVoidTag:r.NO,isPreTag:r.NO,isCustomElement:r.NO,decodeEntities:e=>e.replace(xl,((e,t)=>kl[t])),onError:Qs,onWarn:Ys,comments:!1};function Cl(e,t={}){const n=function(e,t){const n=(0,r.extend)({},El);let o;for(o in t)n[o]=void 0===t[o]?El[o]:t[o];return{options:n,column:1,line:1,offset:0,originalSource:e,source:e,inPre:!1,inVPre:!1,onWarn:n.onWarn}}(e,t),o=Il(n);return function(e,t=La){return{type:0,children:e,helpers:[],components:[],directives:[],hoists:[],imports:[],cached:0,temps:0,codegenNode:void 0,loc:t}}(Sl(n,0,[]),Rl(n,o))}function Sl(e,t,n){const o=jl(n),i=o?o.ns:0,s=[];for(;!Wl(e,t,n);){const a=e.source;let l;if(0===t||1===t)if(!e.inVPre&&$l(a,e.options.delimiters[0]))l=Fl(e,t);else if(0===t&&"<"===a[0])if(1===a.length)Kl(e,5,1);else if("!"===a[1])$l(a,"\x3c!--")?l=Vl(e):$l(a,""===a[2]){Kl(e,14,2),zl(e,3);continue}if(/[a-z]/i.test(a[2])){Kl(e,23),Al(e,1,o);continue}Kl(e,12,2),l=Bl(e)}else/[a-z]/i.test(a[1])?(l=Ml(e,n),_l("COMPILER_NATIVE_TEMPLATE",e)&&l&&"template"===l.tag&&!l.props.some((e=>7===e.type&&Nl(e.name)))&&(l=l.children)):"?"===a[1]?(Kl(e,21,1),l=Bl(e)):Kl(e,12,1);if(l||(l=Ll(e,t)),(0,r.isArray)(l))for(let e=0;e/.exec(e.source);if(o){o.index<=3&&Kl(e,0),o[1]&&Kl(e,10),n=e.source.slice(4,o.index);const t=e.source.slice(0,o.index);let r=1,i=0;for(;-1!==(i=t.indexOf("\x3c!--",r));)zl(e,i-r+1),i+4");return-1===r?(o=e.source.slice(n),zl(e,e.source.length)):(o=e.source.slice(n,r),zl(e,r+1)),{type:3,content:o,loc:Rl(e,t)}}function Ml(e,t){const n=e.inPre,o=e.inVPre,r=jl(t),i=Al(e,0,r),s=e.inPre&&!n,a=e.inVPre&&!o;if(i.isSelfClosing||e.options.isVoidTag(i.tag))return s&&(e.inPre=!1),a&&(e.inVPre=!1),i;t.push(i);const l=e.options.getTextMode(i,r),c=Sl(e,l,t);t.pop();{const t=i.props.find((e=>6===e.type&&"inline-template"===e.name));if(t&&wl("COMPILER_INLINE_TEMPLATE",e,t.loc)){const n=Rl(e,i.loc.end);t.value={type:2,content:n.source,loc:n}}}if(i.children=c,Ql(e.source,i.tag))Al(e,1,r);else if(Kl(e,24,0,i.loc.start),0===e.source.length&&"script"===i.tag.toLowerCase()){const t=c[0];t&&$l(t.loc.source,"\x3c!--")&&Kl(e,8)}return i.loc=Rl(e,i.loc.start),s&&(e.inPre=!1),a&&(e.inVPre=!1),i}const Nl=(0,r.makeMap)("if,else,else-if,for,slot");function Al(e,t,n){const o=Il(e),i=/^<\/?([a-z][^\t\r\n\f />]*)/i.exec(e.source),s=i[1],a=e.options.getNamespace(s,n);zl(e,i[0].length),Hl(e);const l=Il(e),c=e.source;e.options.isPreTag(s)&&(e.inPre=!0);let u=ql(e,t);0===t&&!e.inVPre&&u.some((e=>7===e.type&&"pre"===e.name))&&(e.inVPre=!0,(0,r.extend)(e,l),e.source=c,u=ql(e,t).filter((e=>"v-pre"!==e.name)));let d=!1;if(0===e.source.length?Kl(e,9):(d=$l(e.source,"/>"),1===t&&d&&Kl(e,4),zl(e,d?2:1)),1===t)return;let p=0;return e.inVPre||("slot"===s?p=2:"template"===s?u.some((e=>7===e.type&&Nl(e.name)))&&(p=3):function(e,t,n){const o=n.options;if(o.isCustomElement(e))return!1;if("component"===e||/^[A-Z]/.test(e)||Ya(e)||o.isBuiltInComponent&&o.isBuiltInComponent(e)||o.isNativeTag&&!o.isNativeTag(e))return!0;for(let e=0;e0&&!$l(e.source,">")&&!$l(e.source,"/>");){if($l(e.source,"/")){Kl(e,22),zl(e,1),Hl(e);continue}1===t&&Kl(e,3);const r=Pl(e,o);6===r.type&&r.value&&"class"===r.name&&(r.value.content=r.value.content.replace(/\s+/g," ").trim()),0===t&&n.push(r),/^[^\t\r\n\f />]/.test(e.source)&&Kl(e,15),Hl(e)}return n}function Pl(e,t){const n=Il(e),o=/^[^\t\r\n\f />][^\t\r\n\f />=]*/.exec(e.source)[0];t.has(o)&&Kl(e,2),t.add(o),"="===o[0]&&Kl(e,19);{const t=/["'<]/g;let n;for(;n=t.exec(o);)Kl(e,17,n.index)}let r;zl(e,o.length),/^[\t\r\n\f ]*=/.test(e.source)&&(Hl(e),zl(e,1),Hl(e),r=function(e){const t=Il(e);let n;const o=e.source[0],r='"'===o||"'"===o;if(r){zl(e,1);const t=e.source.indexOf(o);-1===t?n=Dl(e,e.source.length,4):(n=Dl(e,t,4),zl(e,1))}else{const t=/^[^\t\r\n\f >]+/.exec(e.source);if(!t)return;const o=/["'<=`]/g;let r;for(;r=o.exec(t[0]);)Kl(e,18,r.index);n=Dl(e,t[0].length,4)}return{content:n,isQuoted:r,loc:Rl(e,t)}}(e),r||Kl(e,13));const i=Rl(e,n);if(!e.inVPre&&/^(v-[A-Za-z0-9-]|:|\.|@|#)/.test(o)){const t=/(?:^v-([a-z0-9-]+))?(?:(?::|^\.|^@|^#)(\[[^\]]+\]|[^\.]+))?(.+)?$/i.exec(o);let s,a=$l(o,"."),l=t[1]||(a||$l(o,":")?"bind":$l(o,"@")?"on":"slot");if(t[2]){const r="slot"===l,i=o.lastIndexOf(t[2]),a=Rl(e,Ul(e,n,i),Ul(e,n,i+t[2].length+(r&&t[3]||"").length));let c=t[2],u=!0;c.startsWith("[")?(u=!1,c.endsWith("]")?c=c.slice(1,c.length-1):(Kl(e,27),c=c.slice(1))):r&&(c+=t[3]||""),s={type:4,content:c,isStatic:u,constType:u?3:0,loc:a}}if(r&&r.isQuoted){const e=r.loc;e.start.offset++,e.start.column++,e.end=ol(e.start,r.content),e.source=e.source.slice(1,-1)}const c=t[3]?t[3].slice(1).split("."):[];return a&&c.push("prop"),"bind"===l&&s&&c.includes("sync")&&wl("COMPILER_V_BIND_SYNC",e,0,s.loc.source)&&(l="model",c.splice(c.indexOf("sync"),1)),{type:7,name:l,exp:r&&{type:4,content:r.content,isStatic:!1,constType:0,loc:r.loc},arg:s,modifiers:c,loc:i}}return!e.inVPre&&$l(o,"v-")&&Kl(e,26),{type:6,name:o,value:r&&{type:2,content:r.content,loc:r.loc},loc:i}}function Fl(e,t){const[n,o]=e.options.delimiters,r=e.source.indexOf(o,n.length);if(-1===r)return void Kl(e,25);const i=Il(e);zl(e,n.length);const s=Il(e),a=Il(e),l=r-n.length,c=e.source.slice(0,l),u=Dl(e,l,t),d=u.trim(),p=u.indexOf(d);p>0&&rl(s,c,p);return rl(a,c,l-(u.length-d.length-p)),zl(e,o.length),{type:5,content:{type:4,isStatic:!1,constType:0,content:d,loc:Rl(e,s,a)},loc:Rl(e,i)}}function Ll(e,t){const n=3===t?["]]>"]:["<",e.options.delimiters[0]];let o=e.source.length;for(let t=0;tr&&(o=r)}const r=Il(e);return{type:2,content:Dl(e,o,t),loc:Rl(e,r)}}function Dl(e,t,n){const o=e.source.slice(0,t);return zl(e,t),2!==n&&3!==n&&o.includes("&")?e.options.decodeEntities(o,4===n):o}function Il(e){const{column:t,line:n,offset:o}=e;return{column:t,line:n,offset:o}}function Rl(e,t,n){return{start:t,end:n=n||Il(e),source:e.originalSource.slice(t.offset,n.offset)}}function jl(e){return e[e.length-1]}function $l(e,t){return e.startsWith(t)}function zl(e,t){const{source:n}=e;rl(e,n,t),e.source=n.slice(t)}function Hl(e){const t=/^[\t\r\n\f ]+/.exec(e.source);t&&zl(e,t[0].length)}function Ul(e,t,n){return ol(t,e.originalSource.slice(t.offset,n),n)}function Kl(e,t,n,o=Il(e)){n&&(o.offset+=n,o.column+=n),e.options.onError(Gs(t,{start:o,end:o,source:""}))}function Wl(e,t,n){const o=e.source;switch(t){case 0:if($l(o,"=0;--e)if(Ql(o,n[e].tag))return!0;break;case 1:case 2:{const e=jl(n);if(e&&Ql(o,e.tag))return!0;break}case 3:if($l(o,"]]>"))return!0}return!o}function Ql(e,t){return $l(e,"]/.test(e[2+t.length]||">")}function Yl(e,t){Zl(e,t,Gl(e,e.children[0]))}function Gl(e,t){const{children:n}=e;return 1===n.length&&1===t.type&&!dl(t)}function Zl(e,t,n=!1){const{children:o}=e,i=o.length;let s=0;for(let e=0;e0){if(e>=2){r.codegenNode.patchFlag="-1",r.codegenNode=t.hoist(r.codegenNode),s++;continue}}else{const e=r.codegenNode;if(13===e.type){const n=oc(e);if((!n||512===n||1===n)&&tc(r,t)>=2){const n=nc(r);n&&(e.props=t.hoist(n))}e.dynamicProps&&(e.dynamicProps=t.hoist(e.dynamicProps))}}}else 12===r.type&&Jl(r.content,t)>=2&&(r.codegenNode=t.hoist(r.codegenNode),s++);if(1===r.type){const e=1===r.tagType;e&&t.scopes.vSlot++,Zl(r,t),e&&t.scopes.vSlot--}else if(11===r.type)Zl(r,t,1===r.children.length);else if(9===r.type)for(let e=0;e1)for(let r=0;r`_${Fa[E.helper(e)]}`,replaceNode(e){E.parent.children[E.childIndex]=E.currentNode=e},removeNode(e){const t=E.parent.children,n=e?t.indexOf(e):E.currentNode?E.childIndex:-1;e&&e!==E.currentNode?E.childIndex>n&&(E.childIndex--,E.onNodeRemoved()):(E.currentNode=null,E.onNodeRemoved()),E.parent.children.splice(n,1)},onNodeRemoved:()=>{},addIdentifiers(e){},removeIdentifiers(e){},hoist(e){(0,r.isString)(e)&&(e=$a(e)),E.hoists.push(e);const t=$a(`_hoisted_${E.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache:(e,t=!1)=>function(e,t,n=!1){return{type:20,index:e,value:t,isVNode:n,loc:La}}(E.cached++,e,t)};return E.filters=new Set,E}function ic(e,t){const n=rc(e,t);sc(e,n),t.hoistStatic&&Yl(e,n),t.ssr||function(e,t){const{helper:n}=t,{children:o}=e;if(1===o.length){const n=o[0];if(Gl(e,n)&&n.codegenNode){const o=n.codegenNode;13===o.type&&yl(o,t),e.codegenNode=o}else e.codegenNode=n}else if(o.length>1){let o=64;r.PatchFlagNames[64];0,e.codegenNode=Da(t,n(Zs),void 0,e.children,o+"",void 0,void 0,!0,void 0,!1)}}(e,n),e.helpers=[...n.helpers.keys()],e.components=[...n.components],e.directives=[...n.directives],e.imports=n.imports,e.hoists=n.hoists,e.temps=n.temps,e.cached=n.cached,e.filters=[...n.filters]}function sc(e,t){t.currentNode=e;const{nodeTransforms:n}=t,o=[];for(let i=0;i{n--};for(;nt===e:t=>e.test(t);return(e,o)=>{if(1===e.type){const{props:r}=e;if(3===e.tagType&&r.some(cl))return;const i=[];for(let s=0;s`${Fa[e]}: _${Fa[e]}`;function uc(e,t={}){const n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:o=!1,filename:r="template.vue.html",scopeId:i=null,optimizeImports:s=!1,runtimeGlobalName:a="Vue",runtimeModuleName:l="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:d=!1,inSSR:p=!1}){const f={mode:t,prefixIdentifiers:n,sourceMap:o,filename:r,scopeId:i,optimizeImports:s,runtimeGlobalName:a,runtimeModuleName:l,ssrRuntimeModuleName:c,ssr:u,isTS:d,inSSR:p,source:e.loc.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${Fa[e]}`,push(e,t){f.code+=e},indent(){h(++f.indentLevel)},deindent(e=!1){e?--f.indentLevel:h(--f.indentLevel)},newline(){h(f.indentLevel)}};function h(e){f.push("\n"+" ".repeat(e))}return f}(e,t);t.onContextCreated&&t.onContextCreated(n);const{mode:o,push:r,prefixIdentifiers:i,indent:s,deindent:a,newline:l,scopeId:c,ssr:u}=n,d=e.helpers.length>0,p=!i&&"module"!==o;!function(e,t){const{ssr:n,prefixIdentifiers:o,push:r,newline:i,runtimeModuleName:s,runtimeGlobalName:a,ssrRuntimeModuleName:l}=t,c=a;if(e.helpers.length>0&&(r(`const _Vue = ${c}\n`),e.hoists.length)){r(`const { ${[ia,sa,aa,la,ca].filter((t=>e.helpers.includes(t))).map(cc).join(", ")} } = _Vue\n`)}(function(e,t){if(!e.length)return;t.pure=!0;const{push:n,newline:o,helper:r,scopeId:i,mode:s}=t;o();for(let r=0;r0)&&l()),e.directives.length&&(dc(e.directives,"directive",n),e.temps>0&&l()),e.filters&&e.filters.length&&(l(),dc(e.filters,"filter",n),l()),e.temps>0){r("let ");for(let t=0;t0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(r("\n"),l()),u||r("return "),e.codegenNode?hc(e.codegenNode,n):r("null"),p&&(a(),r("}")),a(),r("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}function dc(e,t,{helper:n,push:o,newline:r,isTS:i}){const s=n("filter"===t?fa:"component"===t?ua:pa);for(let n=0;n3||!1;t.push("["),n&&t.indent(),fc(e,t,n),n&&t.deindent(),t.push("]")}function fc(e,t,n=!1,o=!0){const{push:i,newline:s}=t;for(let a=0;ae||"null"))}([i,s,a,l,c]),t),n(")"),d&&n(")");u&&(n(", "),hc(u,t),n(")"))}(e,t);break;case 14:!function(e,t){const{push:n,helper:o,pure:i}=t,s=(0,r.isString)(e.callee)?e.callee:o(e.callee);i&&n(lc);n(s+"(",e),fc(e.arguments,t),n(")")}(e,t);break;case 15:!function(e,t){const{push:n,indent:o,deindent:r,newline:i}=t,{properties:s}=e;if(!s.length)return void n("{}",e);const a=s.length>1||!1;n(a?"{":"{ "),a&&o();for(let e=0;e "),(c||l)&&(n("{"),o());a?(c&&n("return "),(0,r.isArray)(a)?pc(a,t):hc(a,t)):l&&hc(l,t);(c||l)&&(i(),n("}"));u&&(e.isNonScopedSlot&&n(", undefined, true"),n(")"))}(e,t);break;case 19:!function(e,t){const{test:n,consequent:o,alternate:r,newline:i}=e,{push:s,indent:a,deindent:l,newline:c}=t;if(4===n.type){const e=!Za(n.content);e&&s("("),mc(n,t),e&&s(")")}else s("("),hc(n,t),s(")");i&&a(),t.indentLevel++,i||s(" "),s("? "),hc(o,t),t.indentLevel--,i&&c(),i||s(" "),s(": ");const u=19===r.type;u||t.indentLevel++;hc(r,t),u||t.indentLevel--;i&&l(!0)}(e,t);break;case 20:!function(e,t){const{push:n,helper:o,indent:r,deindent:i,newline:s}=t;n(`_cache[${e.index}] || (`),e.isVNode&&(r(),n(`${o(Ta)}(-1),`),s());n(`_cache[${e.index}] = `),hc(e.value,t),e.isVNode&&(n(","),s(),n(`${o(Ta)}(1),`),s(),n(`_cache[${e.index}]`),i());n(")")}(e,t);break;case 21:fc(e.body,t,!0,!1)}}function mc(e,t){const{content:n,isStatic:o}=e;t.push(o?JSON.stringify(n):n,e)}function vc(e,t){for(let n=0;nfunction(e,t,n,o){if(!("else"===t.name||t.exp&&t.exp.content.trim())){const o=t.exp?t.exp.loc:e.loc;n.onError(Gs(28,t.loc)),t.exp=$a("true",!1,o)}0;if("if"===t.name){const r=bc(e,t),i={type:9,loc:e.loc,branches:[r]};if(n.replaceNode(i),o)return o(i,r,!0)}else{const r=n.parent.children;let i=r.indexOf(e);for(;i-- >=-1;){const s=r[i];if(!s||2!==s.type||s.content.trim().length){if(s&&9===s.type){"else-if"===t.name&&void 0===s.branches[s.branches.length-1].condition&&n.onError(Gs(30,e.loc)),n.removeNode();const r=bc(e,t);0,s.branches.push(r);const i=o&&o(s,r,!1);sc(r,n),i&&i(),n.currentNode=null}else n.onError(Gs(30,e.loc));break}n.removeNode(s)}}}(e,t,n,((e,t,o)=>{const r=n.parent.children;let i=r.indexOf(e),s=0;for(;i-- >=0;){const e=r[i];e&&9===e.type&&(s+=e.branches.length)}return()=>{if(o)e.codegenNode=_c(t,s,n);else{const o=function(e){for(;;)if(19===e.type){if(19!==e.alternate.type)return e;e=e.alternate}else 20===e.type&&(e=e.value)}(e.codegenNode);o.alternate=_c(t,s+e.branches.length-1,n)}}}))));function bc(e,t){const n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!il(e,"for")?e.children:[e],userKey:sl(e,"key"),isTemplateIf:n}}function _c(e,t,n){return e.condition?Ka(e.condition,wc(e,t,n),Ha(n.helper(aa),['""',"true"])):wc(e,t,n)}function wc(e,t,n){const{helper:o}=n,i=ja("key",$a(`${t}`,!1,La,2)),{children:s}=e,a=s[0];if(1!==s.length||1!==a.type){if(1===s.length&&11===a.type){const e=a.codegenNode;return vl(e,i,n),e}{let t=64;r.PatchFlagNames[64];return Da(n,o(Zs),Ra([i]),s,t+"",void 0,void 0,!0,!1,!1,e.loc)}}{const e=a.codegenNode,t=14===(l=e).type&&l.callee===qa?l.arguments[1].returns:l;return 13===t.type&&yl(t,n),vl(t,i,n),e}var l}const xc=ac("for",((e,t,n)=>{const{helper:o,removeHelper:r}=n;return function(e,t,n,o){if(!t.exp)return void n.onError(Gs(31,t.loc));const r=Sc(t.exp,n);if(!r)return void n.onError(Gs(32,t.loc));const{addIdentifiers:i,removeIdentifiers:s,scopes:a}=n,{source:l,value:c,key:u,index:d}=r,p={type:11,loc:t.loc,source:l,valueAlias:c,keyAlias:u,objectIndexAlias:d,parseResult:r,children:ul(e)?e.children:[e]};n.replaceNode(p),a.vFor++;const f=o&&o(p);return()=>{a.vFor--,f&&f()}}(e,t,n,(t=>{const i=Ha(o(ma),[t.source]),s=ul(e),a=il(e,"memo"),l=sl(e,"key"),c=l&&(6===l.type?$a(l.value.content,!0):l.exp),u=l?ja("key",c):null,d=4===t.source.type&&t.source.constType>0,p=d?64:l?128:256;return t.codegenNode=Da(n,o(Zs),void 0,i,p+"",void 0,void 0,!0,!d,!1,e.loc),()=>{let l;const{children:p}=t;const f=1!==p.length||1!==p[0].type,h=dl(e)?e:s&&1===e.children.length&&dl(e.children[0])?e.children[0]:null;if(h?(l=h.codegenNode,s&&u&&vl(l,u,n)):f?l=Da(n,o(Zs),u?Ra([u]):void 0,e.children,"64",void 0,void 0,!0,void 0,!1):(l=p[0].codegenNode,s&&u&&vl(l,u,n),l.isBlock!==!d&&(l.isBlock?(r(na),r(fl(n.inSSR,l.isComponent))):r(pl(n.inSSR,l.isComponent))),l.isBlock=!d,l.isBlock?(o(na),o(fl(n.inSSR,l.isComponent))):o(pl(n.inSSR,l.isComponent))),a){const e=Ua(Tc(t.parseResult,[$a("_cached")]));e.body={type:21,body:[za(["const _memo = (",a.exp,")"]),za(["if (_cached",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(Pa)}(_cached, _memo)) return _cached`]),za(["const _item = ",l]),$a("_item.memo = _memo"),$a("return _item")],loc:La},i.arguments.push(e,$a("_cache"),$a(String(n.cached++)))}else i.arguments.push(Ua(Tc(t.parseResult),l,!0))}}))}));const kc=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Ec=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Cc=/^\(|\)$/g;function Sc(e,t){const n=e.loc,o=e.content,r=o.match(kc);if(!r)return;const[,i,s]=r,a={source:Oc(n,s.trim(),o.indexOf(s,i.length)),value:void 0,key:void 0,index:void 0};let l=i.trim().replace(Cc,"").trim();const c=i.indexOf(l),u=l.match(Ec);if(u){l=l.replace(Ec,"").trim();const e=u[1].trim();let t;if(e&&(t=o.indexOf(e,c+l.length),a.key=Oc(n,e,t)),u[2]){const r=u[2].trim();r&&(a.index=Oc(n,r,o.indexOf(r,a.key?t+e.length:c+l.length)))}}return l&&(a.value=Oc(n,l,c)),a}function Oc(e,t,n){return $a(t,!1,nl(e,n,t.length))}function Tc({value:e,key:t,index:n},o=[]){return function(e){let t=e.length;for(;t--&&!e[t];);return e.slice(0,t+1).map(((e,t)=>e||$a("_".repeat(t+1),!1)))}([e,t,n,...o])}const Vc=$a("undefined",!1),Bc=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){const n=il(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}},Mc=(e,t,n)=>Ua(e,t,!1,!0,t.length?t[0].loc:n);function Nc(e,t,n=Mc){t.helper(Ma);const{children:o,loc:r}=e,i=[],s=[];let a=t.scopes.vSlot>0||t.scopes.vFor>0;const l=il(e,"slot",!0);if(l){const{arg:e,exp:t}=l;e&&!Wa(e)&&(a=!0),i.push(ja(e||$a("default",!0),n(t,o,r)))}let c=!1,u=!1;const d=[],p=new Set;for(let e=0;e{const i=n(e,o,r);return t.compatConfig&&(i.isNonScopedSlot=!0),ja("default",i)};c?d.length&&d.some((e=>Pc(e)))&&(u?t.onError(Gs(39,d[0].loc)):i.push(e(void 0,d))):i.push(e(void 0,o))}const f=a?2:qc(e.children)?3:1;let h=Ra(i.concat(ja("_",$a(f+"",!1))),r);return s.length&&(h=Ha(t.helper(ga),[h,Ia(s)])),{slots:h,hasDynamicSlots:a}}function Ac(e,t){return Ra([ja("name",e),ja("fn",t)])}function qc(e){for(let t=0;tfunction(){if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;const{tag:n,props:o}=e,i=1===e.tagType;let s=i?function(e,t,n=!1){let{tag:o}=e;const r=jc(o),i=sl(e,"is");if(i)if(r||_l("COMPILER_IS_ON_ELEMENT",t)){const e=6===i.type?i.value&&$a(i.value.content,!0):i.exp;if(e)return Ha(t.helper(da),[e])}else 6===i.type&&i.value.content.startsWith("vue:")&&(o=i.value.content.slice(4));const s=!r&&il(e,"is");if(s&&s.exp)return Ha(t.helper(da),[s.exp]);const a=Ya(o)||t.isBuiltInComponent(o);if(a)return n||t.helper(a),a;return t.helper(ua),t.components.add(o),gl(o,"component")}(e,t):`"${n}"`;const a=(0,r.isObject)(s)&&s.callee===da;let l,c,u,d,p,f,h=0,m=a||s===Js||s===Xs||!i&&("svg"===n||"foreignObject"===n);if(o.length>0){const n=Dc(e,t,void 0,i,a);l=n.props,h=n.patchFlag,p=n.dynamicPropNames;const o=n.directives;f=o&&o.length?Ia(o.map((e=>function(e,t){const n=[],o=Fc.get(e);o?n.push(t.helperString(o)):(t.helper(pa),t.directives.add(e.name),n.push(gl(e.name,"directive")));const{loc:r}=e;e.exp&&n.push(e.exp);e.arg&&(e.exp||n.push("void 0"),n.push(e.arg));if(Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));const t=$a("true",!1,r);n.push(Ra(e.modifiers.map((e=>ja(e,t))),r))}return Ia(n,e.loc)}(e,t)))):void 0,n.shouldUseBlock&&(m=!0)}if(e.children.length>0){s===ea&&(m=!0,h|=1024);if(i&&s!==Js&&s!==ea){const{slots:n,hasDynamicSlots:o}=Nc(e,t);c=n,o&&(h|=1024)}else if(1===e.children.length&&s!==Js){const n=e.children[0],o=n.type,r=5===o||8===o;r&&0===Jl(n,t)&&(h|=1),c=r||2===o?n:e.children}else c=e.children}0!==h&&(u=String(h),p&&p.length&&(d=function(e){let t="[";for(let n=0,o=e.length;n0;let h=!1,m=0,v=!1,g=!1,y=!1,b=!1,_=!1,w=!1;const x=[],k=({key:e,value:n})=>{if(Wa(e)){const s=e.content,a=(0,r.isOn)(s);if(!a||o&&!i||"onclick"===s.toLowerCase()||"onUpdate:modelValue"===s||(0,r.isReservedProp)(s)||(b=!0),a&&(0,r.isReservedProp)(s)&&(w=!0),20===n.type||(4===n.type||8===n.type)&&Jl(n,t)>0)return;"ref"===s?v=!0:"class"===s?g=!0:"style"===s?y=!0:"key"===s||x.includes(s)||x.push(s),!o||"class"!==s&&"style"!==s||x.includes(s)||x.push(s)}else _=!0};for(let i=0;i0&&u.push(ja($a("ref_for",!0),$a("true")))),"is"===n&&(jc(a)||o&&o.content.startsWith("vue:")||_l("COMPILER_IS_ON_ELEMENT",t)))continue;u.push(ja($a(n,!0,nl(e,0,n.length)),$a(o?o.content:"",r,o?o.loc:e)))}else{const{name:n,arg:i,exp:m,loc:v}=c,g="bind"===n,y="on"===n;if("slot"===n){o||t.onError(Gs(40,v));continue}if("once"===n||"memo"===n)continue;if("is"===n||g&&al(i,"is")&&(jc(a)||_l("COMPILER_IS_ON_ELEMENT",t)))continue;if(y&&s)continue;if((g&&al(i,"key")||y&&f&&al(i,"vue:before-update"))&&(h=!0),g&&al(i,"ref")&&t.scopes.vFor>0&&u.push(ja($a("ref_for",!0),$a("true"))),!i&&(g||y)){if(_=!0,m)if(u.length&&(d.push(Ra(Ic(u),l)),u=[]),g){if(_l("COMPILER_V_BIND_OBJECT_ORDER",t)){d.unshift(m);continue}d.push(m)}else d.push({type:14,loc:v,callee:t.helper(Ea),arguments:[m]});else t.onError(Gs(g?34:35,v));continue}const b=t.directiveTransforms[n];if(b){const{props:n,needRuntime:o}=b(c,e,t);!s&&n.forEach(k),u.push(...n),o&&(p.push(c),(0,r.isSymbol)(o)&&Fc.set(c,o))}else(0,r.isBuiltInDirective)(n)||(p.push(c),f&&(h=!0))}}let E;if(d.length?(u.length&&d.push(Ra(Ic(u),l)),E=d.length>1?Ha(t.helper(ba),d,l):d[0]):u.length&&(E=Ra(Ic(u),l)),_?m|=16:(g&&!o&&(m|=2),y&&!o&&(m|=4),x.length&&(m|=8),b&&(m|=32)),h||0!==m&&32!==m||!(v||w||p.length>0)||(m|=512),!t.inSSR&&E)switch(E.type){case 15:let e=-1,n=-1,o=!1;for(let t=0;t{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))})((e=>e.replace($c,((e,t)=>t?t.toUpperCase():"")))),Hc=(e,t)=>{if(dl(e)){const{children:n,loc:o}=e,{slotName:r,slotProps:i}=function(e,t){let n,o='"default"';const r=[];for(let t=0;t0){const{props:o,directives:i}=Dc(e,t,r,!1,!1);n=o,i.length&&t.onError(Gs(36,i[0].loc))}return{slotName:o,slotProps:n}}(e,t),s=[t.prefixIdentifiers?"_ctx.$slots":"$slots",r,"{}","undefined","true"];let a=2;i&&(s[2]=i,a=3),n.length&&(s[3]=Ua([],n,!1,!1,o),a=4),t.scopeId&&!t.slotted&&(a=5),s.splice(a),e.codegenNode=Ha(t.helper(va),s,o)}};const Uc=/^\s*([\w$_]+|(async\s*)?\([^)]*?\))\s*=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,Kc=(e,t,n,o)=>{const{loc:i,modifiers:s,arg:a}=e;let l;if(e.exp||s.length||n.onError(Gs(35,i)),4===a.type)if(a.isStatic){let e=a.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),l=$a((0,r.toHandlerKey)((0,r.camelize)(e)),!0,a.loc)}else l=za([`${n.helperString(Oa)}(`,a,")"]);else l=a,l.children.unshift(`${n.helperString(Oa)}(`),l.children.push(")");let c=e.exp;c&&!c.content.trim()&&(c=void 0);let u=n.cacheHandlers&&!c&&!n.inVOnce;if(c){const e=tl(c.content),t=!(e||Uc.test(c.content)),n=c.content.includes(";");0,(t||u&&e)&&(c=za([`${t?"$event":"(...args)"} => ${n?"{":"("}`,c,n?"}":")"]))}let d={props:[ja(l,c||$a("() => {}",!1,i))]};return o&&(d=o(d)),u&&(d.props[0].value=n.cache(d.props[0].value)),d.props.forEach((e=>e.key.isHandlerKey=!0)),d},Wc=(e,t,n)=>{const{exp:o,modifiers:i,loc:s}=e,a=e.arg;return 4!==a.type?(a.children.unshift("("),a.children.push(') || ""')):a.isStatic||(a.content=`${a.content} || ""`),i.includes("camel")&&(4===a.type?a.isStatic?a.content=(0,r.camelize)(a.content):a.content=`${n.helperString(Ca)}(${a.content})`:(a.children.unshift(`${n.helperString(Ca)}(`),a.children.push(")"))),n.inSSR||(i.includes("prop")&&Qc(a,"."),i.includes("attr")&&Qc(a,"^")),!o||4===o.type&&!o.content.trim()?(n.onError(Gs(34,s)),{props:[ja(a,$a("",!0,s))]}):{props:[ja(a,o)]}},Qc=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},Yc=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{const n=e.children;let o,r=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name]))||"template"===e.tag)))for(let e=0;e{if(1===e.type&&il(e,"once",!0)){if(Gc.has(e)||t.inVOnce)return;return Gc.add(e),t.inVOnce=!0,t.helper(Ta),()=>{t.inVOnce=!1;const e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0))}}},Jc=(e,t,n)=>{const{exp:o,arg:r}=e;if(!o)return n.onError(Gs(41,e.loc)),Xc();const i=o.loc.source,s=4===o.type?o.content:i;n.bindingMetadata[i];if(!s.trim()||!tl(s))return n.onError(Gs(42,o.loc)),Xc();const a=r||$a("modelValue",!0),l=r?Wa(r)?`onUpdate:${r.content}`:za(['"onUpdate:" + ',r]):"onUpdate:modelValue";let c;c=za([`${n.isTS?"($event: any)":"$event"} => ((`,o,") = $event)"]);const u=[ja(a,e.exp),ja(l,c)];if(e.modifiers.length&&1===t.tagType){const t=e.modifiers.map((e=>(Za(e)?e:JSON.stringify(e))+": true")).join(", "),n=r?Wa(r)?`${r.content}Modifiers`:za([r,' + "Modifiers"']):"modelModifiers";u.push(ja(n,$a(`{ ${t} }`,!1,e.loc,2)))}return Xc(u)};function Xc(e=[]){return{props:e}}const eu=/[\w).+\-_$\]]/,tu=(e,t)=>{_l("COMPILER_FILTER",t)&&(5===e.type&&nu(e.content,t),1===e.type&&e.props.forEach((e=>{7===e.type&&"for"!==e.name&&e.exp&&nu(e.exp,t)})))};function nu(e,t){if(4===e.type)ou(e,t);else for(let n=0;n=0&&(e=n.charAt(t)," "===e);t--);e&&eu.test(e)||(u=!0)}}else void 0===s?(h=i+1,s=n.slice(0,i).trim()):v();function v(){m.push(n.slice(h,i).trim()),h=i+1}if(void 0===s?s=n.slice(0,i).trim():0!==h&&v(),m.length){for(i=0;i{if(1===e.type){const n=il(e,"memo");if(!n||iu.has(e))return;return iu.add(e),()=>{const o=e.codegenNode||t.currentNode.codegenNode;o&&13===o.type&&(1!==e.tagType&&yl(o,t),e.codegenNode=Ha(t.helper(qa),[n.exp,Ua(void 0,o),"_cache",String(t.cached++)]))}}};function au(e,t={}){const n=t.onError||Qs,o="module"===t.mode;!0===t.prefixIdentifiers?n(Gs(46)):o&&n(Gs(47));t.cacheHandlers&&n(Gs(48)),t.scopeId&&!o&&n(Gs(49));const i=(0,r.isString)(e)?Cl(e,t):e,[s,a]=[[Zc,yc,su,xc,tu,Hc,Lc,Bc,Yc],{on:Kc,bind:Wc,model:Jc}];return ic(i,(0,r.extend)({},t,{prefixIdentifiers:false,nodeTransforms:[...s,...t.nodeTransforms||[]],directiveTransforms:(0,r.extend)({},a,t.directiveTransforms||{})})),uc(i,(0,r.extend)({},t,{prefixIdentifiers:false}))}const lu=Symbol(""),cu=Symbol(""),uu=Symbol(""),du=Symbol(""),pu=Symbol(""),fu=Symbol(""),hu=Symbol(""),mu=Symbol(""),vu=Symbol(""),gu=Symbol("");var yu;let bu;yu={[lu]:"vModelRadio",[cu]:"vModelCheckbox",[uu]:"vModelText",[du]:"vModelSelect",[pu]:"vModelDynamic",[fu]:"withModifiers",[hu]:"withKeys",[mu]:"vShow",[vu]:"Transition",[gu]:"TransitionGroup"},Object.getOwnPropertySymbols(yu).forEach((e=>{Fa[e]=yu[e]}));const _u=(0,r.makeMap)("style,iframe,script,noscript",!0),wu={isVoidTag:r.isVoidTag,isNativeTag:e=>(0,r.isHTMLTag)(e)||(0,r.isSVGTag)(e),isPreTag:e=>"pre"===e,decodeEntities:function(e,t=!1){return bu||(bu=document.createElement("div")),t?(bu.innerHTML=`
`,bu.children[0].getAttribute("foo")):(bu.innerHTML=e,bu.textContent)},isBuiltInComponent:e=>Qa(e,"Transition")?vu:Qa(e,"TransitionGroup")?gu:void 0,getNamespace(e,t){let n=t?t.ns:0;if(t&&2===n)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some((e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content)))&&(n=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(n=0);else t&&1===n&&("foreignObject"!==t.tag&&"desc"!==t.tag&&"title"!==t.tag||(n=0));if(0===n){if("svg"===e)return 1;if("math"===e)return 2}return n},getTextMode({tag:e,ns:t}){if(0===t){if("textarea"===e||"title"===e)return 1;if(_u(e))return 2}return 0}},xu=(e,t)=>{const n=(0,r.parseStringStyle)(e);return $a(JSON.stringify(n),!1,t,3)};function ku(e,t){return Gs(e,t)}const Eu=(0,r.makeMap)("passive,once,capture"),Cu=(0,r.makeMap)("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),Su=(0,r.makeMap)("left,right"),Ou=(0,r.makeMap)("onkeyup,onkeydown,onkeypress",!0),Tu=(e,t)=>Wa(e)&&"onclick"===e.content.toLowerCase()?$a(t,!0):4!==e.type?za(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e;const Vu=(e,t)=>{1!==e.type||0!==e.tagType||"script"!==e.tag&&"style"!==e.tag||(t.onError(ku(60,e.loc)),t.removeNode())},Bu=[e=>{1===e.type&&e.props.forEach(((t,n)=>{6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:$a("style",!0,t.loc),exp:xu(t.value.content,t.loc),modifiers:[],loc:t.loc})}))}],Mu={cloak:()=>({props:[]}),html:(e,t,n)=>{const{exp:o,loc:r}=e;return o||n.onError(ku(50,r)),t.children.length&&(n.onError(ku(51,r)),t.children.length=0),{props:[ja($a("innerHTML",!0,r),o||$a("",!0))]}},text:(e,t,n)=>{const{exp:o,loc:r}=e;return o||n.onError(ku(52,r)),t.children.length&&(n.onError(ku(53,r)),t.children.length=0),{props:[ja($a("textContent",!0),o?Jl(o,n)>0?o:Ha(n.helperString(ya),[o],r):$a("",!0))]}},model:(e,t,n)=>{const o=Jc(e,t,n);if(!o.props.length||1===t.tagType)return o;e.arg&&n.onError(ku(55,e.arg.loc));const{tag:r}=t,i=n.isCustomElement(r);if("input"===r||"textarea"===r||"select"===r||i){let s=uu,a=!1;if("input"===r||i){const o=sl(t,"type");if(o){if(7===o.type)s=pu;else if(o.value)switch(o.value.content){case"radio":s=lu;break;case"checkbox":s=cu;break;case"file":a=!0,n.onError(ku(56,e.loc))}}else(function(e){return e.props.some((e=>!(7!==e.type||"bind"!==e.name||e.arg&&4===e.arg.type&&e.arg.isStatic)))})(t)&&(s=pu)}else"select"===r&&(s=du);a||(o.needRuntime=n.helper(s))}else n.onError(ku(54,e.loc));return o.props=o.props.filter((e=>!(4===e.key.type&&"modelValue"===e.key.content))),o},on:(e,t,n)=>Kc(e,0,n,(t=>{const{modifiers:o}=e;if(!o.length)return t;let{key:i,value:s}=t.props[0];const{keyModifiers:a,nonKeyModifiers:l,eventOptionModifiers:c}=((e,t,n,o)=>{const r=[],i=[],s=[];for(let o=0;o{const{exp:o,loc:r}=e;return o||n.onError(ku(58,r)),{props:[],needRuntime:n.helper(mu)}}};const Nu=Object.create(null);function Au(e,t){if(!(0,r.isString)(e)){if(!e.nodeType)return r.NOOP;e=e.innerHTML}const n=e,i=Nu[n];if(i)return i;if("#"===e[0]){const t=document.querySelector(e);0,e=t?t.innerHTML:""}const{code:s}=function(e,t={}){return au(e,(0,r.extend)({},wu,t,{nodeTransforms:[Vu,...Bu,...t.nodeTransforms||[]],directiveTransforms:(0,r.extend)({},Mu,t.directiveTransforms||{}),transformHoist:null}))}(e,(0,r.extend)({hoistStatic:!0,onError:void 0,onWarn:r.NOOP},t));const a=new Function("Vue",s)(o);return a._rc=!0,Nu[n]=a}Hr(Au)},7147:(e,t,n)=>{"use strict";var o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==o&&o,r="URLSearchParams"in o,i="Symbol"in o&&"iterator"in Symbol,s="FileReader"in o&&"Blob"in o&&function(){try{return new Blob,!0}catch(e){return!1}}(),a="FormData"in o,l="ArrayBuffer"in o;if(l)var c=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],u=ArrayBuffer.isView||function(e){return e&&c.indexOf(Object.prototype.toString.call(e))>-1};function d(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||""===e)throw new TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function p(e){return"string"!=typeof e&&(e=String(e)),e}function f(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return i&&(t[Symbol.iterator]=function(){return t}),t}function h(e){this.map={},e instanceof h?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function m(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function v(e){return new Promise((function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}}))}function g(e){var t=new FileReader,n=v(t);return t.readAsArrayBuffer(e),n}function y(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function b(){return this.bodyUsed=!1,this._initBody=function(e){var t;this.bodyUsed=this.bodyUsed,this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:s&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:a&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:r&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():l&&s&&((t=e)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=y(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):l&&(ArrayBuffer.prototype.isPrototypeOf(e)||u(e))?this._bodyArrayBuffer=y(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},s&&(this.blob=function(){var e=m(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var e=m(this);return e||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}return this.blob().then(g)}),this.text=function(){var e,t,n,o=m(this);if(o)return o;if(this._bodyBlob)return e=this._bodyBlob,t=new FileReader,n=v(t),t.readAsText(e),n;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),n=new Array(t.length),o=0;o-1?o:n),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(r),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==t.cache&&"no-cache"!==t.cache)){var i=/([?&])_=[^&]*/;if(i.test(this.url))this.url=this.url.replace(i,"$1_="+(new Date).getTime());else{this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}}function x(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var n=e.split("="),o=n.shift().replace(/\+/g," "),r=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(o),decodeURIComponent(r))}})),t}function k(e,t){if(!(this instanceof k))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===t.statusText?"":""+t.statusText,this.headers=new h(t.headers),this.url=t.url||"",this._initBody(e)}w.prototype.clone=function(){return new w(this,{body:this._bodyInit})},b.call(w.prototype),b.call(k.prototype),k.prototype.clone=function(){return new k(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},k.error=function(){var e=new k(null,{status:0,statusText:""});return e.type="error",e};var E=[301,302,303,307,308];k.redirect=function(e,t){if(-1===E.indexOf(t))throw new RangeError("Invalid status code");return new k(null,{status:t,headers:{location:e}})};var C=o.DOMException;try{new C}catch(e){(C=function(e,t){this.message=e,this.name=t;var n=Error(e);this.stack=n.stack}).prototype=Object.create(Error.prototype),C.prototype.constructor=C}function S(e,t){return new Promise((function(n,r){var i=new w(e,t);if(i.signal&&i.signal.aborted)return r(new C("Aborted","AbortError"));var a=new XMLHttpRequest;function c(){a.abort()}a.onload=function(){var e,t,o={status:a.status,statusText:a.statusText,headers:(e=a.getAllResponseHeaders()||"",t=new h,e.replace(/\r?\n[\t ]+/g," ").split("\r").map((function(e){return 0===e.indexOf("\n")?e.substr(1,e.length):e})).forEach((function(e){var n=e.split(":"),o=n.shift().trim();if(o){var r=n.join(":").trim();t.append(o,r)}})),t)};o.url="responseURL"in a?a.responseURL:o.headers.get("X-Request-URL");var r="response"in a?a.response:a.responseText;setTimeout((function(){n(new k(r,o))}),0)},a.onerror=function(){setTimeout((function(){r(new TypeError("Network request failed"))}),0)},a.ontimeout=function(){setTimeout((function(){r(new TypeError("Network request failed"))}),0)},a.onabort=function(){setTimeout((function(){r(new C("Aborted","AbortError"))}),0)},a.open(i.method,function(e){try{return""===e&&o.location.href?o.location.href:e}catch(t){return e}}(i.url),!0),"include"===i.credentials?a.withCredentials=!0:"omit"===i.credentials&&(a.withCredentials=!1),"responseType"in a&&(s?a.responseType="blob":l&&i.headers.get("Content-Type")&&-1!==i.headers.get("Content-Type").indexOf("application/octet-stream")&&(a.responseType="arraybuffer")),!t||"object"!=typeof t.headers||t.headers instanceof h?i.headers.forEach((function(e,t){a.setRequestHeader(t,e)})):Object.getOwnPropertyNames(t.headers).forEach((function(e){a.setRequestHeader(e,p(t.headers[e]))})),i.signal&&(i.signal.addEventListener("abort",c),a.onreadystatechange=function(){4===a.readyState&&i.signal.removeEventListener("abort",c)}),a.send(void 0===i._bodyInit?null:i._bodyInit)}))}S.polyfill=!0,o.fetch||(o.fetch=S,o.Headers=h,o.Request=w,o.Response=k)}},__webpack_module_cache__={},deferred;function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.m=__webpack_modules__,deferred=[],__webpack_require__.O=(e,t,n,o)=>{if(!t){var r=1/0;for(l=0;l=o)&&Object.keys(__webpack_require__.O).every((e=>__webpack_require__.O[e](t[s])))?t.splice(s--,1):(i=!1,o0&&deferred[l-1][2]>o;l--)deferred[l]=deferred[l-1];deferred[l]=[t,n,o]},__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e={926:0,627:0};__webpack_require__.O.j=t=>0===e[t];var t=(t,n)=>{var o,r,[i,s,a]=n,l=0;if(i.some((t=>0!==e[t]))){for(o in s)__webpack_require__.o(s,o)&&(__webpack_require__.m[o]=s[o]);if(a)var c=a(__webpack_require__)}for(t&&t(n);l__webpack_require__(3815)));var __webpack_exports__=__webpack_require__.O(void 0,[627],(()=>__webpack_require__(7230)));__webpack_exports__=__webpack_require__.O(__webpack_exports__)})();app/Services/FluentConversational/public/js/conversationalForm.js.LICENSE.txt000064400000002064147600120010023247 0ustar00/*! Copyright (c) 2020 - present, DITDOT Ltd. - MIT Licence https://github.com/ditdot-dev/vue-flow-form https://www.ditdot.hr/en */ /*! * swiped-events.js - v@version@ * Pure JavaScript swipe events * https://github.com/john-doherty/swiped-events * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element * @author John Doherty * @license MIT */ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ /** * Checks if an event is supported in the current execution environment. * * NOTE: This will not work correctly for non-generic events such as `change`, * `reset`, `load`, `error`, and `select`. * * Borrows from Modernizr. * * @param {string} eventNameSuffix Event name, e.g. "click". * @param {?boolean} capture Check if the capture phase is supported. * @return {boolean} True if the event is supported. * @internal * @license Modernizr 3.0.0pre (Custom Build) | MIT */ app/Services/FluentConversational/autoload.php000064400000000753147600120010015571 0ustar00app = App::getInstance(); } public function setForm($form) { $this->form = $form; } public function setFormData($formData) { $this->formData = $formData; } /** * @param $fields * @param $formData * @return bool * @throws ValidationException */ public function validateSubmission(&$fields, &$formData) { do_action('fluentform/before_form_validation', $fields, $formData); $this->preventMaliciousAttacks(); $this->validateRestrictions($fields); $this->validateNonce(); $this->validateReCaptcha(); $this->validateHCaptcha(); $this->validateTurnstile(); foreach ($fields as $fieldName => $field) { if (isset($formData[$fieldName])) { $element = $field['element']; $formData[$fieldName] = apply_filters_deprecated('fluentform_input_data_' . $element, [ $formData[$fieldName], $field, $formData, $this->form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/input_data_' . $element, 'Use fluentform/input_data_' . $element . ' instead of fluentform_input_data_' . $element ); $formData[$fieldName] = apply_filters('fluentform/input_data_' . $element, $formData[$fieldName], $field, $formData, $this->form); } } $originalValidations = FormFieldsParser::getValidations($this->form, $formData, $fields); // Fire an event so that one can hook into it to work with the rules & messages. $originalValidations = apply_filters_deprecated('fluentform_validations', [ $originalValidations, $this->form, $formData ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/validations', 'Use fluentform/validations instead of fluentform_validations.' ); $validations = apply_filters('fluentform/validations', $originalValidations, $this->form, $formData); /* * Clean talk fix for now * They should not hook fluentform_validations and return nothing! * We will remove this extra check once it's done */ if ($originalValidations && (!$validations || !array_filter($validations))) { $validations = $originalValidations; } $validator = wpFluentForm('validator')->make($formData, $validations[0], $validations[1]); $errors = []; if ($validator->validate()->fails()) { foreach ($validator->errors() as $attribute => $rules) { $position = strpos($attribute, ']'); if ($position) { $attribute = substr($attribute, 0, strpos($attribute, ']') + 1); } $errors[$attribute] = $rules; } // Fire an event so that one can hook into it to work with the errors. $errors = apply_filters_deprecated('fluentform_validation_error', [ $errors, $this->form, $fields, $formData ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/validation_error', 'Use fluentform/validation_error instead of fluentform_validation_error.' ); $errors = $this->app->applyFilters('fluentform/validation_error', $errors, $this->form, $fields, $formData); } foreach ($fields as $fieldKey => $field) { $field['data_key'] = $fieldKey; $inputName = Arr::get($field, 'raw.attributes.name'); $field['name'] = $inputName; $error = $this->validateInput($field, $formData, $this->form); $error = apply_filters_deprecated('fluentform_validate_input_item_' . $field['element'], [ $error, $field, $formData, $fields, $this->form, $errors ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/validate_input_item_' . $field['element'], 'Use fluentform/validate_input_item_' . $field['element'] . ' instead of fluentform_validate_input_item_' . $field['element'] ); $error = apply_filters('fluentform/validate_input_item_' . $field['element'], $error, $field, $formData, $fields, $this->form, $errors); if ($error) { if (empty($errors[$inputName])) { $errors[$inputName] = []; } if (is_string($error)) { $error = [$error]; } $errors[$inputName] = array_merge($error, $errors[$inputName]); } } $errors = apply_filters_deprecated('fluentform_validation_errors', [ $errors, $formData, $this->form, $fields ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/validation_errors', 'Use fluentform/validation_errors instead of fluentform_validation_errors.' ); $errors = apply_filters('fluentform/validation_errors', $errors, $formData, $this->form, $fields); if ('yes' == Helper::getFormMeta($this->form->id, '_has_user_registration') && !get_current_user_id()) { $errors = apply_filters_deprecated('fluentform_validation_user_registration_errors', [ $errors, $formData, $this->form, $fields ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/validation_user_registration_errors', 'Use fluentform/validation_user_registration_errors instead of fluentform_validation_user_registration_errors.' ); $errors = apply_filters('fluentform/validation_user_registration_errors', $errors, $formData, $this->form, $fields); } if ('yes' == Helper::getFormMeta($this->form->id, '_has_user_update') && get_current_user_id()) { $errors = apply_filters_deprecated('fluentform_validation_user_update_errors', [ $errors, $formData, $this->form, $fields ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/validation_user_update_errors', 'Use fluentform/validation_user_update_errors instead of fluentform_validation_user_update_errors.' ); $errors = apply_filters('fluentform/validation_user_update_errors', $errors, $formData, $this->form, $fields); } if ('update' == Arr::get(Helper::getFormMeta($this->form->id, 'postFeeds'), 'post_form_type')) { $errors = apply_filters('fluentform/validation_post_update_errors', $errors, $formData, $this->form, $fields); } if ($errors) { throw new ValidationException('', 423, null, ['errors' => $errors]); } return true; } protected function validateInput($field, $formData, $form, $fieldName = '', $inputValue = []) { return Helper::validateInput($field, $formData, $form, $fieldName, $inputValue); } /** * Prevents malicious attacks when the submission * count exceeds in an allowed interval. * @throws ValidationException */ public function preventMaliciousAttacks() { $prevent = apply_filters('fluentform/prevent_malicious_attacks', true, $this->form->id); if ($prevent) { $maxSubmissionCount = apply_filters('fluentform/max_submission_count', 5, $this->form->id); $minSubmissionInterval = apply_filters('fluentform/min_submission_interval', 30, $this->form->id); $interval = date('Y-m-d H:i:s', strtotime(current_time('mysql')) - $minSubmissionInterval); $submissionCount = wpFluent()->table('fluentform_submissions') ->where('status', '!=', 'trashed') ->where('ip', $this->app->request->getIp()) ->where('created_at', '>=', $interval) ->count(); if ($submissionCount >= $maxSubmissionCount) { throw new ValidationException('', 429, null, [ 'errors' => [ 'restricted' => [ __(apply_filters('fluentform/too_many_requests', 'Too Many Requests.', $this->form->id), 'fluentform'), ], ] ]); } } } /** * Validate form data based on the form restrictions settings. * * @param $fields * @throws ValidationException */ private function validateRestrictions(&$fields) { $formSettings = FormMeta::retrieve('formSettings', $this->form->id); $this->form->settings = is_array($formSettings) ? $formSettings : []; $isAllowed = [ 'status' => true, 'message' => '', ]; // This will check the following restriction settings. // 1. limitNumberOfEntries // 2. scheduleForm // 3. requireLogin // 4. restricted submission based on ip, country and keywords /* This filter is deprecated and will be removed soon */ $isAllowed = apply_filters('fluentform_is_form_renderable', $isAllowed, $this->form); $isAllowed = apply_filters('fluentform/is_form_renderable', $isAllowed, $this->form); if (!$isAllowed['status']) { throw new ValidationException('', 422, null, [ 'errors' => [ 'restricted' => [ $isAllowed['message'], ], ], ]); } // Since we are here, we should now handle if the form should be allowed to submit empty. $restrictions = Arr::get($this->form->settings, 'restrictions.denyEmptySubmission', []); $this->handleDenyEmptySubmission($restrictions, $fields); $formRestrictions = Arr::get($this->form->settings, 'restrictions.restrictForm', []); $this->handleRestrictedSubmission($formRestrictions, $fields); } /** * Handle response when empty form submission is not allowed. * * @param array $settings * @param $fields * @throws ValidationException */ private function handleDenyEmptySubmission($settings, &$fields) { // Determine whether empty form submission is allowed or not. if (Arr::get($settings, 'enabled')) { // confirm this form has no required fields. if (!FormFieldsParser::hasRequiredFields($this->form, $fields)) { // Filter out the form data which doesn't have values. $filteredFormData = array_filter( // Filter out the other meta fields that aren't actual inputs. array_intersect_key($this->formData, $fields) ); if (!count(Helper::arrayFilterRecursive($filteredFormData))) { $defaultMessage = __('Sorry! You can\'t submit an empty form.','fluentform'); $customMessage = Arr::get($settings, 'message'); throw new ValidationException('', 422, null, [ 'errors' => [ 'restricted' => [ !empty($customMessage) ? $customMessage : $defaultMessage, ], ], ]); } } } } /** * Handle response when form submission is restricted based on ip, country or keywords. * * @param array $settings * @param $fields * @throws ValidationException */ protected function handleRestrictedSubmission($settings, &$fields) { // Determine this restriction is enabled ot not if (!Arr::get($settings, 'enabled')) { return; } $ip = $this->app->request->getIp(); if (is_array($ip)) { $ip = Arr::get($ip, '0'); } $this->checkIpRestriction($settings, $ip); $isCountryRestrictionEnabled = Arr::get($settings, 'fields.country.status'); if ($ipInfo = $this->getIpInfo()) { $country = Arr::get($ipInfo, 'country'); if ($isCountryRestrictionEnabled) { $this->checkCountryRestriction($settings, $country); } } else { if ($isCountryRestrictionEnabled) { $country = $this->getIpBasedOnCountry($ip); $this->checkCountryRestriction($settings, $country); } } $this->checkKeyWordRestriction($settings); } /** * Validate nonce. * @throws ValidationException */ protected function validateNonce() { $formId = $this->form->id; $shouldVerifyNonce = false; /* This filter is deprecated and will be removed soon. */ $shouldVerifyNonce = $this->app->applyFilters('fluentform_nonce_verify', $shouldVerifyNonce, $formId); $shouldVerifyNonce = $this->app->applyFilters('fluentform/nonce_verify', $shouldVerifyNonce, $formId); if ($shouldVerifyNonce) { $nonce = Arr::get($this->formData, '_fluentform_' . $formId . '_fluentformnonce'); if (!wp_verify_nonce($nonce, 'fluentform-submit-form')) { $errors = apply_filters_deprecated( 'fluentForm_nonce_error', [ '_fluentformnonce' => [ __('Nonce verification failed, please try again.', 'fluentform'), ], ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentForm/nonce_error', 'Use fluentForm/nonce_error instead of fluentForm_nonce_error.' ); $errors = $this->app->applyFilters('fluentForm/nonce_error', $errors); throw new ValidationException('', 422, null, ['errors' => $errors]); } } } /** Validate Akismet Spam * @throws ValidationException */ public function handleAkismetSpamError() { $settings = get_option('_fluentform_global_form_settings'); if (!$settings || 'validation_failed' != Arr::get($settings, 'misc.akismet_validation')) { return; } $errors = [ '_fluentformakismet' => __('Submission marked as spammed. Please try again', 'fluentform'), ]; throw new ValidationException('', 422, null, ['errors' => $errors]); } /** Validate CleanTalk Spam * @throws ValidationException */ public function handleCleanTalkSpamError() { $settings = get_option('_fluentform_global_form_settings'); if (!$settings || 'validation_failed' != Arr::get($settings, 'misc.cleantalk_validation')) { return; } $errors = [ '_fluentformcleantalk' => __('Submission marked as spammed. Please try again', 'fluentform'), ]; throw new ValidationException('', 422, null, ['errors' => $errors]); } public function isAkismetSpam($formData, $form) { if (!AkismetHandler::isEnabled()) { return false; } $isSpamCheck = apply_filters_deprecated( 'fluentform_akismet_check_spam', [ true, $form->id, $formData ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/akismet_check_spam', 'Use fluentform/akismet_check_spam instead of fluentform_akismet_check_spam.' ); $isSpamCheck = apply_filters('fluentform/akismet_check_spam', $isSpamCheck, $form->id, $formData); if (!$isSpamCheck) { return false; } // Let's validate now $isSpam = AkismetHandler::isSpamSubmission($formData, $form); $isSpam = apply_filters_deprecated( 'fluentform_akismet_spam_result', [ $isSpam, $form->id, $formData ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/akismet_spam_result', 'Use fluentform/akismet_spam_result instead of fluentform_akismet_spam_result.' ); return apply_filters('fluentform/akismet_spam_result', $isSpam, $form->id, $formData); } public function isCleanTalkSpam($formData, $form) { if (!CleanTalkHandler::isEnabled()) { return false; } $isSpamCheck = apply_filters('fluentform/cleantalk_check_spam', true, $form->id, $formData); if (!$isSpamCheck) { return false; } $isSpam = CleanTalkHandler::isSpamSubmission($formData, $form); return apply_filters('fluentform/cleantalk_spam_result', $isSpam, $form->id, $formData); } /** * Validate reCaptcha. * @throws ValidationException */ private function validateReCaptcha() { $hasAutoRecap = apply_filters_deprecated( 'ff_has_auto_recaptcha', [ false ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/has_recaptcha', 'Use fluentform/has_recaptcha instead of ff_has_auto_recaptcha.' ); $autoInclude = apply_filters('fluentform/has_recaptcha', $hasAutoRecap); if (FormFieldsParser::hasElement($this->form, 'recaptcha') || $autoInclude) { $keys = get_option('_fluentform_reCaptcha_details'); $token = Arr::get($this->formData, 'g-recaptcha-response'); $version = 'v2_visible'; if (!empty($keys['api_version'])) { $version = $keys['api_version']; } $isValid = ReCaptcha::validate($token, $keys['secretKey'], $version); if (!$isValid) { throw new ValidationException('', 422, null, [ 'errors' => [ 'g-recaptcha-response' => [ __('reCaptcha verification failed, please try again.', 'fluentform'), ], ], ]); } } } /** * Validate hCaptcha. * @throws ValidationException */ private function validateHCaptcha() { $hasAutoHcap = apply_filters_deprecated( 'ff_has_auto_hcaptcha', [ false ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/has_hcaptcha', 'Use fluentform/has_hcaptcha instead of ff_has_auto_hcaptcha.' ); $autoInclude = apply_filters('fluentform/has_hcaptcha', $hasAutoHcap); FormFieldsParser::resetData(); if (FormFieldsParser::hasElement($this->form, 'hcaptcha') || $autoInclude) { $keys = get_option('_fluentform_hCaptcha_details'); $token = Arr::get($this->formData, 'h-captcha-response'); $isValid = HCaptcha::validate($token, $keys['secretKey']); if (!$isValid) { throw new ValidationException('', 422, null, [ 'errors' => [ 'h-captcha-response' => [ __('hCaptcha verification failed, please try again.', 'fluentform'), ], ], ]); } } } /** * Validate turnstile. * @throws ValidationException */ private function validateTurnstile() { $hasAutoTurnsTile = apply_filters_deprecated( 'ff_has_auto_turnstile', [ false ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/has_turnstile', 'Use fluentform/has_turnstile instead of ff_has_auto_turnstile.' ); $autoInclude = apply_filters('fluentform/has_turnstile', $hasAutoTurnsTile); if (FormFieldsParser::hasElement($this->form, 'turnstile') || $autoInclude) { $keys = get_option('_fluentform_turnstile_details'); $token = Arr::get($this->formData, 'cf-turnstile-response'); $isValid = Turnstile::validate($token, $keys['secretKey']); if (!$isValid) { throw new ValidationException('', 422, null, [ 'errors' => [ 'cf-turnstile-response' => [ __('Turnstile verification failed, please try again.', 'fluentform'), ], ], ]); } } } /** * Delegate the validation rules & messages to the * ones that the validation library recognizes. * * @param $rules * @param $messages * @param array $search * @param array $replace * @return array */ protected function delegateValidations($rules, $messages, $search = [], $replace = []) { $search = $search ?: ['max_file_size', 'allowed_file_types']; $replace = $replace ?: ['max', 'mimes']; foreach ($rules as &$rule) { $rule = str_replace($search, $replace, $rule); } foreach ($messages as $key => $message) { $newKey = str_replace($search, $replace, $key); $messages[$newKey] = $message; unset($messages[$key]); } return [$rules, $messages]; } /** * Get IP info from ipinfo.io * * @throws ValidationException */ private function getIpInfo() { $token = Helper::getIpinfo(); $url = 'https://ipinfo.io'; if ($token) { $url = 'https://ipinfo.io/?token=' . $token; } $data = wp_remote_get($url); $code = wp_remote_retrieve_response_code($data); $body = wp_remote_retrieve_body($data); $result = \json_decode($body, true); if ($code === 200) { return $result; } else { $message = __('Sorry! There is an error in your geocode IP address settings. Please check the token', 'fluentform'); self::throwValidationException($message); } } /** * Get IP and Country from geoplugin * * @throws ValidationException */ private function getIpBasedOnCountry($ip) { $request = wp_remote_get("http://www.geoplugin.net/php.gp?ip={$ip}"); $code = wp_remote_retrieve_response_code($request); $message = __('Sorry! There is an error occurred in getting Country using geoplugin.net. Please check form settings and try again.', 'fluentform'); if ($code === 200) { $body = wp_remote_retrieve_body($request); $body = unserialize($body); if ($country = Arr::get($body,'geoplugin_countryCode')) { return $country; } else { self::throwValidationException($message); } } else { self::throwValidationException($message); } } /** * @param $value * @param $providedKeywords * @return bool */ public static function containsRestrictedKeywords($value, $providedKeywords) { preg_match_all('/\b[\p{L}\d\s]+\b/u', $value, $matches); $words = $matches[0] ?? []; foreach ($providedKeywords as $keyword) { foreach ($words as $word) { if ( strtoupper($word) === strtoupper($keyword) || preg_match('/\b' . strtoupper($keyword) . '\b/', strtoupper($word)) ) { return true; } } } return false; } /** * @throws ValidationException */ private function checkIpRestriction($settings, $ip) { if (Arr::get($settings, 'fields.ip.status') && $ip) { $providedIp = array_map('trim', explode(',', Arr::get($settings, 'fields.ip.values'))); $isFailed = Arr::get($settings, 'fields.ip.validation_type') === 'fail_on_condition_met'; $failedSubmissionIfExists = $isFailed && in_array($ip, $providedIp); $allowSubmissionIfNotExists = !$isFailed && !in_array($ip, $providedIp); if ($failedSubmissionIfExists || $allowSubmissionIfNotExists) { $defaultMessage = __('Sorry! You can\'t submit a form from your IP address.', 'fluentform'); $message = Arr::get($settings, 'fields.ip.message', $defaultMessage); self::throwValidationException($message); } } } /** * @throws ValidationException */ private function checkCountryRestriction($settings, $country) { if ($country) { $providedCountry = Arr::get($settings, 'fields.country.values'); $isFailed = Arr::get($settings, 'fields.country.validation_type') === 'fail_on_condition_met'; $failedSubmissionIfExists = $isFailed && in_array($country, $providedCountry); $allowSubmissionIfNotExists = !$isFailed && !in_array($country, $providedCountry); if ($failedSubmissionIfExists || $allowSubmissionIfNotExists) { $defaultMessage = __('Sorry! You can\'t submit this form from the country you are residing.', 'fluentform'); $message = Arr::get($settings, 'fields.country.message', $defaultMessage); self::throwValidationException($message); } } } private function checkKeyWordRestriction($settings) { if (!Arr::get($settings, 'fields.keywords.status')) { return; } $providedKeywords = explode(',', Arr::get($settings, 'fields.keywords.values')); $providedKeywords = array_map('trim', $providedKeywords); $inputSubmission = array_intersect_key( $this->formData, array_flip( array_keys( FormFieldsParser::getInputs($this->form) ) ) ); $defaultMessage = __('Sorry! Your submission contains some restricted keywords.', 'fluentform'); $message = Arr::get($settings, 'fields.keywords.message', $defaultMessage); self::checkKeywordsMatching($inputSubmission, $message, $providedKeywords); } private static function checkKeywordsMatching($inputSubmission, $message, $providedKeywords) { foreach ($inputSubmission as $value) { if (!empty($value)) { if (is_array($value)) { self::checkKeywordsMatching($value, $message, $providedKeywords); } else { if (self::containsRestrictedKeywords($value, $providedKeywords)) { self::throwValidationException($message); } } } } } /** * @throws ValidationException */ public static function throwValidationException($message) { throw new ValidationException('', 422, null, [ 'errors' => [ 'restricted' => [ $message ], ], ]); } } app/Services/Form/HistoryService.php000064400000025707147600120010013507 0ustar00form_fields, true); $newData = json_decode($postData['form_fields'], true); $this->checkAndStoreFormChanges($oldData, $newData, $form->id); } public function checkAndStoreFormChanges($oldData, $newData, $formId) { $this->compareFields($oldData['fields'], $newData['fields']); $this->compareFields([$oldData['submitButton']], [$newData['submitButton']]); if (Arr::isTrue($oldData, 'stepsWrapper.stepStart') && Arr::isTrue($newData, 'stepsWrapper.stepStart')) { $newFirstSteps = Arr::get($newData, 'stepsWrapper.stepStart'); $newLastSteps = Arr::get($newData, 'stepsWrapper.stepEnd'); $oldFirstSteps = Arr::get($oldData, 'stepsWrapper.stepStart'); $oldLastSteps = Arr::get($oldData, 'stepsWrapper.stepEnd'); $this->compareFields([$oldFirstSteps, $oldLastSteps], [$newFirstSteps, $newLastSteps]); } if (!empty($this->changes)) { $changeTitle = $this->generateChangeTitle(); $this->storeFormHistory($formId, $oldData, $changeTitle); } } private function compareFields($oldFields, $newFields) { $oldFieldMap = $this->mapFieldsByUniqueKey($oldFields); $newFieldMap = $this->mapFieldsByUniqueKey($newFields); // Check for removed fields foreach ($oldFieldMap as $key => $oldField) { if (!isset($newFieldMap[$key])) { $fieldLabel = $this->getFieldLabel($oldField); $this->addChange('removed', $fieldLabel); $this->removedFields[] = $key; } } // Check for added fields foreach ($newFieldMap as $key => $newField) { if (!isset($oldFieldMap[$key])) { $fieldLabel = $this->getFieldLabel($newField); $this->addChange('added', $fieldLabel); $this->addedFields[] = $key; } } $oldKeys = array_keys($oldFieldMap); $newKeys = array_keys($newFieldMap); // Check if it's just a reordering if (count($oldKeys) === count($newKeys) && array_diff($oldKeys, $newKeys) === array_diff($newKeys, $oldKeys)) { if ($oldKeys !== $newKeys) { $this->addChange('reordered', 'Fields'); } // Compare field details even if order changed foreach ($newFieldMap as $key => $newField) { $this->compareFieldDetails($oldFieldMap[$key], $newField); } return; } // Compare existing fields foreach ($newFieldMap as $key => $newField) { if (isset($oldFieldMap[$key])) { $this->compareFieldDetails($oldFieldMap[$key], $newField); } } // Check for reordering only if no fields were added or removed if (empty($this->addedFields) && empty($this->removedFields)) { $this->checkFieldOrder($oldFields, $newFields); } } private function mapFieldsByUniqueKey($fields) { $map = []; foreach ($fields as $field) { $map[$this->getFieldKey($field)] = $field; } return $map; } private function getFieldKey($field) { return $field['uniqElKey'] ?? $field['element']; } private function getFieldLabel($field) { return $field['settings']['label'] ?? $field['element'] ?? 'Unnamed Field'; } private function compareFieldDetails($oldField, $newField) { if (in_array($this->getFieldKey($oldField), $this->addedFields) || in_array($this->getFieldKey($oldField), $this->removedFields)) { return; } $fieldLabel = $this->getFieldLabel($newField); $categories = ['settings', 'attributes', 'fields', 'columns']; foreach ($categories as $category) { $this->compareFieldProperties($oldField, $newField, $fieldLabel, $category); } } private function compareFieldProperties($oldField, $newField, $fieldLabel, $category) { if (!isset($oldField[$category]) && !isset($newField[$category])) { return; } if ($category === 'columns') { if ($this->areColumnsChanged($oldField[$category] ?? [], $newField[$category] ?? [])) { $this->addChange('modified', $fieldLabel, 'columns', 'Changed', null, $category); } return; } $this->compareArrayRecursively($oldField[$category] ?? [], $newField[$category] ?? [], $fieldLabel, $category); } private function compareArrayRecursively($oldValue, $newValue, $fieldLabel, $category, $parentKey = '') { foreach ($newValue as $key => $value) { $currentKey = $parentKey ? "$parentKey.$key" : $key; if (!isset($oldValue[$key]) || $oldValue[$key] !== $value) { if (!is_array($value)) { $this->addChange('modified', $fieldLabel, $currentKey, $value, $oldValue[$key] ?? null, $category); } else { $this->compareArrayRecursively($oldValue[$key] ?? [], $value, $fieldLabel, $category, $currentKey); } } } } private function areColumnsChanged($oldColumns, $newColumns) { return $oldColumns !== $newColumns; } private function checkFieldOrder($oldFields, $newFields) { $oldOrder = array_map(function ($field) { return $field['uniqElKey']; }, $oldFields); $newOrder = array_map(function ($field) { return $field['uniqElKey']; }, $newFields); if ($oldOrder !== $newOrder) { $this->addChange('reordered', 'Fields'); } } private function addChange($type, $label, $key = null, $newValue = null, $oldValue = null, $category = null) { $change = [ 'type' => $type, 'label' => $label ]; if ($key !== null) { $change['key'] = $key; } if ($newValue !== null && !is_array($newValue)) { $change['new_value'] = $newValue; } if ($oldValue !== null && !is_array($oldValue)) { $change['old_value'] = $oldValue; } if ($label !== null && $key !== null && !is_array($newValue)) { $oldValue = $oldValue ?: 'empty'; if(is_bool($oldValue)){ $oldValue = $oldValue ? 'Active' : 'inActive'; } if(is_bool($newValue)){ $newValue = $newValue ? 'Active' : 'inActive'; } $change['info'] = ucfirst($type) . " $label $key value from '$oldValue' to '$newValue'"; } elseif ($type !== null && $label !== null) { $change['info'] = ucfirst($type) . " $label "; } if ($category !== null) { $change['category'] = $category; } $this->changes[] = $change; } private function generateChangeTitle() { $addedCount = count($this->addedFields); $removedCount = count($this->removedFields); $modifiedCount = count(array_filter($this->changes, function($change) { return $change['type'] === 'modified'; })); $reorderedCount = count(array_filter($this->changes, function($change) { return $change['type'] === 'reordered'; })); $changeDescriptions = []; if ($addedCount > 0) { $changeDescriptions[] = "Added " . ($addedCount > 1 ? "$addedCount fields" : "1 field"); } if ($removedCount > 0) { $changeDescriptions[] = "Removed " . ($removedCount > 1 ? "$removedCount fields" : "1 field"); } if ($modifiedCount > 0) { $changeDescriptions[] = "Modified " . ($modifiedCount > 1 ? "$modifiedCount attributes/settings" : "1 attribute/setting"); } if ($reorderedCount > 0) { $changeDescriptions[] = "Reordered fields"; } if (count($changeDescriptions) > 1) { return "Multiple changes"; } elseif (count($changeDescriptions) == 1) { return $changeDescriptions[0]; } return "Form structure changed"; } private function storeFormHistory($formId, $oldData, $changeTitle) { $revisions = FormMeta::where('form_id', $formId) ->where('meta_key', 'revision') ->count(); if ($revisions === 0) { $changeTitle = __('Initial state','fluentform'); } $historyEntry = [ 'change_title' => $changeTitle, 'timestamp' => current_time('mysql'), 'old_data' => json_encode($oldData), 'changes' => json_encode($this->changes) ]; $this->maybeCleanOldData($formId); FormMeta::insert([ 'form_id' => $formId, 'meta_key' => 'revision', 'value' => json_encode($historyEntry) ]); } public static function get($formId) { $revisions = FormMeta::where('form_id', $formId) ->where('meta_key', 'revision') ->get(); $formattedRevisions = []; foreach ($revisions as $rev) { $data = json_decode($rev['value'], true); $data['old_data'] = json_decode($data['old_data'], true); $data['changes'] = json_decode($data['changes'], true); $data['timestamp'] = human_time_diff(current_time('timestamp'),strtotime($data['timestamp'])). ' ago'; $formattedRevisions[] = $data; } return ['history' =>array_reverse( $formattedRevisions) ]; } public function delete($formId) { FormMeta::remove($formId, 'revision'); } /** * Delete records keeping only last 10 per form * @param $formId * @return void */ private function maybeCleanOldData($formId) { $historyCount = FormMeta::where([ 'form_id' => $formId, 'meta_key' => 'revision', ])->count(); if ($historyCount >= 10) { $entriesToRemove = $historyCount - 9; $oldestEntries = FormMeta::where([ 'form_id' => $formId, 'meta_key' => 'revision', ]) ->orderBy('id', 'asc') ->limit($entriesToRemove) ->pluck('id'); FormMeta::whereIn('id', $oldestEntries)->delete(); } } } app/Services/Form/Updater.php000064400000025720147600120010012124 0ustar00validate([ 'title' => $title, 'formFields' => $formFields, ]); try { $form = Form::findOrFail($formId); } catch (Exception $e) { throw new \Exception("The form couldn't be found."); } $data = [ 'title' => $title, 'status' => $status, 'updated_at' => current_time('mysql'), ]; if ($formFields) { $formFields = apply_filters_deprecated( 'fluentform_form_fields_update', [ $formFields, $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/form_fields_update', 'Use fluentform/form_fields_update instead of fluentform_form_fields_update.' ); $formFields = apply_filters('fluentform/form_fields_update', $formFields, $formId); $formFields = $this->sanitizeFields($formFields); $data['form_fields'] = $formFields; /** * Fires before a Form is updated. * @since 5.2.1 */ do_action('fluentform/before_updating_form', $form, $data); $form->fill($data); if (FormFieldsParser::hasPaymentFields($form)) { $data['has_payment'] = 1; } elseif ($form->has_payment) { $data['has_payment'] = 0; } $this->updatePrimaryEmail($form); } $form->fill($data)->save(); return $form; } private function validate($attributes) { if ($attributes['formFields']) { $duplicates = Helper::getDuplicateFieldNames($attributes['formFields']); if ($duplicates) { $duplicateString = implode(', ', $duplicates); throw new Exception( sprintf('Name attribute %s has duplicate value.', $duplicateString) ); } } if (!$attributes['title']) { throw new Exception('The title field is required.'); } } private function sanitizeFields($formFields) { if (fluentformCanUnfilteredHTML()) { return $formFields; } $fieldsArray = json_decode($formFields, true); if (isset($fieldsArray['submitButton'])) { $fieldsArray['submitButton']['settings']['button_ui']['text'] = fluentform_sanitize_html( $fieldsArray['submitButton']['settings']['button_ui']['text'] ); if (!empty($fieldsArray['submitButton']['settings']['button_ui']['img_url'])) { $fieldsArray['submitButton']['settings']['button_ui']['img_url'] = sanitize_url( $fieldsArray['submitButton']['settings']['button_ui']['img_url'] ); } } $fieldsArray['fields'] = $this->sanitizeFieldMaps($fieldsArray['fields']); $fieldsArray['fields'] = $this->sanitizeCustomSubmit($fieldsArray['fields']); return json_encode($fieldsArray); } private function sanitizeFieldMaps($fields) { if (!is_array($fields)) { return $fields; } $attributesMap = [ 'name' => 'sanitize_key', 'value' => 'sanitize_textarea_field', 'id' => 'sanitize_key', 'class' => 'sanitize_text_field', 'placeholder' => 'sanitize_text_field', ]; $attributesKeys = array_keys($attributesMap); $settingsMap = [ 'container_class' => 'sanitize_text_field', 'label' => 'fluentform_sanitize_html', 'tnc_html' => 'fluentform_sanitize_html', 'label_placement' => 'sanitize_text_field', 'help_message' => 'wp_kses_post', 'admin_field_label' => 'sanitize_text_field', 'prefix_label' => 'sanitize_text_field', 'suffix_label' => 'sanitize_text_field', 'unique_validation_message' => 'sanitize_text_field', 'advanced_options' => 'fluentform_options_sanitize', 'html_codes' => 'fluentform_sanitize_html', 'description' => 'fluentform_sanitize_html', 'grid_columns' => [Helper::class, 'sanitizeArrayKeysAndValues'], 'grid_rows' => [Helper::class, 'sanitizeArrayKeysAndValues'], ]; $settingsKeys = array_keys($settingsMap); $stylePrefMap = [ 'layout' => 'sanitize_key', 'media' => 'sanitize_url', 'alt_text' => 'sanitize_text_field', ]; $stylePrefKeys = array_keys($stylePrefMap); foreach ($fields as $fieldIndex => &$field) { $element = Arr::get($field, 'element'); if ('container' == $element) { $columns = $field['columns']; foreach ($columns as $columnIndex => $column) { $fields[$fieldIndex]['columns'][$columnIndex]['fields'] = $this->sanitizeFieldMaps($column['fields']); } continue; } if ('welcome_screen' == $element) { if ($value = Arr::get($field, 'settings.button_ui.text')) { $field['settings']['button_ui']['text'] = sanitize_text_field($value); } } if (!empty($field['attributes'])) { $attributes = array_filter(Arr::only($field['attributes'], $attributesKeys)); foreach ($attributes as $key => $value) { $fields[$fieldIndex]['attributes'][$key] = call_user_func($attributesMap[$key], $value); } } if (!empty($field['settings'])) { $settings = array_filter(Arr::only($field['settings'], array_values($settingsKeys))); foreach ($settings as $key => $value) { $fields[$fieldIndex]['settings'][$key] = call_user_func($settingsMap[$key], $value); } } /* * Handle Name or address fields */ if (!empty($field['fields'])) { $fields[$fieldIndex]['fields'] = $this->sanitizeFieldMaps($field['fields']); continue; } if (!empty($field['style_pref'])) { $settings = array_filter(Arr::only($field['style_pref'], $stylePrefKeys)); foreach ($settings as $key => $value) { $fields[$fieldIndex]['style_pref'][$key] = call_user_func($stylePrefMap[$key], $value); } } $validationRules = Arr::get($field, 'settings.validation_rules'); if (!empty($validationRules)) { foreach ($validationRules as $key => $rule) { if (isset($rule['message'])) { $message = $rule['message']; $field['settings']['validation_rules'][$key]['message'] = wp_kses_post($message); continue; } } } } return $fields; } private function updatePrimaryEmail($form) { $emailInputs = FormFieldsParser::getElement($form, ['input_email'], ['element', 'attributes']); if ($emailInputs) { $emailInput = array_shift($emailInputs); $emailInputName = Arr::get($emailInput, 'attributes.name'); } else { $emailInputName = ''; } FormMeta::persist($form->id, '_primary_email_field', $emailInputName); } private function sanitizeCustomSubmit($fields) { $customSubmitSanitizationMap = [ 'hover_styles' => [ 'backgroundColor' => [$this, 'sanitizeRgbColor'], 'borderColor' => [$this, 'sanitizeRgbColor'], 'color' => [$this, 'sanitizeRgbColor'], 'borderRadius' => 'sanitize_text_field', 'minWidth' => [$this, 'sanitizeMinWidth'] ], 'normal_styles' => [ 'backgroundColor' => [$this, 'sanitizeRgbColor'], 'borderColor' => [$this, 'sanitizeRgbColor'], 'color' => [$this, 'sanitizeRgbColor'], 'borderRadius' => 'sanitize_text_field', 'minWidth' => [$this, 'sanitizeMinWidth'] ], 'button_ui' => [ 'type' => 'sanitize_text_field', 'text' => 'sanitize_text_field', 'img_url' => 'esc_url_raw', ], ]; foreach ($fields as $fieldIndex => $field) { $element = Arr::get($field, 'element'); if ('custom_submit_button' == $element) { $styleAttr = ['hover_styles', 'normal_styles', 'button_ui']; foreach ($styleAttr as $attr) { if ($styleConfigs = Arr::get($field, 'settings.' . $attr)) { foreach ($styleConfigs as $key => $value) { if (isset($customSubmitSanitizationMap[$attr][$key])) { $sanitizeFunction = $customSubmitSanitizationMap[$attr][$key]; $fields[$fieldIndex]['settings'][$attr][$key] = $sanitizeFunction($value); } } } } } elseif ('container' == $element) { $columns = $field['columns']; foreach ($columns as $columnIndex => $column) { $fields[$fieldIndex]['columns'][$columnIndex]['fields'] = $this->sanitizeCustomSubmit($column['fields']); } return $fields; } } return $fields; } public function sanitizeMinWidth($value) { if (is_string($value) && preg_match('/^\d+%$/', $value)) { return $value; } return ''; } public function sanitizeRgbColor($value) { if (preg_match('/^rgba?\((\d{1,3}\s*,\s*){2,3}(0|1|0?\.\d+)\)$/', $value)) { return $value; } return ''; } } app/Services/Form/SubmissionHandlerService.php000064400000047444147600120010015501 0ustar00app = App::getInstance(); $this->validationService = new FormValidationService(); $this->submissionService = new SubmissionService(); } /** * Form Submission * @param $formDataRaw * @param $formId * @return array * @throws \FluentForm\Framework\Validator\ValidationException */ public function handleSubmission($formDataRaw, $formId) { $this->prepareHandler($formId, $formDataRaw); $insertData = $this->handleValidation(); if ($returnData = $this->isSpamAndSkipProcessing($insertData)) { return $returnData; } $insertId = $this->insertSubmission($insertData, $formDataRaw, $formId); return $this->processSubmissionData($insertId, $this->formData, $this->form); } /** * @throws ValidationException */ protected function prepareHandler($formId, $formDataRaw) { $this->form = Form::find($formId); if (!$this->form) { throw new ValidationException('', 422, null, ['errors' => 'Sorry, No corresponding form found']); } /** * Filtering empty array inputs to normalize * * For unchecked checkable type, the name filled with empty value * by serialized on the client-side JavaScript. This adjustment ensures filter empty array inputs to normalize- Ex: [''] -> [] */ foreach ($formDataRaw as $name => $input) { if (is_array($input)) { $formDataRaw[$name] = array_filter($input, function($value) { return $value !== null && $value !== false && $value !== ''; }); } } // Parse the form and get the flat inputs with validations. $this->fields = FormFieldsParser::getEssentialInputs($this->form, $formDataRaw, ['rules', 'raw']); // @todo Remove this after few version as we are doing it during conversation now // Removing left out fields during conversation which causes validation issues $isConversationalForm = Helper::isConversionForm($formId); if ($isConversationalForm) { $conversationalForm = $this->form; $conversationalForm->form_fields = \FluentForm\App\Services\FluentConversational\Classes\Converter\Converter::convertExistingForm($this->form); $conversationalFields = FormFieldsParser::getInputs($conversationalForm); $this->fields = array_intersect_key($this->fields, $conversationalFields); } $formData = fluentFormSanitizer($formDataRaw, null, $this->fields); $acceptedFieldKeys = array_merge($this->fields, array_flip(Helper::getWhiteListedFields($formId))); $this->formData = array_intersect_key($formData, $acceptedFieldKeys); } /** * Prepare the data to be inserted to the database. * @param boolean $formData * @return array */ public function prepareInsertData($formData = false) { $formId = $this->form->id; if (!$formData) { $formData = $this->formData; } $previousItem = Submission::where('form_id', $formId)->orderBy('id', 'DESC')->first(); $serialNumber = 1; if ($previousItem) { $serialNumber = $previousItem->serial_number + 1; } $browser = new Browser(); $inputConfigs = FormFieldsParser::getEntryInputs($this->form, ['admin_label', 'raw']); $formData = apply_filters_deprecated( 'fluentform_insert_response_data', [ $formData, $formId, $inputConfigs ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/insert_response_data', 'Use fluentform/insert_response_data instead of fluentform_insert_response_data.' ); $this->formData = apply_filters('fluentform/insert_response_data', $formData, $formId, $inputConfigs); $ipAddress = $this->app->request->getIp(); $disableIpLog = apply_filters_deprecated( 'fluentform_disable_ip_logging', [ false, $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/disable_ip_logging', 'Use fluentform/disable_ip_logging instead of fluentform_disable_ip_logging.' ); if ((defined('FLUENTFROM_DISABLE_IP_LOGGING') && FLUENTFROM_DISABLE_IP_LOGGING) || apply_filters('fluentform/disable_ip_logging', $disableIpLog, $formId)) { $ipAddress = false; } $response = [ 'form_id' => $formId, 'serial_number' => $serialNumber, 'response' => json_encode($this->formData, JSON_UNESCAPED_UNICODE), 'source_url' => site_url(Arr::get($formData, '_wp_http_referer')), 'user_id' => get_current_user_id(), 'browser' => $browser->getBrowser(), 'device' => $browser->getPlatform(), 'ip' => $ipAddress, 'created_at' => current_time('mysql'), 'updated_at' => current_time('mysql'), ]; $response = apply_filters_deprecated( 'fluentform_filter_insert_data', [ $response ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/filter_insert_data', 'Use fluentform/filter_insert_data instead of fluentform_filter_insert_data.' ); return apply_filters('fluentform/filter_insert_data', $response); } public function processSubmissionData($insertId, $formData, $form) { $form = isset($this->form) ? $this->form : $form; $formData = isset($this->formData) ? $this->formData : $formData; do_action_deprecated( 'fluentform_before_form_actions_processing', [ $insertId, $this->formData, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/before_form_actions_processing', 'Use fluentform/before_form_actions_processing instead of fluentform_before_form_actions_processing.' ); do_action('fluentform/before_form_actions_processing', $insertId, $formData, $form); if ($insertId) { ob_start(); $this->submissionService->recordEntryDetails($insertId, $form->id, $formData); $isError = ob_get_clean(); if ($isError) { SubmissionDetails::migrate(); } } $error = ''; try { do_action('fluentform_submission_inserted', $insertId, $formData, $form); do_action('fluentform/submission_inserted', $insertId, $formData, $form); Helper::setSubmissionMeta($insertId, 'is_form_action_fired', 'yes'); do_action_deprecated( 'fluentform_submission_inserted_' . $form->type . '_form', [ $insertId, $formData, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/submission_inserted_' . $form->type . '_form', 'Use fluentform/submission_inserted_' . $form->type . '_form instead of fluentform_submission_inserted_' . $form->type . '_form' ); $this->app->doAction( 'fluentform/submission_inserted_' . $form->type . '_form', $insertId, $formData, $form ); } catch (\Exception $e) { if (defined('WP_DEBUG') && WP_DEBUG) { $error = $e->getMessage(); } } do_action_deprecated( 'fluentform_before_submission_confirmation', [ $insertId, $formData, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/before_submission_confirmation', 'Use fluentform/before_submission_confirmation instead of fluentform_before_submission_confirmation.' ); do_action('fluentform/before_submission_confirmation', $insertId, $formData, $form); return [ 'insert_id' => $insertId, 'result' => $this->getReturnData($insertId, $form, $formData), 'error' => $error, ]; } /** * Return Formatted Response Data * @param $insertId * @param $form * @param $formData * @return mixed */ public function getReturnData($insertId, $form, $formData) { if (empty($form->settings)) { $formSettings = FormMeta::retrieve('formSettings', $form->id); $form->settings = is_array($formSettings) ? $formSettings : []; } $confirmation = $form->settings['confirmation']; $confirmation = apply_filters_deprecated( 'fluentform_form_submission_confirmation', [ $confirmation, $formData, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/form_submission_confirmation', 'Use fluentform/form_submission_confirmation instead of fluentform_form_submission_confirmation.' ); $confirmation = apply_filters( 'fluentform/form_submission_confirmation', $confirmation, $formData, $form ); if ('samePage' == Arr::get($confirmation, 'redirectTo')) { $confirmation['messageToShow'] = apply_filters_deprecated( 'fluentform_submission_message_parse', [ $confirmation['messageToShow'], $insertId, $formData, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/submission_message_parse', 'Use fluentform/submission_message_parse instead of fluentform_submission_message_parse.' ); $confirmation['messageToShow'] = apply_filters('fluentform/submission_message_parse', $confirmation['messageToShow'], $insertId, $formData, $form); $message = ShortCodeParser::parse( $confirmation['messageToShow'], $insertId, $formData, $form, false, true ); $message = $message ? $message : __('The form has been successfully submitted.', 'fluentform'); $message = fluentform_sanitize_html($message); $returnData = [ 'message' => do_shortcode($message), 'action' => $confirmation['samePageFormBehavior'], ]; } else { $redirectUrl = Arr::get($confirmation, 'customUrl'); if ('customPage' == $confirmation['redirectTo']) { $redirectUrl = get_permalink($confirmation['customPage']); } $enableQueryString = Arr::get($confirmation, 'enable_query_string') === 'yes'; $queryStrings = Arr::get($confirmation, 'query_strings'); if ($enableQueryString && $queryStrings) { $separator = strpos($redirectUrl, '?') !== false ? '&' : '?'; $redirectUrl .= $separator . $queryStrings; } $parseUrl = apply_filters_deprecated('fluentform_will_parse_url_value', [ true, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/will_parse_url_value', 'Use fluentform/will_parse_url_value instead of fluentform_will_parse_url_value.' ); $isUrlParser = apply_filters('fluentform/will_parse_url_value', $parseUrl, $form); $redirectUrl = ShortCodeParser::parse( $redirectUrl, $insertId, $formData, $form, $isUrlParser ); if ($isUrlParser) { /* * Encode Redirect Value */ $encodeUrl = apply_filters('fluentform/will_encode_url_value',false,$redirectUrl, $insertId, $form, $formData); if (strpos($redirectUrl, '&') || '=' == substr($redirectUrl, -1) || $encodeUrl) { $urlArray = explode('?', $redirectUrl); $baseUrl = array_shift($urlArray); $parsedUrl = wp_parse_url($redirectUrl); $query = Arr::get($parsedUrl, 'query', ''); $queryParams = explode('&', $query); $params = []; foreach ($queryParams as $queryParam) { $paramArray = explode('=', $queryParam); if (!empty($paramArray[1])) { if (strpos($paramArray[1], '%') === false) { $params[$paramArray[0]] = rawurlencode($paramArray[1]); } else { // Param string is URL-encoded $params[$paramArray[0]] = $paramArray[1]; } } } if ($params) { $redirectUrl = add_query_arg($params, $baseUrl); if ($fragment = Arr::get($parsedUrl, 'fragment')) { $redirectUrl .= '#' . $fragment; } } } } $message = ShortCodeParser::parse( Arr::get($confirmation, 'redirectMessage', ''), $insertId, $formData, $form, false, true ); $redirectUrl = apply_filters('fluentform/redirect_url_value', wp_sanitize_redirect(rawurldecode($redirectUrl)), $insertId, $form, $formData); $returnData = [ 'redirectUrl' => esc_url_raw($redirectUrl), 'message' => fluentform_sanitize_html($message), ]; } $returnData = apply_filters_deprecated('fluentform_submission_confirmation', [ $returnData, $form, $confirmation, $insertId, $formData ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/submission_confirmation', 'Use fluentform/submission_confirmation instead of fluentform_submission_confirmation.' ); return $this->app->applyFilters( 'fluentform/submission_confirmation', $returnData, $form, $confirmation, $insertId, $formData ); } /** * Validates Submission * @throws ValidationException */ private function handleValidation() { /* Now validate the data using the previous validations. */ $this->validationService->setForm($this->form); $this->validationService->setFormData($this->formData); $this->validationService->validateSubmission($this->fields, $this->formData); $insertData = $this->prepareInsertData(); if ($this->validationService->isAkismetSpam($this->formData, $this->form)) { $insertData['status'] = 'spam'; $this->validationService->handleAkismetSpamError(); } if ($this->validationService->isCleanTalkSpam($this->formData, $this->form)) { $insertData['status'] = 'spam'; $this->validationService->handleCleanTalkSpamError(); } return $insertData; } protected function insertSubmission($insertData, $formDataRaw, $formId) { do_action_deprecated( 'fluentform_before_insert_submission', [ $insertData, $formDataRaw, $this->form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/before_insert_submission', 'Use fluentform/before_insert_submission instead of fluentform_before_insert_submission.' ); do_action('fluentform/before_insert_submission', $insertData, $formDataRaw, $this->form); if ($this->form->has_payment) { do_action_deprecated( 'fluentform_before_insert_payment_form', [ $insertData, $formDataRaw, $this->form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/before_insert_payment_form', 'Use fluentform/before_insert_payment_form instead of fluentform_before_insert_payment_form.' ); do_action('fluentform/before_insert_payment_form', $insertData, $formDataRaw, $this->form); } $insertId = Submission::insertGetId($insertData); do_action('fluentform/notify_on_form_submit', $insertId, $this->formData, $this->form); $uidHash = md5(wp_generate_uuid4() . $insertId); Helper::setSubmissionMeta($insertId, '_entry_uid_hash', $uidHash, $formId); return $insertId; } protected function isSpamAndSkipProcessing($insertData) { if ('spam' == Arr::get($insertData, 'status')) { $settings = get_option('_fluentform_global_form_settings'); if ($settings && 'mark_as_spam_and_skip_processing' == Arr::get($settings, 'misc.akismet_validation')) { return $this->processSpamSubmission($insertData); } } return false; } protected function processSpamSubmission($insertData) { if ($insertId = Submission::insertGetId($insertData)) { $uidHash = md5(wp_generate_uuid4() . $insertId); Helper::setSubmissionMeta($insertId, '_entry_uid_hash', $uidHash, $this->form->id); ob_start(); $this->submissionService->recordEntryDetails($insertId, $this->form->id, $this->formData); $isError = ob_get_clean(); if ($isError) { SubmissionDetails::migrate(); } Helper::setSubmissionMeta($insertId, 'is_form_action_fired', 'yes'); do_action('fluentform/log_data', [ 'parent_source_id' => $this->form->id, 'source_type' => 'submission_item', 'source_id' => $insertId, 'component' => 'Akismet Integration', 'status' => 'info', 'title' => __('Skip Submission Processing', 'fluentform'), 'description' => __('Submission marked as spammed. And skip all actions processing', 'fluentform') ]); return [ 'insert_id' => $insertId, 'result' => $this->getReturnData($insertId, $this->form, $this->formData), ]; } return false; } } app/Services/Form/FormService.php000064400000071241147600120010012743 0ustar00model = new Form(); $this->fields = new Fields(); $this->app = App::getInstance(); $this->updater = new Updater(); $this->duplicator = new Duplicator(); } /** * Get the paginated forms matching search criteria. * * @param array $attributes * @return array */ public function get($attributes = []) { return fluentFormApi('forms')->forms([ 'search' => Arr::get($attributes, 'search'), 'status' => Arr::get($attributes, 'status'), 'filter_by' => Arr::get($attributes, 'filter_by', 'all'), 'date_range' => Arr::get($attributes, 'date_range', []), 'sort_column' => Arr::get($attributes, 'sort_column', 'id'), 'sort_by' => Arr::get($attributes, 'sort_by', 'DESC'), 'per_page' => Arr::get($attributes, 'per_page', 10), 'page' => Arr::get($attributes, 'page', 1), ]); } /** * Store a form with its associated meta. * * @param array $attributes * @return \FluentForm\App\Models\Form $form * @throws Exception */ public function store($attributes = []) { try { $predefinedForm = Form::resolvePredefinedForm($attributes); $data = Form::prepare($predefinedForm); $form = $this->model->create($data); $form->title = $form->title . ' (#' . $form->id . ')'; $form->save(); $formMeta = FormMeta::prepare($attributes, $predefinedForm); FormMeta::store($form, $formMeta); do_action_deprecated( 'fluentform_inserted_new_form', [ $form->id, $data ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/inserted_new_form', 'Use fluentform/inserted_new_form instead of fluentform_inserted_new_form.' ); do_action('fluentform/inserted_new_form', $form->id, $data); return $form; } catch (Exception $e) { throw new Exception($e->getMessage()); } } /** * Duplicate a form with its associated meta. * * @param array $attributes * @return \FluentForm\App\Models\Form $form * @throws Exception */ public function duplicate($attributes = []) { $formId = Arr::get($attributes, 'form_id'); $existingForm = $this->model->with([ 'formMeta' => function ($formMeta) { return $formMeta->whereNotIn('meta_key', ['_total_views']); }, ])->find($formId); if (!$existingForm) { throw new Exception( __("The form couldn't be found.", 'fluentform') ); } $data = Form::prepare($existingForm->toArray()); $form = $this->model->create($data); // Rename the form name here $form->title = $form->title . ' (#' . $form->id . ')'; $form->save(); $this->duplicator->duplicateFormMeta($form, $existingForm); $this->duplicator->maybeDuplicateFiles($form, $existingForm, $data); do_action_deprecated( 'fluentform_form_duplicated', [ $form->id ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/form_duplicated', 'Use fluentform/form_duplicated instead of fluentform_form_duplicated.' ); do_action('fluentform/form_duplicated', $form->id); return $form; } public function find($id) { try { return $this->model->with('formMeta')->findOrFail($id); } catch (Exception $e) { throw new Exception( __("The form couldn't be found.", 'fluentform') ); } } public function delete($id) { Form::remove($id); } /** * Update a form with its relevant fields. * * @param array $attributes * @return \FluentForm\App\Models\Form $form * @throws Exception */ public function update($attributes = []) { return $this->updater->update($attributes); } /** * Duplicate a form with its associated meta. * * @param int $id * @return \FluentForm\App\Models\Form $form * @throws Exception */ public function convert($id) { try { $form = Form::with('conversationalMeta')->findOrFail($id); } catch (Exception $e) { throw new Exception( __("The form couldn't be found.", 'fluentform') ); } $isConversationalForm = $form->conversationalMeta && 'yes' === $form->conversationalMeta->value; if ($isConversationalForm) { $conversationalMetaValue = 'no'; } else { $form->fill([ 'form_fields' => Converter::convertExistingForm($form), ])->save(); $conversationalMetaValue = 'yes'; } FormMeta::persist($form->id, 'is_conversion_form', $conversationalMetaValue); return $form; } public function templates() { $forms = [ 'Basic' => [], ]; $predefinedForms = $this->model::findPredefinedForm(); foreach ($predefinedForms as $key => $item) { if (!$item['category']) { $item['category'] = 'Other'; } if (!isset($forms[$item['category']])) { $forms[$item['category']] = []; } $itemClass = 'item_' . str_replace([' ', '&', '/'], '_', strtolower($item['category'])); if (empty($item['screenshot'])) { $itemClass .= ' item_no_image'; } else { $itemClass .= ' item_has_image'; } $forms[$item['category']][$key] = [ 'class' => $itemClass, 'tags' => Arr::get($item, 'tag', ''), 'title' => $item['title'], 'brief' => $item['brief'], 'category' => $item['category'], 'screenshot' => $item['screenshot'], 'createable' => $item['createable'], 'is_pro' => Arr::get($item, 'is_pro'), 'type' => isset($item['type']) ? $item['type'] : 'form', ]; } $dropDownForms = [ 'post' => [ 'title' => 'Post Form', ], ]; $dropDownForms = apply_filters_deprecated( 'fluentform-predefined-dropDown-forms', [ $dropDownForms ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/predefined_dropdown_forms', 'Use fluentform/predefined_dropdown_forms instead of fluentform-predefined-dropDown-forms.' ); return [ 'forms' => $forms, 'categories' => array_keys($forms), 'predefined_dropDown_forms' => apply_filters('fluentform/predefined_dropdown_forms', $dropDownForms), ]; } public function components($formId) { /** * @var \FluentForm\App\Services\FormBuilder\Components */ $components = $this->app->make('components'); do_action_deprecated( 'fluent_editor_init', [ $components ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/editor_init', 'Use fluentform/editor_init instead of fluent_editor_init.' ); $this->app->doAction('fluentform/editor_init', $components); $editorComponents = $components->sort()->toArray(); $editorComponents = apply_filters_deprecated( 'fluent_editor_components', [ $editorComponents, $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/editor_components', 'Use fluentform/editor_components instead of fluent_editor_components.' ); return apply_filters('fluentform/editor_components', $editorComponents, $formId); } public function getDisabledComponents() { $isReCaptchaDisabled = !get_option('_fluentform_reCaptcha_keys_status', false); $isHCaptchaDisabled = !get_option('_fluentform_hCaptcha_keys_status', false); $isTurnstileDisabled = !get_option('_fluentform_turnstile_keys_status', false); $disabled = [ 'recaptcha' => [ 'disabled' => $isReCaptchaDisabled, 'title' => __('reCaptcha', 'fluentform'), 'description' => __('Please enter a valid API key on Global Settings->Security->reCaptcha', 'fluentform'), 'hidePro' => true, ], 'hcaptcha' => [ 'disabled' => $isHCaptchaDisabled, 'title' => __('hCaptcha', 'fluentform'), 'description' => __('Please enter a valid API key on Global Settings->Security->hCaptcha', 'fluentform'), 'hidePro' => true, ], 'turnstile' => [ 'disabled' => $isTurnstileDisabled, 'title' => __('Turnstile', 'fluentform'), 'description' => __('Please enter a valid API key on Global Settings->Security->Turnstile', 'fluentform'), 'hidePro' => true, ], 'input_image' => [ 'disabled' => true, 'title' => __('Image Upload', 'fluentform'), 'description' => __('Image Upload is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => '', 'video' => 'https://www.youtube.com/embed/Yb3FSoZl9Zg', ], 'input_file' => [ 'disabled' => true, 'title' => __('File Upload', 'fluentform'), 'description' => __('File Upload is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => '', 'video' => 'https://www.youtube.com/embed/bXbTbNPM_4k', ], 'shortcode' => [ 'disabled' => true, 'title' => __('Shortcode', 'fluentform'), 'description' => __('Shortcode is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => '', 'video' => 'https://www.youtube.com/embed/op3mEQxX1MM', ], 'action_hook' => [ 'disabled' => true, 'title' => __('Action Hook', 'fluentform'), 'description' => __('Action Hook is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/action-hook.png'), 'video' => '', ], 'form_step' => [ 'disabled' => true, 'title' => __('Form Step', 'fluentform'), 'description' => __('Form Step is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => '', 'video' => 'https://www.youtube.com/embed/VQTWnM6BbRU', ], ]; if (!defined('FLUENTFORMPRO')) { $disabled['ratings'] = [ 'disabled' => true, 'title' => __('Ratings', 'fluentform'), 'description' => __('Ratings is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => '', 'video' => 'https://www.youtube.com/embed/YGdkNspMaEs', ]; $disabled['tabular_grid'] = [ 'disabled' => true, 'title' => __('Checkable Grid', 'fluentform'), 'description' => __('Checkable Grid is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => '', 'video' => 'https://www.youtube.com/embed/ayI3TzXXANA', ]; $disabled['chained_select'] = [ 'disabled' => true, 'title' => __('Chained Select Field', 'fluentform'), 'description' => __('Chained Select Field is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/chained-select-field.png'), 'video' => '', ]; $disabled['phone'] = [ 'disabled' => true, 'title' => 'Phone Field', 'description' => __('Phone Field is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/phone-field.png'), 'video' => '', ]; $disabled['rich_text_input'] = [ 'disabled' => true, 'title' => __('Rich Text Input', 'fluentform'), 'description' => __('Rich Text Input is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/rich-text-input.png'), 'video' => '', ]; $disabled['save_progress_button'] = [ 'disabled' => true, 'title' => __('Save & Resume', 'fluentform'), 'description' => __('Save & Resume is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/save-progress-button.png'), 'video' => '', ]; $disabled['cpt_selection'] = [ 'disabled' => true, 'title' => __('Post/CPT Selection', 'fluentform'), 'description' => __('Post/CPT Selection is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/post-cpt-selection.png'), 'video' => '', ]; $disabled['quiz_score'] = [ 'disabled' => true, 'title' => __('Quiz Score', 'fluentform'), 'description' => __('Quiz Score is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => '', 'video' => 'https://www.youtube.com/embed/bPjDXR0y_Oo', ]; $disabled['net_promoter_score'] = [ 'disabled' => true, 'title' => __('Net Promoter Score', 'fluentform'), 'description' => __('Net Promoter Score is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/net-promoter-score.png'), 'video' => '', ]; $disabled['repeater_field'] = [ 'disabled' => true, 'title' => __('Repeat Field', 'fluentform'), 'description' => __('Repeat Field is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => '', 'video' => 'https://www.youtube.com/embed/BXo9Sk-OLnQ', ]; $disabled['rangeslider'] = [ 'disabled' => true, 'title' => __('Range Slider', 'fluentform'), 'description' => __('Range Slider is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => '', 'video' => 'https://www.youtube.com/embed/RaY2VcPWk6I', ]; $disabled['color-picker'] = [ 'disabled' => true, 'title' => __('Color Picker', 'fluentform'), 'description' => __('Color Picker is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/color-picker.png'), 'video' => '', ]; $disabled['multi_payment_component'] = [ 'disabled' => true, 'is_payment' => true, 'title' => __('Payment Field', 'fluentform'), 'description' => __('Payment Field is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/payment-field.png'), 'video' => '', ]; $disabled['custom_payment_component'] = [ 'disabled' => true, 'is_payment' => true, 'title' => 'Custom Payment Amount', 'description' => __('Custom Payment Amount is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/custom-payment-amount.png'), 'video' => '', ]; $disabled['subscription_payment_component'] = [ 'disabled' => true, 'is_payment' => true, 'title' => __('Subscription Field', 'fluentform'), 'description' => __('Subscription Field is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/subscription-field.png'), 'video' => '', ]; $disabled['item_quantity_component'] = [ 'disabled' => true, 'is_payment' => true, 'title' => __('Item Quantity', 'fluentform'), 'description' => __('Item Quantity is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/item-quantity.png'), 'video' => '', ]; $disabled['payment_method'] = [ 'disabled' => true, 'is_payment' => true, 'title' => __('Payment Method', 'fluentform'), 'description' => __('Payment Method is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/payment-method.png'), 'video' => '', ]; $disabled['payment_summary_component'] = [ 'disabled' => true, 'is_payment' => true, 'title' => __('Payment Summary', 'fluentform'), 'description' => __('Payment Summary is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/payment-summary.png'), 'video' => '', ]; $disabled['payment_coupon'] = [ 'disabled' => true, 'title' => __('Coupon', 'fluentform'), 'description' => __('Coupon is not available with the free version. Please upgrade to pro to get all the advanced features.', 'fluentform'), 'image' => fluentformMix('img/pro-fields/coupon.png'), 'video' => '', ]; } $disabled = apply_filters_deprecated( 'fluentform_disabled_components', [ $disabled ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/disabled_components', 'Use fluentform/disabled_components instead of fluentform_disabled_components.' ); return $this->app->applyFilters('fluentform/disabled_components', $disabled); } public function fields($id) { return $this->fields->get($id); } public function shortcodes($id) { return fluentFormGetAllEditorShortCodes($id); } public function pages() { return fluentformGetPages(); } public function getInputsAndLabels($formId, $with = ['admin_label', 'raw']) { try { $form = $this->model->findOrFail($formId); $inputs = FormFieldsParser::getEntryInputs($form, $with); $labels = FormFieldsParser::getAdminLabels($form, $inputs); $labels = apply_filters_deprecated( 'fluentfoform_entry_lists_labels', [ $labels, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/entry_lists_labels', 'Use fluentform/entry_lists_labels instead of fluentfoform_entry_lists_labels.' ); $labels = apply_filters('fluentform/entry_lists_labels', $labels, $form); $labels = apply_filters_deprecated( 'fluentform_all_entry_labels', [ $labels, $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/all_entry_labels', 'Use fluentform/all_entry_labels instead of fluentform_all_entry_labels.' ); $labels = apply_filters('fluentform/all_entry_labels', $labels, $formId); if ($form->has_payment) { $labels = apply_filters_deprecated( 'fluentform_all_entry_labels_with_payment', [ $labels, false, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/all_entry_labels_with_payment', 'Use fluentform/all_entry_labels_with_payment instead of fluentform_all_entry_labels_with_payment.' ); $labels = apply_filters('fluentform/all_entry_labels_with_payment', $labels, false, $form); } return [ 'inputs' => $inputs, 'labels' => $labels, ]; } catch (Exception $e) { throw new Exception( __("The form couldn't be found.", 'fluentform') ); } } public function findShortCodePage($formId) { $excluded = ['attachment']; $post_types = get_post_types(['show_in_menu' => true], 'objects', 'or'); $postTypes = []; foreach ($post_types as $post_type) { $postTypeName = $post_type->name; if (in_array($postTypeName, $excluded)) { continue; } $postTypes[] = $postTypeName; } $params = array( 'post_type' => $postTypes, 'posts_per_page' => -1 ); $params = apply_filters_deprecated( 'fluentform_find_shortcode_params', [ $params ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/find_shortcode_params', 'Use fluentform/find_shortcode_params instead of fluentform_find_shortcode_params.' ); $params = apply_filters('fluentform/find_shortcode_params', $params); $formLocations = []; $posts = get_posts($params); foreach ($posts as $post) { $formIds = self::getShortCodeId($post->post_content); if (!empty($formIds) && in_array($formId, $formIds)) { $postType = get_post_type_object($post->post_type); $formLocations[] = [ 'id' => $post->ID, 'name' => $postType->labels->singular_name, 'title' => (empty($post->post_title) ? $post->ID : $post->post_title), 'edit_link' => sprintf("%spost.php?post=%s&action=edit", admin_url(), $post->ID), ]; } } return [ 'locations' => $formLocations, 'status' => !empty($formLocations), ]; } public static function getShortCodeId($content, $shortcodeTag = 'fluentform') { $ids = []; $selector = 'id'; $formId = ''; if (!function_exists('parse_blocks')) { return $ids; } $parsedBlocks = parse_blocks($content); foreach ($parsedBlocks as $block) { if (!array_key_exists('blockName', $block) || !array_key_exists('attrs', $block) || !array_key_exists('formId', $block['attrs'])) { continue; } $hasBlock = strpos($block['blockName'], 'fluentfom/guten-block') === 0; if (!$hasBlock) { continue; } $ids[] = (int)$block['attrs']['formId']; } // Define the regex pattern with a placeholder for any number $hasFormWidgets = false; $pattern = '/
= 2 && $shortcodeTag === $shortcode[2]) { $parsedCode = str_replace(['[', ']', '[', ']'], '', $shortcode[0]); $result = shortcode_parse_atts($parsedCode); if (!empty($result[$selector])) { $ids[] = $result[$selector]; } } } return $ids; } } app/Services/Form/Fields.php000064400000005514147600120010011725 0ustar00supportedConditionalFields()); }); return $this->filterEditorFields($fields); } public function supportedConditionalFields() { $supportedConditionalFields = [ 'select', 'ratings', 'net_promoter', 'textarea', 'shortcode', 'input_url', 'input_text', 'input_date', 'input_email', 'input_radio', 'input_number', 'select_country', 'input_checkbox', 'input_password', 'terms_and_condition', 'gdpr_agreement', 'input_hidden', 'input_file', 'input_image', 'subscription_payment_component', ]; $supportedConditionalFields = apply_filters_deprecated( 'fluentform_supported_conditional_fields', [ $supportedConditionalFields ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/supported_conditional_fields', 'Use fluentform/supported_conditional_fields instead of fluentform_supported_conditional_fields.' ); return apply_filters('fluentform/supported_conditional_fields', $supportedConditionalFields); } public function filterEditorFields($fields) { foreach ($fields as &$field) { $element = Arr::get($field, 'element'); if ('select_country' == $element) { $field['options'] = getFluentFormCountryList(); } elseif ('gdpr_agreement' == $element || 'terms_and_condition' == $element) { $field['options'] = ['on' => 'Checked']; } elseif ('quiz_score' == $element) { $notPersonalityType = Arr::get($field, 'raw.settings.result_type') != 'personality'; if ($notPersonalityType && Arr::exists($field, 'options')) { Arr::forget($field, 'options'); } } elseif ('dynamic_field' == $element) { $attrType = Arr::get($field, 'raw.attributes.type'); if ('text' == $attrType) { Arr::forget($field, 'options'); } } Arr::forget($field, 'raw'); } return apply_filters('fluentform/filtered_editor_fields', $fields); } } app/Services/Form/Duplicator.php000064400000010260147600120010012617 0ustar00formMeta as $meta) { if ('notifications' == $meta->meta_key || '_pdf_feeds' == $meta->meta_key) { $extras[$meta->meta_key][] = $meta; continue; } if ("ffc_form_settings_generated_css" == $meta->meta_key || "ffc_form_settings_meta" == $meta->meta_key) { $meta->value = str_replace('ff_conv_app_' . $existingForm->id, 'ff_conv_app_' . $form->id, $meta->value); } $form->formMeta()->create([ 'meta_key' => $meta->meta_key, 'value' => $meta->value, ]); } $pdfFeedMap = $this->getPdfFeedMap($form, $extras); if (array_key_exists('notifications', $extras)) { $extras = $this->notificationWithPdfMap($extras, $pdfFeedMap); foreach ($extras['notifications'] as $notify) { $notifyData = [ 'meta_key' => $notify->meta_key, 'value' => $notify->value, ]; $form->formMeta()->create($notifyData); } } } public function maybeDuplicateFiles($form, $existingForm, $data) { if ( isset($data['form_fields']) && $formFields = \json_decode($data['form_fields'], true) ) { $fields = Arr::get($formFields, 'fields', []); foreach ($fields as $field) { if ( "chained_select" === $field['element'] && "file" === Arr::get($field, 'settings.data_source.type', '') && $metaKey = Arr::get($field, 'settings.data_source.meta_key', '') ) { // duplicate csv file for chained select field, if uploaded. $path = wp_upload_dir()['basedir'] . FLUENTFORM_UPLOAD_DIR; $target = $path . '/' . $metaKey . '_' . $existingForm->id . '.csv'; if (file_exists($target)) { copy($target, $path . '/' . $metaKey . '_' . $form->id . '.csv'); } } } } } /** * Map pdf feed ID to replace with duplicated PDF feed ID when duplicating form * * @param \FluentForm\App\Models\Form $form * @param array $formMeta * @return array $pdfFeedMap */ private function getPdfFeedMap(Form $form, $formMeta) { $pdfFeedMap = []; if (array_key_exists('_pdf_feeds', $formMeta)) { foreach ($formMeta['_pdf_feeds'] as $pdf_feed) { $pdfData = [ 'meta_key' => $pdf_feed->meta_key, 'value' => $pdf_feed->value, 'form_id' => $form->id, ]; $pdfFeedMap[$pdf_feed->id] = $form->formMeta()->insertGetId($pdfData); } } return $pdfFeedMap; } /** * Map notification data with PDF feed map * * @param array $formMeta * @param array $pdfFeedMap * @return array $formMeta */ private function notificationWithPdfMap($formMeta, $pdfFeedMap) { foreach ($formMeta['notifications'] as $key => $notification) { $notificationValue = json_decode($notification->value); $pdf_attachments = []; $hasPdfAttachments = isset($notificationValue->pdf_attachments) && count($notificationValue->pdf_attachments); if ($hasPdfAttachments) { foreach ($notificationValue->pdf_attachments as $attachment) { $pdf_attachments[] = json_encode($pdfFeedMap[$attachment]); } } $notificationValue->pdf_attachments = $pdf_attachments; $notification->value = json_encode($notificationValue); $formMeta['notifications'][$key] = $notification; } return $formMeta; } } app/Services/FormBuilder/Components/Rating.php000064400000007634147600120010015404 0ustar00extractValueFromAttributes($data); $elMarkup = "
"; $ratingText = ''; foreach ($data['options'] as $value => $label) { $starred = ''; if (in_array($value, $defaultValues)) { $data['attributes']['checked'] = true; $starred = 'active'; } else { $data['attributes']['checked'] = false; } if ($tabIndex = Helper::getNextTabIndex()) { $data['attributes']['tabindex'] = $tabIndex; } $atts = $this->buildAttributes($data['attributes']); $id = esc_attr($this->getUniqueid(str_replace(['[', ']'], ['', ''], $data['attributes']['name']))); $ariaRequired = 'false'; if (ArrayHelper::get($data, 'settings.validation_rules.required.value')) { $ariaRequired = 'true'; } $elMarkup .= "'; if ('yes' == ArrayHelper::get($data, 'settings.show_text')) { $displayDefaultText = in_array($value, $defaultValues) ? 'display: inline-block' : 'display: none'; $ratingText .= "" . fluentform_sanitize_html($label) . ''; } }; $elMarkup .= '
' . $ratingText; $html = $this->buildElementMarkup($elMarkup, $data, $form); $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } } app/Services/FormBuilder/Components/Name.php000064400000011515147600120010015031 0ustar00hasConditions($data) ? 'has-conditions ' : ''; if (empty($data['attributes']['class'])) { $data['attributes']['class'] = ''; } $data['attributes']['class'] .= $hasConditions; $data['attributes']['class'] .= ' ff-field_container ff-name-field-wrapper'; if ($containerClass = ArrayHelper::get($data, 'settings.container_class')) { $data['attributes']['class'] .= ' ' . $containerClass; } $atts = $this->buildAttributes( ArrayHelper::except($data['attributes'], 'name') ); $html = "
"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in. $html .= "
"; $labelPlacement = ArrayHelper::get($data, 'settings.label_placement'); $labelPlacementClass = ''; if ($labelPlacement) { $labelPlacementClass = ' ff-el-form-' . $labelPlacement; } foreach ($data['fields'] as $field) { if ($field['settings']['visible']) { $fieldName = $field['attributes']['name']; $field['attributes']['name'] = $rootName . '[' . $fieldName . ']'; @$field['attributes']['class'] = trim( 'ff-el-form-control ' . $field['attributes']['class'] ); if ($tabIndex = Helper::getNextTabIndex()) { $field['attributes']['tabindex'] = $tabIndex; } @$field['settings']['container_class'] .= $labelPlacementClass; $field['attributes']['id'] = $this->makeElementId($field, $form); $nameTitleClass = ''; $atts = $this->buildAttributes($field['attributes']); $ariaRequired = 'false'; if (ArrayHelper::get($field, 'settings.validation_rules.required.value')) { $ariaRequired = 'true'; } if ('select' == $field['attributes']['type']) { if (! defined('FLUENTFORMPRO')) { continue; } $nameTitleClass = ' ff-name-title'; $defaultValues = (array) $this->extractValueFromAttributes($field); $options = $this->buildOptions($field, $defaultValues); $elMarkup = ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts and $options are escaped before being passed in. } else { $elMarkup = ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in. } $inputTextMarkup = $this->buildElementMarkup($elMarkup, $field, $form); $html .= "
{$inputTextMarkup}
"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $inputTextMarkup is escaped before being passed in. } } $html .= '
'; $html .= '
'; $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } } app/Services/FormBuilder/Components/Text.php000064400000017634147600120010015105 0ustar00 if (isset($data['settings']['temp_mask']) && 'custom' != $data['settings']['temp_mask']) { $data['attributes']['data-mask'] = $data['settings']['temp_mask']; } if ('custom' == ArrayHelper::get($data, 'settings.temp_mask')) { if ('yes' == ArrayHelper::get($data, 'settings.data-mask-reverse')) { $data['attributes']['data-mask-reverse'] = 'true'; } if ('yes' == ArrayHelper::get($data, 'settings.data-clear-if-not-match')) { $data['attributes']['data-clear-if-not-match'] = 'true'; } } if (isset($data['attributes']['data-mask'])) { wp_enqueue_script( 'jquery-mask', fluentformMix('libs/jquery.mask.min.js'), ['jquery'], '1.14.15', true ); } if ('input_number' == $data['element'] || 'custom_payment_component' == $data['element']) { if ( ArrayHelper::get($data, 'settings.calculation_settings.status') && $formula = ArrayHelper::get($data, 'settings.calculation_settings.formula') ) { $data['attributes']['data-calculation_formula'] = $formula; $data['attributes']['class'] .= ' ff_has_formula'; $data['attributes']['readonly'] = true; $data['attributes']['type'] = 'text'; add_filter('fluentform/form_class', function ($css_class, $targetForm) use ($form) { if ($targetForm->id == $form->id) { $css_class .= ' ff_calc_form'; } return $css_class; }, 10, 2); do_action_deprecated( 'ff_rendering_calculation_form', [ $form, $data ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_calculation_form', 'Use fluentform/rendering_calculation_form instead of ff_rendering_calculation_form' ); do_action('fluentform/rendering_calculation_form', $form, $data); } else { $isDisable = apply_filters_deprecated( 'fluentform_disable_inputmode', [ false ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/disable_input_mode', 'Use fluentform/disable_input_mode instead of fluentform_disable_inputmode' ); if (! apply_filters('fluentform/disable_input_mode', $isDisable)) { $inputMode = apply_filters('fluentform/number_input_mode', ArrayHelper::get($data, 'attributes.inputmode'), $data, $form); if (! $inputMode) { $inputMode = 'numeric'; } $data['attributes']['inputmode'] = $inputMode; } } if ($step = ArrayHelper::get($data, 'settings.number_step')) { $data['attributes']['step'] = $step; } elseif ('number' == ArrayHelper::get($data, 'attributes.type')) { $data['attributes']['step'] = 'any'; } $min = ArrayHelper::get($data, 'settings.validation_rules.min.value'); if ($min || 0 == $min) { $data['attributes']['min'] = $min; $data['attributes']['aria-valuemin'] = $min; } if ($max = ArrayHelper::get($data, 'settings.validation_rules.max.value')) { $data['attributes']['max'] = $max; $data['attributes']['aria-valuemax'] = $max; } if ($formatter = ArrayHelper::get($data, 'settings.numeric_formatter')) { $formatters = Helper::getNumericFormatters(); if (! empty($formatters[$formatter]['settings'])) { $data['attributes']['class'] .= ' ff_numeric'; $data['attributes']['data-formatter'] = json_encode($formatters[$formatter]['settings']); wp_enqueue_script( 'currency', fluentformMix('libs/currency.min.js'), [], '2.0.3', true ); $data['attributes']['type'] = 'text'; } } } // For hidden input if ('hidden' == ArrayHelper::get($data, 'attributes.type')) { $attributes = $this->buildAttributes($data['attributes'], $form); echo ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $attributes is escaped before being passed in. return; } if ($tabIndex = Helper::getNextTabIndex()) { $data['attributes']['tabindex'] = $tabIndex; } $data['attributes']['class'] = @trim('ff-el-form-control ' . ArrayHelper::get($data, 'attributes.class', '')); $data['attributes']['id'] = $this->makeElementId($data, $form); $elMarkup = $this->buildInputGroup($data, $form); $html = $this->buildElementMarkup($elMarkup, $data, $form); $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } private function buildInputGroup($data, $form) { $ariaRequired = 'false'; if (ArrayHelper::get($data, 'settings.validation_rules.required.value')) { $ariaRequired = 'true'; } $input = 'buildAttributes($data['attributes'], $form) . ' aria-invalid="false" aria-required='.$ariaRequired.'>'; $prefix = ArrayHelper::get($data, 'settings.prefix_label'); $suffix = ArrayHelper::get($data, 'settings.suffix_label'); if ($prefix || $suffix) { $wrapper = '
'; if ($prefix) { $wrapper .= '
' . fluentform_sanitize_html($prefix) . '
'; } $wrapper .= $input; if ($suffix) { $wrapper .= '
' . fluentform_sanitize_html($suffix) . '
'; } $wrapper .= '
'; return $wrapper; } return $input; } } app/Services/FormBuilder/Components/Hcaptcha.php000064400000005417147600120010015670 0ustar00id}-{$form->instance_index}' class='ff-el-hcaptcha h-captcha'>
"; $label = ''; if (! empty($data['settings']['label'])) { $label = "
'; } $containerClass = ''; if (! empty($data['settings']['label_placement'])) { $containerClass = 'ff-el-form-' . $data['settings']['label_placement']; } $el = "
{$hcaptchaBlock}
"; $html = "
" . fluentform_sanitize_html($label) . "{$el}
"; $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } } app/Services/FormBuilder/Components/Select.php000064400000012600147600120010015364 0ustar00makeElementId($data, $form); $isMulti = 'yes' == ArrayHelper::get($data, 'settings.enable_select_2'); if (ArrayHelper::get($data['attributes'], 'multiple')) { $data['attributes']['name'] = $data['attributes']['name'] . '[]'; wp_enqueue_script('choices'); wp_enqueue_style('ff_choices'); $data['attributes']['class'] .= ' ff_has_multi_select'; } elseif ($isMulti) { wp_enqueue_script('choices'); wp_enqueue_style('ff_choices'); $data['attributes']['class'] .= ' ff_has_multi_select'; } if ($maxSelection = ArrayHelper::get($data, 'settings.max_selection')) { $data['attributes']['data-max_selected_options'] = $maxSelection; } $data['attributes']['data-calc_value'] = 0; if (! isset($data['attributes']['class'])) { $data['attributes']['class'] = ''; } $data['attributes']['class'] = trim('ff-el-form-control ' . $data['attributes']['class']); if ($tabIndex = Helper::getNextTabIndex()) { $data['attributes']['tabindex'] = $tabIndex; } $defaultValues = (array) $this->extractValueFromAttributes($data); if ($dynamicValues = $this->extractDynamicValues($data, $form)) { $defaultValues = $dynamicValues; } $atts = $this->buildAttributes($data['attributes']); $options = $this->buildOptions($data, $defaultValues); $ariaRequired = 'false'; if (ArrayHelper::get($data, 'settings.validation_rules.required.value')) { $ariaRequired = 'true'; } $elMarkup = ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts, $options are escaped before being passed in. $html = $this->buildElementMarkup($elMarkup, $data, $form); $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } /** * Build options for select * * @param array $options * * @return string/html [compiled options] */ protected function buildOptions($data, $defaultValues) { if (! $formattedOptions = ArrayHelper::get($data, 'settings.advanced_options')) { $options = ArrayHelper::get($data, 'options', []); $formattedOptions = []; foreach ($options as $value => $label) { $formattedOptions[] = [ 'label' => $label, 'value' => $value, 'calc_value' => '', ]; } } if ('yes' == ArrayHelper::get($data, 'settings.randomize_options')) { shuffle($formattedOptions); } $opts = ''; if (! empty($data['settings']['placeholder'])) { $opts .= ''; } elseif (! empty($data['attributes']['placeholder'])) { $opts .= ''; } foreach ($formattedOptions as $option) { if (in_array($option['value'], $defaultValues)) { $selected = 'selected'; } else { $selected = ''; } $atts = [ 'data-calc_value' => ArrayHelper::get($option, 'calc_value'), 'data-custom-properties' => ArrayHelper::get($option, 'calc_value'), 'value' => ArrayHelper::get($option, 'value'), 'disabled' => ArrayHelper::get($option, 'disabled') ? 'disabled' : '' ]; $opts .= ''; } return $opts; } } app/Services/FormBuilder/Components/CustomHtml.php000064400000004210147600120010016242 0ustar00hasConditions($data) ? 'has-conditions ' : ''; $cls = trim($this->getDefaultContainerClass() . ' ff-' . $elementName . ' ' . $hasConditions); if ($containerClass = ArrayHelper::get($data, 'settings.container_class')) { $cls .= ' ' . $containerClass; } $atts = $this->buildAttributes( ArrayHelper::except($data['attributes'], 'name') ); $html = "
" . fluentform_sanitize_html($data['settings']['html_codes']) . '
'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in. $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } } app/Services/FormBuilder/Components/CustomSubmitButton.php000064400000021327147600120010020005 0ustar00 12, 'element' => $this->key, 'attributes' => [ 'class' => '', 'type' => 'submit', ], 'settings' => [ 'button_style' => '', 'button_size' => 'md', 'align' => 'left', 'container_class' => '', 'current_state' => 'normal_styles', 'background_color' => 'rgb(64, 158, 255)', 'color' => 'rgb(255, 255, 255)', 'hover_styles' => (object) [ 'backgroundColor' => '#ffffff', 'borderColor' => '#1a7efb', 'color' => '#1a7efb', 'borderRadius' => '', 'minWidth' => '100%', ], 'normal_styles' => (object) [ 'backgroundColor' => '#1a7efb', 'borderColor' => '#1a7efb', 'color' => '#ffffff', 'borderRadius' => '', 'minWidth' => '100%', ], 'button_ui' => (object) [ 'text' => 'Submit', 'type' => 'default', 'img_url' => '', ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => $this->title, 'icon_class' => 'dashicons dashicons-arrow-right-alt', 'template' => 'customButton', ], ]; } public function pushConditionalSupport($conditonalItems) { return $conditonalItems; } public function getGeneralEditorElements() { return [ 'btn_text', 'button_ui', 'button_style', 'button_size', 'align', ]; } public function getAdvancedEditorElements() { return [ 'container_class', 'class', 'conditional_logics', ]; } public function render($data, $form) { // @todo: We will remove this in our next version [added: 4.0.0] if (class_exists('\FluentFormPro\Components\CustomSubmitField')) { return ''; } $hideSubmit = apply_filters_deprecated( 'fluentform_is_hide_submit_btn_' . $form->id, [ '__return_true' ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/is_hide_submit_btn_' . $form->id, 'Use fluentform/is_hide_submit_btn_' . $form->id . ' instead of fluentform_is_hide_submit_btn_' . $form->id ); add_filter('fluentform/is_hide_submit_btn_' . $form->id, $hideSubmit); $elementName = $data['element']; $data = apply_filters_deprecated( 'fluentform_rendering_field_data_' . $elementName, [ $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_data_' . $elementName, 'Use fluentform/rendering_field_data_' . $elementName . ' instead of fluentform_rendering_field_data_' . $elementName ); $data = apply_filters('fluentform/rendering_field_data_' . $elementName, $data, $form); $btnStyle = ArrayHelper::get($data['settings'], 'button_style'); $btnSize = 'ff-btn-'; $btnSize .= isset($data['settings']['button_size']) ? $data['settings']['button_size'] : 'md'; $oldBtnType = isset($data['settings']['button_style']) ? '' : ' ff-btn-primary '; $align = 'ff-el-group ff-text-' . @$data['settings']['align']; $btnClasses = [ 'ff-btn ff-btn-submit', $oldBtnType, $btnSize, $data['attributes']['class'], ]; if ('no_style' == $btnStyle) { $btnClasses[] = 'ff_btn_no_style'; } else { $btnClasses[] = 'ff_btn_style'; } $data['attributes']['class'] = trim(implode(' ', array_filter($btnClasses))); if ($tabIndex = Helper::getNextTabIndex()) { $data['attributes']['tabindex'] = $tabIndex; } $styles = ''; if ('' == ArrayHelper::get($data, 'settings.button_style')) { $data['attributes']['class'] .= ' wpf_has_custom_css'; // it's a custom button $buttonActiveStyles = ArrayHelper::get($data, 'settings.normal_styles', []); $buttonHoverStyles = ArrayHelper::get($data, 'settings.hover_styles', []); $activeStates = ''; foreach ($buttonActiveStyles as $styleAtr => $styleValue) { if ('0' != $styleValue && !$styleValue) { continue; } if ('borderRadius' == $styleAtr) { $styleValue .= 'px'; } $activeStates .= ltrim(strtolower(preg_replace('/[A-Z]([A-Z](?![a-z]))*/', '-$0', $styleAtr)), '_') . ':' . $styleValue . ';'; } if ($activeStates) { $styles .= 'form.fluent_form_' . $form->id . ' .wpf_has_custom_css.ff-btn-submit { ' . $activeStates . ' }'; } $hoverStates = ''; foreach ($buttonHoverStyles as $styleAtr => $styleValue) { if ('0' != $styleValue && !$styleValue) { continue; } if ('borderRadius' == $styleAtr) { $styleValue .= 'px'; } $hoverStates .= ltrim(strtolower(preg_replace('/[A-Z]([A-Z](?![a-z]))*/', '-$0', $styleAtr)), '-') . ':' . $styleValue . ';'; } if ($hoverStates) { $styles .= 'form.fluent_form_' . $form->id . ' .wpf_has_custom_css.ff-btn-submit:hover { ' . $hoverStates . ' } '; } } elseif ('no_style' != $btnStyle) { $styles .= 'form.fluent_form_' . $form->id . ' .ff-btn-submit { background-color: ' . esc_attr(ArrayHelper::get($data, 'settings.background_color')) . '; color: ' . esc_attr(ArrayHelper::get($data, 'settings.color')) . '; }'; } $atts = $this->buildAttributes($data['attributes']); $hasConditions = $this->hasConditions($data) ? 'has-conditions ' : ''; $cls = trim($align . ' ' . $data['settings']['container_class'] . ' ' . $hasConditions); $html = "
"; // ADDED IN v1.2.6 - updated in 1.4.4 if (isset($data['settings']['button_ui'])) { if ('default' == $data['settings']['button_ui']['type']) { $html .= ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in. } else { $html .= ""; } } else { $html .= ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in. } if ($styles) { $html .= ''; } $html .= '
'; $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } } app/Services/FormBuilder/Components/TabularGrid.php000064400000013707147600120010016356 0ustar00', array_values($columnLabels)); $elementHelpMessage = $this->getElementHelpMessage($data, $form); $elementLabel = $this->setClasses($data)->buildElementLabel($data, $form); $elMarkup = "'; $tabIndex = \FluentForm\App\Helpers\Helper::getNextTabIndex(); foreach ($this->makeTabularData($data) as $index => $row) { $elMarkup .= ''; $elMarkup .= "'; $isRowChecked = in_array($row['name'], $checked) ? 'checked' : ''; foreach ($row['columns'] as $column) { $name = $data['attributes']['name'] . '[' . $row['name'] . ']'; $name = 'checkbox' == $fieldType ? ($name . '[]') : $name; $isColChecked = in_array($column['name'], $checked) ? 'checked' : ''; $isChecked = $isRowChecked ? $isRowChecked : $isColChecked; $atts = [ 'name' => $name, 'type' => $fieldType, 'value' => $column['name'], ]; if ($tabIndex) { $atts['tabindex'] = $tabIndex; } $attributes = $this->buildAttributes($atts, $form); $ariaRequired = 'false'; if (ArrayHelper::get($data, 'settings.validation_rules.required.value')) { $ariaRequired = 'true'; } $input = '"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $attributes is escaped before being passed in. $elMarkup .= ""; } $elMarkup .= ''; } $elMarkup .= '
" . fluentform_sanitize_html($columnHeaders) . '
" . fluentform_sanitize_html($row['label']) . '{$input}
'; $elMarkup = "
{$elMarkup}" . fluentform_sanitize_html($elementHelpMessage) . '
'; $html = sprintf( "
{$elementLabel}{$elMarkup}
", $data['attributes']['data-type'], $data['attributes']['name'], $data['attributes']['class'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $elementLabel is escaped before being passed in. $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } public function makeTabularData($data) { $table = []; $rows = $data['settings']['grid_rows']; $columns = $data['settings']['grid_columns']; foreach ($rows as $rowKey => $rowValue) { $table[$rowKey] = [ 'name' => $rowKey, 'label' => $rowValue, 'columns' => [], ]; foreach ($columns as $columnKey => $columnValue) { $table[$rowKey]['columns'][] = [ 'name' => $columnKey, 'label' => $columnValue, ]; } } return $table; } protected function getElementHelpMessage($data, $form) { $elementHelpMessage = ''; if ('under_input' == $form->settings['layout']['helpMessagePlacement']) { $elementHelpMessage = $this->getInputHelpMessage($data); } return $elementHelpMessage; } protected function setClasses(&$data) { if (! isset($data['attributes']['class'])) { $data['attributes']['class'] = ''; } $placement = $data['settings']['label_placement']; $placementClass = $placement ? 'ff-el-form-' . $placement : ''; $hasConditions = $this->hasConditions($data) ? ' has-conditions' : ''; $defaultContainerClass = $this->getDefaultContainerClass(); $containerClass = $data['settings']['container_class']; $data['attributes']['class'] .= trim(implode(' ', array_map('trim', [ $defaultContainerClass, $containerClass, $placementClass, $hasConditions, ]))); return $this; } } app/Services/FormBuilder/Components/TermsAndConditions.php000064400000007575147600120010017733 0ustar00hasConditions($data) ? 'has-conditions ' : ''; $cls = trim( $this->getDefaultContainerClass() . ' ' . @$data['settings']['container_class'] . ' ' . $hasConditions . ' ff-el-input--content' ); $uniqueId = $this->getUniqueId($data['attributes']['name']); $data['attributes']['id'] = $uniqueId; $data['attributes']['class'] = trim( 'ff-el-form-check-input ' . $data['attributes']['class'] ); if ($tabIndex = Helper::getNextTabIndex()) { $data['attributes']['tabindex'] = $tabIndex; } $atts = $this->buildAttributes($data['attributes']); $checkbox = ''; $ariaRequired = 'false'; if (ArrayHelper::get($data, 'settings.validation_rules.required.value')) { $ariaRequired = 'true'; } if ($data['settings']['has_checkbox']) { $checkbox = ""; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in. } $link_count = substr_count($data['settings']['tnc_html'], ' 0){ $ariaLabel = sprintf( esc_html(_n( 'Terms and Conditions: %1$s Contains %2$d link. Use tab navigation to review.', 'Terms and Conditions: %1$s Contains %2$d links. Use tab navigation to review.', $link_count, 'fluentform' )), $data['settings']['tnc_html'], $link_count ); }else{ $ariaLabel = wp_strip_all_tags($data['settings']['tnc_html']); } $ariaLabel = wp_strip_all_tags($ariaLabel); $ariaLabel = esc_attr($ariaLabel); $html = "
"; $html .= "
"; $html .= "'; $html .= '
'; $html .= '
'; $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } } app/Services/FormBuilder/Components/Container.php000064400000005023147600120010016070 0ustar00hasConditions($data) ? 'has-conditions ' : ''; $containerClass .= ' ' . $hasConditions; $container_css_class = $this->wrapperClass . ' ff_columns_total_' . count($data['columns']); if ($containerClass) { $container_css_class = $container_css_class . ' ' . strip_tags($containerClass); } $atts = $this->buildAttributes( ArrayHelper::except($data['attributes'], 'name') ); $columnClass = $this->columnClass; echo '
"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in. if (isset($data['settings']['label'])) { echo '' . fluentform_sanitize_html($data['settings']['label']) . ''; } foreach ($data['columns'] as $columnIndex => $column) { if (! isset($column['width'])) { $column['width'] = ceil(100 / count($data['columns'])); } $newColumnClass = $columnClass . ' ff-t-column-' . ($columnIndex + 1); echo "
"; foreach ($column['fields'] as $item) { $item = apply_filters('fluentform/before_render_item', $item, $form); do_action('fluentform/render_item_' . $item['element'], $item, $form); } echo '
'; } echo '
'; } } app/Services/FormBuilder/Components/TextArea.php000064400000004742147600120010015672 0ustar00extractValueFromAttributes($data); $data['attributes']['class'] = trim('ff-el-form-control ' . $data['attributes']['class']); $data['attributes']['id'] = $this->makeElementId($data, $form); if ($tabIndex = Helper::getNextTabIndex()) { $data['attributes']['tabindex'] = $tabIndex; } $ariaRequired = 'false'; if (ArrayHelper::get($data, 'settings.validation_rules.required.value')) { $ariaRequired = 'true'; } $elMarkup = ''; $atts = $this->buildAttributes($data['attributes']); $elMarkup = sprintf( $elMarkup, $atts, esc_attr($textareaValue) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in. $html = $this->buildElementMarkup($elMarkup, $data, $form); $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } } app/Services/FormBuilder/Components/Turnstile.php000064400000006705147600120010016147 0ustar00id}-{$form->instance_index}' class='ff-el-turnstile cf-turnstile' data-appearance='" . $appearance . "'>"; $label = ''; if (! empty($data['settings']['label'])) { $label = "
'; } $containerClass = ''; if (! empty($data['settings']['label_placement'])) { $containerClass = 'ff-el-form-' . $data['settings']['label_placement']; } $el = "
{$turnstileBlock}
"; $html = "
{$label}{$el}
"; if ($appearance == 'interaction-only') { $html = str_replace("
", "
", $html); } $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } } app/Services/FormBuilder/Components/SectionBreak.php000064400000005001147600120010016513 0ustar00hasConditions($data) ? 'has-conditions ' : ''; $cls = trim($this->getDefaultContainerClass() . ' ' . $hasConditions); $data['attributes']['class'] = $cls . ' ff-el-section-break ' . $data['attributes']['class']; $data['attributes']['class'] = trim($data['attributes']['class']); $atts = $this->buildAttributes( ArrayHelper::except($data['attributes'], 'name') ); $html = "
"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in. $html .= "

" . fluentform_sanitize_html($data['settings']['label']) . '

'; $html .= "
" . fluentform_sanitize_html($data['settings']['description']) . '
'; $html .= '
'; $html .= '
'; $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } } app/Services/FormBuilder/Components/SelectCountry.php000064400000013572147600120010016761 0ustar00loadCountries($data); $defaultValues = (array) $this->extractValueFromAttributes($data); $data['attributes']['class'] = trim('ff-el-form-control ' . $data['attributes']['class']); $data['attributes']['id'] = $this->makeElementId($data, $form); $isSearchable = ArrayHelper::get($data, 'settings.enable_select_2'); if ('yes' == $isSearchable) { wp_enqueue_script('choices'); wp_enqueue_style('ff_choices'); $data['attributes']['class'] .= ' ff_has_multi_select'; } if ($tabIndex = Helper::getNextTabIndex()) { $data['attributes']['tabindex'] = $tabIndex; } $placeholder = ArrayHelper::get($data, 'attributes.placeholder'); $activeList = ArrayHelper::get($data, 'settings.country_list.active_list'); $ariaRequired = 'false'; if (ArrayHelper::get($data, 'settings.validation_rules.required.value')) { $ariaRequired = 'true'; } $elMarkup = ''; $html = $this->buildElementMarkup($elMarkup, $data, $form); $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } /** * Load countt list from file * * @param array $data * * @return array */ public function loadCountries($data) { $app = wpFluentForm(); $data['options'] = []; $activeList = ArrayHelper::get($data, 'settings.country_list.active_list'); $countries = getFluentFormCountryList(); if ('visible_list' == $activeList) { $selectCountries = ArrayHelper::get($data, 'settings.country_list.' . $activeList, []); foreach ($selectCountries as $value) { $data['options'][$value] = $countries[$value]; } } elseif ('hidden_list' == $activeList || 'priority_based' == $activeList) { $data['options'] = $countries; $selectCountries = ArrayHelper::get($data, 'settings.country_list.' . $activeList, []); foreach ($selectCountries as $value) { unset($data['options'][$value]); } } else { $data['options'] = $countries; } $selectedCountries = $data['options']; $selectedCountries = array_flip($selectedCountries); ksort($selectedCountries); $selectedCountries = array_flip($selectedCountries); $data['options'] = $selectedCountries; return $data; } /** * Build options for country list/select * * @param array $options * * @return string/html [compiled options] */ protected function buildOptions($options, $defaultValues = []) { $opts = ''; foreach ($options as $value => $label) { if (in_array($value, $defaultValues)) { $selected = 'selected'; } else { $selected = ''; } $opts .= "'; } return $opts; } public function getSelectedCountries($keys = []) { $options = []; $countries = getFluentFormCountryList(); foreach ($keys as $value) { $options[$value] = $countries[$value]; } $options = array_flip($options); ksort($options); return array_flip($options); } } app/Services/FormBuilder/Components/BaseComponent.php000064400000026733147600120010016716 0ustar00app = wpFluentForm(); } /** * Build unique ID concatenating form id and name attribute * * @param array $data $form * * @return string for id value */ protected function makeElementId($data, $form) { if (isset($data['attributes']['name'])) { $formInstance = \FluentForm\App\Helpers\Helper::$formInstance; if (!empty($data['attributes']['id'])) { return $data['attributes']['id']; } $elementName = $data['attributes']['name']; $elementName = str_replace(['[', ']', ' '], '_', $elementName); $suffix = esc_attr($form->id); if($formInstance > 1) { $suffix = $suffix.'_'.$formInstance; } $suffix .= '_'.$elementName; return 'ff_' . esc_attr($suffix); } } /** * Build attributes for any html element * * @param array $attributes * * @return string [Compiled key='value' attributes] */ protected function buildAttributes($attributes, $form = null) { $atts = ''; foreach ($attributes as $key => $value) { if ($value || 0 === $value || '0' === $value) { $value = htmlspecialchars($value); $atts .= esc_attr($key) . '="' . $value . '" '; } } return $atts; } /** * Extract value attribute from attribute list * * @param array &$element * * @return string */ protected function extractValueFromAttributes(&$element) { $value = ''; if (isset($element['attributes']['value'])) { $value = $element['attributes']['value']; unset($element['attributes']['value']); } return $value; } protected function extractDynamicValues($data, $form) { $defaultValues = []; if ($dynamicDefaultValue = ArrayHelper::get($data, 'settings.dynamic_default_value')) { $parseValue = $this->parseEditorSmartCode($dynamicDefaultValue, $form); if (is_array($parseValue)) { $defaultValues = $parseValue; } elseif (!empty($parseValue) && is_string($parseValue)) { $defaultValues = explode(',', $parseValue); $defaultValues = array_map('trim', $defaultValues); } } return $defaultValues; } /** * Determine if the given element has conditions bound * * @param array $element [Html element being compiled] * * @return bool */ protected function hasConditions($element) { $conditionals = ArrayHelper::get($element, 'settings.conditional_logics'); if (isset($conditionals['status']) && $conditionals['status']) { return array_filter($conditionals['conditions'], function ($item) { return $item['field'] && $item['operator']; }); } } /** * Generate a unique id for an element * * @param string $str [preix] * * @return string [Unique id] */ protected function getUniqueId($str) { return $str . '_' . md5(uniqid(mt_rand(), true)); } /** * Get a default class for each form element wrapper * * @return string */ protected function getDefaultContainerClass() { return 'ff-el-group '; } /** * Get required class for form element wrapper * * @param array $rules [Validation rules] * * @return mixed */ protected function getRequiredClass($rules) { if (isset($rules['required'])) { return $rules['required']['value'] ? 'ff-el-is-required ' : ''; } } /** * Get asterisk placement for the required form elements * * @return string */ protected function getAsteriskPlacement($form) { // for older version compatibility $asteriskPlacement = 'asterisk-right'; if (isset($form->settings['layout']['asteriskPlacement'])) { $asteriskPlacement = $form->settings['layout']['asteriskPlacement']; } return $asteriskPlacement . ' '; } /** * Generate a label for any element * * @param array $data * * @return string [label Html element] */ protected function buildElementLabel($data, $form) { $helpMessage = ''; if ('with_label' == $form->settings['layout']['helpMessagePlacement']) { $helpMessage = $this->getLabelHelpMessage($data); } $id = isset($data['attributes']['id']) ? $data['attributes']['id'] : ''; $label = isset($data['settings']['label']) ? $data['settings']['label'] : ''; $requiredClass = $this->getRequiredClass(ArrayHelper::get($data, 'settings.validation_rules', [])); $classes = trim('ff-el-input--label ' . $requiredClass . $this->getAsteriskPlacement($form)); return "
' . $helpMessage . '
'; } /** * Generate html/markup for any element * * @param string $elMarkup [Predifined partial markup] * @param array $data * @param stdClass $form [Form object] * * @return string [Compiled markup] */ protected function buildElementMarkup($elMarkup, $data, $form) { $hasConditions = $this->hasConditions($data) ? 'has-conditions ' : ''; $labelPlacement = ArrayHelper::get($data, 'settings.label_placement'); $labelPlacementClass = $labelPlacement ? 'ff-el-form-' . $labelPlacement . ' ' : ''; $validationRules = ArrayHelper::get($data, 'settings.validation_rules'); $requiredClass = $this->getRequiredClass($validationRules); $labelClass = trim( 'ff-el-input--label ' . $requiredClass . $this->getAsteriskPlacement($form) ); $formGroupClass = trim( $this->getDefaultContainerClass() . $labelPlacementClass . $hasConditions . ArrayHelper::get($data, 'settings.container_class') ); $labelHelpText = $inputHelpText = ''; $labelPlacement = $form->settings['layout']['helpMessagePlacement']; if ('with_label' == $labelPlacement) { $labelHelpText = $this->getLabelHelpMessage($data); } elseif ('on_focus' == $labelPlacement) { $inputHelpText = $this->getInputHelpMessage($data, 'ff-hidden'); } elseif ('after_label' == $labelPlacement) { $inputHelpText = $this->getInputHelpMessage($data, 'ff_ahm'); } else { $inputHelpText = $this->getInputHelpMessage($data); } $forStr = ''; if (isset($data['attributes']['id'])) { $forStr = "for='" . esc_attr($data['attributes']['id']) . "'"; } $labelMarkup = ''; if (!empty($data['settings']['label'])) { $label = ArrayHelper::get($data, 'settings.label'); $ariaLabel = $label; $hasShortCodeIndex = strpos($label, '{dynamic.'); //Handle name field duplicate label accessibility $isNameField = strpos(ArrayHelper::get($data, 'attributes.name', ''), 'name') !== false; if ($isNameField) { $ariaLabel = ''; } elseif ($hasShortCodeIndex !== false) { $ariaLabel = trim(substr($label, 0, $hasShortCodeIndex)); } else { $ariaLabel = $label; } $labelMarkup = sprintf( '
%5$s
', esc_attr($labelClass), $forStr, $ariaLabel != '' ? 'aria-label="'.esc_attr($this->removeShortcode($label)).'"' : '', fluentform_sanitize_html($label), fluentform_sanitize_html($labelHelpText) ); } $inputHelpText = fluentform_sanitize_html($inputHelpText); if ('after_label' == $labelPlacement) { $elMarkup = $inputHelpText . $elMarkup; $inputHelpText = ''; } return sprintf( "
%s
%s%s
", esc_attr($formGroupClass), $labelMarkup, $elMarkup, $inputHelpText ); } /** * Generate a help message for any element beside label * * @param array $data * * @return string [Html] */ protected function getLabelHelpMessage($data) { if (isset($data['settings']['help_message']) && '' != $data['settings']['help_message']) { $text = htmlspecialchars($data['settings']['help_message']); $icon = ''; return sprintf('
%s
', $text, $icon); } } /** * Generate a help message for any element beside form element * * @param array $data * * @return string [Html] */ protected function getInputHelpMessage($data, $hideClass = '') { $class = trim('ff-el-help-message ' . $hideClass); if (isset($data['settings']['help_message']) && ! empty($data['settings']['help_message'])) { return "
" . fluentform_sanitize_html($data['settings']['help_message']) . '
'; } return false; } protected function parseEditorSmartCode($text, $form) { return (new Component($this->app))->replaceEditorSmartCodes($text, $form); } protected function printContent($hook, $html, $data, $form) { echo apply_filters($hook, $html, $data, $form); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $html is escaped before being passed in. } /** * A helper method for remove shortcode from aria label * * @param string $label * * @return string $label */ protected function removeShortcode($label) { // Find all occurrences of text enclosed in curly braces. preg_match_all('/{(.*?)}/', $label, $matches); // If there are matches, remove them from the label. if ($matches[0]) { $label = trim(str_replace($matches[0], '', $label)); } return wp_strip_all_tags($label); } } app/Services/FormBuilder/Components/Address.php000064400000016605147600120010015543 0ustar00hasConditions($data) ? 'has-conditions ' : ''; $data['attributes']['class'] .= ' ff-name-address-wrapper ' . $this->wrapperClass . ' ' . $hasConditions; $data['attributes']['class'] = trim($data['attributes']['class']); if ('yes' == ArrayHelper::get($data, 'settings.save_coordinates')) { $coordinateFields = [ 'latitude' => $rootName . '[latitude]', 'longitude' => $rootName . '[longitude]' ]; $textComponent = new \FluentForm\App\Services\FormBuilder\Components\Text(); foreach ($coordinateFields as $type => $fieldName) { $fieldConfig = [ 'attributes' => [ 'name' => $fieldName, 'type' => 'hidden', 'data-key_name' => $type, ], 'element' => 'input_hidden' ]; $textComponent->compile($fieldConfig, $form); } } if ('yes' == ArrayHelper::get($data, 'settings.enable_g_autocomplete')) { $data['attributes']['class'] .= ' ff_map_autocomplete'; if ('yes' == ArrayHelper::get($data, 'settings.enable_g_map')) { $data['attributes']['data-ff_with_g_map'] = '1'; } $data['attributes']['data-ff_with_auto_locate'] = ArrayHelper::get($data, 'settings.enable_auto_locate', false); do_action('fluentform/address_map_autocomplete', $data, $form); } $atts = $this->buildAttributes( ArrayHelper::except($data['attributes'], 'name') ); //re order fields from version 4.3.2 if ($order = ArrayHelper::get($data, 'settings.field_order')) { $order = array_values(array_column($order, 'value')); $fields = ArrayHelper::get($data, 'fields'); $data['fields'] = array_merge(array_flip($order), $fields); } ob_start(); echo '
'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in. do_action_deprecated( 'fluentform_rendering_address_field', [ $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_address_field', 'Use fluentform/rendering_address_field instead of fluentform_rendering_address_field.' ); do_action('fluentform/rendering_address_field', $data, $form); if ($label = $data['settings']['label']): echo "
"; echo ''; echo '
'; endif; echo "
"; $visibleFields = array_chunk(array_filter($data['fields'], function ($field) { return $field['settings']['visible']; }), 2); $googleAutoComplete = 'yes' === ArrayHelper::get($data, 'settings.enable_g_autocomplete'); foreach ($visibleFields as $chunked) { echo "
"; foreach ($chunked as $item) { if ($item['settings']['visible']) { $itemName = $item['attributes']['name']; $item['attributes']['data-key_name'] = $itemName; $item['attributes']['name'] = $rootName . '[' . $itemName . ']'; if ('select_country' === $item['element'] && $googleAutoComplete) { $selectedCountries = (array) ArrayHelper::get($item, 'attributes.value', []); if ('visible_list' === ArrayHelper::get($item, 'settings.country_list.active_list')) { $selectedCountries = array_unique( array_merge( $selectedCountries, ArrayHelper::get($item, 'settings.country_list.visible_list', []) ) ); } $item['attributes']['data-autocomplete_restrictions'] = json_encode(array_filter($selectedCountries)); } $item = apply_filters_deprecated( 'fluentform_before_render_item', [ $item, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/before_render_item', 'Use fluentform/before_render_item instead of fluentform_before_render_item.' ); $item = apply_filters('fluentform/before_render_item', $item, $form); echo "
"; do_action_deprecated( 'fluentform_render_item_' . $item['element'], [ $item, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/render_item_' . $item['element'], 'Use fluentform/render_item_' . $item['element'] . ' instead of fluentform_render_item_' . $item['element'] ); do_action('fluentform/render_item_' . $item['element'], $item, $form); echo '
'; } } echo '
'; } echo '
'; echo '
'; $html = ob_get_clean(); $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform/rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } } app/Services/FormBuilder/Components/DateTime.php000064400000017544147600120010015655 0ustar00makeElementId($data, $form); if ($tabIndex = Helper::getNextTabIndex()) { $data['attributes']['tabindex'] = $tabIndex; } $atts = $this->buildAttributes($data['attributes']); $ariaRequired = 'false'; if (ArrayHelper::get($data, 'settings.validation_rules.required.value')) { $ariaRequired = 'true'; } $id = $data['attributes']['id']; $ariaLabel = esc_html__(' Use arrow keys to navigate dates. Press enter to select a date.', 'fluentform') ; $label = ArrayHelper::get($data,'settings.label'); $elMarkup = ""; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in. $config = $this->getDateFormatConfigJSON($data['settings'], $form); $customConfig = $this->getCustomConfig($data['settings']); $this->loadToFooter($config, $customConfig, $form, $id); $html = $this->buildElementMarkup($elMarkup, $data, $form); $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } public function getAvailableDateFormats() { $dateFormats = apply_filters('fluentform/available_date_formats', [ 'm/d/Y' => 'm/d/Y - (Ex: 04/28/2018)', // USA 'd/m/Y' => 'd/m/Y - (Ex: 28/04/2018)', // Canada, UK 'd.m.Y' => 'd.m.Y - (Ex: 28.04.2019)', // Germany 'n/j/y' => 'n/j/y - (Ex: 4/28/18)', 'm/d/y' => 'm/d/y - (Ex: 04/28/18)', 'M/d/Y' => 'M/d/Y - (Ex: Apr/28/2018)', 'y/m/d' => 'y/m/d - (Ex: 18/04/28)', 'Y-m-d' => 'Y-m-d - (Ex: 2018-04-28)', 'd-M-y' => 'd-M-y - (Ex: 28-Apr-18)', 'm/d/Y h:i K' => 'm/d/Y h:i K - (Ex: 04/28/2018 08:55 PM)', // USA 'm/d/Y H:i' => 'm/d/Y H:i - (Ex: 04/28/2018 20:55)', // USA 'd/m/Y h:i K' => 'd/m/Y h:i K - (Ex: 28/04/2018 08:55 PM)', // Canada, UK 'd/m/Y H:i' => 'd/m/Y H:i - (Ex: 28/04/2018 20:55)', // Canada, UK 'd.m.Y h:i K' => 'd.m.Y h:i K - (Ex: 28.04.2019 08:55 PM)', // Germany 'd.m.Y H:i' => 'd.m.Y H:i - (Ex: 28.04.2019 20:55)', // Germany 'h:i K' => 'h:i K (Only Time Ex: 08:55 PM)', 'H:i' => 'H:i (Only Time Ex: 20:55)', ]); $formatted = []; foreach ($dateFormats as $format => $label) { $formatted[] = [ 'label' => $label, 'value' => $format, ]; } return $formatted; } public function getDateFormatConfigJSON($settings, $form) { $dateFormat = ArrayHelper::get($settings, 'date_format'); if (! $dateFormat) { $dateFormat = 'm/d/Y'; } $hasTime = $this->hasTime($dateFormat); $time24 = false; if ($hasTime && false !== strpos($dateFormat, 'H')) { $time24 = true; } $config = apply_filters('fluentform/frontend_date_format', [ 'dateFormat' => $dateFormat, 'ariaDateFormat' =>"F j, Y", 'enableTime' => $hasTime, 'noCalendar' => ! $this->hasDate($dateFormat), 'disableMobile' => true, 'time_24hr' => $time24, ], $settings, $form); return json_encode($config, JSON_FORCE_OBJECT); } public function getCustomConfig($settings) { $customConfigObject = trim(ArrayHelper::get($settings, 'date_config')); if (! $customConfigObject || '{' != substr($customConfigObject, 0, 1) || '}' != substr($customConfigObject, -1)) { $customConfigObject = '{}'; } return $customConfigObject; } private function loadToFooter($config, $customConfigObject, $form, $id) { add_action('wp_footer', function () use ($config, $customConfigObject, $id, $form) { ?> extractValueFromAttributes($data); if ($dynamicValues = $this->extractDynamicValues($data, $form)) { $defaultValues = $dynamicValues; } $elMarkup = ''; $firstTabIndex = \FluentForm\App\Helpers\Helper::getNextTabIndex(); if (! $formattedOptions = ArrayHelper::get($data, 'settings.advanced_options')) { $options = ArrayHelper::get($data, 'options', []); $formattedOptions = []; foreach ($options as $value => $label) { $formattedOptions[] = [ 'label' => $label, 'value' => $value, 'calc_value' => '', 'image' => '', ]; } } $hasImageOption = ArrayHelper::get($data, 'settings.enable_image_input'); if ($hasImageOption) { if (empty($data['settings']['layout_class'])) { $data['settings']['layout_class'] = 'ff_list_buttons'; } $elMarkup .= '
'; } $data['settings']['container_class'] .= ' ' . ArrayHelper::get($data, 'settings.layout_class'); if ('yes' == ArrayHelper::get($data, 'settings.randomize_options')) { shuffle($formattedOptions); } // @todo : Find a alternative screen reader support // $legendId = $this->getUniqueid(str_replace(['[', ']'], ['', ''], $data['attributes']['name'])); // $elMarkup .= '
'; // // $elMarkup .= '' . esc_attr($this->removeShortcode($data['settings']['label'])) . ''; foreach ($formattedOptions as $option) { $displayType = isset($data['settings']['display_type']) ? ' ff-el-form-check-' . $data['settings']['display_type'] : ''; $parentClass = 'ff-el-form-check' . esc_attr($displayType) . ''; if (in_array($option['value'], $defaultValues)) { $data['attributes']['checked'] = true; $parentClass .= ' ff_item_selected'; } else { $data['attributes']['checked'] = false; } if ($firstTabIndex) { $data['attributes']['tabindex'] = $firstTabIndex; $firstTabIndex = '-1'; } $data['attributes']['value'] = $option['value']; $data['attributes']['data-calc_value'] = ArrayHelper::get($option, 'calc_value'); $atts = $this->buildAttributes($data['attributes']); $id = $this->getUniqueid(str_replace(['[', ']'], ['', ''], $data['attributes']['name'])); if ($hasImageOption) { $parentClass .= ' ff-el-image-holder'; } $elMarkup .= "
"; $id = esc_attr($id); $label = fluentform_sanitize_html($option['label']); $ariaLabel = esc_attr($label); // Here we can push the visual items if ($hasImageOption) { $elMarkup .= ""; } $ariaRequired = 'false'; if (ArrayHelper::get($data, 'settings.validation_rules.required.value')) { $ariaRequired = 'true'; } $disabled = ArrayHelper::get($option, 'disabled') ? 'disabled' : ''; $elMarkup .= "'; $elMarkup .= '
'; } if ($hasImageOption) { $elMarkup .= '
'; } // $elMarkup .= ''; $html = $this->buildElementMarkup($elMarkup, $data, $form); $data = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_nonce_verify.' ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } } app/Services/FormBuilder/Components/SubmitButton.php000064400000016102147600120010016605 0ustar00id, [ false ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/is_hide_submit_btn_' . $form->id, 'Use fluentform/is_hide_submit_btn_' . $form->id. ' instead of fluentform_is_hide_submit_btn_' . $form->id ); if (apply_filters('fluentform/is_hide_submit_btn_' . $form->id, $maybeHide)) { return ''; } $elementName = $data['element']; $data = apply_filters_deprecated( 'fluentform_rendering_field_data_' . $elementName, [ $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_data_' . $elementName, 'Use fluentform/rendering_field_data_' . $elementName . ' instead of fluentform_rendering_field_data_' . $elementName ); $data = apply_filters('fluentform/rendering_field_data_' . $elementName, $data, $form); $btnStyle = ArrayHelper::get($data['settings'], 'button_style'); /* This filter is deprecated and will be removed soon */ $noStyle = apply_filters('fluentform_submit_button_force_no_style', false); if (apply_filters('fluentform/submit_button_force_no_style', $noStyle)) { $btnStyle = 'no_style'; } $btnSize = 'ff-btn-'; $btnSize .= isset($data['settings']['button_size']) ? $data['settings']['button_size'] : 'md'; $oldBtnType = isset($data['settings']['button_style']) ? '' : ' ff-btn-primary '; $btnClasses = [ 'ff-btn ff-btn-submit', $oldBtnType, $btnSize, $data['attributes']['class'], ]; $loadDefaultFluentStyle = $form->theme != 'ffs_inherit_theme'; if(!$loadDefaultFluentStyle){ $btnStyle = 'no_style'; } if ('no_style' == $btnStyle) { $btnClasses[] = 'ff_btn_no_style'; } else { $btnClasses[] = 'ff_btn_style'; } $align = 'ff-el-group ff-text-' . @$data['settings']['align']; $data['attributes']['class'] = trim(implode(' ', array_filter($btnClasses))); if ($tabIndex = Helper::getNextTabIndex()) { $data['attributes']['tabindex'] = $tabIndex; } $styles = ''; if ('' == ArrayHelper::get($data, 'settings.button_style')) { $data['attributes']['class'] .= ' wpf_has_custom_css'; // it's a custom button $buttonActiveStyles = ArrayHelper::get($data, 'settings.normal_styles', []); $buttonHoverStyles = ArrayHelper::get($data, 'settings.hover_styles', []); $activeStates = ''; foreach ($buttonActiveStyles as $styleAtr => $styleValue) { if ('0' !== $styleValue && !$styleValue) { continue; } if ('borderRadius' == $styleAtr) { $styleValue .= 'px'; } $activeStates .= ltrim(strtolower(preg_replace('/[A-Z]([A-Z](?![a-z]))*/', '-$0', $styleAtr)), '_') . ':' . $styleValue . ';'; } if ($activeStates) { $styles .= 'form.fluent_form_' . $form->id . ' .wpf_has_custom_css.ff-btn-submit { ' . $activeStates . ' }'; } $hoverStates = ''; foreach ($buttonHoverStyles as $styleAtr => $styleValue) { if ('0' !== $styleValue && !$styleValue) { continue; } if ('borderRadius' == $styleAtr) { $styleValue .= 'px'; } $hoverStates .= ltrim(strtolower(preg_replace('/[A-Z]([A-Z](?![a-z]))*/', '-$0', $styleAtr)), '-') . ':' . $styleValue . ';'; } if ($hoverStates) { $styles .= 'form.fluent_form_' . $form->id . ' .wpf_has_custom_css.ff-btn-submit:hover { ' . $hoverStates . ' } '; } } elseif ('no_style' != $btnStyle) { $bgColor = esc_attr(ArrayHelper::get($data, 'settings.background_color')); $bgColor = str_replace('#1a7efb','var(--fluentform-primary)',$bgColor); $styles .= 'form.fluent_form_' . $form->id . ' .ff-btn-submit:not(.ff_btn_no_style) { background-color: ' . $bgColor . '; color: ' . esc_attr(ArrayHelper::get($data, 'settings.color')) . '; }'; } $atts = $this->buildAttributes($data['attributes']); $cls = trim($align . ' ' . $data['settings']['container_class']); $html = "
"; // ADDED IN v1.2.6 - updated in 1.4.4 if (isset($data['settings']['button_ui'])) { if ('default' == $data['settings']['button_ui']['type']) { $html .= ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in. } else { $html .= ""; } } else { $html .= ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in. } if ($styles) { if (did_action('wp_footer') || Helper::isBlockEditor()) { $html .= ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $styles is escaped before being passed in. } else { add_action('wp_footer', function () use ($styles) { echo ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $styles is escaped before being passed in. }); } } $html .= '
'; $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } } app/Services/FormBuilder/Components/Recaptcha.php000064400000007362147600120010016050 0ustar00id}-{$form->instance_index}' class='ff-el-recaptcha g-recaptcha' data-callback='fluentFormrecaptchaSuccessCallback'>
"; $label = ''; if (! empty($data['settings']['label'])) { $label = "
'; } $containerClass = ''; if (! empty($data['settings']['label_placement'])) { $containerClass = 'ff-el-form-' . $data['settings']['label_placement']; } $el = "
{$recaptchaBlock}
"; $html = "
{$label}{$el}
"; $html = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_rendering_field_html_' . $elementName ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } } app/Services/FormBuilder/Notifications/EmailNotificationActions.php000064400000014246147600120010021560 0ustar00app = $app; } public function register() { add_filter('fluentform/notifying_async_email_notifications', '__return_false', 9); add_filter('fluentform/notifying_async_notifications', '__return_false', 9); add_filter('fluentform/global_notification_active_types', function ($types) { $types['notifications'] = 'email_notifications'; return $types; }); add_action('fluentform/integration_notify_notifications', [$this, 'notify'], 10, 4); add_action('fluentform/notify_on_form_submit', [$this, 'notifyOnSubmitPaymentForm'], 10, 3); } public function notifyOnSubmitPaymentForm($submissionId, $submissionData, $form) { $emailFeeds = wpFluent()->table('fluentform_form_meta') ->where('form_id', $form->id) ->where('meta_key', 'notifications') ->get(); if (! $emailFeeds) { return; } $formData = $this->getFormData($submissionId); $notificationManager = new \FluentForm\App\Services\Integrations\GlobalNotificationManager(wpFluentForm()); $activeEmailFeeds = $notificationManager->getEnabledFeeds($emailFeeds, $formData, $submissionId); if (! $activeEmailFeeds) { return; } $onSubmitEmailFeeds = array_filter($activeEmailFeeds, function ($feed) { return 'payment_form_submit' == ArrayHelper::get($feed, 'settings.feed_trigger_event'); }); if (! $onSubmitEmailFeeds || 'yes' === Helper::getSubmissionMeta($submissionId, '_ff_on_submit_email_sent')) { return; } $entry = $this->getEntry($submissionId); foreach ($onSubmitEmailFeeds as $feed) { $processedValues = $feed['settings']; unset($processedValues['conditionals']); $processedValues = ShortCodeParser::parse( $processedValues, $submissionId, $formData, $form, false, $feed['meta_key'] ); $feed['processedValues'] = $processedValues; $this->notify($feed, $formData, $entry, $form); } Helper::setSubmissionMeta($submissionId, '_ff_on_submit_email_sent', 'yes', $form->id); } public function notify($feed, $formData, $entry, $form) { $notifier = $this->app->make( 'FluentForm\App\Services\FormBuilder\Notifications\EmailNotification' ); $emailData = $feed['processedValues']; $emailAttachments = $this->getAttachments($emailData, $formData, $entry, $form); if ($emailAttachments) { $emailData['attachments'] = $emailAttachments; } $notifier->notify($emailData, $formData, $form, $entry->id); } /** * @param $emailData * @param $formData * @param $entry * @param $form * * @return array */ private function getAttachments($emailData, $formData, $entry, $form) { $emailAttachments = []; if (! empty($emailData['attachments']) && is_array($emailData['attachments'])) { $attachments = []; foreach ($emailData['attachments'] as $name) { $fileUrls = ArrayHelper::get($formData, $name); if ($fileUrls && is_array($fileUrls)) { foreach ($fileUrls as $url) { $filePath = str_replace( site_url(''), wp_normalize_path(untrailingslashit(ABSPATH)), $url ); if (file_exists($filePath)) { $attachments[] = $filePath; } } } } $emailAttachments = $attachments; } $mediaAttachments = ArrayHelper::get($emailData, 'media_attachments'); if (! empty($mediaAttachments) && is_array($mediaAttachments)) { $attachments = []; foreach ($mediaAttachments as $file) { $fileUrl = ArrayHelper::get($file, 'url'); if ($fileUrl) { $filePath = str_replace( site_url(''), wp_normalize_path(untrailingslashit(ABSPATH)), $fileUrl ); if (file_exists($filePath)) { $attachments[] = $filePath; } } } $emailAttachments = array_merge($emailAttachments, $attachments); } $emailAttachments = apply_filters_deprecated( 'fluentform_email_attachments', [ $emailAttachments, $emailData, $formData, $entry, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_attachments', 'Use fluentform/email_attachments instead of fluentform_email_attachments.' ); // let others to apply attachments $emailAttachments = apply_filters( 'fluentform/email_attachments', $emailAttachments, $emailData, $formData, $entry, $form ); return $emailAttachments; } public function getFormData($submissionId) { $submission = wpFluent()->table('fluentform_submissions') ->where('id', $submissionId) ->first(); if (! $submission) { return false; } return json_decode($submission->response, true); } public function getEntry($submissionId) { return wpFluent()->table('fluentform_submissions') ->where('id', $submissionId) ->first(); } } app/Services/FormBuilder/Notifications/EmailNotification.php000064400000036220147600120010020233 0ustar00app = $app; } /** * Send the email notification * * @param array $notification [Notification settings from form meta] * @param array $submittedData [User submitted form data] * @param \StdClass $form [The form object from database] * * @return bool */ public function notify($notification, $submittedData, $form, $entryId = false) { $isSendAsPlain = 'yes' == ArrayHelper::get($notification, 'asPlainText'); $isSendAsPlain= apply_filters_deprecated( 'fluentform_send_plain_html_email', [ $isSendAsPlain, $form, $notification ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/send_plain_html_email', 'Use fluentform/send_plain_html_email instead of fluentform_send_plain_html_email.' ); $isSendAsPlain = apply_filters('fluentform/send_plain_html_email', $isSendAsPlain, $form, $notification); $emailBody = $notification['message']; $emailBody = apply_filters_deprecated( 'fluentform_submission_message_parse', [ $emailBody, $entryId, $submittedData, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/submission_message_parse', 'Use fluentform/submission_message_parse instead of fluentform_submission_message_parse.' ); $emailBody = apply_filters('fluentform/submission_message_parse', $emailBody, $entryId, $submittedData, $form); $notification['parsed_message'] = $emailBody; if (! $isSendAsPlain) { $emailBody = $this->getEmailWithTemplate($emailBody, $form, $notification); } $sendAddresses = $this->getSendAddresses($notification, $submittedData); $notification['subject'] = apply_filters_deprecated( 'fluentform_email_subject', [ $notification['subject'], $notification, $submittedData, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_subject', 'Use fluentform/email_subject instead of fluentform_email_subject.' ); $subject = apply_filters('fluentform/email_subject', $notification['subject'], $notification, $submittedData, $form); if (! $sendAddresses || ! $subject) { if ($entryId) { do_action('fluentform/log_data', [ 'parent_source_id' => $form->id, 'source_type' => 'submission_item', 'source_id' => $entryId, 'component' => 'EmailNotification', 'status' => 'error', 'title' => 'Email sending skipped', 'description' => "Email skipped to send because email/subject may not valid.
Subject: {$notification['subject']}.
Email: " . $sendAddresses, ]); } return null; } $headers = $this->getHeaders($notification, $isSendAsPlain); $notificationAttachments = isset($notification['attachments']) ? $notification['attachments'] : []; $notificationAttachments = apply_filters_deprecated( 'fluentform_filter_email_attachments', [ $notificationAttachments, $notification, $form, $submittedData ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/filter_email_attachments', 'Use fluentform/filter_email_attachments instead of fluentform_filter_email_attachments.' ); $attachments = $this->app->applyFilters( 'fluentform/filter_email_attachments', $notificationAttachments, $notification, $form, $submittedData ); $emailBody = apply_filters_deprecated( 'fluentform_email_body', [ $emailBody, $notification, $submittedData, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_body', 'Use fluentform/email_body instead of fluentform_email_body.' ); $emailBody = apply_filters('fluentform/email_body', $emailBody, $notification, $submittedData, $form); if ($entryId) { /* * Inline email logger. It will work fine hopefully */ add_action('wp_mail_failed', function ($error) use ($notification, $form, $entryId) { $failedMailSubject = ArrayHelper::get($error->error_data, 'wp_mail_failed.subject'); if ($failedMailSubject == $notification['subject']) { $reason = $error->get_error_message(); do_action('fluentform/log_data', [ 'parent_source_id' => $form->id, 'source_type' => 'submission_item', 'source_id' => $entryId, 'component' => 'EmailNotification', 'status' => 'failed', 'title' => 'Email sending failed', 'description' => "Email Notification failed to sent.
Subject: {$notification['subject']}.
Reason: " . $reason, ]); } }, 10, 1); } $sendAddresses = apply_filters_deprecated( 'fluentform_email_to', [ $sendAddresses, $notification, $submittedData, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_to', 'Use fluentform/email_to instead of fluentform_email_to.' ); $emailTo = apply_filters('fluentform/email_to', $sendAddresses, $notification, $submittedData, $form); if (is_array($emailTo)) { $emailTo = implode(', ', $emailTo); } do_action('fluentform/log_data', [ 'parent_source_id' => $form->id, 'source_type' => 'submission_item', 'source_id' => $entryId, 'component' => 'EmailNotification', 'status' => 'info', 'title' => 'Email sending initiated', 'description' => 'Email Notification broadcasted to ' . $emailTo . ".
Subject: {$subject}", ]); return $this->broadCast([ 'email' => $emailTo, 'subject' => $subject, 'body' => $emailBody, 'headers' => $headers, 'attachments' => $attachments, ]); } private function broadCast($data) { $sendEmail = explode(',', $data['email']); if (count($sendEmail) > 1) { $data['email'] = $sendEmail; } return wp_mail( $data['email'], $data['subject'], $data['body'], $data['headers'], $data['attachments'] ); } /** * Get email addresses * * @param array $notification [Notification settings from form meta] * @param array $submittedData [User submitted form data] * * @return string $sendAddresses [Email address or addresses as comma separated string] */ private function getSendAddresses($notification, $submittedData) { $sendAddresses = ArrayHelper::get($notification, 'sendTo.email'); if ('field' == ArrayHelper::get($notification, 'sendTo.type') && ! empty($notification['sendTo']['field'])) { $sendAddresses = ArrayHelper::get($submittedData, $notification['sendTo']['field'], ''); if (!is_email($sendAddresses)) { return ''; } } if ('routing' != ArrayHelper::get($notification, 'sendTo.type')) { return $sendAddresses; } $routings = ArrayHelper::get($notification, 'sendTo.routing'); $validAddresses = []; foreach ($routings as $routing) { $emailAddresses = ArrayHelper::get($routing, 'input_value'); if (!$emailAddresses || trim($emailAddresses) === '') { continue; } $emailAddresses = array_map('trim', explode(',', $emailAddresses)); $emailAddresses = array_filter($emailAddresses, function($email) { return is_email($email); }); $condition = [ 'conditionals' => [ 'status' => true, 'type' => 'any', 'conditions' => [ $routing, ], ], ]; if (\FluentForm\App\Services\ConditionAssesor::evaluate($condition, $submittedData)) { $validAddresses = array_merge($validAddresses, $emailAddresses); } } return implode(',', $validAddresses); } /** * @param $formId * * @return array * * @todo: Implement Caching mechanism so we don't have to parse these things for every request */ private function getFormInputsAndLabels($form) { $formInputs = FormFieldsParser::getInputs($form); $inputLabels = FormFieldsParser::getAdminLabels($form, $formInputs); return [ 'inputs' => $formInputs, 'labels' => $inputLabels, ]; } public function getEmailWithTemplate($emailBody, $form, $notification) { $originalEmailBody = $emailBody; $emailHeader = ""; $emailHeader = apply_filters_deprecated( 'fluentform_email_header', [ $emailHeader, $form, $notification ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_header', 'Use fluentform/email_header instead of fluentform_email_header.' ); $emailHeader = apply_filters('fluentform/email_header', $emailHeader, $form, $notification); $emailFooter = ''; $emailFooter = apply_filters_deprecated( 'fluentform_email_footer', [ $emailFooter, $form, $notification ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_footer', 'Use fluentform/email_footer instead of fluentform_email_footer.' ); $emailFooter = apply_filters('fluentform/email_footer', $emailFooter, $form, $notification); if (empty($emailHeader)) { $emailHeader = wpFluentForm('view')->make('email.template.header', [ 'form' => $form, 'notification' => $notification, ]); } if (empty($emailFooter)) { $emailFooter = wpFluentForm('view')->make('email.template.footer', [ 'form' => $form, 'notification' => $notification, 'footerText' => $this->getFooterText($form, $notification), ]); } $css = wpFluentForm('view')->make('email.template.styles'); $css = apply_filters_deprecated( 'fluentform_email_styles', [ $css, $form, $notification ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_styles', 'Use fluentform/email_styles instead of fluentform_email_styles.' ); $css = apply_filters('fluentform/email_styles', $css, $form, $notification); $emailBody = $emailHeader . $emailBody . $emailFooter; ob_start(); try { // apply CSS styles inline for picky email clients $emogrifier = new Emogrifier($emailBody, $css); $emailBody = $emogrifier->emogrify(); } catch (\Exception $e) { } $maybeError = ob_get_clean(); if ($maybeError) { return $originalEmailBody; } return $emailBody; } private function getFooterText($form, $notification) { $option = get_option('_fluentform_global_form_settings'); if ($option && ! empty($option['misc']['email_footer_text'])) { $footerText = $option['misc']['email_footer_text']; } else { $footerText = '© ' . get_bloginfo('name', 'display') . '.'; } $footerText = apply_filters_deprecated( 'fluentform_email_template_footer_text', [ $footerText, $form, $notification ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_template_footer_text', 'Use fluentform/email_template_footer_text instead of fluentform_email_header.' ); return apply_filters('fluentform/email_template_footer_text', $footerText, $form, $notification); } public function getHeaders($notification, $isSendAsPlain = false) { $headers = [ 'Content-Type: text/html; charset=utf-8', ]; $fromEmail = $notification['fromEmail']; if (!is_string($fromEmail) || ! is_email($fromEmail)) { $fromEmail = false; } if ($notification['fromName'] && $fromEmail) { $headers[] = "From: {$notification['fromName']} <{$fromEmail}>"; } elseif ($fromEmail) { $headers[] = "From: <{$fromEmail}>"; } if (! empty($notification['bcc'])) { $bccEmail = $notification['bcc']; $headers[] = 'bcc: ' . $bccEmail; } if (! empty($notification['cc'])) { $ccEmail = $notification['cc']; $headers[] = 'cc: ' . $ccEmail; } if ($notification['replyTo'] && is_email($notification['replyTo'])) { $headers[] = 'Reply-To: <' . $notification['replyTo'] . '>'; } $headers = apply_filters_deprecated( 'fluenttform_email_header', [ $headers, $notification ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_template_header', 'Use fluentform/email_template_header instead of fluenttform_email_header.' ); $headers = $this->app->applyFilters( 'fluentform/email_template_header', $headers, $notification ); return $headers; } } app/Services/FormBuilder/EditorShortCode.php000064400000017616147600120010015075 0ustar00 __('General SmartCodes','fluentform'), 'shortcodes' => [ '{wp.admin_email}' => __('Admin Email', 'fluentform'), '{wp.site_url}' => __('Site URL', 'fluentform'), '{wp.site_title}' => __('Site Title', 'fluentform'), '{ip}' => __('IP Address', 'fluentform'), '{date.m/d/Y}' => __('Date (mm/dd/yyyy)', 'fluentform'), '{date.d/m/Y}' => __('Date (dd/mm/yyyy)', 'fluentform'), '{embed_post.ID}' => __('Embedded Post/Page ID', 'fluentform'), '{embed_post.post_title}' => __('Embedded Post/Page Title', 'fluentform'), '{embed_post.permalink}' => __('Embedded URL', 'fluentform'), '{http_referer}' => __('HTTP Referer URL', 'fluentform'), '{user.ID}' => __('User ID', 'fluentform'), '{user.display_name}' => __('User Display Name', 'fluentform'), '{user.first_name}' => __('User First Name', 'fluentform'), '{user.last_name}' => __('User Last Name', 'fluentform'), '{user.user_email}' => __('User Email', 'fluentform'), '{user.user_login}' => __('User Username', 'fluentform'), '{browser.name}' => __('User Browser Client', 'fluentform'), '{browser.platform}' => __('User Operating System', 'fluentform'), '{random_string.your_prefix}' => __('Random String with Prefix', 'fluentform'), ], ]; } public static function getFormShortCodes($form) { $form = static::getForm($form); $formFields = FormFieldsParser::getShortCodeInputs( $form, [ 'admin_label', 'attributes', 'options', ] ); $formShortCodes = [ 'shortcodes' => [], 'title' => __('Input Options','fluentform') ]; $formShortCodes['shortcodes']['{all_data}'] = 'All Submitted Data'; $formShortCodes['shortcodes']['{all_data_without_hidden_fields}'] = 'All Data Without Hidden Fields'; foreach ($formFields as $key => $value) { $formShortCodes['shortcodes']['{inputs.' . $key . '}'] = $value['admin_label']; } $formShortCodes['shortcodes']['{form_title}'] = __('Form Title', 'fluentform'); return $formShortCodes; } public static function getFormLabelShortCodes($form) { $form = static::getForm($form); $formFields = FormFieldsParser::getShortCodeInputs($form, ['admin_label', 'label',]); $formLabelShortCodes = [ 'shortcodes' => [], 'title' => __('Label Options','fluentform') ]; foreach ($formFields as $key => $value) { $formLabelShortCodes['shortcodes']['{labels.' . $key . '}'] = wp_strip_all_tags ($value['admin_label']); } return $formLabelShortCodes; } public static function getSubmissionShortcodes($form = false) { $submissionProperties = [ '{submission.id}' => __('Submission ID', 'fluentform'), '{submission.serial_number}' => __('Submission Serial Number', 'fluentform'), '{submission.source_url}' => __('Source URL', 'fluentform'), '{submission.user_id}' => __('User Id', 'fluentform'), '{submission.browser}' => __('Submitter Browser', 'fluentform'), '{submission.device}' => __('Submitter Device', 'fluentform'), '{submission.status}' => __('Submission Status', 'fluentform'), '{submission.created_at}' => __('Submission Create Date', 'fluentform'), '{submission.admin_view_url}' => __('Submission Admin View URL', 'fluentform'), ]; if ($form) { $form = static::getForm($form); if ($form && $form->has_payment) { $submissionProperties['{submission.currency}'] = __('Currency', 'fluentform'); $submissionProperties['{submission.payment_method}'] = __('Payment Method', 'fluentform'); $submissionProperties['{submission.payment_status}'] = __('Payment Status', 'fluentform'); $submissionProperties['{submission.total_paid}'] = __('Paid Total Amount', 'fluentform'); $submissionProperties['{submission.payment_total}'] = __('Payment Amount', 'fluentform'); } } return [ 'title' => __('Entry Attributes','fluentform'), 'shortcodes' => $submissionProperties, ]; } public static function getPaymentShortcodes($form) { return [ 'title' => __('Payment Details','fluentform'), 'shortcodes' => [ '{payment.receipt}' => __('Payment Receipt', 'fluentform'), '{payment.summary}' => __('Payment Summary', 'fluentform'), '{payment.order_items}' => __('Order Items Table', 'fluentform'), '{payment.payment_status}' => __('Payment Status', 'fluentform'), '{payment.payment_total}' => __('Payment Total', 'fluentform'), '{payment.payment_method}' => __('Payment Method', 'fluentform'), ], ]; } public static function getShortCodes($form) { $form = static::getForm($form); $groups = [ static::getFormShortCodes($form), static::getFormLabelShortCodes($form), static::getGeneralShortCodes(), static::getSubmissionShortcodes($form), ]; if ($form->has_payment) { $groups[] = static::getPaymentShortcodes($form); } $groups = apply_filters_deprecated( 'fluentform_form_settings_smartcodes', [ $groups, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/form_settings_smartcodes', 'Use fluentform/form_settings_smartcodes instead of fluentform_form_settings_smartcodes.' ); return apply_filters('fluentform/form_settings_smartcodes', $groups, $form); } public static function parse($string, $data, callable $arrayFormatter = null) { if (is_array($string)) { return static::parseArray($string, $data, $arrayFormatter); } return static::parseString($string, $data, $arrayFormatter); } public static function parseArray($string, $data, $arrayFormatter) { foreach ($string as $key => $value) { if (is_array($value)) { $string[$key] = static::parseArray($value, $data, $arrayFormatter); } else { $string[$key] = static::parseString($value, $data, $arrayFormatter); } } return $string; } public static function parseString($string, $data, callable $arrayFormatter = null) { return preg_replace_callback('/{+(.*?)}/', function ($matches) use (&$data, &$arrayFormatter) { if (! isset($data[$matches[1]])) { return $matches[0]; } elseif (is_array($value = $data[$matches[1]])) { return is_callable($arrayFormatter) ? $arrayFormatter($value) : implode(', ', $value); } return $data[$matches[1]]; }, $string); } protected static function getForm($form) { if (is_object($form)) { return $form; } return wpFluent()->table('fluentform_forms')->find($form); } } app/Services/FormBuilder/FormBuilder.php000064400000052370147600120010014242 0ustar00app = $app; $this->containerCounter = 1; } /** * Render the form * * @param \StdClass $form [Form entry from database] * * @return mixed */ public function build($form, $extraCssClass = '', $instanceCssClass = '', $atts = []) { $this->form = $form; $hasStepWrapper = isset($form->fields['stepsWrapper']) && $form->fields['stepsWrapper']; $labelPlacement = $form->settings['layout']['labelPlacement']; $formClass = "frm-fluent-form fluent_form_{$form->id} ff-el-form-{$labelPlacement}"; if ($extraCssClass) { $formClass .= " {$extraCssClass}"; } if ($hasStepWrapper) { $formClass .= ' ff-form-has-steps'; } if ($extraFormClass = Helper::formExtraCssClass($form)) { $formClass .= ' ' . $extraFormClass; } $themeStyle = ArrayHelper::get($atts, 'theme'); if (!$themeStyle) { $selectedStyle = Helper::getFormMeta($form->id, '_ff_selected_style'); $selectedStyle = $selectedStyle ? $selectedStyle : 'ffs_default'; $themeStyle = $selectedStyle; $atts['theme'] = $selectedStyle; } $form->theme = $themeStyle; $formBody = $this->buildFormBody($form); if (strpos($formBody, '{dynamic.')) { $formClass .= ' ff_has_dynamic_smartcode'; wp_enqueue_script('fluentform-advanced'); } $formClass = apply_filters_deprecated( 'fluentform_form_class', [ $formClass, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/form_class', 'Use fluentform/form_class instead of fluentform_form_class.' ); $formClass = apply_filters('fluentform/form_class', $formClass, $form); if ($form->has_payment) { $formClass .= ' fluentform_has_payment'; } if ($themeStyle) { $formClass .= ' ' . $themeStyle; } $data = [ 'data-form_id' => $form->id, 'id' => 'fluentform_' . $form->id, 'class' => $formClass, 'data-form_instance' => $instanceCssClass, 'method' => 'POST', ]; $data = apply_filters_deprecated( 'fluent_form_html_attributes', [ $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/html_attributes', 'Use fluentform/html_attributes instead of fluent_form_html_attributes.' ); $formAttributes = apply_filters('fluentform/html_attributes', $data, $form); $formAtts = $this->buildAttributes($formAttributes); $wrapperClasses = trim('fluentform ff-default fluentform_wrapper_' . $form->id . ' ' . ArrayHelper::get($atts, 'css_classes')); if ($themeStyle === 'ffs_inherit_theme') { $wrapperClasses = str_replace("ff-default", "ff-inherit-theme-style", $wrapperClasses); } else if ($themeStyle) { $wrapperClasses .= ' ' . $themeStyle . '_wrap'; } $wrapperClasses = apply_filters('fluentform/form_wrapper_classes', $wrapperClasses, $form); ob_start(); echo "
"; do_action_deprecated( 'fluentform_before_form_render', [ $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/before_form_render', 'Use fluentform/before_form_render instead of fluentform_before_form_render.' ); do_action('fluentform/before_form_render', $form, $atts); echo ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $formAtts is escaped before being passed in. $isAccessible = apply_filters_deprecated( 'fluentform_disable_accessibility_fieldset', [ true, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/disable_accessibility_fieldset', 'Use fluentform/disable_accessibility_fieldset instead of fluentform_disable_accessibility_fieldset.' ); $isAccessible = apply_filters('fluentform/disable_accessibility_fieldset', true, $form); if ($isAccessible) { echo $this->fieldsetHtml($form); } /* This hook is deprecated & will be removed soon */ do_action('fluentform_form_element_start', $form); do_action('fluentform/form_element_start', $form); echo ""; wp_nonce_field( 'fluentform-submit-form', '_fluentform_' . $form->id . '_fluentformnonce', true, true ); echo $formBody; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $formBody is escaped before being passed in. if ($isAccessible) { echo ''; } echo "
"; do_action_deprecated( 'fluentform_after_form_render', [ $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/after_form_render', 'Use fluentform/after_form_render instead of fluentform_after_form_render.' ); do_action('fluentform/after_form_render', $form); return ob_get_clean(); } /** * @param \stdClass $form * * @return string form body */ public function buildFormBody($form) { $hasStepWrapper = isset($form->fields['stepsWrapper']) && $form->fields['stepsWrapper']; ob_start(); $stepCounter = 1; foreach ($form->fields['fields'] as $item) { if ($hasStepWrapper && 'form_step' == $item['element']) { $stepCounter++; } $this->setUniqueIdentifier($item); $item = apply_filters_deprecated( 'fluentform_before_render_item', [ $item, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/before_render_item', 'Use fluentform/before_render_item instead of fluentform_before_render_item.' ); $item = apply_filters('fluentform/before_render_item', $item, $form); do_action_deprecated( 'fluentform_render_item_' . $item['element'], [ $item, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/render_item_' . $item['element'], 'Use fluentform/render_item_' . $item['element'] . ' instead of fluentform_render_item_' . $item['element'] ); do_action('fluentform/render_item_' . $item['element'], $item, $form); $this->extractValidationRules($item); $this->extractConditionalLogic($item); } if ($hasStepWrapper) { do_action_deprecated( 'fluentform_render_item_step_end', [ $form->fields['stepsWrapper']['stepEnd'], $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/render_item_step_end', 'Use fluentform/render_item_step_end instead of fluentform_render_item_step_end.' ); do_action('fluentform/render_item_step_end', $form->fields['stepsWrapper']['stepEnd'], $form); } else { do_action_deprecated( 'fluentform_render_item_submit_button', [ $form->fields['submitButton'], $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/render_item_submit_button', 'Use fluentform/render_item_submit_button instead of fluentform_render_item_submit_button.' ); do_action('fluentform/render_item_submit_button', $form->fields['submitButton'], $form); } $content = ob_get_clean(); if ($hasStepWrapper) { $startElement = $form->fields['stepsWrapper']['stepStart']; $steps = ArrayHelper::get($startElement, 'settings.step_titles'); // check if $stepCounter == count() if ($stepCounter > count($steps)) { $fillCount = $stepCounter - count($steps); foreach (range(1, $fillCount) as $item) { $steps[] = ''; } $startElement['settings']['step_titles'] = $steps; } $this->setUniqueIdentifier($startElement); ob_start(); do_action_deprecated( 'fluentform_render_item_step_start', [ $startElement, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/render_item_step_start', 'Use fluentform/render_item_step_start instead of fluentform_render_item_step_start.' ); do_action('fluentform/render_item_step_start', $startElement, $form); $stepStatrt = ob_get_clean(); $content = $stepStatrt . $content; } return $content; } /** * Set unique name/data-name for an element * * @param array &$item * * @return void */ protected function setUniqueIdentifier(&$item) { if (isset($item['columns'])) { $item['attributes']['data-name'] = 'ff_cn_id_' . $this->containerCounter; $this->containerCounter++; foreach ($item['columns'] as &$column) { foreach ($column['fields'] as &$field) { $this->setUniqueIdentifier($field); } } } else { if (! isset($item['attributes']['name'])) { if ($this->form) { if (empty($this->form->attr_name_index)) { $this->form->attr_name_index = 1; } else { $this->form->attr_name_index += 1; } $uniqueId = $this->form->id . '_' . $this->form->attr_name_index; } else { $uniqueId = uniqid(rand(), true); } $item['attributes']['name'] = $item['element'] . '-' . $uniqueId; } $item['attributes']['data-name'] = $item['attributes']['name']; $this->fieldLists[] = $item['element']; } } /** * Recursively extract validation rules from a given element * * @param array $item * * @return void */ protected function extractValidationRules($item) { if (isset($item['columns']) && 'repeater_container' !== $item['element']) { foreach ($item['columns'] as $column) { foreach ($column['fields'] as $field) { $this->extractValidationRules($field); } } } elseif (isset($item['fields'])) { $rootName = $item['attributes']['name']; foreach ($item['fields'] as $key => $innerItem) { if ('address' == $item['element'] || 'input_name' == $item['element']) { $itemName = $innerItem['attributes']['name']; $innerItem['attributes']['name'] = $rootName . '[' . $itemName . ']'; } else { if ('input_repeat' == $item['element'] || 'repeater_field' == $item['element']) { if (empty($innerItem['settings']['validation_rules']['email'])) { unset($innerItem['settings']['validation_rules']['email']); } $innerItem['attributes']['name'] = $rootName . '[' . $key . ']'; } else { $innerItem['attributes']['name'] = $rootName; } } $this->extractValidationRule($innerItem); } } elseif ('tabular_grid' == $item['element']) { $gridName = $item['attributes']['name']; $gridRows = $item['settings']['grid_rows']; $gridType = $item['settings']['tabular_field_type']; foreach ($gridRows as $rowKey => $rowValue) { if ('radio' == $gridType) { $item['attributes']['name'] = $gridName . '[' . $rowKey . ']'; $this->extractValidationRule($item); } else { $item['attributes']['name'] = $gridName . '[' . $rowKey . ']'; $this->extractValidationRule($item); } } } elseif ('chained_select' == $item['element']) { $chainedSelectName = $item['attributes']['name']; foreach ($item['settings']['data_source']['headers'] as $select) { $item['attributes']['name'] = $chainedSelectName . '[' . $select . ']'; $this->extractValidationRule($item); } } elseif ('repeater_container' == $item['element']) { $rootName = $item['attributes']['name']; $ruleIndex = 0; foreach ($item['columns'] as $key => $innerItem) { foreach ($innerItem['fields'] as &$innerField) { $innerField['attributes']['name'] = $rootName . '[' . $key . ']'; $rules = $innerField['settings']['validation_rules']; $innerField['settings']['validation_rules'] = $rules; $this->extractValidationRule($innerField, $rootName . '[' . $ruleIndex . ']'); $ruleIndex++; } } } else { $this->extractValidationRule($item); } } /** * Extract validation rules from a given element * * @param array $item * * @return void */ protected function extractValidationRule($item, $name = '') { if (isset($item['settings']['validation_rules'])) { $rules = $item['settings']['validation_rules']; foreach ($rules as $ruleName => $rule) { if (isset($rule['message'])) { if (isset($rule['global']) && $rule['global']) { $rule['message'] = apply_filters('fluentform/get_global_message_' . $ruleName, $rule['message']); } // Shortcode parse on validation message $rule['message'] = Helper::shortCodeParseOnValidationMessage($rule['message'], $this->form, ArrayHelper::get($item, 'attributes.name')); $rules[$ruleName]['message'] = apply_filters_deprecated( 'fluentform_validation_message_' . $ruleName, [ $rule['message'], $item ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/validation_message_' . $ruleName, 'Use fluentform/validation_message_' . $ruleName . ' instead of fluentform_validation_message_' . $ruleName ); $rules[$ruleName]['message'] = apply_filters('fluentform/validation_message_' . $ruleName, $rule['message'], $item); $rules[$ruleName]['message'] = apply_filters_deprecated( 'fluentform_validation_message_' . $item['element'] . '_' . $ruleName, [ $rules[$ruleName]['message'], $item ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/validation_message_' . $item['element'] . '_' . $ruleName, 'Use fluentform/validation_message_' . $item['element'] . '_' . $ruleName . ' instead of fluentform_validation_message_' . $item['element'] . '_' . $ruleName ); $rules[$ruleName]['message'] = apply_filters('fluentform/validation_message_' . $item['element'] . '_' . $ruleName, $rules[$ruleName]['message'], $item); } } $rules = apply_filters_deprecated( 'fluentform_item_rules_' . $item['element'], [ $rules, $item ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/item_rules_' . $item['element'], 'Use fluentform/item_rules_' . $item['element'] . ' instead of fluentform_item_rules_' . $item['element'] ); $rules = apply_filters('fluentform/item_rules_' . $item['element'], $rules, $item); if (!$name) { $name = $item['attributes']['name']; } $this->validationRules[$name] = $rules; } } /** * Extract conditional logic from a given element * * @param array $item * * @return void */ protected function extractConditionalLogic($item) { // If container like element, then recurse if (isset($item['columns'])) { $containerConditions = false; if (isset($item['settings']['conditional_logics'])) { $conditionals = $item['settings']['conditional_logics']; if (isset($conditionals['status'])) { if ($conditionals['status'] && $conditionals['conditions']) { $containerConditions = $item['settings']['conditional_logics']; $this->conditions[$item['attributes']['data-name']] = $containerConditions; } } } foreach ($item['columns'] as $column) { foreach ($column['fields'] as $field) { if ($containerConditions) { $field['container_conditions'] = $containerConditions; } $this->extractConditionalLogic($field); } } } elseif (isset($item['settings']['conditional_logics'])) { $conditionals = $item['settings']['conditional_logics']; if (isset($conditionals['status'])) { if ($conditionals['status'] && $conditionals['conditions']) { $this->conditions[$item['attributes']['data-name']] = $item['settings']['conditional_logics']; } } if (isset($item['container_conditions'])) { if (! isset($this->conditions[$item['attributes']['data-name']])) { $this->conditions[$item['attributes']['data-name']] = [ 'conditions' => [], 'status' => false, 'type' => 'any', ]; } $this->conditions[$item['attributes']['data-name']]['container_condition'] = $item['container_conditions']; } } } /** * Build attributes for any html element * * @param array $attributes * * @return string [Compiled key='value' attributes] */ protected function buildAttributes($attributes, $form = null) { $atts = ''; foreach ($attributes as $key => $value) { if ($value || 0 === $value || '0' === $value) { $value = htmlspecialchars($value); $atts .= $key . '="' . $value . '" '; } } return $atts; } /** * Get hidden fieldset html * * @param $form * * @return string */ private function fieldsetHtml($form) { return '
' .$form->title. ''; } } app/Services/FormBuilder/CountryNames.php000064400000026666147600120010014470 0ustar00 __('Afghanistan', 'fluentform'), 'AX' => __('Aland Islands', 'fluentform'), 'AL' => __('Albania', 'fluentform'), 'DZ' => __('Algeria', 'fluentform'), 'AS' => __('American Samoa', 'fluentform'), 'AD' => __('Andorra', 'fluentform'), 'AO' => __('Angola', 'fluentform'), 'AI' => __('Anguilla', 'fluentform'), 'AQ' => __('Antarctica', 'fluentform'), 'AG' => __('Antigua and Barbuda', 'fluentform'), 'AR' => __('Argentina', 'fluentform'), 'AM' => __('Armenia', 'fluentform'), 'AW' => __('Aruba', 'fluentform'), 'AU' => __('Australia', 'fluentform'), 'AT' => __('Austria', 'fluentform'), 'AZ' => __('Azerbaijan', 'fluentform'), 'BS' => __('Bahamas', 'fluentform'), 'BH' => __('Bahrain', 'fluentform'), 'BD' => __('Bangladesh', 'fluentform'), 'BB' => __('Barbados', 'fluentform'), 'BY' => __('Belarus', 'fluentform'), 'BE' => __('Belgium', 'fluentform'), 'PW' => __('Belau', 'fluentform'), 'BZ' => __('Belize', 'fluentform'), 'BJ' => __('Benin', 'fluentform'), 'BM' => __('Bermuda', 'fluentform'), 'BT' => __('Bhutan', 'fluentform'), 'BO' => __('Bolivia', 'fluentform'), 'BQ' => __('Bonaire, Saint Eustatius and Saba', 'fluentform'), 'BA' => __('Bosnia and Herzegovina', 'fluentform'), 'BW' => __('Botswana', 'fluentform'), 'BV' => __('Bouvet Island', 'fluentform'), 'BR' => __('Brazil', 'fluentform'), 'IO' => __('British Indian Ocean Territory', 'fluentform'), 'VG' => __('British Virgin Islands', 'fluentform'), 'BN' => __('Brunei', 'fluentform'), 'BG' => __('Bulgaria', 'fluentform'), 'BF' => __('Burkina Faso', 'fluentform'), 'BI' => __('Burundi', 'fluentform'), 'KH' => __('Cambodia', 'fluentform'), 'CM' => __('Cameroon', 'fluentform'), 'CA' => __('Canada', 'fluentform'), 'CV' => __('Cape Verde', 'fluentform'), 'KY' => __('Cayman Islands', 'fluentform'), 'CF' => __('Central African Republic', 'fluentform'), 'TD' => __('Chad', 'fluentform'), 'CL' => __('Chile', 'fluentform'), 'CN' => __('China', 'fluentform'), 'CX' => __('Christmas Island', 'fluentform'), 'CC' => __('Cocos (Keeling) Islands', 'fluentform'), 'CO' => __('Colombia', 'fluentform'), 'KM' => __('Comoros', 'fluentform'), 'CG' => __('Republic of the Congo (Brazzaville)', 'fluentform'), 'CD' => __('Democratic Republic of the Congo (Kinshasa)', 'fluentform'), 'CK' => __('Cook Islands', 'fluentform'), 'CR' => __('Costa Rica', 'fluentform'), 'HR' => __('Croatia', 'fluentform'), 'CU' => __('Cuba', 'fluentform'), 'CW' => __('Curaçao', 'fluentform'), 'CY' => __('Cyprus', 'fluentform'), 'CZ' => __('Czech Republic', 'fluentform'), 'DK' => __('Denmark', 'fluentform'), 'DJ' => __('Djibouti', 'fluentform'), 'DM' => __('Dominica', 'fluentform'), 'DO' => __('Dominican Republic', 'fluentform'), 'EC' => __('Ecuador', 'fluentform'), 'EG' => __('Egypt', 'fluentform'), 'SV' => __('El Salvador', 'fluentform'), 'GQ' => __('Equatorial Guinea', 'fluentform'), 'ER' => __('Eritrea', 'fluentform'), 'EE' => __('Estonia', 'fluentform'), 'ET' => __('Ethiopia', 'fluentform'), 'FK' => __('Falkland Islands', 'fluentform'), 'FO' => __('Faroe Islands', 'fluentform'), 'FJ' => __('Fiji', 'fluentform'), 'FI' => __('Finland', 'fluentform'), 'FR' => __('France', 'fluentform'), 'GF' => __('French Guiana', 'fluentform'), 'PF' => __('French Polynesia', 'fluentform'), 'TF' => __('French Southern Territories', 'fluentform'), 'GA' => __('Gabon', 'fluentform'), 'GM' => __('Gambia', 'fluentform'), 'GE' => __('Georgia', 'fluentform'), 'DE' => __('Germany', 'fluentform'), 'GH' => __('Ghana', 'fluentform'), 'GI' => __('Gibraltar', 'fluentform'), 'GR' => __('Greece', 'fluentform'), 'GL' => __('Greenland', 'fluentform'), 'GD' => __('Grenada', 'fluentform'), 'GP' => __('Guadeloupe', 'fluentform'), 'GU' => __('Guam', 'fluentform'), 'GT' => __('Guatemala', 'fluentform'), 'GG' => __('Guernsey', 'fluentform'), 'GN' => __('Guinea', 'fluentform'), 'GW' => __('Guinea-Bissau', 'fluentform'), 'GY' => __('Guyana', 'fluentform'), 'HT' => __('Haiti', 'fluentform'), 'HM' => __('Heard Island and McDonald Islands', 'fluentform'), 'HN' => __('Honduras', 'fluentform'), 'HK' => __('Hong Kong', 'fluentform'), 'HU' => __('Hungary', 'fluentform'), 'IS' => __('Iceland', 'fluentform'), 'IN' => __('India', 'fluentform'), 'ID' => __('Indonesia', 'fluentform'), 'IR' => __('Iran', 'fluentform'), 'IQ' => __('Iraq', 'fluentform'), 'IE' => __('Ireland', 'fluentform'), 'IM' => __('Isle of Man', 'fluentform'), 'IL' => __('Israel', 'fluentform'), 'IT' => __('Italy', 'fluentform'), 'CI' => __('Ivory Coast', 'fluentform'), 'JM' => __('Jamaica', 'fluentform'), 'JP' => __('Japan', 'fluentform'), 'JE' => __('Jersey', 'fluentform'), 'JO' => __('Jordan', 'fluentform'), 'KZ' => __('Kazakhstan', 'fluentform'), 'KE' => __('Kenya', 'fluentform'), 'KI' => __('Kiribati', 'fluentform'), 'XK' => __('Kosovo', 'fluentform'), 'KW' => __('Kuwait', 'fluentform'), 'KG' => __('Kyrgyzstan', 'fluentform'), 'LA' => __('Laos', 'fluentform'), 'LV' => __('Latvia', 'fluentform'), 'LB' => __('Lebanon', 'fluentform'), 'LS' => __('Lesotho', 'fluentform'), 'LR' => __('Liberia', 'fluentform'), 'LY' => __('Libya', 'fluentform'), 'LI' => __('Liechtenstein', 'fluentform'), 'LT' => __('Lithuania', 'fluentform'), 'LU' => __('Luxembourg', 'fluentform'), 'MO' => __('Macao S.A.R., China', 'fluentform'), 'MK' => __('Macedonia', 'fluentform'), 'MG' => __('Madagascar', 'fluentform'), 'MW' => __('Malawi', 'fluentform'), 'MY' => __('Malaysia', 'fluentform'), 'MV' => __('Maldives', 'fluentform'), 'ML' => __('Mali', 'fluentform'), 'MT' => __('Malta', 'fluentform'), 'MH' => __('Marshall Islands', 'fluentform'), 'MQ' => __('Martinique', 'fluentform'), 'MR' => __('Mauritania', 'fluentform'), 'MU' => __('Mauritius', 'fluentform'), 'YT' => __('Mayotte', 'fluentform'), 'MX' => __('Mexico', 'fluentform'), 'FM' => __('Micronesia', 'fluentform'), 'MD' => __('Moldova', 'fluentform'), 'MC' => __('Monaco', 'fluentform'), 'MN' => __('Mongolia', 'fluentform'), 'ME' => __('Montenegro', 'fluentform'), 'MS' => __('Montserrat', 'fluentform'), 'MA' => __('Morocco', 'fluentform'), 'MZ' => __('Mozambique', 'fluentform'), 'MM' => __('Myanmar', 'fluentform'), 'NA' => __('Namibia', 'fluentform'), 'NR' => __('Nauru', 'fluentform'), 'NP' => __('Nepal', 'fluentform'), 'NL' => __('Netherlands', 'fluentform'), 'NC' => __('New Caledonia', 'fluentform'), 'NZ' => __('New Zealand', 'fluentform'), 'NI' => __('Nicaragua', 'fluentform'), 'NE' => __('Niger', 'fluentform'), 'NG' => __('Nigeria', 'fluentform'), 'NU' => __('Niue', 'fluentform'), 'NF' => __('Norfolk Island', 'fluentform'), 'MP' => __('Northern Mariana Islands', 'fluentform'), 'KP' => __('North Korea', 'fluentform'), 'NO' => __('Norway', 'fluentform'), 'OM' => __('Oman', 'fluentform'), 'PK' => __('Pakistan', 'fluentform'), 'PS' => __('Palestinian Territory', 'fluentform'), 'PA' => __('Panama', 'fluentform'), 'PG' => __('Papua New Guinea', 'fluentform'), 'PY' => __('Paraguay', 'fluentform'), 'PE' => __('Peru', 'fluentform'), 'PH' => __('Philippines', 'fluentform'), 'PN' => __('Pitcairn', 'fluentform'), 'PL' => __('Poland', 'fluentform'), 'PT' => __('Portugal', 'fluentform'), 'PR' => __('Puerto Rico', 'fluentform'), 'QA' => __('Qatar', 'fluentform'), 'RE' => __('Reunion', 'fluentform'), 'RO' => __('Romania', 'fluentform'), 'RU' => __('Russia', 'fluentform'), 'RW' => __('Rwanda', 'fluentform'), 'BL' => __('Saint Barthélemy', 'fluentform'), 'SH' => __('Saint Helena', 'fluentform'), 'KN' => __('Saint Kitts and Nevis', 'fluentform'), 'LC' => __('Saint Lucia', 'fluentform'), 'MF' => __('Saint Martin (French part)', 'fluentform'), 'SX' => __('Saint Martin (Dutch part)', 'fluentform'), 'PM' => __('Saint Pierre and Miquelon', 'fluentform'), 'VC' => __('Saint Vincent and the Grenadines', 'fluentform'), 'SM' => __('San Marino', 'fluentform'), 'ST' => __('Sao Tome and Principe', 'fluentform'), 'SA' => __('Saudi Arabia', 'fluentform'), 'SN' => __('Senegal', 'fluentform'), 'RS' => __('Serbia', 'fluentform'), 'SC' => __('Seychelles', 'fluentform'), 'SL' => __('Sierra Leone', 'fluentform'), 'SG' => __('Singapore', 'fluentform'), 'SK' => __('Slovakia', 'fluentform'), 'SI' => __('Slovenia', 'fluentform'), 'SB' => __('Solomon Islands', 'fluentform'), 'SO' => __('Somalia', 'fluentform'), 'ZA' => __('South Africa', 'fluentform'), 'GS' => __('South Georgia/Sandwich Islands', 'fluentform'), 'KR' => __('South Korea', 'fluentform'), 'SS' => __('South Sudan', 'fluentform'), 'ES' => __('Spain', 'fluentform'), 'LK' => __('Sri Lanka', 'fluentform'), 'SD' => __('Sudan', 'fluentform'), 'SR' => __('Suriname', 'fluentform'), 'SJ' => __('Svalbard and Jan Mayen', 'fluentform'), 'SZ' => __('Swaziland', 'fluentform'), 'SE' => __('Sweden', 'fluentform'), 'CH' => __('Switzerland', 'fluentform'), 'SY' => __('Syria', 'fluentform'), 'TW' => __('Taiwan', 'fluentform'), 'TJ' => __('Tajikistan', 'fluentform'), 'TZ' => __('Tanzania', 'fluentform'), 'TH' => __('Thailand', 'fluentform'), 'TL' => __('Timor-Leste', 'fluentform'), 'TG' => __('Togo', 'fluentform'), 'TK' => __('Tokelau', 'fluentform'), 'TO' => __('Tonga', 'fluentform'), 'TT' => __('Trinidad and Tobago', 'fluentform'), 'TN' => __('Tunisia', 'fluentform'), 'TR' => __('Turkey', 'fluentform'), 'TM' => __('Turkmenistan', 'fluentform'), 'TC' => __('Turks and Caicos Islands', 'fluentform'), 'TV' => __('Tuvalu', 'fluentform'), 'UG' => __('Uganda', 'fluentform'), 'UA' => __('Ukraine', 'fluentform'), 'AE' => __('United Arab Emirates', 'fluentform'), 'GB' => __('United Kingdom (UK)', 'fluentform'), 'US' => __('United States (US)', 'fluentform'), 'UM' => __('United States (US) Minor Outlying Islands', 'fluentform'), 'VI' => __('United States (US) Virgin Islands', 'fluentform'), 'UY' => __('Uruguay', 'fluentform'), 'UZ' => __('Uzbekistan', 'fluentform'), 'VU' => __('Vanuatu', 'fluentform'), 'VA' => __('Vatican', 'fluentform'), 'VE' => __('Venezuela', 'fluentform'), 'VN' => __('Vietnam', 'fluentform'), 'WF' => __('Wallis and Futuna', 'fluentform'), 'EH' => __('Western Sahara', 'fluentform'), 'WS' => __('Samoa', 'fluentform'), 'YE' => __('Yemen', 'fluentform'), 'ZM' => __('Zambia', 'fluentform'), 'ZW' => __('Zimbabwe', 'fluentform'), ]; $country_names = apply_filters_deprecated( 'fluent_editor_countries', [ $country_names ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/editor_countries', 'Use fluentform/editor_countries instead of fluent_editor_countries.' ); $country_names = apply_filters('fluentform/editor_countries', $country_names); asort($country_names); return $country_names; app/Services/FormBuilder/DefaultElements.php000064400000232342147600120010015110 0ustar00 [ 'input_name' => [ 'index' => 0, 'element' => 'input_name', 'attributes' => [ 'name' => 'names', 'data-type' => 'name-element', ], 'settings' => [ 'container_class' => '', 'admin_field_label' => 'Name', 'conditional_logics' => [], ], 'fields' => [ 'first_name' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => 'first_name', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => __('Enter Your First Name', 'fluentform'), 'maxlength' => '', ], 'settings' => [ 'container_class' => '', 'label' => __('First Name', 'fluentform'), 'help_message' => '', 'visible' => true, 'label_placement' => 'top', 'label_placement_options' => [ [ 'value' => '', 'label' => __('Default', 'fluentform'), ], [ 'value' => 'top', 'label' => __('Top', 'fluentform'), ], [ 'value' => 'right', 'label' => __('Right', 'fluentform'), ], [ 'value' => 'bottom', 'label' => __('Bottom', 'fluentform'), ], [ 'value' => 'left', 'label' => __('Left', 'fluentform'), ], [ 'value' => 'hide_label', 'label' => __('Hidden', 'fluentform'), ], ], 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText', ], ], 'middle_name' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => 'middle_name', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => __('Enter Your Middle Name', 'fluentform'), 'required' => false, 'maxlength' => '', ], 'settings' => [ 'container_class' => '', 'label' => __('Middle Name', 'fluentform'), 'help_message' => '', 'error_message' => '', 'label_placement' => 'top', 'label_placement_options' => [ [ 'value' => '', 'label' => __('Default', 'fluentform'), ], [ 'value' => 'top', 'label' => __('Top', 'fluentform'), ], [ 'value' => 'right', 'label' => __('Right', 'fluentform'), ], [ 'value' => 'bottom', 'label' => __('Bottom', 'fluentform'), ], [ 'value' => 'left', 'label' => __('Left', 'fluentform'), ], [ 'value' => 'hide_label', 'label' => __('Hidden', 'fluentform'), ], ], 'visible' => false, 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText', ], ], 'last_name' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => 'last_name', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => __('Enter Your Last Name', 'fluentform'), 'required' => false, 'maxlength' => '', ], 'settings' => [ 'container_class' => '', 'label' => __('Last Name', 'fluentform'), 'help_message' => '', 'error_message' => '', 'label_placement' => 'top', 'label_placement_options' => [ [ 'value' => '', 'label' => __('Default', 'fluentform'), ], [ 'value' => 'top', 'label' => __('Top', 'fluentform'), ], [ 'value' => 'right', 'label' => __('Right', 'fluentform'), ], [ 'value' => 'bottom', 'label' => __('Bottom', 'fluentform'), ], [ 'value' => 'left', 'label' => __('Left', 'fluentform'), ], [ 'value' => 'hide_label', 'label' => __('Hidden', 'fluentform'), ], ], 'visible' => true, 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText', ], ], ], 'editor_options' => [ 'title' => 'Name Fields', 'element' => 'name-fields', 'icon_class' => 'ff-edit-name', 'template' => 'nameFields', ], ], 'input_email' => [ 'index' => 1, 'element' => 'input_email', 'attributes' => [ 'type' => 'email', 'name' => 'email', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => 'Email Address', ], 'settings' => [ 'container_class' => '', 'label' => __('Email', 'fluentform'), 'label_placement' => '', 'help_message' => '', 'admin_field_label' => '', 'prefix_label' => '', 'suffix_label' => '', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], 'email' => [ 'value' => true, 'message' => $defaultGlobalMessages['email'], 'global_message' => $defaultGlobalMessages['email'], 'global' => true ], ], 'conditional_logics' => [], 'is_unique' => 'no', 'unique_validation_message' => __('Email address need to be unique.', 'fluentform'), ], 'editor_options' => [ 'title' => __('Email', 'fluentform'), 'icon_class' => 'ff-edit-email', 'template' => 'inputText', ], ], 'input_text' => [ 'index' => 2, 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => 'input_text', 'value' => '', 'class' => '', 'placeholder' => '', 'maxlength' => '', ], 'settings' => [ 'container_class' => '', 'label' => __('Text Input', 'fluentform'), 'label_placement' => '', 'admin_field_label' => '', 'help_message' => '', 'prefix_label' => '', 'suffix_label' => '', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], 'is_unique' => 'no', 'unique_validation_message' => __('This value need to be unique.', 'fluentform'), ], 'editor_options' => [ 'title' => __('Simple Text', 'fluentform'), 'icon_class' => 'ff-edit-text', 'template' => 'inputText', ], ], 'input_mask' => [ 'index' => 2, 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => 'input_mask', 'data-mask' => '', 'value' => '', 'class' => '', 'placeholder' => '', ], 'settings' => [ 'container_class' => '', 'label' => __('Mask Input', 'fluentform'), 'label_placement' => '', 'admin_field_label' => '', 'help_message' => '', 'temp_mask' => '', 'prefix_label' => '', 'suffix_label' => '', 'data-mask-reverse' => 'no', 'data-clear-if-not-match' => 'no', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Mask Input', 'fluentform'), 'icon_class' => 'ff-edit-mask', 'template' => 'inputText', ], ], 'textarea' => [ 'index' => 3, 'element' => 'textarea', 'attributes' => [ 'name' => 'description', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => '', 'rows' => 3, 'cols' => 2, 'maxlength' => '', ], 'settings' => [ 'container_class' => '', 'label' => __('Textarea', 'fluentform'), 'admin_field_label' => '', 'label_placement' => '', 'help_message' => '', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Text Area', 'fluentform'), 'icon_class' => 'ff-edit-textarea', 'template' => 'inputTextarea', ], ], 'address' => [ 'index' => 4, 'element' => 'address', 'attributes' => [ 'id' => '', 'class' => '', 'name' => 'address_1', 'data-type' => 'address-element', ], 'settings' => [ 'label' => __('Address', 'fluentform'), 'enable_g_autocomplete' => 'no', 'admin_field_label' => 'Address', 'field_order' => [ ['id' => 1, 'value' => 'address_line_1'], ['id' => 2, 'value' => 'address_line_2'], ['id' => 3, 'value' => 'city'], ['id' => 4, 'value' => 'state'], ['id' => 5, 'value' => 'zip'], ['id' => 6, 'value' => 'country'], ], 'conditional_logics' => [], ], 'fields' => [ 'address_line_1' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => 'address_line_1', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => __('Address Line 1', 'fluentform'), ], 'settings' => [ 'container_class' => '', 'label' => __('Address Line 1', 'fluentform'), 'label_placement' => '', 'label_placement_options' => [ [ 'value' => '', 'label' => __('Default', 'fluentform'), ], [ 'value' => 'top', 'label' => __('Top', 'fluentform'), ], [ 'value' => 'right', 'label' => __('Right', 'fluentform'), ], [ 'value' => 'bottom', 'label' => __('Bottom', 'fluentform'), ], [ 'value' => 'left', 'label' => __('Left', 'fluentform'), ], [ 'value' => 'hide_label', 'label' => __('Hidden', 'fluentform'), ], ], 'admin_field_label' => '', 'help_message' => '', 'visible' => true, 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText', ], ], 'address_line_2' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => 'address_line_2', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => __('Address Line 2', 'fluentform'), ], 'settings' => [ 'container_class' => '', 'label' => __('Address Line 2', 'fluentform'), 'label_placement' => '', 'label_placement_options' => [ [ 'value' => '', 'label' => __('Default', 'fluentform'), ], [ 'value' => 'top', 'label' => __('Top', 'fluentform'), ], [ 'value' => 'right', 'label' => __('Right', 'fluentform'), ], [ 'value' => 'bottom', 'label' => __('Bottom', 'fluentform'), ], [ 'value' => 'left', 'label' => __('Left', 'fluentform'), ], [ 'value' => 'hide_label', 'label' => __('Hide Label', 'fluentform'), ], ], 'admin_field_label' => '', 'help_message' => '', 'visible' => true, 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText', ], ], 'city' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => 'city', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => __('City', 'fluentform'), ], 'settings' => [ 'container_class' => '', 'label' => __('City', 'fluentform'), 'label_placement' => '', 'label_placement_options' => [ [ 'value' => '', 'label' => __('Default', 'fluentform'), ], [ 'value' => 'top', 'label' => __('Top', 'fluentform'), ], [ 'value' => 'right', 'label' => __('Right', 'fluentform'), ], [ 'value' => 'bottom', 'label' => __('Bottom', 'fluentform'), ], [ 'value' => 'left', 'label' => __('Left', 'fluentform'), ], [ 'value' => 'hide_label', 'label' => __('Hide Label', 'fluentform'), ], ], 'admin_field_label' => '', 'help_message' => '', 'error_message' => '', 'visible' => true, 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText', ], ], 'state' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => 'state', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => __('State', 'fluentform'), ], 'settings' => [ 'container_class' => '', 'label' => __('State', 'fluentform'), 'label_placement' => '', 'label_placement_options' => [ [ 'value' => '', 'label' => __('Default', 'fluentform'), ], [ 'value' => 'top', 'label' => __('Top', 'fluentform'), ], [ 'value' => 'right', 'label' => __('Right', 'fluentform'), ], [ 'value' => 'bottom', 'label' => __('Bottom', 'fluentform'), ], [ 'value' => 'left', 'label' => __('Left', 'fluentform'), ], [ 'value' => 'hide_label', 'label' => __('Hide Label', 'fluentform'), ], ], 'admin_field_label' => '', 'help_message' => '', 'error_message' => '', 'visible' => true, 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText', ], ], 'zip' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => 'zip', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => __('Zip', 'fluentform'), 'required' => false, ], 'settings' => [ 'container_class' => '', 'label' => __('Zip Code', 'fluentform'), 'label_placement' => '', 'label_placement_options' => [ [ 'value' => '', 'label' => __('Default', 'fluentform'), ], [ 'value' => 'top', 'label' => __('Top', 'fluentform'), ], [ 'value' => 'right', 'label' => __('Right', 'fluentform'), ], [ 'value' => 'bottom', 'label' => __('Bottom', 'fluentform'), ], [ 'value' => 'left', 'label' => __('Left', 'fluentform'), ], [ 'value' => 'hide_label', 'label' => __('Hide Label', 'fluentform'), ], ], 'admin_field_label' => '', 'help_message' => '', 'error_message' => '', 'visible' => true, 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText', ], ], 'country' => [ 'element' => 'select_country', 'attributes' => [ 'name' => 'country', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => __('Select Country', 'fluentform'), 'required' => false, ], 'settings' => [ 'container_class' => '', 'label' => __('Country', 'fluentform'), 'label_placement' => '', 'label_placement_options' => [ [ 'value' => '', 'label' => __('Default', 'fluentform'), ], [ 'value' => 'top', 'label' => __('Top', 'fluentform'), ], [ 'value' => 'right', 'label' => __('Right', 'fluentform'), ], [ 'value' => 'bottom', 'label' => __('Bottom', 'fluentform'), ], [ 'value' => 'left', 'label' => __('Left', 'fluentform'), ], [ 'value' => 'hide_label', 'label' => __('Hide Label', 'fluentform'), ], ], 'admin_field_label' => '', 'help_message' => '', 'error_message' => '', 'visible' => true, 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'country_list' => [ 'active_list' => 'all', 'visible_list' => [], 'hidden_list' => [], ], 'conditional_logics' => [], ], 'options' => [ 'US' => 'US of America', 'UK' => 'United Kingdom', ], 'editor_options' => [ 'title' => 'Country List', 'element' => 'country-list', 'icon_class' => 'icon-text-width', 'template' => 'selectCountry', ], ], ], 'editor_options' => [ 'title' => __('Address Fields', 'fluentform'), 'element' => 'address-fields', 'icon_class' => 'ff-edit-address', 'template' => 'addressFields', ], ], 'input_number' => [ 'index' => 6, 'element' => 'input_number', 'attributes' => [ 'type' => 'number', 'name' => 'numeric_field', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => '', ], 'settings' => [ 'container_class' => '', 'label' => __('Numeric Field', 'fluentform'), 'admin_field_label' => '', 'label_placement' => '', 'help_message' => '', 'number_step' => '', 'prefix_label' => '', 'suffix_label' => '', 'numeric_formatter' => '', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], 'numeric' => [ 'value' => true, 'message' => $defaultGlobalMessages['numeric'], 'global_message' => $defaultGlobalMessages['numeric'], 'global' => true ], 'min' => [ 'value' => '', 'message' => $defaultGlobalMessages['min'], 'global_message' => $defaultGlobalMessages['min'], 'global' => true ], 'max' => [ 'value' => '', 'message' => $defaultGlobalMessages['max'], 'global_message' => $defaultGlobalMessages['max'], 'global' => true ], 'digits' => [ 'value' => '', 'message' => $defaultGlobalMessages['digits'], 'global_message' => $defaultGlobalMessages['digits'], 'global' => true ], ], 'conditional_logics' => [], 'calculation_settings' => [ 'status' => false, 'formula' => '', ], ], 'editor_options' => [ 'title' => __('Numeric Field', 'fluentform'), 'icon_class' => 'ff-edit-numeric', 'template' => 'inputText', ], ], 'select' => [ 'index' => 7, 'element' => 'select', 'attributes' => [ 'name' => 'dropdown', 'value' => '', 'id' => '', 'class' => '', ], 'settings' => [ 'dynamic_default_value' => '', 'label' => __('Dropdown', 'fluentform'), 'admin_field_label' => '', 'help_message' => '', 'container_class' => '', 'label_placement' => '', 'placeholder' => '- Select -', 'advanced_options' => [ [ 'label' => 'Option 1', 'value' => 'Option 1', 'calc_value' => '', ], [ 'label' => 'Option 2', 'value' => 'Option 2', 'calc_value' => '', ], ], 'calc_value_status' => false, 'enable_image_input' => false, 'values_visible' => false, 'enable_select_2' => 'no', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], 'randomize_options' => 'no', ], 'editor_options' => [ 'title' => __('Dropdown', 'fluentform'), 'icon_class' => 'ff-edit-dropdown', 'element' => 'select', 'template' => 'select', ], ], 'input_radio' => [ 'index' => 8, 'element' => 'input_radio', 'attributes' => [ 'type' => 'radio', 'name' => 'input_radio', 'value' => '', ], 'settings' => [ 'dynamic_default_value' => '', 'container_class' => '', 'label' => __('Radio Field', 'fluentform'), 'admin_field_label' => '', 'label_placement' => '', 'display_type' => '', 'help_message' => '', 'randomize_options' => 'no', 'advanced_options' => [ [ 'label' => 'Yes', 'value' => 'yes', 'calc_value' => '', 'image' => '', ], [ 'label' => 'No', 'value' => 'no', 'calc_value' => '', 'image' => '', ], ], 'calc_value_status' => false, 'enable_image_input' => false, 'values_visible' => false, 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], 'layout_class' => '', ], 'editor_options' => [ 'title' => __('Radio Field', 'fluentform'), 'icon_class' => 'ff-edit-radio', 'element' => 'input-radio', 'template' => 'inputCheckable', ], ], 'input_checkbox' => [ 'index' => 9, 'element' => 'input_checkbox', 'attributes' => [ 'type' => 'checkbox', 'name' => 'checkbox', 'value' => [], ], 'settings' => [ 'dynamic_default_value' => '', 'container_class' => '', 'label' => __('Checkbox Field', 'fluentform'), 'admin_field_label' => '', 'label_placement' => '', 'display_type' => '', 'help_message' => '', 'advanced_options' => [ [ 'label' => 'Item 1', 'value' => 'Item 1', 'calc_value' => '', 'image' => '', ], [ 'label' => 'Item 2', 'value' => 'Item 2', 'calc_value' => '', 'image' => '', ], [ 'label' => 'Item 3', 'value' => 'Item 3', 'calc_value' => '', 'image' => '', ], ], 'calc_value_status' => false, 'enable_image_input' => false, 'values_visible' => false, 'randomize_options' => 'no', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], 'layout_class' => '', ], 'editor_options' => [ 'title' => __('Checkbox', 'fluentform'), 'icon_class' => 'ff-edit-checkbox-1', 'template' => 'inputCheckable', ], ], 'multi_select' => [ 'index' => 10, 'element' => 'select', 'attributes' => [ 'name' => 'multi_select', 'value' => [], 'id' => '', 'class' => '', 'placeholder' => '', 'multiple' => true, ], 'settings' => [ 'dynamic_default_value' => '', 'help_message' => '', 'container_class' => '', 'label' => __('Multiselect', 'fluentform'), 'admin_field_label' => '', 'label_placement' => '', 'placeholder' => '', 'max_selection' => '', 'advanced_options' => [ [ 'label' => 'Option 1', 'value' => 'Option 1', 'calc_value' => '', ], [ 'label' => 'Option 2', 'value' => 'Option 2', 'calc_value' => '', ], ], 'calc_value_status' => false, 'enable_image_input' => false, 'randomize_options' => 'no', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Multiple Choice', 'fluentform'), 'icon_class' => 'ff-edit-multiple-choice', 'element' => 'select', 'template' => 'select', ], ], 'input_url' => [ 'index' => 11, 'element' => 'input_url', 'attributes' => [ 'type' => 'url', 'name' => 'url', 'value' => '', 'class' => '', 'placeholder' => '', ], 'settings' => [ 'container_class' => '', 'label' => __('URL', 'fluentform'), 'admin_field_label' => '', 'label_placement' => '', 'help_message' => '', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], 'url' => [ 'value' => true, 'message' => $defaultGlobalMessages['url'], 'global_message' => $defaultGlobalMessages['url'], 'global' => true ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Website URL', 'fluentform'), 'icon_class' => 'ff-edit-website-url', 'template' => 'inputText', ], ], 'input_date' => [ 'index' => 13, 'element' => 'input_date', 'attributes' => [ 'type' => 'text', 'name' => 'datetime', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => '', ], 'settings' => [ 'container_class' => '', 'label' => __('Date / Time', 'fluentform'), 'admin_field_label' => '', 'label_placement' => '', 'date_config' => '', 'date_format' => 'd/m/Y', 'help_message' => '', 'is_time_enabled' => true, 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Time & Date', 'fluentform'), 'icon_class' => 'ff-edit-date', 'template' => 'inputText', ], ], 'input_image' => [ 'index' => 15, 'element' => 'input_image', 'attributes' => [ 'type' => 'file', 'name' => 'image-upload', 'value' => '', 'id' => '', 'class' => '', 'accept' => 'image/*', ], 'settings' => [ 'container_class' => '', 'label' => __('Image Upload', 'fluentform'), 'admin_field_label' => '', 'label_placement' => '', 'btn_text' => 'Choose File', 'upload_file_location' => 'default', 'file_location_type' => 'follow_global_settings', 'help_message' => '', 'upload_bttn_ui' => '', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], 'max_file_size' => [ 'value' => 1048576, '_valueFrom' => 'MB', 'message' => $defaultGlobalMessages['max_file_size'], 'global_message' => $defaultGlobalMessages['max_file_size'], 'global' => true ], 'max_file_count' => [ 'value' => 1, 'message' => $defaultGlobalMessages['max_file_count'], 'global_message' => $defaultGlobalMessages['max_file_count'], 'global' => true ], 'allowed_image_types' => [ 'value' => [], 'message' => $defaultGlobalMessages['allowed_image_types'], 'global_message' => $defaultGlobalMessages['allowed_image_types'], 'global' => true ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Image Upload', 'fluentform'), 'icon_class' => 'ff-edit-images', 'template' => 'inputFile', ], ], 'input_file' => [ 'index' => 16, 'element' => 'input_file', 'attributes' => [ 'type' => 'file', 'name' => 'file-upload', 'value' => '', 'id' => '', 'class' => '', ], 'settings' => [ 'container_class' => '', 'label' => __('File Upload', 'fluentform'), 'admin_field_label' => '', 'label_placement' => '', 'btn_text' => 'Choose File', 'help_message' => '', 'upload_file_location' => 'default', 'file_location_type' => 'follow_global_settings', 'upload_bttn_ui' => '', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], 'max_file_size' => [ 'value' => 1048576, '_valueFrom' => 'MB', 'message' => $defaultGlobalMessages['max_file_size'], 'global_message' => $defaultGlobalMessages['max_file_size'], 'global' => true ], 'max_file_count' => [ 'value' => 1, 'message' => $defaultGlobalMessages['max_file_count'], 'global_message' => $defaultGlobalMessages['max_file_count'], 'global' => true ], 'allowed_file_types' => [ 'value' => [], 'message' => $defaultGlobalMessages['allowed_image_types'], 'global_message' => $defaultGlobalMessages['allowed_image_types'], 'global' => true ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('File Upload', 'fluentform'), 'icon_class' => 'ff-edit-files', 'template' => 'inputFile', ], ], 'select_country' => [ 'index' => 5, 'element' => 'select_country', 'attributes' => [ 'name' => 'country-list', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => __('Select Country', 'fluentform'), ], 'settings' => [ 'container_class' => '', 'label' => __('Country', 'fluentform'), 'admin_field_label' => '', 'label_placement' => '', 'help_message' => '', 'enable_select_2' => 'no', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'country_list' => [ 'active_list' => 'all', 'visible_list' => [], 'hidden_list' => [], ], 'conditional_logics' => [], ], 'options' => [ 'US' => 'United States of America', ], 'editor_options' => [ 'title' => __('Country List', 'fluentform'), 'element' => 'country-list', 'icon_class' => 'ff-edit-country', 'template' => 'selectCountry', ], ], 'custom_html' => [ 'index' => 17, 'element' => 'custom_html', 'attributes' => [], 'settings' => [ 'html_codes' => '

Some description about this section

', 'conditional_logics' => [], 'container_class' => '', ], 'editor_options' => [ 'title' => __('Custom HTML', 'fluentform'), 'icon_class' => 'ff-edit-html', 'template' => 'customHTML', ], ], ], 'advanced' => [ 'ratings' => [ 'index' => 8, 'element' => 'ratings', 'attributes' => [ 'class' => '', 'value' => 0, 'name' => 'ratings', ], 'settings' => [ 'label' => __('Ratings', 'fluentform'), 'show_text' => 'no', 'help_message' => '', 'label_placement' => '', 'admin_field_label' => '', 'container_class' => '', 'conditional_logics' => [], 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], ], 'options' => [ '1' => __('Nice', 'fluentform'), '2' => __('Good', 'fluentform'), '3' => __('Very Good', 'fluentform'), '4' => __('Awesome', 'fluentform'), '5' => __('Amazing', 'fluentform'), ], 'editor_options' => [ 'title' => __('Ratings', 'fluentform'), 'icon_class' => 'ff-edit-rating', 'template' => 'ratings', ], ], 'input_hidden' => [ 'index' => 0, 'element' => 'input_hidden', 'attributes' => [ 'type' => 'hidden', 'name' => 'hidden', 'value' => '', ], 'settings' => [ 'admin_field_label' => '', ], 'editor_options' => [ 'title' => __('Hidden Field', 'fluentform'), 'icon_class' => 'ff-edit-hidden-field', 'template' => 'inputHidden', ], ], 'tabular_grid' => [ 'index' => 9, 'element' => 'tabular_grid', 'attributes' => [ 'name' => 'tabular_grid', 'data-type' => 'tabular-element', ], 'settings' => [ 'tabular_field_type' => 'checkbox', 'container_class' => '', 'label' => __('Checkbox Grid', 'fluentform'), 'admin_field_label' => '', 'label_placement' => '', 'help_message' => '', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, 'per_row' => false, ], ], 'conditional_logics' => [], 'grid_columns' => [ 'Column-1' => 'Column 1', ], 'grid_rows' => [ 'Row-1' => 'Row 1', ], 'selected_grids' => [], ], 'editor_options' => [ 'title' => __('Checkable Grid', 'fluentform'), 'icon_class' => 'ff-edit-checkable-grid', 'template' => 'checkableGrids', ], ], 'section_break' => [ 'index' => 1, 'element' => 'section_break', 'attributes' => [ 'id' => '', 'class' => '', ], 'settings' => [ 'label' => __('Section Break', 'fluentform'), 'description' => __('Some description about this section', 'fluentform'), 'align' => 'left', 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Section Break', 'fluentform'), 'icon_class' => 'ff-edit-section-break', 'template' => 'sectionBreak', ], ], 'input_password' => [ 'index' => 11, 'element' => 'input_password', 'attributes' => [ 'type' => 'password', 'name' => 'password', 'value' => '', 'id' => '', 'class' => '', 'placeholder' => '', ], 'settings' => [ 'container_class' => '', 'label' => __('Password', 'fluentform'), 'admin_field_label' => '', 'label_placement' => '', 'help_message' => '', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Password', 'fluentform'), 'icon_class' => 'ff-edit-password', 'template' => 'inputText', ], ], 'form_step' => [ 'index' => 7, 'element' => 'form_step', 'attributes' => [ 'id' => '', 'class' => '', ], 'settings' => [ 'prev_btn' => [ 'type' => 'default', 'text' => __('Previous', 'fluentform'), 'img_url' => '', ], 'next_btn' => [ 'type' => 'default', 'text' => __('Next', 'fluentform'), 'img_url' => '', ], ], 'editor_options' => [ 'title' => __('Form Step', 'fluentform'), 'icon_class' => 'ff-edit-step', 'template' => 'formStep', ], ], 'terms_and_condition' => [ 'index' => 5, 'element' => 'terms_and_condition', 'attributes' => [ 'type' => 'checkbox', 'name' => 'terms-n-condition', 'value' => false, 'class' => '', ], 'settings' => [ 'tnc_html' => 'I have read and agree to the
Terms and Conditions and Privacy Policy', 'has_checkbox' => true, 'admin_field_label' => __('Terms and Conditions', 'fluentform'), 'container_class' => '', 'validation_rules' => [ 'required' => [ 'value' => false, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Terms & Conditions', 'fluentform'), 'icon_class' => 'ff-edit-terms-condition', 'template' => 'termsCheckbox', ], ], 'gdpr_agreement' => [ 'index' => 10, 'element' => 'gdpr_agreement', 'attributes' => [ 'type' => 'checkbox', 'name' => 'gdpr-agreement', 'value' => false, 'class' => 'ff_gdpr_field', ], 'settings' => [ 'label' => __('GDPR Agreement', 'fluentform'), 'tnc_html' => __('I consent to have this website store my submitted information so they can respond to my inquiry', 'fluentform'), 'admin_field_label' => __('GDPR Agreement', 'fluentform'), 'has_checkbox' => true, 'container_class' => '', 'validation_rules' => [ 'required' => [ 'value' => true, 'message' => $defaultGlobalMessages['required'], 'global_message' => $defaultGlobalMessages['required'], 'global' => true, ], ], 'required_field_message' => '', 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('GDPR Agreement', 'fluentform'), 'icon_class' => 'ff-edit-gdpr', 'template' => 'termsCheckbox', ], ], 'recaptcha' => [ 'index' => 2, 'element' => 'recaptcha', 'attributes' => ['name' => 'g-recaptcha-response'], 'settings' => [ 'label' => '', 'label_placement' => '', 'validation_rules' => [], ], 'editor_options' => [ 'title' => __('reCaptcha', 'fluentform'), 'icon_class' => 'ff-edit-recaptha', 'why_disabled_modal' => 'recaptcha', 'template' => 'recaptcha', ], ], 'hcaptcha' => [ 'index' => 3, 'element' => 'hcaptcha', 'attributes' => ['name' => 'h-captcha-response'], 'settings' => [ 'label' => '', 'label_placement' => '', 'validation_rules' => [], ], 'editor_options' => [ 'title' => __('hCaptcha', 'fluentform'), 'icon_class' => 'ff-edit-recaptha', 'why_disabled_modal' => 'hcaptcha', 'template' => 'hcaptcha', ], ], 'turnstile' => [ 'index' => 3, 'element' => 'turnstile', 'attributes' => ['name' => 'cf-turnstile-response'], 'settings' => [ 'label' => '', 'label_placement' => '', 'validation_rules' => [] ], 'editor_options' => [ 'title' => __('Turnstile', 'fluentform'), 'icon_class' => 'ff-edit-recaptha', 'why_disabled_modal' => 'turnstile', 'template' => 'turnstile', ], ], 'shortcode' => [ 'index' => 4, 'element' => 'shortcode', 'attributes' => [ 'id' => '', 'class' => '', ], 'settings' => [ 'shortcode' => '[your_shortcode_here]', 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Shortcode', 'fluentform'), 'icon_class' => 'ff-edit-shortcode', 'template' => 'shortcode', ], ], 'action_hook' => [ 'index' => 6, 'element' => 'action_hook', 'attributes' => [ 'id' => '', 'class' => '', ], 'settings' => [ 'hook_name' => 'YOUR_CUSTOM_HOOK_NAME', 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Action Hook', 'fluentform'), 'icon_class' => 'ff-edit-action-hook', 'template' => 'actionHook', ], ], ], 'container' => [ 'container_1_col' => [ 'index' => 1, 'element' => 'container', 'attributes' => [], 'settings' => [ 'container_class' => '', 'conditional_logics' => [], 'is_width_auto_calc' => true, ], 'columns' => [ ['width' => '', 'left' => '', 'fields' => []], ], 'editor_options' => [ 'title' => __('One Column Container', 'fluentform'), 'icon_class' => 'dashicons dashicons-align-center', ], ], 'container_2_col' => [ 'index' => 1, 'element' => 'container', 'attributes' => [], 'settings' => [ 'container_class' => '', 'conditional_logics' => [], 'container_width' => '', 'is_width_auto_calc' => true, ], 'columns' => [ ['width' => 50, 'fields' => []], ['width' => 50, 'fields' => []], ], 'editor_options' => [ 'title' => __('Two Column Container', 'fluentform'), 'icon_class' => 'ff-edit-column-2', ], ], 'container_3_col' => [ 'index' => 2, 'element' => 'container', 'attributes' => [], 'settings' => [ 'container_class' => '', 'conditional_logics' => [], 'container_width' => '', 'is_width_auto_calc' => true, ], 'columns' => [ ['width' => 33.33, 'fields' => []], ['width' => 33.33, 'fields' => []], ['width' => 33.33, 'fields' => []], ], 'editor_options' => [ 'title' => __('Three Column Container', 'fluentform'), 'icon_class' => 'ff-edit-three-column', ], ], 'container_4_col' => [ 'index' => 3, 'element' => 'container', 'attributes' => [], 'settings' => [ 'container_class' => '', 'conditional_logics' => [], 'container_width' => '', 'is_width_auto_calc' => true, ], 'columns' => [ ['width' => 25, 'fields' => []], ['width' => 25, 'fields' => []], ['width' => 25, 'fields' => []], ['width' => 25, 'fields' => []], ], 'editor_options' => [ 'title' => __('Four Column Container', 'fluentform'), 'icon_class' => 'ff-edit-three-column', ], ], 'container_5_col' => [ 'index' => 5, 'element' => 'container', 'attributes' => [], 'settings' => [ 'container_class' => '', 'conditional_logics' => [], 'container_width' => '', 'is_width_auto_calc' => true, ], 'columns' => [ ['width' => 20, 'fields' => []], ['width' => 20, 'fields' => []], ['width' => 20, 'fields' => []], ['width' => 20, 'fields' => []], ['width' => 20, 'fields' => []], ], 'editor_options' => [ 'title' => __('Five Column Container', 'fluentform'), 'icon_class' => 'ff-edit-three-column', ], ], 'container_6_col' => [ 'index' => 6, 'element' => 'container', 'attributes' => [], 'settings' => [ 'container_class' => '', 'conditional_logics' => [], 'container_width' => '', 'is_width_auto_calc' => true, ], 'columns' => [ ['width' => 16.67, 'fields' => []], ['width' => 16.67, 'fields' => []], ['width' => 16.67, 'fields' => []], ['width' => 16.67, 'fields' => []], ['width' => 16.67, 'fields' => []], ['width' => 16.67, 'fields' => []], ], 'editor_options' => [ 'title' => __('Six Column Container', 'fluentform'), 'icon_class' => 'ff-edit-three-column', ], ], ], ]; if (! defined('FLUENTFORMPRO')) { $defaultElements['general']['phone'] = [ 'index' => 17, 'element' => 'phone', 'attributes' => [], 'settings' => [], 'editor_options' => [ 'title' => __('Phone', 'fluentform'), 'icon_class' => 'el-icon-phone-outline', 'template' => 'inputText', ], ]; $defaultElements['advanced']['net_promoter_score'] = [ 'index' => 14, 'element' => 'net_promoter_score', 'attributes' => [], 'settings' => [], 'options' => [], 'editor_options' => [ 'title' => __('Net Promoter Score', 'fluentform'), 'icon_class' => 'ff-edit-rating', 'template' => 'net_promoter', ], ]; $defaultElements['advanced']['quiz_score'] = [ 'index' => 19, 'element' => 'quiz_score', 'attributes' => [], 'settings' => [], 'options' => [], 'editor_options' => [ 'title' => __('Quiz Score', 'fluentform'), 'icon_class' => 'el-icon-postcard', 'template' => 'inputHidden', ], ]; $defaultElements['advanced']['cpt_selection'] = [ 'index' => 18, 'element' => 'cpt_selection', 'attributes' => [], 'settings' => [], 'options' => [], 'editor_options' => [ 'title' => __('Post/CPT Selection', 'fluentform'), 'icon_class' => 'ff-edit-dropdown', 'element' => 'select', 'template' => 'select', ], ]; $defaultElements['advanced']['save_progress_button'] = [ 'index' => 20, 'element' => 'save_progress_button', 'attributes' => [], 'settings' => [], 'options' => [], 'editor_options' => [ 'title' => __('Save & Resume', 'fluentform'), 'icon_class' => 'dashicons dashicons-arrow-right-alt', 'template' => 'customButton', ], ]; $defaultElements['advanced']['rich_text_input'] = [ 'index' => 19, 'element' => 'rich_text_input', 'attributes' => [], 'settings' => [], 'options' => [], 'editor_options' => [ 'title' => __('Rich Text Input', 'fluentform'), 'icon_class' => 'ff-edit-textarea', 'template' => 'inputTextarea', ], ]; $defaultElements['advanced']['chained_select'] = [ 'index' => 15, 'element' => 'chained_select', 'attributes' => [], 'settings' => [], 'options' => [], 'editor_options' => [ 'title' => __('Chained Select', 'fluentform'), 'icon_class' => 'ff-edit-link', 'template' => 'chainedSelect', ], ]; $defaultElements['advanced']['repeater_field'] = [ 'index' => 17, 'element' => 'repeater_field', 'attributes' => [], 'settings' => [], 'options' => [], 'editor_options' => [ 'title' => __('Repeat Field', 'fluentform'), 'icon_class' => 'ff-edit-repeat', 'template' => 'fieldsRepeatSettings', ], ]; $defaultElements['advanced']['rangeslider'] = [ 'index' => 13, 'element' => 'rangeslider', 'attributes' => [], 'settings' => [], 'editor_options' => [ 'title' => __('Range Slider', 'fluentform'), 'icon_class' => 'dashicons dashicons-leftright', 'template' => 'inputSlider', ], ]; $defaultElements['advanced']['color-picker'] = [ 'index' => 16, 'element' => 'color-picker', 'attributes' => [], 'settings' => [], 'editor_options' => [ 'title' => __('Color Picker', 'fluentform'), 'icon_class' => 'ff-edit-tint', 'template' => 'inputText', ], ]; $defaultElements['payments'] = [ 'multi_payment_component' => [ 'index' => 6, 'element' => 'multi_payment_component', 'attributes' => [], 'settings' => [], 'editor_options' => [ 'title' => __('Payment Item', 'fluentform'), 'icon_class' => 'ff-edit-shopping-cart', 'element' => 'input-radio', 'template' => 'inputMultiPayment', ], ], 'subscription_payment_component' => [ 'index' => 6, 'element' => 'subscription_payment_component', 'attributes' => [], 'settings' => [], 'editor_options' => [ 'title' => __('Subscription', 'fluentform'), 'icon_class' => 'ff-edit-shopping-cart', 'element' => 'input-radio', 'template' => 'inputSubscriptionPayment', ], ], 'custom_payment_component' => [ 'index' => 6, 'element' => 'custom_payment_component', 'attributes' => [], 'settings' => [], 'editor_options' => [ 'title' => __('Custom Payment Amount', 'fluentform'), 'icon_class' => 'ff-edit-keyboard-o', 'template' => 'inputText', ], ], 'item_quantity_component' => [ 'index' => 6, 'element' => 'item_quantity_component', 'attributes' => [], 'settings' => [], 'editor_options' => [ 'title' => __('Item Quantity', 'fluentform'), 'icon_class' => 'ff-edit-keyboard-o', 'template' => 'inputText', ], ], 'payment_method' => [ 'index' => 6, 'element' => 'payment_method', 'attributes' => [], 'settings' => [], 'editor_options' => [ 'title' => __('Payment Method', 'fluentform'), 'icon_class' => 'ff-edit-credit-card', 'template' => 'inputPaymentMethods', ], ], 'payment_summary_component' => [ 'index' => 6, 'element' => 'payment_summary_component', 'attributes' => [], 'settings' => [], 'editor_options' => [ 'title' => __('Payment Summary', 'fluentform'), 'icon_class' => 'ff-edit-html', 'template' => 'customHTML', ], ], 'payment_coupon' => [ 'index' => 6, 'element' => 'payment_coupon', 'attributes' => [], 'settings' => [], 'editor_options' => [ 'title' => __('Coupon', 'fluentform'), 'icon_class' => 'el-icon-postcard', 'template' => 'inputText', ], ], ]; } return $defaultElements; app/Services/FormBuilder/BaseFieldManager.php000064400000006627147600120010015145 0ustar00key = $key; $this->position = $position; $this->title = $title; $this->tags = $tags; $this->register(); } public function register() { add_filter('fluentform/editor_components', [$this, 'pushComponent']); add_filter('fluentform/editor_element_settings_placement', [$this, 'pushEditorElementPositions']); add_filter('fluentform/editor_element_search_tags', [$this, 'pushTags'], 10, 2); add_action('fluentform/render_item_' . $this->key, [$this, 'render'], 10, 2); /* * This is internal use. * Push field type to the fluentform field types to be available in FormFieldParser. */ add_filter('fluentform/form_input_types', [$this, 'pushFormInputType']); add_filter('fluentform/editor_element_customization_settings', function ($settings) { if ($customSettings = $this->getEditorCustomizationSettings()) { $settings = array_merge($settings, $customSettings); } return $settings; }); add_filter('fluentform/supported_conditional_fields', [$this, 'pushConditionalSupport']); } public function pushConditionalSupport($conditonalItems) { $conditonalItems[] = $this->key; return $conditonalItems; } public function pushFormInputType($types) { $types[] = $this->key; return $types; } public function pushComponent($components) { $component = $this->getComponent(); if ($component) { $components[$this->position][] = $component; } return $components; } public function pushEditorElementPositions($placement_settings) { $placement_settings[$this->key] = [ 'general' => $this->getGeneralEditorElements(), 'advanced' => $this->getAdvancedEditorElements(), 'generalExtras' => $this->generalEditorElement(), 'advancedExtras' => $this->advancedEditorElement(), ]; return $placement_settings; } public function generalEditorElement() { return []; } public function advancedEditorElement() { return []; } public function getGeneralEditorElements() { return [ 'label', 'admin_field_label', 'placeholder', 'label_placement', 'validation_rules', ]; } public function getAdvancedEditorElements() { return [ 'name', 'help_message', 'container_class', 'class', 'conditional_logics', ]; } public function getEditorCustomizationSettings() { return []; } public function pushTags($tags, $form) { if ($this->tags) { $tags[$this->key] = $this->tags; } return $tags; } abstract public function getComponent(); abstract public function render($element, $form); } app/Services/FormBuilder/NotificationParser.php000064400000002302147600120010015621 0ustar00 'parseIp', 'date.m/d/Y' => 'parseDate', 'date.d/m/Y' => 'parseDate', 'embed_post.ID' => 'parsePostProperties', 'embed_post.post_title' => 'parsePostProperties', 'embed_post.permalink' => 'parsePostProperties', 'http_referer' => 'parseWPProperties', 'wp.admin_email' => 'parseWPProperties', 'wp.site_url' => 'parseWPProperties', 'wp.site_title' => 'parseWPProperties', 'user.ID' => 'parseUserProperties', 'user.display_name' => 'parseUserProperties', 'user.first_name' => 'parseUserProperties', 'user.last_name' => 'parseUserProperties', 'user.user_email' => 'parseUserProperties', 'user.user_login' => 'parseUserProperties', 'browser.name' => 'parseBrowserProperties', 'browser.platform' => 'parseBrowserProperties', 'get.param_name' => 'parseRequestParam', 'random_string.param_name' => 'parseRandomString', ]; /** * Filter dynamic shortcodes in input value * * @param string $value * * @return string */ public static function filter($value, $form) { if (0 === strpos($value, '{ ')) { // it's the css return $value; } if (is_null(static::$dynamicShortcodes)) { static::$dynamicShortcodes = fluentFormEditorShortCodes(); } $filteredValue = ''; foreach (static::parseValue($value) as $handler) { if (isset(static::$handlers[$handler])) { return call_user_func_array( [__CLASS__, static::$handlers[$handler]], ['{' . $handler . '}', $form] ); } if (false !== strpos($handler, 'get.')) { return static::parseRequestParam($handler); } if (false !== strpos($handler, 'random_string.')) { return static::parseRandomString($handler); } if (false !== strpos($handler, 'user.')) { $value = self::parseUserProperties($handler); if (is_array($value) || is_object($value)) { return ''; } return esc_html($value); } if (false !== strpos($handler, 'date.')) { return esc_html(self::parseDate($handler)); } if (false !== strpos($handler, 'embed_post.meta.')) { $key = substr(str_replace(['{', '}'], '', $value), 16); global $post; if ($post) { $value = get_post_meta($post->ID, $key, true); if (! is_array($value) && ! is_object($value)) { return esc_html($value); } } return ''; } if (false !== strpos($handler, 'embed_post.')) { return self::parsePostProperties($handler, $form); } if (false !== strpos($handler, 'cookie.')) { $scookieProperty = substr($handler, strlen('cookie.')); return wpFluentForm('request')->cookie($scookieProperty); } if (false !== strpos($handler, 'dynamic.')) { $dynamicKey = substr($handler, strlen('dynamic.')); // maybe has fallback value $dynamicKey = explode('|', $dynamicKey); $fallBack = ''; $ref = ''; if (count($dynamicKey) > 1) { $fallBack = $dynamicKey[1]; } $ref = $dynamicKey[0]; if ('payment_summary' == $ref) { return fluentform_sanitize_html('
' . $fallBack . '
'); } return fluentform_sanitize_html('' . $fallBack . ''); } // if it's multi line then just return if (false !== strpos($handler, PHP_EOL)) { // most probably it's a css return '{' . $handler . '}'; } $handlerArray = explode('.', $handler); if (count($handlerArray) > 1) { // it's a grouped handler $group = array_shift($handlerArray); $parsedValue = apply_filters('fluentform_editor_shortcode_callback_group_' . $group, '{' . $handler . '}', $form, $handlerArray); return apply_filters('fluentform/editor_shortcode_callback_group_' . $group, $parsedValue, $form, $handlerArray); } $parsedValue = apply_filters('fluentform_editor_shortcode_callback_' . $handler, '{' . $handler . '}', $form); return apply_filters('fluentform/editor_shortcode_callback_' . $handler, $parsedValue, $form); } return $filteredValue; } /** * Parse request query param. * * @param string $value * @param \stdClass $form * * @return string */ public static function parseRequestParam($value) { $exploded = explode('.', $value); $param = array_pop($exploded); $value = wpFluentForm('request')->get($param); if (! $value) { return ''; } if (is_array($value)) { return esc_attr(implode(', ', $value)); } return esc_attr($value); } /** * Parse the curly braced shortcode into array * * @param string $value * * @return mixed */ public static function parseValue($value) { if (! is_array($value)) { return preg_split( '/{(.*?)}/', $value, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY ); } return $value; } /** * Declare all parsers and must be [private] static methods */ /** * Parse loggedin user properties * * @param string $value * * @return string */ private static function parseUserProperties($value, $form = null) { if ($user = wp_get_current_user()) { $prop = substr(str_replace(['{', '}'], '', $value), 5); if (false !== strpos($prop, 'meta.')) { $metaKey = substr($prop, strlen('meta.')); $userId = $user->ID; $data = get_user_meta($userId, $metaKey, true); $data = maybe_unserialize($data); if (!is_array($data)) { return esc_html($data); } return esc_html(implode(',', $data)); } return esc_html($user->{$prop}); } return ''; } /** * Parse embedded post properties * * @param string $value * * @return string */ private static function parsePostProperties($value, $form = null) { global $post; if (! $post) { return ''; } $key = $prop = substr(str_replace(['{', '}'], '', $value), 11); if (false !== strpos($key, 'author.')) { $authorProperty = substr($key, strlen('author.')); $authorId = $post->post_author; if ($authorId) { $data = get_the_author_meta($authorProperty, $authorId); if (! is_array($data)) { return esc_html($data); } } return ''; } elseif (false !== strpos($key, 'meta.')) { $metaKey = substr($key, strlen('meta.')); $postId = $post->ID; $data = get_post_meta($postId, $metaKey, true); if (! is_array($data)) { return esc_html($data); } return ''; } elseif (false !== strpos($key, 'acf.')) { $metaKey = substr($key, strlen('acf.')); $postId = $post->ID; if (function_exists('get_field')) { $data = get_field($metaKey, $postId, true); if (! is_array($data)) { return esc_html($data); } return ''; } } if ('permalink' == $prop) { return site_url(esc_attr(urldecode(wpFluentForm('request')->server('REQUEST_URI')))); } if (property_exists($post, $prop)) { return esc_html($post->{$prop}); } return ''; } /** * Parse WP Properties * * @param string $value * * @return string */ private static function parseWPProperties($value, $form = null) { if ('{wp.admin_email}' == $value) { return esc_html(get_option('admin_email')); } if ('{wp.site_url}' == $value) { return esc_url(site_url()); } if ('{wp.site_title}' == $value) { return esc_html(get_option('blogname')); } if ('{http_referer}' == $value) { return esc_url(wp_get_referer()); } return ''; } /** * Parse browser/user-agent properties * * @param string $value * * @return string */ private static function parseBrowserProperties($value, $form = null) { $browser = new Browser(); if ('{browser.name}' == $value) { return esc_html($browser->getBrowser()); } elseif ('{browser.platform}' == $value) { return esc_html($browser->getPlatform()); } return ''; } /** * Parse ip shortcode * * @param string $value * * @return string */ private static function parseIp($value, $form = null) { $ip = wpFluentForm('request')->getIp(); return $ip ? esc_html($ip) : $value; } /** * Parse date shortcode * * @param string $value * * @return string */ private static function parseDate($value, $form = null) { $format = substr(str_replace(['}', '{'], '', $value), 5); $date = date($format, strtotime(current_time('mysql'))); return $date ? esc_html($date) : ''; } /** * Parse request query param. * * @param string $value * @param \stdClass $form * * @return string */ public static function parseQueryParam($value) { $exploded = explode('.', $value); $param = array_pop($exploded); $value = wpFluentForm('request')->get($param); if (! $value) { return ''; } if (is_array($value)) { return sanitize_textarea_field(implode(', ', $value)); } return sanitize_textarea_field($value); } /** * Generate random a string with prefix * * @param $value * * @return string */ public static function parseRandomString($value) { $exploded = explode('.', $value); $prefix = array_pop($exploded); $value = $prefix . uniqid(); return esc_html(apply_filters('fluentform/shortcode_parser_callback_random_string', $value, $prefix, new static())); } } app/Services/FormBuilder/ElementSearchTags.php000064400000004730147600120010015363 0ustar00 [ 'text', 'input', 'simple text', 'mask input', 'subject', 'single line text', 'line', ], 'input_email' => [ 'input', 'email', ], 'input_name' => [ 'input', 'name', 'full name', 'first name', 'last name', 'middle name', ], 'textarea' => [ 'text', 'textarea', 'description', 'message', 'body', 'details', ], 'address' => [ 'address', 'city', 'zip' ], 'select_country' => [ 'country', ], 'input_number' => [ 'input', 'number', 'numeric', ], 'select' => [ 'select', 'dropdown', 'multiselect', ], 'input_radio' => [ 'input', 'radio', 'check', ], 'input_checkbox' => [ 'input', 'checkbox', 'select', ], 'input_url' => [ 'input', 'url', 'website', ], 'input_password' => [ 'input', 'password', ], 'input_date' => [ 'date', 'time', 'calendar', ], 'input_file' => [ 'file', ], 'input_image' => [ 'image', 'file', ], 'input_hidden' => [ 'input', 'hidden', ], 'section_break' => [ 'section', 'break', 'textblock', 'info' ], 'recaptcha' => [ 'recaptcha', ], 'hcaptcha' => [ 'hcaptcha', ], 'turnstile' => [ 'turnstile', ], 'custom_html' => [ 'custom html', ], 'shortcode' => [ 'shortcode', ], 'terms_and_condition' => [ 'terms_and_condition', 'agreement', 'checkbox', ], 'action_hook' => [ 'action hook', ], 'form_step' => [ 'steps', ], 'container' => [ 'container', 'columns', 'two', 2, 'three', 3, ], 'ratings' => [ 'star', 'rate', 'feedback', 'ratings', ], 'tabular_grid' => [ 'tabular grid', 'checkable grid', ], 'gdpr_agreement' => [ 'gdpr agreement', ], ]; app/Services/FormBuilder/GroupSetterProxy.php000064400000001540147600120010015346 0ustar00group = $group; $this->collection = $collection; } /** * Dynamic call method * * @param string $method * @param array $params * * @return \FluentForm\App\Services\FormBuilder\Components */ public function __call($method, $params) { call_user_func_array([ $this->collection, $method, ], array_merge($params, [$this->group])); return $this->collection; } } app/Services/FormBuilder/Components.php000064400000005126147600120010014152 0ustar00items = $items; } /** * Add a component into list [$items] * * @param string $name * @param array $component * @param string $group ['general'|'advanced'] * * @return $this */ public function add($name, array $component, $group) { if (isset($this->items[$group])) { $this->items[$group][$name] = $component; } return $this; } /** * Remove a component from the list [$items] * * @param string $name * @param string $group ['general'|'advanced'] * * @return $this */ public function remove($name, $group) { if (isset($this->items[$group])) { unset($this->items[$group][$name]); } return $this; } /** * Modify an existing component * * @param string $name * @param Closure $callback [to modify the component within] * @param string $group * * @return $this */ public function update($name, Closure $callback, $group) { $element = $callback($this->items[$group][$name]); $this->items[$group][$name] = $element; return $this; } /** * Sort the components in list [$items] * * @param string $sortBy [key to sort by] * * @return $this */ public function sort($sortBy = 'index') { foreach ($this->items as $group => &$items) { usort($items, function ($a, $b) { if (@$a['index'] == @$b['index']) { return 0; } return @$a['index'] < @$b['index'] ? -1 : 1; }); } return $this; } /** * Return array [$items] * * @return array */ public function toArray() { return $this->items; } /** * Return array [$items] * * @return array */ #[\ReturnTypeWillChange] public function jsonSerialize() { return $this->toArray(); } /** * Getter to hook proxy call * * @return mixed */ public function __get($key) { if (in_array($key, ['general', 'advanced'])) { return new GroupSetterProxy($this, $key); } } } app/Services/FormBuilder/ValidationRuleSettings.php000064400000020456147600120010016473 0ustar00 __('Images (jpg, jpeg, gif, png, bmp)', 'fluentform'), 'value' => 'jpg|jpeg|gif|png|bmp', ], [ 'label' => __('Audio (mp3, wav, ogg, oga, wma, mka, m4a, ra, mid, midi)', 'fluentform'), 'value' => 'mp3|wav|ogg|oga|wma|mka|m4a|ra|mid|midi|mpga', ], [ 'label' => __('Video (avi, divx, flv, mov, ogv, mkv, mp4, m4v, divx, mpg, mpeg, mpe)', 'fluentform'), 'value' => 'avi|divx|flv|mov|ogv|mkv|mp4|m4v|divx|mpg|mpeg|mpe|video/quicktime|qt', ], [ 'label' => __('PDF (pdf)', 'fluentform'), 'value' => 'pdf', ], [ 'label' => __('Docs (doc, ppt, pps, xls, mdb, docx, xlsx, pptx, odt, odp, ods, odg, odc, odb, odf, rtf, txt)', 'fluentform'), 'value' => 'doc|ppt|pps|xls|mdb|docx|xlsx|pptx|odt|odp|ods|odg|odc|odb|odf|rtf|txt', ], [ 'label' => __('Zip Archives (zip, gz, gzip, rar, 7z)', 'fluentform'), 'value' => 'zip|gz|gzip|rar|7z', ], [ 'label' => __('Executable Files (exe)', 'fluentform'), 'value' => 'exe', ], [ 'label' => __('CSV (csv)', 'fluentform'), 'value' => 'csv', ], ]; $fileTypeOptions = apply_filters_deprecated( 'fluentform_file_type_options', [ $fileTypeOptions ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/file_type_options', 'Use fluentform/file_type_options instead of fluentform_file_type_options.' ); $fileTypeOptions = apply_filters('fluentform/file_type_options', $fileTypeOptions); $validation_rule_settings = [ 'required' => [ 'template' => 'inputRadio', 'label' => __('Required', 'fluentform'), 'help_text' => __('Select whether this field is a required field for the form or not.', 'fluentform'), 'options' => [ [ 'value' => true, 'label' => __('Yes', 'fluentform'), ], [ 'value' => false, 'label' => __('No', 'fluentform'), ], ], ], 'valid_phone_number' => [ 'template' => 'inputRadio', 'label' => __('Validate Phone Number', 'fluentform'), 'help_text' => __('Select whether the phone number should be validated or not.', 'fluentform'), 'options' => [ [ 'value' => true, 'label' => __('Yes', 'fluentform'), ], [ 'value' => false, 'label' => __('No', 'fluentform'), ], ], ], 'email' => [ 'template' => 'inputRadio', 'label' => __('Validate Email', 'fluentform'), 'help_text' => __('Select whether to validate this field as email or not', 'fluentform'), 'options' => [ [ 'value' => true, 'label' => __('Yes', 'fluentform'), ], [ 'value' => false, 'label' => __('No', 'fluentform'), ], ], ], 'url' => [ 'template' => 'inputRadio', 'label' => __('Validate URL', 'fluentform'), 'help_text' => __('Select whether to validate this field as URL or not', 'fluentform'), 'options' => [ [ 'value' => true, 'label' => __('Yes', 'fluentform'), ], [ 'value' => false, 'label' => __('No', 'fluentform'), ], ], ], 'min' => [ 'template' => 'inputText', 'type' => 'number', 'label' => __('Min Value', 'fluentform'), 'help_text' => __('Minimum value for the input field.', 'fluentform'), ], 'digits' => [ 'template' => 'inputText', 'type' => 'number', 'label' => __('Digits', 'fluentform'), 'help_text' => __('Number of digits for the input field.', 'fluentform'), ], 'max' => [ 'template' => 'inputText', 'type' => 'number', 'label' => __('Max Value', 'fluentform'), 'help_text' => __('Maximum value for the input field.', 'fluentform'), ], 'max_file_size' => [ 'template' => 'maxFileSize', 'label' => __('Max File Size', 'fluentform'), 'help_text' => __('The file size limit uploaded by the user.', 'fluentform'), ], 'max_file_count' => [ 'template' => 'inputText', 'type' => 'number', 'label' => __('Max Files Count', 'fluentform'), 'help_text' => __('Maximum user file upload number.', 'fluentform'), ], 'allowed_file_types' => [ 'template' => 'inputCheckbox', 'label' => __('Allowed Files', 'fluentform'), 'help_text' => __('Allowed Files', 'fluentform'), 'fileTypes' => [ [ 'title' => __('Images', 'fluentform'), 'types' => ['jpg', 'jpeg', 'gif', 'png', 'bmp'], ], [ 'title' => __('Audio', 'fluentform'), 'types' => ['mp3', 'wav', 'ogg', 'oga', 'wma', 'mka', 'm4a', 'ra', 'mid', 'midi'], ], [ 'title' => __('Video', 'fluentform'), 'types' => [ 'avi', 'divx', 'flv', 'mov', 'ogv', 'mkv', 'mp4', 'm4v', 'divx', 'mpg', 'mpeg', 'mpe', ], ], [ 'title' => __('PDF', 'fluentform'), 'types' => ['pdf'], ], [ 'title' => __('Docs', 'fluentform'), 'types' => [ 'doc', 'ppt', 'pps', 'xls', 'mdb', 'docx', 'xlsx', 'pptx', 'odt', 'odp', 'ods', 'odg', 'odc', 'odb', 'odf', 'rtf', 'txt', ], ], [ 'title' => __('Zip Archives', 'fluentform'), 'types' => ['zip', 'gz', 'gzip', 'rar', '7z', ], ], [ 'title' => __('Executable Files', 'fluentform'), 'types' => ['exe'], ], [ 'title' => __('CSV', 'fluentform'), 'types' => ['csv'], ], ], 'options' => $fileTypeOptions, ], 'allowed_image_types' => [ 'template' => 'inputCheckbox', 'label' => __('Allowed Images', 'fluentform'), 'help_text' => __('Allowed Images', 'fluentform'), 'fileTypes' => [ [ 'title' => __('JPG', 'fluentform'), 'types' => ['jpg|jpeg', ], ], [ 'title' => __('PNG', 'fluentform'), 'types' => ['png'], ], [ 'title' => __('GIF', 'fluentform'), 'types' => ['gif'], ], ], 'options' => [ [ 'label' => __('JPG', 'fluentform'), 'value' => 'jpg|jpeg', ], [ 'label' => __('PNG', 'fluentform'), 'value' => 'png', ], [ 'label' => __('GIF', 'fluentform'), 'value' => 'gif', ], ], ], ]; $validation_rule_settings = apply_filters_deprecated( 'fluent_editor_validation_rule_settings', [ $validation_rule_settings ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/editor_validation_rule_settings', 'Use fluentform/editor_validation_rule_settings instead of fluent_editor_validation_rule_settings.' ); return apply_filters('fluentform/editor_validation_rule_settings', $validation_rule_settings); app/Services/FormBuilder/ElementSettingsPlacement.php000064400000027563147600120010017001 0ustar00 [ 'general' => [ 'admin_field_label', 'name_fields', 'label_placement', ], 'advanced' => [ 'container_class', 'name', 'conditional_logics', ], ], 'input_email' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'placeholder', 'validation_rules', ], 'advanced' => [ 'value', 'container_class', 'class', 'help_message', 'is_unique', 'unique_validation_message', 'prefix_label', 'suffix_label', 'name', 'conditional_logics', ], ], 'input_text' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'placeholder', 'temp_mask', 'data-mask', 'data-mask-reverse', 'data-clear-if-not-match', 'validation_rules', ], 'advanced' => [ 'value', 'container_class', 'class', 'help_message', 'prefix_label', 'suffix_label', 'name', 'maxlength', 'is_unique', 'unique_validation_message', 'conditional_logics', ], 'generalExtras' => [], 'advancedExtras' => [], ], 'textarea' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'placeholder', 'rows', 'cols', 'validation_rules', ], 'advanced' => [ 'value', 'container_class', 'class', 'help_message', 'name', 'maxlength', 'conditional_logics', ], ], 'address' => [ 'general' => [ 'label', 'admin_field_label', 'address_fields', ], 'advanced' => [ 'class', 'name', 'conditional_logics', ], ], 'select_country' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'enable_select_2', 'placeholder', 'validation_rules', ], 'advanced' => [ 'container_class', 'class', 'country_list', 'help_message', 'name', 'conditional_logics', ], ], 'input_number' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'placeholder', 'validation_rules', 'numeric_formatter', ], 'advanced' => [ 'value', 'container_class', 'class', 'help_message', 'number_step', 'prefix_label', 'suffix_label', 'name', 'conditional_logics', 'calculation_settings', ], ], 'select' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'placeholder', 'advanced_options', 'randomize_options', 'enable_select_2', 'max_selection', 'validation_rules', ], 'advanced' => [ 'dynamic_default_value', 'container_class', 'class', 'help_message', 'name', 'conditional_logics', ], ], 'input_radio' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'placeholder', 'advanced_options', 'randomize_options', 'validation_rules', ], 'advanced' => [ 'dynamic_default_value', 'container_class', 'help_message', 'name', 'layout_class', 'conditional_logics', ], ], 'input_checkbox' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'placeholder', 'advanced_options', 'randomize_options', 'validation_rules', ], 'advanced' => [ 'dynamic_default_value', 'container_class', 'help_message', 'name', 'layout_class', 'conditional_logics', ], ], 'input_url' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'placeholder', 'validation_rules', ], 'advanced' => [ 'value', 'container_class', 'class', 'help_message', 'name', 'conditional_logics', ], ], 'input_password' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'placeholder', 'validation_rules', ], 'advanced' => [ 'value', 'container_class', 'class', 'help_message', 'name', 'conditional_logics', ], ], 'input_date' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'placeholder', 'date_format', 'validation_rules', ], 'advanced' => [ 'value', 'container_class', 'class', 'help_message', 'name', 'date_config', 'conditional_logics', ], ], 'input_file' => [ 'general' => [ 'label', 'btn_text', 'upload_bttn_ui', 'label_placement', 'admin_field_label', 'validation_rules', ], 'advanced' => [ 'container_class', 'class', 'help_message', 'name', 'conditional_logics', 'file_location_type', 'upload_file_location', ], ], 'input_image' => [ 'general' => [ 'label', 'btn_text', 'upload_bttn_ui', 'label_placement', 'admin_field_label', 'validation_rules', 'file_location_type', 'upload_file_location', ], 'advanced' => [ 'container_class', 'class', 'help_message', 'name', 'conditional_logics', ], ], 'input_repeat' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'multi_column', 'repeat_fields', ], 'advanced' => [ 'container_class', 'name', 'conditional_logics', 'max_repeat_field', ], ], 'input_hidden' => [ 'general' => [ 'admin_field_label', 'value', 'name', ], ], 'section_break' => [ 'general' => [ 'label', 'description', 'align', ], 'advanced' => [ 'class', 'conditional_logics', ], ], 'recaptcha' => [ 'general' => [ 'label', 'label_placement', 'name', 'validation_rules', ], ], 'hcaptcha' => [ 'general' => [ 'label', 'label_placement', 'name', 'validation_rules', ], ], 'turnstile' => [ 'general' => [ 'label', 'label_placement', 'name', 'validation_rules' ], ], 'custom_html' => [ 'general' => [ 'html_codes', 'conditional_logics', 'container_class', ], ], 'shortcode' => [ 'general' => [ 'shortcode', ], 'generalExtras' => [ 'message' => [ 'template' => 'infoBlock', 'text' => 'Hello', ], ], 'advanced' => [ 'class', 'conditional_logics', ], ], 'terms_and_condition' => [ 'general' => [ 'admin_field_label', 'validation_rules', 'tnc_html', 'has_checkbox', ], 'advanced' => [ 'container_class', 'class', 'name', 'conditional_logics', ], ], 'action_hook' => [ 'general' => [ 'hook_name', ], 'advanced' => [ 'class', 'conditional_logics', ], ], 'form_step' => [ 'general' => [ 'prev_btn', 'next_btn', 'class', ], ], 'button' => [ 'general' => [ 'btn_text', 'button_ui', 'button_style', 'button_size', 'align', ], 'advanced' => [ 'container_class', 'class', 'help_message', 'conditional_logics', ], 'generalExtras' => [ 'btn_text' => [ 'template' => 'inputText', 'label' => __('Button Text', 'fluentform'), 'help_text' => __('Form submission button text.', 'fluentform'), ], ], ], 'step_start' => [ 'general' => [ 'class', 'progress_indicator', 'step_animation', 'step_titles', 'disable_auto_focus', 'enable_auto_slider', 'enable_step_data_persistency', 'enable_step_page_resume', ], ], 'step_end' => [ 'general' => [ 'class', 'prev_btn', ], ], 'ratings' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'options', 'show_text', 'validation_rules', ], 'advanced' => [ 'help_message', 'name', 'conditional_logics', ], ], 'tabular_grid' => [ 'general' => [ 'label', 'label_placement', 'admin_field_label', 'tabular_field_type', 'grid_columns', 'grid_rows', 'validation_rules', ], 'advanced' => [ 'container_class', 'help_message', 'name', 'conditional_logics', ], ], 'gdpr_agreement' => [ 'general' => [ 'admin_field_label', 'tnc_html', 'required_field_message', 'container_class', ], 'advanced' => [ 'class', 'name', 'conditional_logics', ], 'generalExtras' => [ 'tnc_html' => [ 'template' => 'inputTextarea', 'label' => __('Description', 'fluentform'), 'help_text' => __('Write HTML content for GDPR agreement checkbox', 'fluentform'), 'rows' => 5, 'cols' => 3, ], ], ], 'container' => [ 'general' => [ 'container_class', 'conditional_logics', 'container_width', ], 'advanced' => [], ], ]; app/Services/FormBuilder/ElementCustomization.php000064400000067151147600120010016215 0ustar00getAvailableDateFormats(); $dateConfigSettings = [ 'template' => 'inputTextarea', 'label' => __('Advanced Date Configuration', 'fluentform'), 'placeholder' => __('Advanced Date Configuration', 'fluentform'), 'rows' => (defined('FLUENTFORMPRO')) ? 10 : 2, 'start_text' => (defined('FLUENTFORMPRO')) ? 10 : 2, 'disabled' => ! defined('FLUENTFORMPRO'), 'css_class' => 'ff_code_editor', 'inline_help_text' => 'Only valid JS object will work. Please check the documentation for available config options', 'help_text' => __('You can write your own date configuration as JS object. Please write valid configuration as per flatpickr config.', 'fluentform'), ]; if (! defined('FLUENTFORMPRO')) { $dateConfigSettings['inline_help_text'] = 'Available on Fluent Forms Pro'; } $element_customization_settings = [ 'name' => [ 'template' => 'nameAttr', 'label' => __('Name Attribute', 'fluentform'), 'help_text' => __('This is the field name attributes which is used to submit form data, name attribute must be unique.', 'fluentform'), ], 'label' => [ 'template' => 'inputText', 'label' => __('Element Label', 'fluentform'), 'help_text' => __('This is the field title the user will see when filling out the form.', 'fluentform'), ], 'label_placement' => [ 'template' => 'radioButton', 'label' => __('Label Placement', 'fluentform'), 'help_text' => __('Determine the position of label title where the user will see this. By choosing "Default", global label placement setting will be applied.', 'fluentform'), 'options' => [ [ 'value' => '', 'label' => __('Default', 'fluentform'), ], [ 'value' => 'top', 'label' => __('Top', 'fluentform'), ], [ 'value' => 'right', 'label' => __('Right', 'fluentform'), ], [ 'value' => 'bottom', 'label' => __('Bottom', 'fluentform'), ], [ 'value' => 'left', 'label' => __('Left', 'fluentform'), ], [ 'value' => 'hide_label', 'label' => __('Hide Label', 'fluentform'), ], ], ], 'button_style' => [ 'template' => 'selectBtnStyle', 'label' => __('Button Style', 'fluentform'), 'help_text' => __('Select a button style from the dropdown', 'fluentform'), ], 'button_size' => [ 'template' => 'radioButton', 'label' => __('Button Size', 'fluentform'), 'help_text' => __('Define a size of the button', 'fluentform'), 'options' => [ [ 'value' => 'sm', 'label' => __('Small', 'fluentform'), ], [ 'value' => 'md', 'label' => __('Medium', 'fluentform'), ], [ 'value' => 'lg', 'label' => __('Large', 'fluentform'), ], ], ], 'placeholder' => [ 'template' => 'inputText', 'label' => __('Placeholder', 'fluentform'), 'help_text' => __('This is the field placeholder, the user will see this if the input field is empty.', 'fluentform'), ], 'date_format' => [ 'template' => 'select', 'label' => __('Date Format', 'fluentform'), 'filterable' => true, 'creatable' => true, 'placeholder' => __('Select Date Format', 'fluentform'), 'help_text' => __('Select any date format from the dropdown. The user will be able to choose a date in this given format.', 'fluentform'), 'options' => $dateFormats, ], 'date_config' => $dateConfigSettings, 'rows' => [ 'template' => 'inputText', 'label' => __('Rows', 'fluentform'), 'help_text' => __('How many rows will textarea take in a form. It\'s an HTML attributes for browser support.', 'fluentform'), ], 'cols' => [ 'template' => 'inputText', 'label' => __('Columns', 'fluentform'), 'help_text' => __('How many cols will textarea take in a form. It\'s an HTML attributes for browser support.', 'fluentform'), ], 'options' => [ 'template' => 'selectOptions', 'label' => __('Options', 'fluentform'), 'help_text' => __('Create options for the field and checkmark them for default selection.', 'fluentform'), ], 'advanced_options' => [ 'template' => 'advancedOptions', 'label' => __('Options', 'fluentform'), 'help_text' => __('Create visual options for the field and checkmark them for default selection.', 'fluentform'), ], 'enable_select_2' => [ 'template' => 'inputYesNoCheckBox', 'label' => __('Enable Searchable Smart Options', 'fluentform'), 'help_text' => __('If you enable this then options will be searchable by select2 js library', 'fluentform'), ], 'pricing_options' => [ 'template' => 'pricingOptions', 'label' => __('Payment Items', 'fluentform'), 'help_text' => __('Set your product type and corresponding prices', 'fluentform'), ], 'subscription_options' => [ 'template' => 'subscriptionOptions', 'label' => __('Subscription Items', 'fluentform'), 'help_text' => __('Set your subscription plans', 'fluentform'), ], 'validation_rules' => [ 'template' => 'validationRulesForm', 'label' => __('Validation Rules', 'fluentform'), 'help_text' => '', ], 'required_field_message' => [ 'template' => 'inputRequiredFieldText', 'label' => __('Required Validation Message', 'fluentform'), 'help_text' => 'Message for failed validation for this field', ], 'tnc_html' => [ 'template' => 'inputHTML', 'label' => __('Terms & Conditions', 'fluentform'), 'help_text' => __('Write HTML content for terms & condition checkbox', 'fluentform'), 'rows' => 4, 'cols' => 2, ], 'hook_name' => [ 'template' => 'customHookName', 'label' => __('Hook Name', 'fluentform'), 'help_text' => __('WordPress Hook name to hook something in this place.', 'fluentform'), ], 'has_checkbox' => [ 'template' => 'inputCheckbox', 'options' => [ [ 'value' => true, 'label' => __('Show Checkbox', 'fluentform'), ], ], ], 'html_codes' => [ 'template' => 'inputHTML', 'rows' => 4, 'cols' => 2, 'label' => __('HTML Code', 'fluentform'), 'help_text' => __('Your valid HTML code will be shown to the user as normal content.', 'fluentform'), ], 'description' => [ 'template' => 'inputHTML', 'rows' => 4, 'cols' => 2, 'label' => __('Description', 'fluentform'), 'help_text' => __('Description will be shown to the user as normal text content.', 'fluentform'), ], 'btn_text' => [ 'template' => 'inputText', 'label' => __('Button Text', 'fluentform'), 'help_text' => __('This will be visible as button text for upload file.', 'fluentform'), ], 'button_ui' => [ 'template' => 'prevNextButton', 'label' => __('Button Text', 'fluentform'), 'help_text' => __('Set as a default button or image icon type button', 'fluentform'), ], 'align' => [ 'template' => 'radio', 'label' => __('Content Alignment', 'fluentform'), 'help_text' => __('How the content will be aligned.', 'fluentform'), 'options' => [ [ 'value' => 'left', 'label' => __('Left', 'fluentform'), ], [ 'value' => 'center', 'label' => __('Center', 'fluentform'), ], [ 'value' => 'right', 'label' => __('Right', 'fluentform'), ], ], ], 'shortcode' => [ 'template' => 'inputText', 'label' => __('Shortcode', 'fluentform'), 'help_text' => __('Your shortcode to render desired content in current place.', 'fluentform'), ], 'apply_styles' => [ 'template' => 'radioButton', 'label' => __('Apply Styles', 'fluentform'), 'help_text' => __('Apply styles provided here', 'fluentform'), 'options' => [ [ 'value' => true, 'label' => __('Yes', 'fluentform'), ], [ 'value' => false, 'label' => __('No', 'fluentform'), ], ], ], 'step_title' => [ 'template' => 'inputText', 'label' => __('Step Title', 'fluentform'), 'help_text' => __('Form step titles, user will see each title in each step.', 'fluentform'), ], 'disable_auto_focus' => [ 'template' => 'inputYesNoCheckBox', 'label' => __('Disable auto focus when changing each page', 'fluentform'), 'help_text' => __('If you enable this then on page transition automatic scrolling will be disabled', 'fluentform'), ], 'enable_auto_slider' => [ 'template' => 'inputYesNoCheckBox', 'label' => __('Enable auto page change for single radio field', 'fluentform'), 'help_text' => __('If you enable this then for last radio item field will trigger next page change', 'fluentform'), ], 'enable_step_data_persistency' => [ 'template' => 'inputYesNoCheckBox', 'label' => __('Enable Per step data save (Save and Continue)', 'fluentform'), 'help_text' => __('If you enable this then on each step change the data current step data will be persisted in a step form
Your users can resume the form where they left', 'fluentform'), ], 'enable_step_page_resume' => [ 'template' => 'inputYesNoCheckBox', 'label' => __('Resume Step from last form session', 'fluentform'), 'help_text' => __('If you enable this then users will see the form as step page where it has been left', 'fluentform'), 'dependency' => [ 'depends_on' => 'settings/enable_step_data_persistency', 'value' => 'yes', 'operator' => '==', ], ], 'progress_indicator' => [ 'template' => 'radio', 'label' => __('Progress Indicator', 'fluentform'), 'help_text' => __('Select any of them below, user will see progress of form steps according to your choice.', 'fluentform'), 'options' => [ [ 'value' => 'progress-bar', 'label' => __('Progress Bar', 'fluentform'), ], [ 'value' => 'steps', 'label' => __('Steps', 'fluentform'), ], [ 'value' => '', 'label' => __('None', 'fluentform'), ], ], ], 'step_animation' => [ 'template' => 'radioButton', 'label' => __('Animation type', 'fluentform'), 'help_text' => __('Select any of them below, steps will change according to your choice.', 'fluentform'), 'options' => [ [ 'value' => 'slide', 'label' => __('Slide Left/Right', 'fluentform'), ], [ 'value' => 'fade', 'label' => __('Fade In/Out', 'fluentform'), ], [ 'value' => 'slide_down', 'label' => __('Slide Down/Up', 'fluentform'), ], [ 'value' => 'none', 'label' => __('None', 'fluentform'), ], ], ], 'step_titles' => [ 'template' => 'customStepTitles', 'label' => __('Step Titles', 'fluentform'), 'help_text' => __('Form step titles, user will see each title in each step.', 'fluentform'), ], 'prev_btn' => [ 'template' => 'prevNextButton', 'label' => __('Previous Button', 'fluentform'), 'help_text' => __('Multi-step form\'s previous button', 'fluentform'), ], 'next_btn' => [ 'template' => 'prevNextButton', 'label' => __('Next Button', 'fluentform'), 'help_text' => __('Multi-step form\'s next button', 'fluentform'), ], 'address_fields' => [ 'template' => 'addressFields', 'label' => __('Address Fields', 'fluentform'), 'key' => 'country_list', ], 'name_fields' => [ 'template' => 'nameFields', 'label' => __('Name Fields', 'fluentform'), ], 'multi_column' => [ 'template' => 'inputCheckbox', 'options' => [ [ 'value' => true, 'label' => __('Enable Multiple Columns', 'fluentform'), ], ], ], 'repeat_fields' => [ 'template' => 'customRepeatFields', 'label' => __('Repeat Fields', 'fluentform'), 'help_text' => __('This is a form field which a user will be able to repeat.', 'fluentform'), ], 'admin_field_label' => [ 'template' => 'inputText', 'label' => __('Admin Field Label', 'fluentform'), 'help_text' => __('Admin field label is field title which will be used for admin field title.', 'fluentform'), ], 'maxlength' => [ 'template' => 'inputNumber', 'label' => __('Max text length', 'fluentform'), 'help_text' => __('The maximum number of characters the input should accept', 'fluentform'), ], 'value' => [ 'template' => 'inputValue', 'label' => __('Default Value', 'fluentform'), 'help_text' => __('If you would like to pre-populate the value of a field, enter it here.', 'fluentform') . ' View All the smartcodes here', ], 'dynamic_default_value' => [ 'template' => 'inputValue', 'type' => 'text', 'label' => __('Dynamic Default Value', 'fluentform'), 'help_text' => __('If you would like to pre-populate the value of a field, enter it here.', 'fluentform'), ], 'max_selection' => [ 'template' => 'inputNumber', 'type' => 'text', 'label' => __('Max Selection', 'fluentform'), 'help_text' => __('Define Max selections items that a user can select .', 'fluentform'), 'dependency' => [ 'depends_on' => 'attributes/multiple', 'value' => true, 'operator' => '==', ], ], 'container_class' => [ 'template' => 'inputText', 'label' => __('Container Class', 'fluentform'), 'help_text' => __('Class for the field wrapper. This can be used to style current element.', 'fluentform'), ], 'class' => [ 'template' => 'inputText', 'label' => __('Element Class', 'fluentform'), 'help_text' => __('Class for the field. This can be used to style current element.', 'fluentform'), ], 'country_list' => [ 'template' => 'customCountryList', 'label' => __('Country List', 'fluentform'), 'key' => 'country_list', ], 'product_field_types' => [ 'template' => 'productFieldTypes', 'label' => __('Options', 'fluentform'), ], 'help_message' => [ 'template' => 'inputTextarea', 'label' => __('Help Message', 'fluentform'), 'help_text' => __('Help message will be shown as tooltip next to sidebar or below the field.', 'fluentform'), ], 'conditional_logics' => [ 'template' => 'conditionalLogics', 'label' => __('Conditional Logic', 'fluentform'), 'help_text' => __('Create rules to dynamically display or hide this field based on values from another field.', 'fluentform'), ], 'background_color' => [ 'template' => 'inputColor', 'label' => __('Background Color', 'fluentform'), 'help_text' => __('The Background color of the element', 'fluentform'), ], 'color' => [ 'template' => 'inputColor', 'label' => __('Font Color', 'fluentform'), 'help_text' => __('Font color of the element', 'fluentform'), ], 'data-mask' => [ 'template' => 'customMask', 'label' => __('Custom Mask', 'fluentform'), 'help_text' => __('Write your own mask for this input', 'fluentform'), 'dependency' => [ 'depends_on' => 'settings/temp_mask', 'value' => 'custom', 'operator' => '==', ], ], 'data-mask-reverse' => [ 'template' => 'inputYesNoCheckBox', 'label' => __('Activating a reversible mask', 'fluentform'), 'help_text' => __('If you enable this then it the mask will work as reverse', 'fluentform'), 'dependency' => [ 'depends_on' => 'settings/temp_mask', 'value' => 'custom', 'operator' => '==', ], ], 'randomize_options' => [ 'template' => 'inputYesNoCheckBox', 'label' => __('Shuffle the available options', 'fluentform'), 'help_text' => __('If you enable this then the checkable options will be shuffled', 'fluentform'), ], 'data-clear-if-not-match' => [ 'template' => 'inputYesNoCheckBox', 'label' => __('Clear if not match', 'fluentform'), 'help_text' => __('Clear value if not match the mask', 'fluentform'), 'dependency' => [ 'depends_on' => 'settings/temp_mask', 'value' => 'custom', 'operator' => '==', ], ], 'temp_mask' => [ 'template' => 'select', 'label' => __('Mask Input', 'fluentform'), 'help_text' => __('Select a mask for the input field', 'fluentform'), 'options' => [ [ 'value' => '', 'label' => __('None', 'fluentform'), ], [ 'value' => '(000) 000-0000', 'label' => '(###) ###-####', ], [ 'value' => '(00) 0000-0000', 'label' => '(##) ####-####', ], [ 'value' => '00/00/0000', 'label' => __('23/03/2018', 'fluentform'), ], [ 'value' => '00:00:00', 'label' => __('23:59:59', 'fluentform'), ], [ 'value' => '00/00/0000 00:00:00', 'label' => __('23/03/2018 23:59:59', 'fluentform'), ], [ 'value' => 'custom', 'label' => __('Custom', 'fluentform'), ], ], ], 'grid_columns' => [ 'template' => 'gridRowCols', 'label' => __('Grid Columns', 'fluentform'), 'help_text' => __('Write your own mask for this input', 'fluentform'), ], 'grid_rows' => [ 'template' => 'gridRowCols', 'label' => __('Grid Rows', 'fluentform'), 'help_text' => __('Write your own mask for this input', 'fluentform'), ], 'tabular_field_type' => [ 'template' => 'radio', 'label' => __('Field Type', 'fluentform'), 'help_text' => __('Field Type', 'fluentform'), 'options' => [ [ 'value' => 'checkbox', 'label' => __('Checkbox', 'fluentform'), ], [ 'value' => 'radio', 'label' => __('Radio', 'fluentform'), ], ], ], 'max_repeat_field' => [ 'template' => 'inputNumber', 'label' => __('Max Repeat inputs', 'fluentform'), 'help_text' => __('Please provide max number of rows the user can fill up for this repeat field. Keep blank/0 for unlimited numbers', 'fluentform'), ], 'calculation_settings' => [ 'template' => (defined('FLUENTFORMPRO')) ? 'inputCalculationSettings' : 'infoBlock', 'text' => 'Calculation Field Settings
Calculate the value based on other numeric field is available on pro version of Fluent Forms. Please install Fluent Forms Pro to use this feature
Upgrade to Pro ', 'label' => 'Calculation Field Settings', 'status_label' => 'Enable Calculation', 'formula_label' => 'Calculation Expression', 'formula_tips' => 'You can use + - * / for calculating the the value. Use context icon to insert the input values', 'status_tips' => 'Enable this and provide formula expression if you want this field as calculated based on other numeric field value', ], 'min' => [ 'template' => 'inputNumber', 'label' => __('Min Value', 'fluentform'), 'help_text' => __('Please provide minimum value', 'fluentform'), ], 'max' => [ 'template' => 'inputNumber', 'label' => __('Max Value', 'fluentform'), 'help_text' => __('Please provide Maximum value', 'fluentform'), ], 'digits' => [ 'template' => 'inputNumber', 'label' => __('Digits Count', 'fluentform'), 'help_text' => __('Please provide digits count value', 'fluentform'), ], 'number_step' => [ 'template' => 'inputText', 'label' => __('Step', 'fluentform'), 'help_text' => __('Please provide step attribute for this field.', 'fluentform'), ], 'prefix_label' => [ 'template' => 'inputText', 'label' => __('Prefix Label', 'fluentform'), 'help_text' => __('Provide Input Prefix Label. It will show in the input field as prefix label', 'fluentform'), ], 'suffix_label' => [ 'template' => 'inputText', 'label' => __('Suffix Label', 'fluentform'), 'help_text' => __('Provide Input Suffix Label. It will show in the input field as suffix label', 'fluentform'), ], 'is_unique' => [ 'template' => 'inputYesNoCheckBox', 'label' => __('Validate as Unique', 'fluentform'), 'help_text' => __('If you make it unique then it will validate as unique from previous submissions of this form', 'fluentform'), ], 'show_text' => [ 'template' => 'select', 'label' => __('Show Text', 'fluentform'), 'help_text' => __('Show Text value on selection', 'fluentform'), 'options' => [ [ 'value' => 'yes', 'label' => __('Yes', 'fluentform'), ], [ 'value' => 'no', 'label' => __('No', 'fluentform'), ], ], ], 'numeric_formatter' => [ 'template' => 'select', 'label' => __('Number Format', 'fluentform'), 'help_text' => __('Select the format of numbers that are allowed in this field. You have the option to use a comma or a dot as the decimal separator.', 'fluentform'), 'options' => \FluentForm\App\Helpers\Helper::getNumericFormatters(), ], 'unique_validation_message' => [ 'template' => 'inputText', 'label' => __('Validation Message for Duplicate', 'fluentform'), 'help_text' => __('If validation failed then it will show this message', 'fluentform'), 'dependency' => [ 'depends_on' => 'settings/is_unique', 'value' => 'yes', 'operator' => '==', ], ], 'layout_class' => [ 'template' => 'select', 'label' => __('Layout', 'fluentform'), 'help_text' => __('Select the Layout for checkable items', 'fluentform'), 'options' => [ [ 'value' => '', 'label' => __('Default', 'fluentform'), ], [ 'value' => 'ff_list_inline', 'label' => 'Inline Layout', ], [ 'value' => 'ff_list_buttons', 'label' => 'Button Type Styles', ], [ 'value' => 'ff_list_2col', 'label' => '2-Column Layout', ], [ 'value' => 'ff_list_3col', 'label' => '3-Column Layout', ], [ 'value' => 'ff_list_4col', 'label' => '4-Column Layout', ], [ 'value' => 'ff_list_5col', 'label' => '5-Column Layout', ], ], ], 'upload_file_location' => [ 'template' => 'radio', 'label' => __('Save Uploads in', 'fluentform'), 'help_text' => __('Uploaded files can be stored in media library or your server or both.', 'fluentform'), 'options' => \FluentForm\App\Helpers\Helper::fileUploadLocations(), 'dependency' => [ 'depends_on' => 'settings/file_location_type', 'value' => 'custom', 'operator' => '==', ], ], 'file_location_type' => [ 'template' => 'radioButton', 'label' => __('File Location Type', 'fluentform'), 'help_text' => __('Set default or custom location for files', 'fluentform'), 'options' => [ [ 'value' => 'follow_global_settings', 'label' => __('As Per Global Settings', 'fluentform'), ], [ 'value' => 'custom', 'label' => __('Custom', 'fluentform'), ], ], ], 'upload_bttn_ui' => [ 'template' => 'radio', 'label' => __('Upload Button Interface', 'fluentform'), 'help_text' => __('Select how the upload button should work show a dropzone or a button', 'fluentform'), 'options' => [ [ 'value' => '', 'label' => __('Button', 'fluentform'), ], [ 'value' => 'dropzone', 'label' => __('Dropzone', 'fluentform'), ], ], ], 'container_width' => [ 'template' => 'containerWidth', 'label' => __('Column Width %', 'fluentform'), 'help_text' => __('Set the width of the columns. The minimum column width is 10%.', 'fluentform'), 'width_limitation_msg' => __('The minimum column width is 10%', 'fluentform'), ] ]; $element_customization_settings = apply_filters_deprecated( 'fluentform_editor_element_customization_settings', [ $element_customization_settings ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/editor_element_customization_settings', 'Use fluentform/editor_element_customization_settings instead of fluent_editor_element_customization_settings.' ); return apply_filters('fluentform/editor_element_customization_settings', $element_customization_settings); app/Services/FormBuilder/ShortCodeParser.php000064400000055167147600120010015106 0ustar00 null, 'original_inputs' => null, 'user' => null, 'post' => null, 'other' => null, 'submission' => null, ]; public static function parse($parsable, $entryId, $data = [], $form = null, $isUrl = false, $providerOrIsHTML = false) { try { static::setDependencies($entryId, $data, $form, $providerOrIsHTML); if (is_array($parsable)) { return static::parseShortCodeFromArray($parsable, $isUrl, $providerOrIsHTML); } return static::parseShortCodeFromString($parsable, $isUrl, $providerOrIsHTML); } catch (\Exception $e) { if (defined('WP_DEBUG') && WP_DEBUG) { error_log($e->getTraceAsString()); } return ''; } } protected static function setDependencies($entry, $data, $form, $provider) { static::setEntry($entry); static::setData($data); static::setForm($form); static::$provider = $provider; } protected static function setEntry($entry) { static::$entry = $entry; } protected static function setdata($data) { if (! is_null($data)) { static::$store['inputs'] = $data; static::$store['original_inputs'] = $data; } else { $data = json_decode(static::getEntry()->response, true); static::$store['inputs'] = $data; static::$store['original_inputs'] = $data; } } protected static function setForm($form) { if (! is_null($form)) { static::$form = $form; } else { static::$form = static::getEntry()->form_id; } } protected static function parseShortCodeFromArray($parsable, $isUrl = false, $provider = false) { foreach ($parsable as $key => $value) { if (is_array($value)) { $parsable[$key] = static::parseShortCodeFromArray($value, $isUrl, $provider); } else { $isHtml = false; if ($provider) { $isHtml = apply_filters_deprecated( 'ff_will_return_html', [ false, $provider, $key ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/will_return_html', 'Use fluentform/will_return_html instead of ff_will_return_html.' ); $isHtml = apply_filters('fluentform/will_return_html', $isHtml, $provider, $key); } $parsable[$key] = static::parseShortCodeFromString($value, $isUrl, $isHtml); } } return $parsable; } protected static function parseShortCodeFromString($parsable, $isUrl = false, $isHtml = false) { if ('0' === $parsable) { return $parsable; } if (! $parsable) { return ''; } return preg_replace_callback('/{+(.*?)}/', function ($matches) use ($isUrl, $isHtml) { $value = ''; if (false !== strpos($matches[1], 'inputs.')) { $formProperty = substr($matches[1], strlen('inputs.')); $value = static::getFormData($formProperty, $isHtml); }else if (false !== strpos($matches[1], 'labels.')) { $formLabelProperty = substr($matches[1], strlen('labels.')); $value = static::getFormLabelData($formLabelProperty); } elseif (false !== strpos($matches[1], 'user.')) { $userProperty = substr($matches[1], strlen('user.')); $value = static::getUserData($userProperty); } elseif (false !== strpos($matches[1], 'embed_post.')) { $postProperty = substr($matches[1], strlen('embed_post.')); $value = static::getPostData($postProperty); } elseif (false !== strpos($matches[1], 'wp.')) { $wpProperty = substr($matches[1], strlen('wp.')); $value = static::getWPData($wpProperty); } elseif (false !== strpos($matches[1], 'submission.')) { $submissionProperty = substr($matches[1], strlen('submission.')); $value = static::getSubmissionData($submissionProperty); } elseif (false !== strpos($matches[1], 'cookie.')) { $scookieProperty = substr($matches[1], strlen('cookie.')); $value = wpFluentForm('request')->cookie($scookieProperty); } elseif (false !== strpos($matches[1], 'payment.')) { $property = substr($matches[1], strlen('payment.')); $deprecatedValue = apply_filters_deprecated( 'fluentform_payment_smartcode', [ '', $property, self::getInstance() ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/payment_smartcode', 'Use fluentform/payment_smartcode instead of fluentform_payment_smartcode.' ); $value = apply_filters('fluentform/payment_smartcode', $deprecatedValue, $property, self::getInstance()); } else { $value = static::getOtherData($matches[1]); } if (is_array($value)) { $value = fluentImplodeRecursive(', ', $value); } if ($isUrl) { $value = rawurlencode($value); } return $value; }, $parsable); } protected static function getFormData($key, $isHtml = false) { if (strpos($key, '.label')) { $key = str_replace('.label', '', $key); $isHtml = true; } if (strpos($key, '.value')) { $key = str_replace('.value', '', $key); return ArrayHelper::get(static::$store['original_inputs'], $key); } if (strpos($key, '.') && ! isset(static::$store['inputs'][$key])) { return ArrayHelper::get( static::$store['original_inputs'], $key, '' ); } if (! isset(static::$store['inputs'][$key])) { static::$store['inputs'][$key] = ArrayHelper::get( static::$store['inputs'], $key, '' ); } if (is_null(static::$formFields)) { static::$formFields = FormFieldsParser::getShortCodeInputs( static::getForm(), ['admin_label', 'attributes', 'options', 'raw'] ); } $field = ArrayHelper::get(static::$formFields, $key, ''); if (! $field) { return ''; } if ($isHtml) { $originalInput = ArrayHelper::get(static::$store['original_inputs'], $key, ''); $originalInput = apply_filters_deprecated( 'fluentform_response_render_' . $field['element'], [ $originalInput, $field, static::getForm()->id, $isHtml ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/response_render_' . $field['element'], 'Use fluentform/response_render_' . $field['element'] . ' instead of fluentform_response_render_' . $field['element'] ); return apply_filters( 'fluentform/response_render_' . $field['element'], $originalInput, $field, static::getForm()->id, $isHtml ); } static::$store['inputs'][$key] = apply_filters_deprecated( 'fluentform_response_render_' . $field['element'], [ static::$store['inputs'][$key], $field, static::getForm()->id, $isHtml ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/response_render_' . $field['element'], 'Use fluentform/response_render_' . $field['element'] . ' instead of fluentform_response_render_' . $field['element'] ); return static::$store['inputs'][$key] = apply_filters( 'fluentform/response_render_' . $field['element'], static::$store['inputs'][$key], $field, static::getForm()->id, $isHtml ); } protected static function getFormLabelData($key) { if (is_null(static::$formFields)) { static::$formFields = FormFieldsParser::getShortCodeInputs( static::getForm(), ['admin_label', 'attributes', 'options', 'raw', 'label'] ); } // Resolve global validation messages {labels.current_field} shortcode. // Current field name attribute was setted as inputs data key 'current_field'. if ('current_field' === $key && $currentFieldName = ArrayHelper::get(static::$store['inputs'], $key)) { $currentFieldName = str_replace(['[', ']'], ['.', ''], $currentFieldName); $key = $currentFieldName; } $inputLabel = ArrayHelper::get(ArrayHelper::get(static::$formFields, $key, []), 'label', ''); $inputLabel = str_replace(['[', ']'], '', $inputLabel); $keys = explode(".", $key); if (count($keys) > 1) { $parentKey = array_shift($keys); $inputLabel = str_replace($parentKey, '', $inputLabel); } if(empty($inputLabel)){ $inputLabel = ArrayHelper::get(ArrayHelper::get(static::$formFields, $key, []), 'admin_label', ''); } return $inputLabel; } protected static function getUserData($key) { if (is_null(static::$store['user'])) { static::$store['user'] = wp_get_current_user(); } return static::$store['user']->{$key}; } protected static function getPostData($key) { if (is_null(static::$store['post'])) { $postId = static::$store['inputs']['__fluent_form_embded_post_id']; static::$store['post'] = get_post($postId); if (is_null(static::$store['post'])) { return ''; } static::$store['post']->permalink = get_the_permalink(static::$store['post']); } if (false !== strpos($key, 'author.')) { $authorProperty = substr($key, strlen('author.')); $authorId = static::$store['post']->post_author; if ($authorId) { $data = get_the_author_meta($authorProperty, $authorId); if (! is_array($data)) { return $data; } } return ''; } elseif (false !== strpos($key, 'meta.')) { $metaKey = substr($key, strlen('meta.')); $postId = static::$store['post']->ID; $data = get_post_meta($postId, $metaKey, true); if (! is_array($data)) { return $data; } return ''; } elseif (false !== strpos($key, 'acf.')) { $metaKey = substr($key, strlen('acf.')); $postId = static::$store['post']->ID; if (function_exists('get_field')) { $data = get_field($metaKey, $postId, true); if (! is_array($data)) { return $data; } return ''; } } return static::$store['post']->{$key}; } protected static function getWPData($key) { if ('admin_email' == $key) { return get_option('admin_email'); } if ('site_url' == $key) { return site_url(); } if ('site_title' == $key) { return get_option('blogname'); } return $key; } protected static function getSubmissionData($key) { $entry = static::getEntry(); if (empty($entry->id)) { return ''; } if (property_exists($entry, $key)) { if ('total_paid' == $key || 'payment_total' == $key) { return round($entry->{$key} / 100, 2); } if ('payment_method' == $key && 'test' == $key) { return __('Offline', 'fluentform'); } return $entry->{$key}; } if ('admin_view_url' == $key) { return admin_url('admin.php?page=fluent_forms&route=entries&form_id=' . $entry->form_id . '#/entries/' . $entry->id); } elseif (false !== strpos($key, 'meta.')) { $metaKey = substr($key, strlen('meta.')); $data = Helper::getSubmissionMeta($entry->id, $metaKey); if (! is_array($data)) { return $data; } return ''; } return ''; } protected static function getOtherData($key) { if (0 === strpos($key, 'date.')) { $format = str_replace('date.', '', $key); return date($format, strtotime(current_time('mysql'))); } elseif ('admin_email' == $key) { return get_option('admin_email', false); } elseif ('ip' == $key) { return static::getRequest()->getIp(); } elseif ('browser.platform' == $key) { return static::getUserAgent()->getPlatform(); } elseif ('browser.name' == $key) { return static::getUserAgent()->getBrowser(); } elseif (in_array($key, ['all_data', 'all_data_without_hidden_fields'])) { $formFields = FormFieldsParser::getEntryInputs(static::getForm()); $inputLabels = FormFieldsParser::getAdminLabels(static::getForm(), $formFields); $response = FormDataParser::parseFormSubmission(static::getEntry(), static::getForm(), $formFields, true); $status = apply_filters_deprecated( 'fluentform_all_data_skip_password_field', [ __return_true() ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/all_data_skip_password_field', 'Use fluentform/all_data_skip_password_field instead of fluentform_all_data_skip_password_field.' ); if (apply_filters('fluentform/all_data_skip_password_field', $status)) { $passwords = FormFieldsParser::getInputsByElementTypes(static::getForm(), ['input_password']); if (is_array($passwords) && ! empty($passwords)) { $user_inputs = $response->user_inputs; ArrayHelper::forget($user_inputs, array_keys($passwords)); $response->user_inputs = $user_inputs; } } $hideHiddenField = true; $hideHiddenField = apply_filters_deprecated( 'fluentform_all_data_without_hidden_fields', [ $hideHiddenField ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/all_data_without_hidden_fields', 'Use fluentform/all_data_without_hidden_fields instead of fluentform_all_data_without_hidden_fields.' ); $skipHiddenFields = ('all_data_without_hidden_fields' == $key) && apply_filters('fluentform/all_data_without_hidden_fields', $hideHiddenField); if ($skipHiddenFields) { $hiddenFields = FormFieldsParser::getInputsByElementTypes(static::getForm(), ['input_hidden']); if (is_array($hiddenFields) && ! empty($hiddenFields)) { ArrayHelper::forget($response->user_inputs, array_keys($hiddenFields)); } } $html = ''; foreach ($inputLabels as $inputKey => $label) { if (array_key_exists($inputKey, $response->user_inputs) && '' !== ArrayHelper::get($response->user_inputs, $inputKey)) { $data = ArrayHelper::get($response->user_inputs, $inputKey); if (is_array($data) || is_object($data)) { continue; } $html .= ''; } } $html .= '
' . $label . '
' . $data . '
'; $html = apply_filters_deprecated( 'fluentform_all_data_shortcode_html', [ $html, $formFields, $inputLabels, $response ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/all_data_shortcode_html', 'Use fluentform/all_data_shortcode_html instead of fluentform_all_data_shortcode_html.' ); return apply_filters('fluentform/all_data_shortcode_html', $html, $formFields, $inputLabels, $response); } elseif ('http_referer' === $key) { return wp_get_referer(); } elseif (0 === strpos($key, 'pdf.download_link.')) { $key = apply_filters_deprecated( 'fluentform_shortcode_parser_callback_pdf.download_link.public', [ $key, static::getInstance() ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/shortcode_parser_callback_pdf.download_link.public', 'Use fluentform/shortcode_parser_callback_pdf.download_link.public instead of fluentform_shortcode_parser_callback_pdf.download_link.public.' ); return apply_filters('fluentform/shortcode_parser_callback_pdf.download_link.public', $key, static::getInstance()); } elseif (false !== strpos($key, 'random_string.')) { $exploded = explode('.', $key); $prefix = array_pop($exploded); $value = $prefix . uniqid(); return apply_filters('fluentform/shortcode_parser_callback_random_string', $value, $prefix, static::getInstance()); } elseif ('form_title' == $key) { return static::getForm()->title; } elseif (false !== strpos($key, 'chat_gpt_response.')) { if (defined('FLUENTFORMPRO') && class_exists('\FluentFormPro\classes\Chat\ChatFieldController')) { $exploded = explode('.', $key); $prefix = array_pop($exploded); if (!$prefix) { return ''; } $exploded = explode('_', $prefix); $formId = reset($exploded); $feedId = end($exploded); $chatGPT = new \FluentFormPro\classes\Chat\ChatFieldController(wpFluentForm()); if ($chatGPT->api->isApiEnabled()) { return $chatGPT->chatGPTSubmissionMessageHandler($formId, $feedId, static::getInstance()); } } return ''; } // if it's multi line then just return if (false !== strpos($key, PHP_EOL)) { // most probably it's a css return '{' . $key . '}'; } $groups = explode('.', $key); if (count($groups) > 1) { $group = array_shift($groups); $property = implode('.', $groups); $handlerValue = apply_filters_deprecated( 'fluentform_smartcode_group_' . $group, [ $property, static::getInstance() ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/smartcode_group_' . $group, 'Use fluentform/smartcode_group_' . $group . ' instead of fluentform_smartcode_group_' . $group ); $handlerValue = apply_filters('fluentform/smartcode_group_' . $group, $handlerValue, static::getInstance()); if ($handlerValue != $property) { return $handlerValue; } } // This fallback actually $handlerValue = apply_filters_deprecated( 'fluentform_shortcode_parser_callback_' . $key, [ '{' . $key . '}', static::getInstance() ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/shortcode_parser_callback_' . $key, 'Use fluentform/shortcode_parser_callback_' . $key . ' instead of fluentform_shortcode_parser_callback_' . $key ); $handlerValue = apply_filters('fluentform/shortcode_parser_callback_' . $key, $handlerValue, static::getInstance()); if ($handlerValue) { return $handlerValue; } return ''; } public static function getForm() { if (! is_object(static::$form)) { static::$form = wpFluent()->table('fluentform_forms')->find(static::$form); } return static::$form; } public static function getProvider() { return static::$provider; } public static function getEntry() { if (! is_object(static::$entry)) { static::$entry = wpFluent()->table('fluentform_submissions')->find(static::$entry); } return static::$entry; } protected static function getRequest() { return wpFluentForm('request'); } protected static function getUserAgent() { if (is_null(static::$browser)) { static::$browser = new Browser(); } return static::$browser; } public static function getInstance() { static $instance; if ($instance) { return $instance; } $instance = new static(); return $instance; } public static function getInputs() { return static::$store['original_inputs']; } public static function resetData() { self::$form = null; self::$entry = null; self::$browser = null; self::$formFields = null; FormFieldsParser::resetData(); FormDataParser::resetData(); } } app/Services/GlobalSettings/GlobalSettingsHelper.php000064400000025430147600120010016615 0ustar00 __('Your reCAPTCHA settings are deleted.', 'fluentform'), 'status' => false, ]); } $token = Arr::get($data, 'token'); $secretKey = Arr::get($data, 'secretKey'); // If token is not empty meaning user verified their captcha. if ($token) { // Validate the reCaptcha response. $version = Arr::get($data, 'api_version', 'v2_visible'); $status = ReCaptcha::validate($token, $secretKey, $version); // reCaptcha is valid. So proceed to store. if ($status) { // Prepare captcha data. $captchaData = [ 'siteKey' => sanitize_text_field(Arr::get($data, 'siteKey')), 'secretKey' => sanitize_text_field($secretKey), 'api_version' => Arr::get($data, 'api_version'), ]; // Update the reCaptcha details with siteKey & secretKey. update_option('_fluentform_reCaptcha_details', $captchaData, 'no'); // Update the reCaptcha validation status. update_option('_fluentform_reCaptcha_keys_status', $status, 'no'); // Send success response letting the user know that // that the reCaptcha is valid and saved properly. return ([ 'message' => __('Your reCAPTCHA is valid and saved.', 'fluentform'), 'status' => $status, ]); } else { // reCaptcha is not valid. $message = __('Sorry, Your reCAPTCHA is not valid. Please try again', 'fluentform'); } } else { // The token is empty, so the user didn't verify their captcha. $message = __('Please validate your reCAPTCHA first and then hit save.', 'fluentform'); // Get the already stored reCaptcha status. $status = get_option('_fluentform_reCaptcha_keys_status'); if ($status) { $message = __('Your reCAPTCHA details are already valid. So no need to save again.', 'fluentform'); } } return([ 'message' => $message, 'status' => $status, ]); } public function storeHCaptcha($attributes) { $data = Arr::get($attributes, 'hCaptcha'); if ('clear-settings' == $data) { delete_option('_fluentform_hCaptcha_details'); update_option('_fluentform_hCaptcha_keys_status', false, 'no'); return([ 'message' => __('Your hCaptcha settings are deleted.', 'fluentform'), 'status' => false, ]); } $token = Arr::get($data, 'token'); $secretKey = Arr::get($data, 'secretKey'); // If token is not empty meaning user verified their captcha. if ($token) { // Validate the hCaptcha response. $status = HCaptcha::validate($token, $secretKey); // hCaptcha is valid. So proceed to store. if ($status) { // Prepare captcha data. $captchaData = [ 'siteKey' => sanitize_text_field(Arr::get($data, 'siteKey')), 'secretKey' => sanitize_text_field($secretKey), ]; // Update the hCaptcha details with siteKey & secretKey. update_option('_fluentform_hCaptcha_details', $captchaData, 'no'); // Update the hCaptcha validation status. update_option('_fluentform_hCaptcha_keys_status', $status, 'no'); // Send success response letting the user know that // that the hCaptcha is valid and saved properly. return([ 'message' => __('Your hCaptcha is valid and saved.', 'fluentform'), 'status' => $status, ]); } else { // hCaptcha is not valid. $message = __('Sorry, Your hCaptcha is not valid, Please try again', 'fluentform'); } } else { // The token is empty, so the user didn't verify their captcha. $message = __('Please validate your hCaptcha first and then hit save.', 'fluentform'); // Get the already stored hCaptcha status. $status = get_option('_fluentform_hCaptcha_keys_status'); if ($status) { $message = __('Your hCaptcha details are already valid, So no need to save again.', 'fluentform'); } } return([ 'message' => $message, 'status' => $status, ]); } public function storeTurnstile($attributes) { $data = Arr::get($attributes, 'turnstile'); if ('clear-settings' == $data) { delete_option('_fluentform_turnstile_details'); update_option('_fluentform_turnstile_keys_status', false, 'no'); return([ 'message' => __('Your Turnstile settings are deleted.', 'fluentform'), 'status' => false, ]); } $token = Arr::get($data, 'token'); $secretKey = sanitize_text_field(Arr::get($data, 'secretKey')); // Prepare captcha data. $captchaData = [ 'siteKey' => Arr::get($data, 'siteKey'), 'secretKey' => $secretKey, 'invisible' => 'no', 'appearance' => Arr::get($data, 'appearance', 'always'), 'theme' => Arr::get($data, 'theme', 'auto') ]; // If token is not empty meaning user verified their captcha. if ($token) { // Validate the turnstile response. $status = Turnstile::validate($token, $secretKey); // turnstile is valid. So proceed to store. if ($status) { // Update the turnstile details with siteKey & secretKey. update_option('_fluentform_turnstile_details', $captchaData, 'no'); // Update the turnstile validation status. update_option('_fluentform_turnstile_keys_status', $status, 'no'); // Send success response letting the user know that // that the turnstile is valid and saved properly. return([ 'message' => __('Your Turnstile Keys are valid.', 'fluentform'), 'status' => $status, ]); } else { // turnstile is not valid. $message = __('Sorry, Your Turnstile Keys are not valid. Please try again!', 'fluentform'); } } else { // The token is empty, so the user didn't verify their captcha. $message = __('Please validate your Turnstile first and then hit save.', 'fluentform'); // Get the already stored reCaptcha status. $status = get_option('_fluentform_turnstile_keys_status'); if ($status) { update_option('_fluentform_turnstile_details', $captchaData, 'no'); $message = __('Your Turnstile settings is saved.', 'fluentform'); return([ 'message' => $message, 'status' => $status, ]); } } return([ 'message' => $message, 'status' => $status, ]); } public function storeSaveGlobalLayoutSettings($attributes) { $settings = Arr::get($attributes, 'form_settings'); $settings = json_decode($settings, true); $sanitizedSettings = fluentFormSanitizer($settings); if (Arr::get($settings, 'misc.email_footer_text')) { $sanitizedSettings['misc']['email_footer_text'] = wp_unslash($settings['misc']['email_footer_text']); } update_option('_fluentform_global_form_settings', $sanitizedSettings, 'no'); return ([ 'message' => __('Global settings has been saved', 'fluentform') ]); } public function storeMailChimpSettings($attributes) { $mailChimp = Arr::get($attributes, 'mailchimp'); if (!$mailChimp['apiKey']) { $mailChimpSettings = [ 'apiKey' => '', 'status' => false, ]; // Update the reCaptcha details with siteKey & secretKey. update_option('_fluentform_mailchimp_details', $mailChimpSettings, 'no'); return([ 'message' => __('Your settings has been updated', 'fluentform'), 'status' => false, ]); } // Verify API key now try { $MailChimp = new MailChimp($mailChimp['apiKey']); $result = $MailChimp->get('lists'); if (!$MailChimp->success()) { throw new \Exception($MailChimp->getLastError()); } } catch (\Exception $exception) { return([ 'message' => $exception->getMessage(), ]); } // Mailchimp key is verified now, Proceed now $mailChimpSettings = [ 'apiKey' => sanitize_text_field($mailChimp['apiKey']), 'status' => true, ]; // Update the reCaptcha details with siteKey & secretKey. update_option('_fluentform_mailchimp_details', $mailChimpSettings, 'no'); return([ 'message' => __('Your mailchimp api key has been verfied and successfully set', 'fluentform'), 'status' => true, ]); } public function storeEmailSummarySettings($attributes) { $settings = Arr::get($attributes, 'email_report'); $settings = json_decode($settings, true); $defaults = [ 'status' => 'yes', 'send_to_type' => 'admin_email', 'custom_recipients' => '', 'sending_day' => 'Mon', ]; $settings = wp_parse_args($settings, $defaults); update_option('_fluentform_email_report_summary', $settings); $emailReportHookName = 'fluentform_do_email_report_scheduled_tasks'; if (!wp_next_scheduled($emailReportHookName)) { wp_schedule_event(time(), 'daily', $emailReportHookName); } return true; } } app/Services/GlobalSettings/GlobalSettingsService.php000064400000004671147600120010017002 0ustar00{$method}($attributes); } } return $container; } else { $method = 'store' . ucwords($key); } do_action_deprecated( 'fluentform_saving_global_settings_with_key_method', [ $attributes ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/saving_global_settings_with_key_method', 'Use fluentform/saving_global_settings_with_key_method instead of fluentform_saving_global_settings_with_key_method.' ); do_action('fluentform/saving_global_settings_with_key_method', $attributes); if (in_array($method, $allowedMethods)) { return $globalSettingsHelper->{$method}($attributes); } } } app/Services/Integrations/MailChimp/MailChimpIntegration.php000064400000050573147600120010020201 0ustar00description = __('Fluent Forms Mailchimp module allows you to create Mailchimp newsletter signup forms in WordPress', 'fluentform'); $this->logo = fluentFormMix('img/integrations/mailchimp.png'); $this->registerAdminHooks(); add_action('wp_ajax_fluentform_mailchimp_interest_groups', [$this, 'fetchInterestGroups']); add_filter('fluentform/save_integration_value_mailchimp', [$this, 'sanitizeSettings'], 10, 3); // add_filter('fluentform/notifying_async_mailchimp', '__return_false'); } public function getGlobalFields($fields) { return [ 'logo' => $this->logo, 'menu_title' => __('Mailchimp Settings', 'fluentform'), 'menu_description' => __('Mailchimp is a marketing platform for small businesses. Send beautiful emails, connect your e-commerce store, advertise, and build your brand. Use Fluent Forms to collect customer information and automatically add it to your Mailchimp campaign list. If you don\'t have a Mailchimp account, you can sign up for one here.', 'fluentform'), 'valid_message' => __('Your Mailchimp API Key is valid', 'fluentform'), 'invalid_message' => __('Your Mailchimp API Key is not valid', 'fluentform'), 'save_button_text' => __('Save Settings', 'fluentform'), 'fields' => [ 'apiKey' => [ 'type' => 'text', 'label_tips' => __('Enter your Mailchimp API Key, if you do not have
Please login to your Mailchimp account and go to
Profile -> Extras -> Api Keys', 'fluentform'), 'label' => __('Mailchimp API Key', 'fluentform'), ], ], 'hide_on_valid' => true, 'discard_settings' => [ 'section_description' => __('Your Mailchimp API integration is up and running', 'fluentform'), 'button_text' => __('Disconnect Mailchimp', 'fluentform'), 'data' => [ 'apiKey' => '', ], 'show_verify' => true, ], ]; } public function getGlobalSettings($settings) { $globalSettings = get_option($this->optionKey); if (! $globalSettings) { $globalSettings = []; } $defaults = [ 'apiKey' => '', 'status' => '', ]; return wp_parse_args($globalSettings, $defaults); } public function saveGlobalSettings($mailChimp) { if (! $mailChimp['apiKey']) { $mailChimpSettings = [ 'apiKey' => '', 'status' => false, ]; // Update the reCaptcha details with siteKey & secretKey. update_option($this->optionKey, $mailChimpSettings, 'no'); wp_send_json_success([ 'message' => __('Your settings has been updated and disconnected', 'fluentform'), 'status' => false, ], 200); } // Verify API key now try { $MailChimp = new MailChimp($mailChimp['apiKey']); $result = $MailChimp->get('lists'); if (! $MailChimp->success()) { throw new \Exception($MailChimp->getLastError()); } } catch (\Exception $exception) { wp_send_json_error([ 'message' => $exception->getMessage(), ], 400); } // Mailchimp key is verified now, Proceed now $mailChimpSettings = [ 'apiKey' => sanitize_text_field($mailChimp['apiKey']), 'status' => true, ]; // Update the reCaptcha details with siteKey & secretKey. update_option($this->optionKey, $mailChimpSettings, 'no`'); wp_send_json_success([ 'message' => __('Your mailchimp api key has been verified and successfully set', 'fluentform'), 'status' => true, ], 200); } public function pushIntegration($integrations, $formId) { $integrations['mailchimp'] = [ 'title' => __('Mailchimp Feed', 'fluentform'), 'logo' => $this->logo, 'is_active' => $this->isConfigured(), 'configure_title' => __('Configuration required!', 'fluentform'), 'global_configure_url' => admin_url('admin.php?page=fluent_forms_settings#general-mailchimp-settings'), 'configure_message' => __('Mailchimp is not configured yet! Please configure your mailchimp api first', 'fluentform'), 'configure_button_text' => __('Set Mailchimp API', 'fluentform'), ]; return $integrations; } public function getIntegrationDefaults($settings, $formId) { $settings = [ 'conditionals' => [ 'conditions' => [], 'status' => false, 'type' => 'all', ], 'enabled' => true, 'list_id' => '', 'list_name' => '', 'name' => '', 'merge_fields' => (object) [], 'tags' => '', 'tag_routers' => [], 'tag_ids_selection_type' => 'simple', 'markAsVIP' => false, 'fieldEmailAddress' => '', 'doubleOptIn' => false, 'resubscribe' => false, 'note' => '', ]; return $settings; } public function getSettingsFields($settings, $formId) { return [ 'fields' => [ [ 'key' => 'name', 'label' => __('Name', 'fluentform'), 'required' => true, 'placeholder' => __('Your Feed Name', 'fluentform'), 'component' => 'text', ], [ 'key' => 'list_id', 'label' => __('Mailchimp List', 'fluentform'), 'placeholder' => __('Select Mailchimp List', 'fluentform'), 'tips' => __('Select the Mailchimp list you would like to add your contacts to.', 'fluentform'), 'component' => 'list_ajax_options', 'options' => $this->getLists(), ], [ 'key' => 'merge_fields', 'require_list' => true, 'label' => __('Map Fields', 'fluentform'), 'tips' => __('Associate your Mailchimp merge tags to the appropriate Fluent Forms fields by selecting the appropriate form field from the list. Also, Mailchimp Date fields supports only MM/DD/YYYY and DD/MM/YYYY format.', 'fluentform'), 'component' => 'map_fields', 'field_label_remote' => __('Mailchimp Field', 'fluentform'), 'field_label_local' => __('Form Field', 'fluentform'), 'primary_fileds' => [ [ 'key' => 'fieldEmailAddress', 'label' => __('Email Address', 'fluentform'), 'required' => true, 'input_options' => 'emails', ], ], ], [ 'key' => 'interest_group', 'require_list' => true, 'label' => __('Interest Group', 'fluentform'), 'tips' => __('You can map your mailchimp interest group for this contact', 'fluentform'), 'component' => 'chained_fields', 'sub_type' => 'radio', 'category_label' => __('Select Interest Category', 'fluentform'), 'subcategory_label' => __('Select Interest', 'fluentform'), 'remote_url' => admin_url('admin-ajax.php?action=fluentform_mailchimp_interest_groups'), 'inline_tip' => __('Select the mailchimp interest category and interest', 'fluentform'), ], [ 'key' => 'tags', 'require_list' => true, 'label' => __('Tags', 'fluentform'), 'tips' => __('Associate tags to your Mailchimp contacts with a comma separated list (e.g. new lead, FluentForms, web source). Commas within a merge tag value will be created as a single tag.', 'fluentform'), 'component' => 'selection_routing', 'simple_component' => 'value_text', 'routing_input_type' => 'text', 'routing_key' => 'tag_ids_selection_type', 'settings_key' => 'tag_routers', 'labels' => [ 'choice_label' => __('Enable Dynamic Tag Input', 'fluentform'), 'input_label' => '', 'input_placeholder' => __('Tag', 'fluentform'), ], 'inline_tip' => __('Please provide each tag by comma separated value, You can use dynamic smart codes', 'fluentform'), ], [ 'key' => 'note', 'require_list' => true, 'label' => __('Note', 'fluentform'), 'tips' => __('You can write a note for this contact', 'fluentform'), 'component' => 'value_textarea', ], [ 'key' => 'doubleOptIn', 'require_list' => true, 'label' => __('Double Opt-in', 'fluentform'), 'tips' => __('When the double opt-in option is enabled, Mailchimp will send a confirmation email to the user and will only add them to your
'checkbox-single', 'checkbox_label' => __('Enable Double Opt-in', 'fluentform'), ], [ 'key' => 'resubscribe', 'require_list' => true, 'label' => __('ReSubscribe', 'fluentform'), 'tips' => __('When this option is enabled, if the subscriber is in an inactive state or has previously been unsubscribed, they will be re-added to the active list. Therefore, this option should be used with caution and only when appropriate.', 'fluentform'), 'component' => 'checkbox-single', 'checkbox_label' => __('Enable ReSubscription', 'fluentform'), ], [ 'key' => 'markAsVIP', 'require_list' => true, 'label' => __('VIP', 'fluentform'), 'tips' => __('When enabled, This contact will be marked as VIP.', 'fluentform'), 'component' => 'checkbox-single', 'checkbox_label' => __('Mark as VIP Contact', 'fluentform'), ], [ 'require_list' => true, 'key' => 'conditionals', 'label' => __('Conditional Logics', 'fluentform'), 'tips' => __('Allow mailchimp integration conditionally based on your submission values', 'fluentform'), 'component' => 'conditional_block', ], [ 'require_list' => true, 'key' => 'enabled', 'label' => __('Status', 'fluentform'), 'component' => 'checkbox-single', 'checkbox_label' => __('Enable This feed', 'fluentform'), ], ], 'button_require_list' => true, 'integration_title' => __('Mailchimp', 'fluentform'), ]; } public function prepareIntegrationFeed($setting, $feed, $formId) { $defaults = $this->getIntegrationDefaults([], $formId); foreach ($setting as $settingKey => $settingValue) { if ('true' == $settingValue) { $setting[$settingKey] = true; } elseif ('false' == $settingValue) { $setting[$settingKey] = false; } elseif ('conditionals' == $settingKey) { if ('true' == $settingValue['status']) { $settingValue['status'] = true; } elseif ('false' == $settingValue['status']) { $settingValue['status'] = false; } $setting['conditionals'] = $settingValue; } } if (! empty($setting['list_id'])) { $setting['list_id'] = (string) $setting['list_id']; } $settings['markAsVIP'] = ArrayHelper::isTrue($setting, 'markAsVIP'); $settings['doubleOptIn'] = ArrayHelper::isTrue($setting, 'doubleOptIn'); return wp_parse_args($setting, $defaults); } private function getLists() { $settings = get_option('_fluentform_mailchimp_details'); try { $MailChimp = new MailChimp($settings['apiKey']); $lists = $MailChimp->get('lists', ['count' => 9999]); if (! $MailChimp->success()) { return []; } } catch (\Exception $exception) { return []; } $formattedLists = []; foreach ($lists['lists'] as $list) { $formattedLists[$list['id']] = $list['name']; } return $formattedLists; } public function getMergeFields($list, $listId, $formId) { if (! $this->isConfigured()) { return false; } $mergedFields = $this->findMergeFields($listId); $fields = []; foreach ($mergedFields as $merged_field) { $fields[$merged_field['tag']] = $merged_field['name']; } return $fields; } public function findMergeFields($listId) { $settings = get_option('_fluentform_mailchimp_details'); try { $MailChimp = new MailChimp($settings['apiKey']); $list = $MailChimp->get('lists/' . $listId . '/merge-fields', ['count' => 9999]); if (! $MailChimp->success()) { return false; } } catch (\Exception $exception) { return false; } return $list['merge_fields']; } public function fetchInterestGroups() { $settings = wp_unslash($this->app->request->get('settings')); $listId = ArrayHelper::get($settings, 'list_id'); if (! $listId) { wp_send_json_success([ 'categories' => [], 'subcategories' => [], 'reset_values' => true, ]); } $categoryId = ArrayHelper::get($settings, 'interest_group.category'); $categories = $this->getInterestCategories($listId); $subCategories = []; if ($categoryId) { $subCategories = $this->getInterestSubCategories($listId, $categoryId); } wp_send_json_success([ 'categories' => $categories, 'subcategories' => $subCategories, 'reset_values' => ! $categories && ! $subCategories, ]); } private function getInterestCategories($listId) { $settings = get_option('_fluentform_mailchimp_details'); try { $MailChimp = new MailChimp($settings['apiKey']); $categories = $MailChimp->get('/lists/' . $listId . '/interest-categories', [ 'count' => 9999, 'fields' => 'categories.id,categories.title', ]); if (! $MailChimp->success()) { return []; } } catch (\Exception $exception) { return []; } $categories = ArrayHelper::get($categories, 'categories', []); $formattedLists = []; foreach ($categories as $list) { $formattedLists[] = [ 'value' => $list['id'], 'label' => $list['title'], ]; } return $formattedLists; } private function getInterestSubCategories($listId, $categoryId) { $settings = get_option('_fluentform_mailchimp_details'); try { $MailChimp = new MailChimp($settings['apiKey']); $categories = $MailChimp->get('/lists/' . $listId . '/interest-categories/' . $categoryId . '/interests', [ 'count' => 9999, 'fields' => 'interests.id,interests.name', ]); if (! $MailChimp->success()) { return []; } } catch (\Exception $exception) { return []; } $categories = ArrayHelper::get($categories, 'interests', []); $formattedLists = []; foreach ($categories as $list) { $formattedLists[] = [ 'value' => $list['id'], 'label' => $list['name'], ]; } return $formattedLists; } public function sanitizeSettings($integration, $integrationId, $formId) { if (fluentformCanUnfilteredHTML()) { return $integration; } $sanitizeMap = [ 'status' => 'rest_sanitize_boolean', 'enabled' => 'rest_sanitize_boolean', 'type' => 'sanitize_text_field', 'list_id' => 'sanitize_text_field', 'list_name' => 'sanitize_text_field', 'name' => 'sanitize_text_field', 'tags' => 'sanitize_text_field', 'tag_ids_selection_type' => 'sanitize_text_field', 'fieldEmailAddress' => 'sanitize_text_field', 'doubleOptIn' => 'rest_sanitize_boolean', 'resubscribe' => 'rest_sanitize_boolean', 'note' => 'sanitize_text_field', ]; return fluentform_backend_sanitizer($integration, $sanitizeMap); } /* * For Handling Notifications broadcast */ public function notify($feed, $formData, $entry, $form) { $response = $this->subscribe($feed, $formData, $entry, $form); if (true == $response && !is_wp_error($response)) { $message = __('Mailchimp feed has been successfully initialed and pushed data', 'fluentform'); do_action('fluentform/integration_action_result', $feed, 'success', $message); } else { $message = __('Mailchimp feed has been failed to deliver feed', 'fluentform'); if (is_wp_error($response)) { $message = $response->get_error_message(); if (is_array($message)) { $messageArray = $message; $message = ''; foreach ($messageArray as $error) { $message .= ArrayHelper::get($error, 'message'); } } } do_action('fluentform/integration_action_result', $feed, 'failed', $message); } } } app/Services/Integrations/MailChimp/MailChimpSubscriber.php000064400000027066147600120010020022 0ustar00getAll(); foreach ($feeds as $feed) { if ($this->isApplicable($feed, $formData)) { $email = ArrayHelper::get( $formData, ArrayHelper::get($feed->formattedValue, 'fieldEmailAddress') ); if (is_string($email) && is_email($email)) { $feed->formattedValue['fieldEmailAddress'] = $email; $this->feeds[] = $feed; } } } } /** * Determine if the feed is eligible to be applied. * * @param $feed * @param $formData * * @return bool */ public function isApplicable(&$feed, &$formData) { return ArrayHelper::get($feed->formattedValue, 'enabled') && ArrayHelper::get($feed->formattedValue, 'list_id') && ConditionAssesor::evaluate($feed->formattedValue, $formData); } /** * Subscribe a user to the list on form submission. * * @param $feed * @param $formData * @param $entry * @param $form * * @return array|bool|false * * @throws \Exception */ public function subscribe($feed, $formData, $entry, $form) { $feedData = $feed['processedValues']; if (! is_email($feedData['fieldEmailAddress'])) { $feedData['fieldEmailAddress'] = ArrayHelper::get($formData, $feedData['fieldEmailAddress']); } if (! is_email($feedData['fieldEmailAddress'])) { return false; } $mergeFields = array_filter(ArrayHelper::get($feedData, 'merge_fields')); $status = ArrayHelper::isTrue($feedData, 'doubleOptIn') ? 'pending' : 'subscribed'; $listId = $feedData['list_id']; $arguments = [ 'email_address' => $feedData['fieldEmailAddress'], 'status_if_new' => $status, 'double_optin' => ArrayHelper::isTrue($feedData, 'doubleOptIn'), 'vip' => ArrayHelper::isTrue($feedData, 'markAsVIP'), ]; if ($mergeFields) { // Process merge field for address $mergeFieldsSettings = $this->findMergeFields( ArrayHelper::get($feed, 'settings.list_id') ); foreach ($mergeFieldsSettings as $fieldSettings) { if ( 'address' == $fieldSettings['type'] || 'birthday' == $fieldSettings['type'] || 'date' == $fieldSettings['type'] ) { $fieldName = $fieldSettings['tag']; $formFieldName = ArrayHelper::get($feed, 'settings.merge_fields.' . $fieldName); if ($formFieldName) { preg_match('/{+(.*?)}/', $formFieldName, $matches); $formFieldName = substr($matches[1], strlen('inputs.')); $formFieldValue = ArrayHelper::get($formData, $formFieldName); if ($formFieldValue) { if (is_array($formFieldValue) && 'address' == $fieldSettings['type']) { $mergeFields[$fieldName] = [ 'addr1' => ArrayHelper::get($formFieldValue, 'address_line_1'), 'city' => ArrayHelper::get($formFieldValue, 'city'), 'state' => ArrayHelper::get($formFieldValue, 'state'), 'zip' => ArrayHelper::get($formFieldValue, 'zip'), 'country' => ArrayHelper::get($formFieldValue, 'country'), ]; if (ArrayHelper::exists($formFieldValue, 'address_line_2')) { $mergeFields[$fieldName]['addr2'] = ArrayHelper::get($formFieldValue, 'address_line_2'); } } elseif ('birthday' == $fieldSettings['type']) { $mergeFields[$fieldName] = date('d/m', strtotime($formFieldValue)); } else { $date = \DateTime::createFromFormat('d/m/Y', $formFieldValue) ?: \DateTime::createFromFormat('m/d/Y', $formFieldValue); if ($date) { $mergeFields[$fieldName] = $date->format('Y-m-d\T00:00:00.001\Z'); } } } } } } $arguments['merge_fields'] = (object) $mergeFields; } if ($entry->ip) { $ipAddress = $entry->ip; // sometimes server returns multiple IP addresses with comma separated value // from multiple IP, getting the first one if (strpos($ipAddress, ',') !== false) { $ipArray = explode(',', $ipAddress); $ipAddress = trim($ipArray[0]); } $arguments['ip_signup'] = $ipAddress; } $tags = $this->getSelectedTagIds($feedData, $formData, 'tags'); if (! is_array($tags)) { $tags = explode(',', $tags); } $tags = array_map('trim', $tags); $tags = array_filter($tags); //explode dynamic commas values to array $tagsFormatted = []; foreach ($tags as $tag) { if (false !== strpos($tag, ',')) { $innerTags = explode(',', $tag); foreach ($innerTags as $t) { $tagsFormatted[] = $t; } } else { $tagsFormatted[] = $tag; } } if ($tags) { $arguments['tags'] = array_map('trim', $tagsFormatted); } $note = ''; if ($feedData['note']) { $note = esc_attr($feedData['note']); } $arguments['interests'] = []; $contactHash = md5(strtolower($arguments['email_address'])); $existingMember = $this->getMemberByEmail($listId, $arguments['email_address']); $isNew = true; if (!empty($existingMember['id'])) { $isNew = false; if (ArrayHelper::isTrue($feedData, 'resubscribe')) { //for resubscribing unsubscribed contact ; status = subscribed || pending $arguments['status'] = $status; } // We have members so we can merge the values $status = apply_filters_deprecated( 'fluentform_mailchimp_keep_existing_interests', [ true, $form->id ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/mailchimp_keep_existing_interests', 'Use fluentform/mailchimp_keep_existing_interests instead of fluentform_mailchimp_keep_existing_interests.' ); if (apply_filters('fluentform/mailchimp_keep_existing_interests', $status, $form->id)) { $arguments['interests'] = ArrayHelper::get($existingMember, 'interests', []); } if (ArrayHelper::exists($arguments, 'tags')) { $isExistingTags = apply_filters_deprecated( 'fluentform_mailchimp_keep_existing_tags', [ true, $form->id ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/mailchimp_keep_existing_tags', 'Use fluentform/mailchimp_keep_existing_tags instead of fluentform_mailchimp_keep_existing_tags.' ); if (apply_filters('fluentform/mailchimp_keep_existing_tags', $isExistingTags, $form->id)) { $tags = ArrayHelper::get($existingMember, 'tags', []); $tagNames = []; foreach ($tags as $tag) { $tagNames[] = $tag['name']; } $allTags = wp_parse_args($arguments['tags'], $tagNames); $arguments['tags'] = array_unique($allTags); } } } if ( ArrayHelper::get($feedData, 'interest_group.sub_category') && ArrayHelper::get($feedData, 'interest_group.category') ) { $interestGroup = ArrayHelper::get($feedData, 'interest_group.sub_category'); $arguments['interests'][$interestGroup] = true; } $arguments = array_filter($arguments); $settings = get_option('_fluentform_mailchimp_details'); $MailChimp = new MailChimp($settings['apiKey']); $endPoint = 'lists/' . $listId . '/members/' . $contactHash; $result = $MailChimp->put($endPoint, $arguments); if (400 == $result['status']) { if (ArrayHelper::exists($result, 'errors')) { $errors = ArrayHelper::get($result, 'errors'); return new \WP_Error(423, $errors); } return new \WP_Error(423, $result['detail']); } if ($result && ! is_wp_error($result) && isset($result['id'])) { $noteEnpoint = 'lists/' . $listId . '/members/' . $contactHash . '/notes'; if ($note) { $MailChimp->post($noteEnpoint, [ 'note' => $note, ]); } // Let's sync the tags if (! $isNew && ArrayHelper::exists($arguments, 'tags')) { $currentTags = []; foreach ($result['tags'] as $tag) { $currentTags[] = $tag['name']; } $newTags = $arguments['tags']; sort($newTags); sort($currentTags); if ($newTags != $currentTags) { $tagEnpoint = 'lists/' . $listId . '/members/' . $contactHash . '/tags'; if ($newTags) { $formattedtags = []; foreach ($newTags as $tag) { $formattedtags[] = [ 'name' => $tag, 'status' => 'active', ]; } $MailChimp->post($tagEnpoint, [ 'tags' => $formattedtags, ]); } } } return true; } return $result; } /** * Get a specific MailChimp list member. * */ public function getMemberByEmail($list_id, $email_address) { $settings = get_option('_fluentform_mailchimp_details'); $MailChimp = new MailChimp($settings['apiKey']); // Prepare subscriber hash. $subscriber_hash = md5(strtolower($email_address)); return $MailChimp->get('lists/' . $list_id . '/members/' . $subscriber_hash); } } app/Services/Integrations/MailChimp/MailChimp.php000064400000035670147600120010015776 0ustar00 * * @version 2.4 */ class MailChimp { private $api_key; private $api_endpoint = 'https://.api.mailchimp.com/3.0'; public const TIMEOUT = 10; /* SSL Verification Read before disabling: http://snippets.webaware.com.au/howto/stop-turning-off-curlopt_ssl_verifypeer-and-fix-your-php-config/ */ public $verify_ssl = true; private $request_successful = false; private $last_error = ''; private $last_response = []; private $last_request = []; /** * Create a new instance * * @param string $api_key Your MailChimp API key * @param string $api_endpoint Optional custom API endpoint * * @throws \Exception */ public function __construct($api_key, $api_endpoint = null) { $this->api_key = $api_key; if (null === $api_endpoint) { if (false === strpos($this->api_key, '-')) { throw new \Exception("Invalid Mailchimp API key `{$api_key}` supplied."); } list(, $data_center) = explode('-', $this->api_key); $this->api_endpoint = str_replace('', $data_center, $this->api_endpoint); } else { $this->api_endpoint = $api_endpoint; } $this->last_response = ['headers' => null, 'body' => null]; } /** * @return string The url to the API endpoint */ public function getApiEndpoint() { return $this->api_endpoint; } /** * Convert an email address into a 'subscriber hash' for identifying the subscriber in a method URL * * @param string $email The subscriber's email address * * @return string Hashed version of the input */ public function subscriberHash($email) { return md5(strtolower($email)); } /** * Was the last request successful? * * @return bool True for success, false for failure */ public function success() { return $this->request_successful; } /** * Get the last error returned by either the network transport, or by the API. * If something didn't work, this should contain the string describing the problem. * * @return string|false describing the error */ public function getLastError() { return $this->last_error ?: false; } /** * Get an array containing the HTTP headers and the body of the API response. * * @return array Assoc array with keys 'headers' and 'body' */ public function getLastResponse() { return $this->last_response; } /** * Get an array containing the HTTP headers and the body of the API request. * * @return array Assoc array */ public function getLastRequest() { return $this->last_request; } /** * Make an HTTP DELETE request - for deleting data * * @param string $method URL of the API request method * @param array $args Assoc array of arguments (if any) * @param int $timeout Timeout limit for request in seconds * * @return array|false Assoc array of API response, decoded from JSON */ public function delete($method, $args = [], $timeout = self::TIMEOUT) { return $this->makeRequest('delete', $method, $args, $timeout); } /** * Make an HTTP GET request - for retrieving data * * @param string $method URL of the API request method * @param array $args Assoc array of arguments (usually your data) * @param int $timeout Timeout limit for request in seconds * * @return array|false Assoc array of API response, decoded from JSON */ public function get($method, $args = [], $timeout = self::TIMEOUT) { return $this->makeRequest('get', $method, $args, $timeout); } /** * Make an HTTP PATCH request - for performing partial updates * * @param string $method URL of the API request method * @param array $args Assoc array of arguments (usually your data) * @param int $timeout Timeout limit for request in seconds * * @return array|false Assoc array of API response, decoded from JSON */ public function patch($method, $args = [], $timeout = self::TIMEOUT) { return $this->makeRequest('patch', $method, $args, $timeout); } /** * Make an HTTP POST request - for creating and updating items * * @param string $method URL of the API request method * @param array $args Assoc array of arguments (usually your data) * @param int $timeout Timeout limit for request in seconds * * @return array|false Assoc array of API response, decoded from JSON */ public function post($method, $args = [], $timeout = self::TIMEOUT) { return $this->makeRequest('post', $method, $args, $timeout); } /** * Make an HTTP PUT request - for creating new items * * @param string $method URL of the API request method * @param array $args Assoc array of arguments (usually your data) * @param int $timeout Timeout limit for request in seconds * * @return array|false Assoc array of API response, decoded from JSON * * @throws \Exception */ public function put($method, $args = [], $timeout = self::TIMEOUT) { return $this->makeRequest('put', $method, $args, $timeout); } /** * Performs the underlying HTTP request. Not very exciting. * * @param string $http_verb The HTTP verb to use: get, post, put, patch, delete * @param string $method The API method to be called * @param array $args Assoc array of parameters to be passed * @param int $timeout * * @return array|false Assoc array of decoded result * * @throws \Exception */ private function makeRequest($http_verb, $method, $args = [], $timeout = self::TIMEOUT) { if (! function_exists('curl_init') || ! function_exists('curl_setopt')) { throw new \Exception("cURL support is required, but can't be found."); } $url = $this->api_endpoint . '/' . $method; $response = $this->prepareStateForRequest($http_verb, $method, $url, $timeout); $httpHeader = [ 'Accept: application/vnd.api+json', 'Content-Type: application/vnd.api+json', 'Authorization: apikey ' . $this->api_key, ]; if (isset($args['language'])) { $httpHeader[] = 'Accept-Language: ' . $args['language']; } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeader); curl_setopt($ch, CURLOPT_USERAGENT, 'DrewM/MailChimp-API/3.0 (github.com/drewm/mailchimp-api)'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->verify_ssl); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); curl_setopt($ch, CURLOPT_ENCODING, ''); curl_setopt($ch, CURLINFO_HEADER_OUT, true); switch ($http_verb) { case 'post': curl_setopt($ch, CURLOPT_POST, true); $this->attachRequestPayload($ch, $args); break; case 'get': $query = http_build_query($args, '', '&'); curl_setopt($ch, CURLOPT_URL, $url . '?' . $query); break; case 'delete': curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); break; case 'patch': curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH'); $this->attachRequestPayload($ch, $args); break; case 'put': curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); $this->attachRequestPayload($ch, $args); break; } $responseContent = curl_exec($ch); $response['headers'] = curl_getinfo($ch); $response = $this->setResponseState($response, $responseContent, $ch); $formattedResponse = $this->formatResponse($response); curl_close($ch); $this->determineSuccess($response, $formattedResponse, $timeout); return $formattedResponse; } /** * @param string $http_verb * @param string $method * @param string $url * @param integer $timeout */ private function prepareStateForRequest($http_verb, $method, $url, $timeout) { $this->last_error = ''; $this->request_successful = false; $this->last_response = [ 'headers' => null, // array of details from curl_getinfo() 'httpHeaders' => null, // array of HTTP headers 'body' => null, // content of the response ]; $this->last_request = [ 'method' => $http_verb, 'path' => $method, 'url' => $url, 'body' => '', 'timeout' => $timeout, ]; return $this->last_response; } /** * Get the HTTP headers as an array of header-name => header-value pairs. * * The "Link" header is parsed into an associative array based on the * rel names it contains. The original value is available under * the "_raw" key. * * @param string $headersAsString * * @return array */ private function getHeadersAsArray($headersAsString) { $headers = []; foreach (explode("\r\n", $headersAsString) as $i => $line) { if (0 === $i) { // HTTP code continue; } $line = trim($line); if (empty($line)) { continue; } list($key, $value) = explode(': ', $line); if ('Link' == $key) { $value = array_merge( ['_raw' => $value], $this->getLinkHeaderAsArray($value) ); } $headers[$key] = $value; } return $headers; } /** * Extract all rel => URL pairs from the provided Link header value * * Mailchimp only implements the URI reference and relation type from * RFC 5988, so the value of the header is something like this: * * 'https://us13.api.mailchimp.com/schema/3.0/Lists/Instance.json; rel="describedBy", ; rel="dashboard"' * * @param string $linkHeaderAsString * * @return array */ private function getLinkHeaderAsArray($linkHeaderAsString) { $urls = []; if (preg_match_all('/<(.*?)>\s*;\s*rel="(.*?)"\s*/', $linkHeaderAsString, $matches)) { foreach ($matches[2] as $i => $relName) { $urls[$relName] = $matches[1][$i]; } } return $urls; } /** * Encode the data and attach it to the request * * @param resource $ch cURL session handle, used by reference * @param array $data Assoc array of data to attach */ private function attachRequestPayload(&$ch, $data) { $encoded = json_encode($data); $this->last_request['body'] = $encoded; curl_setopt($ch, CURLOPT_POSTFIELDS, $encoded); } /** * Decode the response and format any error messages for debugging * * @param array $response The response from the curl request * * @return array|false The JSON decoded into an array */ private function formatResponse($response) { $this->last_response = $response; if (! empty($response['body'])) { return json_decode($response['body'], true); } return false; } /** * Do post-request formatting and setting state from the response * * @param array $response The response from the curl request * @param string $responseContent The body of the response from the curl request * * * @return array The modified response */ private function setResponseState($response, $responseContent, $ch) { if (false === $responseContent) { $this->last_error = curl_error($ch); } else { $headerSize = $response['headers']['header_size']; $response['httpHeaders'] = $this->getHeadersAsArray(substr($responseContent, 0, $headerSize)); $response['body'] = substr($responseContent, $headerSize); if (isset($response['headers']['request_header'])) { $this->last_request['headers'] = $response['headers']['request_header']; } } return $response; } /** * Check if the response was successful or a failure. If it failed, store the error. * * @param array $response The response from the curl request * @param array|false $formattedResponse The response body payload from the curl request * @param int $timeout The timeout supplied to the curl request. * * @return bool If the request was successful */ private function determineSuccess($response, $formattedResponse, $timeout) { $status = $this->findHTTPStatus($response, $formattedResponse); if ($status >= 200 && $status <= 299) { $this->request_successful = true; return true; } if (isset($formattedResponse['detail'])) { $this->last_error = sprintf('%d: %s', $formattedResponse['status'], $formattedResponse['detail']); return false; } if ($timeout > 0 && $response['headers'] && $response['headers']['total_time'] >= $timeout) { $this->last_error = sprintf('Request timed out after %f seconds.', $response['headers']['total_time']); return false; } $this->last_error = 'Unknown error, call getLastResponse() to find out what happened.'; return false; } /** * Find the HTTP status code from the headers or API response body * * @param array $response The response from the curl request * @param array|false $formattedResponse The response body payload from the curl request * * @return int HTTP status code */ private function findHTTPStatus($response, $formattedResponse) { if (! empty($response['headers']) && isset($response['headers']['http_code'])) { return (int) $response['headers']['http_code']; } if (! empty($response['body']) && isset($formattedResponse['status'])) { return (int) $formattedResponse['status']; } return 418; } } app/Services/Integrations/Slack/SlackNotificationActions.php000064400000003426147600120010020244 0ustar00app = $app; // add_filter('fluentform/notifying_async_slack', '__return_false'); } public function register() { add_filter('fluentform/global_notification_active_types', function ($types) { $isEnabled = Helper::isSlackEnabled(); if ($isEnabled) { $types['slack'] = 'slack'; } return $types; }); add_action('fluentform/integration_notify_slack', [$this, 'notify'], 20, 4); add_filter('fluentform/get_meta_key_settings_response', function ($response, $formId, $key) { if ('slack' == $key) { $formApi = fluentFormApi()->form($formId); $response['formattedFields'] = array_values($formApi->labels()); } return $response; }, 10, 3); } public function notify($feed, $formData, $entry, $form) { $isEnabled = Helper::isSlackEnabled(); if (! $isEnabled) { return; } $response = Slack::handle($feed, $formData, $form, $entry); if ('success' === Arr::get($response, 'status')) { do_action('fluentform/integration_action_result', $feed, 'success', __('Slack feed has been successfully initialed and pushed data', 'fluentformpro')); } else { $error = Arr::get($response, 'message'); do_action('fluentform/integration_action_result', $feed, 'failed', $error); } } } app/Services/Integrations/Slack/Slack.php000064400000010703147600120010014350 0ustar00 $input) { if (empty($formData[$name])) { continue; } if ('tabular_grid' == ArrayHelper::get($input, 'element', '')) { $formData[$name] = Helper::getTabularGridFormatValue($formData[$name], $input, '
', ', ', 'markdown'); } } $formData = FormDataParser::parseData((object) $formData, $inputs, $form->id); $slackTitle = ArrayHelper::get($settings, 'textTitle'); if ('' === $slackTitle) { $title = 'New submission on ' . $form->title; } else { $title = $slackTitle; } $footerText = ArrayHelper::get($settings, 'footerText'); if ($footerText === '') { $footerText = "fluentform"; } $fields = []; foreach ($formData as $attribute => $value) { $value = str_replace('
', "\n", $value); $value = str_replace('&', '&', $value); $value = str_replace('<', '<', $value); $value = str_replace('>', '>', $value); if (! isset($labels[$attribute]) || empty($value)) { continue; } $fields[] = [ 'title' => $labels[$attribute], 'value' => $value, 'short' => false, ]; } $slackHook = ArrayHelper::get($settings, 'webhook'); $titleLink = admin_url( 'admin.php?page=fluent_forms&form_id=' . $form->id . '&route=entries#/entries/' . $entry->id ); $body = [ 'payload' => json_encode([ 'attachments' => [ [ 'color' => '#0078ff', 'fallback' => $title, 'title' => $title, 'title_link' => $titleLink, 'fields' => $fields, 'footer' => $footerText, 'ts' => round(microtime(true) * 1000) ] ] ]) ]; $result = wp_remote_post($slackHook, [ 'method' => 'POST', 'timeout' => 30, 'redirection' => 5, 'httpversion' => '1.0', 'headers' => [], 'body' => $body, 'cookies' => [], ]); if (is_wp_error($result)) { $status = 'failed'; $message = $result->get_error_message(); } else { $message = $result['response']; $status = 200 == $result['response']['code'] ? 'success' : 'failed'; } if ('failed' == $status) { do_action('fluentform/integration_action_result', $feed, 'failed', $message); } else { do_action('fluentform/integration_action_result', $feed, 'success', 'Submission notification has been successfully delivered to slack channel'); } return [ 'status' => $status, 'message' => $message, ]; } } app/Services/Integrations/GlobalIntegrationService.php000064400000006654147600120010017215 0ustar00 false, 'message'=> $message, 'integration' => $settings, 'settings' => $fieldSettings, ]; } if (!Arr::exists($fieldSettings,'save_button_text')) { $fieldSettings['save_button_text'] = __('Save Settings', 'fluentform'); } if (!Arr::exists($fieldSettings,'valid_message')) { $fieldSettings['valid_message'] = __('Your API Key is valid', 'fluentform'); } if (!Arr::exists($fieldSettings,'invalid_message')) { $fieldSettings['invalid_message'] = __('Your API Key is not valid', 'fluentform'); } return [ 'status' => true, 'integration' => $settings, 'settings' => $fieldSettings, ]; } public function isEnabled($integrationKey) { $globalModules = get_option('fluentform_global_modules_status'); $isEnabled = $globalModules && isset($globalModules[$integrationKey]) && 'yes' == $globalModules[$integrationKey]; return apply_filters('fluentform/is_integration_enabled_'.$integrationKey, $isEnabled); } /** * @param $args - key value pair array * @throws Exception * @return void */ public function updateModuleStatus($args) { $moduleKey = sanitize_text_field(Arr::get($args, 'module_key')); $moduleStatus = sanitize_text_field(Arr::get($args, 'module_status')); if (!$moduleKey || !in_array($moduleStatus, ['yes', 'no'])) { throw new Exception(__('Status updated failed. Not valid module or status', 'fluentform')); } try { $modules = (array)get_option('fluentform_global_modules_status'); $modules[$moduleKey] = $moduleStatus; update_option('fluentform_global_modules_status', $modules, 'no'); } catch (Exception $e) { throw new Exception($e->getMessage()); } } } app/Services/Integrations/BaseIntegration.php000064400000007532147600120010015342 0ustar00setting_key = $settings_key; $this->isMultiple = $isMultiple; $this->formId = $form_id; } public function setSettingsKey($key) { $this->setting_key = $key; } public function setIsMultiple($isMultiple) { $this->isMultiple = $isMultiple; } public function setFormId($formId) { $this->formId = $formId; } public function setJasonType($type) { $this->isJsonValue = $type; } public function save($settings) { return wpFluent()->table('fluentform_form_meta') ->insertGetId([ 'meta_key' => $this->setting_key, 'form_id' => $this->formId, 'value' => json_encode($settings), ]); } public function update($settingsId, $settings) { return wpFluent()->table('fluentform_form_meta') ->where('id', $settingsId) ->update([ 'value' => json_encode($settings), ]); } public function get($settingsId) { $settings = wpFluent()->table('fluentform_form_meta') ->where('form_id', $this->formId) ->where('meta_key', $this->setting_key) ->find($settingsId); $settings->formattedValue = $this->getFormattedValue($settings); return $settings; } public function getAll() { $settingsQuery = wpFluent()->table('fluentform_form_meta') ->where('form_id', $this->formId) ->where('meta_key', $this->setting_key); if ($this->isMultiple) { $settings = $settingsQuery->get(); foreach ($settings as $setting) { $setting->formattedValue = $this->getFormattedValue($setting); } } else { $settings = $settingsQuery->first(); $settings->formattedValue = $this->getFormattedValue($settings); } return $settings; } public function delete($settingsId) { return wpFluent()->table('fluentform_form_meta') ->where('meta_key', $this->setting_key) ->where('form_id', $this->formId) ->where('id', $settingsId) ->delete(); } protected function validate($notification) { $validate = fluentValidator($notification, [ 'name' => 'required', 'list_id' => 'required', 'fieldEmailAddress' => 'required', ], [ 'name.required' => __('Feed Name is required', 'fluentform'), 'list.required' => __(' List is required', 'fluentform'), 'fieldEmailAddress.required' => __('Email Address is required'), ])->validate(); if ($validate->fails()) { wp_send_json_error([ 'errors' => $validate->errors(), 'message' => __('Please fix the errors', 'fluentform'), ], 400); } return true; } private function getFormattedValue($setting) { if ($this->isJsonValue) { return json_decode($setting->value, true); } return $setting->value; } public function deleteAll() { // ... } } app/Services/Integrations/IntegrationManager.php000064400000000454147600120010016036 0ustar00app = $app; } public function globalNotify($insertId, $formData, $form) { $notifications = apply_filters_deprecated( 'fluentform_global_notification_active_types', [ [], $form->id ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/global_notification_active_types', 'Use fluentform/global_notification_active_types instead of fluentform_global_notification_active_types.' ); // Let's find the feeds that are available for this form $feedKeys = apply_filters('fluentform/global_notification_active_types', $notifications, $form->id); if (! $feedKeys) { do_action_deprecated( 'fluentform_global_notify_completed', [ $insertId, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/global_notify_completed', 'Use fluentform/global_notify_completed instead of fluentform_global_notify_completed.' ); do_action('fluentform/global_notify_completed', $insertId, $form); return; } $feedMetaKeys = array_keys($feedKeys); $feeds = FormMeta::where('form_id', $form->id) ->whereIn('meta_key', $feedMetaKeys) ->orderBy('id', 'ASC') ->get(); if (! $feeds) { do_action_deprecated( 'fluentform_global_notify_completed', [ $insertId, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/global_notify_completed', 'Use fluentform/global_notify_completed instead of fluentform_global_notify_completed.' ); do_action('fluentform/global_notify_completed', $insertId, $form); return; } // Now we have to filter the feeds which are enabled $enabledFeeds = $this->getEnabledFeeds($feeds, $formData, $insertId); if (! $enabledFeeds) { do_action_deprecated( 'fluentform_global_notify_completed', [ $insertId, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/global_notify_completed', 'Use fluentform/global_notify_completed instead of fluentform_global_notify_completed.' ); do_action('fluentform/global_notify_completed', $insertId, $form); return; } $entry = false; $asyncFeeds = []; foreach ($enabledFeeds as $feed) { // We will decide if this feed will run on async or sync $integrationKey = ArrayHelper::get($feedKeys, $feed['meta_key']); $action = 'fluentform/integration_notify_' . $feed['meta_key']; if (! $entry) { $entry = $this->getEntry($insertId, $form); } // skip emails which will be sent on payment form submit otherwise email is sent after payment success if (! ! $form->has_payment && ('notifications' == $feed['meta_key'])) { if (('payment_form_submit' == ArrayHelper::get($feed, 'settings.feed_trigger_event'))) { continue; } } // It's sync $processedValues = $feed['settings']; unset($processedValues['conditionals']); $processedValues = ShortCodeParser::parse($processedValues, $insertId, $formData, $form, false, $feed['meta_key']); $feed['processedValues'] = $processedValues; $isNotifyAsync = apply_filters_deprecated( 'fluentform/notifying_async_' . $integrationKey, [ true, $form->id ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/notifying_async_' . $integrationKey, 'Use fluentform/notifying_async_' . $integrationKey . ' instead of fluentform_notifying_async_' . $integrationKey ); $isNotifyAsync = apply_filters('fluentform/notifying_async_' . $integrationKey, $isNotifyAsync, $form->id); if ($isNotifyAsync) { // It's async $asyncFeeds[] = [ 'action' => $action, 'form_id' => $form->id, 'origin_id' => $insertId, 'feed_id' => $feed['id'], 'type' => 'submission_action', 'status' => 'pending', 'data' => maybe_serialize($feed), 'created_at' => current_time('mysql'), 'updated_at' => current_time('mysql'), ]; } else { do_action_deprecated( 'fluentform_integration_notify_' . $feed['meta_key'], [ $feed, $formData, $entry, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, $action, 'Use ' . $action . ' instead of fluentform_integration_notify_' . $feed['meta_key'] ); do_action($action, $feed, $formData, $entry, $form); } } if (! $asyncFeeds) { do_action_deprecated( 'fluentform_global_notify_completed', [ $insertId, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/global_notify_completed', 'Use fluentform/global_notify_completed instead of fluentform_global_notify_completed.' ); do_action('fluentform/global_notify_completed', $insertId, $form); return; } // Now we will push this async feeds $handler = $this->app['fluentFormAsyncRequest']; $handler->queueFeeds($asyncFeeds); $handler->dispatchAjax(['origin_id' => $insertId]); } public function checkCondition($parsedValue, $formData, $insertId) { $conditionSettings = ArrayHelper::get($parsedValue, 'conditionals'); if ( ! $conditionSettings || ! ArrayHelper::isTrue($conditionSettings, 'status') || ! count(ArrayHelper::get($conditionSettings, 'conditions')) ) { return true; } return ConditionAssesor::evaluate($parsedValue, $formData); } public function getEntry($id, $form) { $submission = Submission::find($id); $formInputs = FormFieldsParser::getEntryInputs($form, ['admin_label', 'raw']); return FormDataParser::parseFormEntry($submission, $form, $formInputs); } public function cleanUpPassword($entryId, $form) { // Let's get the password fields $inputs = FormFieldsParser::getInputsByElementTypes($form, ['input_password']); if (! $inputs) { return; } $passwordKeys = array_keys($inputs); // Let's delete from entry details EntryDetails::where('form_id', $form->id) ->whereIn('field_name', $passwordKeys) ->where('submission_id', $entryId) ->delete(); // Let's alter from main submission data $submission = Submission::where('id', $entryId) ->first(); if (! $submission) { return; } $responseInputs = \json_decode($submission->response, true); $replaced = false; foreach ($passwordKeys as $passwordKey) { if (! empty($responseInputs[$passwordKey])) { $responseInputs[$passwordKey] = str_repeat('*', 6) . ' ' . __('(truncated)', 'fluentform'); $replaced = true; } } if ($replaced) { Submission::where('id', $entryId) ->update([ 'response' => \json_encode($responseInputs), ]); } } /** * @param $feeds * @param $formData * @param $insertId * * @return array */ public function getEnabledFeeds($feeds, $formData, $insertId) { $enabledFeeds = []; foreach ($feeds as $feed) { $parsedValue = json_decode($feed->value, true); if ($parsedValue && ArrayHelper::isTrue($parsedValue, 'enabled')) { // Now check if conditions matched or not $isConditionMatched = $this->checkCondition($parsedValue, $formData, $insertId); if ($isConditionMatched) { $item = [ 'id' => $feed->id, 'meta_key' => $feed->meta_key, 'settings' => $parsedValue, ]; if ('user_registration_feeds' == $feed->meta_key) { array_unshift($enabledFeeds, $item); } else { $enabledFeeds[] = $item; } } } } return $enabledFeeds; } } app/Services/Integrations/GlobalNotificationService.php000064400000007112147600120010017346 0ustar00id)->where('field_name', $passwordKeys)->where('submission_id', $insertId)->delete(); // Let's alter from main submission data $submission = Submission::find($insertId); if (!$submission) { return; } $responseInputs = \json_decode($submission->response, true); $replaced = false; foreach ($passwordKeys as $passwordKey) { if (!empty($responseInputs[$passwordKey])) { $responseInputs[$passwordKey] = str_repeat('*', 6) . ' ' . __('(truncated)', 'fluentform'); $replaced = true; } } if ($replaced) { Submission::where('id', $insertId)->update(['response' => \json_encode($responseInputs)]); } } /** * @param $feeds * @param $formData * @param $insertId * * @return array */ public function getEnabledFeeds($feeds, $formData, $insertId) { $enabledFeeds = []; foreach ($feeds as $feed) { $parsedValue = json_decode($feed->value, true); if ($parsedValue && ArrayHelper::isTrue($parsedValue, 'enabled')) { // Now check if conditions matched or not $isConditionMatched = $this->checkCondition($parsedValue, $formData, $insertId); if ($isConditionMatched) { $item = [ 'id' => $feed->id, 'meta_key' => $feed->meta_key, 'settings' => $parsedValue, ]; if ('user_registration_feeds' == $feed->meta_key) { array_unshift($enabledFeeds, $item); } else { $enabledFeeds[] = $item; } } } } return $enabledFeeds; } public function getNotificationFeeds($form, $feedMetaKeys) { return FormMeta::where('form_id', $form->id)->whereIn('meta_key', $feedMetaKeys)->orderBy('id', 'ASC')->get(); } } app/Services/Integrations/FormIntegrationService.php000064400000025070147600120010016711 0ustar00 [ 'conditions' => [], 'status' => false, 'type' => 'all', ], 'enabled' => true, 'list_id' => '', 'list_name' => '', 'name' => '', 'merge_fields' => [], ]; $mergeFields = false; if ($integrationId) { $feed = FormMeta::where(['form_id' => $formId, 'id' => $integrationId])->first(); if ($feed->value) { $settings = json_decode($feed->value, true); $settings = apply_filters_deprecated( 'fluentform_get_integration_values_' . $integrationName, [ $settings, $feed, $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/get_integration_values_' . $integrationName, 'Use fluentform/get_integration_values_' . $integrationName . ' instead of fluentform_get_integration_values_' . $integrationName ); $settings = apply_filters('fluentform/get_integration_values_' . $integrationName, $settings, $feed, $formId); if (!empty($settings['list_id'])) { $mergeFields = apply_filters_deprecated( 'fluentform_get_integration_merge_fields_' . $integrationName, [ false, $settings['list_id'], $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/get_integration_merge_fields_' . $integrationName, 'Use fluentform/get_integration_merge_fields_' . $integrationName . ' instead of fluentform_get_integration_merge_fields_' . $integrationName ); $mergeFields = apply_filters('fluentform/get_integration_merge_fields_' . $integrationName, false, $settings['list_id'], $formId); } } } else { $settings = apply_filters_deprecated( 'fluentform_get_integration_defaults_' . $integrationName, [ false, $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/get_integration_defaults_' . $integrationName, 'Use fluentform/get_integration_defaults_' . $integrationName . ' instead of fluentform_get_integration_defaults_' . $integrationName ); $settings = apply_filters('fluentform/get_integration_defaults_' . $integrationName, $settings, $formId); } if ('true' == $settings['enabled']) { $settings['enabled'] = true; } elseif ('false' == $settings['enabled'] || $settings['enabled']) { $settings['enabled'] = false; } $settings = apply_filters_deprecated( 'fluentform_get_integration_settings_fields_' . $integrationName, [ $settings, $formId, $settings ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/get_integration_settings_fields_' . $integrationName, 'Use fluentform/get_integration_settings_fields_' . $integrationName . ' instead of fluentform_get_integration_settings_fields_' . $integrationName ); $settingsFields = apply_filters('fluentform/get_integration_settings_fields_' . $integrationName, $settings, $formId, $settings); return ([ 'settings' => $settings, 'settings_fields' => $settingsFields, 'merge_fields' => $mergeFields, ]); } public function update($attr) { $formId = intval(Arr::get($attr, 'form_id')); $integrationId = intval(Arr::get($attr, 'integration_id')); $integrationName = sanitize_text_field(Arr::get($attr, 'integration_name')); $dataType = sanitize_text_field(Arr::get($attr, 'data_type')); $status = Arr::get($attr, 'status', true); $metaValue = Arr::get($attr, 'integration'); if ('stringify' == $dataType) { $metaValue = \json_decode($metaValue, true); } else { $metaValue = wp_unslash($metaValue); } $isUpdatingStatus = empty($metaValue); if ($isUpdatingStatus) { $integrationData = FormMeta::findOrFail($integrationId); $metaValue = \json_decode($integrationData->value, true); $metaValue['enabled'] = $status; $metaKey = $integrationData->meta_key; } else { if (empty($metaValue['name'])) { $errors['name'] = [__('Feed name is required', 'fluentform')]; wp_send_json_error([ 'message' => __('Validation Failed! Feed name is required', 'fluentform'), 'errors' => $errors ], 423); } $metaValue = apply_filters_deprecated( 'fluentform_save_integration_value_' . $integrationName, [ $metaValue, $integrationId, $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/save_integration_value_' . $integrationName, 'Use fluentform/save_integration_value_' . $integrationName . ' instead of fluentform_save_integration_value_' . $integrationName ); $metaValue = apply_filters('fluentform/save_integration_value_' . $integrationName, $metaValue, $integrationId, $formId); $metaKey = $integrationName . '_feeds'; } $data = [ 'form_id' => $formId, 'meta_key' => $metaKey, 'value' => \json_encode($metaValue), ]; $data = apply_filters_deprecated( 'fluentform_save_integration_settings_' . $integrationName, [ $data, $integrationId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/save_integration_settings_' . $integrationName, 'Use fluentform/save_integration_settings_' . $integrationName . ' instead of fluentform_save_integration_settings_' . $integrationName ); $data = apply_filters('fluentform/save_integration_settings_' . $integrationName, $data, $integrationId); $created = false; if ($integrationId) { FormMeta::where('form_id', $formId) ->where('id', $integrationId) ->update($data); } else { $integrationId = FormMeta::insertGetId($data); $created = true; } return ([ 'message' => __('Integration successfully saved', 'fluentform'), 'integration_id' => $integrationId, 'integration_name' => $integrationName, 'created' => $created, ]); } public function get($formId) { $notificationKeys = apply_filters_deprecated( 'fluentform_global_notification_types', [ [], $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/global_notification_types', 'Use fluentform/global_notification_types instead of fluentform_global_notification_types.' ); $notificationKeys = apply_filters('fluentform/global_notification_types', $notificationKeys, $formId); $feeds = []; if ($notificationKeys) { $feeds = FormMeta::whereIn('meta_key', $notificationKeys)->where('form_id', $formId)->get(); } $formattedFeeds = []; if (!empty($feeds)) { foreach ($feeds as $feed) { $data = json_decode($feed->value, true); $enabled = $data['enabled']; if ($enabled && 'true' == $enabled) { $enabled = true; } elseif ('false' == $enabled) { $enabled = false; } $feedData = [ 'id' => $feed->id, 'name' => Arr::get($data, 'name'), 'enabled' => $enabled, 'provider' => $feed->meta_key, 'feed' => $data, ]; $feedData = apply_filters_deprecated( 'fluentform_global_notification_feed_' . $feed->meta_key, [ $feedData, $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/global_notification_feed_' . $feed->meta_key, 'Use fluentform/global_notification_feed_' . $feed->meta_key . ' instead of fluentform_global_notification_feed_' . $feed->meta_key ); $feedData = apply_filters('fluentform/global_notification_feed_' . $feed->meta_key, $feedData, $formId); $formattedFeeds[] = $feedData; } } $availableIntegrations = apply_filters_deprecated( 'fluentform_get_available_form_integrations', [ [], $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/get_available_form_integrations', 'Use fluentform/get_available_form_integrations instead of fluentform_get_available_form_integrations.' ); $availableIntegrations = apply_filters('fluentform/get_available_form_integrations', $availableIntegrations, $formId); return ([ 'feeds' => $formattedFeeds, 'available_integrations' => $availableIntegrations, 'all_module_config_url' => admin_url('admin.php?page=fluent_forms_add_ons'), ]); } public function delete($id) { FormMeta::where('id',$id)->delete(); } } app/Services/Integrations/LogResponseTrait.php000064400000002517147600120010015526 0ustar00getApiResponseMessage($response, $status) ], FLUENTFORM_FRAMEWORK_UPGRADE, $action, 'Use ' . $action . ' instead of fluentform_after_submission_api_response_'. $status ); do_action( $action, $form, $entryId, $data, $feed, $response, $this->getApiResponseMessage($response, $status) ); } protected function getApiResponseMessage($response, $status) { if (is_array($response) && isset($response['message'])) { return $response['message']; } return $status; } } app/Services/Libraries/action-scheduler/classes/WP_CLI/Migration_Command.php000064400000011304147600120010023014 0ustar00 'Migrates actions to the DB tables store', 'synopsis' => [ [ 'type' => 'assoc', 'name' => 'batch-size', 'optional' => true, 'default' => 100, 'description' => 'The number of actions to process in each batch', ], [ 'type' => 'assoc', 'name' => 'free-memory-on', 'optional' => true, 'default' => 50, 'description' => 'The number of actions to process between freeing memory. 0 disables freeing memory', ], [ 'type' => 'assoc', 'name' => 'pause', 'optional' => true, 'default' => 0, 'description' => 'The number of seconds to pause when freeing memory', ], [ 'type' => 'flag', 'name' => 'dry-run', 'optional' => true, 'description' => 'Reports on the actions that would have been migrated, but does not change any data', ], ], ] ); } /** * Process the data migration. * * @param array $positional_args Required for WP CLI. Not used in migration. * @param array $assoc_args Optional arguments. * * @return void */ public function migrate( $positional_args, $assoc_args ) { $this->init_logging(); $config = $this->get_migration_config( $assoc_args ); $runner = new Runner( $config ); $runner->init_destination(); $batch_size = isset( $assoc_args[ 'batch-size' ] ) ? (int) $assoc_args[ 'batch-size' ] : 100; $free_on = isset( $assoc_args[ 'free-memory-on' ] ) ? (int) $assoc_args[ 'free-memory-on' ] : 50; $sleep = isset( $assoc_args[ 'pause' ] ) ? (int) $assoc_args[ 'pause' ] : 0; \ActionScheduler_DataController::set_free_ticks( $free_on ); \ActionScheduler_DataController::set_sleep_time( $sleep ); do { $actions_processed = $runner->run( $batch_size ); $this->total_processed += $actions_processed; } while ( $actions_processed > 0 ); if ( ! $config->get_dry_run() ) { // let the scheduler know that there's nothing left to do $scheduler = new Scheduler(); $scheduler->mark_complete(); } WP_CLI::success( sprintf( '%s complete. %d actions processed.', $config->get_dry_run() ? 'Dry run' : 'Migration', $this->total_processed ) ); } /** * Build the config object used to create the Runner * * @param array $args Optional arguments. * * @return ActionScheduler\Migration\Config */ private function get_migration_config( $args ) { $args = wp_parse_args( $args, [ 'dry-run' => false, ] ); $config = Controller::instance()->get_migration_config_object(); $config->set_dry_run( ! empty( $args[ 'dry-run' ] ) ); return $config; } /** * Hook command line logging into migration actions. */ private function init_logging() { add_action( 'action_scheduler/migrate_action_dry_run', function ( $action_id ) { WP_CLI::debug( sprintf( 'Dry-run: migrated action %d', $action_id ) ); }, 10, 1 ); add_action( 'action_scheduler/no_action_to_migrate', function ( $action_id ) { WP_CLI::debug( sprintf( 'No action found to migrate for ID %d', $action_id ) ); }, 10, 1 ); add_action( 'action_scheduler/migrate_action_failed', function ( $action_id ) { WP_CLI::warning( sprintf( 'Failed migrating action with ID %d', $action_id ) ); }, 10, 1 ); add_action( 'action_scheduler/migrate_action_incomplete', function ( $source_id, $destination_id ) { WP_CLI::warning( sprintf( 'Unable to remove source action with ID %d after migrating to new ID %d', $source_id, $destination_id ) ); }, 10, 2 ); add_action( 'action_scheduler/migrated_action', function ( $source_id, $destination_id ) { WP_CLI::debug( sprintf( 'Migrated source action with ID %d to new store with ID %d', $source_id, $destination_id ) ); }, 10, 2 ); add_action( 'action_scheduler/migration_batch_starting', function ( $batch ) { WP_CLI::debug( 'Beginning migration of batch: ' . print_r( $batch, true ) ); }, 10, 1 ); add_action( 'action_scheduler/migration_batch_complete', function ( $batch ) { WP_CLI::log( sprintf( 'Completed migration of %d actions', count( $batch ) ) ); }, 10, 1 ); } } app/Services/Libraries/action-scheduler/classes/WP_CLI/ProgressBar.php000064400000004713147600120010021664 0ustar00total_ticks = 0; $this->message = $message; $this->count = $count; $this->interval = $interval; } /** * Increment the progress bar ticks. */ public function tick() { if ( null === $this->progress_bar ) { $this->setup_progress_bar(); } $this->progress_bar->tick(); $this->total_ticks++; do_action( 'action_scheduler/progress_tick', $this->total_ticks ); } /** * Get the progress bar tick count. * * @return int */ public function current() { return $this->progress_bar ? $this->progress_bar->current() : 0; } /** * Finish the current progress bar. */ public function finish() { if ( null !== $this->progress_bar ) { $this->progress_bar->finish(); } $this->progress_bar = null; } /** * Set the message used when creating the progress bar. * * @param string $message The message to be used when the next progress bar is created. */ public function set_message( $message ) { $this->message = $message; } /** * Set the count for a new progress bar. * * @param integer $count The total number of ticks expected to complete. */ public function set_count( $count ) { $this->count = $count; $this->finish(); } /** * Set up the progress bar. */ protected function setup_progress_bar() { $this->progress_bar = \WP_CLI\Utils\make_progress_bar( $this->message, $this->count, $this->interval ); } } app/Services/Libraries/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_Scheduler_command.php000064400000013354147600120010027142 0ustar00init(); $obj->register_tables( true ); WP_CLI::success( sprintf( /* translators: %s refers to the schema name*/ __( 'Registered schema for %s', 'woocommerce' ), $classname ) ); } } } /** * Run the Action Scheduler * * ## OPTIONS * * [--batch-size=] * : The maximum number of actions to run. Defaults to 100. * * [--batches=] * : Limit execution to a number of batches. Defaults to 0, meaning batches will continue being executed until all actions are complete. * * [--cleanup-batch-size=] * : The maximum number of actions to clean up. Defaults to the value of --batch-size. * * [--hooks=] * : Only run actions with the specified hook. Omitting this option runs actions with any hook. Define multiple hooks as a comma separated string (without spaces), e.g. `--hooks=hook_one,hook_two,hook_three` * * [--group=] * : Only run actions from the specified group. Omitting this option runs actions from all groups. * * [--free-memory-on=] * : The number of actions to process between freeing memory. 0 disables freeing memory. Default 50. * * [--pause=] * : The number of seconds to pause when freeing memory. Default no pause. * * [--force] * : Whether to force execution despite the maximum number of concurrent processes being exceeded. * * @param array $args Positional arguments. * @param array $assoc_args Keyed arguments. * @throws \WP_CLI\ExitException When an error occurs. * * @subcommand run */ public function run( $args, $assoc_args ) { // Handle passed arguments. $batch = absint( \WP_CLI\Utils\get_flag_value( $assoc_args, 'batch-size', 100 ) ); $batches = absint( \WP_CLI\Utils\get_flag_value( $assoc_args, 'batches', 0 ) ); $clean = absint( \WP_CLI\Utils\get_flag_value( $assoc_args, 'cleanup-batch-size', $batch ) ); $hooks = explode( ',', WP_CLI\Utils\get_flag_value( $assoc_args, 'hooks', '' ) ); $hooks = array_filter( array_map( 'trim', $hooks ) ); $group = \WP_CLI\Utils\get_flag_value( $assoc_args, 'group', '' ); $free_on = \WP_CLI\Utils\get_flag_value( $assoc_args, 'free-memory-on', 50 ); $sleep = \WP_CLI\Utils\get_flag_value( $assoc_args, 'pause', 0 ); $force = \WP_CLI\Utils\get_flag_value( $assoc_args, 'force', false ); ActionScheduler_DataController::set_free_ticks( $free_on ); ActionScheduler_DataController::set_sleep_time( $sleep ); $batches_completed = 0; $actions_completed = 0; $unlimited = $batches === 0; try { // Custom queue cleaner instance. $cleaner = new ActionScheduler_QueueCleaner( null, $clean ); // Get the queue runner instance $runner = new ActionScheduler_WPCLI_QueueRunner( null, null, $cleaner ); // Determine how many tasks will be run in the first batch. $total = $runner->setup( $batch, $hooks, $group, $force ); // Run actions for as long as possible. while ( $total > 0 ) { $this->print_total_actions( $total ); $actions_completed += $runner->run(); $batches_completed++; // Maybe set up tasks for the next batch. $total = ( $unlimited || $batches_completed < $batches ) ? $runner->setup( $batch, $hooks, $group, $force ) : 0; } } catch ( Exception $e ) { $this->print_error( $e ); } $this->print_total_batches( $batches_completed ); $this->print_success( $actions_completed ); } /** * Print WP CLI message about how many actions are about to be processed. * * @author Jeremy Pry * * @param int $total */ protected function print_total_actions( $total ) { WP_CLI::log( sprintf( /* translators: %d refers to how many scheduled taks were found to run */ _n( 'Found %d scheduled task', 'Found %d scheduled tasks', $total, 'woocommerce' ), number_format_i18n( $total ) ) ); } /** * Print WP CLI message about how many batches of actions were processed. * * @author Jeremy Pry * * @param int $batches_completed */ protected function print_total_batches( $batches_completed ) { WP_CLI::log( sprintf( /* translators: %d refers to the total number of batches executed */ _n( '%d batch executed.', '%d batches executed.', $batches_completed, 'woocommerce' ), number_format_i18n( $batches_completed ) ) ); } /** * Convert an exception into a WP CLI error. * * @author Jeremy Pry * * @param Exception $e The error object. * * @throws \WP_CLI\ExitException */ protected function print_error( Exception $e ) { WP_CLI::error( sprintf( /* translators: %s refers to the exception error message */ __( 'There was an error running the action scheduler: %s', 'woocommerce' ), $e->getMessage() ) ); } /** * Print a success message with the number of completed actions. * * @author Jeremy Pry * * @param int $actions_completed */ protected function print_success( $actions_completed ) { WP_CLI::success( sprintf( /* translators: %d refers to the total number of taskes completed */ _n( '%d scheduled task completed.', '%d scheduled tasks completed.', $actions_completed, 'woocommerce' ), number_format_i18n( $actions_completed ) ) ); } } app/Services/Libraries/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_QueueRunner.php000064400000014175147600120010026006 0ustar00run_cleanup(); $this->add_hooks(); // Check to make sure there aren't too many concurrent processes running. if ( $this->has_maximum_concurrent_batches() ) { if ( $force ) { WP_CLI::warning( __( 'There are too many concurrent batches, but the run is forced to continue.', 'woocommerce' ) ); } else { WP_CLI::error( __( 'There are too many concurrent batches.', 'woocommerce' ) ); } } // Stake a claim and store it. $this->claim = $this->store->stake_claim( $batch_size, null, $hooks, $group ); $this->monitor->attach( $this->claim ); $this->actions = $this->claim->get_actions(); return count( $this->actions ); } /** * Add our hooks to the appropriate actions. * * @author Jeremy Pry */ protected function add_hooks() { add_action( 'action_scheduler_before_execute', array( $this, 'before_execute' ) ); add_action( 'action_scheduler_after_execute', array( $this, 'after_execute' ), 10, 2 ); add_action( 'action_scheduler_failed_execution', array( $this, 'action_failed' ), 10, 2 ); } /** * Set up the WP CLI progress bar. * * @author Jeremy Pry */ protected function setup_progress_bar() { $count = count( $this->actions ); $this->progress_bar = new ProgressBar( /* translators: %d: amount of actions */ sprintf( _n( 'Running %d action', 'Running %d actions', $count, 'woocommerce' ), number_format_i18n( $count ) ), $count ); } /** * Process actions in the queue. * * @author Jeremy Pry * * @param string $context Optional runner context. Default 'WP CLI'. * * @return int The number of actions processed. */ public function run( $context = 'WP CLI' ) { do_action( 'action_scheduler_before_process_queue' ); $this->setup_progress_bar(); foreach ( $this->actions as $action_id ) { // Error if we lost the claim. if ( ! in_array( $action_id, $this->store->find_actions_by_claim_id( $this->claim->get_id() ) ) ) { WP_CLI::warning( __( 'The claim has been lost. Aborting current batch.', 'woocommerce' ) ); break; } $this->process_action( $action_id, $context ); $this->progress_bar->tick(); } $completed = $this->progress_bar->current(); $this->progress_bar->finish(); $this->store->release_claim( $this->claim ); do_action( 'action_scheduler_after_process_queue' ); return $completed; } /** * Handle WP CLI message when the action is starting. * * @author Jeremy Pry * * @param $action_id */ public function before_execute( $action_id ) { /* translators: %s refers to the action ID */ WP_CLI::log( sprintf( __( 'Started processing action %s', 'woocommerce' ), $action_id ) ); } /** * Handle WP CLI message when the action has completed. * * @author Jeremy Pry * * @param int $action_id * @param null|ActionScheduler_Action $action The instance of the action. Default to null for backward compatibility. */ public function after_execute( $action_id, $action = null ) { // backward compatibility if ( null === $action ) { $action = $this->store->fetch_action( $action_id ); } /* translators: 1: action ID 2: hook name */ WP_CLI::log( sprintf( __( 'Completed processing action %1$s with hook: %2$s', 'woocommerce' ), $action_id, $action->get_hook() ) ); } /** * Handle WP CLI message when the action has failed. * * @author Jeremy Pry * * @param int $action_id * @param Exception $exception * @throws \WP_CLI\ExitException With failure message. */ public function action_failed( $action_id, $exception ) { WP_CLI::error( /* translators: 1: action ID 2: exception message */ sprintf( __( 'Error processing action %1$s: %2$s', 'woocommerce' ), $action_id, $exception->getMessage() ), false ); } /** * Sleep and help avoid hitting memory limit * * @param int $sleep_time Amount of seconds to sleep * @deprecated 3.0.0 */ protected function stop_the_insanity( $sleep_time = 0 ) { _deprecated_function( 'ActionScheduler_WPCLI_QueueRunner::stop_the_insanity', '3.0.0', 'ActionScheduler_DataController::free_memory' ); ActionScheduler_DataController::free_memory(); } /** * Maybe trigger the stop_the_insanity() method to free up memory. */ protected function maybe_stop_the_insanity() { // The value returned by progress_bar->current() might be padded. Remove padding, and convert to int. $current_iteration = intval( trim( $this->progress_bar->current() ) ); if ( 0 === $current_iteration % 50 ) { $this->stop_the_insanity(); } } } Services/Libraries/action-scheduler/classes/abstracts/ActionScheduler_Abstract_RecurringSchedule.php000064400000006146147600120010030723 0ustar00appstart - and logic to calculate the next run date after * that - @see $this->calculate_next(). The $first_date property also keeps a record of when the very * first instance of this chain of schedules ran. * * @var DateTime */ private $first_date = NULL; /** * Timestamp equivalent of @see $this->first_date * * @var int */ protected $first_timestamp = NULL; /** * The recurrance between each time an action is run using this schedule. * Used to calculate the start date & time. Can be a number of seconds, in the * case of ActionScheduler_IntervalSchedule, or a cron expression, as in the * case of ActionScheduler_CronSchedule. Or something else. * * @var mixed */ protected $recurrence; /** * @param DateTime $date The date & time to run the action. * @param mixed $recurrence The data used to determine the schedule's recurrance. * @param DateTime|null $first (Optional) The date & time the first instance of this interval schedule ran. Default null, meaning this is the first instance. */ public function __construct( DateTime $date, $recurrence, DateTime $first = null ) { parent::__construct( $date ); $this->first_date = empty( $first ) ? $date : $first; $this->recurrence = $recurrence; } /** * @return bool */ public function is_recurring() { return true; } /** * Get the date & time of the first schedule in this recurring series. * * @return DateTime|null */ public function get_first_date() { return clone $this->first_date; } /** * @return string */ public function get_recurrence() { return $this->recurrence; } /** * For PHP 5.2 compat, since DateTime objects can't be serialized * @return array */ public function __sleep() { $sleep_params = parent::__sleep(); $this->first_timestamp = $this->first_date->getTimestamp(); return array_merge( $sleep_params, array( 'first_timestamp', 'recurrence' ) ); } /** * Unserialize recurring schedules serialized/stored prior to AS 3.0.0 * * Prior to Action Scheduler 3.0.0, schedules used different property names to refer * to equivalent data. For example, ActionScheduler_IntervalSchedule::start_timestamp * was the same as ActionScheduler_SimpleSchedule::timestamp. This was addressed in * Action Scheduler 3.0.0, where properties and property names were aligned for better * inheritance. To maintain backward compatibility with scheduled serialized and stored * prior to 3.0, we need to correctly map the old property names. */ public function __wakeup() { parent::__wakeup(); if ( $this->first_timestamp > 0 ) { $this->first_date = as_get_datetime_object( $this->first_timestamp ); } else { $this->first_date = $this->get_date(); } } } app/Services/Libraries/action-scheduler/classes/abstracts/ActionScheduler_Store.php000064400000031717147600120010024640 0ustar00 null, 'status' => self::STATUS_PENDING, 'group' => '', ) ); // These params are fixed for this method. $params['hook'] = $hook; $params['orderby'] = 'date'; $params['per_page'] = 1; if ( ! empty( $params['status'] ) ) { if ( self::STATUS_PENDING === $params['status'] ) { $params['order'] = 'ASC'; // Find the next action that matches. } else { $params['order'] = 'DESC'; // Find the most recent action that matches. } } $results = $this->query_actions( $params ); return empty( $results ) ? null : $results[0]; } /** * Query for action count or list of action IDs. * * @since 3.3.0 $query['status'] accepts array of statuses instead of a single status. * * @param array $query { * Query filtering options. * * @type string $hook The name of the actions. Optional. * @type string|array $status The status or statuses of the actions. Optional. * @type array $args The args array of the actions. Optional. * @type DateTime $date The scheduled date of the action. Used in UTC timezone. Optional. * @type string $date_compare Operator for selecting by $date param. Accepted values are '!=', '>', '>=', '<', '<=', '='. Defaults to '<='. * @type DateTime $modified The last modified date of the action. Used in UTC timezone. Optional. * @type string $modified_compare Operator for comparing $modified param. Accepted values are '!=', '>', '>=', '<', '<=', '='. Defaults to '<='. * @type string $group The group the action belongs to. Optional. * @type bool|int $claimed TRUE to find claimed actions, FALSE to find unclaimed actions, an int to find a specific claim ID. Optional. * @type int $per_page Number of results to return. Defaults to 5. * @type int $offset The query pagination offset. Defaults to 0. * @type int $orderby Accepted values are 'hook', 'group', 'modified', 'date' or 'none'. Defaults to 'date'. * @type string $order Accepted values are 'ASC' or 'DESC'. Defaults to 'ASC'. * } * @param string $query_type Whether to select or count the results. Default, select. * * @return string|array|null The IDs of actions matching the query. Null on failure. */ abstract public function query_actions( $query = array(), $query_type = 'select' ); /** * Run query to get a single action ID. * * @since 3.3.0 * * @see ActionScheduler_Store::query_actions for $query arg usage but 'per_page' and 'offset' can't be used. * * @param array $query Query parameters. * * @return int|null */ public function query_action( $query ) { $query['per_page'] = 1; $query['offset'] = 0; $results = $this->query_actions( $query ); if ( empty( $results ) ) { return null; } else { return (int) $results[0]; } } /** * Get a count of all actions in the store, grouped by status * * @return array */ abstract public function action_counts(); /** * Get additional action counts. * * - add past-due actions * * @return array */ public function extra_action_counts() { $extra_actions = array(); $pastdue_action_counts = ( int ) $this->query_actions( array( 'status' => self::STATUS_PENDING, 'date' => as_get_datetime_object(), ), 'count' ); if ( $pastdue_action_counts ) { $extra_actions['past-due'] = $pastdue_action_counts; } /** * Allows 3rd party code to add extra action counts (used in filters in the list table). * * @since 3.5.0 * @param $extra_actions array Array with format action_count_identifier => action count. */ return apply_filters( 'action_scheduler_extra_action_counts', $extra_actions ); } /** * @param string $action_id */ abstract public function cancel_action( $action_id ); /** * @param string $action_id */ abstract public function delete_action( $action_id ); /** * @param string $action_id * * @return DateTime The date the action is schedule to run, or the date that it ran. */ abstract public function get_date( $action_id ); /** * @param int $max_actions * @param DateTime $before_date Claim only actions schedule before the given date. Defaults to now. * @param array $hooks Claim only actions with a hook or hooks. * @param string $group Claim only actions in the given group. * * @return ActionScheduler_ActionClaim */ abstract public function stake_claim( $max_actions = 10, DateTime $before_date = null, $hooks = array(), $group = '' ); /** * @return int */ abstract public function get_claim_count(); /** * @param ActionScheduler_ActionClaim $claim */ abstract public function release_claim( ActionScheduler_ActionClaim $claim ); /** * @param string $action_id */ abstract public function unclaim_action( $action_id ); /** * @param string $action_id */ abstract public function mark_failure( $action_id ); /** * @param string $action_id */ abstract public function log_execution( $action_id ); /** * @param string $action_id */ abstract public function mark_complete( $action_id ); /** * @param string $action_id * * @return string */ abstract public function get_status( $action_id ); /** * @param string $action_id * @return mixed */ abstract public function get_claim_id( $action_id ); /** * @param string $claim_id * @return array */ abstract public function find_actions_by_claim_id( $claim_id ); /** * @param string $comparison_operator * @return string */ protected function validate_sql_comparator( $comparison_operator ) { if ( in_array( $comparison_operator, array('!=', '>', '>=', '<', '<=', '=') ) ) { return $comparison_operator; } return '='; } /** * Get the time MySQL formated date/time string for an action's (next) scheduled date. * * @param ActionScheduler_Action $action * @param DateTime $scheduled_date (optional) * @return string */ protected function get_scheduled_date_string( ActionScheduler_Action $action, DateTime $scheduled_date = NULL ) { $next = null === $scheduled_date ? $action->get_schedule()->get_date() : $scheduled_date; if ( ! $next ) { $next = date_create(); } $next->setTimezone( new DateTimeZone( 'UTC' ) ); return $next->format( 'Y-m-d H:i:s' ); } /** * Get the time MySQL formated date/time string for an action's (next) scheduled date. * * @param ActionScheduler_Action $action * @param DateTime $scheduled_date (optional) * @return string */ protected function get_scheduled_date_string_local( ActionScheduler_Action $action, DateTime $scheduled_date = NULL ) { $next = null === $scheduled_date ? $action->get_schedule()->get_date() : $scheduled_date; if ( ! $next ) { $next = date_create(); } ActionScheduler_TimezoneHelper::set_local_timezone( $next ); return $next->format( 'Y-m-d H:i:s' ); } /** * Validate that we could decode action arguments. * * @param mixed $args The decoded arguments. * @param int $action_id The action ID. * * @throws ActionScheduler_InvalidActionException When the decoded arguments are invalid. */ protected function validate_args( $args, $action_id ) { // Ensure we have an array of args. if ( ! is_array( $args ) ) { throw ActionScheduler_InvalidActionException::from_decoding_args( $action_id ); } // Validate JSON decoding if possible. if ( function_exists( 'json_last_error' ) && JSON_ERROR_NONE !== json_last_error() ) { throw ActionScheduler_InvalidActionException::from_decoding_args( $action_id, $args ); } } /** * Validate a ActionScheduler_Schedule object. * * @param mixed $schedule The unserialized ActionScheduler_Schedule object. * @param int $action_id The action ID. * * @throws ActionScheduler_InvalidActionException When the schedule is invalid. */ protected function validate_schedule( $schedule, $action_id ) { if ( empty( $schedule ) || ! is_a( $schedule, 'ActionScheduler_Schedule' ) ) { throw ActionScheduler_InvalidActionException::from_schedule( $action_id, $schedule ); } } /** * InnoDB indexes have a maximum size of 767 bytes by default, which is only 191 characters with utf8mb4. * * Previously, AS wasn't concerned about args length, as we used the (unindex) post_content column. However, * with custom tables, we use an indexed VARCHAR column instead. * * @param ActionScheduler_Action $action Action to be validated. * @throws InvalidArgumentException When json encoded args is too long. */ protected function validate_action( ActionScheduler_Action $action ) { if ( strlen( json_encode( $action->get_args() ) ) > static::$max_args_length ) { throw new InvalidArgumentException( sprintf( __( 'ActionScheduler_Action::$args too long. To ensure the args column can be indexed, action args should not be more than %d characters when encoded as JSON.', 'woocommerce' ), static::$max_args_length ) ); } } /** * Cancel pending actions by hook. * * @since 3.0.0 * * @param string $hook Hook name. * * @return void */ public function cancel_actions_by_hook( $hook ) { $action_ids = true; while ( ! empty( $action_ids ) ) { $action_ids = $this->query_actions( array( 'hook' => $hook, 'status' => self::STATUS_PENDING, 'per_page' => 1000, 'orderby' => 'action_id', ) ); $this->bulk_cancel_actions( $action_ids ); } } /** * Cancel pending actions by group. * * @since 3.0.0 * * @param string $group Group slug. * * @return void */ public function cancel_actions_by_group( $group ) { $action_ids = true; while ( ! empty( $action_ids ) ) { $action_ids = $this->query_actions( array( 'group' => $group, 'status' => self::STATUS_PENDING, 'per_page' => 1000, 'orderby' => 'action_id', ) ); $this->bulk_cancel_actions( $action_ids ); } } /** * Cancel a set of action IDs. * * @since 3.0.0 * * @param array $action_ids List of action IDs. * * @return void */ private function bulk_cancel_actions( $action_ids ) { foreach ( $action_ids as $action_id ) { $this->cancel_action( $action_id ); } do_action( 'action_scheduler_bulk_cancel_actions', $action_ids ); } /** * @return array */ public function get_status_labels() { return array( self::STATUS_COMPLETE => __( 'Complete', 'woocommerce' ), self::STATUS_PENDING => __( 'Pending', 'woocommerce' ), self::STATUS_RUNNING => __( 'In-progress', 'woocommerce' ), self::STATUS_FAILED => __( 'Failed', 'woocommerce' ), self::STATUS_CANCELED => __( 'Canceled', 'woocommerce' ), ); } /** * Check if there are any pending scheduled actions due to run. * * @param ActionScheduler_Action $action * @param DateTime $scheduled_date (optional) * @return string */ public function has_pending_actions_due() { $pending_actions = $this->query_actions( array( 'date' => as_get_datetime_object(), 'status' => ActionScheduler_Store::STATUS_PENDING, 'orderby' => 'none', ) ); return ! empty( $pending_actions ); } /** * Callable initialization function optionally overridden in derived classes. */ public function init() {} /** * Callable function to mark an action as migrated optionally overridden in derived classes. */ public function mark_migrated( $action_id ) {} /** * @return ActionScheduler_Store */ public static function instance() { if ( empty( self::$store ) ) { $class = apply_filters( 'action_scheduler_store_class', self::DEFAULT_CLASS ); self::$store = new $class(); } return self::$store; } } app/Services/Libraries/action-scheduler/classes/abstracts/ActionScheduler.php000064400000021055147600120010023456 0ustar00init(); $store->init(); $logger->init(); $runner->init(); } if ( apply_filters( 'action_scheduler_load_deprecated_functions', true ) ) { require_once( self::plugin_path( 'deprecated/functions.php' ) ); } if ( defined( 'WP_CLI' ) && WP_CLI ) { WP_CLI::add_command( 'action-scheduler', 'ActionScheduler_WPCLI_Scheduler_command' ); if ( ! ActionScheduler_DataController::is_migration_complete() && Controller::instance()->allow_migration() ) { $command = new Migration_Command(); $command->register(); } } self::$data_store_initialized = true; /** * Handle WP comment cleanup after migration. */ if ( is_a( $logger, 'ActionScheduler_DBLogger' ) && ActionScheduler_DataController::is_migration_complete() && ActionScheduler_WPCommentCleaner::has_logs() ) { ActionScheduler_WPCommentCleaner::init(); } add_action( 'action_scheduler/migration_complete', 'ActionScheduler_WPCommentCleaner::maybe_schedule_cleanup' ); } /** * Check whether the AS data store has been initialized. * * @param string $function_name The name of the function being called. Optional. Default `null`. * @return bool */ public static function is_initialized( $function_name = null ) { if ( ! self::$data_store_initialized && ! empty( $function_name ) ) { $message = sprintf( __( '%s() was called before the Action Scheduler data store was initialized', 'woocommerce' ), esc_attr( $function_name ) ); error_log( $message, E_WARNING ); } return self::$data_store_initialized; } /** * Determine if the class is one of our abstract classes. * * @since 3.0.0 * * @param string $class The class name. * * @return bool */ protected static function is_class_abstract( $class ) { static $abstracts = array( 'ActionScheduler' => true, 'ActionScheduler_Abstract_ListTable' => true, 'ActionScheduler_Abstract_QueueRunner' => true, 'ActionScheduler_Abstract_Schedule' => true, 'ActionScheduler_Abstract_RecurringSchedule' => true, 'ActionScheduler_Lock' => true, 'ActionScheduler_Logger' => true, 'ActionScheduler_Abstract_Schema' => true, 'ActionScheduler_Store' => true, 'ActionScheduler_TimezoneHelper' => true, ); return isset( $abstracts[ $class ] ) && $abstracts[ $class ]; } /** * Determine if the class is one of our migration classes. * * @since 3.0.0 * * @param string $class The class name. * * @return bool */ protected static function is_class_migration( $class ) { static $migration_segments = array( 'ActionMigrator' => true, 'BatchFetcher' => true, 'DBStoreMigrator' => true, 'DryRun' => true, 'LogMigrator' => true, 'Config' => true, 'Controller' => true, 'Runner' => true, 'Scheduler' => true, ); $segments = explode( '_', $class ); $segment = isset( $segments[ 1 ] ) ? $segments[ 1 ] : $class; return isset( $migration_segments[ $segment ] ) && $migration_segments[ $segment ]; } /** * Determine if the class is one of our WP CLI classes. * * @since 3.0.0 * * @param string $class The class name. * * @return bool */ protected static function is_class_cli( $class ) { static $cli_segments = array( 'QueueRunner' => true, 'Command' => true, 'ProgressBar' => true, ); $segments = explode( '_', $class ); $segment = isset( $segments[ 1 ] ) ? $segments[ 1 ] : $class; return isset( $cli_segments[ $segment ] ) && $cli_segments[ $segment ]; } final public function __clone() { trigger_error("Singleton. No cloning allowed!", E_USER_ERROR); } final public function __wakeup() { trigger_error("Singleton. No serialization allowed!", E_USER_ERROR); } final private function __construct() {} /** Deprecated **/ public static function get_datetime_object( $when = null, $timezone = 'UTC' ) { _deprecated_function( __METHOD__, '2.0', 'wcs_add_months()' ); return as_get_datetime_object( $when, $timezone ); } /** * Issue deprecated warning if an Action Scheduler function is called in the shutdown hook. * * @param string $function_name The name of the function being called. * @deprecated 3.1.6. */ public static function check_shutdown_hook( $function_name ) { _deprecated_function( __FUNCTION__, '3.1.6' ); } } app/Services/Libraries/action-scheduler/classes/abstracts/ActionScheduler_TimezoneHelper.php000064400000010476147600120010026475 0ustar00format( 'U' ) ); } if ( get_option( 'timezone_string' ) ) { $date->setTimezone( new DateTimeZone( self::get_local_timezone_string() ) ); } else { $date->setUtcOffset( self::get_local_timezone_offset() ); } return $date; } /** * Helper to retrieve the timezone string for a site until a WP core method exists * (see https://core.trac.wordpress.org/ticket/24730). * * Adapted from wc_timezone_string() and https://secure.php.net/manual/en/function.timezone-name-from-abbr.php#89155. * * If no timezone string is set, and its not possible to match the UTC offset set for the site to a timezone * string, then an empty string will be returned, and the UTC offset should be used to set a DateTime's * timezone. * * @since 2.1.0 * @return string PHP timezone string for the site or empty if no timezone string is available. */ protected static function get_local_timezone_string( $reset = false ) { // If site timezone string exists, return it. $timezone = get_option( 'timezone_string' ); if ( $timezone ) { return $timezone; } // Get UTC offset, if it isn't set then return UTC. $utc_offset = intval( get_option( 'gmt_offset', 0 ) ); if ( 0 === $utc_offset ) { return 'UTC'; } // Adjust UTC offset from hours to seconds. $utc_offset *= 3600; // Attempt to guess the timezone string from the UTC offset. $timezone = timezone_name_from_abbr( '', $utc_offset ); if ( $timezone ) { return $timezone; } // Last try, guess timezone string manually. foreach ( timezone_abbreviations_list() as $abbr ) { foreach ( $abbr as $city ) { if ( (bool) date( 'I' ) === (bool) $city['dst'] && $city['timezone_id'] && intval( $city['offset'] ) === $utc_offset ) { return $city['timezone_id']; } } } // No timezone string return ''; } /** * Get timezone offset in seconds. * * @since 2.1.0 * @return float */ protected static function get_local_timezone_offset() { $timezone = get_option( 'timezone_string' ); if ( $timezone ) { $timezone_object = new DateTimeZone( $timezone ); return $timezone_object->getOffset( new DateTime( 'now' ) ); } else { return floatval( get_option( 'gmt_offset', 0 ) ) * HOUR_IN_SECONDS; } } /** * @deprecated 2.1.0 */ public static function get_local_timezone( $reset = FALSE ) { _deprecated_function( __FUNCTION__, '2.1.0', 'ActionScheduler_TimezoneHelper::set_local_timezone()' ); if ( $reset ) { self::$local_timezone = NULL; } if ( !isset(self::$local_timezone) ) { $tzstring = get_option('timezone_string'); if ( empty($tzstring) ) { $gmt_offset = get_option('gmt_offset'); if ( $gmt_offset == 0 ) { $tzstring = 'UTC'; } else { $gmt_offset *= HOUR_IN_SECONDS; $tzstring = timezone_name_from_abbr( '', $gmt_offset, 1 ); // If there's no timezone string, try again with no DST. if ( false === $tzstring ) { $tzstring = timezone_name_from_abbr( '', $gmt_offset, 0 ); } // Try mapping to the first abbreviation we can find. if ( false === $tzstring ) { $is_dst = date( 'I' ); foreach ( timezone_abbreviations_list() as $abbr ) { foreach ( $abbr as $city ) { if ( $city['dst'] == $is_dst && $city['offset'] == $gmt_offset ) { // If there's no valid timezone ID, keep looking. if ( null === $city['timezone_id'] ) { continue; } $tzstring = $city['timezone_id']; break 2; } } } } // If we still have no valid string, then fall back to UTC. if ( false === $tzstring ) { $tzstring = 'UTC'; } } } self::$local_timezone = new DateTimeZone($tzstring); } return self::$local_timezone; } } app/Services/Libraries/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schema.php000064400000011041147600120010026553 0ustar00tables as $table ) { $wpdb->tables[] = $table; $name = $this->get_full_table_name( $table ); $wpdb->$table = $name; } // create the tables if ( $this->schema_update_required() || $force_update ) { foreach ( $this->tables as $table ) { /** * Allow custom processing before updating a table schema. * * @param string $table Name of table being updated. * @param string $db_version Existing version of the table being updated. */ do_action( 'action_scheduler_before_schema_update', $table, $this->db_version ); $this->update_table( $table ); } $this->mark_schema_update_complete(); } } /** * @param string $table The name of the table * * @return string The CREATE TABLE statement, suitable for passing to dbDelta */ abstract protected function get_table_definition( $table ); /** * Determine if the database schema is out of date * by comparing the integer found in $this->schema_version * with the option set in the WordPress options table * * @return bool */ private function schema_update_required() { $option_name = 'schema-' . static::class; $this->db_version = get_option( $option_name, 0 ); // Check for schema option stored by the Action Scheduler Custom Tables plugin in case site has migrated from that plugin with an older schema if ( 0 === $this->db_version ) { $plugin_option_name = 'schema-'; switch ( static::class ) { case 'ActionScheduler_StoreSchema' : $plugin_option_name .= 'Action_Scheduler\Custom_Tables\DB_Store_Table_Maker'; break; case 'ActionScheduler_LoggerSchema' : $plugin_option_name .= 'Action_Scheduler\Custom_Tables\DB_Logger_Table_Maker'; break; } $this->db_version = get_option( $plugin_option_name, 0 ); delete_option( $plugin_option_name ); } return version_compare( $this->db_version, $this->schema_version, '<' ); } /** * Update the option in WordPress to indicate that * our schema is now up to date * * @return void */ private function mark_schema_update_complete() { $option_name = 'schema-' . static::class; // work around race conditions and ensure that our option updates $value_to_save = (string) $this->schema_version . '.0.' . time(); update_option( $option_name, $value_to_save ); } /** * Update the schema for the given table * * @param string $table The name of the table to update * * @return void */ private function update_table( $table ) { require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); $definition = $this->get_table_definition( $table ); if ( $definition ) { $updated = dbDelta( $definition ); foreach ( $updated as $updated_table => $update_description ) { if ( strpos( $update_description, 'Created table' ) === 0 ) { do_action( 'action_scheduler/created_table', $updated_table, $table ); } } } } /** * @param string $table * * @return string The full name of the table, including the * table prefix for the current blog */ protected function get_full_table_name( $table ) { return $GLOBALS[ 'wpdb' ]->prefix . $table; } /** * Confirms that all of the tables registered by this schema class have been created. * * @return bool */ public function tables_exist() { global $wpdb; $existing_tables = $wpdb->get_col( 'SHOW TABLES' ); $expected_tables = array_map( function ( $table_name ) use ( $wpdb ) { return $wpdb->prefix . $table_name; }, $this->tables ); return count( array_intersect( $existing_tables, $expected_tables ) ) === count( $expected_tables ); } } app/Services/Libraries/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php000064400000025177147600120010027650 0ustar00created_time = microtime( true ); $this->store = $store ? $store : ActionScheduler_Store::instance(); $this->monitor = $monitor ? $monitor : new ActionScheduler_FatalErrorMonitor( $this->store ); $this->cleaner = $cleaner ? $cleaner : new ActionScheduler_QueueCleaner( $this->store ); } /** * Process an individual action. * * @param int $action_id The action ID to process. * @param string $context Optional identifer for the context in which this action is being processed, e.g. 'WP CLI' or 'WP Cron' * Generally, this should be capitalised and not localised as it's a proper noun. */ public function process_action( $action_id, $context = '' ) { try { $valid_action = false; do_action( 'action_scheduler_before_execute', $action_id, $context ); if ( ActionScheduler_Store::STATUS_PENDING !== $this->store->get_status( $action_id ) ) { do_action( 'action_scheduler_execution_ignored', $action_id, $context ); return; } $valid_action = true; do_action( 'action_scheduler_begin_execute', $action_id, $context ); $action = $this->store->fetch_action( $action_id ); $this->store->log_execution( $action_id ); $action->execute(); do_action( 'action_scheduler_after_execute', $action_id, $action, $context ); $this->store->mark_complete( $action_id ); } catch ( Exception $e ) { if ( $valid_action ) { $this->store->mark_failure( $action_id ); do_action( 'action_scheduler_failed_execution', $action_id, $e, $context ); } else { do_action( 'action_scheduler_failed_validation', $action_id, $e, $context ); } } if ( isset( $action ) && is_a( $action, 'ActionScheduler_Action' ) && $action->get_schedule()->is_recurring() ) { $this->schedule_next_instance( $action, $action_id ); } } /** * Schedule the next instance of the action if necessary. * * @param ActionScheduler_Action $action * @param int $action_id */ protected function schedule_next_instance( ActionScheduler_Action $action, $action_id ) { // If a recurring action has been consistently failing, we may wish to stop rescheduling it. if ( ActionScheduler_Store::STATUS_FAILED === $this->store->get_status( $action_id ) && $this->recurring_action_is_consistently_failing( $action, $action_id ) ) { ActionScheduler_Logger::instance()->log( $action_id, __( 'This action appears to be consistently failing. A new instance will not be scheduled.', 'woocommerce' ) ); return; } try { ActionScheduler::factory()->repeat( $action ); } catch ( Exception $e ) { do_action( 'action_scheduler_failed_to_schedule_next_instance', $action_id, $e, $action ); } } /** * Determine if the specified recurring action has been consistently failing. * * @param ActionScheduler_Action $action The recurring action to be rescheduled. * @param int $action_id The ID of the recurring action. * * @return bool */ private function recurring_action_is_consistently_failing( ActionScheduler_Action $action, $action_id ) { /** * Controls the failure threshold for recurring actions. * * Before rescheduling a recurring action, we look at its status. If it failed, we then check if all of the most * recent actions (upto the threshold set by this filter) sharing the same hook have also failed: if they have, * that is considered consistent failure and a new instance of the action will not be scheduled. * * @param int $failure_threshold Number of actions of the same hook to examine for failure. Defaults to 5. */ $consistent_failure_threshold = (int) apply_filters( 'action_scheduler_recurring_action_failure_threshold', 5 ); // This query should find the earliest *failing* action (for the hook we are interested in) within our threshold. $query_args = array( 'hook' => $action->get_hook(), 'status' => ActionScheduler_Store::STATUS_FAILED, 'date' => date_create( 'now', timezone_open( 'UTC' ) )->format( 'Y-m-d H:i:s' ), 'date_compare' => '<', 'per_page' => 1, 'offset' => $consistent_failure_threshold - 1 ); $first_failing_action_id = $this->store->query_actions( $query_args ); // If we didn't retrieve an action ID, then there haven't been enough failures for us to worry about. if ( empty( $first_failing_action_id ) ) { return false; } // Now let's fetch the first action (having the same hook) of *any status*ithin the same window. unset( $query_args['status'] ); $first_action_id_with_the_same_hook = $this->store->query_actions( $query_args ); // If the IDs match, then actions for this hook must be consistently failing. return $first_action_id_with_the_same_hook === $first_failing_action_id; } /** * Run the queue cleaner. * * @author Jeremy Pry */ protected function run_cleanup() { $this->cleaner->clean( 10 * $this->get_time_limit() ); } /** * Get the number of concurrent batches a runner allows. * * @return int */ public function get_allowed_concurrent_batches() { return apply_filters( 'action_scheduler_queue_runner_concurrent_batches', 1 ); } /** * Check if the number of allowed concurrent batches is met or exceeded. * * @return bool */ public function has_maximum_concurrent_batches() { return $this->store->get_claim_count() >= $this->get_allowed_concurrent_batches(); } /** * Get the maximum number of seconds a batch can run for. * * @return int The number of seconds. */ protected function get_time_limit() { $time_limit = 30; // Apply deprecated filter from deprecated get_maximum_execution_time() method if ( has_filter( 'action_scheduler_maximum_execution_time' ) ) { _deprecated_function( 'action_scheduler_maximum_execution_time', '2.1.1', 'action_scheduler_queue_runner_time_limit' ); $time_limit = apply_filters( 'action_scheduler_maximum_execution_time', $time_limit ); } return absint( apply_filters( 'action_scheduler_queue_runner_time_limit', $time_limit ) ); } /** * Get the number of seconds the process has been running. * * @return int The number of seconds. */ protected function get_execution_time() { $execution_time = microtime( true ) - $this->created_time; // Get the CPU time if the hosting environment uses it rather than wall-clock time to calculate a process's execution time. if ( function_exists( 'getrusage' ) && apply_filters( 'action_scheduler_use_cpu_execution_time', defined( 'PANTHEON_ENVIRONMENT' ) ) ) { $resource_usages = getrusage(); if ( isset( $resource_usages['ru_stime.tv_usec'], $resource_usages['ru_stime.tv_usec'] ) ) { $execution_time = $resource_usages['ru_stime.tv_sec'] + ( $resource_usages['ru_stime.tv_usec'] / 1000000 ); } } return $execution_time; } /** * Check if the host's max execution time is (likely) to be exceeded if processing more actions. * * @param int $processed_actions The number of actions processed so far - used to determine the likelihood of exceeding the time limit if processing another action * @return bool */ protected function time_likely_to_be_exceeded( $processed_actions ) { $execution_time = $this->get_execution_time(); $max_execution_time = $this->get_time_limit(); // Safety against division by zero errors. if ( 0 === $processed_actions ) { return $execution_time >= $max_execution_time; } $time_per_action = $execution_time / $processed_actions; $estimated_time = $execution_time + ( $time_per_action * 3 ); $likely_to_be_exceeded = $estimated_time > $max_execution_time; return apply_filters( 'action_scheduler_maximum_execution_time_likely_to_be_exceeded', $likely_to_be_exceeded, $this, $processed_actions, $execution_time, $max_execution_time ); } /** * Get memory limit * * Based on WP_Background_Process::get_memory_limit() * * @return int */ protected function get_memory_limit() { if ( function_exists( 'ini_get' ) ) { $memory_limit = ini_get( 'memory_limit' ); } else { $memory_limit = '128M'; // Sensible default, and minimum required by WooCommerce } if ( ! $memory_limit || -1 === $memory_limit || '-1' === $memory_limit ) { // Unlimited, set to 32GB. $memory_limit = '32G'; } return ActionScheduler_Compatibility::convert_hr_to_bytes( $memory_limit ); } /** * Memory exceeded * * Ensures the batch process never exceeds 90% of the maximum WordPress memory. * * Based on WP_Background_Process::memory_exceeded() * * @return bool */ protected function memory_exceeded() { $memory_limit = $this->get_memory_limit() * 0.90; $current_memory = memory_get_usage( true ); $memory_exceeded = $current_memory >= $memory_limit; return apply_filters( 'action_scheduler_memory_exceeded', $memory_exceeded, $this ); } /** * See if the batch limits have been exceeded, which is when memory usage is almost at * the maximum limit, or the time to process more actions will exceed the max time limit. * * Based on WC_Background_Process::batch_limits_exceeded() * * @param int $processed_actions The number of actions processed so far - used to determine the likelihood of exceeding the time limit if processing another action * @return bool */ protected function batch_limits_exceeded( $processed_actions ) { return $this->memory_exceeded() || $this->time_likely_to_be_exceeded( $processed_actions ); } /** * Process actions in the queue. * * @author Jeremy Pry * @param string $context Optional identifer for the context in which this action is being processed, e.g. 'WP CLI' or 'WP Cron' * Generally, this should be capitalised and not localised as it's a proper noun. * @return int The number of actions processed. */ abstract public function run( $context = '' ); } app/Services/Libraries/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php000064400000057176147600120010027261 0ustar00 value pair. The * key must much the table column name and the value is the label, which is * automatically translated. * * @var array */ protected $columns = array(); /** * Defines the row-actions. It expects an array where the key * is the column name and the value is an array of actions. * * The array of actions are key => value, where key is the method name * (with the prefix row_action_) and the value is the label * and title. * * @var array */ protected $row_actions = array(); /** * The Primary key of our table * * @var string */ protected $ID = 'ID'; /** * Enables sorting, it expects an array * of columns (the column names are the values) * * @var array */ protected $sort_by = array(); /** * The default sort order * * @var string */ protected $filter_by = array(); /** * The status name => count combinations for this table's items. Used to display status filters. * * @var array */ protected $status_counts = array(); /** * Notices to display when loading the table. Array of arrays of form array( 'class' => {updated|error}, 'message' => 'This is the notice text display.' ). * * @var array */ protected $admin_notices = array(); /** * Localised string displayed in the

element above the able. * * @var string */ protected $table_header; /** * Enables bulk actions. It must be an array where the key is the action name * and the value is the label (which is translated automatically). It is important * to notice that it will check that the method exists (`bulk_$name`) and will throw * an exception if it does not exists. * * This class will automatically check if the current request has a bulk action, will do the * validations and afterwards will execute the bulk method, with two arguments. The first argument * is the array with primary keys, the second argument is a string with a list of the primary keys, * escaped and ready to use (with `IN`). * * @var array */ protected $bulk_actions = array(); /** * Makes translation easier, it basically just wraps * `_x` with some default (the package name). * * @param string $text The new text to translate. * @param string $context The context of the text. * @return string|void The translated text. * * @deprecated 3.0.0 Use `_x()` instead. */ protected function translate( $text, $context = '' ) { return $text; } /** * Reads `$this->bulk_actions` and returns an array that WP_List_Table understands. It * also validates that the bulk method handler exists. It throws an exception because * this is a library meant for developers and missing a bulk method is a development-time error. * * @return array * * @throws RuntimeException Throws RuntimeException when the bulk action does not have a callback method. */ protected function get_bulk_actions() { $actions = array(); foreach ( $this->bulk_actions as $action => $label ) { if ( ! is_callable( array( $this, 'bulk_' . $action ) ) ) { throw new RuntimeException( "The bulk action $action does not have a callback method" ); } $actions[ $action ] = $label; } return $actions; } /** * Checks if the current request has a bulk action. If that is the case it will validate and will * execute the bulk method handler. Regardless if the action is valid or not it will redirect to * the previous page removing the current arguments that makes this request a bulk action. */ protected function process_bulk_action() { global $wpdb; // Detect when a bulk action is being triggered. $action = $this->current_action(); if ( ! $action ) { return; } check_admin_referer( 'bulk-' . $this->_args['plural'] ); $method = 'bulk_' . $action; if ( array_key_exists( $action, $this->bulk_actions ) && is_callable( array( $this, $method ) ) && ! empty( $_GET['ID'] ) && is_array( $_GET['ID'] ) ) { $ids_sql = '(' . implode( ',', array_fill( 0, count( $_GET['ID'] ), '%s' ) ) . ')'; $id = array_map( 'absint', $_GET['ID'] ); $this->$method( $id, $wpdb->prepare( $ids_sql, $id ) ); //phpcs:ignore WordPress.DB.PreparedSQL } if ( isset( $_SERVER['REQUEST_URI'] ) ) { wp_safe_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce', 'ID', 'action', 'action2' ), esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) ) ); exit; } } /** * Default code for deleting entries. * validated already by process_bulk_action() * * @param array $ids ids of the items to delete. * @param string $ids_sql the sql for the ids. * @return void */ protected function bulk_delete( array $ids, $ids_sql ) { $store = ActionScheduler::store(); foreach ( $ids as $action_id ) { $store->delete( $action_id ); } } /** * Prepares the _column_headers property which is used by WP_Table_List at rendering. * It merges the columns and the sortable columns. */ protected function prepare_column_headers() { $this->_column_headers = array( $this->get_columns(), get_hidden_columns( $this->screen ), $this->get_sortable_columns(), ); } /** * Reads $this->sort_by and returns the columns name in a format that WP_Table_List * expects */ public function get_sortable_columns() { $sort_by = array(); foreach ( $this->sort_by as $column ) { $sort_by[ $column ] = array( $column, true ); } return $sort_by; } /** * Returns the columns names for rendering. It adds a checkbox for selecting everything * as the first column */ public function get_columns() { $columns = array_merge( array( 'cb' => '' ), $this->columns ); return $columns; } /** * Get prepared LIMIT clause for items query * * @global wpdb $wpdb * * @return string Prepared LIMIT clause for items query. */ protected function get_items_query_limit() { global $wpdb; $per_page = $this->get_items_per_page( $this->get_per_page_option_name(), $this->items_per_page ); return $wpdb->prepare( 'LIMIT %d', $per_page ); } /** * Returns the number of items to offset/skip for this current view. * * @return int */ protected function get_items_offset() { $per_page = $this->get_items_per_page( $this->get_per_page_option_name(), $this->items_per_page ); $current_page = $this->get_pagenum(); if ( 1 < $current_page ) { $offset = $per_page * ( $current_page - 1 ); } else { $offset = 0; } return $offset; } /** * Get prepared OFFSET clause for items query * * @global wpdb $wpdb * * @return string Prepared OFFSET clause for items query. */ protected function get_items_query_offset() { global $wpdb; return $wpdb->prepare( 'OFFSET %d', $this->get_items_offset() ); } /** * Prepares the ORDER BY sql statement. It uses `$this->sort_by` to know which * columns are sortable. This requests validates the orderby $_GET parameter is a valid * column and sortable. It will also use order (ASC|DESC) using DESC by default. */ protected function get_items_query_order() { if ( empty( $this->sort_by ) ) { return ''; } $orderby = esc_sql( $this->get_request_orderby() ); $order = esc_sql( $this->get_request_order() ); return "ORDER BY {$orderby} {$order}"; } /** * Return the sortable column specified for this request to order the results by, if any. * * @return string */ protected function get_request_orderby() { $valid_sortable_columns = array_values( $this->sort_by ); if ( ! empty( $_GET['orderby'] ) && in_array( $_GET['orderby'], $valid_sortable_columns, true ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended $orderby = sanitize_text_field( wp_unslash( $_GET['orderby'] ) ); //phpcs:ignore WordPress.Security.NonceVerification.Recommended } else { $orderby = $valid_sortable_columns[0]; } return $orderby; } /** * Return the sortable column order specified for this request. * * @return string */ protected function get_request_order() { if ( ! empty( $_GET['order'] ) && 'desc' === strtolower( sanitize_text_field( wp_unslash( $_GET['order'] ) ) ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended $order = 'DESC'; } else { $order = 'ASC'; } return $order; } /** * Return the status filter for this request, if any. * * @return string */ protected function get_request_status() { $status = ( ! empty( $_GET['status'] ) ) ? sanitize_text_field( wp_unslash( $_GET['status'] ) ) : ''; //phpcs:ignore WordPress.Security.NonceVerification.Recommended return $status; } /** * Return the search filter for this request, if any. * * @return string */ protected function get_request_search_query() { $search_query = ( ! empty( $_GET['s'] ) ) ? sanitize_text_field( wp_unslash( $_GET['s'] ) ) : ''; //phpcs:ignore WordPress.Security.NonceVerification.Recommended return $search_query; } /** * Process and return the columns name. This is meant for using with SQL, this means it * always includes the primary key. * * @return array */ protected function get_table_columns() { $columns = array_keys( $this->columns ); if ( ! in_array( $this->ID, $columns, true ) ) { $columns[] = $this->ID; } return $columns; } /** * Check if the current request is doing a "full text" search. If that is the case * prepares the SQL to search texts using LIKE. * * If the current request does not have any search or if this list table does not support * that feature it will return an empty string. * * @return string */ protected function get_items_query_search() { global $wpdb; if ( empty( $_GET['s'] ) || empty( $this->search_by ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended return ''; } $search_string = sanitize_text_field( wp_unslash( $_GET['s'] ) ); //phpcs:ignore WordPress.Security.NonceVerification.Recommended $filter = array(); foreach ( $this->search_by as $column ) { $wild = '%'; $sql_like = $wild . $wpdb->esc_like( $search_string ) . $wild; $filter[] = $wpdb->prepare( '`' . $column . '` LIKE %s', $sql_like ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.DB.PreparedSQL.NotPrepared } return implode( ' OR ', $filter ); } /** * Prepares the SQL to filter rows by the options defined at `$this->filter_by`. Before trusting * any data sent by the user it validates that it is a valid option. */ protected function get_items_query_filters() { global $wpdb; if ( ! $this->filter_by || empty( $_GET['filter_by'] ) || ! is_array( $_GET['filter_by'] ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended return ''; } $filter = array(); foreach ( $this->filter_by as $column => $options ) { if ( empty( $_GET['filter_by'][ $column ] ) || empty( $options[ $_GET['filter_by'][ $column ] ] ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended continue; } $filter[] = $wpdb->prepare( "`$column` = %s", sanitize_text_field( wp_unslash( $_GET['filter_by'][ $column ] ) ) ); //phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.DB.PreparedSQL.InterpolatedNotPrepared } return implode( ' AND ', $filter ); } /** * Prepares the data to feed WP_Table_List. * * This has the core for selecting, sorting and filting data. To keep the code simple * its logic is split among many methods (get_items_query_*). * * Beside populating the items this function will also count all the records that matches * the filtering criteria and will do fill the pagination variables. */ public function prepare_items() { global $wpdb; $this->process_bulk_action(); $this->process_row_actions(); if ( ! empty( $_REQUEST['_wp_http_referer'] && ! empty( $_SERVER['REQUEST_URI'] ) ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended // _wp_http_referer is used only on bulk actions, we remove it to keep the $_GET shorter wp_safe_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) ) ); exit; } $this->prepare_column_headers(); $limit = $this->get_items_query_limit(); $offset = $this->get_items_query_offset(); $order = $this->get_items_query_order(); $where = array_filter( array( $this->get_items_query_search(), $this->get_items_query_filters(), ) ); $columns = '`' . implode( '`, `', $this->get_table_columns() ) . '`'; if ( ! empty( $where ) ) { $where = 'WHERE (' . implode( ') AND (', $where ) . ')'; } else { $where = ''; } $sql = "SELECT $columns FROM {$this->table_name} {$where} {$order} {$limit} {$offset}"; $this->set_items( $wpdb->get_results( $sql, ARRAY_A ) ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared $query_count = "SELECT COUNT({$this->ID}) FROM {$this->table_name} {$where}"; $total_items = $wpdb->get_var( $query_count ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared $per_page = $this->get_items_per_page( $this->get_per_page_option_name(), $this->items_per_page ); $this->set_pagination_args( array( 'total_items' => $total_items, 'per_page' => $per_page, 'total_pages' => ceil( $total_items / $per_page ), ) ); } /** * Display the table. * * @param string $which The name of the table. */ public function extra_tablenav( $which ) { if ( ! $this->filter_by || 'top' !== $which ) { return; } echo '
'; foreach ( $this->filter_by as $id => $options ) { $default = ! empty( $_GET['filter_by'][ $id ] ) ? sanitize_text_field( wp_unslash( $_GET['filter_by'][ $id ] ) ) : ''; //phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( empty( $options[ $default ] ) ) { $default = ''; } echo ''; } submit_button( esc_html__( 'Filter', 'woocommerce' ), '', 'filter_action', false, array( 'id' => 'post-query-submit' ) ); echo '
'; } /** * Set the data for displaying. It will attempt to unserialize (There is a chance that some columns * are serialized). This can be override in child classes for futher data transformation. * * @param array $items Items array. */ protected function set_items( array $items ) { $this->items = array(); foreach ( $items as $item ) { $this->items[ $item[ $this->ID ] ] = array_map( 'maybe_unserialize', $item ); } } /** * Renders the checkbox for each row, this is the first column and it is named ID regardless * of how the primary key is named (to keep the code simpler). The bulk actions will do the proper * name transformation though using `$this->ID`. * * @param array $row The row to render. */ public function column_cb( $row ) { return ''; } /** * Renders the row-actions. * * This method renders the action menu, it reads the definition from the $row_actions property, * and it checks that the row action method exists before rendering it. * * @param array $row Row to be rendered. * @param string $column_name Column name. * @return string */ protected function maybe_render_actions( $row, $column_name ) { if ( empty( $this->row_actions[ $column_name ] ) ) { return; } $row_id = $row[ $this->ID ]; $actions = '
'; $action_count = 0; foreach ( $this->row_actions[ $column_name ] as $action_key => $action ) { $action_count++; if ( ! method_exists( $this, 'row_action_' . $action_key ) ) { continue; } $action_link = ! empty( $action['link'] ) ? $action['link'] : add_query_arg( array( 'row_action' => $action_key, 'row_id' => $row_id, 'nonce' => wp_create_nonce( $action_key . '::' . $row_id ), ) ); $span_class = ! empty( $action['class'] ) ? $action['class'] : $action_key; $separator = ( $action_count < count( $this->row_actions[ $column_name ] ) ) ? ' | ' : ''; $actions .= sprintf( '', esc_attr( $span_class ) ); $actions .= sprintf( '%3$s', esc_url( $action_link ), esc_attr( $action['desc'] ), esc_html( $action['name'] ) ); $actions .= sprintf( '%s', $separator ); } $actions .= '
'; return $actions; } /** * Process the bulk actions. * * @return void */ protected function process_row_actions() { $parameters = array( 'row_action', 'row_id', 'nonce' ); foreach ( $parameters as $parameter ) { if ( empty( $_REQUEST[ $parameter ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended return; } } $action = sanitize_text_field( wp_unslash( $_REQUEST['row_action'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotValidated $row_id = sanitize_text_field( wp_unslash( $_REQUEST['row_id'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotValidated $nonce = sanitize_text_field( wp_unslash( $_REQUEST['nonce'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotValidated $method = 'row_action_' . $action; // phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( wp_verify_nonce( $nonce, $action . '::' . $row_id ) && method_exists( $this, $method ) ) { $this->$method( sanitize_text_field( wp_unslash( $row_id ) ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended } if ( isset( $_SERVER['REQUEST_URI'] ) ) { wp_safe_redirect( remove_query_arg( array( 'row_id', 'row_action', 'nonce' ), esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) ) ); exit; } } /** * Default column formatting, it will escape everythig for security. * * @param array $item The item array. * @param string $column_name Column name to display. * * @return string */ public function column_default( $item, $column_name ) { $column_html = esc_html( $item[ $column_name ] ); $column_html .= $this->maybe_render_actions( $item, $column_name ); return $column_html; } /** * Display the table heading and search query, if any */ protected function display_header() { echo '

' . esc_attr( $this->table_header ) . '

'; if ( $this->get_request_search_query() ) { /* translators: %s: search query */ echo '' . esc_attr( sprintf( __( 'Search results for "%s"', 'woocommerce' ), $this->get_request_search_query() ) ) . ''; } echo '
'; } /** * Display the table heading and search query, if any */ protected function display_admin_notices() { foreach ( $this->admin_notices as $notice ) { echo '
'; echo '

' . wp_kses_post( $notice['message'] ) . '

'; echo '
'; } } /** * Prints the available statuses so the user can click to filter. */ protected function display_filter_by_status() { $status_list_items = array(); $request_status = $this->get_request_status(); // Helper to set 'all' filter when not set on status counts passed in. if ( ! isset( $this->status_counts['all'] ) ) { $this->status_counts = array( 'all' => array_sum( $this->status_counts ) ) + $this->status_counts; } foreach ( $this->status_counts as $status_name => $count ) { if ( 0 === $count ) { continue; } if ( $status_name === $request_status || ( empty( $request_status ) && 'all' === $status_name ) ) { $status_list_item = '
  • %3$s (%4$d)
  • '; } else { $status_list_item = '
  • %3$s (%4$d)
  • '; } $status_filter_url = ( 'all' === $status_name ) ? remove_query_arg( 'status' ) : add_query_arg( 'status', $status_name ); $status_filter_url = remove_query_arg( array( 'paged', 's' ), $status_filter_url ); $status_list_items[] = sprintf( $status_list_item, esc_attr( $status_name ), esc_url( $status_filter_url ), esc_html( ucfirst( $status_name ) ), absint( $count ) ); } if ( $status_list_items ) { echo '
      '; echo implode( " | \n", $status_list_items ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo '
    '; } } /** * Renders the table list, we override the original class to render the table inside a form * and to render any needed HTML (like the search box). By doing so the callee of a function can simple * forget about any extra HTML. */ protected function display_table() { echo '
    '; foreach ( $_GET as $key => $value ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( '_' === $key[0] || 'paged' === $key || 'ID' === $key ) { continue; } echo ''; } if ( ! empty( $this->search_by ) ) { echo $this->search_box( $this->get_search_box_button_text(), 'plugin' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } parent::display(); echo '
    '; } /** * Process any pending actions. */ public function process_actions() { $this->process_bulk_action(); $this->process_row_actions(); if ( ! empty( $_REQUEST['_wp_http_referer'] ) && ! empty( $_SERVER['REQUEST_URI'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended // _wp_http_referer is used only on bulk actions, we remove it to keep the $_GET shorter wp_safe_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) ) ); exit; } } /** * Render the list table page, including header, notices, status filters and table. */ public function display_page() { $this->prepare_items(); echo '
    '; $this->display_header(); $this->display_admin_notices(); $this->display_filter_by_status(); $this->display_table(); echo '
    '; } /** * Get the text to display in the search box on the list table. */ protected function get_search_box_placeholder() { return esc_html__( 'Search', 'woocommerce' ); } /** * Gets the screen per_page option name. * * @return string */ protected function get_per_page_option_name() { return $this->package . '_items_per_page'; } } app/Services/Libraries/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schedule.php000064400000003426147600120010027117 0ustar00scheduled_date * * @var int */ protected $scheduled_timestamp = NULL; /** * @param DateTime $date The date & time to run the action. */ public function __construct( DateTime $date ) { $this->scheduled_date = $date; } /** * Check if a schedule should recur. * * @return bool */ abstract public function is_recurring(); /** * Calculate when the next instance of this schedule would run based on a given date & time. * * @param DateTime $after * @return DateTime */ abstract protected function calculate_next( DateTime $after ); /** * Get the next date & time when this schedule should run after a given date & time. * * @param DateTime $after * @return DateTime|null */ public function get_next( DateTime $after ) { $after = clone $after; if ( $after > $this->scheduled_date ) { $after = $this->calculate_next( $after ); return $after; } return clone $this->scheduled_date; } /** * Get the date & time the schedule is set to run. * * @return DateTime|null */ public function get_date() { return $this->scheduled_date; } /** * For PHP 5.2 compat, since DateTime objects can't be serialized * @return array */ public function __sleep() { $this->scheduled_timestamp = $this->scheduled_date->getTimestamp(); return array( 'scheduled_timestamp', ); } public function __wakeup() { $this->scheduled_date = as_get_datetime_object( $this->scheduled_timestamp ); unset( $this->scheduled_timestamp ); } } app/Services/Libraries/action-scheduler/classes/abstracts/ActionScheduler_Lock.php000064400000003133147600120010024423 0ustar00get_expiration( $lock_type ) >= time() ); } /** * Set a lock. * * @param string $lock_type A string to identify different lock types. * @return bool */ abstract public function set( $lock_type ); /** * If a lock is set, return the timestamp it was set to expiry. * * @param string $lock_type A string to identify different lock types. * @return bool|int False if no lock is set, otherwise the timestamp for when the lock is set to expire. */ abstract public function get_expiration( $lock_type ); /** * Get the amount of time to set for a given lock. 60 seconds by default. * * @param string $lock_type A string to identify different lock types. * @return int */ protected function get_duration( $lock_type ) { return apply_filters( 'action_scheduler_lock_duration', self::$lock_duration, $lock_type ); } /** * @return ActionScheduler_Lock */ public static function instance() { if ( empty( self::$locker ) ) { $class = apply_filters( 'action_scheduler_lock_class', 'ActionScheduler_OptionLock' ); self::$locker = new $class(); } return self::$locker; } } app/Services/Libraries/action-scheduler/classes/abstracts/ActionScheduler_Logger.php000064400000014137147600120010024760 0ustar00hook_stored_action(); add_action( 'action_scheduler_canceled_action', array( $this, 'log_canceled_action' ), 10, 1 ); add_action( 'action_scheduler_begin_execute', array( $this, 'log_started_action' ), 10, 2 ); add_action( 'action_scheduler_after_execute', array( $this, 'log_completed_action' ), 10, 3 ); add_action( 'action_scheduler_failed_execution', array( $this, 'log_failed_action' ), 10, 3 ); add_action( 'action_scheduler_failed_action', array( $this, 'log_timed_out_action' ), 10, 2 ); add_action( 'action_scheduler_unexpected_shutdown', array( $this, 'log_unexpected_shutdown' ), 10, 2 ); add_action( 'action_scheduler_reset_action', array( $this, 'log_reset_action' ), 10, 1 ); add_action( 'action_scheduler_execution_ignored', array( $this, 'log_ignored_action' ), 10, 2 ); add_action( 'action_scheduler_failed_fetch_action', array( $this, 'log_failed_fetch_action' ), 10, 2 ); add_action( 'action_scheduler_failed_to_schedule_next_instance', array( $this, 'log_failed_schedule_next_instance' ), 10, 2 ); add_action( 'action_scheduler_bulk_cancel_actions', array( $this, 'bulk_log_cancel_actions' ), 10, 1 ); } public function hook_stored_action() { add_action( 'action_scheduler_stored_action', array( $this, 'log_stored_action' ) ); } public function unhook_stored_action() { remove_action( 'action_scheduler_stored_action', array( $this, 'log_stored_action' ) ); } public function log_stored_action( $action_id ) { $this->log( $action_id, __( 'action created', 'woocommerce' ) ); } public function log_canceled_action( $action_id ) { $this->log( $action_id, __( 'action canceled', 'woocommerce' ) ); } public function log_started_action( $action_id, $context = '' ) { if ( ! empty( $context ) ) { /* translators: %s: context */ $message = sprintf( __( 'action started via %s', 'woocommerce' ), $context ); } else { $message = __( 'action started', 'woocommerce' ); } $this->log( $action_id, $message ); } public function log_completed_action( $action_id, $action = NULL, $context = '' ) { if ( ! empty( $context ) ) { /* translators: %s: context */ $message = sprintf( __( 'action complete via %s', 'woocommerce' ), $context ); } else { $message = __( 'action complete', 'woocommerce' ); } $this->log( $action_id, $message ); } public function log_failed_action( $action_id, Exception $exception, $context = '' ) { if ( ! empty( $context ) ) { /* translators: 1: context 2: exception message */ $message = sprintf( __( 'action failed via %1$s: %2$s', 'woocommerce' ), $context, $exception->getMessage() ); } else { /* translators: %s: exception message */ $message = sprintf( __( 'action failed: %s', 'woocommerce' ), $exception->getMessage() ); } $this->log( $action_id, $message ); } public function log_timed_out_action( $action_id, $timeout ) { /* translators: %s: amount of time */ $this->log( $action_id, sprintf( __( 'action marked as failed after %s seconds. Unknown error occurred. Check server, PHP and database error logs to diagnose cause.', 'woocommerce' ), $timeout ) ); } public function log_unexpected_shutdown( $action_id, $error ) { if ( ! empty( $error ) ) { /* translators: 1: error message 2: filename 3: line */ $this->log( $action_id, sprintf( __( 'unexpected shutdown: PHP Fatal error %1$s in %2$s on line %3$s', 'woocommerce' ), $error['message'], $error['file'], $error['line'] ) ); } } public function log_reset_action( $action_id ) { $this->log( $action_id, __( 'action reset', 'woocommerce' ) ); } public function log_ignored_action( $action_id, $context = '' ) { if ( ! empty( $context ) ) { /* translators: %s: context */ $message = sprintf( __( 'action ignored via %s', 'woocommerce' ), $context ); } else { $message = __( 'action ignored', 'woocommerce' ); } $this->log( $action_id, $message ); } /** * @param string $action_id * @param Exception|NULL $exception The exception which occured when fetching the action. NULL by default for backward compatibility. * * @return ActionScheduler_LogEntry[] */ public function log_failed_fetch_action( $action_id, Exception $exception = NULL ) { if ( ! is_null( $exception ) ) { /* translators: %s: exception message */ $log_message = sprintf( __( 'There was a failure fetching this action: %s', 'woocommerce' ), $exception->getMessage() ); } else { $log_message = __( 'There was a failure fetching this action', 'woocommerce' ); } $this->log( $action_id, $log_message ); } public function log_failed_schedule_next_instance( $action_id, Exception $exception ) { /* translators: %s: exception message */ $this->log( $action_id, sprintf( __( 'There was a failure scheduling the next instance of this action: %s', 'woocommerce' ), $exception->getMessage() ) ); } /** * Bulk add cancel action log entries. * * Implemented here for backward compatibility. Should be implemented in parent loggers * for more performant bulk logging. * * @param array $action_ids List of action ID. */ public function bulk_log_cancel_actions( $action_ids ) { if ( empty( $action_ids ) ) { return; } foreach ( $action_ids as $action_id ) { $this->log_canceled_action( $action_id ); } } } app/Services/Libraries/action-scheduler/classes/actions/ActionScheduler_CanceledAction.php000064400000001316147600120010026042 0ustar00set_schedule( new ActionScheduler_NullSchedule() ); } } } app/Services/Libraries/action-scheduler/classes/actions/ActionScheduler_NullAction.php000064400000000534147600120010025257 0ustar00set_schedule( new ActionScheduler_NullSchedule() ); } public function execute() { // don't execute } } app/Services/Libraries/action-scheduler/classes/actions/ActionScheduler_FinishedAction.php000064400000000350147600120010026072 0ustar00set_hook($hook); $this->set_schedule($schedule); $this->set_args($args); $this->set_group($group); } /** * Executes the action. * * If no callbacks are registered, an exception will be thrown and the action will not be * fired. This is useful to help detect cases where the code responsible for setting up * a scheduled action no longer exists. * * @throws Exception If no callbacks are registered for this action. */ public function execute() { $hook = $this->get_hook(); if ( ! has_action( $hook ) ) { throw new Exception( sprintf( /* translators: 1: action hook. */ __( 'Scheduled action for %1$s will not be executed as no callbacks are registered.', 'woocommerce' ), $hook ) ); } do_action_ref_array( $hook, array_values( $this->get_args() ) ); } /** * @param string $hook */ protected function set_hook( $hook ) { $this->hook = $hook; } public function get_hook() { return $this->hook; } protected function set_schedule( ActionScheduler_Schedule $schedule ) { $this->schedule = $schedule; } /** * @return ActionScheduler_Schedule */ public function get_schedule() { return $this->schedule; } protected function set_args( array $args ) { $this->args = $args; } public function get_args() { return $this->args; } /** * @param string $group */ protected function set_group( $group ) { $this->group = $group; } /** * @return string */ public function get_group() { return $this->group; } /** * @return bool If the action has been finished */ public function is_finished() { return FALSE; } } app/Services/Libraries/action-scheduler/classes/data-stores/ActionScheduler_DBLogger.php000064400000010577147600120010025432 0ustar00format( 'Y-m-d H:i:s' ); ActionScheduler_TimezoneHelper::set_local_timezone( $date ); $date_local = $date->format( 'Y-m-d H:i:s' ); /** @var \wpdb $wpdb */ //phpcs:ignore Generic.Commenting.DocComment.MissingShort global $wpdb; $wpdb->insert( $wpdb->actionscheduler_logs, array( 'action_id' => $action_id, 'message' => $message, 'log_date_gmt' => $date_gmt, 'log_date_local' => $date_local, ), array( '%d', '%s', '%s', '%s' ) ); return $wpdb->insert_id; } /** * Retrieve an action log entry. * * @param int $entry_id Log entry ID. * * @return ActionScheduler_LogEntry */ public function get_entry( $entry_id ) { /** @var \wpdb $wpdb */ //phpcs:ignore Generic.Commenting.DocComment.MissingShort global $wpdb; $entry = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->actionscheduler_logs} WHERE log_id=%d", $entry_id ) ); return $this->create_entry_from_db_record( $entry ); } /** * Create an action log entry from a database record. * * @param object $record Log entry database record object. * * @return ActionScheduler_LogEntry */ private function create_entry_from_db_record( $record ) { if ( empty( $record ) ) { return new ActionScheduler_NullLogEntry(); } if ( is_null( $record->log_date_gmt ) ) { $date = as_get_datetime_object( ActionScheduler_StoreSchema::DEFAULT_DATE ); } else { $date = as_get_datetime_object( $record->log_date_gmt ); } return new ActionScheduler_LogEntry( $record->action_id, $record->message, $date ); } /** * Retrieve the an action's log entries from the database. * * @param int $action_id Action ID. * * @return ActionScheduler_LogEntry[] */ public function get_logs( $action_id ) { /** @var \wpdb $wpdb */ //phpcs:ignore Generic.Commenting.DocComment.MissingShort global $wpdb; $records = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->actionscheduler_logs} WHERE action_id=%d", $action_id ) ); return array_map( array( $this, 'create_entry_from_db_record' ), $records ); } /** * Initialize the data store. * * @codeCoverageIgnore */ public function init() { $table_maker = new ActionScheduler_LoggerSchema(); $table_maker->init(); $table_maker->register_tables(); parent::init(); add_action( 'action_scheduler_deleted_action', array( $this, 'clear_deleted_action_logs' ), 10, 1 ); } /** * Delete the action logs for an action. * * @param int $action_id Action ID. */ public function clear_deleted_action_logs( $action_id ) { /** @var \wpdb $wpdb */ //phpcs:ignore Generic.Commenting.DocComment.MissingShort global $wpdb; $wpdb->delete( $wpdb->actionscheduler_logs, array( 'action_id' => $action_id ), array( '%d' ) ); } /** * Bulk add cancel action log entries. * * @param array $action_ids List of action ID. */ public function bulk_log_cancel_actions( $action_ids ) { if ( empty( $action_ids ) ) { return; } /** @var \wpdb $wpdb */ //phpcs:ignore Generic.Commenting.DocComment.MissingShort global $wpdb; $date = as_get_datetime_object(); $date_gmt = $date->format( 'Y-m-d H:i:s' ); ActionScheduler_TimezoneHelper::set_local_timezone( $date ); $date_local = $date->format( 'Y-m-d H:i:s' ); $message = __( 'action canceled', 'woocommerce' ); $format = '(%d, ' . $wpdb->prepare( '%s, %s, %s', $message, $date_gmt, $date_local ) . ')'; $sql_query = "INSERT {$wpdb->actionscheduler_logs} (action_id, message, log_date_gmt, log_date_local) VALUES "; $value_rows = array(); foreach ( $action_ids as $action_id ) { $value_rows[] = $wpdb->prepare( $format, $action_id ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } $sql_query .= implode( ',', $value_rows ); $wpdb->query( $sql_query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } } Libraries/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostStatusRegistrar.php000064400000003421147600120010032321 0ustar00app/Servicespost_status_args(), $this->post_status_running_labels() ) ); register_post_status( ActionScheduler_Store::STATUS_FAILED, array_merge( $this->post_status_args(), $this->post_status_failed_labels() ) ); } /** * Build the args array for the post type definition * * @return array */ protected function post_status_args() { $args = array( 'public' => false, 'exclude_from_search' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, ); return apply_filters( 'action_scheduler_post_status_args', $args ); } /** * Build the args array for the post type definition * * @return array */ protected function post_status_failed_labels() { $labels = array( 'label' => _x( 'Failed', 'post', 'woocommerce' ), /* translators: %s: count */ 'label_count' => _n_noop( 'Failed (%s)', 'Failed (%s)', 'woocommerce' ), ); return apply_filters( 'action_scheduler_post_status_failed_labels', $labels ); } /** * Build the args array for the post type definition * * @return array */ protected function post_status_running_labels() { $labels = array( 'label' => _x( 'In-Progress', 'post', 'woocommerce' ), /* translators: %s: count */ 'label_count' => _n_noop( 'In-Progress (%s)', 'In-Progress (%s)', 'woocommerce' ), ); return apply_filters( 'action_scheduler_post_status_running_labels', $labels ); } } app/Services/Libraries/action-scheduler/classes/data-stores/ActionScheduler_HybridStore.php000064400000027366147600120010026247 0ustar00demarkation_id = (int) get_option( self::DEMARKATION_OPTION, 0 ); if ( empty( $config ) ) { $config = Controller::instance()->get_migration_config_object(); } $this->primary_store = $config->get_destination_store(); $this->secondary_store = $config->get_source_store(); $this->migration_runner = new Runner( $config ); } /** * Initialize the table data store tables. * * @codeCoverageIgnore */ public function init() { add_action( 'action_scheduler/created_table', [ $this, 'set_autoincrement' ], 10, 2 ); $this->primary_store->init(); $this->secondary_store->init(); remove_action( 'action_scheduler/created_table', [ $this, 'set_autoincrement' ], 10 ); } /** * When the actions table is created, set its autoincrement * value to be one higher than the posts table to ensure that * there are no ID collisions. * * @param string $table_name * @param string $table_suffix * * @return void * @codeCoverageIgnore */ public function set_autoincrement( $table_name, $table_suffix ) { if ( ActionScheduler_StoreSchema::ACTIONS_TABLE === $table_suffix ) { if ( empty( $this->demarkation_id ) ) { $this->demarkation_id = $this->set_demarkation_id(); } /** @var \wpdb $wpdb */ global $wpdb; /** * A default date of '0000-00-00 00:00:00' is invalid in MySQL 5.7 when configured with * sql_mode including both STRICT_TRANS_TABLES and NO_ZERO_DATE. */ $default_date = new DateTime( 'tomorrow' ); $null_action = new ActionScheduler_NullAction(); $date_gmt = $this->get_scheduled_date_string( $null_action, $default_date ); $date_local = $this->get_scheduled_date_string_local( $null_action, $default_date ); $row_count = $wpdb->insert( $wpdb->{ActionScheduler_StoreSchema::ACTIONS_TABLE}, [ 'action_id' => $this->demarkation_id, 'hook' => '', 'status' => '', 'scheduled_date_gmt' => $date_gmt, 'scheduled_date_local' => $date_local, 'last_attempt_gmt' => $date_gmt, 'last_attempt_local' => $date_local, ] ); if ( $row_count > 0 ) { $wpdb->delete( $wpdb->{ActionScheduler_StoreSchema::ACTIONS_TABLE}, [ 'action_id' => $this->demarkation_id ] ); } } } /** * Store the demarkation id in WP options. * * @param int $id The ID to set as the demarkation point between the two stores * Leave null to use the next ID from the WP posts table. * * @return int The new ID. * * @codeCoverageIgnore */ private function set_demarkation_id( $id = null ) { if ( empty( $id ) ) { /** @var \wpdb $wpdb */ global $wpdb; $id = (int) $wpdb->get_var( "SELECT MAX(ID) FROM $wpdb->posts" ); $id ++; } update_option( self::DEMARKATION_OPTION, $id ); return $id; } /** * Find the first matching action from the secondary store. * If it exists, migrate it to the primary store immediately. * After it migrates, the secondary store will logically contain * the next matching action, so return the result thence. * * @param string $hook * @param array $params * * @return string */ public function find_action( $hook, $params = [] ) { $found_unmigrated_action = $this->secondary_store->find_action( $hook, $params ); if ( ! empty( $found_unmigrated_action ) ) { $this->migrate( [ $found_unmigrated_action ] ); } return $this->primary_store->find_action( $hook, $params ); } /** * Find actions matching the query in the secondary source first. * If any are found, migrate them immediately. Then the secondary * store will contain the canonical results. * * @param array $query * @param string $query_type Whether to select or count the results. Default, select. * * @return int[] */ public function query_actions( $query = [], $query_type = 'select' ) { $found_unmigrated_actions = $this->secondary_store->query_actions( $query, 'select' ); if ( ! empty( $found_unmigrated_actions ) ) { $this->migrate( $found_unmigrated_actions ); } return $this->primary_store->query_actions( $query, $query_type ); } /** * Get a count of all actions in the store, grouped by status * * @return array Set of 'status' => int $count pairs for statuses with 1 or more actions of that status. */ public function action_counts() { $unmigrated_actions_count = $this->secondary_store->action_counts(); $migrated_actions_count = $this->primary_store->action_counts(); $actions_count_by_status = array(); foreach ( $this->get_status_labels() as $status_key => $status_label ) { $count = 0; if ( isset( $unmigrated_actions_count[ $status_key ] ) ) { $count += $unmigrated_actions_count[ $status_key ]; } if ( isset( $migrated_actions_count[ $status_key ] ) ) { $count += $migrated_actions_count[ $status_key ]; } $actions_count_by_status[ $status_key ] = $count; } $actions_count_by_status = array_filter( $actions_count_by_status ); return $actions_count_by_status; } /** * If any actions would have been claimed by the secondary store, * migrate them immediately, then ask the primary store for the * canonical claim. * * @param int $max_actions * @param DateTime|null $before_date * * @return ActionScheduler_ActionClaim */ public function stake_claim( $max_actions = 10, DateTime $before_date = null, $hooks = array(), $group = '' ) { $claim = $this->secondary_store->stake_claim( $max_actions, $before_date, $hooks, $group ); $claimed_actions = $claim->get_actions(); if ( ! empty( $claimed_actions ) ) { $this->migrate( $claimed_actions ); } $this->secondary_store->release_claim( $claim ); return $this->primary_store->stake_claim( $max_actions, $before_date, $hooks, $group ); } /** * Migrate a list of actions to the table data store. * * @param array $action_ids List of action IDs. */ private function migrate( $action_ids ) { $this->migration_runner->migrate_actions( $action_ids ); } /** * Save an action to the primary store. * * @param ActionScheduler_Action $action Action object to be saved. * @param DateTime $date Optional. Schedule date. Default null. * * @return int The action ID */ public function save_action( ActionScheduler_Action $action, DateTime $date = null ) { return $this->primary_store->save_action( $action, $date ); } /** * Retrieve an existing action whether migrated or not. * * @param int $action_id Action ID. */ public function fetch_action( $action_id ) { $store = $this->get_store_from_action_id( $action_id, true ); if ( $store ) { return $store->fetch_action( $action_id ); } else { return new ActionScheduler_NullAction(); } } /** * Cancel an existing action whether migrated or not. * * @param int $action_id Action ID. */ public function cancel_action( $action_id ) { $store = $this->get_store_from_action_id( $action_id ); if ( $store ) { $store->cancel_action( $action_id ); } } /** * Delete an existing action whether migrated or not. * * @param int $action_id Action ID. */ public function delete_action( $action_id ) { $store = $this->get_store_from_action_id( $action_id ); if ( $store ) { $store->delete_action( $action_id ); } } /** * Get the schedule date an existing action whether migrated or not. * * @param int $action_id Action ID. */ public function get_date( $action_id ) { $store = $this->get_store_from_action_id( $action_id ); if ( $store ) { return $store->get_date( $action_id ); } else { return null; } } /** * Mark an existing action as failed whether migrated or not. * * @param int $action_id Action ID. */ public function mark_failure( $action_id ) { $store = $this->get_store_from_action_id( $action_id ); if ( $store ) { $store->mark_failure( $action_id ); } } /** * Log the execution of an existing action whether migrated or not. * * @param int $action_id Action ID. */ public function log_execution( $action_id ) { $store = $this->get_store_from_action_id( $action_id ); if ( $store ) { $store->log_execution( $action_id ); } } /** * Mark an existing action complete whether migrated or not. * * @param int $action_id Action ID. */ public function mark_complete( $action_id ) { $store = $this->get_store_from_action_id( $action_id ); if ( $store ) { $store->mark_complete( $action_id ); } } /** * Get an existing action status whether migrated or not. * * @param int $action_id Action ID. */ public function get_status( $action_id ) { $store = $this->get_store_from_action_id( $action_id ); if ( $store ) { return $store->get_status( $action_id ); } return null; } /** * Return which store an action is stored in. * * @param int $action_id ID of the action. * @param bool $primary_first Optional flag indicating search the primary store first. * @return ActionScheduler_Store */ protected function get_store_from_action_id( $action_id, $primary_first = false ) { if ( $primary_first ) { $stores = [ $this->primary_store, $this->secondary_store, ]; } elseif ( $action_id < $this->demarkation_id ) { $stores = [ $this->secondary_store, $this->primary_store, ]; } else { $stores = [ $this->primary_store, ]; } foreach ( $stores as $store ) { $action = $store->fetch_action( $action_id ); if ( ! is_a( $action, 'ActionScheduler_NullAction' ) ) { return $store; } } return null; } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * All claim-related functions should operate solely * on the primary store. * * * * * * * * * * * * * * * * * * * * * * * * * * */ /** * Get the claim count from the table data store. */ public function get_claim_count() { return $this->primary_store->get_claim_count(); } /** * Retrieve the claim ID for an action from the table data store. * * @param int $action_id Action ID. */ public function get_claim_id( $action_id ) { return $this->primary_store->get_claim_id( $action_id ); } /** * Release a claim in the table data store. * * @param ActionScheduler_ActionClaim $claim Claim object. */ public function release_claim( ActionScheduler_ActionClaim $claim ) { $this->primary_store->release_claim( $claim ); } /** * Release claims on an action in the table data store. * * @param int $action_id Action ID. */ public function unclaim_action( $action_id ) { $this->primary_store->unclaim_action( $action_id ); } /** * Retrieve a list of action IDs by claim. * * @param int $claim_id Claim ID. */ public function find_actions_by_claim_id( $claim_id ) { return $this->primary_store->find_actions_by_claim_id( $claim_id ); } } Libraries/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostTypeRegistrar.php000064400000003302147600120010031755 0ustar00app/Servicespost_type_args() ); } /** * Build the args array for the post type definition * * @return array */ protected function post_type_args() { $args = array( 'label' => __( 'Scheduled Actions', 'woocommerce' ), 'description' => __( 'Scheduled actions are hooks triggered on a cetain date and time.', 'woocommerce' ), 'public' => false, 'map_meta_cap' => true, 'hierarchical' => false, 'supports' => array('title', 'editor','comments'), 'rewrite' => false, 'query_var' => false, 'can_export' => true, 'ep_mask' => EP_NONE, 'labels' => array( 'name' => __( 'Scheduled Actions', 'woocommerce' ), 'singular_name' => __( 'Scheduled Action', 'woocommerce' ), 'menu_name' => _x( 'Scheduled Actions', 'Admin menu name', 'woocommerce' ), 'add_new' => __( 'Add', 'woocommerce' ), 'add_new_item' => __( 'Add New Scheduled Action', 'woocommerce' ), 'edit' => __( 'Edit', 'woocommerce' ), 'edit_item' => __( 'Edit Scheduled Action', 'woocommerce' ), 'new_item' => __( 'New Scheduled Action', 'woocommerce' ), 'view' => __( 'View Action', 'woocommerce' ), 'view_item' => __( 'View Action', 'woocommerce' ), 'search_items' => __( 'Search Scheduled Actions', 'woocommerce' ), 'not_found' => __( 'No actions found', 'woocommerce' ), 'not_found_in_trash' => __( 'No actions found in trash', 'woocommerce' ), ), ); $args = apply_filters('action_scheduler_post_type_args', $args); return $args; } } app/Services/Libraries/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php000064400000015233147600120010027110 0ustar00create_wp_comment( $action_id, $message, $date ); return $comment_id; } protected function create_wp_comment( $action_id, $message, DateTime $date ) { $comment_date_gmt = $date->format('Y-m-d H:i:s'); ActionScheduler_TimezoneHelper::set_local_timezone( $date ); $comment_data = array( 'comment_post_ID' => $action_id, 'comment_date' => $date->format('Y-m-d H:i:s'), 'comment_date_gmt' => $comment_date_gmt, 'comment_author' => self::AGENT, 'comment_content' => $message, 'comment_agent' => self::AGENT, 'comment_type' => self::TYPE, ); return wp_insert_comment($comment_data); } /** * @param string $entry_id * * @return ActionScheduler_LogEntry */ public function get_entry( $entry_id ) { $comment = $this->get_comment( $entry_id ); if ( empty($comment) || $comment->comment_type != self::TYPE ) { return new ActionScheduler_NullLogEntry(); } $date = as_get_datetime_object( $comment->comment_date_gmt ); ActionScheduler_TimezoneHelper::set_local_timezone( $date ); return new ActionScheduler_LogEntry( $comment->comment_post_ID, $comment->comment_content, $date ); } /** * @param string $action_id * * @return ActionScheduler_LogEntry[] */ public function get_logs( $action_id ) { $status = 'all'; if ( get_post_status($action_id) == 'trash' ) { $status = 'post-trashed'; } $comments = get_comments(array( 'post_id' => $action_id, 'orderby' => 'comment_date_gmt', 'order' => 'ASC', 'type' => self::TYPE, 'status' => $status, )); $logs = array(); foreach ( $comments as $c ) { $entry = $this->get_entry( $c ); if ( !empty($entry) ) { $logs[] = $entry; } } return $logs; } protected function get_comment( $comment_id ) { return get_comment( $comment_id ); } /** * @param WP_Comment_Query $query */ public function filter_comment_queries( $query ) { foreach ( array('ID', 'parent', 'post_author', 'post_name', 'post_parent', 'type', 'post_type', 'post_id', 'post_ID') as $key ) { if ( !empty($query->query_vars[$key]) ) { return; // don't slow down queries that wouldn't include action_log comments anyway } } $query->query_vars['action_log_filter'] = TRUE; add_filter( 'comments_clauses', array( $this, 'filter_comment_query_clauses' ), 10, 2 ); } /** * @param array $clauses * @param WP_Comment_Query $query * * @return array */ public function filter_comment_query_clauses( $clauses, $query ) { if ( !empty($query->query_vars['action_log_filter']) ) { $clauses['where'] .= $this->get_where_clause(); } return $clauses; } /** * Make sure Action Scheduler logs are excluded from comment feeds, which use WP_Query, not * the WP_Comment_Query class handled by @see self::filter_comment_queries(). * * @param string $where * @param WP_Query $query * * @return string */ public function filter_comment_feed( $where, $query ) { if ( is_comment_feed() ) { $where .= $this->get_where_clause(); } return $where; } /** * Return a SQL clause to exclude Action Scheduler comments. * * @return string */ protected function get_where_clause() { global $wpdb; return sprintf( " AND {$wpdb->comments}.comment_type != '%s'", self::TYPE ); } /** * Remove action log entries from wp_count_comments() * * @param array $stats * @param int $post_id * * @return object */ public function filter_comment_count( $stats, $post_id ) { global $wpdb; if ( 0 === $post_id ) { $stats = $this->get_comment_count(); } return $stats; } /** * Retrieve the comment counts from our cache, or the database if the cached version isn't set. * * @return object */ protected function get_comment_count() { global $wpdb; $stats = get_transient( 'as_comment_count' ); if ( ! $stats ) { $stats = array(); $count = $wpdb->get_results( "SELECT comment_approved, COUNT( * ) AS num_comments FROM {$wpdb->comments} WHERE comment_type NOT IN('order_note','action_log') GROUP BY comment_approved", ARRAY_A ); $total = 0; $stats = array(); $approved = array( '0' => 'moderated', '1' => 'approved', 'spam' => 'spam', 'trash' => 'trash', 'post-trashed' => 'post-trashed' ); foreach ( (array) $count as $row ) { // Don't count post-trashed toward totals if ( 'post-trashed' != $row['comment_approved'] && 'trash' != $row['comment_approved'] ) { $total += $row['num_comments']; } if ( isset( $approved[ $row['comment_approved'] ] ) ) { $stats[ $approved[ $row['comment_approved'] ] ] = $row['num_comments']; } } $stats['total_comments'] = $total; $stats['all'] = $total; foreach ( $approved as $key ) { if ( empty( $stats[ $key ] ) ) { $stats[ $key ] = 0; } } $stats = (object) $stats; set_transient( 'as_comment_count', $stats ); } return $stats; } /** * Delete comment count cache whenever there is new comment or the status of a comment changes. Cache * will be regenerated next time ActionScheduler_wpCommentLogger::filter_comment_count() is called. */ public function delete_comment_count_cache() { delete_transient( 'as_comment_count' ); } /** * @codeCoverageIgnore */ public function init() { add_action( 'action_scheduler_before_process_queue', array( $this, 'disable_comment_counting' ), 10, 0 ); add_action( 'action_scheduler_after_process_queue', array( $this, 'enable_comment_counting' ), 10, 0 ); parent::init(); add_action( 'pre_get_comments', array( $this, 'filter_comment_queries' ), 10, 1 ); add_action( 'wp_count_comments', array( $this, 'filter_comment_count' ), 20, 2 ); // run after WC_Comments::wp_count_comments() to make sure we exclude order notes and action logs add_action( 'comment_feed_where', array( $this, 'filter_comment_feed' ), 10, 2 ); // Delete comments count cache whenever there is a new comment or a comment status changes add_action( 'wp_insert_comment', array( $this, 'delete_comment_count_cache' ) ); add_action( 'wp_set_comment_status', array( $this, 'delete_comment_count_cache' ) ); } public function disable_comment_counting() { wp_defer_comment_counting(true); } public function enable_comment_counting() { wp_defer_comment_counting(false); } } Libraries/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_TaxonomyRegistrar.php000064400000001205147600120010032004 0ustar00app/Servicestaxonomy_args() ); } protected function taxonomy_args() { $args = array( 'label' => __( 'Action Group', 'woocommerce' ), 'public' => false, 'hierarchical' => false, 'show_admin_column' => true, 'query_var' => false, 'rewrite' => false, ); $args = apply_filters( 'action_scheduler_taxonomy_args', $args ); return $args; } } app/Services/Libraries/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php000064400000104341147600120010026307 0ustar00validate_action( $action ); $post_array = $this->create_post_array( $action, $scheduled_date ); $post_id = $this->save_post_array( $post_array ); $this->save_post_schedule( $post_id, $action->get_schedule() ); $this->save_action_group( $post_id, $action->get_group() ); do_action( 'action_scheduler_stored_action', $post_id ); return $post_id; } catch ( Exception $e ) { /* translators: %s: action error message */ throw new RuntimeException( sprintf( __( 'Error saving action: %s', 'woocommerce' ), $e->getMessage() ), 0 ); } } /** * Create post array. * * @param ActionScheduler_Action $action Scheduled Action. * @param DateTime $scheduled_date Scheduled Date. * * @return array Returns an array of post data. */ protected function create_post_array( ActionScheduler_Action $action, DateTime $scheduled_date = null ) { $post = array( 'post_type' => self::POST_TYPE, 'post_title' => $action->get_hook(), 'post_content' => wp_json_encode( $action->get_args() ), 'post_status' => ( $action->is_finished() ? 'publish' : 'pending' ), 'post_date_gmt' => $this->get_scheduled_date_string( $action, $scheduled_date ), 'post_date' => $this->get_scheduled_date_string_local( $action, $scheduled_date ), ); return $post; } /** * Save post array. * * @param array $post_array Post array. * @return int Returns the post ID. * @throws RuntimeException Throws an exception if the action could not be saved. */ protected function save_post_array( $post_array ) { add_filter( 'wp_insert_post_data', array( $this, 'filter_insert_post_data' ), 10, 1 ); add_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10, 5 ); $has_kses = false !== has_filter( 'content_save_pre', 'wp_filter_post_kses' ); if ( $has_kses ) { // Prevent KSES from corrupting JSON in post_content. kses_remove_filters(); } $post_id = wp_insert_post( $post_array ); if ( $has_kses ) { kses_init_filters(); } remove_filter( 'wp_insert_post_data', array( $this, 'filter_insert_post_data' ), 10 ); remove_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10 ); if ( is_wp_error( $post_id ) || empty( $post_id ) ) { throw new RuntimeException( __( 'Unable to save action.', 'woocommerce' ) ); } return $post_id; } /** * Filter insert post data. * * @param array $postdata Post data to filter. * * @return array */ public function filter_insert_post_data( $postdata ) { if ( self::POST_TYPE === $postdata['post_type'] ) { $postdata['post_author'] = 0; if ( 'future' === $postdata['post_status'] ) { $postdata['post_status'] = 'publish'; } } return $postdata; } /** * Create a (probably unique) post name for scheduled actions in a more performant manner than wp_unique_post_slug(). * * When an action's post status is transitioned to something other than 'draft', 'pending' or 'auto-draft, like 'publish' * or 'failed' or 'trash', WordPress will find a unique slug (stored in post_name column) using the wp_unique_post_slug() * function. This is done to ensure URL uniqueness. The approach taken by wp_unique_post_slug() is to iterate over existing * post_name values that match, and append a number 1 greater than the largest. This makes sense when manually creating a * post from the Edit Post screen. It becomes a bottleneck when automatically processing thousands of actions, with a * database containing thousands of related post_name values. * * WordPress 5.1 introduces the 'pre_wp_unique_post_slug' filter for plugins to address this issue. * * We can short-circuit WordPress's wp_unique_post_slug() approach using the 'pre_wp_unique_post_slug' filter. This * method is available to be used as a callback on that filter. It provides a more scalable approach to generating a * post_name/slug that is probably unique. Because Action Scheduler never actually uses the post_name field, or an * action's slug, being probably unique is good enough. * * For more backstory on this issue, see: * - https://github.com/woocommerce/action-scheduler/issues/44 and * - https://core.trac.wordpress.org/ticket/21112 * * @param string $override_slug Short-circuit return value. * @param string $slug The desired slug (post_name). * @param int $post_ID Post ID. * @param string $post_status The post status. * @param string $post_type Post type. * @return string */ public function set_unique_post_slug( $override_slug, $slug, $post_ID, $post_status, $post_type ) { if ( self::POST_TYPE === $post_type ) { $override_slug = uniqid( self::POST_TYPE . '-', true ) . '-' . wp_generate_password( 32, false ); } return $override_slug; } /** * Save post schedule. * * @param int $post_id Post ID of the scheduled action. * @param string $schedule Schedule to save. * * @return void */ protected function save_post_schedule( $post_id, $schedule ) { update_post_meta( $post_id, self::SCHEDULE_META_KEY, $schedule ); } /** * Save action group. * * @param int $post_id Post ID. * @param string $group Group to save. * @return void */ protected function save_action_group( $post_id, $group ) { if ( empty( $group ) ) { wp_set_object_terms( $post_id, array(), self::GROUP_TAXONOMY, false ); } else { wp_set_object_terms( $post_id, array( $group ), self::GROUP_TAXONOMY, false ); } } /** * Fetch actions. * * @param int $action_id Action ID. * @return object */ public function fetch_action( $action_id ) { $post = $this->get_post( $action_id ); if ( empty( $post ) || self::POST_TYPE !== $post->post_type ) { return $this->get_null_action(); } try { $action = $this->make_action_from_post( $post ); } catch ( ActionScheduler_InvalidActionException $exception ) { do_action( 'action_scheduler_failed_fetch_action', $post->ID, $exception ); return $this->get_null_action(); } return $action; } /** * Get post. * * @param string $action_id - Action ID. * @return WP_Post|null */ protected function get_post( $action_id ) { if ( empty( $action_id ) ) { return null; } return get_post( $action_id ); } /** * Get NULL action. * * @return ActionScheduler_NullAction */ protected function get_null_action() { return new ActionScheduler_NullAction(); } /** * Make action from post. * * @param WP_Post $post Post object. * @return WP_Post */ protected function make_action_from_post( $post ) { $hook = $post->post_title; $args = json_decode( $post->post_content, true ); $this->validate_args( $args, $post->ID ); $schedule = get_post_meta( $post->ID, self::SCHEDULE_META_KEY, true ); $this->validate_schedule( $schedule, $post->ID ); $group = wp_get_object_terms( $post->ID, self::GROUP_TAXONOMY, array( 'fields' => 'names' ) ); $group = empty( $group ) ? '' : reset( $group ); return ActionScheduler::factory()->get_stored_action( $this->get_action_status_by_post_status( $post->post_status ), $hook, $args, $schedule, $group ); } /** * Get action status by post status. * * @param string $post_status Post status. * * @throws InvalidArgumentException Throw InvalidArgumentException if $post_status not in known status fields returned by $this->get_status_labels(). * @return string */ protected function get_action_status_by_post_status( $post_status ) { switch ( $post_status ) { case 'publish': $action_status = self::STATUS_COMPLETE; break; case 'trash': $action_status = self::STATUS_CANCELED; break; default: if ( ! array_key_exists( $post_status, $this->get_status_labels() ) ) { throw new InvalidArgumentException( sprintf( 'Invalid post status: "%s". No matching action status available.', $post_status ) ); } $action_status = $post_status; break; } return $action_status; } /** * Get post status by action status. * * @param string $action_status Action status. * * @throws InvalidArgumentException Throws InvalidArgumentException if $post_status not in known status fields returned by $this->get_status_labels(). * @return string */ protected function get_post_status_by_action_status( $action_status ) { switch ( $action_status ) { case self::STATUS_COMPLETE: $post_status = 'publish'; break; case self::STATUS_CANCELED: $post_status = 'trash'; break; default: if ( ! array_key_exists( $action_status, $this->get_status_labels() ) ) { throw new InvalidArgumentException( sprintf( 'Invalid action status: "%s".', $action_status ) ); } $post_status = $action_status; break; } return $post_status; } /** * Returns the SQL statement to query (or count) actions. * * @param array $query - Filtering options. * @param string $select_or_count - Whether the SQL should select and return the IDs or just the row count. * * @throws InvalidArgumentException - Throw InvalidArgumentException if $select_or_count not count or select. * @return string SQL statement. The returned SQL is already properly escaped. */ protected function get_query_actions_sql( array $query, $select_or_count = 'select' ) { if ( ! in_array( $select_or_count, array( 'select', 'count' ), true ) ) { throw new InvalidArgumentException( __( 'Invalid schedule. Cannot save action.', 'woocommerce' ) ); } $query = wp_parse_args( $query, array( 'hook' => '', 'args' => null, 'date' => null, 'date_compare' => '<=', 'modified' => null, 'modified_compare' => '<=', 'group' => '', 'status' => '', 'claimed' => null, 'per_page' => 5, 'offset' => 0, 'orderby' => 'date', 'order' => 'ASC', 'search' => '', ) ); /** * Global wpdb object. * * @var wpdb $wpdb */ global $wpdb; $sql = ( 'count' === $select_or_count ) ? 'SELECT count(p.ID)' : 'SELECT p.ID '; $sql .= "FROM {$wpdb->posts} p"; $sql_params = array(); if ( empty( $query['group'] ) && 'group' === $query['orderby'] ) { $sql .= " LEFT JOIN {$wpdb->term_relationships} tr ON tr.object_id=p.ID"; $sql .= " LEFT JOIN {$wpdb->term_taxonomy} tt ON tr.term_taxonomy_id=tt.term_taxonomy_id"; $sql .= " LEFT JOIN {$wpdb->terms} t ON tt.term_id=t.term_id"; } elseif ( ! empty( $query['group'] ) ) { $sql .= " INNER JOIN {$wpdb->term_relationships} tr ON tr.object_id=p.ID"; $sql .= " INNER JOIN {$wpdb->term_taxonomy} tt ON tr.term_taxonomy_id=tt.term_taxonomy_id"; $sql .= " INNER JOIN {$wpdb->terms} t ON tt.term_id=t.term_id"; $sql .= ' AND t.slug=%s'; $sql_params[] = $query['group']; } $sql .= ' WHERE post_type=%s'; $sql_params[] = self::POST_TYPE; if ( $query['hook'] ) { $sql .= ' AND p.post_title=%s'; $sql_params[] = $query['hook']; } if ( ! is_null( $query['args'] ) ) { $sql .= ' AND p.post_content=%s'; $sql_params[] = wp_json_encode( $query['args'] ); } if ( $query['status'] ) { $post_statuses = array_map( array( $this, 'get_post_status_by_action_status' ), (array) $query['status'] ); $placeholders = array_fill( 0, count( $post_statuses ), '%s' ); $sql .= ' AND p.post_status IN (' . join( ', ', $placeholders ) . ')'; $sql_params = array_merge( $sql_params, array_values( $post_statuses ) ); } if ( $query['date'] instanceof DateTime ) { $date = clone $query['date']; $date->setTimezone( new DateTimeZone( 'UTC' ) ); $date_string = $date->format( 'Y-m-d H:i:s' ); $comparator = $this->validate_sql_comparator( $query['date_compare'] ); $sql .= " AND p.post_date_gmt $comparator %s"; $sql_params[] = $date_string; } if ( $query['modified'] instanceof DateTime ) { $modified = clone $query['modified']; $modified->setTimezone( new DateTimeZone( 'UTC' ) ); $date_string = $modified->format( 'Y-m-d H:i:s' ); $comparator = $this->validate_sql_comparator( $query['modified_compare'] ); $sql .= " AND p.post_modified_gmt $comparator %s"; $sql_params[] = $date_string; } if ( true === $query['claimed'] ) { $sql .= " AND p.post_password != ''"; } elseif ( false === $query['claimed'] ) { $sql .= " AND p.post_password = ''"; } elseif ( ! is_null( $query['claimed'] ) ) { $sql .= ' AND p.post_password = %s'; $sql_params[] = $query['claimed']; } if ( ! empty( $query['search'] ) ) { $sql .= ' AND (p.post_title LIKE %s OR p.post_content LIKE %s OR p.post_password LIKE %s)'; for ( $i = 0; $i < 3; $i++ ) { $sql_params[] = sprintf( '%%%s%%', $query['search'] ); } } if ( 'select' === $select_or_count ) { switch ( $query['orderby'] ) { case 'hook': $orderby = 'p.post_title'; break; case 'group': $orderby = 't.name'; break; case 'status': $orderby = 'p.post_status'; break; case 'modified': $orderby = 'p.post_modified'; break; case 'claim_id': $orderby = 'p.post_password'; break; case 'schedule': case 'date': default: $orderby = 'p.post_date_gmt'; break; } if ( 'ASC' === strtoupper( $query['order'] ) ) { $order = 'ASC'; } else { $order = 'DESC'; } $sql .= " ORDER BY $orderby $order"; if ( $query['per_page'] > 0 ) { $sql .= ' LIMIT %d, %d'; $sql_params[] = $query['offset']; $sql_params[] = $query['per_page']; } } return $wpdb->prepare( $sql, $sql_params ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } /** * Query for action count or list of action IDs. * * @since 3.3.0 $query['status'] accepts array of statuses instead of a single status. * * @see ActionScheduler_Store::query_actions for $query arg usage. * * @param array $query Query filtering options. * @param string $query_type Whether to select or count the results. Defaults to select. * * @return string|array|null The IDs of actions matching the query. Null on failure. */ public function query_actions( $query = array(), $query_type = 'select' ) { /** * Global $wpdb object. * * @var wpdb $wpdb */ global $wpdb; $sql = $this->get_query_actions_sql( $query, $query_type ); return ( 'count' === $query_type ) ? $wpdb->get_var( $sql ) : $wpdb->get_col( $sql ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching,WordPress.DB.PreparedSQL.NotPrepared } /** * Get a count of all actions in the store, grouped by status * * @return array */ public function action_counts() { $action_counts_by_status = array(); $action_stati_and_labels = $this->get_status_labels(); $posts_count_by_status = (array) wp_count_posts( self::POST_TYPE, 'readable' ); foreach ( $posts_count_by_status as $post_status_name => $count ) { try { $action_status_name = $this->get_action_status_by_post_status( $post_status_name ); } catch ( Exception $e ) { // Ignore any post statuses that aren't for actions. continue; } if ( array_key_exists( $action_status_name, $action_stati_and_labels ) ) { $action_counts_by_status[ $action_status_name ] = $count; } } return $action_counts_by_status; } /** * Cancel action. * * @param int $action_id Action ID. * * @throws InvalidArgumentException If $action_id is not identified. */ public function cancel_action( $action_id ) { $post = get_post( $action_id ); if ( empty( $post ) || ( self::POST_TYPE !== $post->post_type ) ) { /* translators: %s is the action ID */ throw new InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'woocommerce' ), $action_id ) ); } do_action( 'action_scheduler_canceled_action', $action_id ); add_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10, 5 ); wp_trash_post( $action_id ); remove_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10 ); } /** * Delete action. * * @param int $action_id Action ID. * @return void * @throws InvalidArgumentException If action is not identified. */ public function delete_action( $action_id ) { $post = get_post( $action_id ); if ( empty( $post ) || ( self::POST_TYPE !== $post->post_type ) ) { /* translators: %s is the action ID */ throw new InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'woocommerce' ), $action_id ) ); } do_action( 'action_scheduler_deleted_action', $action_id ); wp_delete_post( $action_id, true ); } /** * Get date for claim id. * * @param int $action_id Action ID. * @return ActionScheduler_DateTime The date the action is schedule to run, or the date that it ran. */ public function get_date( $action_id ) { $next = $this->get_date_gmt( $action_id ); return ActionScheduler_TimezoneHelper::set_local_timezone( $next ); } /** * Get Date GMT. * * @param int $action_id Action ID. * * @throws InvalidArgumentException If $action_id is not identified. * @return ActionScheduler_DateTime The date the action is schedule to run, or the date that it ran. */ public function get_date_gmt( $action_id ) { $post = get_post( $action_id ); if ( empty( $post ) || ( self::POST_TYPE !== $post->post_type ) ) { /* translators: %s is the action ID */ throw new InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'woocommerce' ), $action_id ) ); } if ( 'publish' === $post->post_status ) { return as_get_datetime_object( $post->post_modified_gmt ); } else { return as_get_datetime_object( $post->post_date_gmt ); } } /** * Stake claim. * * @param int $max_actions Maximum number of actions. * @param DateTime $before_date Jobs must be schedule before this date. Defaults to now. * @param array $hooks Claim only actions with a hook or hooks. * @param string $group Claim only actions in the given group. * * @return ActionScheduler_ActionClaim * @throws RuntimeException When there is an error staking a claim. * @throws InvalidArgumentException When the given group is not valid. */ public function stake_claim( $max_actions = 10, DateTime $before_date = null, $hooks = array(), $group = '' ) { $this->claim_before_date = $before_date; $claim_id = $this->generate_claim_id(); $this->claim_actions( $claim_id, $max_actions, $before_date, $hooks, $group ); $action_ids = $this->find_actions_by_claim_id( $claim_id ); $this->claim_before_date = null; return new ActionScheduler_ActionClaim( $claim_id, $action_ids ); } /** * Get claim count. * * @return int */ public function get_claim_count() { global $wpdb; // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT post_password) FROM {$wpdb->posts} WHERE post_password != '' AND post_type = %s AND post_status IN ('in-progress','pending')", array( self::POST_TYPE ) ) ); } /** * Generate claim id. * * @return string */ protected function generate_claim_id() { $claim_id = md5( microtime( true ) . wp_rand( 0, 1000 ) ); return substr( $claim_id, 0, 20 ); // to fit in db field with 20 char limit. } /** * Claim actions. * * @param string $claim_id Claim ID. * @param int $limit Limit. * @param DateTime $before_date Should use UTC timezone. * @param array $hooks Claim only actions with a hook or hooks. * @param string $group Claim only actions in the given group. * * @return int The number of actions that were claimed. * @throws RuntimeException When there is a database error. */ protected function claim_actions( $claim_id, $limit, DateTime $before_date = null, $hooks = array(), $group = '' ) { // Set up initial variables. $date = null === $before_date ? as_get_datetime_object() : clone $before_date; $limit_ids = ! empty( $group ); $ids = $limit_ids ? $this->get_actions_by_group( $group, $limit, $date ) : array(); // If limiting by IDs and no posts found, then return early since we have nothing to update. if ( $limit_ids && 0 === count( $ids ) ) { return 0; } /** * Global wpdb object. * * @var wpdb $wpdb */ global $wpdb; /* * Build up custom query to update the affected posts. Parameters are built as a separate array * to make it easier to identify where they are in the query. * * We can't use $wpdb->update() here because of the "ID IN ..." clause. */ $update = "UPDATE {$wpdb->posts} SET post_password = %s, post_modified_gmt = %s, post_modified = %s"; $params = array( $claim_id, current_time( 'mysql', true ), current_time( 'mysql' ), ); // Build initial WHERE clause. $where = "WHERE post_type = %s AND post_status = %s AND post_password = ''"; $params[] = self::POST_TYPE; $params[] = ActionScheduler_Store::STATUS_PENDING; if ( ! empty( $hooks ) ) { $placeholders = array_fill( 0, count( $hooks ), '%s' ); $where .= ' AND post_title IN (' . join( ', ', $placeholders ) . ')'; $params = array_merge( $params, array_values( $hooks ) ); } /* * Add the IDs to the WHERE clause. IDs not escaped because they came directly from a prior DB query. * * If we're not limiting by IDs, then include the post_date_gmt clause. */ if ( $limit_ids ) { $where .= ' AND ID IN (' . join( ',', $ids ) . ')'; } else { $where .= ' AND post_date_gmt <= %s'; $params[] = $date->format( 'Y-m-d H:i:s' ); } // Add the ORDER BY clause and,ms limit. $order = 'ORDER BY menu_order ASC, post_date_gmt ASC, ID ASC LIMIT %d'; $params[] = $limit; // Run the query and gather results. $rows_affected = $wpdb->query( $wpdb->prepare( "{$update} {$where} {$order}", $params ) ); // phpcs:ignore // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare if ( false === $rows_affected ) { throw new RuntimeException( __( 'Unable to claim actions. Database error.', 'woocommerce' ) ); } return (int) $rows_affected; } /** * Get IDs of actions within a certain group and up to a certain date/time. * * @param string $group The group to use in finding actions. * @param int $limit The number of actions to retrieve. * @param DateTime $date DateTime object representing cutoff time for actions. Actions retrieved will be * up to and including this DateTime. * * @return array IDs of actions in the appropriate group and before the appropriate time. * @throws InvalidArgumentException When the group does not exist. */ protected function get_actions_by_group( $group, $limit, DateTime $date ) { // Ensure the group exists before continuing. if ( ! term_exists( $group, self::GROUP_TAXONOMY ) ) { /* translators: %s is the group name */ throw new InvalidArgumentException( sprintf( __( 'The group "%s" does not exist.', 'woocommerce' ), $group ) ); } // Set up a query for post IDs to use later. $query = new WP_Query(); $query_args = array( 'fields' => 'ids', 'post_type' => self::POST_TYPE, 'post_status' => ActionScheduler_Store::STATUS_PENDING, 'has_password' => false, 'posts_per_page' => $limit * 3, 'suppress_filters' => true, 'no_found_rows' => true, 'orderby' => array( 'menu_order' => 'ASC', 'date' => 'ASC', 'ID' => 'ASC', ), 'date_query' => array( 'column' => 'post_date_gmt', 'before' => $date->format( 'Y-m-d H:i' ), 'inclusive' => true, ), 'tax_query' => array( // phpcs:ignore WordPress.DB.SlowDBQuery array( 'taxonomy' => self::GROUP_TAXONOMY, 'field' => 'slug', 'terms' => $group, 'include_children' => false, ), ), ); return $query->query( $query_args ); } /** * Find actions by claim ID. * * @param string $claim_id Claim ID. * @return array */ public function find_actions_by_claim_id( $claim_id ) { /** * Global wpdb object. * * @var wpdb $wpdb */ global $wpdb; $action_ids = array(); $before_date = isset( $this->claim_before_date ) ? $this->claim_before_date : as_get_datetime_object(); $cut_off = $before_date->format( 'Y-m-d H:i:s' ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $results = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_date_gmt FROM {$wpdb->posts} WHERE post_type = %s AND post_password = %s", array( self::POST_TYPE, $claim_id, ) ) ); // Verify that the scheduled date for each action is within the expected bounds (in some unusual // cases, we cannot depend on MySQL to honor all of the WHERE conditions we specify). foreach ( $results as $claimed_action ) { if ( $claimed_action->post_date_gmt <= $cut_off ) { $action_ids[] = absint( $claimed_action->ID ); } } return $action_ids; } /** * Release claim. * * @param ActionScheduler_ActionClaim $claim Claim object to release. * @return void * @throws RuntimeException When the claim is not unlocked. */ public function release_claim( ActionScheduler_ActionClaim $claim ) { $action_ids = $this->find_actions_by_claim_id( $claim->get_id() ); if ( empty( $action_ids ) ) { return; // nothing to do. } $action_id_string = implode( ',', array_map( 'intval', $action_ids ) ); /** * Global wpdb object. * * @var wpdb $wpdb */ global $wpdb; // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $result = $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->posts} SET post_password = '' WHERE ID IN ($action_id_string) AND post_password = %s", //phpcs:ignore array( $claim->get_id(), ) ) ); if ( false === $result ) { /* translators: %s: claim ID */ throw new RuntimeException( sprintf( __( 'Unable to unlock claim %s. Database error.', 'woocommerce' ), $claim->get_id() ) ); } } /** * Unclaim action. * * @param string $action_id Action ID. * @throws RuntimeException When unable to unlock claim on action ID. */ public function unclaim_action( $action_id ) { /** * Global wpdb object. * * @var wpdb $wpdb */ global $wpdb; //phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $result = $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->posts} SET post_password = '' WHERE ID = %d AND post_type = %s", $action_id, self::POST_TYPE ) ); if ( false === $result ) { /* translators: %s: action ID */ throw new RuntimeException( sprintf( __( 'Unable to unlock claim on action %s. Database error.', 'woocommerce' ), $action_id ) ); } } /** * Mark failure on action. * * @param int $action_id Action ID. * * @return void * @throws RuntimeException When unable to mark failure on action ID. */ public function mark_failure( $action_id ) { /** * Global wpdb object. * * @var wpdb $wpdb */ global $wpdb; // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $result = $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->posts} SET post_status = %s WHERE ID = %d AND post_type = %s", self::STATUS_FAILED, $action_id, self::POST_TYPE ) ); if ( false === $result ) { /* translators: %s: action ID */ throw new RuntimeException( sprintf( __( 'Unable to mark failure on action %s. Database error.', 'woocommerce' ), $action_id ) ); } } /** * Return an action's claim ID, as stored in the post password column * * @param int $action_id Action ID. * @return mixed */ public function get_claim_id( $action_id ) { return $this->get_post_column( $action_id, 'post_password' ); } /** * Return an action's status, as stored in the post status column * * @param int $action_id Action ID. * * @return mixed * @throws InvalidArgumentException When the action ID is invalid. */ public function get_status( $action_id ) { $status = $this->get_post_column( $action_id, 'post_status' ); if ( null === $status ) { throw new InvalidArgumentException( __( 'Invalid action ID. No status found.', 'woocommerce' ) ); } return $this->get_action_status_by_post_status( $status ); } /** * Get post column * * @param string $action_id Action ID. * @param string $column_name Column Name. * * @return string|null */ private function get_post_column( $action_id, $column_name ) { /** * Global wpdb object. * * @var wpdb $wpdb */ global $wpdb; // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching return $wpdb->get_var( $wpdb->prepare( "SELECT {$column_name} FROM {$wpdb->posts} WHERE ID=%d AND post_type=%s", // phpcs:ignore $action_id, self::POST_TYPE ) ); } /** * Log Execution. * * @param string $action_id Action ID. */ public function log_execution( $action_id ) { /** * Global wpdb object. * * @var wpdb $wpdb */ global $wpdb; // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->posts} SET menu_order = menu_order+1, post_status=%s, post_modified_gmt = %s, post_modified = %s WHERE ID = %d AND post_type = %s", self::STATUS_RUNNING, current_time( 'mysql', true ), current_time( 'mysql' ), $action_id, self::POST_TYPE ) ); } /** * Record that an action was completed. * * @param string $action_id ID of the completed action. * * @throws InvalidArgumentException When the action ID is invalid. * @throws RuntimeException When there was an error executing the action. */ public function mark_complete( $action_id ) { $post = get_post( $action_id ); if ( empty( $post ) || ( self::POST_TYPE !== $post->post_type ) ) { /* translators: %s is the action ID */ throw new InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'woocommerce' ), $action_id ) ); } add_filter( 'wp_insert_post_data', array( $this, 'filter_insert_post_data' ), 10, 1 ); add_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10, 5 ); $result = wp_update_post( array( 'ID' => $action_id, 'post_status' => 'publish', ), true ); remove_filter( 'wp_insert_post_data', array( $this, 'filter_insert_post_data' ), 10 ); remove_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10 ); if ( is_wp_error( $result ) ) { throw new RuntimeException( $result->get_error_message() ); } /** * Fires after a scheduled action has been completed. * * @since 3.4.2 * * @param int $action_id Action ID. */ do_action( 'action_scheduler_completed_action', $action_id ); } /** * Mark action as migrated when there is an error deleting the action. * * @param int $action_id Action ID. */ public function mark_migrated( $action_id ) { wp_update_post( array( 'ID' => $action_id, 'post_status' => 'migrated', ) ); } /** * Determine whether the post store can be migrated. * * @param [type] $setting - Setting value. * @return bool */ public function migration_dependencies_met( $setting ) { global $wpdb; $dependencies_met = get_transient( self::DEPENDENCIES_MET ); if ( empty( $dependencies_met ) ) { $maximum_args_length = apply_filters( 'action_scheduler_maximum_args_length', 191 ); $found_action = $wpdb->get_var( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_type = %s AND CHAR_LENGTH(post_content) > %d LIMIT 1", $maximum_args_length, self::POST_TYPE ) ); $dependencies_met = $found_action ? 'no' : 'yes'; set_transient( self::DEPENDENCIES_MET, $dependencies_met, DAY_IN_SECONDS ); } return 'yes' === $dependencies_met ? $setting : false; } /** * InnoDB indexes have a maximum size of 767 bytes by default, which is only 191 characters with utf8mb4. * * Previously, AS wasn't concerned about args length, as we used the (unindex) post_content column. However, * as we prepare to move to custom tables, and can use an indexed VARCHAR column instead, we want to warn * developers of this impending requirement. * * @param ActionScheduler_Action $action Action object. */ protected function validate_action( ActionScheduler_Action $action ) { try { parent::validate_action( $action ); } catch ( Exception $e ) { /* translators: %s is the error message */ $message = sprintf( __( '%s Support for strings longer than this will be removed in a future version.', 'woocommerce' ), $e->getMessage() ); _doing_it_wrong( 'ActionScheduler_Action::$args', esc_html( $message ), '2.1.0' ); } } /** * (@codeCoverageIgnore) */ public function init() { add_filter( 'action_scheduler_migration_dependencies_met', array( $this, 'migration_dependencies_met' ) ); $post_type_registrar = new ActionScheduler_wpPostStore_PostTypeRegistrar(); $post_type_registrar->register(); $post_status_registrar = new ActionScheduler_wpPostStore_PostStatusRegistrar(); $post_status_registrar->register(); $taxonomy_registrar = new ActionScheduler_wpPostStore_TaxonomyRegistrar(); $taxonomy_registrar->register(); } } app/Services/Libraries/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php000064400000104755147600120010025311 0ustar00init(); $table_maker->register_tables(); } /** * Save an action, checks if this is a unique action before actually saving. * * @param ActionScheduler_Action $action Action object. * @param \DateTime $scheduled_date Optional schedule date. Default null. * * @return int Action ID. * @throws RuntimeException Throws exception when saving the action fails. */ public function save_unique_action( ActionScheduler_Action $action, \DateTime $scheduled_date = null ) { return $this->save_action_to_db( $action, $scheduled_date, true ); } /** * Save an action. Can save duplicate action as well, prefer using `save_unique_action` instead. * * @param ActionScheduler_Action $action Action object. * @param \DateTime $scheduled_date Optional schedule date. Default null. * * @return int Action ID. * @throws RuntimeException Throws exception when saving the action fails. */ public function save_action( ActionScheduler_Action $action, \DateTime $scheduled_date = null ) { return $this->save_action_to_db( $action, $scheduled_date, false ); } /** * Save an action. * * @param ActionScheduler_Action $action Action object. * @param ?DateTime $date Optional schedule date. Default null. * @param bool $unique Whether the action should be unique. * * @return int Action ID. * @throws RuntimeException Throws exception when saving the action fails. */ private function save_action_to_db( ActionScheduler_Action $action, DateTime $date = null, $unique = false ) { global $wpdb; try { $this->validate_action( $action ); $data = array( 'hook' => $action->get_hook(), 'status' => ( $action->is_finished() ? self::STATUS_COMPLETE : self::STATUS_PENDING ), 'scheduled_date_gmt' => $this->get_scheduled_date_string( $action, $date ), 'scheduled_date_local' => $this->get_scheduled_date_string_local( $action, $date ), 'schedule' => serialize( $action->get_schedule() ), // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize 'group_id' => $this->get_group_id( $action->get_group() ), ); $args = wp_json_encode( $action->get_args() ); if ( strlen( $args ) <= static::$max_index_length ) { $data['args'] = $args; } else { $data['args'] = $this->hash_args( $args ); $data['extended_args'] = $args; } $insert_sql = $this->build_insert_sql( $data, $unique ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- $insert_sql should be already prepared. $wpdb->query( $insert_sql ); $action_id = $wpdb->insert_id; if ( is_wp_error( $action_id ) ) { throw new \RuntimeException( $action_id->get_error_message() ); } elseif ( empty( $action_id ) ) { if ( $unique ) { return 0; } throw new \RuntimeException( $wpdb->last_error ? $wpdb->last_error : __( 'Database error.', 'woocommerce' ) ); } do_action( 'action_scheduler_stored_action', $action_id ); return $action_id; } catch ( \Exception $e ) { /* translators: %s: error message */ throw new \RuntimeException( sprintf( __( 'Error saving action: %s', 'woocommerce' ), $e->getMessage() ), 0 ); } } /** * Helper function to build insert query. * * @param array $data Row data for action. * @param bool $unique Whether the action should be unique. * * @return string Insert query. */ private function build_insert_sql( array $data, $unique ) { global $wpdb; $columns = array_keys( $data ); $values = array_values( $data ); $placeholders = array_map( array( $this, 'get_placeholder_for_column' ), $columns ); $table_name = ! empty( $wpdb->actionscheduler_actions ) ? $wpdb->actionscheduler_actions : $wpdb->prefix . 'actionscheduler_actions'; $column_sql = '`' . implode( '`, `', $columns ) . '`'; $placeholder_sql = implode( ', ', $placeholders ); $where_clause = $this->build_where_clause_for_insert( $data, $table_name, $unique ); // phpcs:disable WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $column_sql and $where_clause are already prepared. $placeholder_sql is hardcoded. $insert_query = $wpdb->prepare( " INSERT INTO $table_name ( $column_sql ) SELECT $placeholder_sql FROM DUAL WHERE ( $where_clause ) IS NULL", $values ); // phpcs:enable return $insert_query; } /** * Helper method to build where clause for action insert statement. * * @param array $data Row data for action. * @param string $table_name Action table name. * @param bool $unique Where action should be unique. * * @return string Where clause to be used with insert. */ private function build_where_clause_for_insert( $data, $table_name, $unique ) { global $wpdb; if ( ! $unique ) { return 'SELECT NULL FROM DUAL'; } $pending_statuses = array( ActionScheduler_Store::STATUS_PENDING, ActionScheduler_Store::STATUS_RUNNING, ); $pending_status_placeholders = implode( ', ', array_fill( 0, count( $pending_statuses ), '%s' ) ); // phpcs:disable WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $pending_status_placeholders is hardcoded. $where_clause = $wpdb->prepare( " SELECT action_id FROM $table_name WHERE status IN ( $pending_status_placeholders ) AND hook = %s AND `group_id` = %d ", array_merge( $pending_statuses, array( $data['hook'], $data['group_id'], ) ) ); // phpcs:enable return "$where_clause" . ' LIMIT 1'; } /** * Helper method to get $wpdb->prepare placeholder for a given column name. * * @param string $column_name Name of column in actions table. * * @return string Placeholder to use for given column. */ private function get_placeholder_for_column( $column_name ) { $string_columns = array( 'hook', 'status', 'scheduled_date_gmt', 'scheduled_date_local', 'args', 'schedule', 'last_attempt_gmt', 'last_attempt_local', 'extended_args', ); return in_array( $column_name, $string_columns ) ? '%s' : '%d'; } /** * Generate a hash from json_encoded $args using MD5 as this isn't for security. * * @param string $args JSON encoded action args. * @return string */ protected function hash_args( $args ) { return md5( $args ); } /** * Get action args query param value from action args. * * @param array $args Action args. * @return string */ protected function get_args_for_query( $args ) { $encoded = wp_json_encode( $args ); if ( strlen( $encoded ) <= static::$max_index_length ) { return $encoded; } return $this->hash_args( $encoded ); } /** * Get a group's ID based on its name/slug. * * @param string $slug The string name of a group. * @param bool $create_if_not_exists Whether to create the group if it does not already exist. Default, true - create the group. * * @return int The group's ID, if it exists or is created, or 0 if it does not exist and is not created. */ protected function get_group_id( $slug, $create_if_not_exists = true ) { if ( empty( $slug ) ) { return 0; } /** @var \wpdb $wpdb */ global $wpdb; $group_id = (int) $wpdb->get_var( $wpdb->prepare( "SELECT group_id FROM {$wpdb->actionscheduler_groups} WHERE slug=%s", $slug ) ); if ( empty( $group_id ) && $create_if_not_exists ) { $group_id = $this->create_group( $slug ); } return $group_id; } /** * Create an action group. * * @param string $slug Group slug. * * @return int Group ID. */ protected function create_group( $slug ) { /** @var \wpdb $wpdb */ global $wpdb; $wpdb->insert( $wpdb->actionscheduler_groups, array( 'slug' => $slug ) ); return (int) $wpdb->insert_id; } /** * Retrieve an action. * * @param int $action_id Action ID. * * @return ActionScheduler_Action */ public function fetch_action( $action_id ) { /** @var \wpdb $wpdb */ global $wpdb; $data = $wpdb->get_row( $wpdb->prepare( "SELECT a.*, g.slug AS `group` FROM {$wpdb->actionscheduler_actions} a LEFT JOIN {$wpdb->actionscheduler_groups} g ON a.group_id=g.group_id WHERE a.action_id=%d", $action_id ) ); if ( empty( $data ) ) { return $this->get_null_action(); } if ( ! empty( $data->extended_args ) ) { $data->args = $data->extended_args; unset( $data->extended_args ); } // Convert NULL dates to zero dates. $date_fields = array( 'scheduled_date_gmt', 'scheduled_date_local', 'last_attempt_gmt', 'last_attempt_gmt', ); foreach ( $date_fields as $date_field ) { if ( is_null( $data->$date_field ) ) { $data->$date_field = ActionScheduler_StoreSchema::DEFAULT_DATE; } } try { $action = $this->make_action_from_db_record( $data ); } catch ( ActionScheduler_InvalidActionException $exception ) { do_action( 'action_scheduler_failed_fetch_action', $action_id, $exception ); return $this->get_null_action(); } return $action; } /** * Create a null action. * * @return ActionScheduler_NullAction */ protected function get_null_action() { return new ActionScheduler_NullAction(); } /** * Create an action from a database record. * * @param object $data Action database record. * * @return ActionScheduler_Action|ActionScheduler_CanceledAction|ActionScheduler_FinishedAction */ protected function make_action_from_db_record( $data ) { $hook = $data->hook; $args = json_decode( $data->args, true ); $schedule = unserialize( $data->schedule ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_unserialize $this->validate_args( $args, $data->action_id ); $this->validate_schedule( $schedule, $data->action_id ); if ( empty( $schedule ) ) { $schedule = new ActionScheduler_NullSchedule(); } $group = $data->group ? $data->group : ''; return ActionScheduler::factory()->get_stored_action( $data->status, $data->hook, $args, $schedule, $group ); } /** * Returns the SQL statement to query (or count) actions. * * @since 3.3.0 $query['status'] accepts array of statuses instead of a single status. * * @param array $query Filtering options. * @param string $select_or_count Whether the SQL should select and return the IDs or just the row count. * * @return string SQL statement already properly escaped. * @throws InvalidArgumentException If the query is invalid. */ protected function get_query_actions_sql( array $query, $select_or_count = 'select' ) { if ( ! in_array( $select_or_count, array( 'select', 'count' ), true ) ) { throw new InvalidArgumentException( __( 'Invalid value for select or count parameter. Cannot query actions.', 'woocommerce' ) ); } $query = wp_parse_args( $query, array( 'hook' => '', 'args' => null, 'partial_args_matching' => 'off', // can be 'like' or 'json' 'date' => null, 'date_compare' => '<=', 'modified' => null, 'modified_compare' => '<=', 'group' => '', 'status' => '', 'claimed' => null, 'per_page' => 5, 'offset' => 0, 'orderby' => 'date', 'order' => 'ASC', ) ); /** @var \wpdb $wpdb */ global $wpdb; $db_server_info = is_callable( array( $wpdb, 'db_server_info' ) ) ? $wpdb->db_server_info() : $wpdb->db_version(); if ( false !== strpos( $db_server_info, 'MariaDB' ) ) { $supports_json = version_compare( PHP_VERSION_ID >= 80016 ? $wpdb->db_version() : preg_replace( '/[^0-9.].*/', '', str_replace( '5.5.5-', '', $db_server_info ) ), '10.2', '>=' ); } else { $supports_json = version_compare( $wpdb->db_version(), '5.7', '>=' ); } $sql = ( 'count' === $select_or_count ) ? 'SELECT count(a.action_id)' : 'SELECT a.action_id'; $sql .= " FROM {$wpdb->actionscheduler_actions} a"; $sql_params = array(); if ( ! empty( $query['group'] ) || 'group' === $query['orderby'] ) { $sql .= " LEFT JOIN {$wpdb->actionscheduler_groups} g ON g.group_id=a.group_id"; } $sql .= " WHERE 1=1"; if ( ! empty( $query['group'] ) ) { $sql .= " AND g.slug=%s"; $sql_params[] = $query['group']; } if ( ! empty( $query['hook'] ) ) { $sql .= " AND a.hook=%s"; $sql_params[] = $query['hook']; } if ( ! is_null( $query['args'] ) ) { switch ( $query['partial_args_matching'] ) { case 'json': if ( ! $supports_json ) { throw new \RuntimeException( __( 'JSON partial matching not supported in your environment. Please check your MySQL/MariaDB version.', 'woocommerce' ) ); } $supported_types = array( 'integer' => '%d', 'boolean' => '%s', 'double' => '%f', 'string' => '%s', ); foreach ( $query['args'] as $key => $value ) { $value_type = gettype( $value ); if ( 'boolean' === $value_type ) { $value = $value ? 'true' : 'false'; } $placeholder = isset( $supported_types[ $value_type ] ) ? $supported_types[ $value_type ] : false; if ( ! $placeholder ) { throw new \RuntimeException( sprintf( /* translators: %s: provided value type */ __( 'The value type for the JSON partial matching is not supported. Must be either integer, boolean, double or string. %s type provided.', 'woocommerce' ), $value_type ) ); } $sql .= ' AND JSON_EXTRACT(a.args, %s)='.$placeholder; $sql_params[] = '$.'.$key; $sql_params[] = $value; } break; case 'like': foreach ( $query['args'] as $key => $value ) { $sql .= ' AND a.args LIKE %s'; $json_partial = $wpdb->esc_like( trim( json_encode( array( $key => $value ) ), '{}' ) ); $sql_params[] = "%{$json_partial}%"; } break; case 'off': $sql .= " AND a.args=%s"; $sql_params[] = $this->get_args_for_query( $query['args'] ); break; default: throw new \RuntimeException( __( 'Unknown partial args matching value.', 'woocommerce' ) ); } } if ( $query['status'] ) { $statuses = (array) $query['status']; $placeholders = array_fill( 0, count( $statuses ), '%s' ); $sql .= ' AND a.status IN (' . join( ', ', $placeholders ) . ')'; $sql_params = array_merge( $sql_params, array_values( $statuses ) ); } if ( $query['date'] instanceof \DateTime ) { $date = clone $query['date']; $date->setTimezone( new \DateTimeZone( 'UTC' ) ); $date_string = $date->format( 'Y-m-d H:i:s' ); $comparator = $this->validate_sql_comparator( $query['date_compare'] ); $sql .= " AND a.scheduled_date_gmt $comparator %s"; $sql_params[] = $date_string; } if ( $query['modified'] instanceof \DateTime ) { $modified = clone $query['modified']; $modified->setTimezone( new \DateTimeZone( 'UTC' ) ); $date_string = $modified->format( 'Y-m-d H:i:s' ); $comparator = $this->validate_sql_comparator( $query['modified_compare'] ); $sql .= " AND a.last_attempt_gmt $comparator %s"; $sql_params[] = $date_string; } if ( true === $query['claimed'] ) { $sql .= ' AND a.claim_id != 0'; } elseif ( false === $query['claimed'] ) { $sql .= ' AND a.claim_id = 0'; } elseif ( ! is_null( $query['claimed'] ) ) { $sql .= ' AND a.claim_id = %d'; $sql_params[] = $query['claimed']; } if ( ! empty( $query['search'] ) ) { $sql .= ' AND (a.hook LIKE %s OR (a.extended_args IS NULL AND a.args LIKE %s) OR a.extended_args LIKE %s'; for ( $i = 0; $i < 3; $i++ ) { $sql_params[] = sprintf( '%%%s%%', $query['search'] ); } $search_claim_id = (int) $query['search']; if ( $search_claim_id ) { $sql .= ' OR a.claim_id = %d'; $sql_params[] = $search_claim_id; } $sql .= ')'; } if ( 'select' === $select_or_count ) { if ( 'ASC' === strtoupper( $query['order'] ) ) { $order = 'ASC'; } else { $order = 'DESC'; } switch ( $query['orderby'] ) { case 'hook': $sql .= " ORDER BY a.hook $order"; break; case 'group': $sql .= " ORDER BY g.slug $order"; break; case 'modified': $sql .= " ORDER BY a.last_attempt_gmt $order"; break; case 'none': break; case 'action_id': $sql .= " ORDER BY a.action_id $order"; break; case 'date': default: $sql .= " ORDER BY a.scheduled_date_gmt $order"; break; } if ( $query['per_page'] > 0 ) { $sql .= ' LIMIT %d, %d'; $sql_params[] = $query['offset']; $sql_params[] = $query['per_page']; } } if ( ! empty( $sql_params ) ) { $sql = $wpdb->prepare( $sql, $sql_params ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } return $sql; } /** * Query for action count or list of action IDs. * * @since 3.3.0 $query['status'] accepts array of statuses instead of a single status. * * @see ActionScheduler_Store::query_actions for $query arg usage. * * @param array $query Query filtering options. * @param string $query_type Whether to select or count the results. Defaults to select. * * @return string|array|null The IDs of actions matching the query. Null on failure. */ public function query_actions( $query = array(), $query_type = 'select' ) { /** @var wpdb $wpdb */ global $wpdb; $sql = $this->get_query_actions_sql( $query, $query_type ); return ( 'count' === $query_type ) ? $wpdb->get_var( $sql ) : $wpdb->get_col( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.NoSql, WordPress.DB.DirectDatabaseQuery.NoCaching } /** * Get a count of all actions in the store, grouped by status. * * @return array Set of 'status' => int $count pairs for statuses with 1 or more actions of that status. */ public function action_counts() { global $wpdb; $sql = "SELECT a.status, count(a.status) as 'count'"; $sql .= " FROM {$wpdb->actionscheduler_actions} a"; $sql .= ' GROUP BY a.status'; $actions_count_by_status = array(); $action_stati_and_labels = $this->get_status_labels(); foreach ( $wpdb->get_results( $sql ) as $action_data ) { // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared // Ignore any actions with invalid status. if ( array_key_exists( $action_data->status, $action_stati_and_labels ) ) { $actions_count_by_status[ $action_data->status ] = $action_data->count; } } return $actions_count_by_status; } /** * Cancel an action. * * @param int $action_id Action ID. * * @return void * @throws \InvalidArgumentException If the action update failed. */ public function cancel_action( $action_id ) { /** @var \wpdb $wpdb */ global $wpdb; $updated = $wpdb->update( $wpdb->actionscheduler_actions, array( 'status' => self::STATUS_CANCELED ), array( 'action_id' => $action_id ), array( '%s' ), array( '%d' ) ); if ( false === $updated ) { /* translators: %s: action ID */ throw new \InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'woocommerce' ), $action_id ) ); } do_action( 'action_scheduler_canceled_action', $action_id ); } /** * Cancel pending actions by hook. * * @since 3.0.0 * * @param string $hook Hook name. * * @return void */ public function cancel_actions_by_hook( $hook ) { $this->bulk_cancel_actions( array( 'hook' => $hook ) ); } /** * Cancel pending actions by group. * * @param string $group Group slug. * * @return void */ public function cancel_actions_by_group( $group ) { $this->bulk_cancel_actions( array( 'group' => $group ) ); } /** * Bulk cancel actions. * * @since 3.0.0 * * @param array $query_args Query parameters. */ protected function bulk_cancel_actions( $query_args ) { /** @var \wpdb $wpdb */ global $wpdb; if ( ! is_array( $query_args ) ) { return; } // Don't cancel actions that are already canceled. if ( isset( $query_args['status'] ) && self::STATUS_CANCELED === $query_args['status'] ) { return; } $action_ids = true; $query_args = wp_parse_args( $query_args, array( 'per_page' => 1000, 'status' => self::STATUS_PENDING, 'orderby' => 'action_id', ) ); while ( $action_ids ) { $action_ids = $this->query_actions( $query_args ); if ( empty( $action_ids ) ) { break; } $format = array_fill( 0, count( $action_ids ), '%d' ); $query_in = '(' . implode( ',', $format ) . ')'; $parameters = $action_ids; array_unshift( $parameters, self::STATUS_CANCELED ); $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->actionscheduler_actions} SET status = %s WHERE action_id IN {$query_in}", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared $parameters ) ); do_action( 'action_scheduler_bulk_cancel_actions', $action_ids ); } } /** * Delete an action. * * @param int $action_id Action ID. * @throws \InvalidArgumentException If the action deletion failed. */ public function delete_action( $action_id ) { /** @var \wpdb $wpdb */ global $wpdb; $deleted = $wpdb->delete( $wpdb->actionscheduler_actions, array( 'action_id' => $action_id ), array( '%d' ) ); if ( empty( $deleted ) ) { throw new \InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'woocommerce' ), $action_id ) ); //phpcs:ignore WordPress.WP.I18n.MissingTranslatorsComment } do_action( 'action_scheduler_deleted_action', $action_id ); } /** * Get the schedule date for an action. * * @param string $action_id Action ID. * * @return \DateTime The local date the action is scheduled to run, or the date that it ran. */ public function get_date( $action_id ) { $date = $this->get_date_gmt( $action_id ); ActionScheduler_TimezoneHelper::set_local_timezone( $date ); return $date; } /** * Get the GMT schedule date for an action. * * @param int $action_id Action ID. * * @throws \InvalidArgumentException If action cannot be identified. * @return \DateTime The GMT date the action is scheduled to run, or the date that it ran. */ protected function get_date_gmt( $action_id ) { /** @var \wpdb $wpdb */ global $wpdb; $record = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->actionscheduler_actions} WHERE action_id=%d", $action_id ) ); if ( empty( $record ) ) { throw new \InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'woocommerce' ), $action_id ) ); //phpcs:ignore WordPress.WP.I18n.MissingTranslatorsComment } if ( self::STATUS_PENDING === $record->status ) { return as_get_datetime_object( $record->scheduled_date_gmt ); } else { return as_get_datetime_object( $record->last_attempt_gmt ); } } /** * Stake a claim on actions. * * @param int $max_actions Maximum number of action to include in claim. * @param \DateTime $before_date Jobs must be schedule before this date. Defaults to now. * @param array $hooks Hooks to filter for. * @param string $group Group to filter for. * * @return ActionScheduler_ActionClaim */ public function stake_claim( $max_actions = 10, \DateTime $before_date = null, $hooks = array(), $group = '' ) { $claim_id = $this->generate_claim_id(); $this->claim_before_date = $before_date; $this->claim_actions( $claim_id, $max_actions, $before_date, $hooks, $group ); $action_ids = $this->find_actions_by_claim_id( $claim_id ); $this->claim_before_date = null; return new ActionScheduler_ActionClaim( $claim_id, $action_ids ); } /** * Generate a new action claim. * * @return int Claim ID. */ protected function generate_claim_id() { /** @var \wpdb $wpdb */ global $wpdb; $now = as_get_datetime_object(); $wpdb->insert( $wpdb->actionscheduler_claims, array( 'date_created_gmt' => $now->format( 'Y-m-d H:i:s' ) ) ); return $wpdb->insert_id; } /** * Mark actions claimed. * * @param string $claim_id Claim Id. * @param int $limit Number of action to include in claim. * @param \DateTime $before_date Should use UTC timezone. * @param array $hooks Hooks to filter for. * @param string $group Group to filter for. * * @return int The number of actions that were claimed. * @throws \InvalidArgumentException Throws InvalidArgumentException if group doesn't exist. * @throws \RuntimeException Throws RuntimeException if unable to claim action. */ protected function claim_actions( $claim_id, $limit, \DateTime $before_date = null, $hooks = array(), $group = '' ) { /** @var \wpdb $wpdb */ global $wpdb; $now = as_get_datetime_object(); $date = is_null( $before_date ) ? $now : clone $before_date; // can't use $wpdb->update() because of the <= condition. $update = "UPDATE {$wpdb->actionscheduler_actions} SET claim_id=%d, last_attempt_gmt=%s, last_attempt_local=%s"; $params = array( $claim_id, $now->format( 'Y-m-d H:i:s' ), current_time( 'mysql' ), ); $where = 'WHERE claim_id = 0 AND scheduled_date_gmt <= %s AND status=%s'; $params[] = $date->format( 'Y-m-d H:i:s' ); $params[] = self::STATUS_PENDING; if ( ! empty( $hooks ) ) { $placeholders = array_fill( 0, count( $hooks ), '%s' ); $where .= ' AND hook IN (' . join( ', ', $placeholders ) . ')'; $params = array_merge( $params, array_values( $hooks ) ); } if ( ! empty( $group ) ) { $group_id = $this->get_group_id( $group, false ); // throw exception if no matching group found, this matches ActionScheduler_wpPostStore's behaviour. if ( empty( $group_id ) ) { /* translators: %s: group name */ throw new InvalidArgumentException( sprintf( __( 'The group "%s" does not exist.', 'woocommerce' ), $group ) ); } $where .= ' AND group_id = %d'; $params[] = $group_id; } /** * Sets the order-by clause used in the action claim query. * * @since 3.4.0 * * @param string $order_by_sql */ $order = apply_filters( 'action_scheduler_claim_actions_order_by', 'ORDER BY attempts ASC, scheduled_date_gmt ASC, action_id ASC' ); $params[] = $limit; $sql = $wpdb->prepare( "{$update} {$where} {$order} LIMIT %d", $params ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.PreparedSQLPlaceholders $rows_affected = $wpdb->query( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching if ( false === $rows_affected ) { throw new \RuntimeException( __( 'Unable to claim actions. Database error.', 'woocommerce' ) ); } return (int) $rows_affected; } /** * Get the number of active claims. * * @return int */ public function get_claim_count() { global $wpdb; $sql = "SELECT COUNT(DISTINCT claim_id) FROM {$wpdb->actionscheduler_actions} WHERE claim_id != 0 AND status IN ( %s, %s)"; $sql = $wpdb->prepare( $sql, array( self::STATUS_PENDING, self::STATUS_RUNNING ) ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared return (int) $wpdb->get_var( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } /** * Return an action's claim ID, as stored in the claim_id column. * * @param string $action_id Action ID. * @return mixed */ public function get_claim_id( $action_id ) { /** @var \wpdb $wpdb */ global $wpdb; $sql = "SELECT claim_id FROM {$wpdb->actionscheduler_actions} WHERE action_id=%d"; $sql = $wpdb->prepare( $sql, $action_id ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared return (int) $wpdb->get_var( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } /** * Retrieve the action IDs of action in a claim. * * @param int $claim_id Claim ID. * @return int[] */ public function find_actions_by_claim_id( $claim_id ) { /** @var \wpdb $wpdb */ global $wpdb; $action_ids = array(); $before_date = isset( $this->claim_before_date ) ? $this->claim_before_date : as_get_datetime_object(); $cut_off = $before_date->format( 'Y-m-d H:i:s' ); $sql = $wpdb->prepare( "SELECT action_id, scheduled_date_gmt FROM {$wpdb->actionscheduler_actions} WHERE claim_id = %d", $claim_id ); // Verify that the scheduled date for each action is within the expected bounds (in some unusual // cases, we cannot depend on MySQL to honor all of the WHERE conditions we specify). foreach ( $wpdb->get_results( $sql ) as $claimed_action ) { // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared if ( $claimed_action->scheduled_date_gmt <= $cut_off ) { $action_ids[] = absint( $claimed_action->action_id ); } } return $action_ids; } /** * Release actions from a claim and delete the claim. * * @param ActionScheduler_ActionClaim $claim Claim object. */ public function release_claim( ActionScheduler_ActionClaim $claim ) { /** @var \wpdb $wpdb */ global $wpdb; /** * Deadlock warning: This function modifies actions to release them from claims that have been processed. Earlier, we used to it in a atomic query, i.e. we would update all actions belonging to a particular claim_id with claim_id = 0. * While this was functionally correct, it would cause deadlock, since this update query will hold a lock on the claim_id_.. index on the action table. * This allowed the possibility of a race condition, where the claimer query is also running at the same time, then the claimer query will also try to acquire a lock on the claim_id_.. index, and in this case if claim release query has already progressed to the point of acquiring the lock, but have not updated yet, it would cause a deadlock. * * We resolve this by getting all the actions_id that we want to release claim from in a separate query, and then releasing the claim on each of them. This way, our lock is acquired on the action_id index instead of the claim_id index. Note that the lock on claim_id will still be acquired, but it will only when we actually make the update, rather than when we select the actions. */ $action_ids = $wpdb->get_col( $wpdb->prepare( "SELECT action_id FROM {$wpdb->actionscheduler_actions} WHERE claim_id = %d", $claim->get_id() ) ); $row_updates = 0; if ( count( $action_ids ) > 0 ) { $action_id_string = implode( ',', array_map( 'absint', $action_ids ) ); $row_updates = $wpdb->query( "UPDATE {$wpdb->actionscheduler_actions} SET claim_id = 0 WHERE action_id IN ({$action_id_string})" ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } $wpdb->delete( $wpdb->actionscheduler_claims, array( 'claim_id' => $claim->get_id() ), array( '%d' ) ); if ( $row_updates < count( $action_ids ) ) { throw new RuntimeException( sprintf( __( 'Unable to release actions from claim id %d.', 'woocommerce' ), $claim->get_id() ) ); } } /** * Remove the claim from an action. * * @param int $action_id Action ID. * * @return void */ public function unclaim_action( $action_id ) { /** @var \wpdb $wpdb */ global $wpdb; $wpdb->update( $wpdb->actionscheduler_actions, array( 'claim_id' => 0 ), array( 'action_id' => $action_id ), array( '%s' ), array( '%d' ) ); } /** * Mark an action as failed. * * @param int $action_id Action ID. * @throws \InvalidArgumentException Throw an exception if action was not updated. */ public function mark_failure( $action_id ) { /** @var \wpdb $wpdb */ global $wpdb; $updated = $wpdb->update( $wpdb->actionscheduler_actions, array( 'status' => self::STATUS_FAILED ), array( 'action_id' => $action_id ), array( '%s' ), array( '%d' ) ); if ( empty( $updated ) ) { throw new \InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'woocommerce' ), $action_id ) ); //phpcs:ignore WordPress.WP.I18n.MissingTranslatorsComment } } /** * Add execution message to action log. * * @param int $action_id Action ID. * * @return void */ public function log_execution( $action_id ) { /** @var \wpdb $wpdb */ global $wpdb; $sql = "UPDATE {$wpdb->actionscheduler_actions} SET attempts = attempts+1, status=%s, last_attempt_gmt = %s, last_attempt_local = %s WHERE action_id = %d"; $sql = $wpdb->prepare( $sql, self::STATUS_RUNNING, current_time( 'mysql', true ), current_time( 'mysql' ), $action_id ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared $wpdb->query( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } /** * Mark an action as complete. * * @param int $action_id Action ID. * * @return void * @throws \InvalidArgumentException Throw an exception if action was not updated. */ public function mark_complete( $action_id ) { /** @var \wpdb $wpdb */ global $wpdb; $updated = $wpdb->update( $wpdb->actionscheduler_actions, array( 'status' => self::STATUS_COMPLETE, 'last_attempt_gmt' => current_time( 'mysql', true ), 'last_attempt_local' => current_time( 'mysql' ), ), array( 'action_id' => $action_id ), array( '%s' ), array( '%d' ) ); if ( empty( $updated ) ) { throw new \InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'woocommerce' ), $action_id ) ); //phpcs:ignore WordPress.WP.I18n.MissingTranslatorsComment } /** * Fires after a scheduled action has been completed. * * @since 3.4.2 * * @param int $action_id Action ID. */ do_action( 'action_scheduler_completed_action', $action_id ); } /** * Get an action's status. * * @param int $action_id Action ID. * * @return string * @throws \InvalidArgumentException Throw an exception if not status was found for action_id. * @throws \RuntimeException Throw an exception if action status could not be retrieved. */ public function get_status( $action_id ) { /** @var \wpdb $wpdb */ global $wpdb; $sql = "SELECT status FROM {$wpdb->actionscheduler_actions} WHERE action_id=%d"; $sql = $wpdb->prepare( $sql, $action_id ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared $status = $wpdb->get_var( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared if ( null === $status ) { throw new \InvalidArgumentException( __( 'Invalid action ID. No status found.', 'woocommerce' ) ); } elseif ( empty( $status ) ) { throw new \RuntimeException( __( 'Unknown status found for action.', 'woocommerce' ) ); } else { return $status; } } } app/Services/Libraries/action-scheduler/classes/migration/BatchFetcher.php000064400000003222147600120010022723 0ustar00store = $source_store; } /** * Retrieve a list of actions. * * @param int $count The number of actions to retrieve * * @return int[] A list of action IDs */ public function fetch( $count = 10 ) { foreach ( $this->get_query_strategies( $count ) as $query ) { $action_ids = $this->store->query_actions( $query ); if ( ! empty( $action_ids ) ) { return $action_ids; } } return []; } /** * Generate a list of prioritized of action search parameters. * * @param int $count Number of actions to find. * * @return array */ private function get_query_strategies( $count ) { $now = as_get_datetime_object(); $args = [ 'date' => $now, 'per_page' => $count, 'offset' => 0, 'orderby' => 'date', 'order' => 'ASC', ]; $priorities = [ Store::STATUS_PENDING, Store::STATUS_FAILED, Store::STATUS_CANCELED, Store::STATUS_COMPLETE, Store::STATUS_RUNNING, '', // any other unanticipated status ]; foreach ( $priorities as $status ) { yield wp_parse_args( [ 'status' => $status, 'date_compare' => '<=', ], $args ); yield wp_parse_args( [ 'status' => $status, 'date_compare' => '>=', ], $args ); } } }app/Services/Libraries/action-scheduler/classes/migration/DryRun_ActionMigrator.php000064400000000741147600120010024631 0ustar00 $this->get_scheduled_date_string( $action, $last_attempt_date ), 'last_attempt_local' => $this->get_scheduled_date_string_local( $action, $last_attempt_date ), ]; $wpdb->update( $wpdb->actionscheduler_actions, $data, array( 'action_id' => $action_id ), array( '%s', '%s' ), array( '%d' ) ); } return $action_id; } catch ( \Exception $e ) { throw new \RuntimeException( sprintf( __( 'Error saving action: %s', 'woocommerce' ), $e->getMessage() ), 0 ); } } } app/Services/Libraries/action-scheduler/classes/migration/Config.php000064400000006747147600120010021625 0ustar00source_store ) ) { throw new \RuntimeException( __( 'Source store must be configured before running a migration', 'woocommerce' ) ); } return $this->source_store; } /** * Set the configured source store. * * @param ActionScheduler_Store $store Source store object. */ public function set_source_store( Store $store ) { $this->source_store = $store; } /** * Get the configured source loger. * * @return ActionScheduler_Logger */ public function get_source_logger() { if ( empty( $this->source_logger ) ) { throw new \RuntimeException( __( 'Source logger must be configured before running a migration', 'woocommerce' ) ); } return $this->source_logger; } /** * Set the configured source logger. * * @param ActionScheduler_Logger $logger */ public function set_source_logger( Logger $logger ) { $this->source_logger = $logger; } /** * Get the configured destination store. * * @return ActionScheduler_Store */ public function get_destination_store() { if ( empty( $this->destination_store ) ) { throw new \RuntimeException( __( 'Destination store must be configured before running a migration', 'woocommerce' ) ); } return $this->destination_store; } /** * Set the configured destination store. * * @param ActionScheduler_Store $store */ public function set_destination_store( Store $store ) { $this->destination_store = $store; } /** * Get the configured destination logger. * * @return ActionScheduler_Logger */ public function get_destination_logger() { if ( empty( $this->destination_logger ) ) { throw new \RuntimeException( __( 'Destination logger must be configured before running a migration', 'woocommerce' ) ); } return $this->destination_logger; } /** * Set the configured destination logger. * * @param ActionScheduler_Logger $logger */ public function set_destination_logger( Logger $logger ) { $this->destination_logger = $logger; } /** * Get flag indicating whether it's a dry run. * * @return bool */ public function get_dry_run() { return $this->dry_run; } /** * Set flag indicating whether it's a dry run. * * @param bool $dry_run */ public function set_dry_run( $dry_run ) { $this->dry_run = (bool) $dry_run; } /** * Get progress bar object. * * @return ActionScheduler\WPCLI\ProgressBar */ public function get_progress_bar() { return $this->progress_bar; } /** * Set progress bar object. * * @param ActionScheduler\WPCLI\ProgressBar $progress_bar */ public function set_progress_bar( ProgressBar $progress_bar ) { $this->progress_bar = $progress_bar; } } app/Services/Libraries/action-scheduler/classes/migration/LogMigrator.php000064400000002272147600120010022633 0ustar00source = $source_logger; $this->destination = $destination_Logger; } /** * Migrate an action log. * * @param int $source_action_id Source logger object. * @param int $destination_action_id Destination logger object. */ public function migrate( $source_action_id, $destination_action_id ) { $logs = $this->source->get_logs( $source_action_id ); foreach ( $logs as $log ) { if ( $log->get_action_id() == $source_action_id ) { $this->destination->log( $destination_action_id, $log->get_message(), $log->get_date() ); } } } } app/Services/Libraries/action-scheduler/classes/migration/ActionMigrator.php000064400000007060147600120010023327 0ustar00source = $source_store; $this->destination = $destination_store; $this->log_migrator = $log_migrator; } /** * Migrate an action. * * @param int $source_action_id Action ID. * * @return int 0|new action ID */ public function migrate( $source_action_id ) { try { $action = $this->source->fetch_action( $source_action_id ); $status = $this->source->get_status( $source_action_id ); } catch ( \Exception $e ) { $action = null; $status = ''; } if ( is_null( $action ) || empty( $status ) || ! $action->get_schedule()->get_date() ) { // null action or empty status means the fetch operation failed or the action didn't exist // null schedule means it's missing vital data // delete it and move on try { $this->source->delete_action( $source_action_id ); } catch ( \Exception $e ) { // nothing to do, it didn't exist in the first place } do_action( 'action_scheduler/no_action_to_migrate', $source_action_id, $this->source, $this->destination ); return 0; } try { // Make sure the last attempt date is set correctly for completed and failed actions $last_attempt_date = ( $status !== \ActionScheduler_Store::STATUS_PENDING ) ? $this->source->get_date( $source_action_id ) : null; $destination_action_id = $this->destination->save_action( $action, null, $last_attempt_date ); } catch ( \Exception $e ) { do_action( 'action_scheduler/migrate_action_failed', $source_action_id, $this->source, $this->destination ); return 0; // could not save the action in the new store } try { switch ( $status ) { case \ActionScheduler_Store::STATUS_FAILED : $this->destination->mark_failure( $destination_action_id ); break; case \ActionScheduler_Store::STATUS_CANCELED : $this->destination->cancel_action( $destination_action_id ); break; } $this->log_migrator->migrate( $source_action_id, $destination_action_id ); $this->source->delete_action( $source_action_id ); $test_action = $this->source->fetch_action( $source_action_id ); if ( ! is_a( $test_action, 'ActionScheduler_NullAction' ) ) { throw new \RuntimeException( sprintf( __( 'Unable to remove source migrated action %s', 'woocommerce' ), $source_action_id ) ); } do_action( 'action_scheduler/migrated_action', $source_action_id, $destination_action_id, $this->source, $this->destination ); return $destination_action_id; } catch ( \Exception $e ) { // could not delete from the old store $this->source->mark_migrated( $source_action_id ); do_action( 'action_scheduler/migrate_action_incomplete', $source_action_id, $destination_action_id, $this->source, $this->destination ); do_action( 'action_scheduler/migrated_action', $source_action_id, $destination_action_id, $this->source, $this->destination ); return $destination_action_id; } } } app/Services/Libraries/action-scheduler/classes/migration/Scheduler.php000064400000005542147600120010022326 0ustar00get_migration_runner(); $count = $migration_runner->run( $this->get_batch_size() ); if ( $count === 0 ) { $this->mark_complete(); } else { $this->schedule_migration( time() + $this->get_schedule_interval() ); } } /** * Mark the migration complete. */ public function mark_complete() { $this->unschedule_migration(); \ActionScheduler_DataController::mark_migration_complete(); do_action( 'action_scheduler/migration_complete' ); } /** * Get a flag indicating whether the migration is scheduled. * * @return bool Whether there is a pending action in the store to handle the migration */ public function is_migration_scheduled() { $next = as_next_scheduled_action( self::HOOK ); return ! empty( $next ); } /** * Schedule the migration. * * @param int $when Optional timestamp to run the next migration batch. Defaults to now. * * @return string The action ID */ public function schedule_migration( $when = 0 ) { $next = as_next_scheduled_action( self::HOOK ); if ( ! empty( $next ) ) { return $next; } if ( empty( $when ) ) { $when = time() + MINUTE_IN_SECONDS; } return as_schedule_single_action( $when, self::HOOK, array(), self::GROUP ); } /** * Remove the scheduled migration action. */ public function unschedule_migration() { as_unschedule_action( self::HOOK, null, self::GROUP ); } /** * Get migration batch schedule interval. * * @return int Seconds between migration runs. Defaults to 0 seconds to allow chaining migration via Async Runners. */ private function get_schedule_interval() { return (int) apply_filters( 'action_scheduler/migration_interval', 0 ); } /** * Get migration batch size. * * @return int Number of actions to migrate in each batch. Defaults to 250. */ private function get_batch_size() { return (int) apply_filters( 'action_scheduler/migration_batch_size', 250 ); } /** * Get migration runner object. * * @return Runner */ private function get_migration_runner() { $config = Controller::instance()->get_migration_config_object(); return new Runner( $config ); } } app/Services/Libraries/action-scheduler/classes/migration/DryRun_LogMigrator.php000064400000000711147600120010024132 0ustar00migration_scheduler = $migration_scheduler; $this->store_classname = ''; } /** * Set the action store class name. * * @param string $class Classname of the store class. * * @return string */ public function get_store_class( $class ) { if ( \ActionScheduler_DataController::is_migration_complete() ) { return \ActionScheduler_DataController::DATASTORE_CLASS; } elseif ( \ActionScheduler_Store::DEFAULT_CLASS !== $class ) { $this->store_classname = $class; return $class; } else { return 'ActionScheduler_HybridStore'; } } /** * Set the action logger class name. * * @param string $class Classname of the logger class. * * @return string */ public function get_logger_class( $class ) { \ActionScheduler_Store::instance(); if ( $this->has_custom_datastore() ) { $this->logger_classname = $class; return $class; } else { return \ActionScheduler_DataController::LOGGER_CLASS; } } /** * Get flag indicating whether a custom datastore is in use. * * @return bool */ public function has_custom_datastore() { return (bool) $this->store_classname; } /** * Set up the background migration process. * * @return void */ public function schedule_migration() { $logging_tables = new ActionScheduler_LoggerSchema(); $store_tables = new ActionScheduler_StoreSchema(); /* * In some unusual cases, the expected tables may not have been created. In such cases * we do not schedule a migration as doing so will lead to fatal error conditions. * * In such cases the user will likely visit the Tools > Scheduled Actions screen to * investigate, and will see appropriate messaging (this step also triggers an attempt * to rebuild any missing tables). * * @see https://github.com/woocommerce/action-scheduler/issues/653 */ if ( ActionScheduler_DataController::is_migration_complete() || $this->migration_scheduler->is_migration_scheduled() || ! $store_tables->tables_exist() || ! $logging_tables->tables_exist() ) { return; } $this->migration_scheduler->schedule_migration(); } /** * Get the default migration config object * * @return ActionScheduler\Migration\Config */ public function get_migration_config_object() { static $config = null; if ( ! $config ) { $source_store = $this->store_classname ? new $this->store_classname() : new \ActionScheduler_wpPostStore(); $source_logger = $this->logger_classname ? new $this->logger_classname() : new \ActionScheduler_wpCommentLogger(); $config = new Config(); $config->set_source_store( $source_store ); $config->set_source_logger( $source_logger ); $config->set_destination_store( new \ActionScheduler_DBStoreMigrator() ); $config->set_destination_logger( new \ActionScheduler_DBLogger() ); if ( defined( 'WP_CLI' ) && WP_CLI ) { $config->set_progress_bar( new ProgressBar( '', 0 ) ); } } return apply_filters( 'action_scheduler/migration_config', $config ); } /** * Hook dashboard migration notice. */ public function hook_admin_notices() { if ( ! $this->allow_migration() || \ActionScheduler_DataController::is_migration_complete() ) { return; } add_action( 'admin_notices', array( $this, 'display_migration_notice' ), 10, 0 ); } /** * Show a dashboard notice that migration is in progress. */ public function display_migration_notice() { printf( '

    %s

    ', esc_html__( 'Action Scheduler migration in progress. The list of scheduled actions may be incomplete.', 'woocommerce' ) ); } /** * Add store classes. Hook migration. */ private function hook() { add_filter( 'action_scheduler_store_class', array( $this, 'get_store_class' ), 100, 1 ); add_filter( 'action_scheduler_logger_class', array( $this, 'get_logger_class' ), 100, 1 ); add_action( 'init', array( $this, 'maybe_hook_migration' ) ); add_action( 'wp_loaded', array( $this, 'schedule_migration' ) ); // Action Scheduler may be displayed as a Tools screen or WooCommerce > Status administration screen add_action( 'load-tools_page_action-scheduler', array( $this, 'hook_admin_notices' ), 10, 0 ); add_action( 'load-woocommerce_page_wc-status', array( $this, 'hook_admin_notices' ), 10, 0 ); } /** * Possibly hook the migration scheduler action. * * @author Jeremy Pry */ public function maybe_hook_migration() { if ( ! $this->allow_migration() || \ActionScheduler_DataController::is_migration_complete() ) { return; } $this->migration_scheduler->hook(); } /** * Allow datastores to enable migration to AS tables. */ public function allow_migration() { if ( ! \ActionScheduler_DataController::dependencies_met() ) { return false; } if ( null === $this->migrate_custom_store ) { $this->migrate_custom_store = apply_filters( 'action_scheduler_migrate_data_store', false ); } return ( ! $this->has_custom_datastore() ) || $this->migrate_custom_store; } /** * Proceed with the migration if the dependencies have been met. */ public static function init() { if ( \ActionScheduler_DataController::dependencies_met() ) { self::instance()->hook(); } } /** * Singleton factory. */ public static function instance() { if ( ! isset( self::$instance ) ) { self::$instance = new static( new Scheduler() ); } return self::$instance; } } app/Services/Libraries/action-scheduler/classes/migration/Runner.php000064400000007244147600120010021662 0ustar00source_store = $config->get_source_store(); $this->destination_store = $config->get_destination_store(); $this->source_logger = $config->get_source_logger(); $this->destination_logger = $config->get_destination_logger(); $this->batch_fetcher = new BatchFetcher( $this->source_store ); if ( $config->get_dry_run() ) { $this->log_migrator = new DryRun_LogMigrator( $this->source_logger, $this->destination_logger ); $this->action_migrator = new DryRun_ActionMigrator( $this->source_store, $this->destination_store, $this->log_migrator ); } else { $this->log_migrator = new LogMigrator( $this->source_logger, $this->destination_logger ); $this->action_migrator = new ActionMigrator( $this->source_store, $this->destination_store, $this->log_migrator ); } if ( defined( 'WP_CLI' ) && WP_CLI ) { $this->progress_bar = $config->get_progress_bar(); } } /** * Run migration batch. * * @param int $batch_size Optional batch size. Default 10. * * @return int Size of batch processed. */ public function run( $batch_size = 10 ) { $batch = $this->batch_fetcher->fetch( $batch_size ); $batch_size = count( $batch ); if ( ! $batch_size ) { return 0; } if ( $this->progress_bar ) { /* translators: %d: amount of actions */ $this->progress_bar->set_message( sprintf( _n( 'Migrating %d action', 'Migrating %d actions', $batch_size, 'woocommerce' ), number_format_i18n( $batch_size ) ) ); $this->progress_bar->set_count( $batch_size ); } $this->migrate_actions( $batch ); return $batch_size; } /** * Migration a batch of actions. * * @param array $action_ids List of action IDs to migrate. */ public function migrate_actions( array $action_ids ) { do_action( 'action_scheduler/migration_batch_starting', $action_ids ); \ActionScheduler::logger()->unhook_stored_action(); $this->destination_logger->unhook_stored_action(); foreach ( $action_ids as $source_action_id ) { $destination_action_id = $this->action_migrator->migrate( $source_action_id ); if ( $destination_action_id ) { $this->destination_logger->log( $destination_action_id, sprintf( /* translators: 1: source action ID 2: source store class 3: destination action ID 4: destination store class */ __( 'Migrated action with ID %1$d in %2$s to ID %3$d in %4$s', 'woocommerce' ), $source_action_id, get_class( $this->source_store ), $destination_action_id, get_class( $this->destination_store ) ) ); } if ( $this->progress_bar ) { $this->progress_bar->tick(); } } if ( $this->progress_bar ) { $this->progress_bar->finish(); } \ActionScheduler::logger()->hook_stored_action(); do_action( 'action_scheduler/migration_batch_complete', $action_ids ); } /** * Initialize destination store and logger. */ public function init_destination() { $this->destination_store->init(); $this->destination_logger->init(); } } app/Services/Libraries/action-scheduler/classes/schedules/ActionScheduler_SimpleSchedule.php000064400000004154147600120010026436 0ustar00__wakeup() for details. **/ private $timestamp = NULL; /** * @param DateTime $after * * @return DateTime|null */ public function calculate_next( DateTime $after ) { return null; } /** * @return bool */ public function is_recurring() { return false; } /** * Serialize schedule with data required prior to AS 3.0.0 * * Prior to Action Scheduler 3.0.0, schedules used different property names to refer * to equivalent data. For example, ActionScheduler_IntervalSchedule::start_timestamp * was the same as ActionScheduler_SimpleSchedule::timestamp. Action Scheduler 3.0.0 * aligned properties and property names for better inheritance. To guard against the * scheduled date for single actions always being seen as "now" if downgrading to * Action Scheduler < 3.0.0, we need to also store the data with the old property names * so if it's unserialized in AS < 3.0, the schedule doesn't end up with a null recurrence. * * @return array */ public function __sleep() { $sleep_params = parent::__sleep(); $this->timestamp = $this->scheduled_timestamp; return array_merge( $sleep_params, array( 'timestamp', ) ); } /** * Unserialize recurring schedules serialized/stored prior to AS 3.0.0 * * Prior to Action Scheduler 3.0.0, schedules used different property names to refer * to equivalent data. For example, ActionScheduler_IntervalSchedule::start_timestamp * was the same as ActionScheduler_SimpleSchedule::timestamp. Action Scheduler 3.0.0 * aligned properties and property names for better inheritance. To maintain backward * compatibility with schedules serialized and stored prior to 3.0, we need to correctly * map the old property names with matching visibility. */ public function __wakeup() { if ( is_null( $this->scheduled_timestamp ) && ! is_null( $this->timestamp ) ) { $this->scheduled_timestamp = $this->timestamp; unset( $this->timestamp ); } parent::__wakeup(); } } app/Services/Libraries/action-scheduler/classes/schedules/ActionScheduler_CanceledSchedule.php000064400000002705147600120010026703 0ustar00__wakeup() for details. **/ private $timestamp = NULL; /** * @param DateTime $after * * @return DateTime|null */ public function calculate_next( DateTime $after ) { return null; } /** * Cancelled actions should never have a next schedule, even if get_next() * is called with $after < $this->scheduled_date. * * @param DateTime $after * @return DateTime|null */ public function get_next( DateTime $after ) { return null; } /** * @return bool */ public function is_recurring() { return false; } /** * Unserialize recurring schedules serialized/stored prior to AS 3.0.0 * * Prior to Action Scheduler 3.0.0, schedules used different property names to refer * to equivalent data. For example, ActionScheduler_IntervalSchedule::start_timestamp * was the same as ActionScheduler_SimpleSchedule::timestamp. Action Scheduler 3.0.0 * aligned properties and property names for better inheritance. To maintain backward * compatibility with schedules serialized and stored prior to 3.0, we need to correctly * map the old property names with matching visibility. */ public function __wakeup() { if ( ! is_null( $this->timestamp ) ) { $this->scheduled_timestamp = $this->timestamp; unset( $this->timestamp ); } parent::__wakeup(); } } app/Services/Libraries/action-scheduler/classes/schedules/ActionScheduler_Schedule.php000064400000000406147600120010025260 0ustar00scheduled_date = null; } /** * This schedule has no scheduled DateTime, so we need to override the parent __sleep() * @return array */ public function __sleep() { return array(); } public function __wakeup() { $this->scheduled_date = null; } } app/Services/Libraries/action-scheduler/classes/schedules/ActionScheduler_IntervalSchedule.php000064400000004752147600120010026775 0ustar00__wakeup() for details. **/ private $start_timestamp = NULL; /** * Deprecated property @see $this->__wakeup() for details. **/ private $interval_in_seconds = NULL; /** * Calculate when this schedule should start after a given date & time using * the number of seconds between recurrences. * * @param DateTime $after * @return DateTime */ protected function calculate_next( DateTime $after ) { $after->modify( '+' . (int) $this->get_recurrence() . ' seconds' ); return $after; } /** * @return int */ public function interval_in_seconds() { _deprecated_function( __METHOD__, '3.0.0', '(int)ActionScheduler_Abstract_RecurringSchedule::get_recurrence()' ); return (int) $this->get_recurrence(); } /** * Serialize interval schedules with data required prior to AS 3.0.0 * * Prior to Action Scheduler 3.0.0, reccuring schedules used different property names to * refer to equivalent data. For example, ActionScheduler_IntervalSchedule::start_timestamp * was the same as ActionScheduler_SimpleSchedule::timestamp. Action Scheduler 3.0.0 * aligned properties and property names for better inheritance. To guard against the * possibility of infinite loops if downgrading to Action Scheduler < 3.0.0, we need to * also store the data with the old property names so if it's unserialized in AS < 3.0, * the schedule doesn't end up with a null/false/0 recurrence. * * @return array */ public function __sleep() { $sleep_params = parent::__sleep(); $this->start_timestamp = $this->scheduled_timestamp; $this->interval_in_seconds = $this->recurrence; return array_merge( $sleep_params, array( 'start_timestamp', 'interval_in_seconds' ) ); } /** * Unserialize interval schedules serialized/stored prior to AS 3.0.0 * * For more background, @see ActionScheduler_Abstract_RecurringSchedule::__wakeup(). */ public function __wakeup() { if ( is_null( $this->scheduled_timestamp ) && ! is_null( $this->start_timestamp ) ) { $this->scheduled_timestamp = $this->start_timestamp; unset( $this->start_timestamp ); } if ( is_null( $this->recurrence ) && ! is_null( $this->interval_in_seconds ) ) { $this->recurrence = $this->interval_in_seconds; unset( $this->interval_in_seconds ); } parent::__wakeup(); } } app/Services/Libraries/action-scheduler/classes/schedules/ActionScheduler_CronSchedule.php000064400000007201147600120010026102 0ustar00__wakeup() for details. **/ private $start_timestamp = NULL; /** * Deprecated property @see $this->__wakeup() for details. **/ private $cron = NULL; /** * Wrapper for parent constructor to accept a cron expression string and map it to a CronExpression for this * objects $recurrence property. * * @param DateTime $start The date & time to run the action at or after. If $start aligns with the CronSchedule passed via $recurrence, it will be used. If it does not align, the first matching date after it will be used. * @param CronExpression|string $recurrence The CronExpression used to calculate the schedule's next instance. * @param DateTime|null $first (Optional) The date & time the first instance of this interval schedule ran. Default null, meaning this is the first instance. */ public function __construct( DateTime $start, $recurrence, DateTime $first = null ) { if ( ! is_a( $recurrence, 'CronExpression' ) ) { $recurrence = CronExpression::factory( $recurrence ); } // For backward compatibility, we need to make sure the date is set to the first matching cron date, not whatever date is passed in. Importantly, by passing true as the 3rd param, if $start matches the cron expression, then it will be used. This was previously handled in the now deprecated next() method. $date = $recurrence->getNextRunDate( $start, 0, true ); // parent::__construct() will set this to $date by default, but that may be different to $start now. $first = empty( $first ) ? $start : $first; parent::__construct( $date, $recurrence, $first ); } /** * Calculate when an instance of this schedule would start based on a given * date & time using its the CronExpression. * * @param DateTime $after * @return DateTime */ protected function calculate_next( DateTime $after ) { return $this->recurrence->getNextRunDate( $after, 0, false ); } /** * @return string */ public function get_recurrence() { return strval( $this->recurrence ); } /** * Serialize cron schedules with data required prior to AS 3.0.0 * * Prior to Action Scheduler 3.0.0, reccuring schedules used different property names to * refer to equivalent data. For example, ActionScheduler_IntervalSchedule::start_timestamp * was the same as ActionScheduler_SimpleSchedule::timestamp. Action Scheduler 3.0.0 * aligned properties and property names for better inheritance. To guard against the * possibility of infinite loops if downgrading to Action Scheduler < 3.0.0, we need to * also store the data with the old property names so if it's unserialized in AS < 3.0, * the schedule doesn't end up with a null recurrence. * * @return array */ public function __sleep() { $sleep_params = parent::__sleep(); $this->start_timestamp = $this->scheduled_timestamp; $this->cron = $this->recurrence; return array_merge( $sleep_params, array( 'start_timestamp', 'cron' ) ); } /** * Unserialize cron schedules serialized/stored prior to AS 3.0.0 * * For more background, @see ActionScheduler_Abstract_RecurringSchedule::__wakeup(). */ public function __wakeup() { if ( is_null( $this->scheduled_timestamp ) && ! is_null( $this->start_timestamp ) ) { $this->scheduled_timestamp = $this->start_timestamp; unset( $this->start_timestamp ); } if ( is_null( $this->recurrence ) && ! is_null( $this->cron ) ) { $this->recurrence = $this->cron; unset( $this->cron ); } parent::__wakeup(); } } app/Services/Libraries/action-scheduler/classes/schema/ActionScheduler_StoreSchema.php000064400000011033147600120010025220 0ustar00tables = [ self::ACTIONS_TABLE, self::CLAIMS_TABLE, self::GROUPS_TABLE, ]; } /** * Performs additional setup work required to support this schema. */ public function init() { add_action( 'action_scheduler_before_schema_update', array( $this, 'update_schema_5_0' ), 10, 2 ); } protected function get_table_definition( $table ) { global $wpdb; $table_name = $wpdb->$table; $charset_collate = $wpdb->get_charset_collate(); $max_index_length = 191; // @see wp_get_db_schema() $default_date = self::DEFAULT_DATE; switch ( $table ) { case self::ACTIONS_TABLE: return "CREATE TABLE {$table_name} ( action_id bigint(20) unsigned NOT NULL auto_increment, hook varchar(191) NOT NULL, status varchar(20) NOT NULL, scheduled_date_gmt datetime NULL default '{$default_date}', scheduled_date_local datetime NULL default '{$default_date}', args varchar($max_index_length), schedule longtext, group_id bigint(20) unsigned NOT NULL default '0', attempts int(11) NOT NULL default '0', last_attempt_gmt datetime NULL default '{$default_date}', last_attempt_local datetime NULL default '{$default_date}', claim_id bigint(20) unsigned NOT NULL default '0', extended_args varchar(8000) DEFAULT NULL, PRIMARY KEY (action_id), KEY hook (hook($max_index_length)), KEY status (status), KEY scheduled_date_gmt (scheduled_date_gmt), KEY args (args($max_index_length)), KEY group_id (group_id), KEY last_attempt_gmt (last_attempt_gmt), KEY `claim_id_status_scheduled_date_gmt` (`claim_id`, `status`, `scheduled_date_gmt`) ) $charset_collate"; case self::CLAIMS_TABLE: return "CREATE TABLE {$table_name} ( claim_id bigint(20) unsigned NOT NULL auto_increment, date_created_gmt datetime NULL default '{$default_date}', PRIMARY KEY (claim_id), KEY date_created_gmt (date_created_gmt) ) $charset_collate"; case self::GROUPS_TABLE: return "CREATE TABLE {$table_name} ( group_id bigint(20) unsigned NOT NULL auto_increment, slug varchar(255) NOT NULL, PRIMARY KEY (group_id), KEY slug (slug($max_index_length)) ) $charset_collate"; default: return ''; } } /** * Update the actions table schema, allowing datetime fields to be NULL. * * This is needed because the NOT NULL constraint causes a conflict with some versions of MySQL * configured with sql_mode=NO_ZERO_DATE, which can for instance lead to tables not being created. * * Most other schema updates happen via ActionScheduler_Abstract_Schema::update_table(), however * that method relies on dbDelta() and this change is not possible when using that function. * * @param string $table Name of table being updated. * @param string $db_version The existing schema version of the table. */ public function update_schema_5_0( $table, $db_version ) { global $wpdb; if ( 'actionscheduler_actions' !== $table || version_compare( $db_version, '5', '>=' ) ) { return; } // phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared $table_name = $wpdb->prefix . 'actionscheduler_actions'; $table_list = $wpdb->get_col( "SHOW TABLES LIKE '{$table_name}'" ); $default_date = self::DEFAULT_DATE; if ( ! empty( $table_list ) ) { $query = " ALTER TABLE {$table_name} MODIFY COLUMN scheduled_date_gmt datetime NULL default '{$default_date}', MODIFY COLUMN scheduled_date_local datetime NULL default '{$default_date}', MODIFY COLUMN last_attempt_gmt datetime NULL default '{$default_date}', MODIFY COLUMN last_attempt_local datetime NULL default '{$default_date}' "; $wpdb->query( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } // phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared } } app/Services/Libraries/action-scheduler/classes/schema/ActionScheduler_LoggerSchema.php000064400000005462147600120010025354 0ustar00tables = [ self::LOG_TABLE, ]; } /** * Performs additional setup work required to support this schema. */ public function init() { add_action( 'action_scheduler_before_schema_update', array( $this, 'update_schema_3_0' ), 10, 2 ); } protected function get_table_definition( $table ) { global $wpdb; $table_name = $wpdb->$table; $charset_collate = $wpdb->get_charset_collate(); switch ( $table ) { case self::LOG_TABLE: $default_date = ActionScheduler_StoreSchema::DEFAULT_DATE; return "CREATE TABLE $table_name ( log_id bigint(20) unsigned NOT NULL auto_increment, action_id bigint(20) unsigned NOT NULL, message text NOT NULL, log_date_gmt datetime NULL default '{$default_date}', log_date_local datetime NULL default '{$default_date}', PRIMARY KEY (log_id), KEY action_id (action_id), KEY log_date_gmt (log_date_gmt) ) $charset_collate"; default: return ''; } } /** * Update the logs table schema, allowing datetime fields to be NULL. * * This is needed because the NOT NULL constraint causes a conflict with some versions of MySQL * configured with sql_mode=NO_ZERO_DATE, which can for instance lead to tables not being created. * * Most other schema updates happen via ActionScheduler_Abstract_Schema::update_table(), however * that method relies on dbDelta() and this change is not possible when using that function. * * @param string $table Name of table being updated. * @param string $db_version The existing schema version of the table. */ public function update_schema_3_0( $table, $db_version ) { global $wpdb; if ( 'actionscheduler_logs' !== $table || version_compare( $db_version, '3', '>=' ) ) { return; } // phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared $table_name = $wpdb->prefix . 'actionscheduler_logs'; $table_list = $wpdb->get_col( "SHOW TABLES LIKE '{$table_name}'" ); $default_date = ActionScheduler_StoreSchema::DEFAULT_DATE; if ( ! empty( $table_list ) ) { $query = " ALTER TABLE {$table_name} MODIFY COLUMN log_date_gmt datetime NULL default '{$default_date}', MODIFY COLUMN log_date_local datetime NULL default '{$default_date}' "; $wpdb->query( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } // phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_LogEntry.php000064400000003344147600120010023314 0ustar00comment_type * to ActionScheduler_LogEntry::__construct(), goodness knows why, and the Follow-up Emails plugin * hard-codes loading its own version of ActionScheduler_wpCommentLogger with that out-dated method, * goodness knows why, so we need to guard against that here instead of using a DateTime type declaration * for the constructor's 3rd param of $date and causing a fatal error with older versions of FUE. */ if ( null !== $date && ! is_a( $date, 'DateTime' ) ) { _doing_it_wrong( __METHOD__, 'The third parameter must be a valid DateTime instance, or null.', '2.0.0' ); $date = null; } $this->action_id = $action_id; $this->message = $message; $this->date = $date ? $date : new Datetime; } /** * Returns the date when this log entry was created * * @return Datetime */ public function get_date() { return $this->date; } public function get_action_id() { return $this->action_id; } public function get_message() { return $this->message; } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php000064400000010456147600120010024716 0ustar00 Status administration screen add_action( 'load-tools_page_action-scheduler', array( __CLASS__, 'register_admin_notice' ) ); add_action( 'load-woocommerce_page_wc-status', array( __CLASS__, 'register_admin_notice' ) ); } /** * Determines if there are log entries in the wp comments table. * * Uses the flag set on migration completion set by @see self::maybe_schedule_cleanup(). * * @return boolean Whether there are scheduled action comments in the comments table. */ public static function has_logs() { return 'yes' === get_option( self::$has_logs_option_key ); } /** * Schedules the WP Post comment table cleanup to run in 6 months if it's not already scheduled. * Attached to the migration complete hook 'action_scheduler/migration_complete'. */ public static function maybe_schedule_cleanup() { if ( (bool) get_comments( array( 'type' => ActionScheduler_wpCommentLogger::TYPE, 'number' => 1, 'fields' => 'ids' ) ) ) { update_option( self::$has_logs_option_key, 'yes' ); if ( ! as_next_scheduled_action( self::$cleanup_hook ) ) { as_schedule_single_action( gmdate( 'U' ) + ( 6 * MONTH_IN_SECONDS ), self::$cleanup_hook ); } } } /** * Delete all action comments from the WP Comments table. */ public static function delete_all_action_comments() { global $wpdb; $wpdb->delete( $wpdb->comments, array( 'comment_type' => ActionScheduler_wpCommentLogger::TYPE, 'comment_agent' => ActionScheduler_wpCommentLogger::AGENT ) ); delete_option( self::$has_logs_option_key ); } /** * Registers admin notices about the orphaned action logs. */ public static function register_admin_notice() { add_action( 'admin_notices', array( __CLASS__, 'print_admin_notice' ) ); } /** * Prints details about the orphaned action logs and includes information on where to learn more. */ public static function print_admin_notice() { $next_cleanup_message = ''; $next_scheduled_cleanup_hook = as_next_scheduled_action( self::$cleanup_hook ); if ( $next_scheduled_cleanup_hook ) { /* translators: %s: date interval */ $next_cleanup_message = sprintf( __( 'This data will be deleted in %s.', 'woocommerce' ), human_time_diff( gmdate( 'U' ), $next_scheduled_cleanup_hook ) ); } $notice = sprintf( /* translators: 1: next cleanup message 2: github issue URL */ __( 'Action Scheduler has migrated data to custom tables; however, orphaned log entries exist in the WordPress Comments table. %1$s Learn more »', 'woocommerce' ), $next_cleanup_message, 'https://github.com/woocommerce/action-scheduler/issues/368' ); echo '

    ' . wp_kses_post( $notice ) . '

    '; } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_Compatibility.php000064400000007065147600120010024366 0ustar00 $wp_max_limit_int && $filtered_limit_int > $current_limit_int ) ) { if ( false !== @ini_set( 'memory_limit', $filtered_limit ) ) { return $filtered_limit; } else { return false; } } elseif ( -1 === $wp_max_limit_int || $wp_max_limit_int > $current_limit_int ) { if ( false !== @ini_set( 'memory_limit', $wp_max_limit ) ) { return $wp_max_limit; } else { return false; } } return false; } /** * Attempts to raise the PHP timeout for time intensive processes. * * Only allows raising the existing limit and prevents lowering it. Wrapper for wc_set_time_limit(), when available. * * @param int $limit The time limit in seconds. */ public static function raise_time_limit( $limit = 0 ) { $limit = (int) $limit; $max_execution_time = (int) ini_get( 'max_execution_time' ); /* * If the max execution time is already unlimited (zero), or if it exceeds or is equal to the proposed * limit, there is no reason for us to make further changes (we never want to lower it). */ if ( 0 === $max_execution_time || ( $max_execution_time >= $limit && $limit !== 0 ) ) { return; } if ( function_exists( 'wc_set_time_limit' ) ) { wc_set_time_limit( $limit ); } elseif ( function_exists( 'set_time_limit' ) && false === strpos( ini_get( 'disable_functions' ), 'set_time_limit' ) && ! ini_get( 'safe_mode' ) ) { // phpcs:ignore PHPCompatibility.IniDirectives.RemovedIniDirectives.safe_modeDeprecatedRemoved @set_time_limit( $limit ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged } } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_QueueCleaner.php000064400000012170147600120010024124 0ustar00store = $store ? $store : ActionScheduler_Store::instance(); $this->batch_size = $batch_size; } public function delete_old_actions() { $lifespan = apply_filters( 'action_scheduler_retention_period', $this->month_in_seconds ); $cutoff = as_get_datetime_object($lifespan.' seconds ago'); $statuses_to_purge = array( ActionScheduler_Store::STATUS_COMPLETE, ActionScheduler_Store::STATUS_CANCELED, ); foreach ( $statuses_to_purge as $status ) { $actions_to_delete = $this->store->query_actions( array( 'status' => $status, 'modified' => $cutoff, 'modified_compare' => '<=', 'per_page' => $this->get_batch_size(), 'orderby' => 'none', ) ); foreach ( $actions_to_delete as $action_id ) { try { $this->store->delete_action( $action_id ); } catch ( Exception $e ) { /** * Notify 3rd party code of exceptions when deleting a completed action older than the retention period * * This hook provides a way for 3rd party code to log or otherwise handle exceptions relating to their * actions. * * @since 2.0.0 * * @param int $action_id The scheduled actions ID in the data store * @param Exception $e The exception thrown when attempting to delete the action from the data store * @param int $lifespan The retention period, in seconds, for old actions * @param int $count_of_actions_to_delete The number of old actions being deleted in this batch */ do_action( 'action_scheduler_failed_old_action_deletion', $action_id, $e, $lifespan, count( $actions_to_delete ) ); } } } } /** * Unclaim pending actions that have not been run within a given time limit. * * When called by ActionScheduler_Abstract_QueueRunner::run_cleanup(), the time limit passed * as a parameter is 10x the time limit used for queue processing. * * @param int $time_limit The number of seconds to allow a queue to run before unclaiming its pending actions. Default 300 (5 minutes). */ public function reset_timeouts( $time_limit = 300 ) { $timeout = apply_filters( 'action_scheduler_timeout_period', $time_limit ); if ( $timeout < 0 ) { return; } $cutoff = as_get_datetime_object($timeout.' seconds ago'); $actions_to_reset = $this->store->query_actions( array( 'status' => ActionScheduler_Store::STATUS_PENDING, 'modified' => $cutoff, 'modified_compare' => '<=', 'claimed' => true, 'per_page' => $this->get_batch_size(), 'orderby' => 'none', ) ); foreach ( $actions_to_reset as $action_id ) { $this->store->unclaim_action( $action_id ); do_action( 'action_scheduler_reset_action', $action_id ); } } /** * Mark actions that have been running for more than a given time limit as failed, based on * the assumption some uncatachable and unloggable fatal error occurred during processing. * * When called by ActionScheduler_Abstract_QueueRunner::run_cleanup(), the time limit passed * as a parameter is 10x the time limit used for queue processing. * * @param int $time_limit The number of seconds to allow an action to run before it is considered to have failed. Default 300 (5 minutes). */ public function mark_failures( $time_limit = 300 ) { $timeout = apply_filters( 'action_scheduler_failure_period', $time_limit ); if ( $timeout < 0 ) { return; } $cutoff = as_get_datetime_object($timeout.' seconds ago'); $actions_to_reset = $this->store->query_actions( array( 'status' => ActionScheduler_Store::STATUS_RUNNING, 'modified' => $cutoff, 'modified_compare' => '<=', 'per_page' => $this->get_batch_size(), 'orderby' => 'none', ) ); foreach ( $actions_to_reset as $action_id ) { $this->store->mark_failure( $action_id ); do_action( 'action_scheduler_failed_action', $action_id, $timeout ); } } /** * Do all of the cleaning actions. * * @param int $time_limit The number of seconds to use as the timeout and failure period. Default 300 (5 minutes). * @author Jeremy Pry */ public function clean( $time_limit = 300 ) { $this->delete_old_actions(); $this->reset_timeouts( $time_limit ); $this->mark_failures( $time_limit ); } /** * Get the batch size for cleaning the queue. * * @author Jeremy Pry * @return int */ protected function get_batch_size() { /** * Filter the batch size when cleaning the queue. * * @param int $batch_size The number of actions to clean in one batch. */ return absint( apply_filters( 'action_scheduler_cleanup_batch_size', $this->batch_size ) ); } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_ActionFactory.php000064400000026344147600120010024323 0ustar00get_date() ); } break; default: $action_class = 'ActionScheduler_FinishedAction'; break; } $action_class = apply_filters( 'action_scheduler_stored_action_class', $action_class, $status, $hook, $args, $schedule, $group ); $action = new $action_class( $hook, $args, $schedule, $group ); /** * Allow 3rd party code to change the instantiated action for a given hook, args, schedule and group. * * @param ActionScheduler_Action $action The instantiated action. * @param string $hook The instantiated action's hook. * @param array $args The instantiated action's args. * @param ActionScheduler_Schedule $schedule The instantiated action's schedule. * @param string $group The instantiated action's group. */ return apply_filters( 'action_scheduler_stored_action_instance', $action, $hook, $args, $schedule, $group ); } /** * Enqueue an action to run one time, as soon as possible (rather a specific scheduled time). * * This method creates a new action using the NullSchedule. In practice, this results in an action scheduled to * execute "now". Therefore, it will generally run as soon as possible but is not prioritized ahead of other actions * that are already past-due. * * @param string $hook The hook to trigger when this action runs. * @param array $args Args to pass when the hook is triggered. * @param string $group A group to put the action in. * * @return int The ID of the stored action. */ public function async( $hook, $args = array(), $group = '' ) { return $this->async_unique( $hook, $args, $group, false ); } /** * Same as async, but also supports $unique param. * * @param string $hook The hook to trigger when this action runs. * @param array $args Args to pass when the hook is triggered. * @param string $group A group to put the action in. * @param bool $unique Whether to ensure the action is unique. * * @return int The ID of the stored action. */ public function async_unique( $hook, $args = array(), $group = '', $unique = true ) { $schedule = new ActionScheduler_NullSchedule(); $action = new ActionScheduler_Action( $hook, $args, $schedule, $group ); return $unique ? $this->store_unique_action( $action, $unique ) : $this->store( $action ); } /** * Create single action. * * @param string $hook The hook to trigger when this action runs. * @param array $args Args to pass when the hook is triggered. * @param int $when Unix timestamp when the action will run. * @param string $group A group to put the action in. * * @return int The ID of the stored action. */ public function single( $hook, $args = array(), $when = null, $group = '' ) { return $this->single_unique( $hook, $args, $when, $group, false ); } /** * Create single action only if there is no pending or running action with same name and params. * * @param string $hook The hook to trigger when this action runs. * @param array $args Args to pass when the hook is triggered. * @param int $when Unix timestamp when the action will run. * @param string $group A group to put the action in. * @param bool $unique Whether action scheduled should be unique. * * @return int The ID of the stored action. */ public function single_unique( $hook, $args = array(), $when = null, $group = '', $unique = true ) { $date = as_get_datetime_object( $when ); $schedule = new ActionScheduler_SimpleSchedule( $date ); $action = new ActionScheduler_Action( $hook, $args, $schedule, $group ); return $unique ? $this->store_unique_action( $action ) : $this->store( $action ); } /** * Create the first instance of an action recurring on a given interval. * * @param string $hook The hook to trigger when this action runs. * @param array $args Args to pass when the hook is triggered. * @param int $first Unix timestamp for the first run. * @param int $interval Seconds between runs. * @param string $group A group to put the action in. * * @return int The ID of the stored action. */ public function recurring( $hook, $args = array(), $first = null, $interval = null, $group = '' ) { return $this->recurring_unique( $hook, $args, $first, $interval, $group, false ); } /** * Create the first instance of an action recurring on a given interval only if there is no pending or running action with same name and params. * * @param string $hook The hook to trigger when this action runs. * @param array $args Args to pass when the hook is triggered. * @param int $first Unix timestamp for the first run. * @param int $interval Seconds between runs. * @param string $group A group to put the action in. * @param bool $unique Whether action scheduled should be unique. * * @return int The ID of the stored action. */ public function recurring_unique( $hook, $args = array(), $first = null, $interval = null, $group = '', $unique = true ) { if ( empty( $interval ) ) { return $this->single_unique( $hook, $args, $first, $group, $unique ); } $date = as_get_datetime_object( $first ); $schedule = new ActionScheduler_IntervalSchedule( $date, $interval ); $action = new ActionScheduler_Action( $hook, $args, $schedule, $group ); return $unique ? $this->store_unique_action( $action ) : $this->store( $action ); } /** * Create the first instance of an action recurring on a Cron schedule. * * @param string $hook The hook to trigger when this action runs. * @param array $args Args to pass when the hook is triggered. * @param int $base_timestamp The first instance of the action will be scheduled * to run at a time calculated after this timestamp matching the cron * expression. This can be used to delay the first instance of the action. * @param int $schedule A cron definition string. * @param string $group A group to put the action in. * * @return int The ID of the stored action. */ public function cron( $hook, $args = array(), $base_timestamp = null, $schedule = null, $group = '' ) { return $this->cron_unique( $hook, $args, $base_timestamp, $schedule, $group, false ); } /** * Create the first instance of an action recurring on a Cron schedule only if there is no pending or running action with same name and params. * * @param string $hook The hook to trigger when this action runs. * @param array $args Args to pass when the hook is triggered. * @param int $base_timestamp The first instance of the action will be scheduled * to run at a time calculated after this timestamp matching the cron * expression. This can be used to delay the first instance of the action. * @param int $schedule A cron definition string. * @param string $group A group to put the action in. * @param bool $unique Whether action scheduled should be unique. * * @return int The ID of the stored action. **/ public function cron_unique( $hook, $args = array(), $base_timestamp = null, $schedule = null, $group = '', $unique = true ) { if ( empty( $schedule ) ) { return $this->single_unique( $hook, $args, $base_timestamp, $group, $unique ); } $date = as_get_datetime_object( $base_timestamp ); $cron = CronExpression::factory( $schedule ); $schedule = new ActionScheduler_CronSchedule( $date, $cron ); $action = new ActionScheduler_Action( $hook, $args, $schedule, $group ); return $unique ? $this->store_unique_action( $action ) : $this->store( $action ); } /** * Create a successive instance of a recurring or cron action. * * Importantly, the action will be rescheduled to run based on the current date/time. * That means when the action is scheduled to run in the past, the next scheduled date * will be pushed forward. For example, if a recurring action set to run every hour * was scheduled to run 5 seconds ago, it will be next scheduled for 1 hour in the * future, which is 1 hour and 5 seconds from when it was last scheduled to run. * * Alternatively, if the action is scheduled to run in the future, and is run early, * likely via manual intervention, then its schedule will change based on the time now. * For example, if a recurring action set to run every day, and is run 12 hours early, * it will run again in 24 hours, not 36 hours. * * This slippage is less of an issue with Cron actions, as the specific run time can * be set for them to run, e.g. 1am each day. In those cases, and entire period would * need to be missed before there was any change is scheduled, e.g. in the case of an * action scheduled for 1am each day, the action would need to run an entire day late. * * @param ActionScheduler_Action $action The existing action. * * @return string The ID of the stored action * @throws InvalidArgumentException If $action is not a recurring action. */ public function repeat( $action ) { $schedule = $action->get_schedule(); $next = $schedule->get_next( as_get_datetime_object() ); if ( is_null( $next ) || ! $schedule->is_recurring() ) { throw new InvalidArgumentException( __( 'Invalid action - must be a recurring action.', 'woocommerce' ) ); } $schedule_class = get_class( $schedule ); $new_schedule = new $schedule( $next, $schedule->get_recurrence(), $schedule->get_first_date() ); $new_action = new ActionScheduler_Action( $action->get_hook(), $action->get_args(), $new_schedule, $action->get_group() ); return $this->store( $new_action ); } /** * Save action to database. * * @param ActionScheduler_Action $action Action object to save. * * @return int The ID of the stored action */ protected function store( ActionScheduler_Action $action ) { $store = ActionScheduler_Store::instance(); return $store->save_action( $action ); } /** * Store action if it's unique. * * @param ActionScheduler_Action $action Action object to store. * * @return int ID of the created action. Will be 0 if action was not created. */ protected function store_unique_action( ActionScheduler_Action $action ) { $store = ActionScheduler_Store::instance(); return method_exists( $store, 'save_unique_action' ) ? $store->save_unique_action( $action ) : $store->save_action( $action ); } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_DataController.php000064400000012233147600120010024463 0ustar00=' ); return $php_support && apply_filters( 'action_scheduler_migration_dependencies_met', true ); } /** * Get a flag indicating whether the migration is complete. * * @return bool Whether the flag has been set marking the migration as complete */ public static function is_migration_complete() { return get_option( self::STATUS_FLAG ) === self::STATUS_COMPLETE; } /** * Mark the migration as complete. */ public static function mark_migration_complete() { update_option( self::STATUS_FLAG, self::STATUS_COMPLETE ); } /** * Unmark migration when a plugin is de-activated. Will not work in case of silent activation, for example in an update. * We do this to mitigate the bug of lost actions which happens if there was an AS 2.x to AS 3.x migration in the past, but that plugin is now * deactivated and the site was running on AS 2.x again. */ public static function mark_migration_incomplete() { delete_option( self::STATUS_FLAG ); } /** * Set the action store class name. * * @param string $class Classname of the store class. * * @return string */ public static function set_store_class( $class ) { return self::DATASTORE_CLASS; } /** * Set the action logger class name. * * @param string $class Classname of the logger class. * * @return string */ public static function set_logger_class( $class ) { return self::LOGGER_CLASS; } /** * Set the sleep time in seconds. * * @param integer $sleep_time The number of seconds to pause before resuming operation. */ public static function set_sleep_time( $sleep_time ) { self::$sleep_time = (int) $sleep_time; } /** * Set the tick count required for freeing memory. * * @param integer $free_ticks The number of ticks to free memory on. */ public static function set_free_ticks( $free_ticks ) { self::$free_ticks = (int) $free_ticks; } /** * Free memory if conditions are met. * * @param int $ticks Current tick count. */ public static function maybe_free_memory( $ticks ) { if ( self::$free_ticks && 0 === $ticks % self::$free_ticks ) { self::free_memory(); } } /** * Reduce memory footprint by clearing the database query and object caches. */ public static function free_memory() { if ( 0 < self::$sleep_time ) { /* translators: %d: amount of time */ \WP_CLI::warning( sprintf( _n( 'Stopped the insanity for %d second', 'Stopped the insanity for %d seconds', self::$sleep_time, 'woocommerce' ), self::$sleep_time ) ); sleep( self::$sleep_time ); } \WP_CLI::warning( __( 'Attempting to reduce used memory...', 'woocommerce' ) ); /** * @var $wpdb \wpdb * @var $wp_object_cache \WP_Object_Cache */ global $wpdb, $wp_object_cache; $wpdb->queries = array(); if ( ! is_a( $wp_object_cache, 'WP_Object_Cache' ) ) { return; } $wp_object_cache->group_ops = array(); $wp_object_cache->stats = array(); $wp_object_cache->memcache_debug = array(); $wp_object_cache->cache = array(); if ( is_callable( array( $wp_object_cache, '__remoteset' ) ) ) { call_user_func( array( $wp_object_cache, '__remoteset' ) ); // important } } /** * Connect to table datastores if migration is complete. * Otherwise, proceed with the migration if the dependencies have been met. */ public static function init() { if ( self::is_migration_complete() ) { add_filter( 'action_scheduler_store_class', array( 'ActionScheduler_DataController', 'set_store_class' ), 100 ); add_filter( 'action_scheduler_logger_class', array( 'ActionScheduler_DataController', 'set_logger_class' ), 100 ); add_action( 'deactivate_plugin', array( 'ActionScheduler_DataController', 'mark_migration_incomplete' ) ); } elseif ( self::dependencies_met() ) { Controller::init(); } add_action( 'action_scheduler/progress_tick', array( 'ActionScheduler_DataController', 'maybe_free_memory' ) ); } /** * Singleton factory. */ public static function instance() { if ( ! isset( self::$instance ) ) { self::$instance = new static(); } return self::$instance; } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_OptionLock.php000064400000003361147600120010023631 0ustar00maybe_dispatch_async_request() uses a lock to avoid * calling ActionScheduler_QueueRunner->has_maximum_concurrent_batches() every time the 'shutdown', * hook is triggered, because that method calls ActionScheduler_QueueRunner->store->get_claim_count() * to find the current number of claims in the database. * * @param string $lock_type A string to identify different lock types. * @bool True if lock value has changed, false if not or if set failed. */ public function set( $lock_type ) { return update_option( $this->get_key( $lock_type ), time() + $this->get_duration( $lock_type ) ); } /** * If a lock is set, return the timestamp it was set to expiry. * * @param string $lock_type A string to identify different lock types. * @return bool|int False if no lock is set, otherwise the timestamp for when the lock is set to expire. */ public function get_expiration( $lock_type ) { return get_option( $this->get_key( $lock_type ) ); } /** * Get the key to use for storing the lock in the transient * * @param string $lock_type A string to identify different lock types. * @return string */ protected function get_key( $lock_type ) { return sprintf( 'action_scheduler_lock_%s', $lock_type ); } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_Exception.php000064400000000317147600120010023504 0ustar00id = $id; $this->action_ids = $action_ids; } public function get_id() { return $this->id; } public function get_actions() { return $this->action_ids; } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_NullLogEntry.php000064400000000333147600120010024142 0ustar00store = $store; } public function attach( ActionScheduler_ActionClaim $claim ) { $this->claim = $claim; add_action( 'shutdown', array( $this, 'handle_unexpected_shutdown' ) ); add_action( 'action_scheduler_before_execute', array( $this, 'track_current_action' ), 0, 1 ); add_action( 'action_scheduler_after_execute', array( $this, 'untrack_action' ), 0, 0 ); add_action( 'action_scheduler_execution_ignored', array( $this, 'untrack_action' ), 0, 0 ); add_action( 'action_scheduler_failed_execution', array( $this, 'untrack_action' ), 0, 0 ); } public function detach() { $this->claim = NULL; $this->untrack_action(); remove_action( 'shutdown', array( $this, 'handle_unexpected_shutdown' ) ); remove_action( 'action_scheduler_before_execute', array( $this, 'track_current_action' ), 0 ); remove_action( 'action_scheduler_after_execute', array( $this, 'untrack_action' ), 0 ); remove_action( 'action_scheduler_execution_ignored', array( $this, 'untrack_action' ), 0 ); remove_action( 'action_scheduler_failed_execution', array( $this, 'untrack_action' ), 0 ); } public function track_current_action( $action_id ) { $this->action_id = $action_id; } public function untrack_action() { $this->action_id = 0; } public function handle_unexpected_shutdown() { if ( $error = error_get_last() ) { if ( in_array( $error['type'], array( E_ERROR, E_PARSE, E_COMPILE_ERROR, E_USER_ERROR, E_RECOVERABLE_ERROR ) ) ) { if ( !empty($this->action_id) ) { $this->store->mark_failure( $this->action_id ); do_action( 'action_scheduler_unexpected_shutdown', $this->action_id, $error ); } } $this->store->release_claim( $this->claim ); } } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_ListTable.php000064400000050060147600120010023431 0ustar00 label). * * @var array */ protected $columns = array(); /** * Actions (name => label). * * @var array */ protected $row_actions = array(); /** * The active data stores * * @var ActionScheduler_Store */ protected $store; /** * A logger to use for getting action logs to display * * @var ActionScheduler_Logger */ protected $logger; /** * A ActionScheduler_QueueRunner runner instance (or child class) * * @var ActionScheduler_QueueRunner */ protected $runner; /** * Bulk actions. The key of the array is the method name of the implementation: * * bulk_(array $ids, string $sql_in). * * See the comments in the parent class for further details * * @var array */ protected $bulk_actions = array(); /** * Flag variable to render our notifications, if any, once. * * @var bool */ protected static $did_notification = false; /** * Array of seconds for common time periods, like week or month, alongside an internationalised string representation, i.e. "Day" or "Days" * * @var array */ private static $time_periods; /** * Sets the current data store object into `store->action` and initialises the object. * * @param ActionScheduler_Store $store * @param ActionScheduler_Logger $logger * @param ActionScheduler_QueueRunner $runner */ public function __construct( ActionScheduler_Store $store, ActionScheduler_Logger $logger, ActionScheduler_QueueRunner $runner ) { $this->store = $store; $this->logger = $logger; $this->runner = $runner; $this->table_header = __( 'Scheduled Actions', 'woocommerce' ); $this->bulk_actions = array( 'delete' => __( 'Delete', 'woocommerce' ), ); $this->columns = array( 'hook' => __( 'Hook', 'woocommerce' ), 'status' => __( 'Status', 'woocommerce' ), 'args' => __( 'Arguments', 'woocommerce' ), 'group' => __( 'Group', 'woocommerce' ), 'recurrence' => __( 'Recurrence', 'woocommerce' ), 'schedule' => __( 'Scheduled Date', 'woocommerce' ), 'log_entries' => __( 'Log', 'woocommerce' ), ); $this->sort_by = array( 'schedule', 'hook', 'group', ); $this->search_by = array( 'hook', 'args', 'claim_id', ); $request_status = $this->get_request_status(); if ( empty( $request_status ) ) { $this->sort_by[] = 'status'; } elseif ( in_array( $request_status, array( 'in-progress', 'failed' ) ) ) { $this->columns += array( 'claim_id' => __( 'Claim ID', 'woocommerce' ) ); $this->sort_by[] = 'claim_id'; } $this->row_actions = array( 'hook' => array( 'run' => array( 'name' => __( 'Run', 'woocommerce' ), 'desc' => __( 'Process the action now as if it were run as part of a queue', 'woocommerce' ), ), 'cancel' => array( 'name' => __( 'Cancel', 'woocommerce' ), 'desc' => __( 'Cancel the action now to avoid it being run in future', 'woocommerce' ), 'class' => 'cancel trash', ), ), ); self::$time_periods = array( array( 'seconds' => YEAR_IN_SECONDS, /* translators: %s: amount of time */ 'names' => _n_noop( '%s year', '%s years', 'woocommerce' ), ), array( 'seconds' => MONTH_IN_SECONDS, /* translators: %s: amount of time */ 'names' => _n_noop( '%s month', '%s months', 'woocommerce' ), ), array( 'seconds' => WEEK_IN_SECONDS, /* translators: %s: amount of time */ 'names' => _n_noop( '%s week', '%s weeks', 'woocommerce' ), ), array( 'seconds' => DAY_IN_SECONDS, /* translators: %s: amount of time */ 'names' => _n_noop( '%s day', '%s days', 'woocommerce' ), ), array( 'seconds' => HOUR_IN_SECONDS, /* translators: %s: amount of time */ 'names' => _n_noop( '%s hour', '%s hours', 'woocommerce' ), ), array( 'seconds' => MINUTE_IN_SECONDS, /* translators: %s: amount of time */ 'names' => _n_noop( '%s minute', '%s minutes', 'woocommerce' ), ), array( 'seconds' => 1, /* translators: %s: amount of time */ 'names' => _n_noop( '%s second', '%s seconds', 'woocommerce' ), ), ); parent::__construct( array( 'singular' => 'action-scheduler', 'plural' => 'action-scheduler', 'ajax' => false, ) ); add_screen_option( 'per_page', array( 'default' => $this->items_per_page, ) ); add_filter( 'set_screen_option_' . $this->get_per_page_option_name(), array( $this, 'set_items_per_page_option' ), 10, 3 ); set_screen_options(); } /** * Handles setting the items_per_page option for this screen. * * @param mixed $status Default false (to skip saving the current option). * @param string $option Screen option name. * @param int $value Screen option value. * @return int */ public function set_items_per_page_option( $status, $option, $value ) { return $value; } /** * Convert an interval of seconds into a two part human friendly string. * * The WordPress human_time_diff() function only calculates the time difference to one degree, meaning * even if an action is 1 day and 11 hours away, it will display "1 day". This function goes one step * further to display two degrees of accuracy. * * Inspired by the Crontrol::interval() function by Edward Dale: https://wordpress.org/plugins/wp-crontrol/ * * @param int $interval A interval in seconds. * @param int $periods_to_include Depth of time periods to include, e.g. for an interval of 70, and $periods_to_include of 2, both minutes and seconds would be included. With a value of 1, only minutes would be included. * @return string A human friendly string representation of the interval. */ private static function human_interval( $interval, $periods_to_include = 2 ) { if ( $interval <= 0 ) { return __( 'Now!', 'woocommerce' ); } $output = ''; for ( $time_period_index = 0, $periods_included = 0, $seconds_remaining = $interval; $time_period_index < count( self::$time_periods ) && $seconds_remaining > 0 && $periods_included < $periods_to_include; $time_period_index++ ) { $periods_in_interval = floor( $seconds_remaining / self::$time_periods[ $time_period_index ]['seconds'] ); if ( $periods_in_interval > 0 ) { if ( ! empty( $output ) ) { $output .= ' '; } $output .= sprintf( _n( self::$time_periods[ $time_period_index ]['names'][0], self::$time_periods[ $time_period_index ]['names'][1], $periods_in_interval, 'woocommerce' ), $periods_in_interval ); $seconds_remaining -= $periods_in_interval * self::$time_periods[ $time_period_index ]['seconds']; $periods_included++; } } return $output; } /** * Returns the recurrence of an action or 'Non-repeating'. The output is human readable. * * @param ActionScheduler_Action $action * * @return string */ protected function get_recurrence( $action ) { $schedule = $action->get_schedule(); if ( $schedule->is_recurring() ) { $recurrence = $schedule->get_recurrence(); if ( is_numeric( $recurrence ) ) { /* translators: %s: time interval */ return sprintf( __( 'Every %s', 'woocommerce' ), self::human_interval( $recurrence ) ); } else { return $recurrence; } } return __( 'Non-repeating', 'woocommerce' ); } /** * Serializes the argument of an action to render it in a human friendly format. * * @param array $row The array representation of the current row of the table * * @return string */ public function column_args( array $row ) { if ( empty( $row['args'] ) ) { return apply_filters( 'action_scheduler_list_table_column_args', '', $row ); } $row_html = '
      '; foreach ( $row['args'] as $key => $value ) { $row_html .= sprintf( '
    • %s => %s
    • ', esc_html( var_export( $key, true ) ), esc_html( var_export( $value, true ) ) ); } $row_html .= '
    '; return apply_filters( 'action_scheduler_list_table_column_args', $row_html, $row ); } /** * Prints the logs entries inline. We do so to avoid loading Javascript and other hacks to show it in a modal. * * @param array $row Action array. * @return string */ public function column_log_entries( array $row ) { $log_entries_html = '
      '; $timezone = new DateTimezone( 'UTC' ); foreach ( $row['log_entries'] as $log_entry ) { $log_entries_html .= $this->get_log_entry_html( $log_entry, $timezone ); } $log_entries_html .= '
    '; return $log_entries_html; } /** * Prints the logs entries inline. We do so to avoid loading Javascript and other hacks to show it in a modal. * * @param ActionScheduler_LogEntry $log_entry * @param DateTimezone $timezone * @return string */ protected function get_log_entry_html( ActionScheduler_LogEntry $log_entry, DateTimezone $timezone ) { $date = $log_entry->get_date(); $date->setTimezone( $timezone ); return sprintf( '
  • %s
    %s
  • ', esc_html( $date->format( 'Y-m-d H:i:s O' ) ), esc_html( $log_entry->get_message() ) ); } /** * Only display row actions for pending actions. * * @param array $row Row to render * @param string $column_name Current row * * @return string */ protected function maybe_render_actions( $row, $column_name ) { if ( 'pending' === strtolower( $row[ 'status_name' ] ) ) { return parent::maybe_render_actions( $row, $column_name ); } return ''; } /** * Renders admin notifications * * Notifications: * 1. When the maximum number of tasks are being executed simultaneously. * 2. Notifications when a task is manually executed. * 3. Tables are missing. */ public function display_admin_notices() { global $wpdb; if ( ( is_a( $this->store, 'ActionScheduler_HybridStore' ) || is_a( $this->store, 'ActionScheduler_DBStore' ) ) && apply_filters( 'action_scheduler_enable_recreate_data_store', true ) ) { $table_list = array( 'actionscheduler_actions', 'actionscheduler_logs', 'actionscheduler_groups', 'actionscheduler_claims', ); $found_tables = $wpdb->get_col( "SHOW TABLES LIKE '{$wpdb->prefix}actionscheduler%'" ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared foreach ( $table_list as $table_name ) { if ( ! in_array( $wpdb->prefix . $table_name, $found_tables ) ) { $this->admin_notices[] = array( 'class' => 'error', 'message' => __( 'It appears one or more database tables were missing. Attempting to re-create the missing table(s).' , 'woocommerce' ), ); $this->recreate_tables(); parent::display_admin_notices(); return; } } } if ( $this->runner->has_maximum_concurrent_batches() ) { $claim_count = $this->store->get_claim_count(); $this->admin_notices[] = array( 'class' => 'updated', 'message' => sprintf( /* translators: %s: amount of claims */ _n( 'Maximum simultaneous queues already in progress (%s queue). No additional queues will begin processing until the current queues are complete.', 'Maximum simultaneous queues already in progress (%s queues). No additional queues will begin processing until the current queues are complete.', $claim_count, 'woocommerce' ), $claim_count ), ); } elseif ( $this->store->has_pending_actions_due() ) { $async_request_lock_expiration = ActionScheduler::lock()->get_expiration( 'async-request-runner' ); // No lock set or lock expired if ( false === $async_request_lock_expiration || $async_request_lock_expiration < time() ) { $in_progress_url = add_query_arg( 'status', 'in-progress', remove_query_arg( 'status' ) ); /* translators: %s: process URL */ $async_request_message = sprintf( __( 'A new queue has begun processing. View actions in-progress »', 'woocommerce' ), esc_url( $in_progress_url ) ); } else { /* translators: %d: seconds */ $async_request_message = sprintf( __( 'The next queue will begin processing in approximately %d seconds.', 'woocommerce' ), $async_request_lock_expiration - time() ); } $this->admin_notices[] = array( 'class' => 'notice notice-info', 'message' => $async_request_message, ); } $notification = get_transient( 'action_scheduler_admin_notice' ); if ( is_array( $notification ) ) { delete_transient( 'action_scheduler_admin_notice' ); $action = $this->store->fetch_action( $notification['action_id'] ); $action_hook_html = '' . $action->get_hook() . ''; if ( 1 == $notification['success'] ) { $class = 'updated'; switch ( $notification['row_action_type'] ) { case 'run' : /* translators: %s: action HTML */ $action_message_html = sprintf( __( 'Successfully executed action: %s', 'woocommerce' ), $action_hook_html ); break; case 'cancel' : /* translators: %s: action HTML */ $action_message_html = sprintf( __( 'Successfully canceled action: %s', 'woocommerce' ), $action_hook_html ); break; default : /* translators: %s: action HTML */ $action_message_html = sprintf( __( 'Successfully processed change for action: %s', 'woocommerce' ), $action_hook_html ); break; } } else { $class = 'error'; /* translators: 1: action HTML 2: action ID 3: error message */ $action_message_html = sprintf( __( 'Could not process change for action: "%1$s" (ID: %2$d). Error: %3$s', 'woocommerce' ), $action_hook_html, esc_html( $notification['action_id'] ), esc_html( $notification['error_message'] ) ); } $action_message_html = apply_filters( 'action_scheduler_admin_notice_html', $action_message_html, $action, $notification ); $this->admin_notices[] = array( 'class' => $class, 'message' => $action_message_html, ); } parent::display_admin_notices(); } /** * Prints the scheduled date in a human friendly format. * * @param array $row The array representation of the current row of the table * * @return string */ public function column_schedule( $row ) { return $this->get_schedule_display_string( $row['schedule'] ); } /** * Get the scheduled date in a human friendly format. * * @param ActionScheduler_Schedule $schedule * @return string */ protected function get_schedule_display_string( ActionScheduler_Schedule $schedule ) { $schedule_display_string = ''; if ( is_a( $schedule, 'ActionScheduler_NullSchedule' ) ) { return __( 'async', 'woocommerce' ); } if ( ! $schedule->get_date() ) { return '0000-00-00 00:00:00'; } $next_timestamp = $schedule->get_date()->getTimestamp(); $schedule_display_string .= $schedule->get_date()->format( 'Y-m-d H:i:s O' ); $schedule_display_string .= '
    '; if ( gmdate( 'U' ) > $next_timestamp ) { /* translators: %s: date interval */ $schedule_display_string .= sprintf( __( ' (%s ago)', 'woocommerce' ), self::human_interval( gmdate( 'U' ) - $next_timestamp ) ); } else { /* translators: %s: date interval */ $schedule_display_string .= sprintf( __( ' (%s)', 'woocommerce' ), self::human_interval( $next_timestamp - gmdate( 'U' ) ) ); } return $schedule_display_string; } /** * Bulk delete * * Deletes actions based on their ID. This is the handler for the bulk delete. It assumes the data * properly validated by the callee and it will delete the actions without any extra validation. * * @param array $ids * @param string $ids_sql Inherited and unused */ protected function bulk_delete( array $ids, $ids_sql ) { foreach ( $ids as $id ) { $this->store->delete_action( $id ); } } /** * Implements the logic behind running an action. ActionScheduler_Abstract_ListTable validates the request and their * parameters are valid. * * @param int $action_id */ protected function row_action_cancel( $action_id ) { $this->process_row_action( $action_id, 'cancel' ); } /** * Implements the logic behind running an action. ActionScheduler_Abstract_ListTable validates the request and their * parameters are valid. * * @param int $action_id */ protected function row_action_run( $action_id ) { $this->process_row_action( $action_id, 'run' ); } /** * Force the data store schema updates. */ protected function recreate_tables() { if ( is_a( $this->store, 'ActionScheduler_HybridStore' ) ) { $store = $this->store; } else { $store = new ActionScheduler_HybridStore(); } add_action( 'action_scheduler/created_table', array( $store, 'set_autoincrement' ), 10, 2 ); $store_schema = new ActionScheduler_StoreSchema(); $logger_schema = new ActionScheduler_LoggerSchema(); $store_schema->register_tables( true ); $logger_schema->register_tables( true ); remove_action( 'action_scheduler/created_table', array( $store, 'set_autoincrement' ), 10 ); } /** * Implements the logic behind processing an action once an action link is clicked on the list table. * * @param int $action_id * @param string $row_action_type The type of action to perform on the action. */ protected function process_row_action( $action_id, $row_action_type ) { try { switch ( $row_action_type ) { case 'run' : $this->runner->process_action( $action_id, 'Admin List Table' ); break; case 'cancel' : $this->store->cancel_action( $action_id ); break; } $success = 1; $error_message = ''; } catch ( Exception $e ) { $success = 0; $error_message = $e->getMessage(); } set_transient( 'action_scheduler_admin_notice', compact( 'action_id', 'success', 'error_message', 'row_action_type' ), 30 ); } /** * {@inheritDoc} */ public function prepare_items() { $this->prepare_column_headers(); $per_page = $this->get_items_per_page( $this->get_per_page_option_name(), $this->items_per_page ); $query = array( 'per_page' => $per_page, 'offset' => $this->get_items_offset(), 'status' => $this->get_request_status(), 'orderby' => $this->get_request_orderby(), 'order' => $this->get_request_order(), 'search' => $this->get_request_search_query(), ); /** * Change query arguments to query for past-due actions. * Past-due actions have the 'pending' status and are in the past. * This is needed because registering 'past-due' as a status is overkill. */ if ( 'past-due' === $this->get_request_status() ) { $query['status'] = ActionScheduler_Store::STATUS_PENDING; $query['date'] = as_get_datetime_object(); } $this->items = array(); $total_items = $this->store->query_actions( $query, 'count' ); $status_labels = $this->store->get_status_labels(); foreach ( $this->store->query_actions( $query ) as $action_id ) { try { $action = $this->store->fetch_action( $action_id ); } catch ( Exception $e ) { continue; } if ( is_a( $action, 'ActionScheduler_NullAction' ) ) { continue; } $this->items[ $action_id ] = array( 'ID' => $action_id, 'hook' => $action->get_hook(), 'status_name' => $this->store->get_status( $action_id ), 'status' => $status_labels[ $this->store->get_status( $action_id ) ], 'args' => $action->get_args(), 'group' => $action->get_group(), 'log_entries' => $this->logger->get_logs( $action_id ), 'claim_id' => $this->store->get_claim_id( $action_id ), 'recurrence' => $this->get_recurrence( $action ), 'schedule' => $action->get_schedule(), ); } $this->set_pagination_args( array( 'total_items' => $total_items, 'per_page' => $per_page, 'total_pages' => ceil( $total_items / $per_page ), ) ); } /** * Prints the available statuses so the user can click to filter. */ protected function display_filter_by_status() { $this->status_counts = $this->store->action_counts() + $this->store->extra_action_counts(); parent::display_filter_by_status(); } /** * Get the text to display in the search box on the list table. */ protected function get_search_box_button_text() { return __( 'Search hook, args and claim ID', 'woocommerce' ); } /** * {@inheritDoc} */ protected function get_per_page_option_name() { return str_replace( '-', '_', $this->screen->id ) . '_per_page'; } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_DateTime.php000064400000003206147600120010023242 0ustar00format( 'U' ); } /** * Set the UTC offset. * * This represents a fixed offset instead of a timezone setting. * * @param $offset */ public function setUtcOffset( $offset ) { $this->utcOffset = intval( $offset ); } /** * Returns the timezone offset. * * @return int * @link http://php.net/manual/en/datetime.getoffset.php */ #[\ReturnTypeWillChange] public function getOffset() { return $this->utcOffset ? $this->utcOffset : parent::getOffset(); } /** * Set the TimeZone associated with the DateTime * * @param DateTimeZone $timezone * * @return static * @link http://php.net/manual/en/datetime.settimezone.php */ #[\ReturnTypeWillChange] public function setTimezone( $timezone ) { $this->utcOffset = 0; parent::setTimezone( $timezone ); return $this; } /** * Get the timestamp with the WordPress timezone offset added or subtracted. * * @since 3.0.0 * @return int */ public function getOffsetTimestamp() { return $this->getTimestamp() + $this->getOffset(); } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_wcSystemStatus.php000064400000012220147600120010024564 0ustar00store = $store; } /** * Display action data, including number of actions grouped by status and the oldest & newest action in each status. * * Helpful to identify issues, like a clogged queue. */ public function render() { $action_counts = $this->store->action_counts(); $status_labels = $this->store->get_status_labels(); $oldest_and_newest = $this->get_oldest_and_newest( array_keys( $status_labels ) ); $this->get_template( $status_labels, $action_counts, $oldest_and_newest ); } /** * Get oldest and newest scheduled dates for a given set of statuses. * * @param array $status_keys Set of statuses to find oldest & newest action for. * @return array */ protected function get_oldest_and_newest( $status_keys ) { $oldest_and_newest = array(); foreach ( $status_keys as $status ) { $oldest_and_newest[ $status ] = array( 'oldest' => '–', 'newest' => '–', ); if ( 'in-progress' === $status ) { continue; } $oldest_and_newest[ $status ]['oldest'] = $this->get_action_status_date( $status, 'oldest' ); $oldest_and_newest[ $status ]['newest'] = $this->get_action_status_date( $status, 'newest' ); } return $oldest_and_newest; } /** * Get oldest or newest scheduled date for a given status. * * @param string $status Action status label/name string. * @param string $date_type Oldest or Newest. * @return DateTime */ protected function get_action_status_date( $status, $date_type = 'oldest' ) { $order = 'oldest' === $date_type ? 'ASC' : 'DESC'; $action = $this->store->query_actions( array( 'claimed' => false, 'status' => $status, 'per_page' => 1, 'order' => $order, ) ); if ( ! empty( $action ) ) { $date_object = $this->store->get_date( $action[0] ); $action_date = $date_object->format( 'Y-m-d H:i:s O' ); } else { $action_date = '–'; } return $action_date; } /** * Get oldest or newest scheduled date for a given status. * * @param array $status_labels Set of statuses to find oldest & newest action for. * @param array $action_counts Number of actions grouped by status. * @param array $oldest_and_newest Date of the oldest and newest action with each status. */ protected function get_template( $status_labels, $action_counts, $oldest_and_newest ) { $as_version = ActionScheduler_Versions::instance()->latest_version(); $as_datastore = get_class( ActionScheduler_Store::instance() ); ?> $count ) { // WC uses the 3rd column for export, so we need to display more data in that (hidden when viewed as part of the table) and add an empty 2nd column. printf( '', esc_html( $status_labels[ $status ] ), esc_html( number_format_i18n( $count ) ), esc_html( $oldest_and_newest[ $status ]['oldest'] ), esc_html( $oldest_and_newest[ $status ]['newest'] ) ); } ?>

     
    %1$s %2$s, Oldest: %3$s, Newest: %4$s%3$s%4$s
    store ); } $this->async_request = $async_request; } /** * @codeCoverageIgnore */ public function init() { add_filter( 'cron_schedules', array( self::instance(), 'add_wp_cron_schedule' ) ); // Check for and remove any WP Cron hook scheduled by Action Scheduler < 3.0.0, which didn't include the $context param $next_timestamp = wp_next_scheduled( self::WP_CRON_HOOK ); if ( $next_timestamp ) { wp_unschedule_event( $next_timestamp, self::WP_CRON_HOOK ); } $cron_context = array( 'WP Cron' ); if ( ! wp_next_scheduled( self::WP_CRON_HOOK, $cron_context ) ) { $schedule = apply_filters( 'action_scheduler_run_schedule', self::WP_CRON_SCHEDULE ); wp_schedule_event( time(), $schedule, self::WP_CRON_HOOK, $cron_context ); } add_action( self::WP_CRON_HOOK, array( self::instance(), 'run' ) ); $this->hook_dispatch_async_request(); } /** * Hook check for dispatching an async request. */ public function hook_dispatch_async_request() { add_action( 'shutdown', array( $this, 'maybe_dispatch_async_request' ) ); } /** * Unhook check for dispatching an async request. */ public function unhook_dispatch_async_request() { remove_action( 'shutdown', array( $this, 'maybe_dispatch_async_request' ) ); } /** * Check if we should dispatch an async request to process actions. * * This method is attached to 'shutdown', so is called frequently. To avoid slowing down * the site, it mitigates the work performed in each request by: * 1. checking if it's in the admin context and then * 2. haven't run on the 'shutdown' hook within the lock time (60 seconds by default) * 3. haven't exceeded the number of allowed batches. * * The order of these checks is important, because they run from a check on a value: * 1. in memory - is_admin() maps to $GLOBALS or the WP_ADMIN constant * 2. in memory - transients use autoloaded options by default * 3. from a database query - has_maximum_concurrent_batches() run the query * $this->store->get_claim_count() to find the current number of claims in the DB. * * If all of these conditions are met, then we request an async runner check whether it * should dispatch a request to process pending actions. */ public function maybe_dispatch_async_request() { if ( is_admin() && ! ActionScheduler::lock()->is_locked( 'async-request-runner' ) ) { // Only start an async queue at most once every 60 seconds ActionScheduler::lock()->set( 'async-request-runner' ); $this->async_request->maybe_dispatch(); } } /** * Process actions in the queue. Attached to self::WP_CRON_HOOK i.e. 'action_scheduler_run_queue' * * The $context param of this method defaults to 'WP Cron', because prior to Action Scheduler 3.0.0 * that was the only context in which this method was run, and the self::WP_CRON_HOOK hook had no context * passed along with it. New code calling this method directly, or by triggering the self::WP_CRON_HOOK, * should set a context as the first parameter. For an example of this, refer to the code seen in * @see ActionScheduler_AsyncRequest_QueueRunner::handle() * * @param string $context Optional identifer for the context in which this action is being processed, e.g. 'WP CLI' or 'WP Cron' * Generally, this should be capitalised and not localised as it's a proper noun. * @return int The number of actions processed. */ public function run( $context = 'WP Cron' ) { ActionScheduler_Compatibility::raise_memory_limit(); ActionScheduler_Compatibility::raise_time_limit( $this->get_time_limit() ); do_action( 'action_scheduler_before_process_queue' ); $this->run_cleanup(); $this->processed_actions_count = 0; if ( false === $this->has_maximum_concurrent_batches() ) { $batch_size = apply_filters( 'action_scheduler_queue_runner_batch_size', 25 ); do { $processed_actions_in_batch = $this->do_batch( $batch_size, $context ); $this->processed_actions_count += $processed_actions_in_batch; } while ( $processed_actions_in_batch > 0 && ! $this->batch_limits_exceeded( $this->processed_actions_count ) ); // keep going until we run out of actions, time, or memory } do_action( 'action_scheduler_after_process_queue' ); return $this->processed_actions_count; } /** * Process a batch of actions pending in the queue. * * Actions are processed by claiming a set of pending actions then processing each one until either the batch * size is completed, or memory or time limits are reached, defined by @see $this->batch_limits_exceeded(). * * @param int $size The maximum number of actions to process in the batch. * @param string $context Optional identifer for the context in which this action is being processed, e.g. 'WP CLI' or 'WP Cron' * Generally, this should be capitalised and not localised as it's a proper noun. * @return int The number of actions processed. */ protected function do_batch( $size = 100, $context = '' ) { $claim = $this->store->stake_claim($size); $this->monitor->attach($claim); $processed_actions = 0; foreach ( $claim->get_actions() as $action_id ) { // bail if we lost the claim if ( ! in_array( $action_id, $this->store->find_actions_by_claim_id( $claim->get_id() ) ) ) { break; } $this->process_action( $action_id, $context ); $processed_actions++; if ( $this->batch_limits_exceeded( $processed_actions + $this->processed_actions_count ) ) { break; } } $this->store->release_claim($claim); $this->monitor->detach(); $this->clear_caches(); return $processed_actions; } /** * Flush the cache if possible (intended for use after a batch of actions has been processed). * * This is useful because running large batches can eat up memory and because invalid data can accrue in the * runtime cache, which may lead to unexpected results. */ protected function clear_caches() { /* * Calling wp_cache_flush_runtime() lets us clear the runtime cache without invalidating the external object * cache, so we will always prefer this when it is available (but it was only introduced in WordPress 6.0). */ if ( function_exists( 'wp_cache_flush_runtime' ) ) { wp_cache_flush_runtime(); } elseif ( ! wp_using_ext_object_cache() /** * When an external object cache is in use, and when wp_cache_flush_runtime() is not available, then * normally the cache will not be flushed after processing a batch of actions (to avoid a performance * penalty for other processes). * * This filter makes it possible to override this behavior and always flush the cache, even if an external * object cache is in use. * * @since 1.0 * * @param bool $flush_cache If the cache should be flushed. */ || apply_filters( 'action_scheduler_queue_runner_flush_cache', false ) ) { wp_cache_flush(); } } public function add_wp_cron_schedule( $schedules ) { $schedules['every_minute'] = array( 'interval' => 60, // in seconds 'display' => __( 'Every minute', 'woocommerce' ), ); return $schedules; } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_Versions.php000064400000002357147600120010023364 0ustar00versions[$version_string]) ) { return FALSE; } $this->versions[$version_string] = $initialization_callback; return TRUE; } public function get_versions() { return $this->versions; } public function latest_version() { $keys = array_keys($this->versions); if ( empty($keys) ) { return false; } uasort( $keys, 'version_compare' ); return end($keys); } public function latest_version_callback() { $latest = $this->latest_version(); if ( empty($latest) || !isset($this->versions[$latest]) ) { return '__return_null'; } return $this->versions[$latest]; } /** * @return ActionScheduler_Versions * @codeCoverageIgnore */ public static function instance() { if ( empty(self::$instance) ) { self::$instance = new self(); } return self::$instance; } /** * @codeCoverageIgnore */ public static function initialize_latest_version() { $self = self::instance(); call_user_func($self->latest_version_callback()); } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_AdminView.php000064400000021433147600120010023433 0ustar00render(); } /** * Registers action-scheduler into WooCommerce > System status. * * @param array $tabs An associative array of tab key => label. * @return array $tabs An associative array of tab key => label, including Action Scheduler's tabs */ public function register_system_status_tab( array $tabs ) { $tabs['action-scheduler'] = __( 'Scheduled Actions', 'woocommerce' ); return $tabs; } /** * Include Action Scheduler's administration under the Tools menu. * * A menu under the Tools menu is important for backward compatibility (as that's * where it started), and also provides more convenient access than the WooCommerce * System Status page, and for sites where WooCommerce isn't active. */ public function register_menu() { $hook_suffix = add_submenu_page( 'tools.php', __( 'Scheduled Actions', 'woocommerce' ), __( 'Scheduled Actions', 'woocommerce' ), 'manage_options', 'action-scheduler', array( $this, 'render_admin_ui' ) ); add_action( 'load-' . $hook_suffix , array( $this, 'process_admin_ui' ) ); } /** * Triggers processing of any pending actions. */ public function process_admin_ui() { $this->get_list_table(); } /** * Renders the Admin UI */ public function render_admin_ui() { $table = $this->get_list_table(); $table->display_page(); } /** * Get the admin UI object and process any requested actions. * * @return ActionScheduler_ListTable */ protected function get_list_table() { if ( null === $this->list_table ) { $this->list_table = new ActionScheduler_ListTable( ActionScheduler::store(), ActionScheduler::logger(), ActionScheduler::runner() ); $this->list_table->process_actions(); } return $this->list_table; } /** * Action: admin_notices * * Maybe check past-due actions, and print notice. * * @uses $this->check_pastdue_actions() */ public function maybe_check_pastdue_actions() { # Filter to prevent checking actions (ex: inappropriate user). if ( ! apply_filters( 'action_scheduler_check_pastdue_actions', current_user_can( 'manage_options' ) ) ) { return; } # Get last check transient. $last_check = get_transient( 'action_scheduler_last_pastdue_actions_check' ); # If transient exists, we're within interval, so bail. if ( ! empty( $last_check ) ) { return; } # Perform the check. $this->check_pastdue_actions(); } /** * Check past-due actions, and print notice. * * @todo update $link_url to "Past-due" filter when released (see issue #510, PR #511) */ protected function check_pastdue_actions() { # Set thresholds. $threshold_seconds = ( int ) apply_filters( 'action_scheduler_pastdue_actions_seconds', DAY_IN_SECONDS ); $threshhold_min = ( int ) apply_filters( 'action_scheduler_pastdue_actions_min', 1 ); // Set fallback value for past-due actions count. $num_pastdue_actions = 0; // Allow third-parties to preempt the default check logic. $check = apply_filters( 'action_scheduler_pastdue_actions_check_pre', null ); // If no third-party preempted and there are no past-due actions, return early. if ( ! is_null( $check ) ) { return; } # Scheduled actions query arguments. $query_args = array( 'date' => as_get_datetime_object( time() - $threshold_seconds ), 'status' => ActionScheduler_Store::STATUS_PENDING, 'per_page' => $threshhold_min, ); # If no third-party preempted, run default check. if ( is_null( $check ) ) { $store = ActionScheduler_Store::instance(); $num_pastdue_actions = ( int ) $store->query_actions( $query_args, 'count' ); # Check if past-due actions count is greater than or equal to threshold. $check = ( $num_pastdue_actions >= $threshhold_min ); $check = ( bool ) apply_filters( 'action_scheduler_pastdue_actions_check', $check, $num_pastdue_actions, $threshold_seconds, $threshhold_min ); } # If check failed, set transient and abort. if ( ! boolval( $check ) ) { $interval = apply_filters( 'action_scheduler_pastdue_actions_check_interval', round( $threshold_seconds / 4 ), $threshold_seconds ); set_transient( 'action_scheduler_last_pastdue_actions_check', time(), $interval ); return; } $actions_url = add_query_arg( array( 'page' => 'action-scheduler', 'status' => 'past-due', 'order' => 'asc', ), admin_url( 'tools.php' ) ); # Print notice. echo '

    '; printf( _n( // translators: 1) is the number of affected actions, 2) is a link to an admin screen. 'Action Scheduler: %1$d past-due action found; something may be wrong. Read documentation »', 'Action Scheduler: %1$d past-due actions found; something may be wrong. Read documentation »', $num_pastdue_actions, 'woocommerce' ), $num_pastdue_actions, esc_attr( esc_url( $actions_url ) ) ); echo '

    '; # Facilitate third-parties to evaluate and print notices. do_action( 'action_scheduler_pastdue_actions_extra_notices', $query_args ); } /** * Provide more information about the screen and its data in the help tab. */ public function add_help_tabs() { $screen = get_current_screen(); if ( ! $screen || self::$screen_id != $screen->id ) { return; } $as_version = ActionScheduler_Versions::instance()->latest_version(); $screen->add_help_tab( array( 'id' => 'action_scheduler_about', 'title' => __( 'About', 'woocommerce' ), 'content' => '

    ' . sprintf( __( 'About Action Scheduler %s', 'woocommerce' ), $as_version ) . '

    ' . '

    ' . __( 'Action Scheduler is a scalable, traceable job queue for background processing large sets of actions. Action Scheduler works by triggering an action hook to run at some time in the future. Scheduled actions can also be scheduled to run on a recurring schedule.', 'woocommerce' ) . '

    ', ) ); $screen->add_help_tab( array( 'id' => 'action_scheduler_columns', 'title' => __( 'Columns', 'woocommerce' ), 'content' => '

    ' . __( 'Scheduled Action Columns', 'woocommerce' ) . '

    ' . '
      ' . sprintf( '
    • %1$s: %2$s
    • ', __( 'Hook', 'woocommerce' ), __( 'Name of the action hook that will be triggered.', 'woocommerce' ) ) . sprintf( '
    • %1$s: %2$s
    • ', __( 'Status', 'woocommerce' ), __( 'Action statuses are Pending, Complete, Canceled, Failed', 'woocommerce' ) ) . sprintf( '
    • %1$s: %2$s
    • ', __( 'Arguments', 'woocommerce' ), __( 'Optional data array passed to the action hook.', 'woocommerce' ) ) . sprintf( '
    • %1$s: %2$s
    • ', __( 'Group', 'woocommerce' ), __( 'Optional action group.', 'woocommerce' ) ) . sprintf( '
    • %1$s: %2$s
    • ', __( 'Recurrence', 'woocommerce' ), __( 'The action\'s schedule frequency.', 'woocommerce' ) ) . sprintf( '
    • %1$s: %2$s
    • ', __( 'Scheduled', 'woocommerce' ), __( 'The date/time the action is/was scheduled to run.', 'woocommerce' ) ) . sprintf( '
    • %1$s: %2$s
    • ', __( 'Log', 'woocommerce' ), __( 'Activity log for the action.', 'woocommerce' ) ) . '
    ', ) ); } } app/Services/Libraries/action-scheduler/classes/ActionScheduler_AsyncRequest_QueueRunner.php000064400000004255147600120010026537 0ustar00store = $store; } /** * Handle async requests * * Run a queue, and maybe dispatch another async request to run another queue * if there are still pending actions after completing a queue in this request. */ protected function handle() { do_action( 'action_scheduler_run_queue', 'Async Request' ); // run a queue in the same way as WP Cron, but declare the Async Request context $sleep_seconds = $this->get_sleep_seconds(); if ( $sleep_seconds ) { sleep( $sleep_seconds ); } $this->maybe_dispatch(); } /** * If the async request runner is needed and allowed to run, dispatch a request. */ public function maybe_dispatch() { if ( ! $this->allow() ) { return; } $this->dispatch(); ActionScheduler_QueueRunner::instance()->unhook_dispatch_async_request(); } /** * Only allow async requests when needed. * * Also allow 3rd party code to disable running actions via async requests. */ protected function allow() { if ( ! has_action( 'action_scheduler_run_queue' ) || ActionScheduler::runner()->has_maximum_concurrent_batches() || ! $this->store->has_pending_actions_due() ) { $allow = false; } else { $allow = true; } return apply_filters( 'action_scheduler_allow_async_request_runner', $allow ); } /** * Chaining async requests can crash MySQL. A brief sleep call in PHP prevents that. */ protected function get_sleep_seconds() { return apply_filters( 'action_scheduler_async_request_sleep_seconds', 5, $this ); } } app/Services/Libraries/action-scheduler/deprecated/ActionScheduler_Store_Deprecated.php000064400000002040147600120010025420 0ustar00mark_failure( $action_id ); } /** * Add base hooks * * @since 2.2.6 */ protected static function hook() { _deprecated_function( __METHOD__, '3.0.0' ); } /** * Remove base hooks * * @since 2.2.6 */ protected static function unhook() { _deprecated_function( __METHOD__, '3.0.0' ); } /** * Get the site's local time. * * @deprecated 2.1.0 * @return DateTimeZone */ protected function get_local_timezone() { _deprecated_function( __FUNCTION__, '2.1.0', 'ActionScheduler_TimezoneHelper::set_local_timezone()' ); return ActionScheduler_TimezoneHelper::get_local_timezone(); } } Services/Libraries/action-scheduler/deprecated/ActionScheduler_Abstract_QueueRunner_Deprecated.php000064400000001523147600120010030353 0ustar00app '' - the name of the action that will be triggered * 'args' => NULL - the args array that will be passed with the action * 'date' => NULL - the scheduled date of the action. Expects a DateTime object, a unix timestamp, or a string that can parsed with strtotime(). Used in UTC timezone. * 'date_compare' => '<=' - operator for testing "date". accepted values are '!=', '>', '>=', '<', '<=', '=' * 'modified' => NULL - the date the action was last updated. Expects a DateTime object, a unix timestamp, or a string that can parsed with strtotime(). Used in UTC timezone. * 'modified_compare' => '<=' - operator for testing "modified". accepted values are '!=', '>', '>=', '<', '<=', '=' * 'group' => '' - the group the action belongs to * 'status' => '' - ActionScheduler_Store::STATUS_COMPLETE or ActionScheduler_Store::STATUS_PENDING * 'claimed' => NULL - TRUE to find claimed actions, FALSE to find unclaimed actions, a string to find a specific claim ID * 'per_page' => 5 - Number of results to return * 'offset' => 0 * 'orderby' => 'date' - accepted values are 'hook', 'group', 'modified', or 'date' * 'order' => 'ASC' * @param string $return_format OBJECT, ARRAY_A, or ids * * @deprecated 2.1.0 * * @return array */ function wc_get_scheduled_actions( $args = array(), $return_format = OBJECT ) { _deprecated_function( __FUNCTION__, '2.1.0', 'as_get_scheduled_actions()' ); return as_get_scheduled_actions( $args, $return_format ); } app/Services/Libraries/action-scheduler/deprecated/ActionScheduler_Schedule_Deprecated.php000064400000001477147600120010026075 0ustar00get_date(); $replacement_method = 'get_date()'; } else { $return_value = $this->get_next( $after ); $replacement_method = 'get_next( $after )'; } _deprecated_function( __METHOD__, '3.0.0', __CLASS__ . '::' . $replacement_method ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped return $return_value; } } app/Services/Libraries/action-scheduler/deprecated/ActionScheduler_AdminView_Deprecated.php000064400000012507147600120010026220 0ustar00 * @link http://en.wikipedia.org/wiki/Cron */ class CronExpression { const MINUTE = 0; const HOUR = 1; const DAY = 2; const MONTH = 3; const WEEKDAY = 4; const YEAR = 5; /** * @var array CRON expression parts */ private $cronParts; /** * @var CronExpression_FieldFactory CRON field factory */ private $fieldFactory; /** * @var array Order in which to test of cron parts */ private static $order = array(self::YEAR, self::MONTH, self::DAY, self::WEEKDAY, self::HOUR, self::MINUTE); /** * Factory method to create a new CronExpression. * * @param string $expression The CRON expression to create. There are * several special predefined values which can be used to substitute the * CRON expression: * * @yearly, @annually) - Run once a year, midnight, Jan. 1 - 0 0 1 1 * * @monthly - Run once a month, midnight, first of month - 0 0 1 * * * @weekly - Run once a week, midnight on Sun - 0 0 * * 0 * @daily - Run once a day, midnight - 0 0 * * * * @hourly - Run once an hour, first minute - 0 * * * * * *@param CronExpression_FieldFactory $fieldFactory (optional) Field factory to use * * @return CronExpression */ public static function factory($expression, CronExpression_FieldFactory $fieldFactory = null) { $mappings = array( '@yearly' => '0 0 1 1 *', '@annually' => '0 0 1 1 *', '@monthly' => '0 0 1 * *', '@weekly' => '0 0 * * 0', '@daily' => '0 0 * * *', '@hourly' => '0 * * * *' ); if (isset($mappings[$expression])) { $expression = $mappings[$expression]; } return new self($expression, $fieldFactory ? $fieldFactory : new CronExpression_FieldFactory()); } /** * Parse a CRON expression * * @param string $expression CRON expression (e.g. '8 * * * *') * @param CronExpression_FieldFactory $fieldFactory Factory to create cron fields */ public function __construct($expression, CronExpression_FieldFactory $fieldFactory) { $this->fieldFactory = $fieldFactory; $this->setExpression($expression); } /** * Set or change the CRON expression * * @param string $value CRON expression (e.g. 8 * * * *) * * @return CronExpression * @throws InvalidArgumentException if not a valid CRON expression */ public function setExpression($value) { $this->cronParts = preg_split('/\s/', $value, -1, PREG_SPLIT_NO_EMPTY); if (count($this->cronParts) < 5) { throw new InvalidArgumentException( $value . ' is not a valid CRON expression' ); } foreach ($this->cronParts as $position => $part) { $this->setPart($position, $part); } return $this; } /** * Set part of the CRON expression * * @param int $position The position of the CRON expression to set * @param string $value The value to set * * @return CronExpression * @throws InvalidArgumentException if the value is not valid for the part */ public function setPart($position, $value) { if (!$this->fieldFactory->getField($position)->validate($value)) { throw new InvalidArgumentException( 'Invalid CRON field value ' . $value . ' as position ' . $position ); } $this->cronParts[$position] = $value; return $this; } /** * Get a next run date relative to the current date or a specific date * * @param string|DateTime $currentTime (optional) Relative calculation date * @param int $nth (optional) Number of matches to skip before returning a * matching next run date. 0, the default, will return the current * date and time if the next run date falls on the current date and * time. Setting this value to 1 will skip the first match and go to * the second match. Setting this value to 2 will skip the first 2 * matches and so on. * @param bool $allowCurrentDate (optional) Set to TRUE to return the * current date if it matches the cron expression * * @return DateTime * @throws RuntimeException on too many iterations */ public function getNextRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false) { return $this->getRunDate($currentTime, $nth, false, $allowCurrentDate); } /** * Get a previous run date relative to the current date or a specific date * * @param string|DateTime $currentTime (optional) Relative calculation date * @param int $nth (optional) Number of matches to skip before returning * @param bool $allowCurrentDate (optional) Set to TRUE to return the * current date if it matches the cron expression * * @return DateTime * @throws RuntimeException on too many iterations * @see CronExpression::getNextRunDate */ public function getPreviousRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false) { return $this->getRunDate($currentTime, $nth, true, $allowCurrentDate); } /** * Get multiple run dates starting at the current date or a specific date * * @param int $total Set the total number of dates to calculate * @param string|DateTime $currentTime (optional) Relative calculation date * @param bool $invert (optional) Set to TRUE to retrieve previous dates * @param bool $allowCurrentDate (optional) Set to TRUE to return the * current date if it matches the cron expression * * @return array Returns an array of run dates */ public function getMultipleRunDates($total, $currentTime = 'now', $invert = false, $allowCurrentDate = false) { $matches = array(); for ($i = 0; $i < max(0, $total); $i++) { $matches[] = $this->getRunDate($currentTime, $i, $invert, $allowCurrentDate); } return $matches; } /** * Get all or part of the CRON expression * * @param string $part (optional) Specify the part to retrieve or NULL to * get the full cron schedule string. * * @return string|null Returns the CRON expression, a part of the * CRON expression, or NULL if the part was specified but not found */ public function getExpression($part = null) { if (null === $part) { return implode(' ', $this->cronParts); } elseif (array_key_exists($part, $this->cronParts)) { return $this->cronParts[$part]; } return null; } /** * Helper method to output the full expression. * * @return string Full CRON expression */ public function __toString() { return $this->getExpression(); } /** * Determine if the cron is due to run based on the current date or a * specific date. This method assumes that the current number of * seconds are irrelevant, and should be called once per minute. * * @param string|DateTime $currentTime (optional) Relative calculation date * * @return bool Returns TRUE if the cron is due to run or FALSE if not */ public function isDue($currentTime = 'now') { if ('now' === $currentTime) { $currentDate = date('Y-m-d H:i'); $currentTime = strtotime($currentDate); } elseif ($currentTime instanceof DateTime) { $currentDate = $currentTime->format('Y-m-d H:i'); $currentTime = strtotime($currentDate); } else { $currentTime = new DateTime($currentTime); $currentTime->setTime($currentTime->format('H'), $currentTime->format('i'), 0); $currentDate = $currentTime->format('Y-m-d H:i'); $currentTime = (int)($currentTime->getTimestamp()); } return $this->getNextRunDate($currentDate, 0, true)->getTimestamp() == $currentTime; } /** * Get the next or previous run date of the expression relative to a date * * @param string|DateTime $currentTime (optional) Relative calculation date * @param int $nth (optional) Number of matches to skip before returning * @param bool $invert (optional) Set to TRUE to go backwards in time * @param bool $allowCurrentDate (optional) Set to TRUE to return the * current date if it matches the cron expression * * @return DateTime * @throws RuntimeException on too many iterations */ protected function getRunDate($currentTime = null, $nth = 0, $invert = false, $allowCurrentDate = false) { if ($currentTime instanceof DateTime) { $currentDate = $currentTime; } else { $currentDate = new DateTime($currentTime ? $currentTime : 'now'); $currentDate->setTimezone(new DateTimeZone(date_default_timezone_get())); } $currentDate->setTime($currentDate->format('H'), $currentDate->format('i'), 0); $nextRun = clone $currentDate; $nth = (int) $nth; // Set a hard limit to bail on an impossible date for ($i = 0; $i < 1000; $i++) { foreach (self::$order as $position) { $part = $this->getExpression($position); if (null === $part) { continue; } $satisfied = false; // Get the field object used to validate this part $field = $this->fieldFactory->getField($position); // Check if this is singular or a list if (strpos($part, ',') === false) { $satisfied = $field->isSatisfiedBy($nextRun, $part); } else { foreach (array_map('trim', explode(',', $part)) as $listPart) { if ($field->isSatisfiedBy($nextRun, $listPart)) { $satisfied = true; break; } } } // If the field is not satisfied, then start over if (!$satisfied) { $field->increment($nextRun, $invert); continue 2; } } // Skip this match if needed if ((!$allowCurrentDate && $nextRun == $currentDate) || --$nth > -1) { $this->fieldFactory->getField(0)->increment($nextRun, $invert); continue; } return $nextRun; } // @codeCoverageIgnoreStart throw new RuntimeException('Impossible CRON expression'); // @codeCoverageIgnoreEnd } } app/Services/Libraries/action-scheduler/lib/cron-expression/CronExpression_FieldFactory.php000064400000003321147600120010026273 0ustar00 * @link http://en.wikipedia.org/wiki/Cron */ class CronExpression_FieldFactory { /** * @var array Cache of instantiated fields */ private $fields = array(); /** * Get an instance of a field object for a cron expression position * * @param int $position CRON expression position value to retrieve * * @return CronExpression_FieldInterface * @throws InvalidArgumentException if a position is not valid */ public function getField($position) { if (!isset($this->fields[$position])) { switch ($position) { case 0: $this->fields[$position] = new CronExpression_MinutesField(); break; case 1: $this->fields[$position] = new CronExpression_HoursField(); break; case 2: $this->fields[$position] = new CronExpression_DayOfMonthField(); break; case 3: $this->fields[$position] = new CronExpression_MonthField(); break; case 4: $this->fields[$position] = new CronExpression_DayOfWeekField(); break; case 5: $this->fields[$position] = new CronExpression_YearField(); break; default: throw new InvalidArgumentException( $position . ' is not a valid position' ); } } return $this->fields[$position]; } } app/Services/Libraries/action-scheduler/lib/cron-expression/CronExpression_YearField.php000064400000001651147600120010025570 0ustar00 */ class CronExpression_YearField extends CronExpression_AbstractField { /** * {@inheritdoc} */ public function isSatisfiedBy(DateTime $date, $value) { return $this->isSatisfied($date->format('Y'), $value); } /** * {@inheritdoc} */ public function increment(DateTime $date, $invert = false) { if ($invert) { $date->modify('-1 year'); $date->setDate($date->format('Y'), 12, 31); $date->setTime(23, 59, 0); } else { $date->modify('+1 year'); $date->setDate($date->format('Y'), 1, 1); $date->setTime(0, 0, 0); } return $this; } /** * {@inheritdoc} */ public function validate($value) { return (bool) preg_match('/[\*,\/\-0-9]+/', $value); } } app/Services/Libraries/action-scheduler/lib/cron-expression/LICENSE000064400000002112147600120010021150 0ustar00Copyright (c) 2011 Michael Dowling and contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 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. app/Services/Libraries/action-scheduler/lib/cron-expression/CronExpression_DayOfWeekField.php000064400000007521147600120010026510 0ustar00 */ class CronExpression_DayOfWeekField extends CronExpression_AbstractField { /** * {@inheritdoc} */ public function isSatisfiedBy(DateTime $date, $value) { if ($value == '?') { return true; } // Convert text day of the week values to integers $value = str_ireplace( array('SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'), range(0, 6), $value ); $currentYear = $date->format('Y'); $currentMonth = $date->format('m'); $lastDayOfMonth = $date->format('t'); // Find out if this is the last specific weekday of the month if (strpos($value, 'L')) { $weekday = str_replace('7', '0', substr($value, 0, strpos($value, 'L'))); $tdate = clone $date; $tdate->setDate($currentYear, $currentMonth, $lastDayOfMonth); while ($tdate->format('w') != $weekday) { $tdate->setDate($currentYear, $currentMonth, --$lastDayOfMonth); } return $date->format('j') == $lastDayOfMonth; } // Handle # hash tokens if (strpos($value, '#')) { list($weekday, $nth) = explode('#', $value); // Validate the hash fields if ($weekday < 1 || $weekday > 5) { throw new InvalidArgumentException("Weekday must be a value between 1 and 5. {$weekday} given"); } if ($nth > 5) { throw new InvalidArgumentException('There are never more than 5 of a given weekday in a month'); } // The current weekday must match the targeted weekday to proceed if ($date->format('N') != $weekday) { return false; } $tdate = clone $date; $tdate->setDate($currentYear, $currentMonth, 1); $dayCount = 0; $currentDay = 1; while ($currentDay < $lastDayOfMonth + 1) { if ($tdate->format('N') == $weekday) { if (++$dayCount >= $nth) { break; } } $tdate->setDate($currentYear, $currentMonth, ++$currentDay); } return $date->format('j') == $currentDay; } // Handle day of the week values if (strpos($value, '-')) { $parts = explode('-', $value); if ($parts[0] == '7') { $parts[0] = '0'; } elseif ($parts[1] == '0') { $parts[1] = '7'; } $value = implode('-', $parts); } // Test to see which Sunday to use -- 0 == 7 == Sunday $format = in_array(7, str_split($value)) ? 'N' : 'w'; $fieldValue = $date->format($format); return $this->isSatisfied($fieldValue, $value); } /** * {@inheritdoc} */ public function increment(DateTime $date, $invert = false) { if ($invert) { $date->modify('-1 day'); $date->setTime(23, 59, 0); } else { $date->modify('+1 day'); $date->setTime(0, 0, 0); } return $this; } /** * {@inheritdoc} */ public function validate($value) { return (bool) preg_match('/[\*,\/\-0-9A-Z]+/', $value); } } app/Services/Libraries/action-scheduler/lib/cron-expression/CronExpression_FieldInterface.php000064400000002162147600120010026566 0ustar00 */ interface CronExpression_FieldInterface { /** * Check if the respective value of a DateTime field satisfies a CRON exp * * @param DateTime $date DateTime object to check * @param string $value CRON expression to test against * * @return bool Returns TRUE if satisfied, FALSE otherwise */ public function isSatisfiedBy(DateTime $date, $value); /** * When a CRON expression is not satisfied, this method is used to increment * or decrement a DateTime object by the unit of the cron field * * @param DateTime $date DateTime object to change * @param bool $invert (optional) Set to TRUE to decrement * * @return CronExpression_FieldInterface */ public function increment(DateTime $date, $invert = false); /** * Validates a CRON expression for a given field * * @param string $value CRON expression value to validate * * @return bool Returns TRUE if valid, FALSE otherwise */ public function validate($value); } app/Services/Libraries/action-scheduler/lib/cron-expression/CronExpression_MinutesField.php000064400000001371147600120010026313 0ustar00 */ class CronExpression_MinutesField extends CronExpression_AbstractField { /** * {@inheritdoc} */ public function isSatisfiedBy(DateTime $date, $value) { return $this->isSatisfied($date->format('i'), $value); } /** * {@inheritdoc} */ public function increment(DateTime $date, $invert = false) { if ($invert) { $date->modify('-1 minute'); } else { $date->modify('+1 minute'); } return $this; } /** * {@inheritdoc} */ public function validate($value) { return (bool) preg_match('/[\*,\/\-0-9]+/', $value); } } app/Services/Libraries/action-scheduler/lib/cron-expression/CronExpression_HoursField.php000064400000002205147600120010025764 0ustar00 */ class CronExpression_HoursField extends CronExpression_AbstractField { /** * {@inheritdoc} */ public function isSatisfiedBy(DateTime $date, $value) { return $this->isSatisfied($date->format('H'), $value); } /** * {@inheritdoc} */ public function increment(DateTime $date, $invert = false) { // Change timezone to UTC temporarily. This will // allow us to go back or forwards and hour even // if DST will be changed between the hours. $timezone = $date->getTimezone(); $date->setTimezone(new DateTimeZone('UTC')); if ($invert) { $date->modify('-1 hour'); $date->setTime($date->format('H'), 59); } else { $date->modify('+1 hour'); $date->setTime($date->format('H'), 0); } $date->setTimezone($timezone); return $this; } /** * {@inheritdoc} */ public function validate($value) { return (bool) preg_match('/[\*,\/\-0-9]+/', $value); } } app/Services/Libraries/action-scheduler/lib/cron-expression/CronExpression_MonthField.php000064400000002567147600120010025764 0ustar00 */ class CronExpression_MonthField extends CronExpression_AbstractField { /** * {@inheritdoc} */ public function isSatisfiedBy(DateTime $date, $value) { // Convert text month values to integers $value = str_ireplace( array( 'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC' ), range(1, 12), $value ); return $this->isSatisfied($date->format('m'), $value); } /** * {@inheritdoc} */ public function increment(DateTime $date, $invert = false) { if ($invert) { // $date->modify('last day of previous month'); // remove for php 5.2 compat $date->modify('previous month'); $date->modify($date->format('Y-m-t')); $date->setTime(23, 59); } else { //$date->modify('first day of next month'); // remove for php 5.2 compat $date->modify('next month'); $date->modify($date->format('Y-m-01')); $date->setTime(0, 0); } return $this; } /** * {@inheritdoc} */ public function validate($value) { return (bool) preg_match('/[\*,\/\-0-9A-Z]+/', $value); } } app/Services/Libraries/action-scheduler/lib/cron-expression/CronExpression_DayOfMonthField.php000064400000007014147600120010026677 0ustar00 */ class CronExpression_DayOfMonthField extends CronExpression_AbstractField { /** * Get the nearest day of the week for a given day in a month * * @param int $currentYear Current year * @param int $currentMonth Current month * @param int $targetDay Target day of the month * * @return DateTime Returns the nearest date */ private static function getNearestWeekday($currentYear, $currentMonth, $targetDay) { $tday = str_pad($targetDay, 2, '0', STR_PAD_LEFT); $target = new DateTime("$currentYear-$currentMonth-$tday"); $currentWeekday = (int) $target->format('N'); if ($currentWeekday < 6) { return $target; } $lastDayOfMonth = $target->format('t'); foreach (array(-1, 1, -2, 2) as $i) { $adjusted = $targetDay + $i; if ($adjusted > 0 && $adjusted <= $lastDayOfMonth) { $target->setDate($currentYear, $currentMonth, $adjusted); if ($target->format('N') < 6 && $target->format('m') == $currentMonth) { return $target; } } } } /** * {@inheritdoc} */ public function isSatisfiedBy(DateTime $date, $value) { // ? states that the field value is to be skipped if ($value == '?') { return true; } $fieldValue = $date->format('d'); // Check to see if this is the last day of the month if ($value == 'L') { return $fieldValue == $date->format('t'); } // Check to see if this is the nearest weekday to a particular value if (strpos($value, 'W')) { // Parse the target day $targetDay = substr($value, 0, strpos($value, 'W')); // Find out if the current day is the nearest day of the week return $date->format('j') == self::getNearestWeekday( $date->format('Y'), $date->format('m'), $targetDay )->format('j'); } return $this->isSatisfied($date->format('d'), $value); } /** * {@inheritdoc} */ public function increment(DateTime $date, $invert = false) { if ($invert) { $date->modify('previous day'); $date->setTime(23, 59); } else { $date->modify('next day'); $date->setTime(0, 0); } return $this; } /** * {@inheritdoc} */ public function validate($value) { return (bool) preg_match('/[\*,\/\-\?LW0-9A-Za-z]+/', $value); } } app/Services/Libraries/action-scheduler/lib/cron-expression/CronExpression_AbstractField.php000064400000005020147600120010026425 0ustar00 */ abstract class CronExpression_AbstractField implements CronExpression_FieldInterface { /** * Check to see if a field is satisfied by a value * * @param string $dateValue Date value to check * @param string $value Value to test * * @return bool */ public function isSatisfied($dateValue, $value) { if ($this->isIncrementsOfRanges($value)) { return $this->isInIncrementsOfRanges($dateValue, $value); } elseif ($this->isRange($value)) { return $this->isInRange($dateValue, $value); } return $value == '*' || $dateValue == $value; } /** * Check if a value is a range * * @param string $value Value to test * * @return bool */ public function isRange($value) { return strpos($value, '-') !== false; } /** * Check if a value is an increments of ranges * * @param string $value Value to test * * @return bool */ public function isIncrementsOfRanges($value) { return strpos($value, '/') !== false; } /** * Test if a value is within a range * * @param string $dateValue Set date value * @param string $value Value to test * * @return bool */ public function isInRange($dateValue, $value) { $parts = array_map('trim', explode('-', $value, 2)); return $dateValue >= $parts[0] && $dateValue <= $parts[1]; } /** * Test if a value is within an increments of ranges (offset[-to]/step size) * * @param string $dateValue Set date value * @param string $value Value to test * * @return bool */ public function isInIncrementsOfRanges($dateValue, $value) { $parts = array_map('trim', explode('/', $value, 2)); $stepSize = isset($parts[1]) ? $parts[1] : 0; if ($parts[0] == '*' || $parts[0] === '0') { return (int) $dateValue % $stepSize == 0; } $range = explode('-', $parts[0], 2); $offset = $range[0]; $to = isset($range[1]) ? $range[1] : $dateValue; // Ensure that the date value is within the range if ($dateValue < $offset || $dateValue > $to) { return false; } for ($i = $offset; $i <= $to; $i+= $stepSize) { if ($i == $dateValue) { return true; } } return false; } } app/Services/Libraries/action-scheduler/lib/WP_Async_Request.php000064400000007340147600120010020721 0ustar00identifier = $this->prefix . '_' . $this->action; add_action( 'wp_ajax_' . $this->identifier, array( $this, 'maybe_handle' ) ); add_action( 'wp_ajax_nopriv_' . $this->identifier, array( $this, 'maybe_handle' ) ); } /** * Set data used during the request * * @param array $data Data. * * @return $this */ public function data( $data ) { $this->data = $data; return $this; } /** * Dispatch the async request * * @return array|WP_Error */ public function dispatch() { $url = add_query_arg( $this->get_query_args(), $this->get_query_url() ); $args = $this->get_post_args(); return wp_remote_post( esc_url_raw( $url ), $args ); } /** * Get query args * * @return array */ protected function get_query_args() { if ( property_exists( $this, 'query_args' ) ) { return $this->query_args; } $args = array( 'action' => $this->identifier, 'nonce' => wp_create_nonce( $this->identifier ), ); /** * Filters the post arguments used during an async request. * * @param array $url */ return apply_filters( $this->identifier . '_query_args', $args ); } /** * Get query URL * * @return string */ protected function get_query_url() { if ( property_exists( $this, 'query_url' ) ) { return $this->query_url; } $url = admin_url( 'admin-ajax.php' ); /** * Filters the post arguments used during an async request. * * @param string $url */ return apply_filters( $this->identifier . '_query_url', $url ); } /** * Get post args * * @return array */ protected function get_post_args() { if ( property_exists( $this, 'post_args' ) ) { return $this->post_args; } $args = array( 'timeout' => 0.01, 'blocking' => false, 'body' => $this->data, 'cookies' => $_COOKIE, 'sslverify' => apply_filters( 'https_local_ssl_verify', false ), ); /** * Filters the post arguments used during an async request. * * @param array $args */ return apply_filters( $this->identifier . '_post_args', $args ); } /** * Maybe handle * * Check for correct nonce and pass to handler. */ public function maybe_handle() { // Don't lock up other requests while processing session_write_close(); check_ajax_referer( $this->identifier, 'nonce' ); $this->handle(); wp_die(); } /** * Handle * * Override this method to perform any actions required * during the async request. */ abstract protected function handle(); } } app/Services/Libraries/action-scheduler/functions.php000064400000037551147600120010016777 0ustar00async_unique( $hook, $args, $group, $unique ); } /** * Schedule an action to run one time * * @param int $timestamp When the job will run. * @param string $hook The hook to trigger. * @param array $args Arguments to pass when the hook triggers. * @param string $group The group to assign this job to. * @param bool $unique Whether the action should be unique. * * @return int The action ID. */ function as_schedule_single_action( $timestamp, $hook, $args = array(), $group = '', $unique = false ) { if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { return 0; } /** * Provides an opportunity to short-circuit the default process for enqueuing single * actions. * * Returning a value other than null from the filter will short-circuit the normal * process. The expectation in such a scenario is that callbacks will return an integer * representing the scheduled action ID (scheduled using some alternative process) or else * zero. * * @param int|null $pre_option The value to return instead of the option value. * @param int $timestamp When the action will run. * @param string $hook Action hook. * @param array $args Action arguments. * @param string $group Action group. */ $pre = apply_filters( 'pre_as_schedule_single_action', null, $timestamp, $hook, $args, $group ); if ( null !== $pre ) { return is_int( $pre ) ? $pre : 0; } return ActionScheduler::factory()->single_unique( $hook, $args, $timestamp, $group, $unique ); } /** * Schedule a recurring action * * @param int $timestamp When the first instance of the job will run. * @param int $interval_in_seconds How long to wait between runs. * @param string $hook The hook to trigger. * @param array $args Arguments to pass when the hook triggers. * @param string $group The group to assign this job to. * @param bool $unique Whether the action should be unique. * * @return int The action ID. */ function as_schedule_recurring_action( $timestamp, $interval_in_seconds, $hook, $args = array(), $group = '', $unique = false ) { if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { return 0; } /** * Provides an opportunity to short-circuit the default process for enqueuing recurring * actions. * * Returning a value other than null from the filter will short-circuit the normal * process. The expectation in such a scenario is that callbacks will return an integer * representing the scheduled action ID (scheduled using some alternative process) or else * zero. * * @param int|null $pre_option The value to return instead of the option value. * @param int $timestamp When the action will run. * @param int $interval_in_seconds How long to wait between runs. * @param string $hook Action hook. * @param array $args Action arguments. * @param string $group Action group. */ $pre = apply_filters( 'pre_as_schedule_recurring_action', null, $timestamp, $interval_in_seconds, $hook, $args, $group ); if ( null !== $pre ) { return is_int( $pre ) ? $pre : 0; } return ActionScheduler::factory()->recurring_unique( $hook, $args, $timestamp, $interval_in_seconds, $group, $unique ); } /** * Schedule an action that recurs on a cron-like schedule. * * @param int $timestamp The first instance of the action will be scheduled * to run at a time calculated after this timestamp matching the cron * expression. This can be used to delay the first instance of the action. * @param string $schedule A cron-link schedule string. * @see http://en.wikipedia.org/wiki/Cron * * * * * * * * ┬ ┬ ┬ ┬ ┬ ┬ * | | | | | | * | | | | | + year [optional] * | | | | +----- day of week (0 - 7) (Sunday=0 or 7) * | | | +---------- month (1 - 12) * | | +--------------- day of month (1 - 31) * | +-------------------- hour (0 - 23) * +------------------------- min (0 - 59) * @param string $hook The hook to trigger. * @param array $args Arguments to pass when the hook triggers. * @param string $group The group to assign this job to. * @param bool $unique Whether the action should be unique. * * @return int The action ID. */ function as_schedule_cron_action( $timestamp, $schedule, $hook, $args = array(), $group = '', $unique = false ) { if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { return 0; } /** * Provides an opportunity to short-circuit the default process for enqueuing cron * actions. * * Returning a value other than null from the filter will short-circuit the normal * process. The expectation in such a scenario is that callbacks will return an integer * representing the scheduled action ID (scheduled using some alternative process) or else * zero. * * @param int|null $pre_option The value to return instead of the option value. * @param int $timestamp When the action will run. * @param string $schedule Cron-like schedule string. * @param string $hook Action hook. * @param array $args Action arguments. * @param string $group Action group. */ $pre = apply_filters( 'pre_as_schedule_cron_action', null, $timestamp, $schedule, $hook, $args, $group ); if ( null !== $pre ) { return is_int( $pre ) ? $pre : 0; } return ActionScheduler::factory()->cron_unique( $hook, $args, $timestamp, $schedule, $group, $unique ); } /** * Cancel the next occurrence of a scheduled action. * * While only the next instance of a recurring or cron action is unscheduled by this method, that will also prevent * all future instances of that recurring or cron action from being run. Recurring and cron actions are scheduled in * a sequence instead of all being scheduled at once. Each successive occurrence of a recurring action is scheduled * only after the former action is run. If the next instance is never run, because it's unscheduled by this function, * then the following instance will never be scheduled (or exist), which is effectively the same as being unscheduled * by this method also. * * @param string $hook The hook that the job will trigger. * @param array $args Args that would have been passed to the job. * @param string $group The group the job is assigned to. * * @return int|null The scheduled action ID if a scheduled action was found, or null if no matching action found. */ function as_unschedule_action( $hook, $args = array(), $group = '' ) { if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { return 0; } $params = array( 'hook' => $hook, 'status' => ActionScheduler_Store::STATUS_PENDING, 'orderby' => 'date', 'order' => 'ASC', 'group' => $group, ); if ( is_array( $args ) ) { $params['args'] = $args; } $action_id = ActionScheduler::store()->query_action( $params ); if ( $action_id ) { try { ActionScheduler::store()->cancel_action( $action_id ); } catch ( Exception $exception ) { ActionScheduler::logger()->log( $action_id, sprintf( /* translators: %s is the name of the hook to be cancelled. */ __( 'Caught exception while cancelling action: %s', 'woocommerce' ), esc_attr( $hook ) ) ); $action_id = null; } } return $action_id; } /** * Cancel all occurrences of a scheduled action. * * @param string $hook The hook that the job will trigger. * @param array $args Args that would have been passed to the job. * @param string $group The group the job is assigned to. */ function as_unschedule_all_actions( $hook, $args = array(), $group = '' ) { if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { return; } if ( empty( $args ) ) { if ( ! empty( $hook ) && empty( $group ) ) { ActionScheduler_Store::instance()->cancel_actions_by_hook( $hook ); return; } if ( ! empty( $group ) && empty( $hook ) ) { ActionScheduler_Store::instance()->cancel_actions_by_group( $group ); return; } } do { $unscheduled_action = as_unschedule_action( $hook, $args, $group ); } while ( ! empty( $unscheduled_action ) ); } /** * Check if there is an existing action in the queue with a given hook, args and group combination. * * An action in the queue could be pending, in-progress or async. If the is pending for a time in * future, its scheduled date will be returned as a timestamp. If it is currently being run, or an * async action sitting in the queue waiting to be processed, in which case boolean true will be * returned. Or there may be no async, in-progress or pending action for this hook, in which case, * boolean false will be the return value. * * @param string $hook Name of the hook to search for. * @param array $args Arguments of the action to be searched. * @param string $group Group of the action to be searched. * * @return int|bool The timestamp for the next occurrence of a pending scheduled action, true for an async or in-progress action or false if there is no matching action. */ function as_next_scheduled_action( $hook, $args = null, $group = '' ) { if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { return false; } $params = array( 'hook' => $hook, 'orderby' => 'date', 'order' => 'ASC', 'group' => $group, ); if ( is_array( $args ) ) { $params['args'] = $args; } $params['status'] = ActionScheduler_Store::STATUS_RUNNING; $action_id = ActionScheduler::store()->query_action( $params ); if ( $action_id ) { return true; } $params['status'] = ActionScheduler_Store::STATUS_PENDING; $action_id = ActionScheduler::store()->query_action( $params ); if ( null === $action_id ) { return false; } $action = ActionScheduler::store()->fetch_action( $action_id ); $scheduled_date = $action->get_schedule()->get_date(); if ( $scheduled_date ) { return (int) $scheduled_date->format( 'U' ); } elseif ( null === $scheduled_date ) { // pending async action with NullSchedule. return true; } return false; } /** * Check if there is a scheduled action in the queue but more efficiently than as_next_scheduled_action(). * * It's recommended to use this function when you need to know whether a specific action is currently scheduled * (pending or in-progress). * * @since 3.3.0 * * @param string $hook The hook of the action. * @param array $args Args that have been passed to the action. Null will matches any args. * @param string $group The group the job is assigned to. * * @return bool True if a matching action is pending or in-progress, false otherwise. */ function as_has_scheduled_action( $hook, $args = null, $group = '' ) { if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { return false; } $query_args = array( 'hook' => $hook, 'status' => array( ActionScheduler_Store::STATUS_RUNNING, ActionScheduler_Store::STATUS_PENDING ), 'group' => $group, 'orderby' => 'none', ); if ( null !== $args ) { $query_args['args'] = $args; } $action_id = ActionScheduler::store()->query_action( $query_args ); return null !== $action_id; } /** * Find scheduled actions * * @param array $args Possible arguments, with their default values. * 'hook' => '' - the name of the action that will be triggered. * 'args' => NULL - the args array that will be passed with the action. * 'date' => NULL - the scheduled date of the action. Expects a DateTime object, a unix timestamp, or a string that can parsed with strtotime(). Used in UTC timezone. * 'date_compare' => '<=' - operator for testing "date". accepted values are '!=', '>', '>=', '<', '<=', '='. * 'modified' => NULL - the date the action was last updated. Expects a DateTime object, a unix timestamp, or a string that can parsed with strtotime(). Used in UTC timezone. * 'modified_compare' => '<=' - operator for testing "modified". accepted values are '!=', '>', '>=', '<', '<=', '='. * 'group' => '' - the group the action belongs to. * 'status' => '' - ActionScheduler_Store::STATUS_COMPLETE or ActionScheduler_Store::STATUS_PENDING. * 'claimed' => NULL - TRUE to find claimed actions, FALSE to find unclaimed actions, a string to find a specific claim ID. * 'per_page' => 5 - Number of results to return. * 'offset' => 0. * 'orderby' => 'date' - accepted values are 'hook', 'group', 'modified', 'date' or 'none'. * 'order' => 'ASC'. * * @param string $return_format OBJECT, ARRAY_A, or ids. * * @return array */ function as_get_scheduled_actions( $args = array(), $return_format = OBJECT ) { if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { return array(); } $store = ActionScheduler::store(); foreach ( array( 'date', 'modified' ) as $key ) { if ( isset( $args[ $key ] ) ) { $args[ $key ] = as_get_datetime_object( $args[ $key ] ); } } $ids = $store->query_actions( $args ); if ( 'ids' === $return_format || 'int' === $return_format ) { return $ids; } $actions = array(); foreach ( $ids as $action_id ) { $actions[ $action_id ] = $store->fetch_action( $action_id ); } if ( ARRAY_A == $return_format ) { foreach ( $actions as $action_id => $action_object ) { $actions[ $action_id ] = get_object_vars( $action_object ); } } return $actions; } /** * Helper function to create an instance of DateTime based on a given * string and timezone. By default, will return the current date/time * in the UTC timezone. * * Needed because new DateTime() called without an explicit timezone * will create a date/time in PHP's timezone, but we need to have * assurance that a date/time uses the right timezone (which we almost * always want to be UTC), which means we need to always include the * timezone when instantiating datetimes rather than leaving it up to * the PHP default. * * @param mixed $date_string A date/time string. Valid formats are explained in http://php.net/manual/en/datetime.formats.php. * @param string $timezone A timezone identifier, like UTC or Europe/Lisbon. The list of valid identifiers is available http://php.net/manual/en/timezones.php. * * @return ActionScheduler_DateTime */ function as_get_datetime_object( $date_string = null, $timezone = 'UTC' ) { if ( is_object( $date_string ) && $date_string instanceof DateTime ) { $date = new ActionScheduler_DateTime( $date_string->format( 'Y-m-d H:i:s' ), new DateTimeZone( $timezone ) ); } elseif ( is_numeric( $date_string ) ) { $date = new ActionScheduler_DateTime( '@' . $date_string, new DateTimeZone( $timezone ) ); } else { $date = new ActionScheduler_DateTime( null === $date_string ? 'now' : $date_string, new DateTimeZone( $timezone ) ); } return $date; } app/Services/Libraries/action-scheduler/license.txt000064400000104515147600120010016434 0ustar00 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . app/Services/Libraries/action-scheduler/action-scheduler.php000064400000005325147600120010020212 0ustar00. * * @package ActionScheduler */ if ( ! function_exists( 'action_scheduler_register_3_dot_5_dot_4' ) && function_exists( 'add_action' ) ) { // WRCS: DEFINED_VERSION. if ( ! class_exists( 'ActionScheduler_Versions', false ) ) { require_once __DIR__ . '/classes/ActionScheduler_Versions.php'; add_action( 'plugins_loaded', array( 'ActionScheduler_Versions', 'initialize_latest_version' ), 1, 0 ); } add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_5_dot_4', 0, 0 ); // WRCS: DEFINED_VERSION. /** * Registers this version of Action Scheduler. */ function action_scheduler_register_3_dot_5_dot_4() { // WRCS: DEFINED_VERSION. $versions = ActionScheduler_Versions::instance(); $versions->register( '3.5.4', 'action_scheduler_initialize_3_dot_5_dot_4' ); // WRCS: DEFINED_VERSION. } /** * Initializes this version of Action Scheduler. */ function action_scheduler_initialize_3_dot_5_dot_4() { // WRCS: DEFINED_VERSION. // A final safety check is required even here, because historic versions of Action Scheduler // followed a different pattern (in some unusual cases, we could reach this point and the // ActionScheduler class is already defined—so we need to guard against that). if ( ! class_exists( 'ActionScheduler', false ) ) { require_once __DIR__ . '/classes/abstracts/ActionScheduler.php'; ActionScheduler::init( __FILE__ ); } } // Support usage in themes - load this version if no plugin has loaded a version yet. if ( did_action( 'plugins_loaded' ) && ! doing_action( 'plugins_loaded' ) && ! class_exists( 'ActionScheduler', false ) ) { action_scheduler_initialize_3_dot_5_dot_4(); // WRCS: DEFINED_VERSION. do_action( 'action_scheduler_pre_theme_init' ); ActionScheduler_Versions::initialize_latest_version(); } } app/Services/Libraries/action-scheduler/readme.txt000064400000015453147600120010016251 0ustar00=== Action Scheduler === Contributors: Automattic, wpmuguru, claudiosanches, peterfabian1000, vedjain, jamosova, obliviousharmony, konamiman, sadowski, royho, barryhughes-1 Tags: scheduler, cron Requires at least: 5.2 Tested up to: 6.0 Stable tag: 3.5.4 License: GPLv3 Requires PHP: 5.6 Action Scheduler - Job Queue for WordPress == Description == Action Scheduler is a scalable, traceable job queue for background processing large sets of actions in WordPress. It's specially designed to be distributed in WordPress plugins. Action Scheduler works by triggering an action hook to run at some time in the future. Each hook can be scheduled with unique data, to allow callbacks to perform operations on that data. The hook can also be scheduled to run on one or more occassions. Think of it like an extension to `do_action()` which adds the ability to delay and repeat a hook. ## Battle-Tested Background Processing Every month, Action Scheduler processes millions of payments for [Subscriptions](https://woocommerce.com/products/woocommerce-subscriptions/), webhooks for [WooCommerce](https://wordpress.org/plugins/woocommerce/), as well as emails and other events for a range of other plugins. It's been seen on live sites processing queues in excess of 50,000 jobs and doing resource intensive operations, like processing payments and creating orders, at a sustained rate of over 10,000 / hour without negatively impacting normal site operations. This is all on infrastructure and WordPress sites outside the control of the plugin author. If your plugin needs background processing, especially of large sets of tasks, Action Scheduler can help. ## Learn More To learn more about how to Action Scheduler works, and how to use it in your plugin, check out the docs on [ActionScheduler.org](https://actionscheduler.org). There you will find: * [Usage guide](https://actionscheduler.org/usage/): instructions on installing and using Action Scheduler * [WP CLI guide](https://actionscheduler.org/wp-cli/): instructions on running Action Scheduler at scale via WP CLI * [API Reference](https://actionscheduler.org/api/): complete reference guide for all API functions * [Administration Guide](https://actionscheduler.org/admin/): guide to managing scheduled actions via the administration screen * [Guide to Background Processing at Scale](https://actionscheduler.org/perf/): instructions for running Action Scheduler at scale via the default WP Cron queue runner ## Credits Action Scheduler is developed and maintained by [Automattic](http://automattic.com/) with significant early development completed by [Flightless](https://flightless.us/). Collaboration is cool. We'd love to work with you to improve Action Scheduler. [Pull Requests](https://github.com/woocommerce/action-scheduler/pulls) welcome. == Changelog == = 3.5.4 - 2023-01-17 = * Add pre filters during action registration. * Async scheduling. * Calculate timeouts based on total actions. * Correctly order the parameters for `ActionScheduler_ActionFactory`'s calls to `single_unique`. * Fetch action in memory first before releasing claim to avoid deadlock. * PHP 8.2: declare property to fix creation of dynamic property warning. * PHP 8.2: fix "Using ${var} in strings is deprecated, use {$var} instead". * Prevent `undefined variable` warning for `$num_pastdue_actions`. = 3.5.3 - 2022-11-09 = * Query actions with partial match. = 3.5.2 - 2022-09-16 = * Fix - erroneous 3.5.1 release. = 3.5.1 - 2022-09-13 = * Maintenance on A/S docs. * fix: PHP 8.2 deprecated notice. = 3.5.0 - 2022-08-25 = * Add - The active view link within the "Tools > Scheduled Actions" screen is now clickable. * Add - A warning when there are past-due actions. * Enhancement - Added the ability to schedule unique actions via an atomic operation. * Enhancement - Improvements to cache invalidation when processing batches (when running on WordPress 6.0+). * Enhancement - If a recurring action is found to be consistently failing, it will stop being rescheduled. * Enhancement - Adds a new "Past Due" view to the scheduled actions list table. = 3.4.2 - 2022-06-08 = * Fix - Change the include for better linting. * Fix - update: Added Action scheduler completed action hook. = 3.4.1 - 2022-05-24 = * Fix - Change the include for better linting. * Fix - Fix the documented return type. = 3.4.0 - 2021-10-29 = * Enhancement - Number of items per page can now be set for the Scheduled Actions view (props @ovidiul). #771 * Fix - Do not lower the max_execution_time if it is already set to 0 (unlimited) (props @barryhughes). #755 * Fix - Avoid triggering autoloaders during the version resolution process (props @olegabr). #731 & #776 * Dev - ActionScheduler_wcSystemStatus PHPCS fixes (props @ovidiul). #761 * Dev - ActionScheduler_DBLogger.php PHPCS fixes (props @ovidiul). #768 * Dev - Fixed phpcs for ActionScheduler_Schedule_Deprecated (props @ovidiul). #762 * Dev - Improve actions table indicies (props @glagonikas). #774 & #777 * Dev - PHPCS fixes for ActionScheduler_DBStore.php (props @ovidiul). #769 & #778 * Dev - PHPCS Fixes for ActionScheduler_Abstract_ListTable (props @ovidiul). #763 & #779 * Dev - Adds new filter action_scheduler_claim_actions_order_by to allow tuning of the claim query (props @glagonikas). #773 * Dev - PHPCS fixes for ActionScheduler_WpPostStore class (props @ovidiul). #780 = 3.3.0 - 2021-09-15 = * Enhancement - Adds as_has_scheduled_action() to provide a performant way to test for existing actions. #645 * Fix - Improves compatibility with environments where NO_ZERO_DATE is enabled. #519 * Fix - Adds safety checks to guard against errors when our database tables cannot be created. #645 * Dev - Now supports queries that use multiple statuses. #649 * Dev - Minimum requirements for WordPress and PHP bumped (to 5.2 and 5.6 respectively). #723 = 3.2.1 - 2021-06-21 = * Fix - Add extra safety/account for different versions of AS and different loading patterns. #714 * Fix - Handle hidden columns (Tools → Scheduled Actions) | #600. = 3.2.0 - 2021-06-03 = * Fix - Add "no ordering" option to as_next_scheduled_action(). * Fix - Add secondary scheduled date checks when claiming actions (DBStore) | #634. * Fix - Add secondary scheduled date checks when claiming actions (wpPostStore) | #634. * Fix - Adds a new index to the action table, reducing the potential for deadlocks (props: @glagonikas). * Fix - Fix unit tests infrastructure and adapt tests to PHP 8. * Fix - Identify in-use data store. * Fix - Improve test_migration_is_scheduled. * Fix - PHP notice on list table. * Fix - Speed up clean up and batch selects. * Fix - Update pending dependencies. * Fix - [PHP 8.0] Only pass action arg values through to do_action_ref_array(). * Fix - [PHP 8] Set the PHP version to 7.1 in composer.json for PHP 8 compatibility. * Fix - add is_initialized() to docs. * Fix - fix file permissions. * Fix - fixes #664 by replacing __ with esc_html__. app/Services/Logger/Logger.php000064400000026515147600120010012256 0ustar00getBases($type); if (!$formIds && $allowForms = FormManagerService::getUserAllowedForms()) { $formIds = $allowForms; } $logsQuery = $model->select($columns) ->leftJoin('fluentform_forms', 'fluentform_forms.id', '=', $join) ->orderBy($table . '.id', $sortBy) ->when($formIds, function ($q) use ($formIds) { return $q->whereIn('fluentform_forms.id', array_map('intval', $formIds)); }) ->when($statuses, function ($q) use ($statuses, $table) { return $q->whereIn($table . '.status', array_map('sanitize_text_field', $statuses)); }) ->when($components, function ($q) use ($components, $componentColumn) { return $q->whereIn($componentColumn, array_map('sanitize_text_field', $components)); }) ->when($startDate && $endDate, function ($q) use ($startDate, $endDate, $dateColumn) { // Concatenate time if not time included on start/end date string if ($startDate != date("Y-m-d H:i:s", strtotime($startDate))) { $startDate .= ' 00:00:01'; } if ($endDate != date("Y-m-d H:i:s", strtotime($endDate))) { $endDate .= ' 23:59:59'; } return $q->where($dateColumn, '>=', $startDate) ->where($dateColumn, '<=', $endDate); }); $logs = $logsQuery->paginate(); $logItems = $logs->items(); foreach ($logItems as $log) { $hasUrl = ('api' === $type) || ( 'submission_item' == $log->source_type && $log->submission_id ); if ($hasUrl) { $log->submission_url = admin_url( 'admin.php?page=fluent_forms&route=entries&form_id=' . $log->form_id . '#/entries/' . $log->submission_id ); } $log->component = Helper::getLogInitiator($log->component, $type); $log->integration_enabled = false; $notificationKeys = apply_filters('fluentform/global_notification_active_types', [], $log->form_id); unset($notificationKeys['user_registration_feeds']); unset($notificationKeys['notifications']); $notificationKeys = array_flip($notificationKeys); $actionName = $log->getOriginal('component'); if ($actionName) { $actionName = str_replace(['fluentform_integration_notify_', 'fluentform/integration_notify_'], '', $actionName); if (in_array($actionName, $notificationKeys)) { $log->integration_enabled = true; } } } $logItems = apply_filters_deprecated( 'fluentform_all_logs', [ $logItems ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/get_logs', 'Use fluentform/get_logs instead of fluentform_all_logs' ); $logs->setCollection(Collection::make($logItems)); return apply_filters('fluentform/get_logs', $logs); } protected function getBases($type) { if ('log' === $type) { $table = 'fluentform_logs'; $model = Log::query(); $columns = [ 'fluentform_logs.*', 'fluentform_forms.title as form_title', 'fluentform_logs.source_id as submission_id', 'fluentform_logs.parent_source_id as form_id', ]; $join = 'fluentform_logs.parent_source_id'; $componentColumn = 'fluentform_logs.component'; $dateColumn = 'fluentform_logs.created_at'; } else { $table = 'ff_scheduled_actions'; $model = Scheduler::query(); $columns = [ 'ff_scheduled_actions.id', 'ff_scheduled_actions.action as component', 'ff_scheduled_actions.form_id', 'ff_scheduled_actions.origin_id as submission_id', 'ff_scheduled_actions.status', 'ff_scheduled_actions.note', 'ff_scheduled_actions.updated_at', 'ff_scheduled_actions.feed_id', 'fluentform_forms.title as form_title', ]; $join = 'ff_scheduled_actions.form_id'; $componentColumn = 'ff_scheduled_actions.action'; $dateColumn = 'ff_scheduled_actions.updated_at'; } return [$table, $model, $columns, $join, $componentColumn, $dateColumn]; } public function getFilters($attributes = []) { $type = Arr::get($attributes, 'type', 'log'); if ('log' === $type) { $logs = Log::select('status', 'component', 'parent_source_id as form_id')->get(); } else { $logs = Scheduler::select('status', 'action as component', 'form_id')->get(); } $statuses = $logs->groupBy('status')->keys()->map(function ($item) { return [ 'label' => ucwords($item), 'value' => $item, ]; }); $components = $logs->groupBy('component')->keys()->map(function ($item) use ($type) { return [ 'label' => Helper::getLogInitiator($item, $type), 'value' => $item, ]; }); $formIds = $logs->pluck('form_id')->unique()->filter()->toArray(); if ($allowForms = FormManagerService::getUserAllowedForms()) { $formIds = array_filter($formIds, function($value) use ($allowForms) { return in_array($value, $allowForms); }); } $forms = Form::select('id', 'title')->whereIn('id', $formIds)->get(); return apply_filters('fluentform/get_log_filters', [ 'statuses' => $statuses, 'components' => $components, 'forms' => $forms, ]); } public function getSubmissionLogs($submissionId, $attributes = []) { $logType = Arr::get($attributes, 'log_type', 'logs'); $sourceType = Arr::get($attributes, 'source_type', 'submission_item'); if ('logs' === $logType) { $logs = Log::where('source_id', $submissionId) ->where('source_type', $sourceType) ->orderBy('id', 'DESC') ->get(); $logs = apply_filters_deprecated( 'fluentform_entry_logs', [ $logs, $submissionId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/submission_logs', 'Use fluentform/submission_logs instead of fluentform_entry_logs.' ); $logs = apply_filters('fluentform/submission_logs', $logs, $submissionId); $entryLogs = []; foreach ($logs as $log) { if (isset($log->component) && $log->component === 'slack') { continue; } $entryLogs[] = [ 'id' => $log->id, 'status' => $log->status, 'title' => $log->component . ' (' . $log->title . ')', 'description' => $log->description, 'created_at' => (string)$log->created_at, ]; } } else { $columns = [ 'id', 'action', 'status', 'note', 'created_at', 'form_id', 'feed_id', 'origin_id', ]; $logs = Scheduler::select($columns) ->where('origin_id', $submissionId) ->orderBy('id', 'DESC') ->get(); $logs = apply_filters_deprecated( 'fluentform_entry_api_logs', [ $logs, $submissionId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/submission_api_logs', 'Use fluentform/submission_api_logs instead of fluentform_entry_api_logs.' ); $logs = apply_filters('fluentform/submission_api_logs', $logs, $submissionId); $entryLogs = []; foreach ($logs as $log) { $entryLog = [ 'id' => $log->id, 'status' => $log->status, 'title' => 'n/a', 'description' => $log->note, 'created_at' => (string)$log->created_at, 'form_id' => $log->form_id, 'feed_id' => $log->feed_id, 'submission_id' => $log->origin_id, 'integration_enabled' => false ]; $notificationKeys = apply_filters('fluentform/global_notification_active_types', [], $log->form_id); unset($notificationKeys['user_registration_feeds']); unset($notificationKeys['notifications']); $notificationKeys = array_flip($notificationKeys); $actionName = Helper::getLogInitiator($log->action); if ($actionName) { $actionName = str_replace(['Fluentform_integration_notify_', 'Fluentform/integration_notify_'], '', $actionName); if (in_array($actionName, $notificationKeys)) { $entryLog['integration_enabled'] = true; } } if ($log->action) { $entryLog['title'] = Helper::getLogInitiator($log->action, $logType); } $entryLogs[] = $entryLog; } } return apply_filters('fluentform/submission_logs', $entryLogs, $submissionId); } public function remove($attributes = []) { $ids = Arr::get($attributes, 'log_ids'); if (!$ids) { throw new ValidationException( __('No selections found', 'fluentform') ); } $logType = Arr::get($attributes, 'type', 'log'); $model = 'log' === $logType ? Log::query() : Scheduler::query(); $model->whereIn('id', $ids)->delete(); return [ 'message' => __('Selected log(s) successfully deleted', 'fluentform'), ]; } } app/Services/Manager/FormManagerService.php000064400000004050147600120010014677 0ustar00 '_fluent_forms_has_role', 'meta_value' => 1, 'meta_compare' => '=', 'number' => $limit, 'offset' => $offset, ]); $managers = []; foreach ($query->get_results() as $user) { $allowedForms = FormManagerService::getUserAllowedForms($user->ID); $hasSpecificFormsPermission = FormManagerService::hasSpecificFormsPermission($user->ID); $managers[] = [ 'id' => $user->ID, 'first_name' => $user->first_name, 'last_name' => $user->last_name, 'email' => $user->user_email, 'permissions' => Acl::getUserPermissions($user), 'forms' => $allowedForms ? $allowedForms : false, 'roles' => $this->getUserRoles($user->roles), 'has_specific_forms_permission'=> $hasSpecificFormsPermission ? 'yes' : 'no', ]; } $total = $query->get_total(); $forms = Helper::getForms(); if ($forms) { Arr::forget($forms, 0); } return ([ 'managers' => $managers, 'total' => $total, 'permissions' => Acl::getReadablePermissions(), 'forms' => $forms, ]); } public function addManager($attributes = []) { $manager = Arr::get($attributes, 'manager'); $this->validate($manager); $permissions = Arr::get($manager, 'permissions', []); $user = get_user_by('email', $manager['email']); if (!$user) { throw new ValidationException('', 0, null, ['message' => 'Please Provide Valid Email']); } Acl::attachPermissions($user, $permissions); update_user_meta($user->ID, '_fluent_forms_has_role', 1); FormManagerService::updateHasSpecificFormsPermission($user->ID , Arr::get($manager, 'has_specific_forms_permission')); // Add allowed forms for user if ('yes' === Arr::get($manager, 'has_specific_forms_permission')) { FormManagerService::addUserAllowedForms(Arr::get($manager, 'forms', []), $user->ID); } $updatedUser = [ 'id' => $user->ID, 'first_name' => $user->first_name, 'last_name' => $user->last_name, 'email' => $user->user_email, 'permissions' => Acl::getUserPermissions($user) ]; return ([ 'message' => __('Manager has been saved.', 'fluentform'), 'manager' => $updatedUser ]); } public function removeManager($attributes = []) { $userID = intval(Arr::get($attributes, 'id')); $user = get_user_by('ID', $userID); if (!$user) { return ([ 'message' => __('Associate user could not be found', 'fluentform'), ]); } Acl::attachPermissions($user, []); delete_user_meta($user->ID, '_fluent_forms_has_role'); $deletedUser = [ 'id' => $user->ID, 'first_name' => $user->first_name, 'last_name' => $user->last_name, 'email' => $user->user_email, 'permissions' => Acl::getUserPermissions($user) ]; return ([ 'message' => __('Manager has been removed.', 'fluentform'), 'manager' => $deletedUser ]); } private function validate($manager) { $rules = [ 'permissions' => 'required', 'email' => 'required|email', ]; $validatorInstance = new Validator(); $validator = $validatorInstance->make($manager, $rules); $errors = null; if ($validator->validate()->fails()) { $errors = $validator->errors(); } if (!isset($errors['email'])) { $user = get_user_by('email', $manager['email']); if (!$user) { $errors['email'] = [ 'no_user' => __('We could not found any user with this email.', 'fluentform'), ]; } } if (!isset($errors['permissions'])) { $message = $this->dependencyValidate($manager['permissions']); if ($message) { $errors['permissions'] = [ 'dependency' => $message, ]; } } if ($errors) { throw new ValidationException('', 0, null, [ 'errors' => $errors, ]); } } private function dependencyValidate($permissions) { $allPermissions = Acl::getReadablePermissions(); foreach ($permissions as $permission) { $depends = Arr::get($allPermissions, $permission . '.depends', []); if ($depends && $more = array_values(array_diff($depends, $permissions))) { $message = $allPermissions[$permission]['title'] . ' requires permission: '; foreach ($more as $i => $p) { $joiner = $i ? ', ' : ''; $message = $message . $joiner . $allPermissions[$p]['title']; } return $message; } } } private function getUserRoles($roles) { $roleStr = ''; if (count($roles) > 1) { foreach ($roles as $role) { $roleStr .= $role . ', '; } } else { $roleStr = Arr::get($roles, '0'); } return $roleStr; } } app/Services/Migrator/Classes/GravityFormsMigrator.php000064400000111532147600120010017134 0ustar00key = 'gravityform'; $this->title = 'Gravity Forms'; $this->shortcode = 'gravity_form'; $this->hasStep = false; } public function exist() { return class_exists('GFForms'); } /** * @param $form * @return array */ public function getFields($form) { $fluentFields = []; $fields = $form['fields']; foreach ($fields as $name => $field) { $field = (array)$field; list($type, $args) = $this->formatFieldData($field); if ($value = $this->getFluentClassicField($type, $args)) { $fluentFields[$field['id']] = $value; } else { $this->unSupportFields[] = ArrayHelper::get($field, 'label'); } } $submitBtn = $this->getSubmitBttn([ 'uniqElKey' => time(), 'class' => '', 'label' => ArrayHelper::get($form, 'button.text', 'Submit'), 'type' => ArrayHelper::get($form, 'button.type') == 'text' ? 'default' : 'image', 'img_url' => ArrayHelper::get($form, 'button.imageUrl'), ]); $returnData = [ 'fields' => $this->getContainer($fields, $fluentFields), 'submitButton' => $submitBtn ]; if ($this->hasStep && defined('FLUENTFORMPRO')) { $returnData['stepsWrapper'] = $this->getStepWrapper(); } return $returnData; } private function formatFieldData(array $field) { $args = [ 'uniqElKey' => $field['id'], 'index' => $field['id'], 'required' => $field['isRequired'], 'label' => $field['label'], 'label_placement' => $this->getLabelPlacement($field), 'admin_field_label' => ArrayHelper::get($field, 'adminLabel'), 'name' => $this->getInputName($field), 'placeholder' => ArrayHelper::get($field, 'placeholder'), 'class' => $field['cssClass'], 'value' => ArrayHelper::get($field, 'defaultValue'), 'help_message' => ArrayHelper::get($field, 'description'), ]; $type = ArrayHelper::get($this->fieldTypes(), $field['type'], ''); switch ($type) { case 'input_name': $args['input_name_args'] = $field['inputs']; $args['input_name_args']['first_name']['name'] = $this->getInputName($field['inputs'][1]); $args['input_name_args']['middle_name']['name'] = $this->getInputName($field['inputs'][2]); $args['input_name_args']['last_name']['name'] = $this->getInputName($field['inputs'][3]); $args['input_name_args']['first_name']['label'] = ArrayHelper::get($field['inputs'][1], 'label'); $args['input_name_args']['middle_name']['label'] = ArrayHelper::get($field['inputs'][2], 'label'); $args['input_name_args']['last_name']['label'] = ArrayHelper::get($field['inputs'][3], 'label'); $args['input_name_args']['first_name']['visible'] = ArrayHelper::get($field, 'inputs.1.isHidden', true); $args['input_name_args']['middle_name']['visible'] = ArrayHelper::get($field, 'inputs.2.isHidden', true); $args['input_name_args']['last_name']['visible'] = ArrayHelper::get($field, 'inputs.3.isHidden', true); break; case 'input_textarea': $args['maxlength'] = $field['maxLength']; break; case 'input_text': $args['maxlength'] = $field['maxLength']; $args['is_unique'] = ArrayHelper::isTrue($field, 'noDuplicates'); if (ArrayHelper::isTrue($field, 'inputMask')) { $type = 'input_mask'; $args['temp_mask'] = 'custom'; $args['mask'] = $field['inputMaskValue']; } if (ArrayHelper::isTrue($field, 'enablePasswordInput')) { $type = 'input_password'; } break; case 'address': $args['address_args'] = $this->getAddressArgs($field); break; case 'select': case 'input_radio': $optionData = $this->getOptions(ArrayHelper::get($field, 'choices')); $args['options'] = ArrayHelper::get($optionData, 'options'); $args['value'] = ArrayHelper::get($optionData, 'selectedOption.0'); case 'multi_select': case 'input_checkbox': $optionData = $this->getOptions(ArrayHelper::get($field, 'choices')); $args['options'] = ArrayHelper::get($optionData, 'options'); $args['value'] = ArrayHelper::get($optionData, 'selectedOption'); break; case 'input_date': if ($field['type'] == 'time') { $args['format'] = 'H:i'; $args['is_time_enabled'] = true; } break; case 'input_number': $args['min'] = $field['rangeMin']; $args['max'] = $field['rangeMax']; break; case 'repeater_field': $repeaterFields = ArrayHelper::get($field, 'choices', []); $args['fields'] = $this->getRepeaterFields($repeaterFields, $field['label']);; case 'input_file': $args['allowed_file_types'] = $this->getFileTypes($field, 'allowedExtensions'); $args['max_size_unit'] = 'MB'; $args['max_file_size'] = $this->getFileSize($field);; $args['max_file_count'] = ArrayHelper::isTrue($field, 'multipleFiles') ? $field['maxFiles'] : 1; $args['upload_btn_text'] = 'File Upload'; break; case 'custom_html': $args['html_codes'] = $field['content']; break; case 'section_break': $args['section_break_desc'] = $field['description']; break; case 'terms_and_condition': $args['tnc_html'] = $field['description']; break; case 'form_step': $this->hasStep = true; $args['next_btn'] = $field['nextButton']; $args['next_btn']['type'] = $field['nextButton']['type'] == 'text' ? 'default' : 'img'; $args['next_btn']['img_url'] = $field['nextButton']['imageUrl']; $args['prev_btn'] = $field['previousButton']; $args['prev_btn']['type'] = $field['previousButton']['type'] == 'text' ? 'default' : 'img'; $args['prev_btn']['img_url'] = $field['previousButton']['imageUrl']; break; } return array($type, $args); } private function getInputName($field) { return str_replace('-', '_', sanitize_title($field['label'] . '-' . $field['id'])); } private function getLabelPlacement($field) { if ($field['labelPlacement'] == 'hidden_label') { return 'hide_label'; } return 'top'; } /** * @param $field * @return filesize in MB */ private function getFileSize($field) { $fileSizeByte = ArrayHelper::get($field, 'maxFileSize', 10); if (empty($fileSizeByte)) { $fileSizeByte = 1; } $fileSizeMB = ceil($fileSizeByte * 1048576); // 1MB = 1048576 Bytes return $fileSizeMB; } /** * @return array */ public function fieldTypes() { $fieldTypes = [ 'email' => 'email', 'text' => 'input_text', 'name' => 'input_name', 'hidden' => 'input_hidden', 'textarea' => 'input_textarea', 'website' => 'input_url', 'phone' => 'phone', 'select' => 'select', 'list' => 'repeater_field', 'multiselect' => 'multi_select', 'checkbox' => 'input_checkbox', 'radio' => 'input_radio', 'date' => 'input_date', 'time' => 'input_date', 'number' => 'input_number', 'fileupload' => 'input_file', 'consent' => 'terms_and_condition', 'captcha' => 'reCaptcha', 'html' => 'custom_html', 'section' => 'section_break', 'page' => 'form_step', 'address' => 'address', ]; //todo pro fields remove return $fieldTypes; } /** * @param array $field * @return array[] */ private function getAddressArgs(array $field) { $required = ArrayHelper::isTrue($field, 'isRequired'); return [ 'address_line_1' => [ 'name' => $this->getInputName($field['inputs'][0]), 'label' => $field['inputs'][0]['label'], 'visible' => ArrayHelper::get($field, 'inputs.0.isHidden', true), 'required' => $required, ], 'address_line_2' => [ 'name' => $this->getInputName($field['inputs'][1]), 'label' => $field['inputs'][1]['label'], 'visible' => ArrayHelper::get($field, 'inputs.1.isHidden', true), 'required' => $required, ], 'city' => [ 'name' => $this->getInputName($field['inputs'][2]), 'label' => $field['inputs'][2]['label'], 'visible' => ArrayHelper::get($field, 'inputs.2.isHidden', true), 'required' => $required, ], 'state' => [ 'name' => $this->getInputName($field['inputs'][3]), 'label' => $field['inputs'][3]['label'], 'visible' => ArrayHelper::get($field, 'inputs.3.isHidden', true), 'required' => $required, ], 'zip' => [ 'name' => $this->getInputName($field['inputs'][4]), 'label' => $field['inputs'][4]['label'], 'visible' => ArrayHelper::get($field, 'inputs.4.isHidden', true), 'required' => $required, ], 'country' => [ 'name' => $this->getInputName($field['inputs'][5]), 'label' => $field['inputs'][5]['label'], 'visible' => ArrayHelper::get($field, 'inputs.5.isHidden', true), 'required' => $required, ], ]; } /** * @param $options * @return array */ public function getOptions($options = []) { $formattedOptions = []; $selectedOption = []; foreach ($options as $key => $option) { $arr = [ 'label' => ArrayHelper::get($option, 'text', 'Item -' . $key), 'value' => ArrayHelper::get($option, 'value'), 'id' => ArrayHelper::get($option, $key) ]; if (ArrayHelper::isTrue($option, 'isSelected')) { $selectedOption[] = ArrayHelper::get($option, 'value', ''); } $formattedOptions[] = $arr; } return ['options' => $formattedOptions, 'selectedOption' => $selectedOption]; } /** * @param $repeaterFields * @param $label * @return array */ protected function getRepeaterFields($repeaterFields, $label) { $arr = []; if (empty($repeaterFields)) { $arr[] = [ 'element' => 'input_text', 'attributes' => array( 'type' => 'text', 'value' => '', 'placeholder' => '', ), 'settings' => array( 'label' => $label, 'help_message' => '', 'validation_rules' => array( 'required' => array( 'value' => false, 'message' => __('This field is required', 'fluentform'), ), ) ) ]; } else { foreach ($repeaterFields as $serial => $repeaterField) { $arr[] = [ 'element' => 'input_text', 'attributes' => array( 'type' => 'text', 'value' => '', 'placeholder' => '', ), 'settings' => array( 'label' => ArrayHelper::get($repeaterField, 'label', ''), 'help_message' => '', 'validation_rules' => array( 'required' => array( 'value' => false, 'message' => __('This field is required', 'fluentform'), ), ) ) ]; } } return $arr; } private function getContainer($fields, $fluentFields) { $layoutGroupIds = array_column($fields, 'layoutGroupId'); $cols = array_count_values($layoutGroupIds); // if inputs has more then one duplicate layoutGroupIds then it has container if (intval($cols) < 2) { return $fluentFields; } $final = []; //get fields array for inserting into containers $containers = self::getLayout($fields); //set fields array map for inserting into containers foreach ($containers as $index => $fields) { $final[$index][] = array_map(function ($id) use ($fluentFields) { if (isset($fluentFields[$id])) { return $fluentFields[$id]; } }, $fields); } $final = self::arrayFlat($final); $withContainer = []; foreach ($final as $row => $columns) { $colsCount = count($columns); $containerConfig = []; //with container if ($colsCount != 1) { $fields = []; foreach ($columns as $col) { $fields[]['fields'] = [$col]; } $containerConfig[] = [ 'index' => $row, 'element' => 'container', "attributes" => [], 'settings' => [ 'container_class', 'conditional_logics' ], 'editor_options' => [ 'title' => $colsCount . ' Column Container', 'icon_class' => 'ff-edit-column-' . $colsCount ], 'columns' => $fields, 'uniqElKey' => 'col' . '_' . md5(uniqid(mt_rand(), true)) ]; } else { //without container $containerConfig = $columns; } $withContainer[] = $containerConfig; } return (array_filter(self::arrayFlat($withContainer))); } protected static function getLayout($fields, $id = '') { $layoutGroupIds = array_column($fields, 'layoutGroupId'); $rows = array_count_values($layoutGroupIds); $layout = []; foreach ($rows as $key => $value) { $layout[] = self::getInputIdsFromLayoutGrp($key, $fields); } return $layout; } public static function getInputIdsFromLayoutGrp($id, $array) { $keys = []; foreach ($array as $key => $val) { if ($val['layoutGroupId'] === $id) { $keys[] = $val['id']; } } return $keys; } /** * @param null $array * @param int $depth * @return array */ public static function arrayFlat($array = null, $depth = 1) { $result = []; if (!is_array($array)) { $array = func_get_args(); } foreach ($array as $key => $value) { if (is_array($value) && $depth) { $result = array_merge($result, self::arrayFlat($value, $depth - 1)); } else { $result = array_merge($result, [$key => $value]); } } return $result; } /** * @return array */ private function getStepWrapper() { return [ 'stepStart' => [ 'element' => 'step_start', 'attributes' => [ 'id' => '', 'class' => '', ], 'settings' => [ 'progress_indicator' => 'progress-bar', 'step_titles' => [], 'disable_auto_focus' => 'no', 'enable_auto_slider' => 'no', 'enable_step_data_persistency' => 'no', 'enable_step_page_resume' => 'no', ], 'editor_options' => [ 'title' => 'Start Paging' ], ], 'stepEnd' => [ 'element' => 'step_end', 'attributes' => [ 'id' => '', 'class' => '', ], 'settings' => [ 'prev_btn' => [ 'type' => 'default', 'text' => 'Previous', 'img_url' => '' ] ], 'editor_options' => [ 'title' => 'End Paging' ], ] ]; } /** * @param $form * @return array default parsed form metas * @throws \Exception */ public function getFormMetas($form) { $formObject = new Form(wpFluentForm()); $defaults = $formObject->getFormsDefaultSettings(); $confirmationsFormatted = $this->getConfirmations($form, $defaults['confirmation']); $defaultConfirmation = array_shift($confirmationsFormatted); $notifications = $this->getNotifications($form); $defaults['restrictions']['requireLogin']['enabled'] = ArrayHelper::isTrue($form, 'requireLogin'); $defaults['restrictions']['requireLogin']['requireLoginMsg'] = ArrayHelper::isTrue($form, 'requireLoginMessage'); $defaults['restrictions']['limitNumberOfEntries']['enabled'] = ArrayHelper::isTrue($form, 'limitEntries'); $defaults['restrictions']['limitNumberOfEntries']['numberOfEntries'] = ArrayHelper::isTrue($form, 'limitEntriesCount'); $defaults['restrictions']['limitNumberOfEntries']['period'] = ArrayHelper::isTrue($form, 'limitEntriesPeriod'); $defaults['restrictions']['limitNumberOfEntries']['limitReachedMsg'] = ArrayHelper::isTrue($form, 'limitEntriesMessage'); $defaults['restrictions']['scheduleForm']['enabled'] = ArrayHelper::isTrue($form, 'scheduleForm'); $defaults['restrictions']['scheduleForm']['start'] = ArrayHelper::isTrue($form, 'scheduleStart'); $defaults['restrictions']['scheduleForm']['end'] = ArrayHelper::isTrue($form, 'scheduleEnd'); $defaults['restrictions']['scheduleForm']['pendingMsg'] = ArrayHelper::isTrue($form, 'schedulePendingMessage'); $defaults['restrictions']['scheduleForm']['expiredMsg'] = ArrayHelper::isTrue($form, 'scheduleMessage'); $advancedValidation = [ 'status' => false, 'type' => 'all', 'conditions' => [ [ 'field' => '', 'operator' => '=', 'value' => '' ] ], 'error_message' => '', 'validation_type' => 'fail_on_condition_met' ]; return [ 'formSettings' => [ 'confirmation' => $defaultConfirmation, 'restrictions' => $defaults['restrictions'], 'layout' => $defaults['layout'], ], 'advancedValidationSettings' => $advancedValidation, 'delete_entry_on_submission' => 'no', 'confirmations' => $confirmationsFormatted, 'notifications' => $notifications ]; } private function getNotifications($form) { $notificationsFormatted = []; foreach (ArrayHelper::get($form, 'notifications', []) as $notification) { $fieldType = ArrayHelper::get($notification, 'toType', 'email'); $sendTo = [ 'type' => $fieldType, 'email' => '', 'field' => '', 'routing' => [], ]; if ('field' == $fieldType) { $sendTo['field'] = $this->getFormFieldName(ArrayHelper::get($notification, 'to', ''), $form); } elseif('routing' == $fieldType) { foreach (ArrayHelper::get($notification, 'routing', []) as $route) { $fieldName = $this->getFormFieldName(ArrayHelper::get($route, 'fieldId'), $form); $routeEmail = ArrayHelper::get($route, 'email'); if (!$fieldName || !$routeEmail) { continue; } if ($operator = $this->getResolveOperator(ArrayHelper::get($route, 'operator', ''))) { $sendTo['routing'][] = [ 'field' => $fieldName, 'operator' => $operator, 'input_value' => $routeEmail, 'value' => ArrayHelper::get($route, 'value', '') ]; } } } else { $sendTo['email'] = $this->getResolveShortcodes(ArrayHelper::get($notification, 'to', ''), $form); } $message = $this->getResolveShortcodes(ArrayHelper::get($notification, 'message', ''), $form); $replyTo = $this->getResolveShortcodes(ArrayHelper::get($notification, 'replyTo', ''), $form); $notificationsFormatted[] = [ 'sendTo' => $sendTo, 'enabled' => ArrayHelper::get($notification, 'isActive', true), 'name' => ArrayHelper::get($notification, 'name', 'Admin Notification'), 'subject' => $this->getResolveShortcodes(ArrayHelper::get($notification, 'subject', 'Notification'), $form), 'to' => $sendTo['email'], 'replyTo' => $replyTo ?: '{wp.admin_email}', 'message' => str_replace("\n", "
    ", $message), 'fromName' => $this->getResolveShortcodes(ArrayHelper::get($notification, 'fromName', ''), $form), 'fromEmail' => $this->getResolveShortcodes(ArrayHelper::get($notification, 'from', ''), $form), 'bcc' => $this->getResolveShortcodes(ArrayHelper::get($notification, 'bcc', ''), $form), 'conditionals' => $this->getConditionals($notification,'notification', $form) ]; } return $notificationsFormatted; } private function getConditionals($notification, $key, $form) { $conditionals = ArrayHelper::get($notification, 'conditionalLogic', []); $conditions = []; if (!$conditionals) { $conditionals = ArrayHelper::get($notification, $key.'_conditional_logic_object', []); } $type = 'any'; if ($conditionals) { $type = ArrayHelper::get($conditionals, 'logicType', 'any'); foreach (ArrayHelper::get($conditionals, 'rules', []) as $rule) { $fieldName = $this->getFormFieldName(ArrayHelper::get($rule, 'fieldId'), $form); if (!$fieldName) { continue; } if ($operator = $this->getResolveOperator(ArrayHelper::get($rule, 'operator', ''))) { $conditions[] = [ 'field' => $fieldName, 'operator' => $operator, 'value' => ArrayHelper::get($rule, 'value', '') ]; } } } return [ "status" => ArrayHelper::isTrue($notification, $key . '_conditional_logic'), "type" => $type, 'conditions' => $conditions ]; } private function getConfirmations($form, $defaultValues) { $confirmationsFormatted = []; foreach (ArrayHelper::get($form, 'confirmations', []) as $confirmation) { $type = ArrayHelper::get($confirmation, 'type'); $queryString = ""; if ($type == 'redirect') { $redirectTo = 'customUrl'; $queryString = $this->getResolveShortcodes(ArrayHelper::get($confirmation, 'queryString', ''), $form); } elseif ($type == 'page') { $queryString = $this->getResolveShortcodes(ArrayHelper::get($confirmation, 'queryString', ''), $form); $redirectTo = 'customPage'; } else { $redirectTo = 'samePage'; } $format = [ 'name' => ArrayHelper::get($confirmation, 'name', 'Confirmation'), 'messageToShow' => str_replace("\n", "
    ", $this->getResolveShortcodes(ArrayHelper::get($confirmation, 'message', ''), $form)), 'samePageFormBehavior' => 'hide_form', 'redirectTo' => $redirectTo, 'customPage' => intval(ArrayHelper::get($confirmation, 'page')), 'customUrl' => ArrayHelper::get($confirmation, 'url'), 'active' => ArrayHelper::get($confirmation, 'isActive', true), 'enable_query_string' => $queryString ? 'yes' : 'no', 'query_strings' => $queryString, ]; $isDefault = ArrayHelper::isTrue($confirmation, 'isDefault'); if (!$isDefault) { $format['conditionals'] = $this->getConditionals($confirmation,'confirmation', $form); } $confirmationsFormatted[] = wp_parse_args($format, $defaultValues); } return $confirmationsFormatted; } /** * Get form field name in fluentforms format * * @param string $str * @param array $form * @return string */ private function getFormFieldName($str, $form) { preg_match('/[0-9]+[.]?[0-9]*/', $str, $fieldId); $fieldId = ArrayHelper::get($fieldId, 0, '0'); if (!$fieldId) { return ''; } $fieldIds = []; if (strpos($fieldId, '.') !== false) { $fieldIds = explode('.', $fieldId); $fieldId = $fieldId[0]; } $field = []; foreach (ArrayHelper::get($form, 'fields', []) as $formField) { if (isset($formField->id) && $formField->id == $fieldId) { $field = (array)$formField; break; } } list($type, $args) = $this->formatFieldData($field); $name = ArrayHelper::get($args, 'name', ''); if ($fieldIds && ArrayHelper::get($fieldIds, 1)) { foreach (ArrayHelper::get($field, "inputs", []) as $input) { if (ArrayHelper::get($input, 'id') != join('.', $fieldIds)) { continue; } if ($subName = $this->getInputName($input)) { $name .= ".$subName"; } break; } } return $name; } /** * Resolve shortcode in fluentforms format * * @param string $message * @param array $form * @return string */ private function getResolveShortcodes($message, $form) { if (!$message) { return $message; } preg_match_all('/{(.*?)}/', $message, $matches); if (!$matches[0]) { return $message; } $shortcodes = $this->dynamicShortcodes(); foreach ($matches[0] as $match) { $replace = ''; if (isset($shortcodes[$match])) { $replace = $shortcodes[$match]; } elseif ($this->isFormField($match) && $name = $this->getFormFieldName($match, $form)) { $replace = "{inputs.$name}"; } $message = str_replace($match, $replace, $message); } return $message; } /** * Get bool value depend on shortcode is form inputs or not * * @param string $shortcode * @return boolean */ private function isFormField($shortcode) { preg_match('/:[0-9]+[.]?[0-9]*/', $shortcode, $fieldId); return ArrayHelper::isTrue($fieldId, '0'); } /** * Get shortcode in fluentforms format * @return array */ private function dynamicShortcodes() { return [ '{all_fields}' => '{all_data}', '{admin_email}' => '{wp.admin_email}', '{ip}' => '{ip}', '{date_mdy}' => '{date.m/d/Y}', '{date_dmy}' => '{date.d/m/Y}', '{embed_post:ID}' => '{embed_post.ID}', '{embed_post:post_title}' => '{embed_post.post_title}', '{embed_url}' => '{embed_post.permalink}', '{user:id}' => '{user.ID}', '{user:first_name}' => '{user.first_name}', '{user:last_name}' => '{user.last_name}', '{user:user_login}' => '{user.user_login}', '{user:display_name}' => '{user.display_name}', '{user_full_name}' => '{user.first_name} {user.last_name}', '{user:user_email}' => '{user.user_email}', '{entry_id}' => '{submission.id}', '{entry_url}' => '{submission.admin_view_url}', '{referer}' => '{http_referer}', '{user_agent}' => '{browser.name}' ]; } public function getFormsFormatted() { $forms = []; $items = $this->getForms(); foreach ($items as $item) { $forms[] = [ 'name' => $this->getFormName($item), 'id' => $this->getFormId($item), 'imported_ff_id' => $this->isAlreadyImported($item), ]; } return $forms; } protected function getForms() { $forms = \GFAPI::get_forms(); return $forms; } protected function getForm($id) { if ($form = \GFAPI::get_form($id)) { return $form; } return false; } protected function getFormName($form) { return $form['title']; } public function getEntries($formId) { $form = $this->getForm($formId); if (empty($form)) { return false; } /** * Note - more-then 5000/6000 (based on sever) entries process make timout response / set default limit 1000 * @todo need silently async processing for support all entries migrate at a time, and improve frontend entry-migrate with more settings options */ $totalEntries = \GFAPI::count_entries($formId); $perPage = apply_filters('fluentform/entry_migration_max_limit', static::DEFAULT_ENTRY_MIGRATION_MAX_LIMIT, $this->key , $totalEntries, $formId); $offset = 0; $paging = [ 'offset' => $offset, 'page_size' => $perPage ]; $shorting = [ 'key' => 'id', 'direction' => 'ASC', ]; $submissions = \GFAPI::get_entries($formId, [], $shorting, $paging); $entries = []; if (!is_array($submissions)) { return $entries; } $fieldsMap = $this->getFields($form); foreach ($submissions as $submission) { $entry = []; foreach ($fieldsMap['fields'] as $id => $field) { $name = ArrayHelper::get($field, 'attributes.name'); if (!$name) { continue; } $type = ArrayHelper::get($field, 'element'); $fieldModel = \GFFormsModel::get_field($form, $id); // format entry value by field name $finalValue = null; if ("input_file" == $type && $value = $this->getSubmissionValue($id, $submission)) { $finalValue = $this->migrateFilesAndGetUrls($value); } elseif ("repeater_field" == $type && $value = $this->getSubmissionValue($id, $submission)) { if ($repeatData = (array)maybe_unserialize($value)) { $finalValue = []; foreach ($repeatData as $data) { $finalValue[] = array_values($data); } } } elseif ( "select" == $type && ArrayHelper::isTrue($field, 'attributes.multiple') && $value = $this->getSubmissionValue($id, $submission) ) { $finalValue = \json_decode($value); } elseif ( in_array($type, ["input_checkbox", "address", "input_name", "terms_and_condition"]) && isset($fieldModel['inputs']) ) { $finalValue = $this->getSubmissionArrayValue($type, $field, $fieldModel['inputs'], $submission); if ("input_checkbox" == $type) { $finalValue = array_values($finalValue); } elseif ("terms_and_condition" == $type) { $finalValue = $finalValue ? 'on' : 'off'; } } if (!$finalValue) { $finalValue = is_object($fieldModel) ? $fieldModel->get_value_export($submission, $id) : ''; } $entry[$name] = $finalValue; } if ($created_at = ArrayHelper::get($submission, 'date_created')) { $entry['created_at'] = $created_at; } if ($updated_at = ArrayHelper::get($submission, 'date_updated')) { $entry['updated_at'] = $updated_at; } if ($is_favourite = ArrayHelper::get($submission, 'is_starred')) { $entry['is_favourite'] = $is_favourite; } if ($status = ArrayHelper::get($submission, 'status')) { if ('trash' == $status || 'spam' == $status) { $entry['status'] = 'trashed'; } elseif ('active' == $status && ArrayHelper::isTrue($submission, 'is_read')) { $entry['status'] = 'read'; } } $entries[] = $entry; } return $entries; } /** * @param $form * @return mixed */ protected function getFormId($form) { if (isset($form['id'])) { return $form['id']; } return false; } protected function getSubmissionArrayValue($type, $field, $inputs, $submission) { $arrayValue = []; foreach ($inputs as $input) { if (!isset($submission[$input['id']])) { continue; } if ("input_name" == $type && $subFields = ArrayHelper::get($field, 'fields')) { foreach ($subFields as $subField) { if ( $input['label'] == ArrayHelper::get($subField, 'settings.label') && $subName = ArrayHelper::get($subField, 'attributes.name', '') ) { $arrayValue[$subName] = $submission[$input['id']]; } } } else { $arrayValue[] = $submission[$input['id']]; } } if ('address' == $type) { $arrayValue = array_combine([ "address_line_1", "address_line_2", "city", "state", "zip", "country" ], $arrayValue); } return array_filter($arrayValue); } protected function getSubmissionValue($id, $submission) { return isset($submission[$id]) ? $submission[$id] : ""; } } app/Services/Migrator/Classes/NinjaFormsMigrator.php000064400000054133147600120010016551 0ustar00key = 'ninja_forms'; $this->title = 'Ninja Forms'; $this->shortcode = 'ninja_form'; } /** * Check if form type exists * @return bool */ public function exist() { return !!defined('NF_SERVER_URL'); } /** * Get array of all forms * @return array Forms with fields */ public function getForms() { $forms = []; $items = (new \NF_Database_FormsController())->getFormsData(); foreach ($items as $item) { $fields = Ninja_Forms()->form($item->id)->get_fields(); $field_settings = []; foreach ($fields as $key => $field) { $field_settings[$key] = $field->get_settings(); } $forms[] = [ 'ID' => $item->id, 'name' => $item->title, 'fields' => $field_settings, ]; } return $forms; } public function getForm($id) { $formModel = \Ninja_Forms()->form($id)->get(); if (!$formModel) { return []; } $forms = $this->getForms(); $formArray = array_filter($forms, function ($form) use ($id) { if ($form['ID'] == $id) { return $form; } }); return array_shift($formArray); } public function getFormsFormatted() { $forms = []; $items = $this->getForms(); foreach ($items as $item) { $forms[] = [ 'name' => $this->getFormName($item), 'id' => $this->getFormId($item), 'imported_ff_id' => $this->isAlreadyImported($item), ]; } return $forms; } /** * * Get formatted fields form array * @param array $form * @return array fluentform data formatted for database */ public function getFields($form) { $fluentFields = []; $fields = ArrayHelper::get($form, 'fields'); foreach ($fields as $field) { list($type, $args) = $this->formatFieldData($field); if ($value = $this->getFluentClassicField($type, $args)) { $fluentFields[$field['key']] = $value; } else { if (ArrayHelper::get($field, 'type') != 'submit') { $this->unSupportFields[] = ArrayHelper::get($field, 'label'); } } } $submitBtn = $this->getSubmitBttn([ 'uniqElKey' => $field['key'], 'label' => $field['label'], 'class' => $field['element_class'], ]); if (empty($fluentFields)) { return false; } $returnData = [ 'fields' => $fluentFields, 'submitButton' => $this->submitBtn ]; return $returnData; } /** * Format each field with proper data * @param $field * @return array required arguments for single field */ protected function formatFieldData($field) { $type = ArrayHelper::get($this->fieldTypes(), $field['type'], ''); $args = [ 'uniqElKey' => $field['key'] . '-' . time(), 'index' => $field['order'], 'required' => ArrayHelper::isTrue($field, 'required'), 'label' => $field['label'], 'name' => ArrayHelper::get($field, 'key'), 'placeholder' => ArrayHelper::get($field, 'placeholder', ''), 'class' => ArrayHelper::get($field, 'element_class', ''), 'value' => $this->dynamicShortcodeConverter(ArrayHelper::get($field, 'value', '')), 'help_message' => ArrayHelper::get($field, 'desc_text'), 'container_class' => ArrayHelper::get($field, 'container_class'), ]; if (empty($args['name'])) { $name = ArrayHelper::get($field, 'id'); $args['name'] = str_replace('.', '_', $name); } switch ($type) { case 'select': case 'input_radio': case 'input_checkbox': case 'multi_select': $optionsData = $this->getOptions(ArrayHelper::get($field, 'options', [])); $args['options'] = ArrayHelper::get($optionsData, 'options'); $args['value'] = ArrayHelper::get($optionsData, 'selectedOption.0', ''); if ($field['type'] == 'listimage') { $args['enable_image_input'] = true; $optionsData = $this->getOptions(ArrayHelper::get($field, 'image_options', []), $hasImage = true); $args['options'] = $optionsData['options']; $args['value'] = ArrayHelper::get($optionsData, 'selectedOption.0', ''); if (ArrayHelper::isTrue($field, 'allow_multi_select')) { $type = 'input_checkbox'; } } else { if ($field['type'] == 'checkbox' && empty($args['options'])) { //single item checkbox $arr = [ 'label' => ArrayHelper::get($field, 'checked_value'), 'value' => ArrayHelper::get($field, 'checked_value'), 'calc_value' => '', 'id' => 0 ]; $args['options'] = [$arr]; } else { if ($field['type'] == 'checkbox' && $args['allow_multi_select'] == 1) { //img with multi item checkbox make it check box $type = 'input_checkbox'; $args['value'] = ArrayHelper::get($optionsData, 'selectedOption'); } } } if ($type == 'input_checkbox' || $type == 'multi_select') { //array values $args['value'] = ArrayHelper::get($optionsData, 'selectedOption', ''); } break; case 'input_date': $args['format'] = Arrayhelper::get($field, 'date_format'); if ($args['format'] == 'default') { $args['format'] = 'd/m/Y'; } break; case 'input_number': $args['step'] = $field['num_step']; $args['min'] = $field['num_min']; $args['max'] = $field['num_max']; break; case 'input_hidden': $args['value'] = ArrayHelper::get($field, 'default', ''); break; case 'ratings': $number = ArrayHelper::get($field, 'number_of_stars', 5); $args['options'] = array_combine(range(1, $number), range(1, $number)); break; case 'input_file': break; case 'custom_html': $args['html_codes'] = $field['default']; break; case 'gdpr_agreement': // ?? $args['tnc_html'] = $field['config']['agreement']; break; case 'repeater_field': $repeaterFields = ArrayHelper::get($field, 'fields', []); $arr = []; foreach ($repeaterFields as $serial => $repeaterField) { $type = ArrayHelper::get($this->fieldTypes(), $repeaterField['type'], ''); $supportedRepeaterFields = ['input_text', 'select', 'input_number', 'email']; if (in_array($type, $supportedRepeaterFields)) { list($type, $args) = $this->formatFieldData($repeaterField); $arr[] = $this->getFluentClassicField($type, $args); } } if (empty($arr)) { return ''; } $args['fields'] = $arr; return array('repeater_field', $args); case 'submit': $this->submitBtn = $this->getSubmitBttn( [ 'uniqElKey' => $field['key'], 'label' => $field['label'], 'class' => $field['element_class'], ] ); break; } return array($type, $args); } /** * Get field type in fluentforms type * @return array */ public function fieldTypes() { $fieldTypes = [ 'email' => 'email', 'textbox' => 'input_text', 'address' => 'input_text', 'city' => 'input_text', 'zip' => 'input_text', 'liststate' => 'select', 'firstname' => 'input_text', 'lastname' => 'input_text', 'listcountry' => 'select_country', 'textarea' => 'input_textarea', 'phone' => 'phone', 'select' => 'select', 'listselect' => 'select', 'listmultiselect' => 'multi_select', 'radio' => 'input_radio', 'listcheckbox' => 'input_checkbox', 'listimage' => 'input_radio', 'listradio' => 'input_radio', 'checkbox' => 'input_checkbox', 'date' => 'input_date', 'html' => 'custom_html', 'hr' => 'section_break', 'repeater' => 'repeater_field', 'starrating' => 'ratings', 'recaptcha' => 'reCaptcha', 'number' => 'input_number', 'hidden' => 'input_hidden', 'submit' => 'submit', ]; return $fieldTypes; } /** * Get formatted options for select,radio etc type fields * @param $options * @param bool $hasImage * @return array (options list and selected option) */ public function getOptions($options, $hasImage = false) { $formattedOptions = []; $selectedOption = []; foreach ($options as $key => $option) { $arr = [ 'label' => ArrayHelper::get($option, 'label', 'Item -' . $key), 'value' => ArrayHelper::get($option, 'value'), 'calc_value' => ArrayHelper::get($option, 'calc'), 'id' => ArrayHelper::get($option, 'order') ]; if ($hasImage) { $arr['image'] = ArrayHelper::get($option, 'image'); } if (ArrayHelper::isTrue($option, 'selected')) { $selectedOption[] = ArrayHelper::get($option, 'value', ''); } $formattedOptions[] = $arr; } return ['options' => $formattedOptions, 'selectedOption' => $selectedOption]; } /** * Get Form Metas * @param $form * @return array */ public function getFormMetas($form) { $this->addRecaptcha(); $formObject = new Form(wpFluentForm()); $defaults = $formObject->getFormsDefaultSettings(); $formSettings = $this->getFormSettings($form); $formMeta = []; $actions = Ninja_Forms()->form($this->getFormId($form))->get_actions(); if (is_array($actions)) { foreach ($actions as $action) { if ($action->get_type() != 'action') { continue; } $actionData = $action->get_settings(); if ($actionData['type'] == 'email') { $formMeta['notifications'] [] = $this->getNotificationData($actionData); } elseif ($actionData['type'] == 'successmessage') { $formMeta['formSettings']['confirmation'] = [ 'messageToShow' => $this->dynamicShortcodeConverter($actionData['success_msg']), 'samePageFormBehavior' => ($formSettings['hide_complete']) ? 'hide_form' : 'reset_form', 'redirectTo' => 'samePage' ]; } elseif ($actionData['type'] == 'save') { $isAutoDelete = intval(ArrayHelper::get($actionData, 'set_subs_to_expire')) == 1; if ($isAutoDelete) { $formMeta['formSettings'] = [ 'delete_after_x_days' => true, 'auto_delete_days' => $actionData['subs_expire_time'], ]; } } elseif ($actionData['type'] == 'redirect') { $formMeta['formSettings']['confirmation'] = [ 'messageToShow' => $this->dynamicShortcodeConverter($actionData['success_msg']), 'samePageFormBehavior' => isset($form['hide_form']) ? 'hide_form' : 'reset_form', 'redirectTo' => 'customUrl', 'customUrl' => $actionData['redirect_url'], ]; } } } $advancedValidation = [ 'status' => false, 'type' => 'all', 'conditions' => [ [ 'field' => '', 'operator' => '=', 'value' => '' ] ], 'error_message' => '', 'validation_type' => 'fail_on_condition_met' ]; $defaults['restrictions']['requireLogin'] = [ 'enabled' => ArrayHelper::isTrue($formSettings, 'logged_in', false), 'requireLoginMsg' => $formSettings['not_logged_in_msg'] ]; $defaults['restrictions']['limitNumberOfEntries'] = [ 'enabled' => (intval($formSettings['sub_limit_number']) > 0), 'numberOfEntries' => $formSettings['sub_limit_number'], 'limitReachedMsg' => $formSettings['sub_limit_msg'] ]; $formMeta['formSettings']['restrictions'] = $defaults['restrictions']; $formMeta['formSettings']['layout'] = $defaults['layout']; $formMeta['advancedValidationSettings'] = $advancedValidation; $formMeta['delete_entry_on_submission'] = 'no'; return $formMeta; } /** * Update recaptcha key if already not has */ protected function addRecaptcha() { $ffRecap = get_option('_fluentform_reCaptcha_details'); if ($ffRecap) { return; } $recaptcha_site_key = Ninja_Forms()->get_settings(); $arr = ''; if ($recaptcha_site_key['recaptcha_site_key'] != '') { $arr = [ 'siteKey' => $recaptcha_site_key['recaptcha_site_key'], 'secretKey' => $recaptcha_site_key['recaptcha_secret_key'], 'api_version' => 'v2_visible' ]; } elseif ($recaptcha_site_key['recaptcha_site_key_3'] != '') { $arr = [ 'siteKey' => $recaptcha_site_key['recaptcha_site_key_3'], 'secretKey' => $recaptcha_site_key['recaptcha_secret_key_3'], 'api_version' => 'v3_invisible', ]; } update_option('_fluentform_reCaptcha_details', $arr, false); } /** * Get notification data for metas * @param $actionData * @return array */ private function getNotificationData($actionData) { // Convert all shortcodes $actionData['to'] = $this->dynamicShortcodeConverter($actionData['to']); $actionData['reply_to'] = $this->dynamicShortcodeConverter($actionData['reply_to']); $actionData['email_subject'] = $this->dynamicShortcodeConverter($actionData['email_subject']); $actionData['email_message'] = $this->dynamicShortcodeConverter($actionData['email_message']); $notification = [ 'sendTo' => [ 'type' => 'email', 'email' => ($actionData['to'] == '{system:admin_email}') ? '{wp.admin_email}' : $actionData['to'], 'fromEmail' => $actionData['from_address'], 'field' => 'email', 'routing' => '', ], 'enabled' => ArrayHelper::isTrue($actionData, 'active'), 'name' => $actionData['label'], 'subject' => $actionData['email_subject'], 'to' => ($actionData['to'] == '{system:admin_email}') ? '{wp.admin_email}' : $actionData['to'], 'replyTo' => ($actionData['to'] == '{system:admin_email}') ? '{wp.admin_email}' : $actionData['reply_to'], 'message' => $actionData['email_message'], 'fromName' => ArrayHelper::get($actionData, 'from_name'), 'fromAddress' => ArrayHelper::get($actionData, 'from_address'), 'bcc' => ArrayHelper::get($actionData, 'bcc'), ]; return $notification; } /** * Convert Ninja Forms merge Tags to Fluent forms dynamic shortcodes. * @param $msg * @return string */ private function dynamicShortcodeConverter($msg) { $shortcodes = $this->dynamicShortcodes(); $msg = str_replace(array_keys($shortcodes), array_values($shortcodes), $msg); return $msg; } /** * Get shortcode in fluentforms format * @return array */ protected function dynamicShortcodes() { $dynamicShortcodes = [ // Input Options 'field:' => 'inputs.', '{all_fields_table}' => '{all_data}', '{fields_table}' => '{all_data}', // General Smartcodes '{wp:site_title}' => '{wp.site_title}', '{wp:site_url}' => '{wp.site_url}', '{wp:admin_email}' => '{wp.admin_email}', '{other:user_ip}' => '{ip}', '{other:date}' => '{date.d/m/Y}', '{other:time}' => '', '{wp:post_id}' => '{embed_post.ID}', '{wp:post_title}' => '{embed_post.post_title}', '{wp:post_url}' => '{embed_post.permalink}', '{wp:post_author}' => '', '{wp:post_author_email}' => '', '{post_meta:YOUR_META_KEY}' => '{embed_post.meta.YOUR_META_KEY}', '{wp:user_id}' => '{user.ID}', '{wp:user_first_name}' => '{user.first_name}', '{wp:user_last_name}' => '{user.last_name}', '{wp:user_username}' => '{user.user_login}', '{wp:user_display_name}' => '{user.display_name}', '{wp:user_email}' => '{user.user_email}', '{wp:user_url}' => '{wp.site_url}', '{user_meta:YOUR_META_KEY}' => '', // Entry Attributes '{form:id}' => '', '{form:title}' => '', '{submission:sequence}' => '{submission.serial_number}', '{submission:count}' => '{submission.serial_number}', 'querystring:' => 'get.' ]; return $dynamicShortcodes; } /** * Get form settings * @param $form * @return array $formSettings */ protected function getFormSettings($form) { $formData = Ninja_Forms()->form($form['ID'])->get(); return $formData->get_settings(); } /** * @param $form * @return mixed */ protected function getFormId($form) { return intval($form['ID']); } /** * @param $form * @return mixed */ protected function getFormName($form) { return $form['name']; } public function getEntries($formId) { $form = $this->getForm($formId); if (empty($form)) { return false; } $submissions = \Ninja_Forms()->form($formId)->get_subs(); if (!$submissions || !is_array($submissions)) { return []; } $totalEntries = count($submissions); $max_limit = apply_filters('fluentform/entry_migration_max_limit', static::DEFAULT_ENTRY_MIGRATION_MAX_LIMIT, $this->key, $totalEntries, $formId); if ($totalEntries && $max_limit && $totalEntries > $max_limit) { $submissions = array_slice($submissions, 0 , $max_limit); } $entries = []; $fieldsMap = $this->getFieldKeyMaps($form); foreach ($submissions as $submission) { $values = $submission->get_field_values(); $values = ArrayHelper::only($values, $fieldsMap); $values = $this->formatEntries($values); if ($created_at = $submission->get_sub_date('Y-m-d H:i:s')) { $values['created_at'] = $created_at; } if ($updated_at = $submission->get_mod_date('Y-m-d H:i:s')) { $values['updated_at'] = $updated_at; } $entries[] = $values; } return array_reverse($entries); } public function getFieldKeyMaps($form) { $fields = ArrayHelper::get($form, 'fields'); $fieldsMap = []; foreach ($fields as $field) { $fieldsMap[] = $field['key']; } return $fieldsMap; } /** * @param array $values * @return array */ public function formatEntries(array $values) { $formattedData = []; foreach ($values as $key => $value) { $key = str_replace('.', '_', $key); $value = maybe_unserialize($value); $formattedData[$key] = $value; if (is_array($value)) { $value = $this->formatEntries($value); } } return $formattedData; } } app/Services/Migrator/Classes/CalderaMigrator.php000064400000051550147600120010016036 0ustar00key = 'caldera'; $this->title = 'Caldera Forms'; $this->shortcode = 'caldera_form'; $this->hasStep = false; } /** * @return bool */ public function exist() { return defined('CFCORE_VER'); } /** * @return array */ public function getForms() { $forms = []; $items = \Caldera_Forms_Forms::get_forms(); foreach ($items as $item) { $forms[] = \Caldera_Forms_Forms::get_form($item); } return $forms; } public function getForm($id) { return \Caldera_Forms_Forms::get_form($id); } public function getFormsFormatted() { $forms = []; $items = \Caldera_Forms_Forms::get_forms(); foreach ($items as $item) { $item = \Caldera_Forms_Forms::get_form($item); $forms[] = [ 'name' => $this->getFormName($item), 'id' => $this->getFormId($item), 'imported_ff_id' => $this->isAlreadyImported($item), 'entryImportSupported' => true ]; } return $forms; } /** * @param $form * @return array */ public function getFields($form) { $fluentFields = []; $fields = \Caldera_Forms_Forms::get_fields($form); foreach ($fields as $name => $field) { $field = (array)$field; list($type, $args) = $this->formatFieldData($field, $form); if ($value = $this->getFluentClassicField($type, $args)) { $fluentFields[$field['ID']] = $value; } else { //submit button is imported separately if (ArrayHelper::get($field, 'type') != 'button') { $this->unSupportFields[] = ArrayHelper::get($field, 'label'); } } } $returnData = [ 'fields' => $this->getContainer($form, $fluentFields), 'submitButton' => $this->submitBtn ]; if ($this->hasStep && defined('FLUENTFORMPRO')) { $returnData['stepsWrapper'] = $this->getStepWrapper(); } return $returnData; } private function formatFieldData($field, $form) { if (ArrayHelper::get($field, 'config.type_override')) { $field['type'] = $field['config']['type_override']; } $args = [ 'uniqElKey' => $field['ID'], 'index' => $field['ID'], // get the order id from order array 'required' => isset($field['required']), 'label' => $field['label'], 'label_placement' => $this->getLabelPlacement($field), 'name' => $field['slug'], 'placeholder' => ArrayHelper::get($field, 'config.placeholder'), 'class' => $field['config']['custom_class'], 'value' => ArrayHelper::get($field, 'config.default'), 'help_message' => ArrayHelper::get($field, 'caption'), ]; $type = ArrayHelper::get($this->fieldTypes(), $field['type'], ''); switch ($type) { case 'phone': case 'input_text': if (ArrayHelper::isTrue($field, 'config.masked')) { $type = 'input_mask'; $args['temp_mask'] = 'custom'; $args['mask'] = str_replace('9', '0', $field['config']['mask']);//replace mask 9 with 0 for numbers } break; case 'email': case 'input_textarea': $args['rows'] = ArrayHelper::get($field, 'config.rows'); break; case 'input_url': case 'color_picker': case 'section_break': case 'select': case 'input_radio': case 'input_checkbox': case 'dropdown': if ($args['placeholder'] == '') { $args['placeholder'] = __('-Select-', 'fluentform'); } $args['options'] = $this->getOptions(ArrayHelper::get($field, 'config.option', [])); $args['calc_value_status'] = (bool)ArrayHelper::get($field, 'config.show_values'); // Toggle switch field in Caldera $isBttnType = ArrayHelper::get($field, 'type') == 'toggle_switch'; if ($isBttnType) { $args['layout_class'] = 'ff_list_buttons'; //for btn type radio } if ($type == 'section_break') { $args['label'] = ''; } break; case 'multi_select': $args['options'] = $this->getOptions(ArrayHelper::get($field, 'config.option', [])); $args['calc_value_status'] = ArrayHelper::get($field, 'config.show_values') ? true : false; break; case 'input_date': $args['format'] = Arrayhelper::get($field, 'config.format'); break; case 'input_number': $args['step'] = ArrayHelper::get($field, 'config.step'); $args['min'] = ArrayHelper::get($field, 'config.min'); $args['max'] = ArrayHelper::get($field, 'config.max'); // Caldera Calculation field if (ArrayHelper::get($field, 'type') == 'calculation') { $args['prefix'] = $field['config']['before']; $args['suffix'] = $field['config']['after']; if (ArrayHelper::isTrue($field, 'config.manual') || !empty(Arrayhelper::get($field, 'config.formular'))) { $args['enable_calculation'] = true; $args['calculation_formula'] = $this->convertFormulas($field, $form); } } break; case 'rangeslider': $args['step'] = $field['config']['step']; $args['min'] = $field['config']['min']; $args['max'] = $field['config']['max']; break; case 'ratings': $number = ArrayHelper::get($field, 'config.number', 5); $args['options'] = array_combine(range(1, $number), range(1, $number)); break; case 'input_file': $args['help_message'] = $field['caption']; $args['allowed_file_types'] = $this->getFileTypes($field, 'config.allowed'); $args['max_size_unit'] = 'KB'; $args['max_file_size'] = $this->getFileSize($field); $args['max_file_count'] = ArrayHelper::isTrue($field, 'config.multi_upload') ? 5 : 1; //limit 5 for unlimited files $args['upload_btn_text'] = ArrayHelper::get($field, 'config.multi_upload_text') ?: 'File Upload'; break; case 'custom_html': $args['html_codes'] = $field['config']['default']; $args['container_class'] = $field['config']['custom_class']; break; case 'gdpr_agreement': $args['tnc_html'] = $field['config']['agreement']; break; case 'button': $pageLength = count(ArrayHelper::get($form, 'page_names')); if ($field['config']['type'] == 'next' && $pageLength > 1) { $this->hasStep = true; $type = 'form_step'; break; //skipped prev button ,only one is required } elseif ($field['config']['type'] != 'submit') { break; } $this->submitBtn = $this->getSubmitBttn([ 'uniqElKey' => $field['ID'], 'label' => $field['label'], 'class' => $field['config']['custom_class'], ]); break; } return array($type, $args); } private function getLabelPlacement($field) { if (ArrayHelper::get($field, 'hide_label') == 1) { return 'hide_label'; } return ''; } // Function to convert shortcodes in numeric field calculations (todo) private function convertFormulas($calculationField, $form) { $calderaFormula = ''; $fieldSlug = []; $fieldID = []; foreach ($form['fields'] as $field) { $prefixTypes = ArrayHelper::get($this->fieldPrefix(), $field['type'], ''); // FieldSlug for Manual Formula $fieldSlug[$field['slug']] = '{' . $prefixTypes . '.' . $field['slug'] . '}'; // FieldID for Direct Formula $fieldID[$field['ID']] = '{' . $prefixTypes . '.' . $field['slug'] . '}'; } // Check if Manual Formula Enabled in Caldera Otherwise get Direct Formula if (!empty($calculationField['config']['manual'])) { $calderaFormula = $calculationField['config']['manual_formula']; $refactorShortcode = str_replace("%", "", $calderaFormula); $refactoredFormula = str_replace(array_keys($fieldSlug), array_values($fieldSlug), $refactorShortcode); } else { if (!empty($calculationField['config']['formular'])) { $calderaFormula = $calculationField['config']['formular']; $refactoredFormula = str_replace(array_keys($fieldID), array_values($fieldID), $calderaFormula); } } return $refactoredFormula; } /** * @param $field * @return int */ private function getFileSize($field) { $fileSizeByte = ArrayHelper::get($field, 'config.max_upload', 6000); $fileSizeKilobyte = ceil(($fileSizeByte * 1024) / 1000); return $fileSizeKilobyte; } /** * @return array */ public function fieldPrefix() { $fieldPrefix = [ 'number' => 'input', 'hidden' => 'input', 'range_slider' => 'input', 'calculation' => 'input', 'checkbox' => 'checkbox', 'radio' => 'radio', 'toggle_switch' => 'radio', 'dropdown' => 'select', 'filtered_select2' => 'select' ]; return $fieldPrefix; } /** * @return array */ public function fieldTypes() { $fieldTypes = [ 'email' => 'email', 'text' => 'input_text', 'hidden' => 'input_hidden', 'textarea' => 'input_textarea', 'paragraph' => 'input_textarea', 'wysiwyg' => 'input_textarea', 'url' => 'input_url', 'color_picker' => 'color_picker', 'phone_better' => 'phone', 'phone' => 'phone', 'select' => 'select', 'dropdown' => 'select', 'filtered_select2' => 'multi_select', 'radio' => 'input_radio', 'checkbox' => 'input_checkbox', 'toggle_switch' => 'input_radio', 'date_picker' => 'input_date', 'date' => 'input_date', 'range' => 'input_number', 'number' => 'input_number', 'calculation' => 'input_number', 'range_slider' => 'rangeslider', 'star_rating' => 'ratings', 'file' => 'input_file', 'cf2_file' => 'input_file', 'advanced_file' => 'input_file', 'html' => 'custom_html', 'section_break' => 'section_break', 'gdpr' => 'gdpr_agreement', 'button' => 'button', ]; return $fieldTypes; } /** * @param $options * @return array */ public function getOptions($options) { $formattedOptions = []; foreach ($options as $key => $option) { $formattedOptions[] = [ 'label' => ArrayHelper::get($option, 'label', 'Item -' . $key), 'value' => $key, 'calc_value' => ArrayHelper::get($option, 'calc_value'), 'id' => $key ]; } return $formattedOptions; } /** * @param $form * @param $fluentFields * @return array */ private function getContainer($form, $fluentFields) { $containers = []; if (empty($form['layout_grid']['fields'])) { return $fluentFields; } //set fields array map for inserting into containers foreach ($form['layout_grid']['fields'] as $field_id => $location) { if (isset($fluentFields[$field_id])) { $location = explode(':', $location); $containers[$location[0]][$location[1]]['fields'][] = $fluentFields[$field_id]; } } $withContainer = []; foreach ($containers as $row => $columns) { $colsCount = count($columns); $containerConfig = []; if ($colsCount != 1) { //with container $containerConfig[] = [ 'index' => $row, 'element' => 'container', 'attributes' => [], 'settings' => [ 'container_class', 'conditional_logics' ], 'editor_options' => [ 'title' => $colsCount . ' Column Container', 'icon_class' => $colsCount . 'dashicons dashicons-align-center' ], 'columns' => $columns, 'uniqElKey' => 'col' . '_' . md5(uniqid(mt_rand(), true)) ]; } else { //without container $containerConfig = $columns[1]['fields']; } $withContainer[] = $containerConfig; } array_filter($withContainer); return (self::arrayFlat($withContainer)); } /** * @param null $array * @param int $depth * @return array */ public static function arrayFlat($array = null, $depth = 1) { $result = []; if (!is_array($array)) { $array = func_get_args(); } foreach ($array as $key => $value) { if (is_array($value) && $depth) { $result = array_merge($result, self::arrayFlat($value, $depth - 1)); } else { $result = array_merge($result, [$key => $value]); } } return $result; } /** * @return array */ private function getStepWrapper() { return [ 'stepStart' => [ 'element' => 'step_start', 'attributes' => [ 'id' => '', 'class' => '', ], 'settings' => [ 'progress_indicator' => 'progress-bar', 'step_titles' => [], 'disable_auto_focus' => 'no', 'enable_auto_slider' => 'no', 'enable_step_data_persistency' => 'no', 'enable_step_page_resume' => 'no', ], 'editor_options' => [ 'title' => 'Start Paging' ], ], 'stepEnd' => [ 'element' => 'step_end', 'attributes' => [ 'id' => '', 'class' => '', ], 'settings' => [ 'prev_btn' => [ 'type' => 'default', 'text' => 'Previous', 'img_url' => '' ] ], 'editor_options' => [ 'title' => 'End Paging' ], ] ]; } /** * @param $form * @return array default parsed form metas * @throws \Exception */ public function getFormMetas($form) { $formObject = new Form(wpFluentForm()); $defaults = $formObject->getFormsDefaultSettings(); $confirmation = wp_parse_args( [ 'messageToShow' => $form['success'], 'samePageFormBehavior' => isset($form['hide_form']) ? 'hide_form' : 'reset_form', ], $defaults['confirmation'] ); $advancedValidation = [ 'status' => false, 'type' => 'all', 'conditions' => [ [ 'field' => '', 'operator' => '=', 'value' => '' ] ], 'error_message' => '', 'validation_type' => 'fail_on_condition_met' ]; $notifications = [ 'sendTo' => [ 'type' => 'email', 'email' => ArrayHelper::get($form, 'mailer.recipients'), 'field' => '', 'routing' => [], ], 'enabled' => $form['mailer']['on_insert'] ? true : false, 'name' => 'Admin Notification', 'subject' => ArrayHelper::get($form, 'mailer.email_subject', 'Admin Notification'), 'to' => ArrayHelper::get($form, 'mailer.recipients', '{wp.admin_email}'), 'replyTo' => ArrayHelper::get($form, 'mailer.reply_to', '{wp.admin_email}'), 'message' => str_replace('{summary}', '{all_data}', ArrayHelper::get($form, 'mailer.email_message')), 'fromName' => ArrayHelper::get($form, 'mailer.sender_name'), 'fromEmail' => ArrayHelper::get($form, 'mailer.sender_email'), 'bcc' => ArrayHelper::get($form, 'mailer.bcc_to'), ]; return [ 'formSettings' => [ 'confirmation' => $confirmation, 'restrictions' => $defaults['restrictions'], 'layout' => $defaults['layout'], ], 'advancedValidationSettings' => $advancedValidation, 'delete_entry_on_submission' => 'no', 'notifications' => [$notifications] ]; } /** * @param $form * @return mixed */ protected function getFormId($form) { return $form['ID']; } /** * @param $form * @return mixed */ protected function getFormName($form) { return $form['name']; } public function getEntries($formId) { $form = \Caldera_Forms::get_form($formId); $totalEntries = (new \Caldera_Forms_Entry_Entries($form, 9999))->get_total('active'); $max_limit = apply_filters('fluentform/entry_migration_max_limit', static::DEFAULT_ENTRY_MIGRATION_MAX_LIMIT, $this->key, $totalEntries, $formId); $data = \Caldera_Forms_Admin::get_entries($form, 1, $max_limit); $nameKeyMap = $this->getFieldsNameMap($form); $entries = []; if (!is_array(ArrayHelper::get($data, 'entries'))) { return $entries; } foreach ($data['entries'] as $entry) { $entryId = ArrayHelper::get($entry, '_entry_id'); $entryFields = ArrayHelper::get(\Caldera_Forms::get_entry($entryId, $form), 'data'); $formattedEntry = []; foreach ($entryFields as $key => $field) { $value = $field['value']; if (is_array($value)) { $selectedOption = array_pop($value); $value = \json_decode($selectedOption, true); $value = array_keys($value); } $inputName = $nameKeyMap[$key]; $formattedEntry[$inputName] = $value; } $entries[] = $formattedEntry; } return array_reverse($entries); } /** * Map Field key with its name to insert entry with input name * * @param array|null $form * @return array|mixed */ public function getFieldsNameMap($form) { $fields = \Caldera_Forms_Forms::get_fields($form); $map = []; if (is_array($fields) && !empty($fields)) { foreach ($fields as $key => $field) { $map[$key] = $field['slug']; } } return $map; } } app/Services/Migrator/Classes/WpFormsMigrator.php000064400000107537147600120010016107 0ustar00key = 'wpforms'; $this->title = 'WPForms'; $this->shortcode = 'wp_form'; $this->hasStep = false; } protected function getForms() { $forms = []; if (function_exists('wpforms')) { $formItems = wpforms()->form->get(''); foreach ($formItems as $form) { $formData = json_decode($form->post_content, true); $forms[] = [ 'ID' => $form->ID, 'name' => $form->post_title, 'fields' => ArrayHelper::get($formData, 'fields'), 'settings' => ArrayHelper::get($formData, 'settings'), ]; } } return $forms; } public function getFields($form) { $fluentFields = []; $fields = ArrayHelper::get($form, 'fields'); foreach ($fields as $field) { if ( "pagebreak" == ArrayHelper::get($field, 'type') && $position = ArrayHelper::get($field, 'position') ) { if ("top" == $position || "bottom" == $position) { continue; } } $fieldType = ArrayHelper::get($this->fieldTypeMap(), ArrayHelper::get($field, 'type')); $args = $this->formatFieldData($field, $fieldType); if ('select' == $fieldType && ArrayHelper::isTrue($field, 'multiple')) { $fieldType = 'multi_select'; } if ($fieldData = $this->getFluentClassicField($fieldType, $args)) { $fluentFields[$field['id']] = $fieldData; } else { $this->unSupportFields[] = ArrayHelper::get($field, 'label'); } } $submitBtn = $this->getSubmitBttn([ 'uniqElKey' => 'button_' . time(), 'label' => ArrayHelper::get($form, 'settings.submit_text'), 'class' => ArrayHelper::get($form, 'settings.submit_class'), ]); if (empty($fluentFields)) { return false; } $returnData = [ 'fields' => $fluentFields, 'submitButton' => $submitBtn ]; if ($this->hasStep && defined('FLUENTFORMPRO')) { $returnData['stepsWrapper'] = $this->getStepWrapper(); $this->hasStep = false; } return $returnData; } public function getSubmitBttn($args) { return [ 'uniqElKey' => $args['uniqElKey'], 'element' => 'button', 'attributes' => [ 'type' => 'submit', 'class' => $args['class'] ], 'settings' => [ 'container_class' => '', 'align' => 'left', 'button_style' => 'default', 'button_size' => 'md', 'color' => '#ffffff', 'background_color' => '#409EFF', 'button_ui' => [ 'type' => ArrayHelper::get($args, 'type', 'default'), 'text' => $args['label'], 'img_url' => ArrayHelper::get($args, 'img_url', '') ], 'normal_styles' => [], 'hover_styles' => [], 'current_state' => "normal_styles" ], 'editor_options' => [ 'title' => 'Submit Button', ], ]; } protected function getFormName($form) { return $form['name']; } protected function getFormMetas($form) { $formObject = new Form(wpFluentForm()); $defaults = $formObject->getFormsDefaultSettings(); $confirmationsFormatted = $this->getConfirmations($form, $defaults['confirmation']); $defaultConfirmation = array_pop($confirmationsFormatted); $notifications = $this->getNotifications($form); $metas = [ 'formSettings' => [ 'confirmation' => $defaultConfirmation, 'restrictions' => $defaults['restrictions'], 'layout' => $defaults['layout'], ], 'advancedValidationSettings' => $this->getAdvancedValidation(), 'delete_entry_on_submission' => 'no', 'notifications' => $notifications, 'confirmations' => $confirmationsFormatted, ]; if ($webhooks = $this->getWebhooks($form)) { $metas['webhooks'] = $webhooks; } return $metas; } protected function getFormId($form) { return $form['ID']; } protected function getForm($id) { if (function_exists('wpforms') && $form = wpforms()->form->get($id)) { $formData = json_decode($form->post_content, true); return [ 'ID' => $form->ID, 'name' => $form->post_title, 'fields' => ArrayHelper::get($formData, 'fields'), 'settings' => ArrayHelper::get($formData, 'settings'), ]; } return false; } public function getEntries($formId) { if(!wpforms()->is_pro()){ wp_send_json([ 'message' => __("Entries not available in WPForms Lite",'fluentform') ], 200); } $form = $this->getForm($formId); if (empty($form)) { return false; } $formFields = $this->getFields($form); if ($formFields) { $formFields = $formFields['fields']; } $args = [ 'form_id' => $form['ID'], 'order' => 'asc', ]; $totalEntries = wpforms()->entry->get_entries($args, true);// 2nd parameter 'true' means return total entries count $args['number'] = apply_filters('fluentform/entry_migration_max_limit', static::DEFAULT_ENTRY_MIGRATION_MAX_LIMIT, $this->key, $totalEntries, $formId); $submissions = wpforms()->entry->get_entries($args); $entries = []; if (!$submissions || !is_array($submissions)) { return $entries; } foreach ($submissions as $submission) { $fields = \json_decode( $submission->fields , true); if (!$fields) { continue; } $entry = []; foreach ($fields as $fieldId => $field) { if (!isset($formFields[$fieldId])) { continue; } $formField = $formFields[$fieldId]; $name = ArrayHelper::get($formField, 'attributes.name'); if (!$name) { continue; } $type = ArrayHelper::get($formField, 'element'); // format entry value by field name $finalValue = ArrayHelper::get($field, 'value'); if ("input_name" == $type) { $finalValue = $this->getSubmissionNameValue($formField['fields'], $field); } elseif ( "input_checkbox" == $type || ( "select" == $type && ArrayHelper::isTrue($formField, 'attributes.multiple') ) ) { $finalValue = explode("\n", $finalValue); } elseif ("address" == $type) { $finalValue = [ "address_line_1" => ArrayHelper::get($field, 'address1', ''), "address_line_2" => ArrayHelper::get($field, 'address2', ''), "city" => ArrayHelper::get($field, 'city', ''), "state" => ArrayHelper::get($field, 'state', ''), "zip" => ArrayHelper::get($field, 'postal', ''), "country" => ArrayHelper::get($field, 'country', ''), ]; } elseif ("input_file" == $type && $value = ArrayHelper::get($field, 'value')) { $finalValue = $this->migrateFilesAndGetUrls($value); } if (null == $finalValue) { $finalValue = ""; } $entry[$name] = $finalValue; } if ($submission->date) { $entry['created_at'] = $submission->date; } if ($submission->date_modified) { $entry['updated_at'] = $submission->date_modified; } if ($submission->starred) { $entry['is_favourite'] = $submission->starred; } if ($submission->viewed) { $entry['status'] = 'read'; } $entries[] = $entry; } return $entries; } protected function getSubmissionNameValue($nameFields, $submissionField) { $finalValue = []; foreach ($nameFields as $key => $field) { if ($name = ArrayHelper::get($field, 'attributes.name')) { $value = ""; if ("first_name" == $key) { $value = ArrayHelper::get($submissionField, 'first'); } elseif ("middle_name" == $key) { $value = ArrayHelper::get($submissionField, 'middle'); } elseif ("last_name" == $key) { $value = ArrayHelper::get($submissionField, 'last'); } $finalValue[$name] = $value; } } return $finalValue; } public function getFormsFormatted() { $forms = []; $items = $this->getForms(); foreach ($items as $item) { $forms[] = [ 'name' => $item['name'], 'id' => $item['ID'], 'imported_ff_id' => $this->isAlreadyImported($item), ]; } return $forms; } public function exist() { return !!defined('WPFORMS_VERSION'); } protected function formatFieldData($field, $type) { $args = [ 'uniqElKey' => $field['id'] . '-' . time(), 'index' => $field['id'], 'required' => ArrayHelper::isTrue($field, 'required'), 'label' => ArrayHelper::get($field, 'label', ''), 'name' => ArrayHelper::get($field, 'type') . '_' . $field['id'], 'placeholder' => ArrayHelper::get($field, 'placeholder', ''), 'class' => '', 'value' => ArrayHelper::get($field, 'default_value') ?: "", 'help_message' => ArrayHelper::get($field, 'description', ''), 'container_class' => ArrayHelper::get($field, 'css', ''), ]; switch ($type) { case 'input_text': if (ArrayHelper::isTrue($field, 'limit_enabled')) { $max_length = ArrayHelper::get($field, 'limit_count', ''); $mode = ArrayHelper::get($field, 'limit_mode', ''); if ("words" == $mode && $max_length) { $max_length = (int)$max_length * 6; // average 6 characters is a word } $args['maxlength'] = $max_length; } break; case 'phone': $args['valid_phone_number'] = "1"; break; case 'input_name': $args['input_name_args'] = []; $fields = ArrayHelper::get($field, 'format'); if (!$fields) { break; } $fields = explode('-', $fields); $required = ArrayHelper::isTrue($field, 'required'); foreach ($fields as $subField) { if ($subField == 'simple') { $label = $args['label']; $subName = 'first_name'; $hideLabel = ArrayHelper::isTrue($field, 'label_hide'); } else { $subName = $subField . '_name'; $label = ucfirst($subField); $hideLabel = ArrayHelper::isTrue($field, 'sublabel_hide'); } $placeholder = ArrayHelper::get($field, $subField . "_placeholder" , ''); $default = ArrayHelper::get($field, $subField . "_default" , ''); $args['input_name_args'][$subName] = [ "visible" => true, "required" => $required, "name" => $subName, "default" => $default, ]; if (!$hideLabel) { $args['input_name_args'][$subName]['label'] = $label; } if ($placeholder) { $args['input_name_args'][$subName]['placeholder'] = $placeholder; } } break; case 'select': case 'input_radio': case 'input_checkbox': list($options, $defaultVal) = $this->getOptions(ArrayHelper::get($field, 'choices', [])); $args['options'] = $options; $args['randomize_options'] = ArrayHelper::isTrue($field, 'random'); if ($type == 'select') { $isMulti = ArrayHelper::isTrue($field, 'multiple'); if ($isMulti) { $args['multiple'] = true; $args['value'] = $defaultVal; } else { $args['value'] = array_shift($defaultVal) ?: ""; } } elseif ($type == 'input_checkbox') { $args['value'] = $defaultVal; } elseif ($type == 'input_radio') { $args['value'] = array_shift($defaultVal) ?: ""; } break; case 'input_date': $format = ArrayHelper::get($field, 'format'); if ("date" == $format) { $format = ArrayHelper::get($field, 'date_format', 'd/m/Y'); } elseif ("time" == $format) { $format = ArrayHelper::get($field, 'time_format', 'H:i'); } else { $format = ArrayHelper::get($field, 'date_format', 'd/m/Y') . ' ' .ArrayHelper::get($field, 'time_format', 'H:i'); } $args['format'] = $format; break; case 'rangeslider': $args['step'] = $field['step']; $args['min'] = $field['min']; $args['max'] = $field['max']; break; case 'ratings': $number = ArrayHelper::get($field, 'scale', 5); $args['options'] = array_combine(range(1, $number), range(1, $number)); break; case 'input_file': $args['allowed_file_types'] = $this->getFileTypes($field, 'extensions'); $args['max_size_unit'] = 'MB'; $max_size = ArrayHelper::get($field, 'max_size') ?: 1; $args['max_file_size'] = ceil( $max_size * 1048576); // 1MB = 1048576 Bytes $args['max_file_count'] = ArrayHelper::get($field, 'max_file_number', 1); $args['upload_btn_text'] = ArrayHelper::get($field, 'label', 'File Upload'); break; case 'custom_html': $args['html_codes'] = ArrayHelper::get($field, 'code', ''); break; case 'form_step': $this->hasStep = true; break; case 'address': $args['address_args'] = $this->getAddressArgs($field, $args); break; case 'rich_text_input': $size = ArrayHelper::get($field, 'size'); if ('small' == $size) { $rows = 2; } elseif ('large' == $size) { $rows = 5; } else { $rows =3; } $args['rows'] = $rows; break; case 'section_break': $args['section_break_desc'] = ArrayHelper::get($field, 'description'); break; case 'input_number': $args['min'] = ''; $args['max'] = ''; break; default : break; } return $args; } private function fieldTypeMap() { return [ 'email' => 'email', 'text' => 'input_text', 'name' => 'input_name', 'hidden' => 'input_hidden', 'textarea' => 'input_textarea', 'select' => 'select', 'radio' => 'input_radio', 'checkbox' => 'input_checkbox', 'number' => 'input_number', 'layout' => 'container', 'date-time' => 'input_date', 'address' => 'address', 'password' => 'input_password', 'html' => 'custom_html', 'rating' => 'ratings', 'divider' => 'section_break', 'url' => 'input_url', 'multi_select' => 'multi_select', 'number-slider' => 'rangeslider', 'richtext' => 'rich_text_input', 'phone' => 'phone', 'file-upload' => 'input_file', 'pagebreak' => 'form_step', ]; } private function getConfirmations($form, $defaultValues) { $confirmations = ArrayHelper::get($form, 'settings.confirmations'); $confirmationsFormatted = []; if (!empty($confirmations)) { foreach ($confirmations as $confirmation) { $type = $confirmation['type']; if ($type == 'redirect') { $redirectTo = 'customUrl'; } else { if ($type == 'page') { $redirectTo = 'customPage'; } else { $redirectTo = 'samePage'; } } $confirmationsFormatted[] = wp_parse_args( [ 'name' => ArrayHelper::get($confirmation, 'name'), 'messageToShow' => $this->getResolveShortcode(ArrayHelper::get($confirmation, 'message'), $form), 'samePageFormBehavior' => 'hide_form', 'redirectTo' => $redirectTo, 'customPage' => intval(ArrayHelper::get($confirmation, 'page')), 'customUrl' => ArrayHelper::get($confirmation, 'redirect'), 'active' => true, 'conditionals' => $this->getConditionals($confirmation, $form) ], $defaultValues ); } } return $confirmationsFormatted; } private function getConditionals($notification, $form) { $conditionals = ArrayHelper::get($notification, 'conditionals', []); $status = ArrayHelper::isTrue($notification, 'conditional_logic'); if ('stop' == ArrayHelper::get($notification, 'conditional_type')) { $status = false; } $type = 'all'; $conditions = []; if ($conditionals) { if (count($conditionals) > 1) { $type = 'any'; $conditionals = array_filter(array_column($conditionals, 0)); } else { $conditionals = ArrayHelper::get($conditionals, 0, []); } foreach ($conditionals as $condition) { $fieldId = ArrayHelper::get($condition, 'field'); list ($fieldName, $fieldType) = $this->getFormFieldName($fieldId, $form); if (!$fieldName) { continue; } if ($operator = $this->getResolveOperator(ArrayHelper::get($condition, 'operator', ''))) { $value = ArrayHelper::get($condition, 'value', ''); if ( in_array($fieldType, ['select', 'multi_select', 'input_radio', 'input_checkbox']) && $choices = ArrayHelper::get($form, "fields.$fieldId.choices") ) { $choiceValue = ArrayHelper::get($choices, "$value.value", ''); if (!$choiceValue) { $choiceValue = ArrayHelper::get($choices, "$value.label", ''); } $value = $choiceValue; } $conditions[] = [ 'field' => $fieldName, 'operator' => $operator, 'value' => $value ]; } } } return [ "status" => $status, "type" => $type, 'conditions' => $conditions ]; } private function getAdvancedValidation(): array { return [ 'status' => false, 'type' => 'all', 'conditions' => [ [ 'field' => '', 'operator' => '=', 'value' => '' ] ], 'error_message' => '', 'validation_type' => 'fail_on_condition_met' ]; } private function getNotifications($form) { $notificationsFormatted = []; $enabled = ArrayHelper::isTrue($form, 'settings.notification_enable'); $notifications = ArrayHelper::get($form, 'settings.notifications'); foreach ($notifications as $notification) { $email = ArrayHelper::get($notification, 'email', ''); $sendTo = [ 'type' => 'email', 'email' => '{wp.admin_email}', 'field' => '', 'routing' => [], ]; if ($this->isFormField($email)) { list($fieldName) = $this->getFormFieldName($email, $form); $sendTo['type'] = 'field'; $sendTo['field'] = $fieldName; $sendTo['email'] = ''; } else { if ($email) { $sendTo['email'] = $this->getResolveShortcode($email, $form); } } $message = $this->getResolveShortcode(ArrayHelper::get($notification, 'message', ''), $form); $replyTo = $this->getResolveShortcode(ArrayHelper::get($notification, 'replyto', ''), $form); $notificationsFormatted[] = [ 'sendTo' => $sendTo, 'enabled' => $enabled, 'name' => ArrayHelper::get($notification, 'notification_name', 'Admin Notification'), 'subject' => $this->getResolveShortcode(ArrayHelper::get($notification, 'subject', 'Notification'), $form), 'to' => $sendTo['email'], 'replyTo' => $replyTo ?: '{wp.admin_email}', 'message' => str_replace("\n", "
    ", $message), 'fromName' => $this->getResolveShortcode(ArrayHelper::get($notification, 'sender_name', ''), $form), 'fromEmail' => $this->getResolveShortcode(ArrayHelper::get($notification, 'sender_address', ''), $form), 'bcc' => '', 'conditionals' => $this->getConditionals($notification, $form) ]; } return $notificationsFormatted; } /** * Get webhooks feeds * * @param array $form * @return array */ private function getWebhooks($form) { $webhooksFeeds = []; foreach (ArrayHelper::get($form, 'settings.webhooks', []) as $webhook) { list($headers, $headersKeysStatus, $headersValuesStatus) = $this->getResolveMappingFields(ArrayHelper::get($webhook, 'headers', []), $form); $body = ArrayHelper::get($webhook, 'body', []); // ff webhook body parameter doesn't support custom type fields // remove custom type fields, wpforms add "custom_" prefix on key for custom type value $body = array_filter($body, function ($key) { return !(strpos($key, 'custom_') !== false); }, ARRAY_FILTER_USE_KEY); list($body) = $this->getResolveMappingFields($body, $form); $webhooksFeeds[] = [ 'name' => ArrayHelper::get($webhook, 'name', ''), 'request_url' => ArrayHelper::get($webhook, 'url', ''), 'with_header' => count($headers) > 0 ? 'yup' : 'nop', 'request_method' => strtoupper(ArrayHelper::get($webhook, 'method', 'GET')), 'request_format' => strtoupper(ArrayHelper::get($webhook, 'format', 'FORM')), 'request_body' => 'selected_fields', 'custom_header_keys' => $headersKeysStatus, 'custom_header_values' => $headersValuesStatus, 'fields' => $body, 'request_headers' => $headers, 'conditionals' => $this->getConditionals($webhook, $form), 'enabled' => ArrayHelper::isTrue($form, 'settings.webhooks_enable') ]; } return $webhooksFeeds; } /** * Get resolved mapping fields * * @param array $fields * @param array $form * @return array */ private function getResolveMappingFields($fields, $form) { $mapping = []; $mappingKeysStatus = []; $mappingValuesStatus = []; foreach ($fields as $key => $value) { // wpforms add "custom_" prefix on key for custom type value if ((strpos($key, 'custom_') !== false) || is_array($value)) { $key = str_replace('custom_', '', $key); // ff not support secure value, when value is secure decrypt it's by wpforms helper if (ArrayHelper::isTrue($value, 'secure') && method_exists('\WPForms\Helpers\Crypto', 'decrypt')) { $value = ArrayHelper::get($value, 'value', ''); if ($decryptValue = \WPForms\Helpers\Crypto::decrypt($value)) { $value = $decryptValue; } } else { $value = ArrayHelper::get($value, 'value', ''); } $mappingKeysStatus[] = true; $mappingValuesStatus[] = true; } else { list ($fieldName) = $this->getFormFieldName($value, $form); if (!$fieldName) { continue; } $value = "{inputs.$fieldName}"; $mappingKeysStatus[] = false; $mappingValuesStatus[] = false; } $mapping[] = [ 'key' => $key, 'value' => $value ]; } return [$mapping, $mappingKeysStatus, $mappingValuesStatus]; } /** * Get bool value depend on shortcode is form inputs or not * * @param string $string * @return boolean */ private function isFormField($string) { return (strpos($string, '{field_id=') !== false); } /** * Get form field name in fluentforms format * * @param string $str * @param array $form * @return array */ private function getFormFieldName($str, $form) { preg_match('/\d+/', $str, $fieldId); $field = ArrayHelper::get($form, 'fields.' . ArrayHelper::get($fieldId, 0, '0')); $fieldType = ArrayHelper::get($this->fieldTypeMap(), ArrayHelper::get($field, 'type')); if (in_array(ArrayHelper::get($field, 'label'), $this->unSupportFields)) { return ['', $fieldType]; } $fieldName = ArrayHelper::get($this->formatFieldData($field, $fieldType), 'name', ''); return [$fieldName, $fieldType]; } /** * Get shortcode in fluentforms format * @return array */ private function dynamicShortcodes() { return [ '{all_fields}' => '{all_data}', '{admin_email}' => '{wp.admin_email}', '{user_ip}' => '{ip}', '{date format="m/d/Y"}' => '{date.d/m/Y}', '{page_id}' => '{embed_post.ID}', '{page_title}' => '{embed_post.post_title}', '{page_url}' => '{embed_post.permalink}', '{user_id}' => '{user.ID}', '{user_first_name}' => '{user.first_name}', '{user_last_name}' => '{user.last_name}', '{user_display}' => '{user.display_name}', '{user_full_name}' => '{user.first_name} {user.last_name}', '{user_email}' => '{user.user_email}', '{entry_id}' => '{submission.id}', '{entry_date format="d/m/Y"}' => '{submission.created_at}', '{entry_details_url}' => '{submission.admin_view_url}', '{url_referer}' => '{http_referer}' ]; } /** * Resolve shortcode in fluentforms format * * @param string $message * @param array $form * @return string */ private function getResolveShortcode($message, $form) { if (!$message) { return $message; } preg_match_all('/{(.*?)}/', $message, $matches); if (!$matches[0]) { return $message; } $shortcodes = $this->dynamicShortcodes(); foreach ($matches[0] as $match) { $replace = ''; if (isset($shortcodes[$match])) { $replace = $shortcodes[$match]; } elseif ($this->isFormField($match)) { list($fieldName) = $this->getFormFieldName($match, $form); if ($fieldName) { $replace = "{inputs.$fieldName}"; } } elseif (strpos($match, 'query_var') !== false) { preg_match('#key=["\'](\S+)["\']#', $match, $result); if ($key = ArrayHelper::get($result, 1)) { $replace = "{get.$key}"; } } $message = str_replace($match, $replace, $message); } return $message; } public function getOptions($options) { $formattedOptions = []; $defaults = []; foreach ($options as $key => $option) { $formattedOption = [ 'label' => ArrayHelper::get($option, 'label', 'Item -' . $key), 'value' => !empty(ArrayHelper::get($option, 'value')) ? ArrayHelper::get($option, 'value') : ArrayHelper::get($option, 'label', 'Item -' . $key), 'image' => ArrayHelper::get($option, 'image'), 'calc_value' => '', 'id' => $key, ]; if (ArrayHelper::isTrue($option, 'default')) { $defaults[] = $formattedOption['value']; } $formattedOptions[] = $formattedOption; } return [$formattedOptions, $defaults]; } /** * @return array */ private function getStepWrapper() { return [ 'stepStart' => [ 'element' => 'step_start', 'attributes' => [ 'id' => '', 'class' => '', ], 'settings' => [ 'progress_indicator' => 'progress-bar', 'step_titles' => [], 'disable_auto_focus' => 'no', 'enable_auto_slider' => 'no', 'enable_step_data_persistency' => 'no', 'enable_step_page_resume' => 'no', ], 'editor_options' => [ 'title' => 'Start Paging' ], ], 'stepEnd' => [ 'element' => 'step_end', 'attributes' => [ 'id' => '', 'class' => '', ], 'settings' => [ 'prev_btn' => [ 'type' => 'default', 'text' => 'Previous', 'img_url' => '' ] ], 'editor_options' => [ 'title' => 'End Paging' ], ] ]; } /** * @param array $field * @return array[] */ private function getAddressArgs($field, $args) { if ('us' == ArrayHelper::get($field, 'scheme')) { $field['country_default'] = 'US'; } $hideSubLabel = ArrayHelper::isTrue($field, 'sublabel_hide'); $name = ArrayHelper::get($args, 'name', 'address'); return [ 'address_line_1' => [ 'name' => $name . '_address_line_1', 'default' => ArrayHelper::get($field, 'address1_default', ''), 'placeholder' => ArrayHelper::get($field, 'address1_placeholder', ''), 'label' => $hideSubLabel ? '' : 'Address Line 1', 'visible' => true, ], 'address_line_2' => [ 'name' => $name . '_address_line_2', 'default' => ArrayHelper::get($field, 'address2_default', ''), 'placeholder' => ArrayHelper::get($field, 'address2_placeholder', ''), 'label' => $hideSubLabel ? '' : 'Address Line 2', 'visible' => !ArrayHelper::isTrue($field, 'address2_hide'), ], 'city' => [ 'name' => $name . '_city', 'default' => ArrayHelper::get($field, 'city_default', ''), 'placeholder' => ArrayHelper::get($field, 'city_placeholder', ''), 'label' => $hideSubLabel ? '' : 'City', 'visible' => true, ], 'state' => [ 'name' => $name . '_state', 'default' => ArrayHelper::get($field, 'state_default', ''), 'placeholder' => ArrayHelper::get($field, 'state_placeholder', ''), 'label' => $hideSubLabel ? '' : 'State', 'visible' => true, ], 'zip' => [ 'name' => $name . '_zip', 'default' => ArrayHelper::get($field, 'postal_default', ''), 'placeholder' => ArrayHelper::get($field, 'postal_placeholder', ''), 'label' => $hideSubLabel ? '' : 'Zip', 'visible' => !ArrayHelper::isTrue($field, 'postal_hide'), ], 'country' => [ 'name' => $name . '_country', 'default' => ArrayHelper::get($field, 'country_default', ''), 'placeholder' => ArrayHelper::get($field, 'country_placeholder', ''), 'label' => $hideSubLabel ? '' : 'Country', 'visible' => !ArrayHelper::isTrue($field, 'country_hide'), ], ]; } } app/Services/Migrator/Classes/ContactForm7Migrator.php000064400000047204147600120010017012 0ustar00key = 'contactform7'; $this->title = 'Contact Form 7'; $this->shortcode = 'contact_form_7'; } public function exist() { return !!defined('WPCF7_PLUGIN'); } protected function getForms() { $forms = []; $postItems = get_posts(['post_type' => 'wpcf7_contact_form', 'posts_per_page' => -1]); foreach ($postItems as $form) { $forms[] = [ 'ID' => $form->ID, 'name' => $form->post_title, ]; } return $forms; } public function getFields($form) { $formPostMeta = get_post_meta($form['ID'], '_form', true); $formMetaDataArray = preg_split('/\r\n|\r|\n/', $formPostMeta); //remove all label and empty line $formattedArray = $this->removeLabelsAndNewLine($formMetaDataArray); //format array with field label and remove quiz field $fieldStringArray = $this->formatFieldArray($formattedArray); // format fields as fluent forms field return $this->formatAsFluentField($fieldStringArray); } public function getSubmitBttn($args) { return [ 'uniqElKey' => 'submit-' . time(), 'element' => 'button', 'attributes' => [ 'type' => 'submit', 'class' => '', 'id' => '' ], 'settings' => [ 'align' => 'left', 'button_style' => 'default', 'container_class' => '', 'help_message' => '', 'background_color' => '#1a7efb', 'button_size' => 'md', 'color' => '#ffffff', 'button_ui' => [ 'type' => 'default', 'text' => $args['label'], 'img_url' => '' ], 'normal_styles' => [ 'backgroundColor' => '#1a7efb', 'borderColor' => '#1a7efb', 'color' => '#ffffff', 'borderRadius' => '', 'minWidth' => '' ], 'hover_styles' => [ 'backgroundColor' => '#1a7efb', 'borderColor' => '#1a7efb', 'color' => '#ffffff', 'borderRadius' => '', 'minWidth' => '' ], 'current_state' => "normal_styles" ], 'editor_options' => [ 'title' => 'Submit Button', ], ]; } private function fieldTypeMap() { return [ 'email' => 'email', 'text' => 'input_text', 'url' => 'input_url', 'tel' => 'phone', 'textarea' => 'input_textarea', 'number' => 'input_number', 'range' => 'rangeslider', 'date' => 'input_date', 'checkbox' => 'input_checkbox', 'radio' => 'input_radio', 'select' => 'select', 'multi_select' => 'multi_select', 'file' => 'input_file', 'acceptance' => 'terms_and_condition' ]; } protected function formatFieldData($args, $type) { switch ($type) { case 'input_number': $args['min'] = ArrayHelper::get($args, 'min', 0); $args['max'] = ArrayHelper::get($args, 'max'); break; case 'rangeslider': $args['min'] = ArrayHelper::get($args, 'min', 0); $args['max'] = ArrayHelper::get($args, 'max', 10); $args['step'] = ArrayHelper::get($args, 'step',1); break; case 'input_date': $args['format'] = "Y-m-d H:i"; break; case 'select': case 'input_radio': case 'input_checkbox': list($options, $defaultVal) = $this->getOptions(ArrayHelper::get($args, 'choices', []), ArrayHelper::get($args, 'default', '') );; $args['options'] = $options; if ($type == 'select') { $isMulti = ArrayHelper::isTrue($args, 'multiple'); if ($isMulti) { $args['multiple'] = true; $args['value'] = $defaultVal; } else { $args['value'] = is_array($defaultVal) ? array_shift($defaultVal) : ""; } } elseif ($type == 'input_checkbox') { $args['value'] = $defaultVal; } elseif ($type == 'input_radio') { $args['value'] = is_array($defaultVal) ? array_shift($defaultVal) : ""; } break; case 'input_file': $args['allowed_file_types'] = $this->getFileTypes($args, 'allowed_file_types'); $args['max_size_unit'] = ArrayHelper::get($args, 'max_size_unit'); $max_size = ArrayHelper::get($args, 'max_file_size') ?: 1; if ($args['max_size_unit'] === 'MB') { $args['max_file_size'] = ceil($max_size * 1048576); // 1MB = 1048576 Bytes } $args['max_file_count'] = '1'; $args['upload_btn_text'] = 'File Upload'; break; case 'terms_and_condition': if (ArrayHelper::get($args, 'tnc_html') !== '') { $args['tnc_html'] = ArrayHelper::get($args, 'tnc_html', 'I have read and agree to the Terms and Conditions and Privacy Policy.' ); $args['required'] = true; } break; default : break; } return $args; } protected function getOptions($options, $default) { $formattedOptions = []; $defaults = []; foreach ($options as $key => $option) { $formattedOption = [ 'label' => $option, 'value' => $option, 'image' => '', 'calc_value' => '', 'id' => $key + 1, ]; if (strpos($default, '_') !== false) { $defaults = explode('_', $default); foreach ($defaults as $defaultValue) { if ($formattedOption['id'] == $defaultValue) { $defaults[] = $formattedOption['value']; } } } else { $defaults = $default; } $formattedOptions[] = $formattedOption; } return [$formattedOptions, $defaults]; } protected function getFileTypes($field, $arg) { // All Supported File Types in Fluent Forms $allFileTypes = [ "image/*|jpg|jpeg|gif|png|bmp", "audio/*|mp3|wav|ogg|oga|wma|mka|m4a|ra|mid|midi|mpga", "video/*|avi|divx|flv|mov|ogv|mkv|mp4|m4v|mpg|mpeg|mpe|video/quicktime|qt", "pdf", "text/*|doc|ppt|pps|xls|mdb|docx|xlsx|pptx|odt|odp|ods|odg|odc|odb|odf|rtf|txt", "zip|gz|gzip|rar|7z", "exe", "csv" ]; $formattedTypes = explode('|', ArrayHelper::get($field, $arg, '')); $fileTypeOptions = []; foreach ($formattedTypes as $format) { foreach ($allFileTypes as $fileTypes) { if (!empty($format) && strpos($fileTypes, $format) !== false) { if (strpos($fileTypes, '/*|') !== false) { $fileTypes = explode('/*|', $fileTypes)[1]; } $fileTypeOptions[] = $fileTypes; } } } return array_unique($fileTypeOptions); } protected function getFormName($form) { return $form['name']; } protected function getFormMetas($form) { $formObject = new Form(wpFluentForm()); $defaults = $formObject->getFormsDefaultSettings(); return [ 'formSettings' => [ 'confirmation' => ArrayHelper::get($defaults, 'confirmation'), 'restrictions' => ArrayHelper::get($defaults, 'restrictions'), 'layout' => ArrayHelper::get($defaults, 'layout'), ], 'advancedValidationSettings' => $this->getAdvancedValidation(), 'delete_entry_on_submission' => 'no', 'notifications' => $this->getNotifications(), 'step_data_persistency_status' => 'no', 'form_save_state_status' => 'no' ]; } protected function getFormId($form) { return $form['ID']; } public function getFormsFormatted() { $forms = []; $items = $this->getForms(); foreach ($items as $item) { $forms[] = [ 'name' => $item['name'], 'id' => $item['ID'], 'imported_ff_id' => $this->isAlreadyImported($item), ]; } return $forms; } private function getNotifications() { return [ 'name' => __('Admin Notification Email', 'fluentform'), 'sendTo' => [ 'type' => 'email', 'email' => '{wp.admin_email}', 'field' => '', 'routing' => [], ], 'fromName' => '', 'fromEmail' => '', 'replyTo' => '', 'bcc' => '', 'subject' => __('New Form Submission', 'fluentform'), 'message' => '

    {all_data}

    This form submitted at: {embed_post.permalink}

    ', 'conditionals' => [], 'enabled' => false ]; } private function getAdvancedValidation() { return [ 'status' => false, 'type' => 'all', 'conditions' => [ [ 'field' => '', 'operator' => '=', 'value' => '' ] ], 'error_message' => '', 'validation_type' => 'fail_on_condition_met' ]; } private function removeLabelsAndNewLine($formMetaDataArray) { $formattedArray = []; foreach ($formMetaDataArray as $formMetaString) { if (!empty($formMetaString)) { if (strpos($formMetaString, '') !== false) { $formMetaString = trim(str_replace([''], '', $formMetaString)); } $formattedArray[] = $formMetaString; } } return $formattedArray; } private function formatFieldArray($formattedArray) { $fieldStringArray = []; foreach ($formattedArray as $formattedKey => &$formattedValue) { preg_match_all('/\[[^\]]*\]/', $formattedValue, $fieldStringMatches); $fieldString = isset($fieldStringMatches[0][0]) ? $fieldStringMatches[0][0] : ''; if (preg_match('/\[(.*?)\](.*?)\[.*?\]/', $formattedValue, $withoutBracketMatches)) { $withoutBracketString = isset($withoutBracketMatches[2]) ? trim($withoutBracketMatches[2]) : ''; $fieldString = str_replace(']', ' "' . $withoutBracketString . '"]', $fieldString); } if (strpos($formattedValue, '[quiz') !== 0) { if (strpos($formattedValue, '[') === false) { if ( isset($formattedArray[$formattedKey + 1]) && strpos($formattedArray[$formattedKey + 1], '[') !== false ) { $fieldStringArray[] = $formattedValue . $formattedArray[$formattedKey + 1]; unset($formattedArray[$formattedKey + 1]); } } else { $fieldStringArray[] = $fieldString; unset($formattedArray[$formattedKey]); } } } return $fieldStringArray; } private function formatAsFluentField($fieldStringArray) { $fluentFields = []; $submitBtn = []; foreach ($fieldStringArray as $fieldKey => &$fieldValue) { $fieldLabel = ''; $fieldPlaceholder = ''; $fieldAutoComplete = ''; $fieldMinLength = ''; $fieldMaxLength = ''; $fieldSize = ''; $fieldStep = ''; $fieldMultipleValues = []; $fieldMin = ''; $fieldMax = ''; $fieldDefault = ''; $fieldMultiple = false; $fieldFileTypes = ''; $fieldMaxFileSize = ''; $fieldFileSizeUnit = 'KB'; $tncHtml = ''; $fieldString = ''; if (preg_match('/^(.*?)\[/', $fieldValue, $matches)) { $fieldLabel = isset($matches[1]) ? $matches[1] : ''; } if (preg_match('/\[([^]]+)\]/', $fieldValue, $matches)) { $fieldString = isset($matches[1]) ? $matches[1] : ''; } $words = preg_split('/\s+/', $fieldString); $fieldRequired = isset($words[0]) && strpos($words[0], '*') !== false ?? true; $fieldElement = isset($words[0]) ? trim($words[0], '*') : ''; $fieldName = isset($words[1]) ? trim($words[1]) : ''; if ($fieldElement === 'submit') { preg_match_all('/(["\'])(.*?)\1/', $fieldString, $matches); $submitBtn = $this->getSubmitBttn([ 'uniqElKey' => $fieldElement . '-' . time(), 'label' => isset($matches[2][0]) ? $matches[2][0] : 'Submit' ]); continue; } if ($fieldElement === 'select' && strpos($fieldString, 'multiple') !== false) { $fieldMultiple = true; } if (preg_match('/min:([a-zA-Z0-9]+)/', $fieldString, $matches)) { $fieldMin = isset($matches[1]) ? $matches[1] : ''; } if (preg_match('/max:([a-zA-Z0-9]+)/', $fieldString, $matches)) { $fieldMax = isset($matches[1]) ? $matches[1] : ''; } if (preg_match('/minlength:([a-zA-Z0-9]+)/', $fieldString, $matches)) { $fieldMinLength = isset($matches[1]) ? $matches[1] : ''; } if (preg_match('/maxlength:([a-zA-Z0-9]+)/', $fieldString, $matches)) { $fieldMaxLength = isset($matches[1]) ? $matches[1] : ''; } if (preg_match('/size:([a-zA-Z0-9]+)/', $fieldString, $matches)) { $fieldSize = isset($matches[1]) ? $matches[1] : ''; } if (preg_match('/step:([a-zA-Z0-9]+)/', $fieldString, $matches)) { $fieldStep = isset($matches[1]) ? $matches[1] : ''; } if (preg_match('/(?:placeholder|watermark) "([a-zA-Z0-9]+)"/', $fieldString, $matches)) { $fieldPlaceholder = isset($matches[1]) ? $matches[1] : ''; } if (preg_match('/filetypes:([a-zA-Z0-9|]+)/', $fieldString, $matches)) { $fieldFileTypes = isset($matches[1]) ? $matches[1] : ''; } if (preg_match_all('/(["\'])(.*?)\1/', $fieldString, $matches)) { if (isset($matches[2])) { if (count($matches[2]) > 1) { $fieldMultipleValues = $matches[2]; } else { if (count($matches[2]) === 1) { $fieldAutoComplete = isset($matches[2][0]) ? $matches[2][0] : ''; } } } } if (preg_match('/default:([a-zA-Z0-9]+)/', $fieldString, $matches)) { $fieldDefault = isset($matches[1]) ? $matches[1] : ''; } if (preg_match('/limit:([a-zA-Z0-9]+)/', $fieldString, $matches)) { $fieldMaxFileSize = isset($matches[1]) ? $matches[1] : '1mb'; if (strpos($fieldMaxFileSize, 'mb') !== false) { $fieldFileSizeUnit = 'MB'; } $fieldMaxFileSize = str_replace(['mb', 'kb'], '', $fieldMaxFileSize); } if (preg_match('/autocomplete:([a-zA-Z0-9]+)/', $fieldString, $matches)) { $fieldAutoComplete = isset($matches[1]) ? $matches[1] : ''; } if ($fieldElement === 'acceptance') { $tncHtml = $fieldAutoComplete; } if (!$fieldLabel) { $fieldLabel = $fieldElement; } $fieldType = ArrayHelper::get($this->fieldTypeMap(), $fieldElement); $args = [ 'uniqElKey' => 'el_' . $fieldKey . time(), 'type' => $fieldType, 'index' => $fieldKey, 'required' => $fieldRequired, 'label' => $fieldLabel, 'name' => $fieldName, 'placeholder' => $fieldPlaceholder, 'class' => '', 'value' => $fieldAutoComplete, 'help_message' => '', 'container_class' => '', 'prefix' => '', 'suffix' => '', 'min' => $fieldMin, 'max' => $fieldMax, 'minlength' => $fieldMinLength, 'maxlength' => $fieldMaxLength, 'size' => $fieldSize, 'step' => $fieldStep, 'choices' => $fieldMultipleValues, 'default' => $fieldDefault, 'multiple' => $fieldMultiple, 'allowed_file_types' => $fieldFileTypes, 'max_file_size' => $fieldMaxFileSize, 'max_size_unit' => $fieldFileSizeUnit, 'tnc_html' => $tncHtml ]; $fields = $this->formatFieldData($args, $fieldType); if ($fieldMultiple) { $fieldType = 'multi_select'; } if ($fieldData = $this->getFluentClassicField($fieldType, $fields)) { $fluentFields['fields'][$args['index']] = $fieldData; } } $fluentFields['submitButton'] = $submitBtn; return $fluentFields; } public function getEntries($formId) { if (class_exists('Flamingo_Inbound_Message')) { $post = get_post($formId); $formName = $post->post_name; $allPosts = \Flamingo_Inbound_Message::find(['channel' => $formName]); $entries = []; foreach ($allPosts as $post) { $entries[] = $post->fields; } return $entries; } wp_send_json_error([ 'message' => __("Please install and active Flamingo", 'fluentform') ], 422); } } app/Services/Migrator/Classes/BaseMigrator.php000064400000236241147600120010015357 0ustar00exist()) { wp_send_json_error([ //translators: %s Target Plugin Name 'message' => sprintf(__('%s is not installed.', 'fluentform'), $this->title), ]); } $failed = []; $forms = $this->getForms(); if (!$forms) { wp_send_json_error([ 'message' => __('No forms found!', 'fluentform'), ]); } $insertedForms = []; $refs = get_option('__ff_imorted_forms_map'); $refs = is_array($refs) ? $refs : []; if ($forms && is_array($forms)) { foreach ($forms as $formItem) { $formId = $this->getFormId($formItem); if (!empty($selectedForms) && !in_array($formId, $selectedForms)) { continue; } $formFields = $this->getFields($formItem); if ($formFields) { $formFields = json_encode($formFields); } else { $failed[] = $this->getFormName($formItem); continue; } $form = [ 'title' => $this->getFormName($formItem), 'form_fields' => $formFields, 'status' => 'published', 'has_payment' => 0, 'type' => 'form', 'created_by' => get_current_user_id(), 'conditions' => '', 'appearance_settings' => '' ]; if ($formId = $this->isAlreadyImported($formItem)) { $insertedForms = $this->updateForm($formId, $formFields, $insertedForms); } else { list($insertedForms, $formId) = $this->insertForm($form, $insertedForms, $formItem); } //get metas $metas = $this->getFormMetas($formItem); $this->updateMetas($metas, $formId); $refs[$formId] = [ 'imported_form_id' => $this->getFormId($formItem), 'form_type' => $this->key, ]; } $msg = ''; if (count($failed) > 0) { $msg = "These forms was not imported for invalid data : " . implode(', ', $failed); } if (count($insertedForms) > 0) { update_option('__ff_imorted_forms_map', $refs, 'no'); wp_send_json([ 'status' => true, 'message' => "Your forms has been successfully imported. " . $msg, 'inserted_forms' => array_values($insertedForms), 'unsupported_fields' => array_values(array_unique(array_filter($this->unSupportFields))) ], 200); return; } wp_send_json([ 'message' => "No form is selected " . $msg, ], 200); } wp_send_json([ 'message' => __('Export error, please try again.', 'fluentform') ], 422); } abstract protected function getForms(); abstract protected function getFields($form); abstract protected function getFormName($form); abstract protected function getFormMetas($form); abstract protected function getFormsFormatted(); abstract protected function exist(); public function getFluentClassicField($field, $args = []) { if (!$field) { return; } $defaults = [ 'index' => '', 'uniqElKey' => '', 'required' => false, 'label' => '', 'label_placement' => '', 'admin_field_label' => '', 'name' => '', 'help_message' => '', 'placeholder' => '', 'fields' => [], 'value' => '', 'default' => '', 'maxlength' => '', 'options' => [], 'class' => '', 'format' => '', 'validation_rules' => [], 'conditional_logics' => [], 'enable_image_input' => false, 'calc_value_status' => false, 'dynamic_default_value' => '', 'container_class' => '', 'id' => '', 'number_step' => '', 'step' => '1', 'min' => '0', 'max' => '10', 'mask' => '', 'temp_mask' => '', 'enable_select_2' => 'no', 'is_button_type' => '', 'max_file_count' => '', 'max_file_size' => '', 'upload_btn_text' => '', 'allowed_file_types' => '', 'max_size_unit' => '', 'html_codes' => '', 'section_break_desc' => '', 'tnc_html' => '', 'prefix' => '', 'suffix' => '', 'layout_class' => '', 'input_name_args' => '', 'is_time_enabled' => '', 'address_args' => '', 'rows' => '', 'cols' => '', 'enable_calculation' => false, 'calculation_formula' => '' ]; $args = wp_parse_args($args, $defaults); return ArrayHelper::get(self::defaultFieldConfig($args), $field); } public static function defaultFieldConfig($args) { $defaultElements = [ 'input_name' => [ 'index' => $args['index'], 'element' => 'input_name', 'attributes' => [ 'name' => $args['name'], 'data-type' => 'name-element' ], 'settings' => [ 'container_class' => '', 'admin_field_label' => 'Name', 'conditional_logics' => [], 'label_placement' => 'top' ], 'fields' => [ 'first_name' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => ArrayHelper::get($args, 'input_name_args.first_name.name'), 'value' => ArrayHelper::get($args, 'input_name_args.first_name.default', ''), 'id' => '', 'class' => '', 'placeholder' => ArrayHelper::get($args, 'input_name_args.first_name.placeholder' ,__('First Name', 'fluentform')), 'maxlength' => '', ], 'settings' => [ 'container_class' => '', 'label' => ArrayHelper::get($args, 'input_name_args.first_name.label'), 'help_message' => '', 'visible' => ArrayHelper::isTrue($args, 'input_name_args.first_name.visible'), 'validation_rules' => [ 'required' => [ 'value' => ArrayHelper::isTrue($args, 'input_name_args.first_name.required'), 'message' => __('This field is required', 'fluentform'), ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText' ], ], 'middle_name' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => ArrayHelper::get($args, 'input_name_args.middle_name.name'), 'value' => ArrayHelper::get($args, 'input_name_args.middle_name.default', ''), 'id' => '', 'class' => '', 'placeholder' => ArrayHelper::get($args, 'input_name_args.middle_name.placeholder' , __('Middle Name', 'fluentform')), 'required' => false, 'maxlength' => '', ], 'settings' => [ 'container_class' => '', 'label' => ArrayHelper::get($args, 'input_name_args.middle_name.label'), 'help_message' => '', 'error_message' => '', 'visible' => ArrayHelper::isTrue($args, 'input_name_args.middle_name.visible'), 'validation_rules' => [ 'required' => [ 'value' => ArrayHelper::isTrue($args, 'input_name_args.middle_name.required'), 'message' => __('This field is required', 'fluentform'), ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText' ], ], 'last_name' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => ArrayHelper::get($args, 'input_name_args.last_name.name'), 'value' => ArrayHelper::get($args, 'input_name_args.last_name.default', ''), 'id' => '', 'class' => '', 'placeholder' => ArrayHelper::get($args, 'input_name_args.last_name.placeholder', __('Last Name', 'fluentform')), 'required' => false, 'maxlength' => '', ], 'settings' => [ 'container_class' => '', 'label' => ArrayHelper::get($args, 'input_name_args.last_name.label'), 'help_message' => '', 'error_message' => '', 'visible' => ArrayHelper::isTrue($args, 'input_name_args.last_name.visible'), 'validation_rules' => [ 'required' => [ 'value' => ArrayHelper::isTrue($args, 'input_name_args.last_name.required'), 'message' => __('This field is required', 'fluentform'), ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText' ], ], ], 'editor_options' => [ 'title' => 'Name Fields', 'element' => 'name-fields', 'icon_class' => 'ff-edit-name', 'template' => 'nameFields' ], ], 'input_text' => [ 'index' => $args['index'], 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => $args['name'], 'value' => $args['value'], 'class' => $args['class'], 'id' => $args['id'], 'placeholder' => $args['placeholder'], 'maxlength' => $args['maxlength'], ], 'settings' => [ 'container_class' => $args['container_class'], 'label' => $args['label'], 'label_placement' => $args['label_placement'], 'admin_field_label' => $args['admin_field_label'], 'help_message' => $args['help_message'], 'conditional_logics' => [], 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => 'This field is required' ] ], 'is_unique' => 'no', 'unique_validation_message' => 'This value need to be unique.' ], 'editor_options' => [ 'title' => 'Simple Text', 'icon_class' => 'ff-edit-text', 'template' => 'inputText', ], 'uniqElKey' => $args['uniqElKey'], ], 'input_hidden' => [ 'index' => $args['index'], 'element' => 'input_hidden', 'attributes' => [ 'type' => 'hidden', 'name' => $args['name'], 'value' => $args['value'], ], 'settings' => [ 'admin_field_label' => $args['admin_field_label'], ], 'editor_options' => [ 'title' => __('Hidden Field', 'fluentform'), 'icon_class' => 'ff-edit-hidden-field', 'template' => 'inputHidden', ], 'uniqElKey' => $args['uniqElKey'], ], 'color_picker' => [ 'index' => 15, 'element' => 'color_picker', 'attributes' => [ 'type' => 'text', 'name' => $args['name'], 'value' => $args['value'], 'class' => $args['class'], 'id' => $args['id'], 'placeholder' => $args['placeholder'], ], 'settings' => [ 'container_class' => $args['container_class'], 'label' => $args['label'], 'label_placement' => $args['label_placement'], 'admin_field_label' => $args['admin_field_label'], 'help_message' => $args['help_message'], 'conditional_logics' => [], 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => 'This field is required' ] ], ], 'editor_options' => [ 'title' => 'Color Picker', 'icon_class' => 'ff-edit-tint', 'template' => 'inputText' ], 'uniqElKey' => $args['uniqElKey'], ], 'input_url' => [ 'index' => $args['index'], 'element' => 'input_url', 'attributes' => [ 'type' => 'url', 'name' => $args['name'], 'value' => $args['value'], 'class' => $args['class'], 'id' => $args['id'], 'placeholder' => $args['placeholder'], ], 'settings' => [ 'container_class' => '', 'label' => $args['label'], 'label_placement' => $args['label_placement'], 'admin_field_label' => $args['admin_field_label'], 'help_message' => $args['help_message'], 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => 'This field is required' ], 'url' => [ 'value' => true, 'message' => __('This field must contain a valid url', 'fluentform'), ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Website URL', 'fluentform'), 'icon_class' => 'ff-edit-website-url', 'template' => 'inputText' ], 'uniqElKey' => $args['uniqElKey'], ], 'email' => [ 'index' => $args['index'], 'element' => 'input_email', 'attributes' => [ 'type' => 'email', 'name' => $args['name'], 'value' => $args['value'], 'class' => $args['class'], 'id' => '', 'placeholder' => $args['placeholder'], ], 'settings' => [ 'container_class' => '', 'label' => $args['label'], 'label_placement' => $args['label_placement'], 'admin_field_label' => $args['admin_field_label'], 'help_message' => $args['help_message'], 'conditional_logics' => [], 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => 'This field is required', ], 'email' => [ 'value' => 1, 'message' => 'This field must contain a valid email' ] ], 'is_unique' => 'no', 'unique_validation_message' => 'This value need to be unique.' ], 'editor_options' => [ 'title' => 'Email Address', 'icon_class' => 'ff-edit-email', 'template' => 'inputText', ], 'uniqElKey' => $args['uniqElKey'], ], 'input_textarea' => [ 'index' => $args['index'], 'element' => 'textarea', 'attributes' => [ 'name' => $args['name'], 'class' => $args['class'], 'id' => '', 'value' => $args['value'], 'placeholder' => $args['placeholder'], 'rows' => $args['rows'], 'cols' => 2, 'maxlength' => $args['maxlength'], ], 'settings' => [ 'container_class' => '', 'label' => $args['label'], 'label_placement' => $args['label_placement'], 'admin_field_label' => $args['admin_field_label'], 'help_message' => $args['help_message'], 'conditional_logics' => [], 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => 'This field is required' ], ], ], 'editor_options' => [ 'title' => 'Text Area', 'icon_class' => 'ff-edit-textarea', 'template' => 'inputTextarea', ], 'uniqElKey' => $args['uniqElKey'], ], 'select' => [ 'index' => $args['index'], 'element' => 'select', 'attributes' => [ 'name' => $args['name'], 'value' => $args['value'], 'class' => $args['class'], 'id' => '', ], 'settings' => [ 'container_class' => '', 'label_placement' => $args['label_placement'], 'admin_field_label' => $args['admin_field_label'], 'label' => $args['label'], 'help_message' => $args['help_message'], 'placeholder' => $args['placeholder'], 'advanced_options' => $args['options'], 'calc_value_status' => $args['calc_value_status'], 'enable_select_2' => $args['enable_select_2'], 'enable_image_input' => false, 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => 'This field is required' ] ], 'randomize_options' => 'no', 'conditional_logics' => [], ], 'editor_options' => [ 'title' => 'Dropdown', 'icon_class' => 'ff-edit-dropdown', 'element' => 'select', 'template' => 'select', ], 'uniqElKey' => $args['uniqElKey'], ], 'multi_select' => [ 'index' => $args['index'], 'element' => 'select', 'attributes' => [ 'name' => $args['name'], 'value' => $args['value'], 'id' => $args['id'], 'class' => $args['class'], 'placeholder' => $args['placeholder'], 'multiple' => true, ], 'settings' => [ 'dynamic_default_value' => $args['dynamic_default_value'], 'help_message' => $args['help_message'], 'container_class' => $args['container_class'], 'label' => $args['label'], 'admin_field_label' => $args['admin_field_label'], 'label_placement' => $args['label_placement'], 'placeholder' => $args['placeholder'], 'max_selection' => '', 'advanced_options' => $args['options'], 'calc_value_status' => $args['calc_value_status'], 'enable_image_input' => false, 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => __('This field is required', 'fluentform'), ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Multiple Choice', 'fluentform'), 'icon_class' => 'ff-edit-multiple-choice', 'element' => 'select', 'template' => 'select' ] ], 'input_checkbox' => [ 'index' => $args['index'], 'element' => 'input_checkbox', 'attributes' => [ 'name' => $args['name'], 'value' => $args['value'], 'class' => $args['class'], 'id' => '', 'type' => 'checkbox' ], 'settings' => [ 'container_class' => '', 'label_placement' => $args['label_placement'], 'label' => $args['label'], 'help_message' => $args['help_message'], 'advanced_options' => $args['options'], 'calc_value_status' => $args['calc_value_status'], 'enable_image_input' => $args['enable_image_input'], 'randomize_options' => 'no', 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => __('This field is required', 'fluentform'), ], ], 'conditional_logics' => [], 'layout_class' => $args['layout_class'] ], 'editor_options' => [ 'title' => __('Checkbox', 'fluentform'), 'icon_class' => 'ff-edit-checkbox-1', 'template' => 'inputCheckable' ], 'uniqElKey' => $args['uniqElKey'], ], 'input_radio' => [ 'index' => $args['index'], 'element' => 'input_radio', 'attributes' => [ 'name' => $args['name'], 'value' => $args['value'], 'class' => $args['class'], 'type' => 'radio', ], 'settings' => [ 'dynamic_default_value' => $args['dynamic_default_value'], 'container_class' => '', 'admin_field_label' => $args['admin_field_label'], 'label_placement' => $args['label_placement'], 'display_type' => '', 'randomize_options' => 'no', 'label' => $args['label'], 'help_message' => $args['help_message'], 'advanced_options' => $args['options'], 'layout_class' => $args['layout_class'], 'calc_value_status' => $args['calc_value_status'], 'enable_image_input' => $args['enable_image_input'], 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => __('This field is required', 'fluentform'), ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Radio Field', 'fluentform'), 'icon_class' => 'ff-edit-radio', 'element' => 'input-radio', 'template' => 'inputCheckable' ], 'uniqElKey' => $args['uniqElKey'], ], 'input_date' => [ 'element' => 'input_date', 'index' => $args['index'], 'attributes' => [ 'name' => $args['name'], 'value' => '', 'type' => 'text', 'class' => $args['class'], 'placeholder' => $args['placeholder'], 'id' => '', ], 'settings' => [ 'container_class' => '', 'label_placement' => $args['label_placement'], 'admin_field_label' => $args['admin_field_label'], 'label' => $args['label'], 'help_message' => $args['help_message'], 'date_format' => $args['format'], 'is_time_enabled' => $args['is_time_enabled'], 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => 'This field is required' ] ], ], 'editor_options' => [ 'title' => 'Time & Date', 'icon_class' => 'ff-edit-date', 'template' => 'inputText', ], 'uniqElKey' => $args['uniqElKey'], ], 'input_mask' => [ 'index' => $args['index'], 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => $args['name'], 'value' => $args['value'], 'class' => $args['class'], 'id' => $args['id'], 'placeholder' => $args['placeholder'], 'data-mask' => $args['mask'], ], 'settings' => [ 'container_class' => '', 'label' => $args['label'], 'label_placement' => $args['label_placement'], 'admin_field_label' => $args['admin_field_label'], 'help_message' => $args['help_message'], 'prefix_label' => '', 'suffix_label' => '', 'temp_mask' => $args['temp_mask'], 'data-mask-reverse' => 'no', 'data-clear-if-not-match' => 'no', 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => __('This field is required', 'fluentform'), ] ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Mask Input', 'fluentform'), 'icon_class' => 'ff-edit-mask', 'template' => 'inputText' ], 'uniqElKey' => $args['uniqElKey'], ], 'input_password' => [ 'index' => $args['index'], 'element' => 'input_password', 'attributes' => [ 'type' => 'password', 'name' => $args['name'], 'value' => $args['value'], 'class' => $args['class'], 'id' => $args['id'], 'placeholder' => $args['placeholder'], ], 'settings' => [ 'container_class' => $args['container_class'], 'label' => $args['label'], 'label_placement' => $args['label_placement'], 'admin_field_label' => $args['admin_field_label'], 'help_message' => $args['help_message'], 'conditional_logics' => [], 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => 'This field is required' ] ], ], 'editor_options' => [ 'title' => __('Password Field', 'fluentform'), 'icon_class' => 'ff-edit-password', 'template' => 'inputText', ], 'uniqElKey' => $args['uniqElKey'], ], 'input_number' => [ 'index' => $args['index'], 'element' => 'input_number', 'attributes' => [ 'type' => 'number', 'name' => $args['name'], 'value' => $args['value'], 'id' => '', 'class' => $args['class'], 'placeholder' => $args['placeholder'] ], 'settings' => [ 'container_class' => '', 'label' => $args['label'], 'admin_field_label' => $args['admin_field_label'], 'label_placement' => $args['label_placement'], 'help_message' => $args['help_message'], 'number_step' => $args['step'], 'prefix_label' => $args['prefix'], 'suffix_label' => $args['suffix'], 'numeric_formatter' => '', 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => __('This field is required', 'fluentform'), ], 'numeric' => [ 'value' => true, 'message' => __('This field must contain numeric value', 'fluentform'), ], 'min' => [ 'value' => $args['min'], 'message' => 'Minimum value is ' . $args['min'], ], 'max' => [ 'value' => $args['max'], 'message' => 'Maximum value is ' . $args['max'], ], ], 'conditional_logics' => [], 'calculation_settings' => [ 'status' => $args['enable_calculation'], 'formula' => $args['calculation_formula'] ], ], 'editor_options' => [ 'title' => __('Numeric Field', 'fluentform'), 'icon_class' => 'ff-edit-numeric', 'template' => 'inputText' ], 'uniqElKey' => $args['uniqElKey'], ], 'phone' => [ 'index' => $args['index'], 'element' => 'phone', 'attributes' => [ 'name' => $args['name'], 'value' => $args['value'], 'id' => $args['id'], 'class' => $args['class'], 'placeholder' => $args['placeholder'], 'type' => 'tel' ], 'settings' => [ 'container_class' => '', 'placeholder' => '', // 'int_tel_number' => 'no', 'auto_select_country' => 'no', 'label' => $args['label'], 'label_placement' => $args['label_placement'], 'help_message' => $args['help_message'], 'admin_field_label' => $args['admin_field_label'], 'phone_country_list' => array( 'active_list' => 'all', 'visible_list' => array(), 'hidden_list' => array(), ), 'default_country' => '', 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => __('This field is required', 'fluentform'), ], 'valid_phone_number' => [ 'value' => ArrayHelper::isTrue($args, 'valid_phone_number'), 'message' => __('Phone number is not valid', 'fluentform') ] ], 'conditional_logics' => [] ], 'editor_options' => [ 'title' => 'Phone Field', 'icon_class' => 'el-icon-phone-outline', 'template' => 'inputText' ], 'uniqElKey' => $args['uniqElKey'], ], 'input_file' => [ 'index' => $args['index'], 'element' => 'input_file', 'attributes' => [ 'type' => 'file', 'name' => $args['name'], 'value' => '', 'id' => $args['id'], 'class' => $args['class'], ], 'settings' => [ 'container_class' => '', 'label' => $args['label'], 'admin_field_label' => $args['admin_field_label'], 'label_placement' => $args['label_placement'], 'btn_text' => $args['upload_btn_text'], 'help_message' => $args['help_message'], 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => __('This field is required', 'fluentform'), ], 'max_file_size' => [ 'value' => $args['max_file_size'], '_valueFrom' => $args['max_size_unit'], 'message' => __('Maximum file size limit reached', 'fluentform') ], 'max_file_count' => [ 'value' => $args['max_file_count'], 'message' => __('Maximum upload limit reached', 'fluentform') ], 'allowed_file_types' => [ 'value' => $args['allowed_file_types'], 'message' => __('Invalid file type', 'fluentform') ] ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('File Upload', 'fluentform'), 'icon_class' => 'ff-edit-files', 'template' => 'inputFile' ], 'uniqElKey' => $args['uniqElKey'], ], 'custom_html' => [ 'index' => $args['index'], 'element' => 'custom_html', 'attributes' => [], 'settings' => [ 'html_codes' => $args['html_codes'], 'conditional_logics' => [], 'container_class' => ArrayHelper::get($args, 'container_class', '') ], 'editor_options' => [ 'title' => __('Custom HTML', 'fluentform'), 'icon_class' => 'ff-edit-html', 'template' => 'customHTML', ], 'uniqElKey' => $args['uniqElKey'], ], 'section_break' => [ 'index' => $args['index'], 'element' => 'section_break', 'attributes' => [ 'id' => $args['id'], 'class' => $args['class'], ], 'settings' => [ 'label' => $args['label'], 'description' => $args['section_break_desc'], 'align' => 'left', 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Section Break', 'fluentform'), 'icon_class' => 'ff-edit-section-break', 'template' => 'sectionBreak', ], 'uniqElKey' => $args['uniqElKey'], ], 'rangeslider' => [ 'index' => $args['index'], 'element' => 'rangeslider', 'attributes' => [ 'type' => 'range', 'name' => $args['name'], 'value' => $args['value'], 'id' => $args['id'], 'class' => $args['class'], 'min' => $args['min'], 'max' => $args['max'], ], 'settings' => [ 'number_step' => $args['step'], 'label' => $args['label'], 'help_message' => $args['help_message'], 'label_placement' => $args['label_placement'], 'admin_field_label' => $args['admin_field_label'], 'container_class' => '', 'conditional_logics' => [], 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => 'This field is required' ] ], ], 'editor_options' => [ 'title' => 'Range Slider', 'icon_class' => 'dashicons dashicons-leftright', 'template' => 'inputSlider' ], 'uniqElKey' => $args['uniqElKey'], ], 'ratings' => [ 'index' => $args['index'], 'element' => 'ratings', 'attributes' => [ 'class' => $args['class'], 'value' => 0, 'name' => $args['name'], ], 'settings' => [ 'label' => $args['label'], 'show_text' => 'no', 'help_message' => $args['help_message'], 'label_placement' => $args['label_placement'], 'admin_field_label' => $args['admin_field_label'], 'container_class' => '', 'conditional_logics' => [], 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => __('This field is required', 'fluentform'), ], ], ], 'options' => $args['options'], 'editor_options' => [ 'title' => __('Ratings', 'fluentform'), 'icon_class' => 'ff-edit-rating', 'template' => 'ratings', ], 'uniqElKey' => $args['uniqElKey'], ], 'gdpr_agreement' => [ 'index' => $args['index'], 'element' => 'gdpr_agreement', 'attributes' => [ 'type' => 'checkbox', 'name' => $args['name'], 'value' => false, 'class' => $args['class'] . ' ff_gdpr_field', ], 'settings' => [ 'label' => $args['label'], 'tnc_html' => $args['tnc_html'], 'admin_field_label' => __('GDPR Agreement', 'fluentform'), 'has_checkbox' => true, 'container_class' => '', 'validation_rules' => [ 'required' => [ 'value' => true, 'message' => __('This field is required', 'fluentform'), ], ], 'required_field_message' => '', 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('GDPR Agreement', 'fluentform'), 'icon_class' => 'ff-edit-gdpr', 'template' => 'termsCheckbox' ], 'uniqElKey' => $args['uniqElKey'], ], 'form_step' => [ 'index' => $args['index'], 'element' => 'form_step', 'attributes' => [ 'id' => '', 'class' => $args['class'], ], 'settings' => [ 'prev_btn' => [ 'type' => ArrayHelper::get($args, 'prev_btn.type', 'default'), 'text' => ArrayHelper::get($args, 'prev_btn.text', 'Previous'), 'img_url' => ArrayHelper::get($args, 'prev_btn.img_url', '') ], 'next_btn' => [ 'type' => ArrayHelper::get($args, 'next_btn.type', 'default'), 'text' => ArrayHelper::get($args, 'next_btn.text', 'Next'), 'img_url' => ArrayHelper::get($args, 'next_btn.img_url', '') ] ], 'editor_options' => [ 'title' => 'Form Step', 'icon_class' => 'ff-edit-step', 'template' => 'formStep' ], 'uniqElKey' => $args['uniqElKey'], ], 'select_country' => [ 'index' => $args['index'], 'element' => 'select_country', 'attributes' => [ 'name' => $args['name'], 'value' => $args['value'], 'id' => $args['id'], 'class' => $args['class'], 'placeholder' => $args['placeholder'], ], 'settings' => [ 'container_class' => $args['container_class'], 'label' => $args['label'], 'admin_field_label' => '', 'label_placement' => $args['label_placement'], 'help_message' => $args['help_message'], 'enable_select_2' => 'no', 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => __('This field is required', 'fluentform'), ], ], 'country_list' => [ 'active_list' => 'all', 'visible_list' => [], 'hidden_list' => [], ], 'conditional_logics' => [], ], 'options' => [ 'US' => 'United States of America', ], 'editor_options' => [ 'title' => __('Country List', 'fluentform'), 'element' => 'country-list', 'icon_class' => 'ff-edit-country', 'template' => 'selectCountry' ], 'uniqElKey' => $args['uniqElKey'], ], 'repeater_field' => [ 'index' => $args['index'], 'element' => 'repeater_field', 'attributes' => array( 'name' => $args['name'], 'data-type' => 'repeater_field' ), 'fields' => $args['fields'], 'settings' => array( 'label' => $args['label'], 'admin_field_label' => '', 'container_class' => '', 'label_placement' => '', 'validation_rules' => array(), 'conditional_logics' => array(), 'max_repeat_field' => '' ), 'editor_options' => array( 'title' => 'Repeat Field', 'icon_class' => 'ff-edit-repeat', 'template' => 'fieldsRepeatSettings' ), 'uniqElKey' => $args['uniqElKey'], ], 'reCaptcha' => [ 'index' => $args['index'], 'element' => 'recaptcha', 'attributes' => ['name' => 'recaptcha'], 'settings' => [ 'label' => $args['label'], 'label_placement' => $args['label_placement'], 'validation_rules' => [], ], 'editor_options' => [ 'title' => __('reCaptcha', 'fluentform'), 'icon_class' => 'ff-edit-recaptha', 'why_disabled_modal' => 'recaptcha', 'template' => 'recaptcha', ], 'uniqElKey' => $args['uniqElKey'], ], 'terms_and_condition' => [ 'index' => $args['index'], 'element' => 'terms_and_condition', 'attributes' => [ 'type' => 'checkbox', 'name' => $args['name'], 'value' => false, 'class' => $args['class'], ], 'settings' => [ 'tnc_html' => $args['tnc_html'], 'has_checkbox' => true, 'admin_field_label' => __('Terms and Conditions', 'fluentform'), 'container_class' => '', 'validation_rules' => [ 'required' => [ 'value' => $args['required'], 'message' => __('This field is required', 'fluentform'), ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'title' => __('Terms & Conditions', 'fluentform'), 'icon_class' => 'ff-edit-terms-condition', 'template' => 'termsCheckbox' ], ], 'address' => [ 'index' => $args['index'], 'element' => 'address', 'attributes' => [ 'id' => '', 'class' => $args['class'], 'name' => $args['name'], 'data-type' => 'address-element' ], 'settings' => [ 'label' => $args['label'], 'admin_field_label' => 'Address', 'conditional_logics' => [], ], 'fields' => [ 'address_line_1' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => ArrayHelper::get($args, 'address_args.address_line_1.name'), 'value' => ArrayHelper::get($args, 'address_args.address_line_1.default', ''), 'id' => '', 'class' => '', 'placeholder' => ArrayHelper::get($args, 'address_args.address_line_1.placeholder', __('Address Line 1', 'fluentform')), ], 'settings' => [ 'container_class' => '', 'label' => ArrayHelper::get($args, 'address_args.address_line_1.label'), 'admin_field_label' => '', 'help_message' => '', 'visible' => ArrayHelper::get($args, 'address_args.address_line_1.visible'), 'validation_rules' => [ 'required' => [ 'value' => ArrayHelper::isTrue($args, 'address_args.address_line_1.required'), 'message' => __('This field is required', 'fluentform'), ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText' ], ], 'address_line_2' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => ArrayHelper::get($args, 'address_args.address_line_2.name'), 'value' => ArrayHelper::get($args, 'address_args.address_line_2.default', ''), 'id' => '', 'class' => '', 'placeholder' => ArrayHelper::get($args, 'address_args.address_line_2.placeholder', __('Address Line 2', 'fluentform')), ], 'settings' => [ 'container_class' => '', 'label' => ArrayHelper::get($args, 'address_args.address_line_2.label'), 'admin_field_label' => '', 'help_message' => '', 'visible' => ArrayHelper::get($args, 'address_args.address_line_2.visible'), 'validation_rules' => [ 'required' => [ 'value' => ArrayHelper::isTrue($args, 'address_args.address_line_2.required'), 'message' => __('This field is required', 'fluentform'), ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText' ], ], 'city' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => ArrayHelper::get($args, 'address_args.city.name'), 'value' => ArrayHelper::get($args, 'address_args.city.default', ''), 'id' => '', 'class' => '', 'placeholder' => ArrayHelper::get($args, 'address_args.city.placeholder', __('City', 'fluentform')), ], 'settings' => [ 'container_class' => '', 'label' => ArrayHelper::get($args, 'address_args.city.label'), 'admin_field_label' => '', 'help_message' => '', 'error_message' => '', 'visible' => ArrayHelper::get($args, 'address_args.city.visible'), 'validation_rules' => [ 'required' => [ 'value' => ArrayHelper::isTrue($args, 'address_args.city.required'), 'message' => __('This field is required', 'fluentform'), ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText' ], ], 'state' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => ArrayHelper::get($args, 'address_args.state.name'), 'value' => ArrayHelper::get($args, 'address_args.state.default', ''), 'id' => '', 'class' => '', 'placeholder' => ArrayHelper::get($args, 'address_args.state.placeholder', __('State', 'fluentform')), ], 'settings' => [ 'container_class' => '', 'label' => ArrayHelper::get($args, 'address_args.state.label'), 'admin_field_label' => '', 'help_message' => '', 'error_message' => '', 'visible' => ArrayHelper::get($args, 'address_args.state.visible'), 'validation_rules' => [ 'required' => [ 'value' => ArrayHelper::isTrue($args, 'address_args.state.required'), 'message' => __('This field is required', 'fluentform'), ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText' ], ], 'zip' => [ 'element' => 'input_text', 'attributes' => [ 'type' => 'text', 'name' => ArrayHelper::get($args, 'address_args.zip.name'), 'value' => ArrayHelper::get($args, 'address_args.zip.default', ''), 'id' => '', 'class' => '', 'placeholder' => ArrayHelper::get($args, 'address_args.zip.placeholder', __('Zip', 'fluentform')), 'required' => false, ], 'settings' => [ 'container_class' => '', 'label' => ArrayHelper::get($args, 'address_args.zip.label'), 'admin_field_label' => '', 'help_message' => '', 'error_message' => '', 'visible' => ArrayHelper::get($args, 'address_args.zip.visible'), 'validation_rules' => [ 'required' => [ 'value' => ArrayHelper::isTrue($args, 'address_args.zip.required'), 'message' => __('This field is required', 'fluentform'), ], ], 'conditional_logics' => [], ], 'editor_options' => [ 'template' => 'inputText' ], ], 'country' => [ 'element' => 'select_country', 'attributes' => [ 'name' => ArrayHelper::get($args, 'address_args.country.name'), 'value' => ArrayHelper::get($args, 'address_args.country.default', ''), 'id' => '', 'class' => '', 'placeholder' => ArrayHelper::get($args, 'address_args.country.placeholder', __('Country', 'fluentform')), 'required' => false, ], 'settings' => [ 'container_class' => '', 'label' => ArrayHelper::get($args, 'address_args.country.label'), 'admin_field_label' => '', 'help_message' => '', 'error_message' => '', 'visible' => ArrayHelper::get($args, 'address_args.country.visible'), 'validation_rules' => [ 'required' => [ 'value' => ArrayHelper::isTrue($args, 'address_args.country.required'), 'message' => __('This field is required', 'fluentform'), ], ], 'country_list' => [ 'active_list' => 'all', 'visible_list' => [], 'hidden_list' => [], ], 'conditional_logics' => [], ], 'options' => [ 'US' => 'US of America', 'UK' => 'United Kingdom' ], 'editor_options' => [ 'title' => 'Country List', 'element' => 'country-list', 'icon_class' => 'icon-text-width', 'template' => 'selectCountry' ], ], ], 'editor_options' => [ 'title' => __('Address Fields', 'fluentform'), 'element' => 'address-fields', 'icon_class' => 'ff-edit-address', 'template' => 'addressFields' ], ], 'rich_text_input' => [ 'index' => $args['index'], 'element' => 'rich_text_input', 'attributes' => [ 'name' => $args['name'], 'value' => $args['value'], 'id' => '', 'class' => $args['class'], 'placeholder' => $args['placeholder'], 'rows' => ArrayHelper::get($args, 'rows', 3), 'cols' => ArrayHelper::get($args, 'cols', 2), 'maxlength' => ArrayHelper::get($args, 'maxlength', ''), ], 'settings' => [ 'container_class' => $args['container_class'], 'placeholder' => $args['placeholder'], 'label_placement' => $args['label_placement'], 'admin_field_label' => $args['admin_field_label'], 'label' => $args['label'], 'help_message' => $args['help_message'], 'validation_rules' => [ 'required' => [ 'value' => ArrayHelper::isTrue($args,'required'), 'message' => __('This field is required', 'fluentformpro'), ] ], 'conditional_logics' => [] ], 'editor_options' => [ 'title' => __('Rich Text Input', 'fluentform'), 'icon_class' => 'ff-edit-textarea', 'template' => 'inputTextarea' ], ], ]; if (!defined('FLUENTFORMPRO')) { $proElements = ['repeater_field', 'rangeslider', 'color_picker', 'form_step', 'phone', 'input_file', 'rich_text_input']; foreach ($proElements as $el) { unset($defaultElements[$el]); } } return $defaultElements; } public function getSubmitBttn($args) { return [ 'uniqElKey' => $args['uniqElKey'], 'element' => 'button', 'attributes' => [ 'type' => 'submit', 'class' => $args['class'] ], 'settings' => [ 'container_class' => '', 'align' => 'left', 'button_style' => 'default', 'button_size' => 'md', 'color' => '#ffffff', 'background_color' => '#1a7efb', 'button_ui' => [ 'type' => ArrayHelper::get($args, 'type', 'default'), 'text' => $args['label'], 'img_url' => ArrayHelper::get($args, 'img_url', '') ], 'normal_styles' => [], 'hover_styles' => [], 'current_state' => "normal_styles" ], 'editor_options' => [ 'title' => 'Submit Button', ], ]; } abstract protected function getFormId($form); /** * @param $metas * @param $formId */ protected function updateMetas($metas, $formId) { if ($metas) { //when multiple notifications if ($notifications = ArrayHelper::get($metas, 'notifications')) { (new \FluentForm\App\Modules\Form\Form(wpFluentForm()))->deleteMeta($formId, 'notifications'); foreach ($notifications as $notify) { $settings = [ 'form_id' => $formId, 'meta_key' => 'notifications', 'value' => json_encode($notify) ]; wpFluent()->table('fluentform_form_meta')->insert($settings); } unset($metas['notifications']); } //when multiple confirmations if ($confirmations = ArrayHelper::get($metas, 'confirmations')) { (new \FluentForm\App\Modules\Form\Form(wpFluentForm()))->deleteMeta($formId, 'confirmations'); foreach ($confirmations as $confirmation) { $settings = [ 'form_id' => $formId, 'meta_key' => 'confirmations', 'value' => json_encode($confirmation) ]; wpFluent()->table('fluentform_form_meta')->insert($settings); } unset($metas['confirmations']); } //when have webhooks if ($webhooks = ArrayHelper::get($metas, 'webhooks')) { \FluentForm\App\Models\FormMeta::remove($formId, 'fluentform_webhook_feed'); foreach ($webhooks as $webhook) { \FluentForm\App\Models\FormMeta::create([ 'form_id' => $formId, 'meta_key' => 'fluentform_webhook_feed', 'value' => json_encode($webhook) ]); } unset($metas['webhooks']); } foreach ($metas as $metaKey => $metaData) { (new \FluentForm\App\Modules\Form\Form(wpFluentForm()))->updateMeta($formId, $metaKey, $metaData); } } } /** * @param array $form * @param array $insertedForms * @param $formItem * @param array $refs * @return array */ public function insertForm($form, $insertedForms, $formItem) { $formId = wpFluent()->table('fluentform_forms')->insertGetId($form); $insertedForms[$formId] = [ 'title' => $form['title'], 'edit_url' => admin_url('admin.php?page=fluent_forms&route=editor&form_id=' . $formId) ]; do_action_deprecated( 'fluentform_form_imported', [ $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/form_imported', 'Use fluentform/form_imported instead of fluentform_form_imported.' ); do_action('fluentform/form_imported', $formId); return array($insertedForms, $formId); } protected function getFileTypes($field, $arg) { // All Supported File Types in Fluent Forms $allFileTypes = [ "jpg|jpeg|gif|png|bmp", "mp3|wav|ogg|oga|wma|mka|m4a|ra|mid|midi|mpga", "avi|divx|flv|mov|ogv|mkv|mp4|m4v|divx|mpg|mpeg|mpe|video/quicktime|qt", "pdf", "doc|ppt|pps|xls|mdb|docx|xlsx|pptx|odt|odp|ods|odg|odc|odb|odf|rtf|txt", "zip|gz|gzip|rar|7z", "exe", "csv" ]; $formattedTypes = explode(', ', ArrayHelper::get($field, $arg, '')); $fileTypeOptions = []; foreach ($formattedTypes as $format) { foreach ($allFileTypes as $fileTypes) { if (!empty($format) && (strpos($fileTypes, $format) !== false)) { array_push($fileTypeOptions, $fileTypes); } } } return array_unique($fileTypeOptions); } public function isAlreadyImported($formItem) { $importedFormMap = get_option('__ff_imorted_forms_map'); $deletedForms = []; if (is_array($importedFormMap)) { foreach ($importedFormMap as $fluentFormId => $value) { if ($this->getFormId($formItem) == ArrayHelper::get($value, 'imported_form_id') && $this->key == ArrayHelper::get($value, 'form_type')) { if (wpFluent()->table('fluentform_forms')->find($fluentFormId)) { return $fluentFormId; } unset($importedFormMap[$fluentFormId]); } } update_option('__ff_imorted_forms_map', $importedFormMap); return false; } return false; } public function updateForm($formId, $formFields, $insertedForms) { $data = [ 'updated_at' => current_time('mysql'), 'form_fields' => $formFields, ]; wpFluent()->table('fluentform_forms')->where('id', $formId)->update($data); $form = wpFluent()->table('fluentform_forms')->find($formId); $emailInputs = FormFieldsParser::getElement($form, ['input_email'], ['element', 'attributes']); if ($emailInputs) { $emailInput = array_shift($emailInputs); $emailInputName = ArrayHelper::get($emailInput, 'attributes.name'); (new \FluentForm\App\Modules\Form\Form(wpFluentForm()))->updateMeta($formId, '_primary_email_field', $emailInputName); } else { (new \FluentForm\App\Modules\Form\Form(wpFluentForm()))->updateMeta($formId, '_primary_email_field', ''); } $insertedForms[$formId] = [ 'title' => $form->title, 'edit_url' => admin_url('admin.php?page=fluent_forms&route=editor&form_id=' . $formId) ]; return $insertedForms; } public function insertEntries($fluentFormId, $importFormId) { if (!wpFluent()->table('fluentform_forms')->find($fluentFormId)) { wp_send_json_error([ 'message' => __("Could not find form ,please import again", 'fluentform') ], 422); } $entries = $this->getEntries($importFormId); if (!is_array($entries) || empty($entries)) { wp_send_json([ 'message' => "No Entries Found", ], 200); return; } //delete prev entries $this->resetEntries($fluentFormId); foreach ($entries as $key => $entry) { if (empty($entry)) { continue; } $previousItem = wpFluent()->table('fluentform_submissions') ->where('form_id', $fluentFormId) ->orderBy('id', 'DESC') ->first(); $serialNumber = 1; if ($previousItem) { $serialNumber = $previousItem->serial_number + 1; } $created_at = ArrayHelper::get($entry, 'created_at'); if ($created_at) { ArrayHelper::forget($entry, 'created_at'); } $updated_at = ArrayHelper::get($entry, 'updated_at'); if ($updated_at) { ArrayHelper::forget($entry, 'updated_at'); } $insertData = [ 'form_id' => $fluentFormId, 'serial_number' => $serialNumber, 'response' => json_encode($entry), 'source_url' => '', 'user_id' => get_current_user_id(), 'browser' => '', 'device' => '', 'ip' => '', 'created_at' => $created_at ?: current_time('mysql'), 'updated_at' => $updated_at ?: current_time('mysql') ]; if ($is_favourite = ArrayHelper::get($entry, 'is_favourite')) { $insertData['is_favourite'] = $is_favourite; ArrayHelper::forget($entry, 'is_favourite'); } if ($status = ArrayHelper::get($entry, 'status')) { $insertData['status'] = $status; ArrayHelper::forget($entry, 'status'); } $insertId = wpFluent()->table('fluentform_submissions')->insertGetId($insertData); $uidHash = md5(wp_generate_uuid4() . $insertId); \FluentForm\App\Helpers\Helper::setSubmissionMeta($insertId, '_entry_uid_hash', $uidHash, $fluentFormId); $submissionService = new SubmissionService(); $submissionService->recordEntryDetails($insertId, $fluentFormId, $entry); } wp_send_json([ 'message' => __("Entries Imported Successfully", 'fluentform'), 'entries_page_url' => admin_url('admin.php?page=fluent_forms&route=entries&form_id=' . $fluentFormId), 'status' => true ], 200); } private function resetEntries($formId) { wpFluent()->table('fluentform_submissions') ->where('form_id', $formId) ->delete(); wpFluent()->table('fluentform_submission_meta') ->where('form_id', $formId) ->delete(); wpFluent()->table('fluentform_entry_details') ->where('form_id', $formId) ->delete(); wpFluent()->table('fluentform_form_analytics') ->where('form_id', $formId) ->delete(); wpFluent()->table('fluentform_logs') ->where('parent_source_id', $formId) ->whereIn('source_type', ['submission_item', 'form_item', 'draft_submission_meta']) ->delete(); } /** * @param array $urls * * @return array */ public function migrateFilesAndGetUrls($urls) { if (is_string($urls)) { $urls = [$urls]; } $values = []; foreach ($urls as $url) { $file_name = 'ff-' . wp_basename($url); $basDir = wp_upload_dir()['basedir'] . '/fluentform/'; $baseurl = wp_upload_dir()['baseurl'] . '/fluentform/'; if (!file_exists($basDir) || (file_exists($basDir) && !is_dir($basDir))) { mkdir($basDir); } $destination = $basDir . $file_name; require_once(ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php'); require_once(ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php'); $fileSystemDirect = new \WP_Filesystem_Direct(false); if ($fileSystemDirect->copy($url, $destination, true)) { $values[] = $baseurl . $file_name; } } return $values; } protected function getResolveOperator($key) { return ArrayHelper::get([ 'equal' => '=', 'is' => '=', '==' => '=', 'e' => '=', 'not_equal' => '!=', 'isnot' => '!=', '!=' => '!=', '!e' => '!=', 'greater_than' => '>', '>' => '>', 'greater_or_equal' => '>=', '>=' => '>=', 'less_than' => '<', '<' => '<', 'less_or_equal' => '<=', '<=' => '<=', 'starts_with' => 'startsWith', '^' => 'startsWith', 'ends_with' => 'endsWith', '~' => 'endsWith', 'contains' => 'contains', 'c' => 'contains', '!c' => 'doNotContains', 'not_contains' => 'doNotContains' ], $key); } } app/Services/Migrator/Bootstrap.php000064400000011022147600120010013344 0ustar00exist()) { $migratorLinks[] = [ 'name' => 'Caldera Forms', 'key' => 'caldera', ]; } if ((new NinjaFormsMigrator())->exist()) { $migratorLinks[] = [ 'name' => 'Ninja Forms', 'key' => 'ninja_forms', ]; } if ((new GravityFormsMigrator())->exist()) { $migratorLinks[] = [ 'name' => 'Gravity Forms', 'key' => 'gravityform', ]; } if ((new WpFormsMigrator())->exist()) { $migratorLinks[] = [ 'name' => 'WPForms', 'key' => 'wpforms', ]; } if ((new ContactForm7Migrator())->exist()) { $migratorLinks[] = [ 'name' => 'Contact Form 7', 'key' => 'contactform7', ]; } return $migratorLinks; } public function setImporterType() { $formType = sanitize_text_field(wpFluentForm('request')->get('form_type')); switch ($formType) { case 'caldera': $this->importer = new CalderaMigrator(); break; case 'ninja_forms': $this->importer = new NinjaFormsMigrator(); break; case 'gravityform': $this->importer = new GravityFormsMigrator(); break; case 'wpforms': $this->importer = new WpFormsMigrator(); break; case 'contactform7': $this->importer = new ContactForm7Migrator(); break; default: wp_send_json([ 'message' => __('Unsupported Form Type!'), 'success' => false, ]); } } public function getMigratorData() { \FluentForm\App\Modules\Acl\Acl::verify(['fluentform_settings_manager', 'fluentform_forms_manager']); wp_send_json([ 'status' => true, 'migrator_data' => $this->availableMigrations() ], 200); } public function importForms() { \FluentForm\App\Modules\Acl\Acl::verify(['fluentform_settings_manager', 'fluentform_forms_manager']); $formIds = wpFluentForm('request')->get('form_ids'); $formIds = array_map('sanitize_text_field', $formIds); $this->setImporterType(); $this->importer->import_forms($formIds); } public function importEntries() { \FluentForm\App\Modules\Acl\Acl::verify(['fluentform_settings_manager', 'fluentform_forms_manager']); $fluentFormId = intval(wpFluentForm('request')->get('imported_fluent_form_id')); $importFormId = sanitize_text_field(wpFluentForm('request')->get('source_form_id')); $this->setImporterType(); $this->importer->insertEntries($fluentFormId, $importFormId); } public function hasOtherForms() { \FluentForm\App\Modules\Acl\Acl::verify(['fluentform_settings_manager', 'fluentform_forms_manager']); $migrationData = $this->availableMigrations(); if (is_array($migrationData) && !empty($migrationData)) { return true; } return false; } public function getFormsByKey() { \FluentForm\App\Modules\Acl\Acl::verify(['fluentform_settings_manager', 'fluentform_forms_manager']); $this->setImporterType(); $forms = $this->importer->getFormsFormatted(); wp_send_json([ 'forms' => $forms, 'success' => true, ]); } } app/Services/Parser/Form.php000064400000030026147600120010011747 0ustar00form = $form; $this->setInputTypes(); } /** * Set input types of the form. * * @param array $types * @return \FluentForm\App\Services\Parser\Form $this */ public function setInputTypes($types = []) { // If the $types is empty we'll use the default input types. $types = $types ?: [ 'input_text', 'input_name', 'textarea', 'select', 'input_radio', 'input_checkbox', 'input_email', 'input_url', 'input_password', 'input_file', 'input_image', 'input_date', 'select_country', 'input_number', 'input_repeat', 'address', 'terms_and_condition', 'input_hidden', 'ratings', 'net_promoter', 'tabular_grid', 'gdpr_agreement', 'taxonomy' ]; $types = apply_filters_deprecated( 'fluentform_form_input_types', [ $types ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/form_input_types', 'Use fluentform/form_input_types instead of fluentform_form_input_types' ); // Firing an event so that others can hook into it and add other input types. $this->inputTypes = apply_filters('fluentform/form_input_types', $types); return $this; } /** * Get form fields. * * @param boolean $asArray * @return array */ public function getFields($asArray = false) { $fields = json_decode($this->form->form_fields, $asArray); $default = $asArray ? [] : null; return Arr::get((array)$fields, 'fields', $default); } /** * Get flatten form inputs. Flatten implies that all * of the form fields will be in a simple array. * * @param array $with * @return array */ public function getInputs($with = []) { // If the form is already parsed we'll return it. Otherwise, // we'll parse the form and return the data after saving it. if (!$this->parsed) { $fields = $this->getFields(true); $with = $with ?: ['admin_label', 'element', 'options', 'attributes', 'raw']; $this->parsed = (new Extractor($fields, $with, $this->inputTypes))->extract(); } return $this->parsed; } /** * Get the inputs just as they setup in the form editor. * e.g. `names` as `names` not with the child fields. * * @param array $with * @return array */ public function getEntryInputs($with = ['admin_label']) { $inputs = $this->getInputs($with); // The inputs that has `[]` in their keys are custom fields // & for the purpose of this scenario we'll remove those. foreach ($inputs as $key => $value) { if (Str::contains($key, '[')) { unset($inputs[$key]); } } return $inputs; } /** * Get the flatten inputs as the result of the `getInputs` * method but replace the keys those have `[]` with `.` * And also remove the repeat fields' child fields. * * @param array $with * @param array */ public function getShortCodeInputs($with = ['admin_label']) { $inputs = $this->getInputs($with); $result = []; // For the purpose of this scenario we'll rename // the keys that have `[]` in 'em to `.` and // remove the keys that have `*` in 'em. foreach ($inputs as $key => $value) { if (Str::contains($key, '*')) { unset($inputs[$key]); } else { $key = str_replace(['[', ']'], ['.'], $key); $result[$key] = $value; } } return $result; } /** * Get admin labels of the form fields. * * @param array $fields * @return array */ public function getAdminLabels($fields = []) { $fields = $fields ?: $this->getInputs(['admin_label']); $labels = []; foreach ($fields as $key => $field) { $labels[$key] = Arr::get($field, 'admin_label'); } return $labels; } /** * Get admin labels of the form fields. * * @param array $inputs * @param array $fields * @return array */ public function getValidations($inputs, $fields = []) { // If the form validations are already parsed we'll return it. // Otherwise, we'll parse the form validation and return // the data after saving it to the validations array. if (!$this->validations) { $fields = $fields ?: $this->getInputs(['rules']); $this->validations = (new Validations($fields, $inputs))->get(); } return $this->validations; } /** * Get an element by it's name. * * @param string|array $name * @param array $with * @return array */ public function getElement($name, $with = []) { $this->inputTypes = (array) $name; return $this->getInputs($with); } /** * Determine whether the form has an element. * * @param string $name * @return bool */ public function hasElement($name) { $elements = $this->getElement($name, ['element']); foreach ($elements as $item) { if ($item['element'] === $name) { return true; } } return false; } /** * Determine whether the form has any required fields. * * @param array $fields * @return bool */ public function hasRequiredFields($fields = []) { // $fields can be user provided when called this method or, // the current object could have already parsed fields or, // we should parse the form and use the processed result. $fields = $fields ?: $this->parsed ?: $this->getInputs(['rules']); $exist = false; foreach ($fields as $field) { $exist = Arr::get($field, 'rules.required.value'); if ($exist) { break; } } return (boolean)$exist; } /** * Get Payment Related Fields * * @param array $with array * @return array */ public function getPaymentFields($with = ['element']) { $fields = $this->getInputs($with); $data = [ 'custom_payment_component', 'multi_payment_component', 'payment_method', 'item_quantity_component', 'rangeslider', 'payment_coupon', 'subscription_payment_component', ]; $data = apply_filters_deprecated('fluentform_form_payment_fields', [ $data ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/form_payment_fields', 'Use fluentform/form_payment_fields instead of fluentform_form_payment_fields' ); $paymentElements = apply_filters('fluentform/form_payment_fields', $data); return array_filter($fields, function ($field) use ($paymentElements) { return in_array($field['element'], $paymentElements); }); } /** * Get Payment Input Fields * * @return array */ public function getPaymentInputFields($with = ['element']) { $fields = $this->getInputs($with); $data = [ 'custom_payment_component', 'multi_payment_component' ]; $data = apply_filters_deprecated( 'fluentform_form_payment_inputs', [ $data ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/form_payment_inputs', 'Use fluentform/form_payment_inputs instead of fluentform_form_payment_inputs' ); $paymentElements = apply_filters('fluentform/form_payment_inputs', $data); return array_filter($fields, function ($field) use ($paymentElements) { return in_array($field['element'], $paymentElements); }); } /** * Determine whether the form has payment elements * * @return bool */ public function hasPaymentFields() { $fields = $this->getInputs(['element']); $data = [ 'custom_payment_component', 'multi_payment_component', 'payment_method', 'item_quantity_component', 'payment_coupon', 'subscription_payment_component' ]; $data = apply_filters_deprecated( 'fluentform_form_payment_fields', [ $data ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/form_payment_fields', 'Use fluentform/form_payment_fields instead of fluentform_form_payment_fields' ); $paymentElements = apply_filters('fluentform/form_payment_fields', $data); foreach ($fields as $field) { if (in_array($field['element'], $paymentElements)) { return true; } } return false; } /** * Get an specific field for an element type. * * @param $element * @param $attribute * @param array $with * @return array|null */ public function getField($element, $attribute, $with = []) { $element = $this->getElement($element, $with); return array_intersect_key($element, array_flip((array)$attribute)); } /** * Get Payment Input Fields * * @return array */ public function getAttachmentInputFields($with = ['element']) { $fields = $this->getInputs($with); $paymentElements = [ 'input_file', 'input_image', 'featured_image', 'signature' ]; return array_filter($fields, function ($field) use ($paymentElements) { return in_array($field['element'], $paymentElements); }); } /** * Get Any Field Type * @return array */ public function getInputsByElementTypes($types, $with = ['element']) { $fields = $this->getInputs($with); return array_filter($fields, function ($field) use ($types) { return in_array($field['element'], $types); }); } /** * Get Address Fields * * @return array */ public function getAddressFields($with = ['admin_label', 'attributes']) { $fields = $this->getInputs($with); $addressElements = [ 'address' ]; return array_filter($fields, function ($field) use ($addressElements) { return in_array($field['element'], $addressElements); }); } public function getEssentialInputs($formData, $with = []) { // If the form is already parsed we'll return it. Otherwise, // we'll parse the form and return the data after saving it. if (!$this->essentials) { $fields = $this->getFields(true); $with = $with ?: ['rules', 'raw']; $this->essentials = (new Extractor($fields, $with, $this->inputTypes))->extractEssentials($formData); } return $this->essentials; } } app/Services/Parser/Validations.php000064400000013773147600120010013333 0ustar00 false, 'attribute' => '', 'length' => 0, 'rule' => '' ]; /** * The extracted validation rules. * * @var array */ protected $rules = []; /** * The extracted validation messages. * * @var array */ protected $messages = []; /** * The validation extractor constructor. * * @param array $formFields * @param array $formData */ public function __construct($formFields = [], $formData = []) { $this->fields = $formFields; $this->inputs = $formData; } /** * Get the extracted validation rules and messages. * * @return array */ public function get() { foreach ($this->fields as $fieldName => $field) { $this->setFieldAccessor($fieldName); $fieldValue = $this->getFieldValue(); $rules = (array) $field['rules']; $hasRequiredRule = Arr::get($rules, 'required.value'); // If the field is a repeater we'll set some settings here. $this->setRepeater($fieldName, $field); foreach ($rules as $ruleName => $rule) { if ($this->shouldNotSkipThisRule($rule, $fieldValue, $hasRequiredRule)) { $this->prepareValidations($fieldName, $ruleName, $rule); } } } return [$this->rules, $this->messages]; } /** * Set the field accessor by replacing the `[]`, `*` by `.` * so that dot notation can be used to access the inputs. * * @param string $fieldName * @return $this */ protected function setFieldAccessor($fieldName) { $this->accessor = rtrim(str_replace(['[', ']', '*'], ['.'], $fieldName), '.'); return $this; } /** * Get the field value from the form data. * * @return mixed */ protected function getFieldValue() { return Arr::get($this->inputs, $this->accessor); } /** * Set the repeater settings if the field in * iteration is indeed a repeater field. * * @param string $fieldName * @param array $field * @return $this */ protected function setRepeater($fieldName, $field) { $isRepeater = Arr::get($field, 'element') === 'input_repeat' || Arr::get($field, 'element') == 'repeater_field'; if ($isRepeater) { $attribute = Arr::get($field, 'attributes.name'); $length = isset($attribute[0]) ? count($attribute[0]) : 0; $this->repeater = [ 'status' => true, 'attribute' => $attribute, 'length' => $length, 'rule' => rtrim($fieldName, '.*') ]; } else { $this->repeater['status'] = false; } return $this; } /** * Determines if the iteration should skip this rule or not. * * @param array $rule * @return boolean */ protected function shouldNotSkipThisRule($rule, $fieldValue, $hasRequiredRule) { // If the rule is enabled and the field is not empty and // it does have at least one required rule then we // should validate it for other rules. Else, we // will skip this rule meaning enabling empty // submission for this field. return $rule['value'] && !($fieldValue === '' && !$hasRequiredRule); } /** * Prepare the validation extraction. * * @param string $fieldName * @param string $ruleName * @param array $rule */ protected function prepareValidations($fieldName, $ruleName, $rule) { $logic = $this->getLogic($ruleName, $rule); if ($this->repeater['status']) { for ($i = 0; $i < $this->repeater['length']; $i++) { // We need to modify the field name for repeater field. $fieldName = $this->repeater['rule'].'['.$i.']'; $this->setValidations($fieldName, $ruleName, $rule, $logic); } } else { $this->setValidations($fieldName, $ruleName, $rule, $logic); } } /** * Set the validation rules & messages * * @param string $fieldName * @param string $ruleName * @param array $rule * @param string $logic */ protected function setValidations($fieldName, $ruleName, $rule, $logic) { // if there is already a rule for this field we need to // concat current rule to it. else assign current rule. $this->rules[$fieldName] = isset($this->rules[$fieldName]) ? $this->rules[$fieldName].'|'.$logic : $logic; $this->messages[$fieldName.'.'.$ruleName] = $rule['message']; } /** * Get the logic name for the current rule. * * @param string $ruleName * @param array $rule * @return string */ protected function getLogic($ruleName, $rule) { // The file type input has rule values in an array. For // that we are taking arrays into consideration. $ruleValue = is_array($rule['value']) ? implode(',', array_filter(array_values(str_replace('|', ',', $rule['value'])))) : $rule['value']; return $ruleName.':'.$ruleValue; } } app/Services/Parser/Extractor.php000064400000030441147600120010013020 0ustar00fields = $fields; $this->with = $with; $this->inputTypes = $inputTypes; } /** * The extractor initializer for getting the extracted data. * * @return array */ public function extract() { $this->looper($this->fields); return $this->result; } /** * The recursive looper method to loop each * of the fields and extract it's data. * * @param array $fields */ protected function looper($fields = []) { foreach ($fields as $field) { // If the field is a Container (collection of other fields) // then we will recursively call this function to resolve. if ($field['element'] === 'container') { foreach ($field['columns'] as $item) { $this->looper($item['fields']); } } // Now the field is supposed to be a flat field. // We can extract the desired keys as we want. else { if (in_array($field['element'], $this->inputTypes)) { $this->extractField($field); } } } } /** * The extractor initializer for getting the extracted data. * * @return array */ public function extractEssentials($formData) { $this->looperEssential($formData, $this->fields); return $this->result; } /** * The recursive looper method to loop each * of the fields and extract it's data. * * @param array $fields */ protected function looperEssential($formData, $fields = []) { foreach ($fields as $field) { $field['conditionals'] = Arr::get($field, 'settings.conditional_logics', []); $matched = ConditionAssesor::evaluate($field, $formData); if (!$matched) { continue; } // If the field is a Container (collection of other fields) // then we will recursively call this function to resolve. if ($field['element'] === 'container') { foreach ($field['columns'] as $item) { $this->looperEssential($formData, $item['fields']); } } // Now the field is supposed to be a flat field. // We can extract the desired keys as we want. else { if (in_array($field['element'], $this->inputTypes)) { $this->extractField($field); } } } } /** * Extract the form field. * * @param array $field * @return $this */ protected function extractField($field) { // Before starting the extraction we'll set the current // field and it's attribute name at first. And then we // will proceed to extract the field settings that // the developer demanded using $with initially. $this->prepareIteration($field, Arr::get($field, 'attributes.name')) ->setElement() ->setAdminLabel() ->setLabel() ->setOptions() ->setAdvancedOptions() ->setSettings() ->setRaw() ->setAttributes() ->setValidations() ->handleCustomField(); return $this; } /** * Set the field and attribute of the current iteration when * we loop through the form fields using the looper method. * * @param array $field * @param string $attribute * @return $this */ protected function prepareIteration($field, $attribute) { $this->field = $field; $this->attribute = $attribute; return $this; } /** * Set the element of the form field. * * @param array $field * @param string $attributeName * @return $this */ protected function setElement() { $this->result[$this->attribute]['element'] = $this->field['element']; return $this; } /** * Set the label of the form field. * * @return $this */ protected function setLabel() { if (in_array('label', $this->with)) { $this->result[$this->attribute]['label'] = Arr::get($this->field, 'settings.label', ''); } return $this; } /** * Set the admin label of the form field. * * @return $this */ protected function setAdminLabel() { if (in_array('admin_label', $this->with)) { $adminLabel = Arr::get($this->field, 'settings.admin_field_label') ?: Arr::get($this->field, 'settings.label') ?: Arr::get($this->field, 'element'); $this->result[$this->attribute]['admin_label'] = $adminLabel; } return $this; } /** * Set the options of the form field. * * @return $this */ protected function setOptions() { if (in_array('options', $this->with)) { $options = Arr::get($this->field, 'options', []); if(!$options) { $newOptions = Arr::get($this->field, 'settings.advanced_options', []); if( !$newOptions && Arr::get($this->field,'element') == 'multi_payment_component' && Arr::get($this->field,'attributes.type') != 'single' ) { $pricingOptions = Arr::get($this->field, 'settings.pricing_options', []); foreach ($pricingOptions as $pricingOption) { $newOptions[] = [ 'value' => $pricingOption['label'], 'label' => $pricingOption['label'] ]; } } $options = []; if($newOptions) { foreach ($newOptions as $option) { $value = sanitize_text_field($option['value']); $options[$value] = sanitize_text_field($option['label']); } } } $this->result[$this->attribute]['options'] = $options; } return $this; } /** * Set the advanced options of the form field. * * @return $this */ protected function setAdvancedOptions() { if (in_array('advanced_options', $this->with)) { $this->result[$this->attribute]['advanced_options'] = Arr::get($this->field, 'settings.advanced_options', []); } return $this; } protected function setSettings() { if (in_array('settings', $this->with)) { $this->result[$this->attribute]['settings'] = Arr::get($this->field, 'settings', []); } return $this; } /** * Set the attributes of the form field. * * @return $this */ protected function setAttributes() { if (in_array('attributes', $this->with)) { $this->result[$this->attribute]['attributes'] = Arr::get($this->field, 'attributes'); } return $this; } /** * Set the validation rules and conditions of the form field. * * @return $this */ protected function setValidations() { if (in_array('rules', $this->with)) { $this->result[$this->attribute]['rules'] = Arr::get( $this->field, 'settings.validation_rules' ); $this->handleMaxLengthValidation(); $this->result[$this->attribute]['conditionals'] = Arr::get( $this->field, 'settings.conditional_logics' ); } return $this; } protected function handleMaxLengthValidation() { $maxLength = Arr::get($this->field, 'attributes.maxlength'); $fieldHasMaxValidation = Arr::get($this->field, 'settings.validation_rules.max'); $shouldSetMaxValidation = $maxLength && !$fieldHasMaxValidation; if ($shouldSetMaxValidation) { $this->result[$this->attribute]['rules']['max'] = [ 'value' => $maxLength, "message" => Helper::getGlobalDefaultMessage('max'), ]; } return $this; } /** * Handle the child fields of the custom field. * * @return $this */ protected function handleCustomField() { // If this field is a custom field we'll assume it has it's child fields // under the `fields` key. Then we are gonna modify those child fields' // attribute `name`, `label` & `conditional_logics` properties using // the parent field. The current implementation will modify those // properties in a way so that we can use dot notation to access. $customFields = Arr::get($this->field, 'fields'); if ($customFields) { $parentAttribute = Arr::get($this->field, 'attributes.name'); $parentConditionalLogics = Arr::get($this->field, 'settings.conditional_logics', []); $isAddressOrNameField = in_array(Arr::get($this->field, 'element'), ['address', 'input_name']); $isRepeatField = Arr::get($this->field, 'element') === 'input_repeat' || Arr::get($this->field, 'element') == 'repeater_field'; foreach ($customFields as $index => $customField) { // If the current field is in fact `address` || `name` field // then we have to only keep the enabled child fields // by the user from the form editor settings. if ($isAddressOrNameField) { if (!Arr::get($customField, 'settings.visible', false)) { unset($customFields[$index]); continue; } } // Depending on whether the parent field is a repeat field or not // the modified attribute name of the child field will vary. if ($isRepeatField) { $modifiedAttribute = $parentAttribute.'['.$index.'].*'; } else { $modifiedAttribute = $parentAttribute.'['.Arr::get($customField, 'attributes.name').']'; } $modifiedLabel = $parentAttribute.'['.Arr::get($customField, 'settings.label').']'; $customField['attributes']['name'] = $modifiedAttribute; $customField['settings']['label'] = $modifiedLabel; // Now, we'll replace the `conditional_logics` property $customField['settings']['conditional_logics'] = $parentConditionalLogics; // Now that this field's properties are handled we can pass // it to the extract field method to extract it's data. $this->extractField($customField); } } return $this; } /** * Set the raw field of the form field. * * @return $this */ protected function setRaw() { if (in_array('raw', $this->with)) { $this->result[$this->attribute]['raw'] = $this->field; } return $this; } } app/Services/Report/ReportHelper.php000064400000023527147600120010013506 0ustar00 $input) { $elements[$inputName] = $input['element']; if ('select_country' == $input['element']) { $formInputs[$inputName]['options'] = getFluentFormCountryList(); } } $reportableInputs = Helper::getReportableInputs(); $formReportableInputs = array_intersect($reportableInputs, array_values($elements)); $reportableInputs = Helper::getSubFieldReportableInputs(); $formSubFieldInputs = array_intersect($reportableInputs, array_values($elements)); if (!$formReportableInputs && !$formSubFieldInputs) { return [ 'report_items' => (object)[], 'total_entries' => 0, ]; } $inputs = []; $subfieldInputs = []; foreach ($elements as $elementKey => $element) { if (in_array($element, $formReportableInputs)) { $inputs[$elementKey] = $element; } if (in_array($element, $formSubFieldInputs)) { $subfieldInputs[$elementKey] = $element; } } $reports = static::getInputReport($form->id, array_keys($inputs), $statuses); $subFieldReports = static::getSubFieldInputReport($form->id, array_keys($subfieldInputs), $statuses); $reports = array_merge($reports, $subFieldReports); foreach ($reports as $reportKey => $report) { $reports[$reportKey]['label'] = $inputLabels[$reportKey]; $reports[$reportKey]['element'] = Arr::get($inputs, $reportKey, []); $reports[$reportKey]['options'] = $formInputs[$reportKey]['options']; } return [ 'report_items' => $reports, 'total_entries' => static::getEntryCounts($form->id, $statuses), 'browsers' => static::getbrowserCounts($form->id, $statuses), 'devices' => static::getDeviceCounts($form->id, $statuses), ]; } public static function getInputReport($formId, $fieldNames, $statuses = ['read', 'unread', 'unapproved', 'approved', 'declined', 'unconfirmed', 'confirmed']) { if (!$fieldNames) { return []; } $reports = EntryDetails::select(['field_name', 'sub_field_name', 'field_value']) ->where('form_id', $formId) ->whereIn('field_name', $fieldNames) ->when( is_array($statuses) && (count($statuses) > 0), function ($q) use ($statuses) { return $q->whereHas('submission', function ($q) use ($statuses) { return $q->whereIn('status', $statuses); }); }) ->selectRaw('COUNT(field_name) AS total_count') ->groupBy(['field_name', 'field_value']) ->get(); $formattedReports = []; foreach ($reports as $report) { $formattedReports[$report->field_name]['reports'][] = [ 'value' => maybe_unserialize($report->field_value), 'count' => $report->total_count, 'sub_field' => $report->sub_field_name, ]; $formattedReports[$report->field_name]['total_entry'] = static::getEntryTotal($report->field_name, $formId, $statuses); } if ($formattedReports) { //sync with form field order $formattedReports = array_replace(array_intersect_key(array_flip($fieldNames), $formattedReports), $formattedReports); } return $formattedReports; } public static function getSubFieldInputReport($formId, $fieldNames, $statuses) { if (!$fieldNames) { return []; } $reports = EntryDetails::select(['field_name', 'sub_field_name', 'field_value']) ->selectRaw('COUNT(field_name) AS total_count') ->where('form_id', $formId) ->whereIn('field_name', $fieldNames) ->when( is_array($statuses) && (count($statuses) > 0), function ($q) use ($statuses) { return $q->whereHas('submission', function ($q) use ($statuses) { return $q->whereIn('status', $statuses); }); }) ->groupBy(['field_name', 'field_value', 'sub_field_name']) ->get()->toArray(); return static::getFormattedReportsForSubInputs($reports, $formId, $statuses); } protected static function getFormattedReportsForSubInputs($reports, $formId, $statuses) { if (!count($reports)) { return []; } $formattedReports = []; foreach ($reports as $report) { static::setReportForSubInput((array)$report, $formattedReports); } foreach ($formattedReports as $fieldName => $val) { $formattedReports[$fieldName]['total_entry'] = static::getEntryTotal( Arr::get($report,'field_name'), $formId, $statuses ); $formattedReports[$fieldName]['reports'] = array_values( $formattedReports[$fieldName]['reports'] ); } return $formattedReports; } protected static function setReportForSubInput($report, &$formattedReports) { $filedValue = maybe_unserialize(Arr::get($report,'field_value')); if (is_array($filedValue)) { foreach ($filedValue as $fVal) { static::setReportForSubInput( array_merge($report, ['field_value' => $fVal]), $formattedReports ); } } else { $value = Arr::get($report,'sub_field_name') . ' : ' . $filedValue; $count = Arr::get($formattedReports, $report['field_name'] . '.reports.' . $value . '.count'); $count = $count ? $count + Arr::get($report,'total_count') : Arr::get($report,'total_count'); $formattedReports[$report['field_name']]['reports'][$value] = [ 'value' => $value, 'count' => $count, 'sub_field' => $report['sub_field_name'], ]; } } public static function getEntryTotal($fieldName, $formId, $statuses = false) { return EntryDetails::select('id')->where('form_id', $formId) ->where('field_name', $fieldName) ->when( is_array($statuses) && (count($statuses) > 0), function ($q) use ($statuses) { return $q->whereHas('submission', function ($q) use ($statuses) { return $q->whereIn('status', $statuses); }); } ) ->distinct(['field_name','submission_id']) ->count(); } private static function getEntryCounts($formId, $statuses = false) { return Submission::where('form_id', $formId) ->when( is_array($statuses) && (count($statuses) > 0), function ($q) use ($statuses) { return $q->whereIn('status', $statuses); }) ->when(!$statuses, function ($q) { return $q->where('status', '!=', 'trashed'); })->count(); } public static function getBrowserCounts($formId, $statuses = false) { return static::getCounts($formId, 'browser', $statuses); } public static function getDeviceCounts($formId, $statuses = false) { return static::getCounts($formId, 'device', $statuses); } private static function getCounts($formId, $for, $statuses) { $deviceCounts = Submission::select([ "$for", ]) ->selectRaw('COUNT(id) as total_count') ->where('form_id', $formId) ->when( is_array($statuses) && (count($statuses) > 0), function ($q) use ($statuses) { return $q->whereIn('status', $statuses); }) ->when(!$statuses, function ($q) { return $q->where('status', '!=', 'trashed'); }) ->groupBy("$for")->get(); $formattedData = []; foreach ($deviceCounts as $deviceCount) { $formattedData[$deviceCount->{$for}] = $deviceCount->total_count; } return $formattedData; } public static function maybeMigrateData($formId) { // We have to check if we need to migrate the data if ('yes' == Helper::getFormMeta($formId, 'report_data_migrated')) { return true; } // let's migrate the data $unmigratedData = Submission::select(['id', 'response']) ->where('form_id', $formId) ->doesntHave('entryDetails') ->get(); if (!$unmigratedData) { return Helper::setFormMeta($formId, 'report_data_migrated', 'yes'); } $submissionService = new SubmissionService(); foreach ($unmigratedData as $datum) { $value = json_decode($datum->response, true); $submissionService->recordEntryDetails($datum->id, $formId, $value); } return true; } } app/Services/Report/ReportService.php000064400000002171147600120010013657 0ustar00getMessage()); } } } app/Services/Roles/RolesService.php000064400000004254147600120010013305 0ustar00 [], 'roles' => [], ]); } $formatted = $this->getFormattedRoles(); $capability = get_option('_fluentform_form_permission'); if (is_string($capability)) { $capability = []; } return ([ 'capability' => $capability, 'roles' => $formatted, ]); } public function setCapability($attributes = []) { if (current_user_can('manage_options')) { $capability = wp_unslash(Arr::get($attributes, 'capability', [])); foreach ($capability as $item) { if ('subscriber' == strtolower($item)) { return ([ 'message' => __('Sorry, you can not give access to the Subscriber role.', 'fluentform'), ]); } } update_option('_fluentform_form_permission', $capability, 'no'); return ([ 'message' => __('Successfully saved the role(s).', 'fluentform'), ]); } else { return ([ 'message' => __('Sorry, You can not update permissions. Only administrators can update permissions', 'fluentform') ]); } } private function getFormattedRoles() { if (!function_exists('get_editable_roles')) { require_once ABSPATH . 'wp-admin/includes/user.php'; } $formatted = []; $roles = \get_editable_roles(); foreach ($roles as $key => $role) { if ('administrator' == $key) { continue; } if ('subscriber' != $key) { $formatted[] = [ 'name' => $role['name'], 'key' => $key, ]; } } return $formatted; } } app/Services/Scheduler/Scheduler.php000064400000017615147600120010013455 0ustar00 'yes', 'send_to_type' => 'admin_email', 'custom_recipients' => '', 'sending_day' => 'Mon' ]; $settings = get_option('_fluentform_email_report_summary'); if($settings) { $settings = wp_parse_args($settings, $defaults); } else { $settings = $defaults; } $settings = apply_filters('fluentform/email_summary_settings', $settings); if($settings['status'] == 'no') { return; } $currentDay = date('D'); $reportingDay = $settings['sending_day']; $config = apply_filters_deprecated( 'fluentform_email_summary_config', [ [ 'status' => $currentDay == $reportingDay, 'days' => 7 ] ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_summary_config', 'Use fluentform/email_summary_config instead of fluentform_email_summary_config.' ); $config = apply_filters('fluentform/email_summary_config', $config); if (!$config['status']) { return; } $days = $config['days']; if($settings['send_to_type'] == 'admin_email') { $recipients = [get_option('admin_email')]; } else { $custom_recipients = $settings['custom_recipients']; $custom_recipients = explode(',', $custom_recipients); $recipients = []; foreach ($custom_recipients as $recipient) { $recipient = trim($recipient); if(is_email($recipient)) { $recipients[] = $recipient; } } } if(!$recipients) { return; } // Let's grab the reports global $wpdb; $days = intval($days); if(!$days) { $days = 7; } $reportDateFrom = date('Y-m-d', time() - $days * 86400); // 7 days $submissionCounts = Submission::select([ wpFluent()->raw("COUNT({$wpdb->prefix}fluentform_submissions.id) as total"), 'fluentform_submissions.form_id', 'fluentform_forms.title' ]) ->groupBy('fluentform_submissions.form_id') ->orderBy('total', 'DESC') ->where('fluentform_submissions.created_at', '>', $reportDateFrom) ->join('fluentform_forms', 'fluentform_forms.id', '=', 'fluentform_submissions.form_id') ->limit(15) ->get(); foreach ($submissionCounts as $submissionCount) { $submissionCount->permalink = admin_url('admin.php?page=fluent_forms&route=entries&form_id='.$submissionCount->form_id); } if(!$submissionCounts || $submissionCounts->isEmpty()) { return; // Nothing found } $paymentCounts = []; if(defined('FLUENTFORMPRO') && get_option('__fluentform_payment_module_settings')) { $paymentCounts = wpFluent()->table('fluentform_transactions') ->select([ wpFluent()->raw("SUM({$wpdb->prefix}fluentform_transactions.payment_total) as total_amount"), 'fluentform_transactions.form_id', 'fluentform_transactions.currency', 'fluentform_forms.title' ]) ->groupBy('fluentform_transactions.form_id') ->orderBy('total_amount', 'DESC') ->where('fluentform_transactions.created_at', '>', $reportDateFrom) ->where('fluentform_transactions.status', '=', 'paid') ->join('fluentform_forms', 'fluentform_forms.id', '=', 'fluentform_transactions.form_id') ->limit(15) ->get(); foreach ($paymentCounts as $paymentCount) { $paymentCount->readable_amount = $paymentCount->currency.' '.number_format($paymentCount->total_amount / 100); } } $data = array( 'submissions' => $submissionCounts, 'payments' => $paymentCounts, 'days' => $days ); $emailBody = wpFluentForm('view')->make('email.report.body', $data); $emailBody = apply_filters_deprecated( 'fluentform_email_summary_body', [ $emailBody, $data ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_summary_body', 'Use fluentform/email_summary_body instead of fluentform_email_summary_body.' ); $emailBody = apply_filters('fluentform/email_summary_body', $emailBody, $data); $originalEmailBody = $emailBody; ob_start(); try { // apply CSS styles inline for picky email clients $emogrifier = new Emogrifier($emailBody); $emailBody = $emogrifier->emogrify(); } catch (\Exception $e) { } $maybeError = ob_get_clean(); if ($maybeError) { $emailBody = $originalEmailBody; } $headers = [ 'Content-Type: text/html; charset=utf-8' ]; $emailSubject = sprintf(esc_html__('Email Summary of Your Forms (Last %d Days)', 'fluentform'), $days); if (isset($settings['subject']) && $settings['subject']) { $emailSubject = $settings['subject']; } $emailSubject = apply_filters_deprecated( 'fluentform_email_summary_subject', [ $emailSubject ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_summary_subject', 'Use fluentform/email_summary_subject instead of fluentform_email_summary_subject' ); $emailSubject = apply_filters('fluentform/email_summary_subject', $emailSubject); $emailResult = wp_mail($recipients, $emailSubject, $emailBody, $headers); do_action_deprecated( 'fluentform_email_summary_details', [ [ 'recipients' => $recipients, 'email_subject' => $emailSubject, 'email_body' => $emailBody ], $data, $emailResult ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_summary_details', 'Use fluentform/email_summary_details instead of fluentform_email_summary_details.' ); do_action('fluentform/email_summary_details', [ 'recipients' => $recipients, 'email_subject' => $emailSubject, 'email_body' => $emailBody ], $data, $emailResult); return $emailResult; } private static function cleanUpOldData() { $days = 60; $days = apply_filters_deprecated( 'fluentform_cleanup_days_count', [ $days ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/cleanup_days_count', 'Use fluentform/cleanup_days_count instead of fluentform_cleanup_days_count.' ); $deleteDaysCount = apply_filters('fluentform/cleanup_days_count', $days); if(!$deleteDaysCount) { return; } $seconds = $deleteDaysCount * 86400; $deleteTo = date('Y-m-d H:i:s', time() - $seconds); // delete 60 days old analytics data FormAnalytics::where('created_at', '<', $deleteTo) ->delete(); // delete 60 days old scheduled_actions data \FluentForm\App\Models\Scheduler::where('created_at', '<', $deleteTo) ->delete(); } } app/Services/Settings/Validator/Notifications.php000064400000003776147600120010016162 0ustar00 'required', 'sendTo.email' => 'required_if:sendTo.type,email', 'sendTo.field' => 'required_if:sendTo.type,field', 'sendTo.routing' => 'required_if:sendTo.type,routing', 'subject' => 'required', 'message' => 'required', ], [ 'sendTo.type.required' => 'The Send To field is required.', 'sendTo.email.required_if' => 'The Send to Email field is required.', 'sendTo.field.required_if' => 'The Send to Field field is required.', 'sendTo.routing' => 'Please fill all the routing rules above.', ], ]; } /** * Add conditional validations to the validator. * * @param \FluentForm\Framework\Validator\Validator $validator * * @return \FluentForm\Framework\Validator\Validator */ public static function conditionalValidations(Validator $validator) { $validator->sometimes('sendTo.routing', 'required', function ($input) { if ('routing' !== ArrayHelper::get($input, 'sendTo.type')) { return false; } $routingInputs = ArrayHelper::get($input, 'sendTo.routing'); $required = false; foreach ($routingInputs as $routingInput) { if (!$routingInput['input_value'] || !$routingInput['field']) { $required = true; break; } } return $required; }); return $validator; } } app/Services/Settings/Validator/Validate.php000064400000002660147600120010015071 0ustar00make($data, $rules, $messages); // Add conditional validations if there's any. $validator = static::conditionalValidations($validator); // Validate and process response. if ($validator->validate()->fails()) { throw new ValidationException('Unprocessable Entity!', 422, null, $validator->errors()); } return true; } /** * Produce the necessary validation rules and corresponding messages * * @return array */ public static function validations() { return [[], []]; } /** * Add conditional validations to the validator. * * @param \FluentForm\Framework\Validator\Validator $validator * * @return \FluentForm\Framework\Validator\Validator */ public static function conditionalValidations(Validator $validator) { return $validator; } } app/Services/Settings/Validator/MailChimps.php000064400000001375147600120010015370 0ustar00 'required', 'list' => 'required', 'fieldEmailAddress' => 'required', ], [ 'name.required' => 'The Name field is required.', 'list.required' => 'The Mailchimp List field is required.', 'fieldEmailAddress.required' => 'The Email Address field is required.', ], ]; } } app/Services/Settings/Validator/Confirmations.php000064400000002756147600120010016161 0ustar00 'required', 'customPage' => 'required_if:redirectTo,customPage', 'customUrl' => 'required_if:redirectTo,customUrl', ], [ 'redirectTo.required' => __('The Confirmation Type field is required.', 'fluentform'), 'customPage.required_if' => __('The Page field is required when Confirmation Type is Page.', 'fluentform'), 'customUrl.required_if' => __('The Redirect URL field is required when Confirmation Type is Redirect.', 'fluentform'), 'customUrl.required' => __('The Redirect URL format is invalid.', 'fluentform'), ], ]; } /** * Add conditional validations to the validator. * * @param \FluentForm\Framework\Validator\Validator $validator * * @return \FluentForm\Framework\Validator\Validator */ public static function conditionalValidations(Validator $validator) { $validator->sometimes('customUrl', 'required', function ($input) { return 'customUrl' === $input['redirectTo']; }); return $validator; } } app/Services/Settings/Validator/Pdfs.php000064400000001266147600120010014235 0ustar00 'required', 'template' => 'required', 'filename' => 'required', ], [ 'name.required' => 'The Name field is required.', 'template.required' => 'The Template field is required.', 'filename.required' => 'The Filename field is required.', ], ]; } } app/Services/Settings/SettingsService.php000064400000032252147600120010014534 0ustar00 $metaKey, 'form_id' => $formId])->get(); foreach ($result as $item) { $value = Helper::isJson($item->value) ? json_decode($item->value, true) : $item->value; if ('notifications' == $metaKey) { if (!$value) { $value = ['name' => '']; } } if (isset($value['layout']) && !isset($value['layout']['asteriskPlacement'])) { $value['layout']['asteriskPlacement'] = 'asterisk-right'; } $item->value = $value; } $result = apply_filters_deprecated( 'fluentform_get_meta_key_settings_response', [ $result, $formId, $metaKey ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/get_meta_key_settings_response', 'Use fluentform/get_meta_key_settings_response instead of fluentform_get_meta_key_settings_response' ); return apply_filters('fluentform/get_meta_key_settings_response', $result, $formId, $metaKey); } public function general($formId) { $settings = [ 'generalSettings' => Form::getFormsDefaultSettings($formId), 'advancedValidationSettings' => Form::getAdvancedValidationSettings($formId), ]; $settings = apply_filters_deprecated( 'fluentform_form_settings_ajax', [ $settings, $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/form_settings_ajax', 'Use fluentform/form_settings_ajax instead of fluentform/form_settings_ajax' ); $settings = apply_filters('fluentform/form_settings_ajax', $settings, $formId); return $settings; } public function saveGeneral($attributes = []) { $formId = (int) Arr::get($attributes, 'form_id'); $formSettings = json_decode(Arr::get($attributes, 'formSettings'), true); $formSettings = $this->sanitizeData($formSettings); $advancedValidationSettings = json_decode(Arr::get($attributes, 'advancedValidationSettings'), true); $advancedValidationSettings = $this->sanitizeData($advancedValidationSettings); Validator::validate( 'confirmations', Arr::get($formSettings, 'confirmation', []) ); FormMeta::persist($formId, 'formSettings', $formSettings); FormMeta::persist($formId, 'advancedValidationSettings', $advancedValidationSettings); $deleteAfterXDaysStatus = Arr::get($formSettings, 'delete_after_x_days'); $deleteDaysCount = Arr::get($formSettings, 'auto_delete_days'); $deleteOnSubmission = Arr::get($formSettings, 'delete_entry_on_submission'); if ('yes' != $deleteOnSubmission && $deleteDaysCount && 'yes' == $deleteAfterXDaysStatus) { // We have to set meta values FormMeta::persist($formId, 'auto_delete_days', $deleteDaysCount); } else { // we have to delete meta values FormMeta::remove($formId, 'auto_delete_days'); } $convFormPerStepSave = Arr::get($formSettings, 'conv_form_per_step_save') && Helper::isConversionForm($formId); if ($convFormPerStepSave) { FormMeta::persist($formId, 'conv_form_per_step_save', true); } else { FormMeta::remove($formId, 'conv_form_per_step_save'); } $convFormResumeFromLastStep = $convFormPerStepSave && Arr::get($formSettings, 'conv_form_resume_from_last_step'); if ($convFormResumeFromLastStep) { FormMeta::persist($formId, 'conv_form_resume_from_last_step', true); } else { FormMeta::remove($formId, 'conv_form_resume_from_last_step'); } do_action_deprecated( 'fluentform_after_save_form_settings', [ $formId, $attributes ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/after_save_form_settings', 'Use fluentform/after_save_form_settings instead of fluentform_after_save_form_settings.' ); do_action('fluentform/after_save_form_settings', $formId, $attributes); } private function sanitizeData($settings) { if (fluentformCanUnfilteredHTML()) { return $settings; } $sanitizerMap = [ 'redirectTo' => 'sanitize_text_field', 'redirectMessage' => 'fluentform_sanitize_html', 'messageToShow' => 'fluentform_sanitize_html', 'customPage' => 'sanitize_text_field', 'samePageFormBehavior' => 'sanitize_text_field', 'customUrl' => 'sanitize_url', 'enabled' => 'rest_sanitize_boolean', 'numberOfEntries' => 'intval', 'period' => 'intval', 'limitReachedMsg' => 'sanitize_text_field', 'start' => 'sanitize_text_field', 'end' => 'sanitize_text_field', 'pendingMsg' => 'sanitize_text_field', 'expiredMsg' => 'sanitize_text_field', 'requireLoginMsg' => 'sanitize_text_field', 'labelPlacement' => 'sanitize_text_field', 'helpMessagePlacement' => 'sanitize_text_field', 'errorMessagePlacement' => 'sanitize_text_field', 'asteriskPlacement' => 'sanitize_text_field', 'delete_entry_on_submission' => 'sanitize_text_field', 'id' => 'intval', 'showLabel' => 'rest_sanitize_boolean', 'showCount' => 'rest_sanitize_boolean', 'status' => 'rest_sanitize_boolean', 'type' => 'sanitize_text_field', 'field' => 'sanitize_text_field', 'operator' => 'sanitize_text_field', 'value' => 'sanitize_text_field', 'error_message' => 'sanitize_text_field', 'validation_type' => 'sanitize_text_field', 'name' => 'sanitize_text_field', 'email' => 'sanitize_text_field', 'fromName' => 'sanitize_text_field', 'fromEmail' => 'sanitize_text_field', 'replyTo' => 'sanitize_text_field', 'bcc' => 'sanitize_text_field', 'subject' => 'sanitize_text_field', 'message' => 'fluentform_sanitize_html', 'url' => 'sanitize_url', 'webhook' => 'sanitize_url', 'textTitle' => 'sanitize_text_field', 'conv_form_per_step_save' => 'rest_sanitize_boolean' ]; return fluentform_backend_sanitizer($settings, $sanitizerMap); } public function store($attributes = []) { $formId = (int) Arr::get($attributes, 'form_id'); $value = Arr::get($attributes, 'value', ''); $valueArray = $value ? json_decode($value, true) : []; $key = sanitize_text_field(Arr::get($attributes, 'meta_key')); if ('formSettings' == $key) { Validator::validate( 'confirmations', Arr::get( $valueArray, 'confirmation', [] ) ); } else { Validator::validate($key, $valueArray); } $valueArray = $this->sanitizeData($valueArray); $value = json_encode($valueArray); $data = [ 'meta_key' => $key, 'value' => $value, 'form_id' => $formId, ]; // If the request has an valid id field it's safe to assume // that the user wants to update an existing settings. // So, we'll proceed to do so by finding it first. $id = (int) Arr::get($attributes, 'meta_id'); $settingsQuery = FormMeta::where('form_id', $formId); $settings = null; if ($id) { $settings = $settingsQuery->find($id); } if (!empty($settings)) { $settingsQuery->where('id', $settings->id)->update($data); $insertId = $settings->id; } else { $insertId = $settingsQuery->insertGetId($data); } return [ $insertId, $valueArray, ]; } public function remove($attributes = []) { $formId = intval(Arr::get($attributes, 'form_id')); $id = intval(Arr::get($attributes, 'meta_id')); FormMeta::where('form_id', $formId)->where('id', $id)->delete(); } public function conversationalDesign($formId) { $conversationalForm = new FluentConversational(); return [ 'design_settings' => $conversationalForm->getDesignSettings($formId), 'meta_settings' => $conversationalForm->getMetaSettings($formId), 'has_pro' => defined('FLUENTFORMPRO'), ]; } public function storeConversationalDesign($attributes, $formId) { $metaKey = "ffc_form_settings"; $formId = intval($formId); $attributes = fluentFormSanitizer($attributes); $settings = Arr::get($attributes, 'design_settings'); FormMeta::persist($formId, $metaKey . '_design', $settings); $generatedCss = wp_strip_all_tags(Arr::get($attributes, 'generated_css')); if ($generatedCss) { FormMeta::persist($formId, $metaKey . '_generated_css', $generatedCss); } $meta = Arr::get($attributes, 'meta_settings', []); $metaSanitizationMap = [ 'title' => 'sanitize_text_field', 'description' => [$this, 'secureMetaDescription'], 'featured_image' => 'esc_url_raw', 'share_key' => 'sanitize_text_field', 'google_font_href' => 'esc_url_raw', 'font_css' => 'wp_kses_post', ]; foreach ($metaSanitizationMap as $key => $sanitizer) { if (isset($meta[$key])) { $meta[$key] = call_user_func($sanitizer, $meta[$key]); } } if ($meta) { FormMeta::persist($formId, $metaKey . '_meta', $meta); } $params = [ 'fluent-form' => $formId, ]; if (isset($meta['share_key']) && !empty($meta['share_key'])) { $params['form'] = $meta['share_key']; } $shareUrl = add_query_arg($params, site_url()); return [ 'message' => __('Settings successfully updated'), 'share_url' => $shareUrl, ]; } public function getPreset($formId) { $formId = intval($formId); $selectedPreset = Helper::getFormMeta($formId, '_ff_selected_style', 'ffs_default'); $selectedPreset = $selectedPreset ?: 'ffs_default'; $presets = [ 'ffs_default' => [ 'label' => __('Default', 'fluentform'), 'style' => '[]', ], 'ffs_inherit_theme' => [ 'label' => __('Inherit Theme Style', 'fluentform'), 'style' => '{}', ], ]; return [ 'selected_preset'=> $selectedPreset, 'presets' => $presets, ]; } /** * @throws \Exception */ public function savePreset($attributes) { $formId = intval(Arr::get($attributes, 'form_id')); $selectedPreset = Arr::get($attributes, 'selected_preset'); if ($selectedPreset && Helper::setFormMeta($formId, '_ff_selected_style', $selectedPreset)) { return [ 'message' => __('Settings save successfully', 'fluentform'), ]; } throw new \Exception(__('Settings save failed', 'fluentform')); } public function secureMetaDescription($description) { $clean = preg_replace( [ '/url\s*=/', // Remove URL assignments '/http-equiv\s*=/', // Remove HTTP equiv '/refresh/', // Remove refresh attempts ], '', $description ); $clean = wp_strip_all_tags($clean); $clean = sanitize_text_field($clean); return trim($clean); } } app/Services/Settings/Customizer.php000064400000002562147600120010013560 0ustar00whereIn('meta_key', $metaKeys) ->get() ->keyBy(function ($item) { if ($item->meta_key === '_custom_form_css') { return 'css'; } elseif ($item->meta_key === '_custom_form_js') { return 'js'; } else { return $item->meta_key; } }) ->transform(function ($item) { return $item->value; })->toArray(); } public function store($attributes = []) { if (!fluentformCanUnfilteredHTML()) { throw new Exception( __('You need unfiltered_html permission to save Custom CSS & JS', 'fluentform') ); } $formId = absint(Arr::get($attributes, 'form_id')); $css = fluentformSanitizeCSS(Arr::get($attributes, 'css')); $js = fluentform_kses_js(Arr::get($attributes, 'js')); FormMeta::persist($formId, '_custom_form_css', $css); FormMeta::persist($formId, '_custom_form_js', $js); } } app/Services/Settings/Validator.php000064400000001140147600120010013330 0ustar00prefixes[$prefix]) === false) { $this->prefixes[$prefix] = array(); } // retain the base directory for the namespace prefix if ($prepend) { array_unshift($this->prefixes[$prefix], $baseDir); } else { array_push($this->prefixes[$prefix], $baseDir); } } /** * Loads the class file for a given class name. * * @param string $class The fully-qualified class name. * @return mixed The mapped file name on success, or boolean false on * failure. */ public function loadClass($class) { // the current namespace prefix $prefix = $class; // work backwards through the namespace names of the fully-qualified // class name to find a mapped file name while (false !== $pos = strrpos($prefix, '\\')) { // retain the trailing namespace separator in the prefix $prefix = substr($class, 0, $pos + 1); // the rest is the relative class name $relativeClass = substr($class, $pos + 1); // try to load a mapped file for the prefix and relative class $mappedFile = $this->loadMappedFile($prefix, $relativeClass); if ($mappedFile !== false) { return $mappedFile; } // remove the trailing namespace separator for the next iteration // of strrpos() $prefix = rtrim($prefix, '\\'); } // never found a mapped file return false; } /** * Load the mapped file for a namespace prefix and relative class. * * @param string $prefix The namespace prefix. * @param string $relativeClass The relative class name. * @return mixed Boolean false if no mapped file can be loaded, or the * name of the mapped file that was loaded. */ protected function loadMappedFile($prefix, $relativeClass) { // are there any base directories for this namespace prefix? if (isset($this->prefixes[$prefix]) === false) { return false; } // look through base directories for this namespace prefix foreach ($this->prefixes[$prefix] as $baseDir) { // replace the namespace prefix with the base directory, // replace namespace separators with directory separators // in the relative class name, append with .php $file = $baseDir . str_replace('\\', '/', $relativeClass) . '.php'; // if the mapped file exists, require it if ($this->requireFile($file)) { // yes, we're done return $file; } } // never found it return false; } /** * If a file exists, require it from the file system. * * @param string $file The file to require. * @return bool True if the file exists, false if not. */ protected function requireFile($file) { if (file_exists($file)) { require $file; return true; } return false; } } app/Services/Spout/Autoloader/autoload.php000064400000000533147600120010014631 0ustar00register(); $loader->addNamespace('Box\Spout', $srcBaseDirectory); app/Services/Spout/Common/Escaper/ODS.php000064400000004600147600120010014160 0ustar00', '&') need to be encoded. // Single and double quotes can be left as is. $escapedString = htmlspecialchars($string, ENT_NOQUOTES); // control characters values are from 0 to 1F (hex values) in the ASCII table // some characters should not be escaped though: "\t", "\r" and "\n". $regexPattern = '[\x00-\x08' . // skipping "\t" (0x9) and "\n" (0xA) '\x0B-\x0C' . // skipping "\r" (0xD) '\x0E-\x1F]'; $replacedString = preg_replace("/$regexPattern/", '�', $escapedString); } return $replacedString; } /** * Unescapes the given string to make it compatible with XLSX * * @param string $string The string to unescape * @return string The unescaped string */ public function unescape($string) { // ============== // = WARNING = // ============== // It is assumed that the given string has already had its XML entities decoded. // This is true if the string is coming from a DOMNode (as DOMNode already decode XML entities on creation). // Therefore there is no need to call "htmlspecialchars_decode()". return $string; } } app/Services/Spout/Common/Escaper/XLSX.php000064400000015207147600120010014336 0ustar00escapableControlCharactersPattern = $this->getEscapableControlCharactersPattern(); $this->controlCharactersEscapingMap = $this->getControlCharactersEscapingMap(); $this->controlCharactersEscapingReverseMap = array_flip($this->controlCharactersEscapingMap); } /** * Escapes the given string to make it compatible with XLSX * * @param string $string The string to escape * @return string The escaped string */ public function escape($string) { $escapedString = $this->escapeControlCharacters($string); // @NOTE: Using ENT_NOQUOTES as only XML entities ('<', '>', '&') need to be encoded. // Single and double quotes can be left as is. $escapedString = htmlspecialchars($escapedString, ENT_NOQUOTES); return $escapedString; } /** * Unescapes the given string to make it compatible with XLSX * * @param string $string The string to unescape * @return string The unescaped string */ public function unescape($string) { // ============== // = WARNING = // ============== // It is assumed that the given string has already had its XML entities decoded. // This is true if the string is coming from a DOMNode (as DOMNode already decode XML entities on creation). // Therefore there is no need to call "htmlspecialchars_decode()". $unescapedString = $this->unescapeControlCharacters($string); return $unescapedString; } /** * @return string Regex pattern containing all escapable control characters */ protected function getEscapableControlCharactersPattern() { // control characters values are from 0 to 1F (hex values) in the ASCII table // some characters should not be escaped though: "\t", "\r" and "\n". return '[\x00-\x08' . // skipping "\t" (0x9) and "\n" (0xA) '\x0B-\x0C' . // skipping "\r" (0xD) '\x0E-\x1F]'; } /** * Builds the map containing control characters to be escaped * mapped to their escaped values. * "\t", "\r" and "\n" don't need to be escaped. * * NOTE: the logic has been adapted from the XlsxWriter library (BSD License) * @link https://github.com/jmcnamara/XlsxWriter/blob/f1e610f29/xlsxwriter/sharedstrings.py#L89 * * @return string[] */ protected function getControlCharactersEscapingMap() { $controlCharactersEscapingMap = []; // control characters values are from 0 to 1F (hex values) in the ASCII table for ($charValue = 0x00; $charValue <= 0x1F; $charValue++) { $character = chr($charValue); if (preg_match("/{$this->escapableControlCharactersPattern}/", $character)) { $charHexValue = dechex($charValue); $escapedChar = '_x' . sprintf('%04s' , strtoupper($charHexValue)) . '_'; $controlCharactersEscapingMap[$escapedChar] = $character; } } return $controlCharactersEscapingMap; } /** * Converts PHP control characters from the given string to OpenXML escaped control characters * * Excel escapes control characters with _xHHHH_ and also escapes any * literal strings of that type by encoding the leading underscore. * So "\0" -> _x0000_ and "_x0000_" -> _x005F_x0000_. * * NOTE: the logic has been adapted from the XlsxWriter library (BSD License) * @link https://github.com/jmcnamara/XlsxWriter/blob/f1e610f29/xlsxwriter/sharedstrings.py#L89 * * @param string $string String to escape * @return string */ protected function escapeControlCharacters($string) { $escapedString = $this->escapeEscapeCharacter($string); // if no control characters if (!preg_match("/{$this->escapableControlCharactersPattern}/", $escapedString)) { return $escapedString; } return preg_replace_callback("/({$this->escapableControlCharactersPattern})/", function($matches) { return $this->controlCharactersEscapingReverseMap[$matches[0]]; }, $escapedString); } /** * Escapes the escape character: "_x0000_" -> "_x005F_x0000_" * * @param string $string String to escape * @return string The escaped string */ protected function escapeEscapeCharacter($string) { return preg_replace('/_(x[\dA-F]{4})_/', '_x005F_$1_', $string); } /** * Converts OpenXML escaped control characters from the given string to PHP control characters * * Excel escapes control characters with _xHHHH_ and also escapes any * literal strings of that type by encoding the leading underscore. * So "_x0000_" -> "\0" and "_x005F_x0000_" -> "_x0000_" * * NOTE: the logic has been adapted from the XlsxWriter library (BSD License) * @link https://github.com/jmcnamara/XlsxWriter/blob/f1e610f29/xlsxwriter/sharedstrings.py#L89 * * @param string $string String to unescape * @return string */ protected function unescapeControlCharacters($string) { $unescapedString = $string; foreach ($this->controlCharactersEscapingMap as $escapedCharValue => $charValue) { // only unescape characters that don't contain the escaped escape character for now $unescapedString = preg_replace("/(?unescapeEscapeCharacter($unescapedString); } /** * Unecapes the escape character: "_x005F_x0000_" => "_x0000_" * * @param string $string String to unescape * @return string The unescaped string */ protected function unescapeEscapeCharacter($string) { return preg_replace('/_x005F(_x[\dA-F]{4}_)/', '$1', $string); } } app/Services/Spout/Common/Escaper/CSV.php000064400000001422147600120010014165 0ustar00globalFunctionsHelper = $globalFunctionsHelper; $this->supportedEncodingsWithBom = [ self::ENCODING_UTF8 => self::BOM_UTF8, self::ENCODING_UTF16_LE => self::BOM_UTF16_LE, self::ENCODING_UTF16_BE => self::BOM_UTF16_BE, self::ENCODING_UTF32_LE => self::BOM_UTF32_LE, self::ENCODING_UTF32_BE => self::BOM_UTF32_BE, ]; } /** * Returns the number of bytes to use as offset in order to skip the BOM. * * @param resource $filePointer Pointer to the file to check * @param string $encoding Encoding of the file to check * @return int Bytes offset to apply to skip the BOM (0 means no BOM) */ public function getBytesOffsetToSkipBOM($filePointer, $encoding) { $byteOffsetToSkipBom = 0; if ($this->hasBOM($filePointer, $encoding)) { $bomUsed = $this->supportedEncodingsWithBom[$encoding]; // we skip the N first bytes $byteOffsetToSkipBom = strlen($bomUsed); } return $byteOffsetToSkipBom; } /** * Returns whether the file identified by the given pointer has a BOM. * * @param resource $filePointer Pointer to the file to check * @param string $encoding Encoding of the file to check * @return bool TRUE if the file has a BOM, FALSE otherwise */ protected function hasBOM($filePointer, $encoding) { $hasBOM = false; $this->globalFunctionsHelper->rewind($filePointer); if (array_key_exists($encoding, $this->supportedEncodingsWithBom)) { $potentialBom = $this->supportedEncodingsWithBom[$encoding]; $numBytesInBom = strlen($potentialBom); $hasBOM = ($this->globalFunctionsHelper->fgets($filePointer, $numBytesInBom + 1) === $potentialBom); } return $hasBOM; } /** * Attempts to convert a non UTF-8 string into UTF-8. * * @param string $string Non UTF-8 string to be converted * @param string $sourceEncoding The encoding used to encode the source string * @return string The converted, UTF-8 string * @throws \Box\Spout\Common\Exception\EncodingConversionException If conversion is not supported or if the conversion failed */ public function attemptConversionToUTF8($string, $sourceEncoding) { return $this->attemptConversion($string, $sourceEncoding, self::ENCODING_UTF8); } /** * Attempts to convert a UTF-8 string into the given encoding. * * @param string $string UTF-8 string to be converted * @param string $targetEncoding The encoding the string should be re-encoded into * @return string The converted string, encoded with the given encoding * @throws \Box\Spout\Common\Exception\EncodingConversionException If conversion is not supported or if the conversion failed */ public function attemptConversionFromUTF8($string, $targetEncoding) { return $this->attemptConversion($string, self::ENCODING_UTF8, $targetEncoding); } /** * Attempts to convert the given string to the given encoding. * Depending on what is installed on the server, we will try to iconv or mbstring. * * @param string $string string to be converted * @param string $sourceEncoding The encoding used to encode the source string * @param string $targetEncoding The encoding the string should be re-encoded into * @return string The converted string, encoded with the given encoding * @throws \Box\Spout\Common\Exception\EncodingConversionException If conversion is not supported or if the conversion failed */ protected function attemptConversion($string, $sourceEncoding, $targetEncoding) { // if source and target encodings are the same, it's a no-op if ($sourceEncoding === $targetEncoding) { return $string; } $convertedString = null; if ($this->canUseIconv()) { $convertedString = $this->globalFunctionsHelper->iconv($string, $sourceEncoding, $targetEncoding); } else if ($this->canUseMbString()) { $convertedString = $this->globalFunctionsHelper->mb_convert_encoding($string, $sourceEncoding, $targetEncoding); } else { throw new EncodingConversionException("The conversion from $sourceEncoding to $targetEncoding is not supported. Please install \"iconv\" or \"PHP Intl\"."); } if ($convertedString === false) { throw new EncodingConversionException("The conversion from $sourceEncoding to $targetEncoding failed."); } return $convertedString; } /** * Returns whether "iconv" can be used. * * @return bool TRUE if "iconv" is available and can be used, FALSE otherwise */ protected function canUseIconv() { return $this->globalFunctionsHelper->function_exists('iconv'); } /** * Returns whether "mb_string" functions can be used. * These functions come with the PHP Intl package. * * @return bool TRUE if "mb_string" functions are available and can be used, FALSE otherwise */ protected function canUseMbString() { return $this->globalFunctionsHelper->function_exists('mb_convert_encoding'); } } app/Services/Spout/Common/Helper/FileSystemHelper.php000064400000011323147600120010016614 0ustar00baseFolderRealPath = realpath($baseFolderPath); } /** * Creates an empty folder with the given name under the given parent folder. * * @param string $parentFolderPath The parent folder path under which the folder is going to be created * @param string $folderName The name of the folder to create * @return string Path of the created folder * @throws \Box\Spout\Common\Exception\IOException If unable to create the folder or if the folder path is not inside of the base folder */ public function createFolder($parentFolderPath, $folderName) { $this->throwIfOperationNotInBaseFolder($parentFolderPath); $folderPath = $parentFolderPath . '/' . $folderName; $wasCreationSuccessful = mkdir($folderPath, 0777, true); if (!$wasCreationSuccessful) { throw new IOException("Unable to create folder: $folderPath"); } return $folderPath; } /** * Creates a file with the given name and content in the given folder. * The parent folder must exist. * * @param string $parentFolderPath The parent folder path where the file is going to be created * @param string $fileName The name of the file to create * @param string $fileContents The contents of the file to create * @return string Path of the created file * @throws \Box\Spout\Common\Exception\IOException If unable to create the file or if the file path is not inside of the base folder */ public function createFileWithContents($parentFolderPath, $fileName, $fileContents) { $this->throwIfOperationNotInBaseFolder($parentFolderPath); $filePath = $parentFolderPath . '/' . $fileName; $wasCreationSuccessful = file_put_contents($filePath, $fileContents); if ($wasCreationSuccessful === false) { throw new IOException("Unable to create file: $filePath"); } return $filePath; } /** * Delete the file at the given path * * @param string $filePath Path of the file to delete * @return void * @throws \Box\Spout\Common\Exception\IOException If the file path is not inside of the base folder */ public function deleteFile($filePath) { $this->throwIfOperationNotInBaseFolder($filePath); if (file_exists($filePath) && is_file($filePath)) { unlink($filePath); } } /** * Delete the folder at the given path as well as all its contents * * @param string $folderPath Path of the folder to delete * @return void * @throws \Box\Spout\Common\Exception\IOException If the folder path is not inside of the base folder */ public function deleteFolderRecursively($folderPath) { $this->throwIfOperationNotInBaseFolder($folderPath); $itemIterator = new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator($folderPath, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::CHILD_FIRST ); foreach ($itemIterator as $item) { if ($item->isDir()) { rmdir($item->getPathname()); } else { unlink($item->getPathname()); } } rmdir($folderPath); } /** * All I/O operations must occur inside the base folder, for security reasons. * This function will throw an exception if the folder where the I/O operation * should occur is not inside the base folder. * * @param string $operationFolderPath The path of the folder where the I/O operation should occur * @return void * @throws \Box\Spout\Common\Exception\IOException If the folder where the I/O operation should occur is not inside the base folder */ protected function throwIfOperationNotInBaseFolder($operationFolderPath) { $operationFolderRealPath = realpath($operationFolderPath); $isInBaseFolder = (strpos($operationFolderRealPath, $this->baseFolderRealPath) === 0); if (!$isInBaseFolder) { throw new IOException("Cannot perform I/O operation outside of the base folder: {$this->baseFolderRealPath}"); } } } app/Services/Spout/Common/Helper/StringHelper.php000064400000004141147600120010015776 0ustar00hasMbstringSupport = extension_loaded('mbstring'); } /** * Returns the length of the given string. * It uses the multi-bytes function is available. * @see strlen * @see mb_strlen * * @param string $string * @return int */ public function getStringLength($string) { return $this->hasMbstringSupport ? mb_strlen($string) : strlen($string); } /** * Returns the position of the first occurrence of the given character/substring within the given string. * It uses the multi-bytes function is available. * @see strpos * @see mb_strpos * * @param string $char Needle * @param string $string Haystack * @return int Char/substring's first occurrence position within the string if found (starts at 0) or -1 if not found */ public function getCharFirstOccurrencePosition($char, $string) { $position = $this->hasMbstringSupport ? mb_strpos($string, $char) : strpos($string, $char); return ($position !== false) ? $position : -1; } /** * Returns the position of the last occurrence of the given character/substring within the given string. * It uses the multi-bytes function is available. * @see strrpos * @see mb_strrpos * * @param string $char Needle * @param string $string Haystack * @return int Char/substring's last occurrence position within the string if found (starts at 0) or -1 if not found */ public function getCharLastOccurrencePosition($char, $string) { $position = $this->hasMbstringSupport ? mb_strrpos($string, $char) : strrpos($string, $char); return ($position !== false) ? $position : -1; } } app/Services/Spout/Common/Helper/GlobalFunctionsHelper.php000064400000016575147600120010017637 0ustar00convertToUseRealPath($filePath); return file_get_contents($realFilePath); } /** * Updates the given file path to use a real path. * This is to avoid issues on some Windows setup. * * @param string $filePath File path * @return string The file path using a real path */ protected function convertToUseRealPath($filePath) { $realFilePath = $filePath; if ($this->isZipStream($filePath)) { if (preg_match('/zip:\/\/(.*)#(.*)/', $filePath, $matches)) { $documentPath = $matches[1]; $documentInsideZipPath = $matches[2]; $realFilePath = 'zip://' . realpath($documentPath) . '#' . $documentInsideZipPath; } } else { $realFilePath = realpath($filePath); } return $realFilePath; } /** * Returns whether the given path is a zip stream. * * @param string $path Path pointing to a document * @return bool TRUE if path is a zip stream, FALSE otherwise */ protected function isZipStream($path) { return (strpos($path, 'zip://') === 0); } /** * Wrapper around global function feof() * @see feof() * * @param resource * @return bool */ public function feof($handle) { return feof($handle); } /** * Wrapper around global function is_readable() * @see is_readable() * * @param string $fileName * @return bool */ public function is_readable($fileName) { return is_readable($fileName); } /** * Wrapper around global function basename() * @see basename() * * @param string $path * @param string|void $suffix * @return string */ public function basename($path, $suffix = null) { return basename($path, $suffix); } /** * Wrapper around global function header() * @see header() * * @param string $string * @return void */ public function header($string) { header($string); } /** * Wrapper around global function ob_end_clean() * @see ob_end_clean() * * @return void */ public function ob_end_clean() { if (ob_get_length() > 0) { ob_end_clean(); } } /** * Wrapper around global function iconv() * @see iconv() * * @param string $string The string to be converted * @param string $sourceEncoding The encoding of the source string * @param string $targetEncoding The encoding the source string should be converted to * @return string|bool the converted string or FALSE on failure. */ public function iconv($string, $sourceEncoding, $targetEncoding) { return iconv($sourceEncoding, $targetEncoding, $string); } /** * Wrapper around global function mb_convert_encoding() * @see mb_convert_encoding() * * @param string $string The string to be converted * @param string $sourceEncoding The encoding of the source string * @param string $targetEncoding The encoding the source string should be converted to * @return string|bool the converted string or FALSE on failure. */ public function mb_convert_encoding($string, $sourceEncoding, $targetEncoding) { return mb_convert_encoding($string, $targetEncoding, $sourceEncoding); } /** * Wrapper around global function stream_get_wrappers() * @see stream_get_wrappers() * * @return array */ public function stream_get_wrappers() { return stream_get_wrappers(); } /** * Wrapper around global function function_exists() * @see function_exists() * * @param string $functionName * @return bool */ public function function_exists($functionName) { return function_exists($functionName); } } app/Services/Spout/Common/Type.php000064400000000321147600120010013066 0ustar00init(); } /** * Initializes the singleton * @return void */ protected function init() {} final private function __wakeup() {} final private function __clone() {} } app/Services/Spout/Reader/CSV/RowIterator.php000064400000020737147600120010015050 0ustar00filePointer = $filePointer; $this->fieldDelimiter = $options->getFieldDelimiter(); $this->fieldEnclosure = $options->getFieldEnclosure(); $this->encoding = $options->getEncoding(); $this->inputEOLDelimiter = $options->getEndOfLineCharacter(); $this->shouldPreserveEmptyRows = $options->shouldPreserveEmptyRows(); $this->globalFunctionsHelper = $globalFunctionsHelper; $this->encodingHelper = new EncodingHelper($globalFunctionsHelper); } /** * Rewind the Iterator to the first element * @link http://php.net/manual/en/iterator.rewind.php * * @return void */ public function rewind() { $this->rewindAndSkipBom(); $this->numReadRows = 0; $this->rowDataBuffer = null; $this->next(); } /** * This rewinds and skips the BOM if inserted at the beginning of the file * by moving the file pointer after it, so that it is not read. * * @return void */ protected function rewindAndSkipBom() { $byteOffsetToSkipBom = $this->encodingHelper->getBytesOffsetToSkipBOM($this->filePointer, $this->encoding); // sets the cursor after the BOM (0 means no BOM, so rewind it) $this->globalFunctionsHelper->fseek($this->filePointer, $byteOffsetToSkipBom); } /** * Checks if current position is valid * @link http://php.net/manual/en/iterator.valid.php * * @return bool */ public function valid() { return ($this->filePointer && !$this->hasReachedEndOfFile); } /** * Move forward to next element. Reads data for the next unprocessed row. * @link http://php.net/manual/en/iterator.next.php * * @return void * @throws \Box\Spout\Common\Exception\EncodingConversionException If unable to convert data to UTF-8 */ public function next() { $this->hasReachedEndOfFile = $this->globalFunctionsHelper->feof($this->filePointer); if (!$this->hasReachedEndOfFile) { $this->readDataForNextRow(); } } /** * @return void * @throws \Box\Spout\Common\Exception\EncodingConversionException If unable to convert data to UTF-8 */ protected function readDataForNextRow() { do { $rowData = $this->getNextUTF8EncodedRow(); } while ($this->shouldReadNextRow($rowData)); if ($rowData !== false) { // str_replace will replace NULL values by empty strings $this->rowDataBuffer = str_replace(null, null, $rowData); $this->numReadRows++; } else { // If we reach this point, it means end of file was reached. // This happens when the last lines are empty lines. $this->hasReachedEndOfFile = true; } } /** * @param array|bool $currentRowData * @return bool Whether the data for the current row can be returned or if we need to keep reading */ protected function shouldReadNextRow($currentRowData) { $hasSuccessfullyFetchedRowData = ($currentRowData !== false); $hasNowReachedEndOfFile = $this->globalFunctionsHelper->feof($this->filePointer); $isEmptyLine = $this->isEmptyLine($currentRowData); return ( (!$hasSuccessfullyFetchedRowData && !$hasNowReachedEndOfFile) || (!$this->shouldPreserveEmptyRows && $isEmptyLine) ); } /** * Returns the next row, converted if necessary to UTF-8. * As fgetcsv() does not manage correctly encoding for non UTF-8 data, * we remove manually whitespace with ltrim or rtrim (depending on the order of the bytes) * * @return array|false The row for the current file pointer, encoded in UTF-8 or FALSE if nothing to read * @throws \Box\Spout\Common\Exception\EncodingConversionException If unable to convert data to UTF-8 */ protected function getNextUTF8EncodedRow() { $encodedRowData = $this->globalFunctionsHelper->fgetcsv($this->filePointer, self::MAX_READ_BYTES_PER_LINE, $this->fieldDelimiter, $this->fieldEnclosure); if ($encodedRowData === false) { return false; } foreach ($encodedRowData as $cellIndex => $cellValue) { switch($this->encoding) { case EncodingHelper::ENCODING_UTF16_LE: case EncodingHelper::ENCODING_UTF32_LE: // remove whitespace from the beginning of a string as fgetcsv() add extra whitespace when it try to explode non UTF-8 data $cellValue = ltrim($cellValue); break; case EncodingHelper::ENCODING_UTF16_BE: case EncodingHelper::ENCODING_UTF32_BE: // remove whitespace from the end of a string as fgetcsv() add extra whitespace when it try to explode non UTF-8 data $cellValue = rtrim($cellValue); break; } $encodedRowData[$cellIndex] = $this->encodingHelper->attemptConversionToUTF8($cellValue, $this->encoding); } return $encodedRowData; } /** * Returns the end of line delimiter, encoded using the same encoding as the CSV. * The return value is cached. * * @return string */ protected function getEncodedEOLDelimiter() { if (!isset($this->encodedEOLDelimiter)) { $this->encodedEOLDelimiter = $this->encodingHelper->attemptConversionFromUTF8($this->inputEOLDelimiter, $this->encoding); } return $this->encodedEOLDelimiter; } /** * @param array|bool $lineData Array containing the cells value for the line * @return bool Whether the given line is empty */ protected function isEmptyLine($lineData) { return (is_array($lineData) && count($lineData) === 1 && $lineData[0] === null); } /** * Return the current element from the buffer * @link http://php.net/manual/en/iterator.current.php * * @return array|null */ public function current() { return $this->rowDataBuffer; } /** * Return the key of the current element * @link http://php.net/manual/en/iterator.key.php * * @return int */ public function key() { return $this->numReadRows; } /** * Cleans up what was created to iterate over the object. * * @return void */ public function end() { // do nothing } } app/Services/Spout/Reader/CSV/SheetIterator.php000064400000004046147600120010015344 0ustar00sheet = new Sheet($filePointer, $options, $globalFunctionsHelper); } /** * Rewind the Iterator to the first element * @link http://php.net/manual/en/iterator.rewind.php * * @return void */ public function rewind() { $this->hasReadUniqueSheet = false; } /** * Checks if current position is valid * @link http://php.net/manual/en/iterator.valid.php * * @return bool */ public function valid() { return (!$this->hasReadUniqueSheet); } /** * Move forward to next element * @link http://php.net/manual/en/iterator.next.php * * @return void */ public function next() { $this->hasReadUniqueSheet = true; } /** * Return the current element * @link http://php.net/manual/en/iterator.current.php * * @return \Box\Spout\Reader\CSV\Sheet */ public function current() { return $this->sheet; } /** * Return the key of the current element * @link http://php.net/manual/en/iterator.key.php * * @return int */ public function key() { return 1; } /** * Cleans up what was created to iterate over the object. * * @return void */ public function end() { // do nothing } } app/Services/Spout/Reader/CSV/Reader.php000064400000007625147600120010013772 0ustar00options)) { $this->options = new ReaderOptions(); } return $this->options; } /** * Sets the field delimiter for the CSV. * Needs to be called before opening the reader. * * @param string $fieldDelimiter Character that delimits fields * @return Reader */ public function setFieldDelimiter($fieldDelimiter) { $this->getOptions()->setFieldDelimiter($fieldDelimiter); return $this; } /** * Sets the field enclosure for the CSV. * Needs to be called before opening the reader. * * @param string $fieldEnclosure Character that enclose fields * @return Reader */ public function setFieldEnclosure($fieldEnclosure) { $this->getOptions()->setFieldEnclosure($fieldEnclosure); return $this; } /** * Sets the encoding of the CSV file to be read. * Needs to be called before opening the reader. * * @param string $encoding Encoding of the CSV file to be read * @return Reader */ public function setEncoding($encoding) { $this->getOptions()->setEncoding($encoding); return $this; } /** * Sets the EOL for the CSV. * Needs to be called before opening the reader. * * @param string $endOfLineCharacter used to properly get lines from the CSV file. * @return Reader */ public function setEndOfLineCharacter($endOfLineCharacter) { $this->getOptions()->setEndOfLineCharacter($endOfLineCharacter); return $this; } /** * Returns whether stream wrappers are supported * * @return bool */ protected function doesSupportStreamWrapper() { return true; } /** * Opens the file at the given path to make it ready to be read. * If setEncoding() was not called, it assumes that the file is encoded in UTF-8. * * @param string $filePath Path of the CSV file to be read * @return void * @throws \Box\Spout\Common\Exception\IOException */ protected function openReader($filePath) { $this->originalAutoDetectLineEndings = ini_get('auto_detect_line_endings'); ini_set('auto_detect_line_endings', '1'); $this->filePointer = $this->globalFunctionsHelper->fopen($filePath, 'r'); if (!$this->filePointer) { throw new IOException("Could not open file $filePath for reading."); } $this->sheetIterator = new SheetIterator( $this->filePointer, $this->getOptions(), $this->globalFunctionsHelper ); } /** * Returns an iterator to iterate over sheets. * * @return SheetIterator To iterate over sheets */ protected function getConcreteSheetIterator() { return $this->sheetIterator; } /** * Closes the reader. To be used after reading the file. * * @return void */ protected function closeReader() { if ($this->filePointer) { $this->globalFunctionsHelper->fclose($this->filePointer); } ini_set('auto_detect_line_endings', $this->originalAutoDetectLineEndings); } } app/Services/Spout/Reader/CSV/Sheet.php000064400000002451147600120010013630 0ustar00rowIterator = new RowIterator($filePointer, $options, $globalFunctionsHelper); } /** * @api * @return \Box\Spout\Reader\CSV\RowIterator */ public function getRowIterator() { return $this->rowIterator; } /** * @api * @return int Index of the sheet */ public function getIndex() { return 0; } /** * @api * @return string Name of the sheet - empty string since CSV does not support that */ public function getName() { return ''; } /** * @api * @return bool Always TRUE as there is only one sheet */ public function isActive() { return true; } } app/Services/Spout/Reader/CSV/ReaderOptions.php000064400000005215147600120010015337 0ustar00fieldDelimiter; } /** * Sets the field delimiter for the CSV. * Needs to be called before opening the reader. * * @param string $fieldDelimiter Character that delimits fields * @return ReaderOptions */ public function setFieldDelimiter($fieldDelimiter) { $this->fieldDelimiter = $fieldDelimiter; return $this; } /** * @return string */ public function getFieldEnclosure() { return $this->fieldEnclosure; } /** * Sets the field enclosure for the CSV. * Needs to be called before opening the reader. * * @param string $fieldEnclosure Character that enclose fields * @return ReaderOptions */ public function setFieldEnclosure($fieldEnclosure) { $this->fieldEnclosure = $fieldEnclosure; return $this; } /** * @return string */ public function getEncoding() { return $this->encoding; } /** * Sets the encoding of the CSV file to be read. * Needs to be called before opening the reader. * * @param string $encoding Encoding of the CSV file to be read * @return ReaderOptions */ public function setEncoding($encoding) { $this->encoding = $encoding; return $this; } /** * @return string EOL for the CSV */ public function getEndOfLineCharacter() { return $this->endOfLineCharacter; } /** * Sets the EOL for the CSV. * Needs to be called before opening the reader. * * @param string $endOfLineCharacter used to properly get lines from the CSV file. * @return ReaderOptions */ public function setEndOfLineCharacter($endOfLineCharacter) { $this->endOfLineCharacter = $endOfLineCharacter; return $this; } } app/Services/Spout/Reader/Common/XMLProcessor.php000064400000013557147600120010015726 0ustar00xmlReader = $xmlReader; } /** * @param string $nodeName A callback may be triggered when a node with this name is read * @param int $nodeType Type of the node [NODE_TYPE_START || NODE_TYPE_END] * @param callable $callback Callback to execute when the read node has the given name and type * @return XMLProcessor */ public function registerCallback($nodeName, $nodeType, $callback) { $callbackKey = $this->getCallbackKey($nodeName, $nodeType); $this->callbacks[$callbackKey] = $this->getInvokableCallbackData($callback); return $this; } /** * @param string $nodeName Name of the node * @param int $nodeType Type of the node [NODE_TYPE_START || NODE_TYPE_END] * @return string Key used to store the associated callback */ private function getCallbackKey($nodeName, $nodeType) { return "$nodeName$nodeType"; } /** * Because the callback can be a "protected" function, we don't want to use call_user_func() directly * but instead invoke the callback using Reflection. This allows the invocation of "protected" functions. * Since some functions can be called a lot, we pre-process the callback to only return the elements that * will be needed to invoke the callback later. * * @param callable $callback Array reference to a callback: [OBJECT, METHOD_NAME] * @return array Associative array containing the elements needed to invoke the callback using Reflection */ private function getInvokableCallbackData($callback) { $callbackObject = $callback[0]; $callbackMethodName = $callback[1]; $reflectionMethod = new \ReflectionMethod(get_class($callbackObject), $callbackMethodName); $reflectionMethod->setAccessible(true); return [ self::CALLBACK_REFLECTION_METHOD => $reflectionMethod, self::CALLBACK_REFLECTION_OBJECT => $callbackObject, ]; } /** * Resumes the reading of the XML file where it was left off. * Stops whenever a callback indicates that reading should stop or at the end of the file. * * @return void * @throws \Box\Spout\Reader\Exception\XMLProcessingException */ public function readUntilStopped() { while ($this->xmlReader->read()) { $nodeType = $this->xmlReader->nodeType; $nodeNamePossiblyWithPrefix = $this->xmlReader->name; $nodeNameWithoutPrefix = $this->xmlReader->localName; $callbackData = $this->getRegisteredCallbackData($nodeNamePossiblyWithPrefix, $nodeNameWithoutPrefix, $nodeType); if ($callbackData !== null) { $callbackResponse = $this->invokeCallback($callbackData, [$this->xmlReader]); if ($callbackResponse === self::PROCESSING_STOP) { // stop reading break; } } } } /** * @param string $nodeNamePossiblyWithPrefix Name of the node, possibly prefixed * @param string $nodeNameWithoutPrefix Name of the same node, un-prefixed * @param int $nodeType Type of the node [NODE_TYPE_START || NODE_TYPE_END] * @return array|null Callback data to be used for execution when a node of the given name/type is read or NULL if none found */ private function getRegisteredCallbackData($nodeNamePossiblyWithPrefix, $nodeNameWithoutPrefix, $nodeType) { // With prefixed nodes, we should match if (by order of preference): // 1. the callback was registered with the prefixed node name (e.g. "x:worksheet") // 2. the callback was registered with the un-prefixed node name (e.g. "worksheet") $callbackKeyForPossiblyPrefixedName = $this->getCallbackKey($nodeNamePossiblyWithPrefix, $nodeType); $callbackKeyForUnPrefixedName = $this->getCallbackKey($nodeNameWithoutPrefix, $nodeType); $hasPrefix = ($nodeNamePossiblyWithPrefix !== $nodeNameWithoutPrefix); $callbackKeyToUse = $callbackKeyForUnPrefixedName; if ($hasPrefix && isset($this->callbacks[$callbackKeyForPossiblyPrefixedName])) { $callbackKeyToUse = $callbackKeyForPossiblyPrefixedName; } // Using isset here because it is way faster than array_key_exists... return isset($this->callbacks[$callbackKeyToUse]) ? $this->callbacks[$callbackKeyToUse] : null; } /** * @param array $callbackData Associative array containing data to invoke the callback using Reflection * @param array $args Arguments to pass to the callback * @return int Callback response */ private function invokeCallback($callbackData, $args) { $reflectionMethod = $callbackData[self::CALLBACK_REFLECTION_METHOD]; $callbackObject = $callbackData[self::CALLBACK_REFLECTION_OBJECT]; return $reflectionMethod->invokeArgs($callbackObject, $args); } } app/Services/Spout/Reader/Common/ReaderOptions.php000064400000002752147600120010016137 0ustar00shouldFormatDates; } /** * Sets whether date/time values should be returned as PHP objects or be formatted as strings. * * @param bool $shouldFormatDates * @return ReaderOptions */ public function setShouldFormatDates($shouldFormatDates) { $this->shouldFormatDates = $shouldFormatDates; return $this; } /** * @return bool Whether empty rows should be returned or skipped. */ public function shouldPreserveEmptyRows() { return $this->shouldPreserveEmptyRows; } /** * Sets whether empty rows should be returned or skipped. * * @param bool $shouldPreserveEmptyRows * @return ReaderOptions */ public function setShouldPreserveEmptyRows($shouldPreserveEmptyRows) { $this->shouldPreserveEmptyRows = $shouldPreserveEmptyRows; return $this; } } app/Services/Spout/Reader/Exception/ReaderException.php000064400000000360147600120010017141 0ustar00shouldFormatDates = $shouldFormatDates; /** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ $this->escaper = \Box\Spout\Common\Escaper\ODS::getInstance(); } /** * Returns the (unescaped) correctly marshalled, cell value associated to the given XML node. * @see http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#refTable13 * * @param \DOMNode $node * @return string|int|float|bool|\DateTime|\DateInterval|null The value associated with the cell, empty string if cell's type is void/undefined, null on error */ public function extractAndFormatNodeValue($node) { $cellType = $node->getAttribute(self::XML_ATTRIBUTE_TYPE); switch ($cellType) { case self::CELL_TYPE_STRING: return $this->formatStringCellValue($node); case self::CELL_TYPE_FLOAT: return $this->formatFloatCellValue($node); case self::CELL_TYPE_BOOLEAN: return $this->formatBooleanCellValue($node); case self::CELL_TYPE_DATE: return $this->formatDateCellValue($node); case self::CELL_TYPE_TIME: return $this->formatTimeCellValue($node); case self::CELL_TYPE_CURRENCY: return $this->formatCurrencyCellValue($node); case self::CELL_TYPE_PERCENTAGE: return $this->formatPercentageCellValue($node); case self::CELL_TYPE_VOID: default: return ''; } } /** * Returns the cell String value. * * @param \DOMNode $node * @return string The value associated with the cell */ protected function formatStringCellValue($node) { $pNodeValues = []; $pNodes = $node->getElementsByTagName(self::XML_NODE_P); foreach ($pNodes as $pNode) { $currentPValue = ''; foreach ($pNode->childNodes as $childNode) { if ($childNode instanceof \DOMText) { $currentPValue .= $childNode->nodeValue; } else if ($childNode->nodeName === self::XML_NODE_S) { $spaceAttribute = $childNode->getAttribute(self::XML_ATTRIBUTE_C); $numSpaces = (!empty($spaceAttribute)) ? intval($spaceAttribute) : 1; $currentPValue .= str_repeat(' ', $numSpaces); } else if ($childNode->nodeName === self::XML_NODE_A || $childNode->nodeName === self::XML_NODE_SPAN) { $currentPValue .= $childNode->nodeValue; } } $pNodeValues[] = $currentPValue; } $escapedCellValue = implode("\n", $pNodeValues); $cellValue = $this->escaper->unescape($escapedCellValue); return $cellValue; } /** * Returns the cell Numeric value from the given node. * * @param \DOMNode $node * @return int|float The value associated with the cell */ protected function formatFloatCellValue($node) { $nodeValue = $node->getAttribute(self::XML_ATTRIBUTE_VALUE); $nodeIntValue = intval($nodeValue); // The "==" is intentionally not a "===" because only the value matters, not the type $cellValue = ($nodeIntValue == $nodeValue) ? $nodeIntValue : floatval($nodeValue); return $cellValue; } /** * Returns the cell Boolean value from the given node. * * @param \DOMNode $node * @return bool The value associated with the cell */ protected function formatBooleanCellValue($node) { $nodeValue = $node->getAttribute(self::XML_ATTRIBUTE_BOOLEAN_VALUE); // !! is similar to boolval() $cellValue = !!$nodeValue; return $cellValue; } /** * Returns the cell Date value from the given node. * * @param \DOMNode $node * @return \DateTime|string|null The value associated with the cell or NULL if invalid date value */ protected function formatDateCellValue($node) { // The XML node looks like this: // // 05/19/16 04:39 PM // if ($this->shouldFormatDates) { // The date is already formatted in the "p" tag $nodeWithValueAlreadyFormatted = $node->getElementsByTagName(self::XML_NODE_P)->item(0); return $nodeWithValueAlreadyFormatted->nodeValue; } else { // otherwise, get it from the "date-value" attribute try { $nodeValue = $node->getAttribute(self::XML_ATTRIBUTE_DATE_VALUE); return new \DateTime($nodeValue); } catch (\Exception $e) { return null; } } } /** * Returns the cell Time value from the given node. * * @param \DOMNode $node * @return \DateInterval|string|null The value associated with the cell or NULL if invalid time value */ protected function formatTimeCellValue($node) { // The XML node looks like this: // // 01:24:00 PM // if ($this->shouldFormatDates) { // The date is already formatted in the "p" tag $nodeWithValueAlreadyFormatted = $node->getElementsByTagName(self::XML_NODE_P)->item(0); return $nodeWithValueAlreadyFormatted->nodeValue; } else { // otherwise, get it from the "time-value" attribute try { $nodeValue = $node->getAttribute(self::XML_ATTRIBUTE_TIME_VALUE); return new \DateInterval($nodeValue); } catch (\Exception $e) { return null; } } } /** * Returns the cell Currency value from the given node. * * @param \DOMNode $node * @return string The value associated with the cell (e.g. "100 USD" or "9.99 EUR") */ protected function formatCurrencyCellValue($node) { $value = $node->getAttribute(self::XML_ATTRIBUTE_VALUE); $currency = $node->getAttribute(self::XML_ATTRIBUTE_CURRENCY); return "$value $currency"; } /** * Returns the cell Percentage value from the given node. * * @param \DOMNode $node * @return int|float The value associated with the cell */ protected function formatPercentageCellValue($node) { // percentages are formatted like floats return $this->formatFloatCellValue($node); } } app/Services/Spout/Reader/ODS/Helper/SettingsHelper.php000064400000003030147600120010016723 0ustar00openFileInZip($filePath, self::SETTINGS_XML_FILE_PATH) === false) { return null; } $activeSheetName = null; try { while ($xmlReader->readUntilNodeFound(self::XML_NODE_CONFIG_ITEM)) { if ($xmlReader->getAttribute(self::XML_ATTRIBUTE_CONFIG_NAME) === self::XML_ATTRIBUTE_VALUE_ACTIVE_TABLE) { $activeSheetName = $xmlReader->readString(); break; } } } catch (XMLProcessingException $exception) { // do nothing } $xmlReader->close(); return $activeSheetName; } } app/Services/Spout/Reader/ODS/RowIterator.php000064400000032663147600120010015043 0ustar00" element * @param \Box\Spout\Reader\ODS\ReaderOptions $options Reader's current options */ public function __construct($xmlReader, $options) { $this->xmlReader = $xmlReader; $this->shouldPreserveEmptyRows = $options->shouldPreserveEmptyRows(); $this->cellValueFormatter = new CellValueFormatter($options->shouldFormatDates()); // Register all callbacks to process different nodes when reading the XML file $this->xmlProcessor = new XMLProcessor($this->xmlReader); $this->xmlProcessor->registerCallback(self::XML_NODE_ROW, XMLProcessor::NODE_TYPE_START, [$this, 'processRowStartingNode']); $this->xmlProcessor->registerCallback(self::XML_NODE_CELL, XMLProcessor::NODE_TYPE_START, [$this, 'processCellStartingNode']); $this->xmlProcessor->registerCallback(self::XML_NODE_ROW, XMLProcessor::NODE_TYPE_END, [$this, 'processRowEndingNode']); $this->xmlProcessor->registerCallback(self::XML_NODE_TABLE, XMLProcessor::NODE_TYPE_END, [$this, 'processTableEndingNode']); } /** * Rewind the Iterator to the first element. * NOTE: It can only be done once, as it is not possible to read an XML file backwards. * @link http://php.net/manual/en/iterator.rewind.php * * @return void * @throws \Box\Spout\Reader\Exception\IteratorNotRewindableException If the iterator is rewound more than once */ public function rewind() { // Because sheet and row data is located in the file, we can't rewind both the // sheet iterator and the row iterator, as XML file cannot be read backwards. // Therefore, rewinding the row iterator has been disabled. if ($this->hasAlreadyBeenRewound) { throw new IteratorNotRewindableException(); } $this->hasAlreadyBeenRewound = true; $this->lastRowIndexProcessed = 0; $this->nextRowIndexToBeProcessed = 1; $this->rowDataBuffer = null; $this->hasReachedEndOfFile = false; $this->next(); } /** * Checks if current position is valid * @link http://php.net/manual/en/iterator.valid.php * * @return bool */ public function valid() { return (!$this->hasReachedEndOfFile); } /** * Move forward to next element. Empty rows will be skipped. * @link http://php.net/manual/en/iterator.next.php * * @return void * @throws \Box\Spout\Reader\Exception\SharedStringNotFoundException If a shared string was not found * @throws \Box\Spout\Common\Exception\IOException If unable to read the sheet data XML */ public function next() { if ($this->doesNeedDataForNextRowToBeProcessed()) { $this->readDataForNextRow(); } $this->lastRowIndexProcessed++; } /** * Returns whether we need data for the next row to be processed. * We DO need to read data if: * - we have not read any rows yet * OR * - the next row to be processed immediately follows the last read row * * @return bool Whether we need data for the next row to be processed. */ protected function doesNeedDataForNextRowToBeProcessed() { $hasReadAtLeastOneRow = ($this->lastRowIndexProcessed !== 0); return ( !$hasReadAtLeastOneRow || $this->lastRowIndexProcessed === $this->nextRowIndexToBeProcessed - 1 ); } /** * @return void * @throws \Box\Spout\Reader\Exception\SharedStringNotFoundException If a shared string was not found * @throws \Box\Spout\Common\Exception\IOException If unable to read the sheet data XML */ protected function readDataForNextRow() { $this->currentlyProcessedRowData = []; try { $this->xmlProcessor->readUntilStopped(); } catch (XMLProcessingException $exception) { throw new IOException("The sheet's data cannot be read. [{$exception->getMessage()}]"); } $this->rowDataBuffer = $this->currentlyProcessedRowData; } /** * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReader XMLReader object, positioned on a "" starting node * @return int A return code that indicates what action should the processor take next */ protected function processRowStartingNode($xmlReader) { // Reset data from current row $this->hasAlreadyReadOneCellInCurrentRow = false; $this->lastProcessedCellValue = null; $this->numColumnsRepeated = 1; $this->numRowsRepeated = $this->getNumRowsRepeatedForCurrentNode($xmlReader); return XMLProcessor::PROCESSING_CONTINUE; } /** * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReader XMLReader object, positioned on a "" starting node * @return int A return code that indicates what action should the processor take next */ protected function processCellStartingNode($xmlReader) { $currentNumColumnsRepeated = $this->getNumColumnsRepeatedForCurrentNode($xmlReader); // NOTE: expand() will automatically decode all XML entities of the child nodes $node = $xmlReader->expand(); $currentCellValue = $this->getCellValue($node); // process cell N only after having read cell N+1 (see below why) if ($this->hasAlreadyReadOneCellInCurrentRow) { for ($i = 0; $i < $this->numColumnsRepeated; $i++) { $this->currentlyProcessedRowData[] = $this->lastProcessedCellValue; } } $this->hasAlreadyReadOneCellInCurrentRow = true; $this->lastProcessedCellValue = $currentCellValue; $this->numColumnsRepeated = $currentNumColumnsRepeated; return XMLProcessor::PROCESSING_CONTINUE; } /** * @return int A return code that indicates what action should the processor take next */ protected function processRowEndingNode() { $isEmptyRow = $this->isEmptyRow($this->currentlyProcessedRowData, $this->lastProcessedCellValue); // if the fetched row is empty and we don't want to preserve it... if (!$this->shouldPreserveEmptyRows && $isEmptyRow) { // ... skip it return XMLProcessor::PROCESSING_CONTINUE; } // if the row is empty, we don't want to return more than one cell $actualNumColumnsRepeated = (!$isEmptyRow) ? $this->numColumnsRepeated : 1; // Only add the value if the last read cell is not a trailing empty cell repeater in Excel. // The current count of read columns is determined by counting the values in "$this->currentlyProcessedRowData". // This is to avoid creating a lot of empty cells, as Excel adds a last empty "" // with a number-columns-repeated value equals to the number of (supported columns - used columns). // In Excel, the number of supported columns is 16384, but we don't want to returns rows with // always 16384 cells. if ((count($this->currentlyProcessedRowData) + $actualNumColumnsRepeated) !== self::MAX_COLUMNS_EXCEL) { for ($i = 0; $i < $actualNumColumnsRepeated; $i++) { $this->currentlyProcessedRowData[] = $this->lastProcessedCellValue; } } // If we are processing row N and the row is repeated M times, // then the next row to be processed will be row (N+M). $this->nextRowIndexToBeProcessed += $this->numRowsRepeated; // at this point, we have all the data we need for the row // so that we can populate the buffer return XMLProcessor::PROCESSING_STOP; } /** * @return int A return code that indicates what action should the processor take next */ protected function processTableEndingNode() { // The closing "" marks the end of the file $this->hasReachedEndOfFile = true; return XMLProcessor::PROCESSING_STOP; } /** * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReader XMLReader object, positioned on a "" starting node * @return int The value of "table:number-rows-repeated" attribute of the current node, or 1 if attribute missing */ protected function getNumRowsRepeatedForCurrentNode($xmlReader) { $numRowsRepeated = $xmlReader->getAttribute(self::XML_ATTRIBUTE_NUM_ROWS_REPEATED); return ($numRowsRepeated !== null) ? intval($numRowsRepeated) : 1; } /** * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReader XMLReader object, positioned on a "" starting node * @return int The value of "table:number-columns-repeated" attribute of the current node, or 1 if attribute missing */ protected function getNumColumnsRepeatedForCurrentNode($xmlReader) { $numColumnsRepeated = $xmlReader->getAttribute(self::XML_ATTRIBUTE_NUM_COLUMNS_REPEATED); return ($numColumnsRepeated !== null) ? intval($numColumnsRepeated) : 1; } /** * Returns the (unescaped) correctly marshalled, cell value associated to the given XML node. * * @param \DOMNode $node * @return string|int|float|bool|\DateTime|\DateInterval|null The value associated with the cell, empty string if cell's type is void/undefined, null on error */ protected function getCellValue($node) { return $this->cellValueFormatter->extractAndFormatNodeValue($node); } /** * After finishing processing each cell, a row is considered empty if it contains * no cells or if the value of the last read cell is an empty string. * After finishing processing each cell, the last read cell is not part of the * row data yet (as we still need to apply the "num-columns-repeated" attribute). * * @param array $rowData * @param string|int|float|bool|\DateTime|\DateInterval|null The value of the last read cell * @return bool Whether the row is empty */ protected function isEmptyRow($rowData, $lastReadCellValue) { return ( count($rowData) === 0 && (!isset($lastReadCellValue) || trim($lastReadCellValue) === '') ); } /** * Return the current element, from the buffer. * @link http://php.net/manual/en/iterator.current.php * * @return array|null */ public function current() { return $this->rowDataBuffer; } /** * Return the key of the current element * @link http://php.net/manual/en/iterator.key.php * * @return int */ public function key() { return $this->lastRowIndexProcessed; } /** * Cleans up what was created to iterate over the object. * * @return void */ public function end() { $this->xmlReader->close(); } } app/Services/Spout/Reader/ODS/SheetIterator.php000064400000012367147600120010015343 0ustar00filePath = $filePath; $this->options = $options; $this->xmlReader = new XMLReader(); /** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ $this->escaper = \Box\Spout\Common\Escaper\ODS::getInstance(); $settingsHelper = new SettingsHelper(); $this->activeSheetName = $settingsHelper->getActiveSheetName($filePath); } /** * Rewind the Iterator to the first element * @link http://php.net/manual/en/iterator.rewind.php * * @return void * @throws \Box\Spout\Common\Exception\IOException If unable to open the XML file containing sheets' data */ public function rewind() { $this->xmlReader->close(); if ($this->xmlReader->openFileInZip($this->filePath, self::CONTENT_XML_FILE_PATH) === false) { $contentXmlFilePath = $this->filePath . '#' . self::CONTENT_XML_FILE_PATH; throw new IOException("Could not open \"{$contentXmlFilePath}\"."); } try { $this->hasFoundSheet = $this->xmlReader->readUntilNodeFound(self::XML_NODE_TABLE); } catch (XMLProcessingException $exception) { throw new IOException("The content.xml file is invalid and cannot be read. [{$exception->getMessage()}]"); } $this->currentSheetIndex = 0; } /** * Checks if current position is valid * @link http://php.net/manual/en/iterator.valid.php * * @return bool */ public function valid() { return $this->hasFoundSheet; } /** * Move forward to next element * @link http://php.net/manual/en/iterator.next.php * * @return void */ public function next() { $this->hasFoundSheet = $this->xmlReader->readUntilNodeFound(self::XML_NODE_TABLE); if ($this->hasFoundSheet) { $this->currentSheetIndex++; } } /** * Return the current element * @link http://php.net/manual/en/iterator.current.php * * @return \Box\Spout\Reader\ODS\Sheet */ public function current() { $escapedSheetName = $this->xmlReader->getAttribute(self::XML_ATTRIBUTE_TABLE_NAME); $sheetName = $this->escaper->unescape($escapedSheetName); $isActiveSheet = $this->isActiveSheet($sheetName, $this->currentSheetIndex, $this->activeSheetName); return new Sheet($this->xmlReader, $this->currentSheetIndex, $sheetName, $isActiveSheet, $this->options); } /** * Returns whether the current sheet was defined as the active one * * @param string $sheetName Name of the current sheet * @param int $sheetIndex Index of the current sheet * @param string|null Name of the sheet that was defined as active or NULL if none defined * @return bool Whether the current sheet was defined as the active one */ private function isActiveSheet($sheetName, $sheetIndex, $activeSheetName) { // The given sheet is active if its name matches the defined active sheet's name // or if no information about the active sheet was found, it defaults to the first sheet. return ( ($activeSheetName === null && $sheetIndex === 0) || ($activeSheetName === $sheetName) ); } /** * Return the key of the current element * @link http://php.net/manual/en/iterator.key.php * * @return int */ public function key() { return $this->currentSheetIndex + 1; } /** * Cleans up what was created to iterate over the object. * * @return void */ public function end() { $this->xmlReader->close(); } } app/Services/Spout/Reader/ODS/Reader.php000064400000004014147600120010013751 0ustar00options)) { $this->options = new ReaderOptions(); } return $this->options; } /** * Returns whether stream wrappers are supported * * @return bool */ protected function doesSupportStreamWrapper() { return false; } /** * Opens the file at the given file path to make it ready to be read. * * @param string $filePath Path of the file to be read * @return void * @throws \Box\Spout\Common\Exception\IOException If the file at the given path or its content cannot be read * @throws \Box\Spout\Reader\Exception\NoSheetsFoundException If there are no sheets in the file */ protected function openReader($filePath) { $this->zip = new \ZipArchive(); if ($this->zip->open($filePath) === true) { $this->sheetIterator = new SheetIterator($filePath, $this->getOptions()); } else { throw new IOException("Could not open $filePath for reading."); } } /** * Returns an iterator to iterate over sheets. * * @return SheetIterator To iterate over sheets */ protected function getConcreteSheetIterator() { return $this->sheetIterator; } /** * Closes the reader. To be used after reading the file. * * @return void */ protected function closeReader() { if ($this->zip) { $this->zip->close(); } } } app/Services/Spout/Reader/ODS/Sheet.php000064400000003744147600120010013630 0ustar00" element * @param int $sheetIndex Index of the sheet, based on order in the workbook (zero-based) * @param string $sheetName Name of the sheet * @param bool $isSheetActive Whether the sheet was defined as active * @param \Box\Spout\Reader\ODS\ReaderOptions $options Reader's current options */ public function __construct($xmlReader, $sheetIndex, $sheetName, $isSheetActive, $options) { $this->rowIterator = new RowIterator($xmlReader, $options); $this->index = $sheetIndex; $this->name = $sheetName; $this->isActive = $isSheetActive; } /** * @api * @return \Box\Spout\Reader\ODS\RowIterator */ public function getRowIterator() { return $this->rowIterator; } /** * @api * @return int Index of the sheet, based on order in the workbook (zero-based) */ public function getIndex() { return $this->index; } /** * @api * @return string Name of the sheet */ public function getName() { return $this->name; } /** * @api * @return bool Whether the sheet was defined as active */ public function isActive() { return $this->isActive; } } app/Services/Spout/Reader/ODS/ReaderOptions.php000064400000000403147600120010015323 0ustar00initialUseInternalErrorsValue = libxml_use_internal_errors(true); } /** * Throws an XMLProcessingException if an error occured. * It also always resets the "libxml_use_internal_errors" setting back to its initial value. * * @return void * @throws \Box\Spout\Reader\Exception\XMLProcessingException */ protected function resetXMLInternalErrorsSettingAndThrowIfXMLErrorOccured() { if ($this->hasXMLErrorOccured()) { $this->resetXMLInternalErrorsSetting(); throw new XMLProcessingException($this->getLastXMLErrorMessage()); } $this->resetXMLInternalErrorsSetting(); } /** * Returns whether the a XML error has occured since the last time errors were cleared. * * @return bool TRUE if an error occured, FALSE otherwise */ private function hasXMLErrorOccured() { return (libxml_get_last_error() !== false); } /** * Returns the error message for the last XML error that occured. * @see libxml_get_last_error * * @return String|null Last XML error message or null if no error */ private function getLastXMLErrorMessage() { $errorMessage = null; $error = libxml_get_last_error(); if ($error !== false) { $errorMessage = trim($error->message); } return $errorMessage; } /** * @return void */ protected function resetXMLInternalErrorsSetting() { libxml_use_internal_errors($this->initialUseInternalErrorsValue); } } app/Services/Spout/Reader/Wrapper/XMLReader.php000064400000013224147600120010015330 0ustar00getRealPathURIForFileInZip($zipFilePath, $fileInsideZipPath); // We need to check first that the file we are trying to read really exist because: // - PHP emits a warning when trying to open a file that does not exist. // - HHVM does not check if file exists within zip file (@link https://github.com/facebook/hhvm/issues/5779) if ($this->fileExistsWithinZip($realPathURI)) { $wasOpenSuccessful = $this->open($realPathURI, null, LIBXML_NONET); } return $wasOpenSuccessful; } /** * Returns the real path for the given path components. * This is useful to avoid issues on some Windows setup. * * @param string $zipFilePath Path to the ZIP file * @param string $fileInsideZipPath Relative or absolute path of the file inside the zip * @return string The real path URI */ public function getRealPathURIForFileInZip($zipFilePath, $fileInsideZipPath) { return (self::ZIP_WRAPPER . realpath($zipFilePath) . '#' . $fileInsideZipPath); } /** * Returns whether the file at the given location exists * * @param string $zipStreamURI URI of a zip stream, e.g. "zip://file.zip#path/inside.xml" * @return bool TRUE if the file exists, FALSE otherwise */ protected function fileExistsWithinZip($zipStreamURI) { $doesFileExists = false; $pattern = '/zip:\/\/([^#]+)#(.*)/'; if (preg_match($pattern, $zipStreamURI, $matches)) { $zipFilePath = $matches[1]; $innerFilePath = $matches[2]; $zip = new \ZipArchive(); if ($zip->open($zipFilePath) === true) { $doesFileExists = ($zip->locateName($innerFilePath) !== false); $zip->close(); } } return $doesFileExists; } /** * Move to next node in document * @see \XMLReader::read * * @return bool TRUE on success or FALSE on failure * @throws \Box\Spout\Reader\Exception\XMLProcessingException If an error/warning occurred */ public function read() { $this->useXMLInternalErrors(); $wasReadSuccessful = parent::read(); $this->resetXMLInternalErrorsSettingAndThrowIfXMLErrorOccured(); return $wasReadSuccessful; } /** * Read until the element with the given name is found, or the end of the file. * * @param string $nodeName Name of the node to find * @return bool TRUE on success or FALSE on failure * @throws \Box\Spout\Reader\Exception\XMLProcessingException If an error/warning occurred */ public function readUntilNodeFound($nodeName) { do { $wasReadSuccessful = $this->read(); $isNotPositionedOnStartingNode = !$this->isPositionedOnStartingNode($nodeName); } while ($wasReadSuccessful && $isNotPositionedOnStartingNode); return $wasReadSuccessful; } /** * Move cursor to next node skipping all subtrees * @see \XMLReader::next * * @param string|void $localName The name of the next node to move to * @return bool TRUE on success or FALSE on failure * @throws \Box\Spout\Reader\Exception\XMLProcessingException If an error/warning occurred */ public function next($localName = null) { $this->useXMLInternalErrors(); $wasNextSuccessful = parent::next($localName); $this->resetXMLInternalErrorsSettingAndThrowIfXMLErrorOccured(); return $wasNextSuccessful; } /** * @param string $nodeName * @return bool Whether the XML Reader is currently positioned on the starting node with given name */ public function isPositionedOnStartingNode($nodeName) { return $this->isPositionedOnNode($nodeName, XMLReader::ELEMENT); } /** * @param string $nodeName * @return bool Whether the XML Reader is currently positioned on the ending node with given name */ public function isPositionedOnEndingNode($nodeName) { return $this->isPositionedOnNode($nodeName, XMLReader::END_ELEMENT); } /** * @param string $nodeName * @param int $nodeType * @return bool Whether the XML Reader is currently positioned on the node with given name and type */ private function isPositionedOnNode($nodeName, $nodeType) { // In some cases, the node has a prefix (for instance, "" can also be ""). // So if the given node name does not have a prefix, we need to look at the unprefixed name ("localName"). // @see https://github.com/box/spout/issues/233 $hasPrefix = (strpos($nodeName, ':') !== false); $currentNodeName = ($hasPrefix) ? $this->name : $this->localName; return ($this->nodeType === $nodeType && $currentNodeName === $nodeName); } /** * @return string The name of the current node, un-prefixed */ public function getCurrentNodeName() { return $this->localName; } } app/Services/Spout/Reader/XLSX/Helper/SharedStringsCaching/CachingStrategyFactory.php000064400000013321147600120010024604 0ustar00 20 * 600 ≈ 12KB */ const AMOUNT_MEMORY_NEEDED_PER_STRING_IN_KB = 12; /** * To avoid running out of memory when extracting a huge number of shared strings, they can be saved to temporary files * instead of in memory. Then, when accessing a string, the corresponding file contents will be loaded in memory * and the string will be quickly retrieved. * The performance bottleneck is not when creating these temporary files, but rather when loading their content. * Because the contents of the last loaded file stays in memory until another file needs to be loaded, it works * best when the indexes of the shared strings are sorted in the sheet data. * 10,000 was chosen because it creates small files that are fast to be loaded in memory. */ const MAX_NUM_STRINGS_PER_TEMP_FILE = 10000; /** @var CachingStrategyFactory|null Singleton instance */ protected static $instance = null; /** * Private constructor for singleton */ private function __construct() { } /** * Returns the singleton instance of the factory * * @return CachingStrategyFactory */ public static function getInstance() { if (self::$instance === null) { self::$instance = new CachingStrategyFactory(); } return self::$instance; } /** * Returns the best caching strategy, given the number of unique shared strings * and the amount of memory available. * * @param int|null $sharedStringsUniqueCount Number of unique shared strings (NULL if unknown) * @param string|void $tempFolder Temporary folder where the temporary files to store shared strings will be stored * @return CachingStrategyInterface The best caching strategy */ public function getBestCachingStrategy($sharedStringsUniqueCount, $tempFolder = null) { if ($this->isInMemoryStrategyUsageSafe($sharedStringsUniqueCount)) { return new InMemoryStrategy($sharedStringsUniqueCount); } else { return new FileBasedStrategy($tempFolder, self::MAX_NUM_STRINGS_PER_TEMP_FILE); } } /** * Returns whether it is safe to use in-memory caching, given the number of unique shared strings * and the amount of memory available. * * @param int|null $sharedStringsUniqueCount Number of unique shared strings (NULL if unknown) * @return bool */ protected function isInMemoryStrategyUsageSafe($sharedStringsUniqueCount) { // if the number of shared strings in unknown, do not use "in memory" strategy if ($sharedStringsUniqueCount === null) { return false; } $memoryAvailable = $this->getMemoryLimitInKB(); if ($memoryAvailable === -1) { // if cannot get memory limit or if memory limit set as unlimited, don't trust and play safe return ($sharedStringsUniqueCount < self::MAX_NUM_STRINGS_PER_TEMP_FILE); } else { $memoryNeeded = $sharedStringsUniqueCount * self::AMOUNT_MEMORY_NEEDED_PER_STRING_IN_KB; return ($memoryAvailable > $memoryNeeded); } } /** * Returns the PHP "memory_limit" in Kilobytes * * @return float */ protected function getMemoryLimitInKB() { $memoryLimitFormatted = $this->getMemoryLimitFromIni(); $memoryLimitFormatted = strtolower(trim($memoryLimitFormatted)); // No memory limit if ($memoryLimitFormatted === '-1') { return -1; } if (preg_match('/(\d+)([bkmgt])b?/', $memoryLimitFormatted, $matches)) { $amount = intval($matches[1]); $unit = $matches[2]; switch ($unit) { case 'b': return ($amount / 1024); case 'k': return $amount; case 'm': return ($amount * 1024); case 'g': return ($amount * 1024 * 1024); case 't': return ($amount * 1024 * 1024 * 1024); } } return -1; } /** * Returns the formatted "memory_limit" value * * @return string */ protected function getMemoryLimitFromIni() { return ini_get('memory_limit'); } } app/Services/Spout/Reader/XLSX/Helper/SharedStringsCaching/FileBasedStrategy.php000064400000016026147600120010023543 0ustar00fileSystemHelper = new FileSystemHelper($rootTempFolder); $this->tempFolder = $this->fileSystemHelper->createFolder($rootTempFolder, uniqid('sharedstrings')); $this->maxNumStringsPerTempFile = $maxNumStringsPerTempFile; $this->globalFunctionsHelper = new GlobalFunctionsHelper(); $this->tempFilePointer = null; } /** * Adds the given string to the cache. * * @param string $sharedString The string to be added to the cache * @param int $sharedStringIndex Index of the shared string in the sharedStrings.xml file * @return void */ public function addStringForIndex($sharedString, $sharedStringIndex) { $tempFilePath = $this->getSharedStringTempFilePath($sharedStringIndex); if (!$this->globalFunctionsHelper->file_exists($tempFilePath)) { if ($this->tempFilePointer) { $this->globalFunctionsHelper->fclose($this->tempFilePointer); } $this->tempFilePointer = $this->globalFunctionsHelper->fopen($tempFilePath, 'w'); } // The shared string retrieval logic expects each cell data to be on one line only // Encoding the line feed character allows to preserve this assumption $lineFeedEncodedSharedString = $this->escapeLineFeed($sharedString); $this->globalFunctionsHelper->fwrite($this->tempFilePointer, $lineFeedEncodedSharedString . PHP_EOL); } /** * Returns the path for the temp file that should contain the string for the given index * * @param int $sharedStringIndex Index of the shared string in the sharedStrings.xml file * @return string The temp file path for the given index */ protected function getSharedStringTempFilePath($sharedStringIndex) { $numTempFile = intval($sharedStringIndex / $this->maxNumStringsPerTempFile); return $this->tempFolder . '/sharedstrings' . $numTempFile; } /** * Closes the cache after the last shared string was added. * This prevents any additional string from being added to the cache. * * @return void */ public function closeCache() { // close pointer to the last temp file that was written if ($this->tempFilePointer) { $this->globalFunctionsHelper->fclose($this->tempFilePointer); } } /** * Returns the string located at the given index from the cache. * * @param int $sharedStringIndex Index of the shared string in the sharedStrings.xml file * @return string The shared string at the given index * @throws \Box\Spout\Reader\Exception\SharedStringNotFoundException If no shared string found for the given index */ public function getStringAtIndex($sharedStringIndex) { $tempFilePath = $this->getSharedStringTempFilePath($sharedStringIndex); $indexInFile = $sharedStringIndex % $this->maxNumStringsPerTempFile; if (!$this->globalFunctionsHelper->file_exists($tempFilePath)) { throw new SharedStringNotFoundException("Shared string temp file not found: $tempFilePath ; for index: $sharedStringIndex"); } if ($this->inMemoryTempFilePath !== $tempFilePath) { // free memory unset($this->inMemoryTempFileContents); $this->inMemoryTempFileContents = explode(PHP_EOL, $this->globalFunctionsHelper->file_get_contents($tempFilePath)); $this->inMemoryTempFilePath = $tempFilePath; } $sharedString = null; // Using isset here because it is way faster than array_key_exists... if (isset($this->inMemoryTempFileContents[$indexInFile])) { $escapedSharedString = $this->inMemoryTempFileContents[$indexInFile]; $sharedString = $this->unescapeLineFeed($escapedSharedString); } if ($sharedString === null) { throw new SharedStringNotFoundException("Shared string not found for index: $sharedStringIndex"); } return rtrim($sharedString, PHP_EOL); } /** * Escapes the line feed characters (\n) * * @param string $unescapedString * @return string */ private function escapeLineFeed($unescapedString) { return str_replace("\n", self::ESCAPED_LINE_FEED_CHARACTER, $unescapedString); } /** * Unescapes the line feed characters (\n) * * @param string $escapedString * @return string */ private function unescapeLineFeed($escapedString) { return str_replace(self::ESCAPED_LINE_FEED_CHARACTER, "\n", $escapedString); } /** * Destroys the cache, freeing memory and removing any created artifacts * * @return void */ public function clearCache() { if ($this->tempFolder) { $this->fileSystemHelper->deleteFolderRecursively($this->tempFolder); } } } app/Services/Spout/Reader/XLSX/Helper/SharedStringsCaching/InMemoryStrategy.php000064400000005036147600120010023463 0ustar00inMemoryCache = new \SplFixedArray($sharedStringsUniqueCount); $this->isCacheClosed = false; } /** * Adds the given string to the cache. * * @param string $sharedString The string to be added to the cache * @param int $sharedStringIndex Index of the shared string in the sharedStrings.xml file * @return void */ public function addStringForIndex($sharedString, $sharedStringIndex) { if (!$this->isCacheClosed) { $this->inMemoryCache->offsetSet($sharedStringIndex, $sharedString); } } /** * Closes the cache after the last shared string was added. * This prevents any additional string from being added to the cache. * * @return void */ public function closeCache() { $this->isCacheClosed = true; } /** * Returns the string located at the given index from the cache. * * @param int $sharedStringIndex Index of the shared string in the sharedStrings.xml file * @return string The shared string at the given index * @throws \Box\Spout\Reader\Exception\SharedStringNotFoundException If no shared string found for the given index */ public function getStringAtIndex($sharedStringIndex) { try { return $this->inMemoryCache->offsetGet($sharedStringIndex); } catch (\RuntimeException $e) { throw new SharedStringNotFoundException("Shared string not found for index: $sharedStringIndex"); } } /** * Destroys the cache, freeing memory and removing any created artifacts * * @return void */ public function clearCache() { unset($this->inMemoryCache); $this->isCacheClosed = false; } } app/Services/Spout/Reader/XLSX/Helper/SharedStringsCaching/CachingStrategyInterface.php000064400000002472147600120010025102 0ustar00sharedStringsHelper = $sharedStringsHelper; $this->styleHelper = $styleHelper; $this->shouldFormatDates = $shouldFormatDates; /** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ $this->escaper = \Box\Spout\Common\Escaper\XLSX::getInstance(); } /** * Returns the (unescaped) correctly marshalled, cell value associated to the given XML node. * * @param \DOMNode $node * @return string|int|float|bool|\DateTime|null The value associated with the cell (null when the cell has an error) */ public function extractAndFormatNodeValue($node) { // Default cell type is "n" $cellType = $node->getAttribute(self::XML_ATTRIBUTE_TYPE) ?: self::CELL_TYPE_NUMERIC; $cellStyleId = intval($node->getAttribute(self::XML_ATTRIBUTE_STYLE_ID)); $vNodeValue = $this->getVNodeValue($node); if (($vNodeValue === '') && ($cellType !== self::CELL_TYPE_INLINE_STRING)) { return $vNodeValue; } switch ($cellType) { case self::CELL_TYPE_INLINE_STRING: return $this->formatInlineStringCellValue($node); case self::CELL_TYPE_SHARED_STRING: return $this->formatSharedStringCellValue($vNodeValue); case self::CELL_TYPE_STR: return $this->formatStrCellValue($vNodeValue); case self::CELL_TYPE_BOOLEAN: return $this->formatBooleanCellValue($vNodeValue); case self::CELL_TYPE_NUMERIC: return $this->formatNumericCellValue($vNodeValue, $cellStyleId); case self::CELL_TYPE_DATE: return $this->formatDateCellValue($vNodeValue); default: return null; } } /** * Returns the cell's string value from a node's nested value node * * @param \DOMNode $node * @return string The value associated with the cell */ protected function getVNodeValue($node) { // for cell types having a "v" tag containing the value. // if not, the returned value should be empty string. $vNode = $node->getElementsByTagName(self::XML_NODE_VALUE)->item(0); return ($vNode !== null) ? $vNode->nodeValue : ''; } /** * Returns the cell String value where string is inline. * * @param \DOMNode $node * @return string The value associated with the cell (null when the cell has an error) */ protected function formatInlineStringCellValue($node) { // inline strings are formatted this way: // [INLINE_STRING] $tNode = $node->getElementsByTagName(self::XML_NODE_INLINE_STRING_VALUE)->item(0); $cellValue = $this->escaper->unescape($tNode->nodeValue); return $cellValue; } /** * Returns the cell String value from shared-strings file using nodeValue index. * * @param string $nodeValue * @return string The value associated with the cell (null when the cell has an error) */ protected function formatSharedStringCellValue($nodeValue) { // shared strings are formatted this way: // [SHARED_STRING_INDEX] $sharedStringIndex = intval($nodeValue); $escapedCellValue = $this->sharedStringsHelper->getStringAtIndex($sharedStringIndex); $cellValue = $this->escaper->unescape($escapedCellValue); return $cellValue; } /** * Returns the cell String value, where string is stored in value node. * * @param string $nodeValue * @return string The value associated with the cell (null when the cell has an error) */ protected function formatStrCellValue($nodeValue) { $escapedCellValue = trim($nodeValue); $cellValue = $this->escaper->unescape($escapedCellValue); return $cellValue; } /** * Returns the cell Numeric value from string of nodeValue. * The value can also represent a timestamp and a DateTime will be returned. * * @param string $nodeValue * @param int $cellStyleId 0 being the default style * @return int|float|\DateTime|null The value associated with the cell */ protected function formatNumericCellValue($nodeValue, $cellStyleId) { // Numeric values can represent numbers as well as timestamps. // We need to look at the style of the cell to determine whether it is one or the other. $shouldFormatAsDate = $this->styleHelper->shouldFormatNumericValueAsDate($cellStyleId); if ($shouldFormatAsDate) { return $this->formatExcelTimestampValue(floatval($nodeValue), $cellStyleId); } else { $nodeIntValue = intval($nodeValue); return ($nodeIntValue == $nodeValue) ? $nodeIntValue : floatval($nodeValue); } } /** * Returns a cell's PHP Date value, associated to the given timestamp. * NOTE: The timestamp is a float representing the number of days since January 1st, 1900. * NOTE: The timestamp can also represent a time, if it is a value between 0 and 1. * * @param float $nodeValue * @param int $cellStyleId 0 being the default style * @return \DateTime|null The value associated with the cell or NULL if invalid date value */ protected function formatExcelTimestampValue($nodeValue, $cellStyleId) { // Fix for the erroneous leap year in Excel if (ceil($nodeValue) > self::ERRONEOUS_EXCEL_LEAP_YEAR_DAY) { --$nodeValue; } if ($nodeValue >= 1) { // Values greater than 1 represent "dates". The value 1.0 representing the "base" date: 1900-01-01. return $this->formatExcelTimestampValueAsDateValue($nodeValue, $cellStyleId); } else if ($nodeValue >= 0) { // Values between 0 and 1 represent "times". return $this->formatExcelTimestampValueAsTimeValue($nodeValue, $cellStyleId); } else { // invalid date return null; } } /** * Returns a cell's PHP DateTime value, associated to the given timestamp. * Only the time value matters. The date part is set to Jan 1st, 1900 (base Excel date). * * @param float $nodeValue * @param int $cellStyleId 0 being the default style * @return \DateTime|string The value associated with the cell */ protected function formatExcelTimestampValueAsTimeValue($nodeValue, $cellStyleId) { $time = round($nodeValue * self::NUM_SECONDS_IN_ONE_DAY); $hours = floor($time / self::NUM_SECONDS_IN_ONE_HOUR); $minutes = floor($time / self::NUM_SECONDS_IN_ONE_MINUTE) - ($hours * self::NUM_SECONDS_IN_ONE_MINUTE); $seconds = $time - ($hours * self::NUM_SECONDS_IN_ONE_HOUR) - ($minutes * self::NUM_SECONDS_IN_ONE_MINUTE); // using the base Excel date (Jan 1st, 1900) - not relevant here $dateObj = new \DateTime('1900-01-01'); $dateObj->setTime($hours, $minutes, $seconds); if ($this->shouldFormatDates) { $styleNumberFormatCode = $this->styleHelper->getNumberFormatCode($cellStyleId); $phpDateFormat = DateFormatHelper::toPHPDateFormat($styleNumberFormatCode); return $dateObj->format($phpDateFormat); } else { return $dateObj; } } /** * Returns a cell's PHP Date value, associated to the given timestamp. * NOTE: The timestamp is a float representing the number of days since January 1st, 1900. * * @param float $nodeValue * @param int $cellStyleId 0 being the default style * @return \DateTime|string|null The value associated with the cell or NULL if invalid date value */ protected function formatExcelTimestampValueAsDateValue($nodeValue, $cellStyleId) { // Do not use any unix timestamps for calculation to prevent // issues with numbers exceeding 2^31. $secondsRemainder = fmod($nodeValue, 1) * self::NUM_SECONDS_IN_ONE_DAY; $secondsRemainder = round($secondsRemainder, 0); try { $dateObj = \DateTime::createFromFormat('|Y-m-d', '1899-12-31'); $dateObj->modify('+' . intval($nodeValue) . 'days'); $dateObj->modify('+' . $secondsRemainder . 'seconds'); if ($this->shouldFormatDates) { $styleNumberFormatCode = $this->styleHelper->getNumberFormatCode($cellStyleId); $phpDateFormat = DateFormatHelper::toPHPDateFormat($styleNumberFormatCode); return $dateObj->format($phpDateFormat); } else { return $dateObj; } } catch (\Exception $e) { return null; } } /** * Returns the cell Boolean value from a specific node's Value. * * @param string $nodeValue * @return bool The value associated with the cell */ protected function formatBooleanCellValue($nodeValue) { // !! is similar to boolval() $cellValue = !!$nodeValue; return $cellValue; } /** * Returns a cell's PHP Date value, associated to the given stored nodeValue. * @see ECMA-376 Part 1 - §18.17.4 * * @param string $nodeValue ISO 8601 Date string * @return \DateTime|string|null The value associated with the cell or NULL if invalid date value */ protected function formatDateCellValue($nodeValue) { // Mitigate thrown Exception on invalid date-time format (http://php.net/manual/en/datetime.construct.php) try { return ($this->shouldFormatDates) ? $nodeValue : new \DateTime($nodeValue); } catch (\Exception $e) { return null; } } } app/Services/Spout/Reader/XLSX/Helper/StyleHelper.php000064400000030037147600120010016403 0ustar00 'm/d/yyyy', // @NOTE: ECMA spec is 'mm-dd-yy' 15 => 'd-mmm-yy', 16 => 'd-mmm', 17 => 'mmm-yy', 18 => 'h:mm AM/PM', 19 => 'h:mm:ss AM/PM', 20 => 'h:mm', 21 => 'h:mm:ss', 22 => 'm/d/yyyy h:mm', // @NOTE: ECMA spec is 'm/d/yy h:mm', 45 => 'mm:ss', 46 => '[h]:mm:ss', 47 => 'mm:ss.0', // @NOTE: ECMA spec is 'mmss.0', ]; /** @var string Path of the XLSX file being read */ protected $filePath; /** @var array Array containing the IDs of built-in number formats indicating a date */ protected $builtinNumFmtIdIndicatingDates; /** @var array Array containing a mapping NUM_FMT_ID => FORMAT_CODE */ protected $customNumberFormats; /** @var array Array containing a mapping STYLE_ID => [STYLE_ATTRIBUTES] */ protected $stylesAttributes; /** @var array Cache containing a mapping NUM_FMT_ID => IS_DATE_FORMAT. Used to avoid lots of recalculations */ protected $numFmtIdToIsDateFormatCache = []; /** * @param string $filePath Path of the XLSX file being read */ public function __construct($filePath) { $this->filePath = $filePath; $this->builtinNumFmtIdIndicatingDates = array_keys(self::$builtinNumFmtIdToNumFormatMapping); } /** * Returns whether the style with the given ID should consider * numeric values as timestamps and format the cell as a date. * * @param int $styleId Zero-based style ID * @return bool Whether the cell with the given cell should display a date instead of a numeric value */ public function shouldFormatNumericValueAsDate($styleId) { $stylesAttributes = $this->getStylesAttributes(); // Default style (0) does not format numeric values as timestamps. Only custom styles do. // Also if the style ID does not exist in the styles.xml file, format as numeric value. // Using isset here because it is way faster than array_key_exists... if ($styleId === self::DEFAULT_STYLE_ID || !isset($stylesAttributes[$styleId])) { return false; } $styleAttributes = $stylesAttributes[$styleId]; return $this->doesStyleIndicateDate($styleAttributes); } /** * Reads the styles.xml file and extract the relevant information from the file. * * @return void */ protected function extractRelevantInfo() { $this->customNumberFormats = []; $this->stylesAttributes = []; $xmlReader = new XMLReader(); if ($xmlReader->openFileInZip($this->filePath, self::STYLES_XML_FILE_PATH)) { while ($xmlReader->read()) { if ($xmlReader->isPositionedOnStartingNode(self::XML_NODE_NUM_FMTS)) { $this->extractNumberFormats($xmlReader); } else if ($xmlReader->isPositionedOnStartingNode(self::XML_NODE_CELL_XFS)) { $this->extractStyleAttributes($xmlReader); } } $xmlReader->close(); } } /** * Extracts number formats from the "numFmt" nodes. * For simplicity, the styles attributes are kept in memory. This is possible thanks * to the reuse of formats. So 1 million cells should not use 1 million formats. * * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReader XML Reader positioned on the "numFmts" node * @return void */ protected function extractNumberFormats($xmlReader) { while ($xmlReader->read()) { if ($xmlReader->isPositionedOnStartingNode(self::XML_NODE_NUM_FMT)) { $numFmtId = intval($xmlReader->getAttribute(self::XML_ATTRIBUTE_NUM_FMT_ID)); $formatCode = $xmlReader->getAttribute(self::XML_ATTRIBUTE_FORMAT_CODE); $this->customNumberFormats[$numFmtId] = $formatCode; } else if ($xmlReader->isPositionedOnEndingNode(self::XML_NODE_NUM_FMTS)) { // Once done reading "numFmts" node's children break; } } } /** * Extracts style attributes from the "xf" nodes, inside the "cellXfs" section. * For simplicity, the styles attributes are kept in memory. This is possible thanks * to the reuse of styles. So 1 million cells should not use 1 million styles. * * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReader XML Reader positioned on the "cellXfs" node * @return void */ protected function extractStyleAttributes($xmlReader) { while ($xmlReader->read()) { if ($xmlReader->isPositionedOnStartingNode(self::XML_NODE_XF)) { $numFmtId = $xmlReader->getAttribute(self::XML_ATTRIBUTE_NUM_FMT_ID); $normalizedNumFmtId = ($numFmtId !== null) ? intval($numFmtId) : null; $applyNumberFormat = $xmlReader->getAttribute(self::XML_ATTRIBUTE_APPLY_NUMBER_FORMAT); $normalizedApplyNumberFormat = ($applyNumberFormat !== null) ? !!$applyNumberFormat : null; $this->stylesAttributes[] = [ self::XML_ATTRIBUTE_NUM_FMT_ID => $normalizedNumFmtId, self::XML_ATTRIBUTE_APPLY_NUMBER_FORMAT => $normalizedApplyNumberFormat, ]; } else if ($xmlReader->isPositionedOnEndingNode(self::XML_NODE_CELL_XFS)) { // Once done reading "cellXfs" node's children break; } } } /** * @return array The custom number formats */ protected function getCustomNumberFormats() { if (!isset($this->customNumberFormats)) { $this->extractRelevantInfo(); } return $this->customNumberFormats; } /** * @return array The styles attributes */ protected function getStylesAttributes() { if (!isset($this->stylesAttributes)) { $this->extractRelevantInfo(); } return $this->stylesAttributes; } /** * @param array $styleAttributes Array containing the style attributes (2 keys: "applyNumberFormat" and "numFmtId") * @return bool Whether the style with the given attributes indicates that the number is a date */ protected function doesStyleIndicateDate($styleAttributes) { $applyNumberFormat = $styleAttributes[self::XML_ATTRIBUTE_APPLY_NUMBER_FORMAT]; $numFmtId = $styleAttributes[self::XML_ATTRIBUTE_NUM_FMT_ID]; // A style may apply a date format if it has: // - "applyNumberFormat" attribute not set to "false" // - "numFmtId" attribute set // This is a preliminary check, as having "numFmtId" set just means the style should apply a specific number format, // but this is not necessarily a date. if ($applyNumberFormat === false || $numFmtId === null) { return false; } return $this->doesNumFmtIdIndicateDate($numFmtId); } /** * Returns whether the number format ID indicates that the number is a date. * The result is cached to avoid recomputing the same thing over and over, as * "numFmtId" attributes can be shared between multiple styles. * * @param int $numFmtId * @return bool Whether the number format ID indicates that the number is a date */ protected function doesNumFmtIdIndicateDate($numFmtId) { if (!isset($this->numFmtIdToIsDateFormatCache[$numFmtId])) { $formatCode = $this->getFormatCodeForNumFmtId($numFmtId); $this->numFmtIdToIsDateFormatCache[$numFmtId] = ( $this->isNumFmtIdBuiltInDateFormat($numFmtId) || $this->isFormatCodeCustomDateFormat($formatCode) ); } return $this->numFmtIdToIsDateFormatCache[$numFmtId]; } /** * @param int $numFmtId * @return string|null The custom number format or NULL if none defined for the given numFmtId */ protected function getFormatCodeForNumFmtId($numFmtId) { $customNumberFormats = $this->getCustomNumberFormats(); // Using isset here because it is way faster than array_key_exists... return (isset($customNumberFormats[$numFmtId])) ? $customNumberFormats[$numFmtId] : null; } /** * @param int $numFmtId * @return bool Whether the number format ID indicates that the number is a date */ protected function isNumFmtIdBuiltInDateFormat($numFmtId) { return in_array($numFmtId, $this->builtinNumFmtIdIndicatingDates); } /** * @param string|null $formatCode * @return bool Whether the given format code indicates that the number is a date */ protected function isFormatCodeCustomDateFormat($formatCode) { // if no associated format code or if using the default "General" format if ($formatCode === null || strcasecmp($formatCode, self::NUMBER_FORMAT_GENERAL) === 0) { return false; } return $this->isFormatCodeMatchingDateFormatPattern($formatCode); } /** * @param string $formatCode * @return bool Whether the given format code matches a date format pattern */ protected function isFormatCodeMatchingDateFormatPattern($formatCode) { // Remove extra formatting (what's between [ ], the brackets should not be preceded by a "\") $pattern = '((?getStylesAttributes(); $styleAttributes = $stylesAttributes[$styleId]; $numFmtId = $styleAttributes[self::XML_ATTRIBUTE_NUM_FMT_ID]; if ($this->isNumFmtIdBuiltInDateFormat($numFmtId)) { $numberFormatCode = self::$builtinNumFmtIdToNumFormatMapping[$numFmtId]; } else { $customNumberFormats = $this->getCustomNumberFormats(); $numberFormatCode = $customNumberFormats[$numFmtId]; } return $numberFormatCode; } } app/Services/Spout/Reader/XLSX/Helper/DateFormatHelper.php000064400000013404147600120010017330 0ustar00 [ // Time 'am/pm' => 'A', // Uppercase Ante meridiem and Post meridiem ':mm' => ':i', // Minutes with leading zeros - if preceded by a ":" (otherwise month) 'mm:' => 'i:', // Minutes with leading zeros - if followed by a ":" (otherwise month) 'ss' => 's', // Seconds, with leading zeros '.s' => '', // Ignore (fractional seconds format does not exist in PHP) // Date 'e' => 'Y', // Full numeric representation of a year, 4 digits 'yyyy' => 'Y', // Full numeric representation of a year, 4 digits 'yy' => 'y', // Two digit representation of a year 'mmmmm' => 'M', // Short textual representation of a month, three letters ("mmmmm" should only contain the 1st letter...) 'mmmm' => 'F', // Full textual representation of a month 'mmm' => 'M', // Short textual representation of a month, three letters 'mm' => 'm', // Numeric representation of a month, with leading zeros 'm' => 'n', // Numeric representation of a month, without leading zeros 'dddd' => 'l', // Full textual representation of the day of the week 'ddd' => 'D', // Textual representation of a day, three letters 'dd' => 'd', // Day of the month, 2 digits with leading zeros 'd' => 'j', // Day of the month without leading zeros ], self::KEY_HOUR_12 => [ 'hh' => 'h', // 12-hour format of an hour without leading zeros 'h' => 'g', // 12-hour format of an hour without leading zeros ], self::KEY_HOUR_24 => [ 'hh' => 'H', // 24-hour hours with leading zero 'h' => 'G', // 24-hour format of an hour without leading zeros ], ]; /** * Converts the given Excel date format to a format understandable by the PHP date function. * * @param string $excelDateFormat Excel date format * @return string PHP date format (as defined here: http://php.net/manual/en/function.date.php) */ public static function toPHPDateFormat($excelDateFormat) { // Remove brackets potentially present at the beginning of the format string // and text portion of the format at the end of it (starting with ";") // See §18.8.31 of ECMA-376 for more detail. $dateFormat = preg_replace('/^(?:\[\$[^\]]+?\])?([^;]*).*/', '$1', $excelDateFormat); // Double quotes are used to escape characters that must not be interpreted. // For instance, ["Day " dd] should result in "Day 13" and we should not try to interpret "D", "a", "y" // By exploding the format string using double quote as a delimiter, we can get all parts // that must be transformed (even indexes) and all parts that must not be (odd indexes). $dateFormatParts = explode('"', $dateFormat); foreach ($dateFormatParts as $partIndex => $dateFormatPart) { // do not look at odd indexes if ($partIndex % 2 === 1) { continue; } // Make sure all characters are lowercase, as the mapping table is using lowercase characters $transformedPart = strtolower($dateFormatPart); // Remove escapes related to non-format characters $transformedPart = str_replace('\\', '', $transformedPart); // Apply general transformation first... $transformedPart = strtr($transformedPart, self::$excelDateFormatToPHPDateFormatMapping[self::KEY_GENERAL]); // ... then apply hour transformation, for 12-hour or 24-hour format if (self::has12HourFormatMarker($dateFormatPart)) { $transformedPart = strtr($transformedPart, self::$excelDateFormatToPHPDateFormatMapping[self::KEY_HOUR_12]); } else { $transformedPart = strtr($transformedPart, self::$excelDateFormatToPHPDateFormatMapping[self::KEY_HOUR_24]); } // overwrite the parts array with the new transformed part $dateFormatParts[$partIndex] = $transformedPart; } // Merge all transformed parts back together $phpDateFormat = implode('"', $dateFormatParts); // Finally, to have the date format compatible with the DateTime::format() function, we need to escape // all characters that are inside double quotes (and double quotes must be removed). // For instance, ["Day " dd] should become [\D\a\y\ dd] $phpDateFormat = preg_replace_callback('/"(.+?)"/', function($matches) { $stringToEscape = $matches[1]; $letters = preg_split('//u', $stringToEscape, -1, PREG_SPLIT_NO_EMPTY); return '\\' . implode('\\', $letters); }, $phpDateFormat); return $phpDateFormat; } /** * @param string $excelDateFormat Date format as defined by Excel * @return bool Whether the given date format has the 12-hour format marker */ private static function has12HourFormatMarker($excelDateFormat) { return (stripos($excelDateFormat, 'am/pm') !== false); } } app/Services/Spout/Reader/XLSX/Helper/CellHelper.php000064400000010174147600120010016162 0ustar00 0, 'B' => 1, 'C' => 2, 'D' => 3, 'E' => 4, 'F' => 5, 'G' => 6, 'H' => 7, 'I' => 8, 'J' => 9, 'K' => 10, 'L' => 11, 'M' => 12, 'N' => 13, 'O' => 14, 'P' => 15, 'Q' => 16, 'R' => 17, 'S' => 18, 'T' => 19, 'U' => 20, 'V' => 21, 'W' => 22, 'X' => 23, 'Y' => 24, 'Z' => 25, ]; /** * Fills the missing indexes of an array with a given value. * For instance, $dataArray = []; $a[1] = 1; $a[3] = 3; * Calling fillMissingArrayIndexes($dataArray, 'FILL') will return this array: ['FILL', 1, 'FILL', 3] * * @param array $dataArray The array to fill * @param string|void $fillValue optional * @return array */ public static function fillMissingArrayIndexes($dataArray, $fillValue = '') { if (empty($dataArray)) { return []; } $existingIndexes = array_keys($dataArray); $newIndexes = array_fill_keys(range(0, max($existingIndexes)), $fillValue); $dataArray += $newIndexes; ksort($dataArray); return $dataArray; } /** * Returns the base 10 column index associated to the cell index (base 26). * Excel uses A to Z letters for column indexing, where A is the 1st column, * Z is the 26th and AA is the 27th. * The mapping is zero based, so that A1 maps to 0, B2 maps to 1, Z13 to 25 and AA4 to 26. * * @param string $cellIndex The Excel cell index ('A1', 'BC13', ...) * @return int * @throws \Box\Spout\Common\Exception\InvalidArgumentException When the given cell index is invalid */ public static function getColumnIndexFromCellIndex($cellIndex) { if (!self::isValidCellIndex($cellIndex)) { throw new InvalidArgumentException('Cannot get column index from an invalid cell index.'); } $columnIndex = 0; // Remove row information $columnLetters = preg_replace('/\d/', '', $cellIndex); // strlen() is super slow too... Using isset() is way faster and not too unreadable, // since we checked before that there are between 1 and 3 letters. $columnLength = isset($columnLetters[1]) ? (isset($columnLetters[2]) ? 3 : 2) : 1; // Looping over the different letters of the column is slower than this method. // Also, not using the pow() function because it's slooooow... switch ($columnLength) { case 1: $columnIndex = (self::$columnLetterToIndexMapping[$columnLetters]); break; case 2: $firstLetterIndex = (self::$columnLetterToIndexMapping[$columnLetters[0]] + 1) * 26; $secondLetterIndex = self::$columnLetterToIndexMapping[$columnLetters[1]]; $columnIndex = $firstLetterIndex + $secondLetterIndex; break; case 3: $firstLetterIndex = (self::$columnLetterToIndexMapping[$columnLetters[0]] + 1) * 676; $secondLetterIndex = (self::$columnLetterToIndexMapping[$columnLetters[1]] + 1) * 26; $thirdLetterIndex = self::$columnLetterToIndexMapping[$columnLetters[2]]; $columnIndex = $firstLetterIndex + $secondLetterIndex + $thirdLetterIndex; break; } return $columnIndex; } /** * Returns whether a cell index is valid, in an Excel world. * To be valid, the cell index should start with capital letters and be followed by numbers. * There can only be 3 letters, as there can only be 16,384 rows, which is equivalent to 'XFE'. * * @param string $cellIndex The Excel cell index ('A1', 'BC13', ...) * @return bool */ protected static function isValidCellIndex($cellIndex) { return (preg_match('/^[A-Z]{1,3}\d+$/', $cellIndex) === 1); } } app/Services/Spout/Reader/XLSX/Helper/SharedStringsHelper.php000064400000021356147600120010020067 0ustar00filePath = $filePath; $this->tempFolder = $tempFolder; } /** * Returns whether the XLSX file contains a shared strings XML file * * @return bool */ public function hasSharedStrings() { $hasSharedStrings = false; $zip = new \ZipArchive(); if ($zip->open($this->filePath) === true) { $hasSharedStrings = ($zip->locateName(self::SHARED_STRINGS_XML_FILE_PATH) !== false); $zip->close(); } return $hasSharedStrings; } /** * Builds an in-memory array containing all the shared strings of the sheet. * All the strings are stored in a XML file, located at 'xl/sharedStrings.xml'. * It is then accessed by the sheet data, via the string index in the built table. * * More documentation available here: http://msdn.microsoft.com/en-us/library/office/gg278314.aspx * * The XML file can be really big with sheets containing a lot of data. That is why * we need to use a XML reader that provides streaming like the XMLReader library. * * @return void * @throws \Box\Spout\Common\Exception\IOException If sharedStrings.xml can't be read */ public function extractSharedStrings() { $xmlReader = new XMLReader(); $sharedStringIndex = 0; if ($xmlReader->openFileInZip($this->filePath, self::SHARED_STRINGS_XML_FILE_PATH) === false) { throw new IOException('Could not open "' . self::SHARED_STRINGS_XML_FILE_PATH . '".'); } try { $sharedStringsUniqueCount = $this->getSharedStringsUniqueCount($xmlReader); $this->cachingStrategy = $this->getBestSharedStringsCachingStrategy($sharedStringsUniqueCount); $xmlReader->readUntilNodeFound(self::XML_NODE_SI); while ($xmlReader->getCurrentNodeName() === self::XML_NODE_SI) { $this->processSharedStringsItem($xmlReader, $sharedStringIndex); $sharedStringIndex++; // jump to the next '' tag $xmlReader->next(self::XML_NODE_SI); } $this->cachingStrategy->closeCache(); } catch (XMLProcessingException $exception) { throw new IOException("The sharedStrings.xml file is invalid and cannot be read. [{$exception->getMessage()}]"); } $xmlReader->close(); } /** * Returns the shared strings unique count, as specified in tag. * * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReader XMLReader instance * @return int|null Number of unique shared strings in the sharedStrings.xml file * @throws \Box\Spout\Common\Exception\IOException If sharedStrings.xml is invalid and can't be read */ protected function getSharedStringsUniqueCount($xmlReader) { $xmlReader->next(self::XML_NODE_SST); // Iterate over the "sst" elements to get the actual "sst ELEMENT" (skips any DOCTYPE) while ($xmlReader->getCurrentNodeName() === self::XML_NODE_SST && $xmlReader->nodeType !== XMLReader::ELEMENT) { $xmlReader->read(); } $uniqueCount = $xmlReader->getAttribute(self::XML_ATTRIBUTE_UNIQUE_COUNT); // some software do not add the "uniqueCount" attribute but only use the "count" one // @see https://github.com/box/spout/issues/254 if ($uniqueCount === null) { $uniqueCount = $xmlReader->getAttribute(self::XML_ATTRIBUTE_COUNT); } return ($uniqueCount !== null) ? intval($uniqueCount) : null; } /** * Returns the best shared strings caching strategy. * * @param int|null $sharedStringsUniqueCount Number of unique shared strings (NULL if unknown) * @return CachingStrategyInterface */ protected function getBestSharedStringsCachingStrategy($sharedStringsUniqueCount) { return CachingStrategyFactory::getInstance() ->getBestCachingStrategy($sharedStringsUniqueCount, $this->tempFolder); } /** * Processes the shared strings item XML node which the given XML reader is positioned on. * * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReader XML Reader positioned on a "" node * @param int $sharedStringIndex Index of the processed shared strings item * @return void */ protected function processSharedStringsItem($xmlReader, $sharedStringIndex) { $sharedStringValue = ''; // NOTE: expand() will automatically decode all XML entities of the child nodes $siNode = $xmlReader->expand(); $textNodes = $siNode->getElementsByTagName(self::XML_NODE_T); foreach ($textNodes as $textNode) { if ($this->shouldExtractTextNodeValue($textNode)) { $textNodeValue = $textNode->nodeValue; $shouldPreserveWhitespace = $this->shouldPreserveWhitespace($textNode); $sharedStringValue .= ($shouldPreserveWhitespace) ? $textNodeValue : trim($textNodeValue); } } $this->cachingStrategy->addStringForIndex($sharedStringValue, $sharedStringIndex); } /** * Not all text nodes' values must be extracted. * Some text nodes are part of a node describing the pronunciation for instance. * We'll only consider the nodes whose parents are "" or "". * * @param \DOMElement $textNode Text node to check * @return bool Whether the given text node's value must be extracted */ protected function shouldExtractTextNodeValue($textNode) { $parentTagName = $textNode->parentNode->localName; return ($parentTagName === self::XML_NODE_SI || $parentTagName === self::XML_NODE_R); } /** * If the text node has the attribute 'xml:space="preserve"', then preserve whitespace. * * @param \DOMElement $textNode The text node element () whose whitespace may be preserved * @return bool Whether whitespace should be preserved */ protected function shouldPreserveWhitespace($textNode) { $spaceValue = $textNode->getAttribute(self::XML_ATTRIBUTE_XML_SPACE); return ($spaceValue === self::XML_ATTRIBUTE_VALUE_PRESERVE); } /** * Returns the shared string at the given index, using the previously chosen caching strategy. * * @param int $sharedStringIndex Index of the shared string in the sharedStrings.xml file * @return string The shared string at the given index * @throws \Box\Spout\Reader\Exception\SharedStringNotFoundException If no shared string found for the given index */ public function getStringAtIndex($sharedStringIndex) { return $this->cachingStrategy->getStringAtIndex($sharedStringIndex); } /** * Destroys the cache, freeing memory and removing any created artifacts * * @return void */ public function cleanup() { if ($this->cachingStrategy) { $this->cachingStrategy->clearCache(); } } } app/Services/Spout/Reader/XLSX/Helper/SheetHelper.php000064400000015013147600120010016350 0ustar00filePath = $filePath; $this->options = $options; $this->sharedStringsHelper = $sharedStringsHelper; $this->globalFunctionsHelper = $globalFunctionsHelper; } /** * Returns the sheets metadata of the file located at the previously given file path. * The paths to the sheets' data are read from the [Content_Types].xml file. * * @return Sheet[] Sheets within the XLSX file */ public function getSheets() { $sheets = []; $sheetIndex = 0; $activeSheetIndex = 0; // By default, the first sheet is active $xmlReader = new XMLReader(); if ($xmlReader->openFileInZip($this->filePath, self::WORKBOOK_XML_FILE_PATH)) { while ($xmlReader->read()) { if ($xmlReader->isPositionedOnStartingNode(self::XML_NODE_WORKBOOK_VIEW)) { // The "workbookView" node is located before "sheet" nodes, ensuring that // the active sheet is known before parsing sheets data. $activeSheetIndex = (int) $xmlReader->getAttribute(self::XML_ATTRIBUTE_ACTIVE_TAB); } else if ($xmlReader->isPositionedOnStartingNode(self::XML_NODE_SHEET)) { $isSheetActive = ($sheetIndex === $activeSheetIndex); $sheets[] = $this->getSheetFromSheetXMLNode($xmlReader, $sheetIndex, $isSheetActive); $sheetIndex++; } else if ($xmlReader->isPositionedOnEndingNode(self::XML_NODE_SHEETS)) { // stop reading once all sheets have been read break; } } $xmlReader->close(); } return $sheets; } /** * Returns an instance of a sheet, given the XML node describing the sheet - from "workbook.xml". * We can find the XML file path describing the sheet inside "workbook.xml.res", by mapping with the sheet ID * ("r:id" in "workbook.xml", "Id" in "workbook.xml.res"). * * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReaderOnSheetNode XML Reader instance, pointing on the node describing the sheet, as defined in "workbook.xml" * @param int $sheetIndexZeroBased Index of the sheet, based on order of appearance in the workbook (zero-based) * @param bool $isSheetActive Whether this sheet was defined as active * @return \Box\Spout\Reader\XLSX\Sheet Sheet instance */ protected function getSheetFromSheetXMLNode($xmlReaderOnSheetNode, $sheetIndexZeroBased, $isSheetActive) { $sheetId = $xmlReaderOnSheetNode->getAttribute(self::XML_ATTRIBUTE_R_ID); $escapedSheetName = $xmlReaderOnSheetNode->getAttribute(self::XML_ATTRIBUTE_NAME); /** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ $escaper = \Box\Spout\Common\Escaper\XLSX::getInstance(); $sheetName = $escaper->unescape($escapedSheetName); $sheetDataXMLFilePath = $this->getSheetDataXMLFilePathForSheetId($sheetId); return new Sheet( $this->filePath, $sheetDataXMLFilePath, $sheetIndexZeroBased, $sheetName, $isSheetActive, $this->options, $this->sharedStringsHelper ); } /** * @param string $sheetId The sheet ID, as defined in "workbook.xml" * @return string The XML file path describing the sheet inside "workbook.xml.res", for the given sheet ID */ protected function getSheetDataXMLFilePathForSheetId($sheetId) { $sheetDataXMLFilePath = ''; // find the file path of the sheet, by looking at the "workbook.xml.res" file $xmlReader = new XMLReader(); if ($xmlReader->openFileInZip($this->filePath, self::WORKBOOK_XML_RELS_FILE_PATH)) { while ($xmlReader->read()) { if ($xmlReader->isPositionedOnStartingNode(self::XML_NODE_RELATIONSHIP)) { $relationshipSheetId = $xmlReader->getAttribute(self::XML_ATTRIBUTE_ID); if ($relationshipSheetId === $sheetId) { // In workbook.xml.rels, it is only "worksheets/sheet1.xml" // In [Content_Types].xml, the path is "/xl/worksheets/sheet1.xml" $sheetDataXMLFilePath = $xmlReader->getAttribute(self::XML_ATTRIBUTE_TARGET); // sometimes, the sheet data file path already contains "/xl/"... if (strpos($sheetDataXMLFilePath, '/xl/') !== 0) { $sheetDataXMLFilePath = '/xl/' . $sheetDataXMLFilePath; break; } } } } $xmlReader->close(); } return $sheetDataXMLFilePath; } } app/Services/Spout/Reader/XLSX/RowIterator.php000064400000035667147600120010015223 0ustar00filePath = $filePath; $this->sheetDataXMLFilePath = $this->normalizeSheetDataXMLFilePath($sheetDataXMLFilePath); $this->xmlReader = new XMLReader(); $this->styleHelper = new StyleHelper($filePath); $this->cellValueFormatter = new CellValueFormatter($sharedStringsHelper, $this->styleHelper, $options->shouldFormatDates()); $this->shouldPreserveEmptyRows = $options->shouldPreserveEmptyRows(); // Register all callbacks to process different nodes when reading the XML file $this->xmlProcessor = new XMLProcessor($this->xmlReader); $this->xmlProcessor->registerCallback(self::XML_NODE_DIMENSION, XMLProcessor::NODE_TYPE_START, [$this, 'processDimensionStartingNode']); $this->xmlProcessor->registerCallback(self::XML_NODE_ROW, XMLProcessor::NODE_TYPE_START, [$this, 'processRowStartingNode']); $this->xmlProcessor->registerCallback(self::XML_NODE_CELL, XMLProcessor::NODE_TYPE_START, [$this, 'processCellStartingNode']); $this->xmlProcessor->registerCallback(self::XML_NODE_ROW, XMLProcessor::NODE_TYPE_END, [$this, 'processRowEndingNode']); $this->xmlProcessor->registerCallback(self::XML_NODE_WORKSHEET, XMLProcessor::NODE_TYPE_END, [$this, 'processWorksheetEndingNode']); } /** * @param string $sheetDataXMLFilePath Path of the sheet data XML file as in [Content_Types].xml * @return string Path of the XML file containing the sheet data, * without the leading slash. */ protected function normalizeSheetDataXMLFilePath($sheetDataXMLFilePath) { return ltrim($sheetDataXMLFilePath, '/'); } /** * Rewind the Iterator to the first element. * Initializes the XMLReader object that reads the associated sheet data. * The XMLReader is configured to be safe from billion laughs attack. * @link http://php.net/manual/en/iterator.rewind.php * * @return void * @throws \Box\Spout\Common\Exception\IOException If the sheet data XML cannot be read */ public function rewind() { $this->xmlReader->close(); if ($this->xmlReader->openFileInZip($this->filePath, $this->sheetDataXMLFilePath) === false) { throw new IOException("Could not open \"{$this->sheetDataXMLFilePath}\"."); } $this->numReadRows = 0; $this->lastRowIndexProcessed = 0; $this->nextRowIndexToBeProcessed = 0; $this->rowDataBuffer = null; $this->hasReachedEndOfFile = false; $this->numColumns = 0; $this->next(); } /** * Checks if current position is valid * @link http://php.net/manual/en/iterator.valid.php * * @return bool */ public function valid() { return (!$this->hasReachedEndOfFile); } /** * Move forward to next element. Reads data describing the next unprocessed row. * @link http://php.net/manual/en/iterator.next.php * * @return void * @throws \Box\Spout\Reader\Exception\SharedStringNotFoundException If a shared string was not found * @throws \Box\Spout\Common\Exception\IOException If unable to read the sheet data XML */ public function next() { $this->nextRowIndexToBeProcessed++; if ($this->doesNeedDataForNextRowToBeProcessed()) { $this->readDataForNextRow(); } } /** * Returns whether we need data for the next row to be processed. * We don't need to read data if: * we have already read at least one row * AND * we need to preserve empty rows * AND * the last row that was read is not the row that need to be processed * (i.e. if we need to return empty rows) * * @return bool Whether we need data for the next row to be processed. */ protected function doesNeedDataForNextRowToBeProcessed() { $hasReadAtLeastOneRow = ($this->lastRowIndexProcessed !== 0); return ( !$hasReadAtLeastOneRow || !$this->shouldPreserveEmptyRows || $this->lastRowIndexProcessed < $this->nextRowIndexToBeProcessed ); } /** * @return void * @throws \Box\Spout\Reader\Exception\SharedStringNotFoundException If a shared string was not found * @throws \Box\Spout\Common\Exception\IOException If unable to read the sheet data XML */ protected function readDataForNextRow() { $this->currentlyProcessedRowData = []; try { $this->xmlProcessor->readUntilStopped(); } catch (XMLProcessingException $exception) { throw new IOException("The {$this->sheetDataXMLFilePath} file cannot be read. [{$exception->getMessage()}]"); } $this->rowDataBuffer = $this->currentlyProcessedRowData; } /** * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReader XMLReader object, positioned on a "" starting node * @return int A return code that indicates what action should the processor take next */ protected function processDimensionStartingNode($xmlReader) { // Read dimensions of the sheet $dimensionRef = $xmlReader->getAttribute(self::XML_ATTRIBUTE_REF); // returns 'A1:M13' for instance (or 'A1' for empty sheet) if (preg_match('/[A-Z]+\d+:([A-Z]+\d+)/', $dimensionRef, $matches)) { $this->numColumns = CellHelper::getColumnIndexFromCellIndex($matches[1]) + 1; } return XMLProcessor::PROCESSING_CONTINUE; } /** * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReader XMLReader object, positioned on a "" starting node * @return int A return code that indicates what action should the processor take next */ protected function processRowStartingNode($xmlReader) { // Reset index of the last processed column $this->lastColumnIndexProcessed = -1; // Mark the last processed row as the one currently being read $this->lastRowIndexProcessed = $this->getRowIndex($xmlReader); // Read spans info if present $numberOfColumnsForRow = $this->numColumns; $spans = $xmlReader->getAttribute(self::XML_ATTRIBUTE_SPANS); // returns '1:5' for instance if ($spans) { list(, $numberOfColumnsForRow) = explode(':', $spans); $numberOfColumnsForRow = intval($numberOfColumnsForRow); } $this->currentlyProcessedRowData = ($numberOfColumnsForRow !== 0) ? array_fill(0, $numberOfColumnsForRow, '') : []; return XMLProcessor::PROCESSING_CONTINUE; } /** * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReader XMLReader object, positioned on a "" starting node * @return int A return code that indicates what action should the processor take next */ protected function processCellStartingNode($xmlReader) { $currentColumnIndex = $this->getColumnIndex($xmlReader); // NOTE: expand() will automatically decode all XML entities of the child nodes $node = $xmlReader->expand(); $this->currentlyProcessedRowData[$currentColumnIndex] = $this->getCellValue($node); $this->lastColumnIndexProcessed = $currentColumnIndex; return XMLProcessor::PROCESSING_CONTINUE; } /** * @return int A return code that indicates what action should the processor take next */ protected function processRowEndingNode() { // if the fetched row is empty and we don't want to preserve it.., if (!$this->shouldPreserveEmptyRows && $this->isEmptyRow($this->currentlyProcessedRowData)) { // ... skip it return XMLProcessor::PROCESSING_CONTINUE; } $this->numReadRows++; // If needed, we fill the empty cells if ($this->numColumns === 0) { $this->currentlyProcessedRowData = CellHelper::fillMissingArrayIndexes($this->currentlyProcessedRowData); } // at this point, we have all the data we need for the row // so that we can populate the buffer return XMLProcessor::PROCESSING_STOP; } /** * @return int A return code that indicates what action should the processor take next */ protected function processWorksheetEndingNode() { // The closing "" marks the end of the file $this->hasReachedEndOfFile = true; return XMLProcessor::PROCESSING_STOP; } /** * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReader XMLReader object, positioned on a "" node * @return int Row index * @throws \Box\Spout\Common\Exception\InvalidArgumentException When the given cell index is invalid */ protected function getRowIndex($xmlReader) { // Get "r" attribute if present (from something like $currentRowIndex = $xmlReader->getAttribute(self::XML_ATTRIBUTE_ROW_INDEX); return ($currentRowIndex !== null) ? intval($currentRowIndex) : $this->lastRowIndexProcessed + 1; } /** * @param \Box\Spout\Reader\Wrapper\XMLReader $xmlReader XMLReader object, positioned on a "" node * @return int Column index * @throws \Box\Spout\Common\Exception\InvalidArgumentException When the given cell index is invalid */ protected function getColumnIndex($xmlReader) { // Get "r" attribute if present (from something like $currentCellIndex = $xmlReader->getAttribute(self::XML_ATTRIBUTE_CELL_INDEX); return ($currentCellIndex !== null) ? CellHelper::getColumnIndexFromCellIndex($currentCellIndex) : $this->lastColumnIndexProcessed + 1; } /** * Returns the (unescaped) correctly marshalled, cell value associated to the given XML node. * * @param \DOMNode $node * @return string|int|float|bool|\DateTime|null The value associated with the cell (null when the cell has an error) */ protected function getCellValue($node) { return $this->cellValueFormatter->extractAndFormatNodeValue($node); } /** * @param array $rowData * @return bool Whether the given row is empty */ protected function isEmptyRow($rowData) { return (count($rowData) === 1 && key($rowData) === ''); } /** * Return the current element, either an empty row or from the buffer. * @link http://php.net/manual/en/iterator.current.php * * @return array|null */ public function current() { $rowDataForRowToBeProcessed = $this->rowDataBuffer; if ($this->shouldPreserveEmptyRows) { // when we need to preserve empty rows, we will either return // an empty row or the last row read. This depends whether the // index of last row that was read matches the index of the last // row whose value should be returned. if ($this->lastRowIndexProcessed !== $this->nextRowIndexToBeProcessed) { // return empty row if mismatch between last processed row // and the row that needs to be returned $rowDataForRowToBeProcessed = ['']; } } return $rowDataForRowToBeProcessed; } /** * Return the key of the current element. Here, the row index. * @link http://php.net/manual/en/iterator.key.php * * @return int */ public function key() { // TODO: This should return $this->nextRowIndexToBeProcessed // but to avoid a breaking change, the return value for // this function has been kept as the number of rows read. return $this->shouldPreserveEmptyRows ? $this->nextRowIndexToBeProcessed : $this->numReadRows; } /** * Cleans up what was created to iterate over the object. * * @return void */ public function end() { $this->xmlReader->close(); } } app/Services/Spout/Reader/XLSX/SheetIterator.php000064400000006212147600120010015504 0ustar00sheets = $sheetHelper->getSheets(); if (count($this->sheets) === 0) { throw new NoSheetsFoundException('The file must contain at least one sheet.'); } } /** * Rewind the Iterator to the first element * @link http://php.net/manual/en/iterator.rewind.php * * @return void */ public function rewind() { $this->currentSheetIndex = 0; } /** * Checks if current position is valid * @link http://php.net/manual/en/iterator.valid.php * * @return bool */ public function valid() { return ($this->currentSheetIndex < count($this->sheets)); } /** * Move forward to next element * @link http://php.net/manual/en/iterator.next.php * * @return void */ public function next() { // Using isset here because it is way faster than array_key_exists... if (isset($this->sheets[$this->currentSheetIndex])) { $currentSheet = $this->sheets[$this->currentSheetIndex]; $currentSheet->getRowIterator()->end(); $this->currentSheetIndex++; } } /** * Return the current element * @link http://php.net/manual/en/iterator.current.php * * @return \Box\Spout\Reader\XLSX\Sheet */ public function current() { return $this->sheets[$this->currentSheetIndex]; } /** * Return the key of the current element * @link http://php.net/manual/en/iterator.key.php * * @return int */ public function key() { return $this->currentSheetIndex + 1; } /** * Cleans up what was created to iterate over the object. * * @return void */ public function end() { // make sure we are not leaking memory in case the iteration stopped before the end foreach ($this->sheets as $sheet) { $sheet->getRowIterator()->end(); } } } app/Services/Spout/Reader/XLSX/Reader.php000064400000006163147600120010014131 0ustar00options)) { $this->options = new ReaderOptions(); } return $this->options; } /** * @param string $tempFolder Temporary folder where the temporary files will be created * @return Reader */ public function setTempFolder($tempFolder) { $this->getOptions()->setTempFolder($tempFolder); return $this; } /** * Returns whether stream wrappers are supported * * @return bool */ protected function doesSupportStreamWrapper() { return false; } /** * Opens the file at the given file path to make it ready to be read. * It also parses the sharedStrings.xml file to get all the shared strings available in memory * and fetches all the available sheets. * * @param string $filePath Path of the file to be read * @return void * @throws \Box\Spout\Common\Exception\IOException If the file at the given path or its content cannot be read * @throws \Box\Spout\Reader\Exception\NoSheetsFoundException If there are no sheets in the file */ protected function openReader($filePath) { $this->zip = new \ZipArchive(); if ($this->zip->open($filePath) === true) { $this->sharedStringsHelper = new SharedStringsHelper($filePath, $this->getOptions()->getTempFolder()); if ($this->sharedStringsHelper->hasSharedStrings()) { // Extracts all the strings from the sheets for easy access in the future $this->sharedStringsHelper->extractSharedStrings(); } $this->sheetIterator = new SheetIterator($filePath, $this->getOptions(), $this->sharedStringsHelper, $this->globalFunctionsHelper); } else { throw new IOException("Could not open $filePath for reading."); } } /** * Returns an iterator to iterate over sheets. * * @return SheetIterator To iterate over sheets */ protected function getConcreteSheetIterator() { return $this->sheetIterator; } /** * Closes the reader. To be used after reading the file. * * @return void */ protected function closeReader() { if ($this->zip) { $this->zip->close(); } if ($this->sharedStringsHelper) { $this->sharedStringsHelper->cleanup(); } } } app/Services/Spout/Reader/XLSX/Sheet.php000064400000004172147600120010013775 0ustar00rowIterator = new RowIterator($filePath, $sheetDataXMLFilePath, $options, $sharedStringsHelper); $this->index = $sheetIndex; $this->name = $sheetName; $this->isActive = $isSheetActive; } /** * @api * @return \Box\Spout\Reader\XLSX\RowIterator */ public function getRowIterator() { return $this->rowIterator; } /** * @api * @return int Index of the sheet, based on order in the workbook (zero-based) */ public function getIndex() { return $this->index; } /** * @api * @return string Name of the sheet */ public function getName() { return $this->name; } /** * @api * @return bool Whether the sheet was defined as active */ public function isActive() { return $this->isActive; } } app/Services/Spout/Reader/XLSX/ReaderOptions.php000064400000001450147600120010015477 0ustar00tempFolder; } /** * @param string|null $tempFolder Temporary folder where the temporary files will be created * @return ReaderOptions */ public function setTempFolder($tempFolder) { $this->tempFolder = $tempFolder; return $this; } } app/Services/Spout/Reader/ReaderInterface.php000064400000001515147600120010015150 0ustar00setGlobalFunctionsHelper(new GlobalFunctionsHelper()); return $reader; } } app/Services/Spout/Reader/SheetInterface.php000064400000000430147600120010015011 0ustar00globalFunctionsHelper = $globalFunctionsHelper; return $this; } /** * Sets whether date/time values should be returned as PHP objects or be formatted as strings. * * @api * @param bool $shouldFormatDates * @return AbstractReader */ public function setShouldFormatDates($shouldFormatDates) { $this->getOptions()->setShouldFormatDates($shouldFormatDates); return $this; } /** * Sets whether empty rows should be returned or skipped. * * @api * @param bool $shouldPreserveEmptyRows * @return AbstractReader */ public function setShouldPreserveEmptyRows($shouldPreserveEmptyRows) { $this->getOptions()->setShouldPreserveEmptyRows($shouldPreserveEmptyRows); return $this; } /** * Prepares the reader to read the given file. It also makes sure * that the file exists and is readable. * * @api * @param string $filePath Path of the file to be read * @return void * @throws \Box\Spout\Common\Exception\IOException If the file at the given path does not exist, is not readable or is corrupted */ public function open($filePath) { if ($this->isStreamWrapper($filePath) && (!$this->doesSupportStreamWrapper() || !$this->isSupportedStreamWrapper($filePath))) { throw new IOException("Could not open $filePath for reading! Stream wrapper used is not supported for this type of file."); } if (!$this->isPhpStream($filePath)) { // we skip the checks if the provided file path points to a PHP stream if (!$this->globalFunctionsHelper->file_exists($filePath)) { throw new IOException("Could not open $filePath for reading! File does not exist."); } else if (!$this->globalFunctionsHelper->is_readable($filePath)) { throw new IOException("Could not open $filePath for reading! File is not readable."); } } try { $fileRealPath = $this->getFileRealPath($filePath); $this->openReader($fileRealPath); $this->isStreamOpened = true; } catch (\Exception $exception) { throw new IOException("Could not open $filePath for reading! ({$exception->getMessage()})"); } } /** * Returns the real path of the given path. * If the given path is a valid stream wrapper, returns the path unchanged. * * @param string $filePath * @return string */ protected function getFileRealPath($filePath) { if ($this->isSupportedStreamWrapper($filePath)) { return $filePath; } // Need to use realpath to fix "Can't open file" on some Windows setup return realpath($filePath); } /** * Returns the scheme of the custom stream wrapper, if the path indicates a stream wrapper is used. * For example, php://temp => php, s3://path/to/file => s3... * * @param string $filePath Path of the file to be read * @return string|null The stream wrapper scheme or NULL if not a stream wrapper */ protected function getStreamWrapperScheme($filePath) { $streamScheme = null; if (preg_match('/^(\w+):\/\//', $filePath, $matches)) { $streamScheme = $matches[1]; } return $streamScheme; } /** * Checks if the given path is an unsupported stream wrapper * (like local path, php://temp, mystream://foo/bar...). * * @param string $filePath Path of the file to be read * @return bool Whether the given path is an unsupported stream wrapper */ protected function isStreamWrapper($filePath) { return ($this->getStreamWrapperScheme($filePath) !== null); } /** * Checks if the given path is an supported stream wrapper * (like php://temp, mystream://foo/bar...). * If the given path is a local path, returns true. * * @param string $filePath Path of the file to be read * @return bool Whether the given path is an supported stream wrapper */ protected function isSupportedStreamWrapper($filePath) { $streamScheme = $this->getStreamWrapperScheme($filePath); return ($streamScheme !== null) ? in_array($streamScheme, $this->globalFunctionsHelper->stream_get_wrappers()) : true; } /** * Checks if a path is a PHP stream (like php://output, php://memory, ...) * * @param string $filePath Path of the file to be read * @return bool Whether the given path maps to a PHP stream */ protected function isPhpStream($filePath) { $streamScheme = $this->getStreamWrapperScheme($filePath); return ($streamScheme === 'php'); } /** * Returns an iterator to iterate over sheets. * * @api * @return \Iterator To iterate over sheets * @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException If called before opening the reader */ public function getSheetIterator() { if (!$this->isStreamOpened) { throw new ReaderNotOpenedException('Reader should be opened first.'); } return $this->getConcreteSheetIterator(); } /** * Closes the reader, preventing any additional reading * * @api * @return void */ public function close() { if ($this->isStreamOpened) { $this->closeReader(); $sheetIterator = $this->getConcreteSheetIterator(); if ($sheetIterator) { $sheetIterator->end(); } $this->isStreamOpened = false; } } } app/Services/Spout/Writer/CSV/Writer.php000064400000006417147600120010014114 0ustar00fieldDelimiter = $fieldDelimiter; return $this; } /** * Sets the field enclosure for the CSV * * @api * @param string $fieldEnclosure Character that enclose fields * @return Writer */ public function setFieldEnclosure($fieldEnclosure) { $this->fieldEnclosure = $fieldEnclosure; return $this; } /** * Set if a BOM has to be added to the file * * @param bool $shouldAddBOM * @return Writer */ public function setShouldAddBOM($shouldAddBOM) { $this->shouldAddBOM = (bool) $shouldAddBOM; return $this; } /** * Opens the CSV streamer and makes it ready to accept data. * * @return void */ protected function openWriter() { if ($this->shouldAddBOM) { // Adds UTF-8 BOM for Unicode compatibility $this->globalFunctionsHelper->fputs($this->filePointer, EncodingHelper::BOM_UTF8); } } /** * Adds data to the currently opened writer. * * @param array $dataRow Array containing data to be written. * Example $dataRow = ['data1', 1234, null, '', 'data5']; * @param \Box\Spout\Writer\Style\Style $style Ignored here since CSV does not support styling. * @return void * @throws \Box\Spout\Common\Exception\IOException If unable to write data */ protected function addRowToWriter(array $dataRow, $style) { $wasWriteSuccessful = $this->globalFunctionsHelper->fputcsv($this->filePointer, $dataRow, $this->fieldDelimiter, $this->fieldEnclosure); if ($wasWriteSuccessful === false) { throw new IOException('Unable to write data'); } $this->lastWrittenRowIndex++; if ($this->lastWrittenRowIndex % self::FLUSH_THRESHOLD === 0) { $this->globalFunctionsHelper->fflush($this->filePointer); } } /** * Closes the CSV streamer, preventing any additional writing. * If set, sets the headers and redirects output to the browser. * * @return void */ protected function closeWriter() { $this->lastWrittenRowIndex = 0; } } app/Services/Spout/Writer/Common/Helper/AbstractStyleHelper.php000064400000011171147600120010020571 0ustar00 [STYLE_ID] mapping table, keeping track of the registered styles */ protected $serializedStyleToStyleIdMappingTable = []; /** @var array [STYLE_ID] => [STYLE] mapping table, keeping track of the registered styles */ protected $styleIdToStyleMappingTable = []; /** * @param \Box\Spout\Writer\Style\Style $defaultStyle */ public function __construct($defaultStyle) { // This ensures that the default style is the first one to be registered $this->registerStyle($defaultStyle); } /** * Registers the given style as a used style. * Duplicate styles won't be registered more than once. * * @param \Box\Spout\Writer\Style\Style $style The style to be registered * @return \Box\Spout\Writer\Style\Style The registered style, updated with an internal ID. */ public function registerStyle($style) { $serializedStyle = $style->serialize(); if (!$this->hasStyleAlreadyBeenRegistered($style)) { $nextStyleId = count($this->serializedStyleToStyleIdMappingTable); $style->setId($nextStyleId); $this->serializedStyleToStyleIdMappingTable[$serializedStyle] = $nextStyleId; $this->styleIdToStyleMappingTable[$nextStyleId] = $style; } return $this->getStyleFromSerializedStyle($serializedStyle); } /** * Returns whether the given style has already been registered. * * @param \Box\Spout\Writer\Style\Style $style * @return bool */ protected function hasStyleAlreadyBeenRegistered($style) { $serializedStyle = $style->serialize(); // Using isset here because it is way faster than array_key_exists... return isset($this->serializedStyleToStyleIdMappingTable[$serializedStyle]); } /** * Returns the registered style associated to the given serialization. * * @param string $serializedStyle The serialized style from which the actual style should be fetched from * @return \Box\Spout\Writer\Style\Style */ protected function getStyleFromSerializedStyle($serializedStyle) { $styleId = $this->serializedStyleToStyleIdMappingTable[$serializedStyle]; return $this->styleIdToStyleMappingTable[$styleId]; } /** * @return \Box\Spout\Writer\Style\Style[] List of registered styles */ protected function getRegisteredStyles() { return array_values($this->styleIdToStyleMappingTable); } /** * Returns the default style * * @return \Box\Spout\Writer\Style\Style Default style */ protected function getDefaultStyle() { // By construction, the default style has ID 0 return $this->styleIdToStyleMappingTable[0]; } /** * Apply additional styles if the given row needs it. * Typically, set "wrap text" if a cell contains a new line. * * @param \Box\Spout\Writer\Style\Style $style The original style * @param array $dataRow The row the style will be applied to * @return \Box\Spout\Writer\Style\Style The updated style */ public function applyExtraStylesIfNeeded($style, $dataRow) { $updatedStyle = $this->applyWrapTextIfCellContainsNewLine($style, $dataRow); return $updatedStyle; } /** * Set the "wrap text" option if a cell of the given row contains a new line. * * @NOTE: There is a bug on the Mac version of Excel (2011 and below) where new lines * are ignored even when the "wrap text" option is set. This only occurs with * inline strings (shared strings do work fine). * A workaround would be to encode "\n" as "_x000D_" but it does not work * on the Windows version of Excel... * * @param \Box\Spout\Writer\Style\Style $style The original style * @param array $dataRow The row the style will be applied to * @return \Box\Spout\Writer\Style\Style The eventually updated style */ protected function applyWrapTextIfCellContainsNewLine($style, $dataRow) { // if the "wrap text" option is already set, no-op if ($style->hasSetWrapText()) { return $style; } foreach ($dataRow as $cell) { if (is_string($cell) && strpos($cell, "\n") !== false) { $style->setShouldWrapText(); break; } } return $style; } } app/Services/Spout/Writer/Common/Helper/ZipHelper.php000064400000017126147600120010016555 0ustar00tmpFolderPath = $tmpFolderPath; } /** * Returns the already created ZipArchive instance or * creates one if none exists. * * @return \ZipArchive */ protected function createOrGetZip() { if (!isset($this->zip)) { $this->zip = new \ZipArchive(); $zipFilePath = $this->getZipFilePath(); $this->zip->open($zipFilePath, \ZipArchive::CREATE|\ZipArchive::OVERWRITE); } return $this->zip; } /** * @return string Path where the zip file of the given folder will be created */ public function getZipFilePath() { return $this->tmpFolderPath . self::ZIP_EXTENSION; } /** * Adds the given file, located under the given root folder to the archive. * The file will be compressed. * * Example of use: * addFileToArchive('/tmp/xlsx/foo', 'bar/baz.xml'); * => will add the file located at '/tmp/xlsx/foo/bar/baz.xml' in the archive, but only as 'bar/baz.xml' * * @param string $rootFolderPath Path of the root folder that will be ignored in the archive tree. * @param string $localFilePath Path of the file to be added, under the root folder * @param string|void $existingFileMode Controls what to do when trying to add an existing file * @return void */ public function addFileToArchive($rootFolderPath, $localFilePath, $existingFileMode = self::EXISTING_FILES_OVERWRITE) { $this->addFileToArchiveWithCompressionMethod( $rootFolderPath, $localFilePath, $existingFileMode, \ZipArchive::CM_DEFAULT ); } /** * Adds the given file, located under the given root folder to the archive. * The file will NOT be compressed. * * Example of use: * addUncompressedFileToArchive('/tmp/xlsx/foo', 'bar/baz.xml'); * => will add the file located at '/tmp/xlsx/foo/bar/baz.xml' in the archive, but only as 'bar/baz.xml' * * @param string $rootFolderPath Path of the root folder that will be ignored in the archive tree. * @param string $localFilePath Path of the file to be added, under the root folder * @param string|void $existingFileMode Controls what to do when trying to add an existing file * @return void */ public function addUncompressedFileToArchive($rootFolderPath, $localFilePath, $existingFileMode = self::EXISTING_FILES_OVERWRITE) { $this->addFileToArchiveWithCompressionMethod( $rootFolderPath, $localFilePath, $existingFileMode, \ZipArchive::CM_STORE ); } /** * Adds the given file, located under the given root folder to the archive. * The file will NOT be compressed. * * Example of use: * addUncompressedFileToArchive('/tmp/xlsx/foo', 'bar/baz.xml'); * => will add the file located at '/tmp/xlsx/foo/bar/baz.xml' in the archive, but only as 'bar/baz.xml' * * @param string $rootFolderPath Path of the root folder that will be ignored in the archive tree. * @param string $localFilePath Path of the file to be added, under the root folder * @param string $existingFileMode Controls what to do when trying to add an existing file * @param int $compressionMethod The compression method * @return void */ protected function addFileToArchiveWithCompressionMethod($rootFolderPath, $localFilePath, $existingFileMode, $compressionMethod) { $zip = $this->createOrGetZip(); if (!$this->shouldSkipFile($zip, $localFilePath, $existingFileMode)) { $normalizedFullFilePath = $this->getNormalizedRealPath($rootFolderPath . '/' . $localFilePath); $zip->addFile($normalizedFullFilePath, $localFilePath); if (self::canChooseCompressionMethod()) { $zip->setCompressionName($localFilePath, $compressionMethod); } } } /** * @return bool Whether it is possible to choose the desired compression method to be used */ public static function canChooseCompressionMethod() { // setCompressionName() is a PHP7+ method... return (method_exists(new \ZipArchive(), 'setCompressionName')); } /** * @param string $folderPath Path to the folder to be zipped * @param string|void $existingFileMode Controls what to do when trying to add an existing file * @return void */ public function addFolderToArchive($folderPath, $existingFileMode = self::EXISTING_FILES_OVERWRITE) { $zip = $this->createOrGetZip(); $folderRealPath = $this->getNormalizedRealPath($folderPath) . '/'; $itemIterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($folderPath, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::SELF_FIRST); foreach ($itemIterator as $itemInfo) { $itemRealPath = $this->getNormalizedRealPath($itemInfo->getPathname()); $itemLocalPath = str_replace($folderRealPath, '', $itemRealPath); if ($itemInfo->isFile() && !$this->shouldSkipFile($zip, $itemLocalPath, $existingFileMode)) { $zip->addFile($itemRealPath, $itemLocalPath); } } } /** * @param \ZipArchive $zip * @param string $itemLocalPath * @param string $existingFileMode * @return bool Whether the file should be added to the archive or skipped */ protected function shouldSkipFile($zip, $itemLocalPath, $existingFileMode) { // Skip files if: // - EXISTING_FILES_SKIP mode chosen // - File already exists in the archive return ($existingFileMode === self::EXISTING_FILES_SKIP && $zip->locateName($itemLocalPath) !== false); } /** * Returns canonicalized absolute pathname, containing only forward slashes. * * @param string $path Path to normalize * @return string Normalized and canonicalized path */ protected function getNormalizedRealPath($path) { $realPath = realpath($path); return str_replace(DIRECTORY_SEPARATOR, '/', $realPath); } /** * Closes the archive and copies it into the given stream * * @param resource $streamPointer Pointer to the stream to copy the zip * @return void */ public function closeArchiveAndCopyToStream($streamPointer) { $zip = $this->createOrGetZip(); $zip->close(); unset($this->zip); $this->copyZipToStream($streamPointer); } /** * Streams the contents of the zip file into the given stream * * @param resource $pointer Pointer to the stream to copy the zip * @return void */ protected function copyZipToStream($pointer) { $zipFilePointer = fopen($this->getZipFilePath(), 'r'); stream_copy_to_stream($zipFilePointer, $pointer); fclose($zipFilePointer); } } app/Services/Spout/Writer/Common/Helper/CellHelper.php000064400000005331147600120010016665 0ustar00 cell index */ private static $columnIndexToCellIndexCache = []; /** * Returns the cell index (base 26) associated to the base 10 column index. * Excel uses A to Z letters for column indexing, where A is the 1st column, * Z is the 26th and AA is the 27th. * The mapping is zero based, so that 0 maps to A, B maps to 1, Z to 25 and AA to 26. * * @param int $columnIndex The Excel column index (0, 42, ...) * @return string The associated cell index ('A', 'BC', ...) */ public static function getCellIndexFromColumnIndex($columnIndex) { $originalColumnIndex = $columnIndex; // Using isset here because it is way faster than array_key_exists... if (!isset(self::$columnIndexToCellIndexCache[$originalColumnIndex])) { $cellIndex = ''; $capitalAAsciiValue = ord('A'); do { $modulus = $columnIndex % 26; $cellIndex = chr($capitalAAsciiValue + $modulus) . $cellIndex; // substracting 1 because it's zero-based $columnIndex = intval($columnIndex / 26) - 1; } while ($columnIndex >= 0); self::$columnIndexToCellIndexCache[$originalColumnIndex] = $cellIndex; } return self::$columnIndexToCellIndexCache[$originalColumnIndex]; } /** * @param $value * @return bool Whether the given value is considered "empty" */ public static function isEmpty($value) { return ($value === null || $value === ''); } /** * @param $value * @return bool Whether the given value is a non empty string */ public static function isNonEmptyString($value) { return (gettype($value) === 'string' && $value !== ''); } /** * Returns whether the given value is numeric. * A numeric value is from type "integer" or "double" ("float" is not returned by gettype). * * @param $value * @return bool Whether the given value is numeric */ public static function isNumeric($value) { $valueType = gettype($value); return ($valueType === 'integer' || $valueType === 'double'); } /** * Returns whether the given value is boolean. * "true"/"false" and 0/1 are not booleans. * * @param $value * @return bool Whether the given value is boolean */ public static function isBoolean($value) { return gettype($value) === 'boolean'; } } app/Services/Spout/Writer/Common/Internal/AbstractWorkbook.php000064400000015431147600120010020466 0ustar00shouldCreateNewSheetsAutomatically = $shouldCreateNewSheetsAutomatically; $this->internalId = uniqid(); } /** * @return \Box\Spout\Writer\Common\Helper\AbstractStyleHelper The specific style helper */ abstract protected function getStyleHelper(); /** * @return int Maximum number of rows/columns a sheet can contain */ abstract protected function getMaxRowsPerWorksheet(); /** * Creates a new sheet in the workbook. The current sheet remains unchanged. * * @return WorksheetInterface The created sheet * @throws \Box\Spout\Common\Exception\IOException If unable to open the sheet for writing */ abstract public function addNewSheet(); /** * Creates a new sheet in the workbook and make it the current sheet. * The writing will resume where it stopped (i.e. data won't be truncated). * * @return WorksheetInterface The created sheet * @throws \Box\Spout\Common\Exception\IOException If unable to open the sheet for writing */ public function addNewSheetAndMakeItCurrent() { $worksheet = $this->addNewSheet(); $this->setCurrentWorksheet($worksheet); return $worksheet; } /** * @return WorksheetInterface[] All the workbook's sheets */ public function getWorksheets() { return $this->worksheets; } /** * Returns the current sheet * * @return WorksheetInterface The current sheet */ public function getCurrentWorksheet() { return $this->currentWorksheet; } /** * Sets the given sheet as the current one. New data will be written to this sheet. * The writing will resume where it stopped (i.e. data won't be truncated). * * @param \Box\Spout\Writer\Common\Sheet $sheet The "external" sheet to set as current * @return void * @throws \Box\Spout\Writer\Exception\SheetNotFoundException If the given sheet does not exist in the workbook */ public function setCurrentSheet($sheet) { $worksheet = $this->getWorksheetFromExternalSheet($sheet); if ($worksheet !== null) { $this->currentWorksheet = $worksheet; } else { throw new SheetNotFoundException('The given sheet does not exist in the workbook.'); } } /** * @param WorksheetInterface $worksheet * @return void */ protected function setCurrentWorksheet($worksheet) { $this->currentWorksheet = $worksheet; } /** * Returns the worksheet associated to the given external sheet. * * @param \Box\Spout\Writer\Common\Sheet $sheet * @return WorksheetInterface|null The worksheet associated to the given external sheet or null if not found. */ protected function getWorksheetFromExternalSheet($sheet) { $worksheetFound = null; foreach ($this->worksheets as $worksheet) { if ($worksheet->getExternalSheet() === $sheet) { $worksheetFound = $worksheet; break; } } return $worksheetFound; } /** * Adds data to the current sheet. * If shouldCreateNewSheetsAutomatically option is set to true, it will handle pagination * with the creation of new worksheets if one worksheet has reached its maximum capicity. * * @param array $dataRow Array containing data to be written. Cannot be empty. * Example $dataRow = ['data1', 1234, null, '', 'data5']; * @param \Box\Spout\Writer\Style\Style $style Style to be applied to the row. * @return void * @throws \Box\Spout\Common\Exception\IOException If trying to create a new sheet and unable to open the sheet for writing * @throws \Box\Spout\Writer\Exception\WriterException If unable to write data */ public function addRowToCurrentWorksheet($dataRow, $style) { $currentWorksheet = $this->getCurrentWorksheet(); $hasReachedMaxRows = $this->hasCurrentWorkseetReachedMaxRows(); $styleHelper = $this->getStyleHelper(); // if we reached the maximum number of rows for the current sheet... if ($hasReachedMaxRows) { // ... continue writing in a new sheet if option set if ($this->shouldCreateNewSheetsAutomatically) { $currentWorksheet = $this->addNewSheetAndMakeItCurrent(); $updatedStyle = $styleHelper->applyExtraStylesIfNeeded($style, $dataRow); $registeredStyle = $styleHelper->registerStyle($updatedStyle); $currentWorksheet->addRow($dataRow, $registeredStyle); } else { // otherwise, do nothing as the data won't be read anyways } } else { $updatedStyle = $styleHelper->applyExtraStylesIfNeeded($style, $dataRow); $registeredStyle = $styleHelper->registerStyle($updatedStyle); $currentWorksheet->addRow($dataRow, $registeredStyle); } } /** * @return bool Whether the current worksheet has reached the maximum number of rows per sheet. */ protected function hasCurrentWorkseetReachedMaxRows() { $currentWorksheet = $this->getCurrentWorksheet(); return ($currentWorksheet->getLastWrittenRowIndex() >= $this->getMaxRowsPerWorksheet()); } /** * Closes the workbook and all its associated sheets. * All the necessary files are written to disk and zipped together to create the ODS file. * All the temporary files are then deleted. * * @param resource $finalFilePointer Pointer to the ODS that will be created * @return void */ abstract public function close($finalFilePointer); } app/Services/Spout/Writer/Common/Internal/WorksheetInterface.php000064400000002071147600120010020775 0ustar00 [[SHEET_INDEX] => [SHEET_NAME]] keeping track of sheets' name to enforce uniqueness per workbook */ protected static $SHEETS_NAME_USED = []; /** @var int Index of the sheet, based on order in the workbook (zero-based) */ protected $index; /** @var string ID of the sheet's associated workbook. Used to restrict sheet name uniqueness enforcement to a single workbook */ protected $associatedWorkbookId; /** @var string Name of the sheet */ protected $name; /** @var \Box\Spout\Common\Helper\StringHelper */ protected $stringHelper; /** * @param int $sheetIndex Index of the sheet, based on order in the workbook (zero-based) * @param string $associatedWorkbookId ID of the sheet's associated workbook */ public function __construct($sheetIndex, $associatedWorkbookId) { $this->index = $sheetIndex; $this->associatedWorkbookId = $associatedWorkbookId; if (!isset(self::$SHEETS_NAME_USED[$associatedWorkbookId])) { self::$SHEETS_NAME_USED[$associatedWorkbookId] = []; } $this->stringHelper = new StringHelper(); $this->setName(self::DEFAULT_SHEET_NAME_PREFIX . ($sheetIndex + 1)); } /** * @api * @return int Index of the sheet, based on order in the workbook (zero-based) */ public function getIndex() { return $this->index; } /** * @api * @return string Name of the sheet */ public function getName() { return $this->name; } /** * Sets the name of the sheet. Note that Excel has some restrictions on the name: * - it should not be blank * - it should not exceed 31 characters * - it should not contain these characters: \ / ? * : [ or ] * - it should be unique * * @api * @param string $name Name of the sheet * @return Sheet * @throws \Box\Spout\Writer\Exception\InvalidSheetNameException If the sheet's name is invalid. */ public function setName($name) { $this->throwIfNameIsInvalid($name); $this->name = $name; self::$SHEETS_NAME_USED[$this->associatedWorkbookId][$this->index] = $name; return $this; } /** * Throws an exception if the given sheet's name is not valid. * @see Sheet::setName for validity rules. * * @param string $name * @return void * @throws \Box\Spout\Writer\Exception\InvalidSheetNameException If the sheet's name is invalid. */ protected function throwIfNameIsInvalid($name) { if (!is_string($name)) { $actualType = gettype($name); $errorMessage = "The sheet's name is invalid. It must be a string ($actualType given)."; throw new InvalidSheetNameException($errorMessage); } $failedRequirements = []; $nameLength = $this->stringHelper->getStringLength($name); if (!$this->isNameUnique($name)) { $failedRequirements[] = 'It should be unique'; } else { if ($nameLength === 0) { $failedRequirements[] = 'It should not be blank'; } else { if ($nameLength > self::MAX_LENGTH_SHEET_NAME) { $failedRequirements[] = 'It should not exceed 31 characters'; } if ($this->doesContainInvalidCharacters($name)) { $failedRequirements[] = 'It should not contain these characters: \\ / ? * : [ or ]'; } if ($this->doesStartOrEndWithSingleQuote($name)) { $failedRequirements[] = 'It should not start or end with a single quote'; } } } if (count($failedRequirements) !== 0) { $errorMessage = "The sheet's name (\"$name\") is invalid. It did not respect these rules:\n - "; $errorMessage .= implode("\n - ", $failedRequirements); throw new InvalidSheetNameException($errorMessage); } } /** * Returns whether the given name contains at least one invalid character. * @see Sheet::$INVALID_CHARACTERS_IN_SHEET_NAME for the full list. * * @param string $name * @return bool TRUE if the name contains invalid characters, FALSE otherwise. */ protected function doesContainInvalidCharacters($name) { return (str_replace(self::$INVALID_CHARACTERS_IN_SHEET_NAME, '', $name) !== $name); } /** * Returns whether the given name starts or ends with a single quote * * @param string $name * @return bool TRUE if the name starts or ends with a single quote, FALSE otherwise. */ protected function doesStartOrEndWithSingleQuote($name) { $startsWithSingleQuote = ($this->stringHelper->getCharFirstOccurrencePosition('\'', $name) === 0); $endsWithSingleQuote = ($this->stringHelper->getCharLastOccurrencePosition('\'', $name) === ($this->stringHelper->getStringLength($name) - 1)); return ($startsWithSingleQuote || $endsWithSingleQuote); } /** * Returns whether the given name is unique. * * @param string $name * @return bool TRUE if the name is unique, FALSE otherwise. */ protected function isNameUnique($name) { foreach (self::$SHEETS_NAME_USED[$this->associatedWorkbookId] as $sheetIndex => $sheetName) { if ($sheetIndex !== $this->index && $sheetName === $name) { return false; } } return true; } } app/Services/Spout/Writer/Exception/Border/InvalidNameException.php000064400000000665147600120010021425 0ustar00rootFolder; } /** * @return string */ public function getSheetsContentTempFolder() { return $this->sheetsContentTempFolder; } /** * Creates all the folders needed to create a ODS file, as well as the files that won't change. * * @return void * @throws \Box\Spout\Common\Exception\IOException If unable to create at least one of the base folders */ public function createBaseFilesAndFolders() { $this ->createRootFolder() ->createMetaInfoFolderAndFile() ->createSheetsContentTempFolder() ->createMetaFile() ->createMimetypeFile(); } /** * Creates the folder that will be used as root * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the folder */ protected function createRootFolder() { $this->rootFolder = $this->createFolder($this->baseFolderRealPath, uniqid('ods')); return $this; } /** * Creates the "META-INF" folder under the root folder as well as the "manifest.xml" file in it * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the folder or the "manifest.xml" file */ protected function createMetaInfoFolderAndFile() { $this->metaInfFolder = $this->createFolder($this->rootFolder, self::META_INF_FOLDER_NAME); $this->createManifestFile(); return $this; } /** * Creates the "manifest.xml" file under the "META-INF" folder (under root) * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the file */ protected function createManifestFile() { $manifestXmlFileContents = << EOD; $this->createFileWithContents($this->metaInfFolder, self::MANIFEST_XML_FILE_NAME, $manifestXmlFileContents); return $this; } /** * Creates the temp folder where specific sheets content will be written to. * This folder is not part of the final ODS file and is only used to be able to jump between sheets. * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the folder */ protected function createSheetsContentTempFolder() { $this->sheetsContentTempFolder = $this->createFolder($this->rootFolder, self::SHEETS_CONTENT_TEMP_FOLDER_NAME); return $this; } /** * Creates the "meta.xml" file under the root folder * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the file */ protected function createMetaFile() { $appName = self::APP_NAME; $createdDate = (new \DateTime())->format(\DateTime::W3C); $metaXmlFileContents = << $appName $createdDate $createdDate EOD; $this->createFileWithContents($this->rootFolder, self::META_XML_FILE_NAME, $metaXmlFileContents); return $this; } /** * Creates the "mimetype" file under the root folder * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the file */ protected function createMimetypeFile() { $this->createFileWithContents($this->rootFolder, self::MIMETYPE_FILE_NAME, self::MIMETYPE); return $this; } /** * Creates the "content.xml" file under the root folder * * @param Worksheet[] $worksheets * @param StyleHelper $styleHelper * @return FileSystemHelper */ public function createContentFile($worksheets, $styleHelper) { $contentXmlFileContents = << EOD; $contentXmlFileContents .= $styleHelper->getContentXmlFontFaceSectionContent(); $contentXmlFileContents .= $styleHelper->getContentXmlAutomaticStylesSectionContent(count($worksheets)); $contentXmlFileContents .= ''; $this->createFileWithContents($this->rootFolder, self::CONTENT_XML_FILE_NAME, $contentXmlFileContents); // Append sheets content to "content.xml" $contentXmlFilePath = $this->rootFolder . '/' . self::CONTENT_XML_FILE_NAME; $contentXmlHandle = fopen($contentXmlFilePath, 'a'); foreach ($worksheets as $worksheet) { // write the "" node, with the final sheet's name fwrite($contentXmlHandle, $worksheet->getTableElementStartAsString()); $worksheetFilePath = $worksheet->getWorksheetFilePath(); $this->copyFileContentsToTarget($worksheetFilePath, $contentXmlHandle); fwrite($contentXmlHandle, ''); } $contentXmlFileContents = ''; fwrite($contentXmlHandle, $contentXmlFileContents); fclose($contentXmlHandle); return $this; } /** * Streams the content of the file at the given path into the target resource. * Depending on which mode the target resource was created with, it will truncate then copy * or append the content to the target file. * * @param string $sourceFilePath Path of the file whose content will be copied * @param resource $targetResource Target resource that will receive the content * @return void */ protected function copyFileContentsToTarget($sourceFilePath, $targetResource) { $sourceHandle = fopen($sourceFilePath, 'r'); stream_copy_to_stream($sourceHandle, $targetResource); fclose($sourceHandle); } /** * Deletes the temporary folder where sheets content was stored. * * @return FileSystemHelper */ public function deleteWorksheetTempFolder() { $this->deleteFolderRecursively($this->sheetsContentTempFolder); return $this; } /** * Creates the "styles.xml" file under the root folder * * @param StyleHelper $styleHelper * @param int $numWorksheets Number of created worksheets * @return FileSystemHelper */ public function createStylesFile($styleHelper, $numWorksheets) { $stylesXmlFileContents = $styleHelper->getStylesXMLFileContent($numWorksheets); $this->createFileWithContents($this->rootFolder, self::STYLES_XML_FILE_NAME, $stylesXmlFileContents); return $this; } /** * Zips the root folder and streams the contents of the zip into the given stream * * @param resource $streamPointer Pointer to the stream to copy the zip * @return void */ public function zipRootFolderAndCopyToStream($streamPointer) { $zipHelper = new ZipHelper($this->rootFolder); // In order to have the file's mime type detected properly, files need to be added // to the zip file in a particular order. // @see http://www.jejik.com/articles/2010/03/how_to_correctly_create_odf_documents_using_zip/ $zipHelper->addUncompressedFileToArchive($this->rootFolder, self::MIMETYPE_FILE_NAME); $zipHelper->addFolderToArchive($this->rootFolder, ZipHelper::EXISTING_FILES_SKIP); $zipHelper->closeArchiveAndCopyToStream($streamPointer); // once the zip is copied, remove it $this->deleteFile($zipHelper->getZipFilePath()); } } app/Services/Spout/Writer/ODS/Helper/StyleHelper.php000064400000027475147600120010016320 0ustar00 [] Map whose keys contain all the fonts used */ protected $usedFontsSet = []; /** * Registers the given style as a used style. * Duplicate styles won't be registered more than once. * * @param \Box\Spout\Writer\Style\Style $style The style to be registered * @return \Box\Spout\Writer\Style\Style The registered style, updated with an internal ID. */ public function registerStyle($style) { $this->usedFontsSet[$style->getFontName()] = true; return parent::registerStyle($style); } /** * @return string[] List of used fonts name */ protected function getUsedFonts() { return array_keys($this->usedFontsSet); } /** * Returns the content of the "styles.xml" file, given a list of styles. * * @param int $numWorksheets Number of worksheets created * @return string */ public function getStylesXMLFileContent($numWorksheets) { $content = << EOD; $content .= $this->getFontFaceSectionContent(); $content .= $this->getStylesSectionContent(); $content .= $this->getAutomaticStylesSectionContent($numWorksheets); $content .= $this->getMasterStylesSectionContent($numWorksheets); $content .= << EOD; return $content; } /** * Returns the content of the "" section, inside "styles.xml" file. * * @return string */ protected function getFontFaceSectionContent() { $content = ''; foreach ($this->getUsedFonts() as $fontName) { $content .= ''; } $content .= ''; return $content; } /** * Returns the content of the "" section, inside "styles.xml" file. * * @return string */ protected function getStylesSectionContent() { $defaultStyle = $this->getDefaultStyle(); return << EOD; } /** * Returns the content of the "" section, inside "styles.xml" file. * * @param int $numWorksheets Number of worksheets created * @return string */ protected function getAutomaticStylesSectionContent($numWorksheets) { $content = ''; for ($i = 1; $i <= $numWorksheets; $i++) { $content .= << EOD; } $content .= ''; return $content; } /** * Returns the content of the "" section, inside "styles.xml" file. * * @param int $numWorksheets Number of worksheets created * @return string */ protected function getMasterStylesSectionContent($numWorksheets) { $content = ''; for ($i = 1; $i <= $numWorksheets; $i++) { $content .= << EOD; } $content .= ''; return $content; } /** * Returns the contents of the "" section, inside "content.xml" file. * * @return string */ public function getContentXmlFontFaceSectionContent() { $content = ''; foreach ($this->getUsedFonts() as $fontName) { $content .= ''; } $content .= ''; return $content; } /** * Returns the contents of the "" section, inside "content.xml" file. * * @param int $numWorksheets Number of worksheets created * @return string */ public function getContentXmlAutomaticStylesSectionContent($numWorksheets) { $content = ''; foreach ($this->getRegisteredStyles() as $style) { $content .= $this->getStyleSectionContent($style); } $content .= << EOD; for ($i = 1; $i <= $numWorksheets; $i++) { $content .= << EOD; } $content .= ''; return $content; } /** * Returns the contents of the "" section, inside "" section * * @param \Box\Spout\Writer\Style\Style $style * @return string */ protected function getStyleSectionContent($style) { $styleIndex = $style->getId() + 1; // 1-based $content = ''; $content .= $this->getTextPropertiesSectionContent($style); $content .= $this->getTableCellPropertiesSectionContent($style); $content .= ''; return $content; } /** * Returns the contents of the "" section, inside "" section * * @param \Box\Spout\Writer\Style\Style $style * @return string */ private function getTextPropertiesSectionContent($style) { $content = ''; if ($style->shouldApplyFont()) { $content .= $this->getFontSectionContent($style); } return $content; } /** * Returns the contents of the "" section, inside "" section * * @param \Box\Spout\Writer\Style\Style $style * @return string */ private function getFontSectionContent($style) { $defaultStyle = $this->getDefaultStyle(); $content = 'getFontColor(); if ($fontColor !== $defaultStyle->getFontColor()) { $content .= ' fo:color="#' . $fontColor . '"'; } $fontName = $style->getFontName(); if ($fontName !== $defaultStyle->getFontName()) { $content .= ' style:font-name="' . $fontName . '" style:font-name-asian="' . $fontName . '" style:font-name-complex="' . $fontName . '"'; } $fontSize = $style->getFontSize(); if ($fontSize !== $defaultStyle->getFontSize()) { $content .= ' fo:font-size="' . $fontSize . 'pt" style:font-size-asian="' . $fontSize . 'pt" style:font-size-complex="' . $fontSize . 'pt"'; } if ($style->isFontBold()) { $content .= ' fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"'; } if ($style->isFontItalic()) { $content .= ' fo:font-style="italic" style:font-style-asian="italic" style:font-style-complex="italic"'; } if ($style->isFontUnderline()) { $content .= ' style:text-underline-style="solid" style:text-underline-type="single"'; } if ($style->isFontStrikethrough()) { $content .= ' style:text-line-through-style="solid"'; } $content .= '/>'; return $content; } /** * Returns the contents of the "" section, inside "" section * * @param \Box\Spout\Writer\Style\Style $style * @return string */ private function getTableCellPropertiesSectionContent($style) { $content = ''; if ($style->shouldWrapText()) { $content .= $this->getWrapTextXMLContent(); } if ($style->shouldApplyBorder()) { $content .= $this->getBorderXMLContent($style); } if ($style->shouldApplyBackgroundColor()) { $content .= $this->getBackgroundColorXMLContent($style); } return $content; } /** * Returns the contents of the wrap text definition for the "" section * * @return string */ private function getWrapTextXMLContent() { return ''; } /** * Returns the contents of the borders definition for the "" section * * @param \Box\Spout\Writer\Style\Style $style * @return string */ private function getBorderXMLContent($style) { $borderProperty = ''; $borders = array_map(function (BorderPart $borderPart) { return BorderHelper::serializeBorderPart($borderPart); }, $style->getBorder()->getParts()); return sprintf($borderProperty, implode(' ', $borders)); } /** * Returns the contents of the background color definition for the "" section * * @param \Box\Spout\Writer\Style\Style $style * @return string */ private function getBackgroundColorXMLContent($style) { return sprintf( '', $style->getBackgroundColor() ); } } app/Services/Spout/Writer/ODS/Helper/BorderHelper.php000064400000003577147600120010016432 0ustar00 */ class BorderHelper { /** * Width mappings * * @var array */ protected static $widthMap = [ Border::WIDTH_THIN => '0.75pt', Border::WIDTH_MEDIUM => '1.75pt', Border::WIDTH_THICK => '2.5pt', ]; /** * Style mapping * * @var array */ protected static $styleMap = [ Border::STYLE_SOLID => 'solid', Border::STYLE_DASHED => 'dashed', Border::STYLE_DOTTED => 'dotted', Border::STYLE_DOUBLE => 'double', ]; /** * @param BorderPart $borderPart * @return string */ public static function serializeBorderPart(BorderPart $borderPart) { $definition = 'fo:border-%s="%s"'; if ($borderPart->getStyle() === Border::STYLE_NONE) { $borderPartDefinition = sprintf($definition, $borderPart->getName(), 'none'); } else { $attributes = [ self::$widthMap[$borderPart->getWidth()], self::$styleMap[$borderPart->getStyle()], '#' . $borderPart->getColor(), ]; $borderPartDefinition = sprintf($definition, $borderPart->getName(), implode(' ', $attributes)); } return $borderPartDefinition; } } app/Services/Spout/Writer/ODS/Internal/Worksheet.php000064400000020566147600120010016362 0ustar00externalSheet = $externalSheet; /** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ $this->stringsEscaper = \Box\Spout\Common\Escaper\ODS::getInstance(); $this->worksheetFilePath = $worksheetFilesFolder . '/sheet' . $externalSheet->getIndex() . '.xml'; $this->stringHelper = new StringHelper(); $this->startSheet(); } /** * Prepares the worksheet to accept data * The XML file does not contain the "" node as it contains the sheet's name * which may change during the execution of the program. It will be added at the end. * * @return void * @throws \Box\Spout\Common\Exception\IOException If the sheet data file cannot be opened for writing */ protected function startSheet() { $this->sheetFilePointer = fopen($this->worksheetFilePath, 'w'); $this->throwIfSheetFilePointerIsNotAvailable(); } /** * Checks if the book has been created. Throws an exception if not created yet. * * @return void * @throws \Box\Spout\Common\Exception\IOException If the sheet data file cannot be opened for writing */ protected function throwIfSheetFilePointerIsNotAvailable() { if (!$this->sheetFilePointer) { throw new IOException('Unable to open sheet for writing.'); } } /** * @return string Path to the temporary sheet content XML file */ public function getWorksheetFilePath() { return $this->worksheetFilePath; } /** * Returns the table XML root node as string. * * @return string node as string */ public function getTableElementStartAsString() { $escapedSheetName = $this->stringsEscaper->escape($this->externalSheet->getName()); $tableStyleName = 'ta' . ($this->externalSheet->getIndex() + 1); $tableElement = ''; $tableElement .= ''; return $tableElement; } /** * @return \Box\Spout\Writer\Common\Sheet The "external" sheet */ public function getExternalSheet() { return $this->externalSheet; } /** * @return int The index of the last written row */ public function getLastWrittenRowIndex() { return $this->lastWrittenRowIndex; } /** * Adds data to the worksheet. * * @param array $dataRow Array containing data to be written. Cannot be empty. * Example $dataRow = ['data1', 1234, null, '', 'data5']; * @param \Box\Spout\Writer\Style\Style $style Style to be applied to the row. NULL means use default style. * @return void * @throws \Box\Spout\Common\Exception\IOException If the data cannot be written * @throws \Box\Spout\Common\Exception\InvalidArgumentException If a cell value's type is not supported */ public function addRow($dataRow, $style) { // $dataRow can be an associative array. We need to transform // it into a regular array, as we'll use the numeric indexes. $dataRowWithNumericIndexes = array_values($dataRow); $styleIndex = ($style->getId() + 1); // 1-based $cellsCount = count($dataRow); $this->maxNumColumns = max($this->maxNumColumns, $cellsCount); $data = ''; $currentCellIndex = 0; $nextCellIndex = 1; for ($i = 0; $i < $cellsCount; $i++) { $currentCellValue = $dataRowWithNumericIndexes[$currentCellIndex]; // Using isset here because it is way faster than array_key_exists... if (!isset($dataRowWithNumericIndexes[$nextCellIndex]) || $currentCellValue !== $dataRowWithNumericIndexes[$nextCellIndex]) { $numTimesValueRepeated = ($nextCellIndex - $currentCellIndex); $data .= $this->getCellXML($currentCellValue, $styleIndex, $numTimesValueRepeated); $currentCellIndex = $nextCellIndex; } $nextCellIndex++; } $data .= ''; $wasWriteSuccessful = fwrite($this->sheetFilePointer, $data); if ($wasWriteSuccessful === false) { throw new IOException("Unable to write data in {$this->worksheetFilePath}"); } // only update the count if the write worked $this->lastWrittenRowIndex++; } /** * Returns the cell XML content, given its value. * * @param mixed $cellValue The value to be written * @param int $styleIndex Index of the used style * @param int $numTimesValueRepeated Number of times the value is consecutively repeated * @return string The cell XML content * @throws \Box\Spout\Common\Exception\InvalidArgumentException If a cell value's type is not supported */ protected function getCellXML($cellValue, $styleIndex, $numTimesValueRepeated) { $data = 'stringsEscaper->escape($cellValueLine) . ''; } $data .= ''; } else if (CellHelper::isBoolean($cellValue)) { $data .= ' office:value-type="boolean" calcext:value-type="boolean" office:boolean-value="' . $cellValue . '">'; $data .= '' . $cellValue . ''; $data .= ''; } else if (CellHelper::isNumeric($cellValue)) { $data .= ' office:value-type="float" calcext:value-type="float" office:value="' . $cellValue . '">'; $data .= '' . $cellValue . ''; $data .= ''; } else if (empty($cellValue)) { $data .= '/>'; } else { throw new InvalidArgumentException('Trying to add a value with an unsupported type: ' . gettype($cellValue)); } return $data; } /** * Closes the worksheet * * @return void */ public function close() { if (!is_resource($this->sheetFilePointer)) { return; } fclose($this->sheetFilePointer); } } app/Services/Spout/Writer/ODS/Internal/Workbook.php000064400000007517147600120010016205 0ustar00fileSystemHelper = new FileSystemHelper($tempFolder); $this->fileSystemHelper->createBaseFilesAndFolders(); $this->styleHelper = new StyleHelper($defaultRowStyle); } /** * @return \Box\Spout\Writer\ODS\Helper\StyleHelper Helper to apply styles to ODS files */ protected function getStyleHelper() { return $this->styleHelper; } /** * @return int Maximum number of rows/columns a sheet can contain */ protected function getMaxRowsPerWorksheet() { return self::$maxRowsPerWorksheet; } /** * Creates a new sheet in the workbook. The current sheet remains unchanged. * * @return Worksheet The created sheet * @throws \Box\Spout\Common\Exception\IOException If unable to open the sheet for writing */ public function addNewSheet() { $newSheetIndex = count($this->worksheets); $sheet = new Sheet($newSheetIndex, $this->internalId); $sheetsContentTempFolder = $this->fileSystemHelper->getSheetsContentTempFolder(); $worksheet = new Worksheet($sheet, $sheetsContentTempFolder); $this->worksheets[] = $worksheet; return $worksheet; } /** * Closes the workbook and all its associated sheets. * All the necessary files are written to disk and zipped together to create the ODS file. * All the temporary files are then deleted. * * @param resource $finalFilePointer Pointer to the ODS that will be created * @return void */ public function close($finalFilePointer) { /** @var Worksheet[] $worksheets */ $worksheets = $this->worksheets; $numWorksheets = count($worksheets); foreach ($worksheets as $worksheet) { $worksheet->close(); } // Finish creating all the necessary files before zipping everything together $this->fileSystemHelper ->createContentFile($worksheets, $this->styleHelper) ->deleteWorksheetTempFolder() ->createStylesFile($this->styleHelper, $numWorksheets) ->zipRootFolderAndCopyToStream($finalFilePointer); $this->cleanupTempFolder(); } /** * Deletes the root folder created in the temp folder and all its contents. * * @return void */ protected function cleanupTempFolder() { $xlsxRootFolder = $this->fileSystemHelper->getRootFolder(); $this->fileSystemHelper->deleteFolderRecursively($xlsxRootFolder); } } app/Services/Spout/Writer/ODS/Writer.php000064400000006002147600120010014074 0ustar00throwIfWriterAlreadyOpened('Writer must be configured before opening it.'); $this->tempFolder = $tempFolder; return $this; } /** * Configures the write and sets the current sheet pointer to a new sheet. * * @return void * @throws \Box\Spout\Common\Exception\IOException If unable to open the file for writing */ protected function openWriter() { $tempFolder = ($this->tempFolder) ? : sys_get_temp_dir(); $this->book = new Workbook($tempFolder, $this->shouldCreateNewSheetsAutomatically, $this->defaultRowStyle); $this->book->addNewSheetAndMakeItCurrent(); } /** * @return Internal\Workbook The workbook representing the file to be written */ protected function getWorkbook() { return $this->book; } /** * Adds data to the currently opened writer. * If shouldCreateNewSheetsAutomatically option is set to true, it will handle pagination * with the creation of new worksheets if one worksheet has reached its maximum capicity. * * @param array $dataRow Array containing data to be written. * Example $dataRow = ['data1', 1234, null, '', 'data5']; * @param \Box\Spout\Writer\Style\Style $style Style to be applied to the row. * @return void * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException If the book is not created yet * @throws \Box\Spout\Common\Exception\IOException If unable to write data */ protected function addRowToWriter(array $dataRow, $style) { $this->throwIfBookIsNotAvailable(); $this->book->addRowToCurrentWorksheet($dataRow, $style); } /** * Closes the writer, preventing any additional writing. * * @return void */ protected function closeWriter() { if ($this->book) { $this->book->close($this->filePointer); } } } app/Services/Spout/Writer/Style/Style.php000064400000024663147600120010014410 0ustar00id; } /** * @param int $id * @return Style */ public function setId($id) { $this->id = $id; return $this; } /** * @return Border */ public function getBorder() { return $this->border; } /** * @param Border $border * @return Style */ public function setBorder(Border $border) { $this->shouldApplyBorder = true; $this->border = $border; return $this; } /** * @return bool */ public function shouldApplyBorder() { return $this->shouldApplyBorder; } /** * @return bool */ public function isFontBold() { return $this->fontBold; } /** * @return Style */ public function setFontBold() { $this->fontBold = true; $this->hasSetFontBold = true; $this->shouldApplyFont = true; return $this; } /** * @return bool */ public function isFontItalic() { return $this->fontItalic; } /** * @return Style */ public function setFontItalic() { $this->fontItalic = true; $this->hasSetFontItalic = true; $this->shouldApplyFont = true; return $this; } /** * @return bool */ public function isFontUnderline() { return $this->fontUnderline; } /** * @return Style */ public function setFontUnderline() { $this->fontUnderline = true; $this->hasSetFontUnderline = true; $this->shouldApplyFont = true; return $this; } /** * @return bool */ public function isFontStrikethrough() { return $this->fontStrikethrough; } /** * @return Style */ public function setFontStrikethrough() { $this->fontStrikethrough = true; $this->hasSetFontStrikethrough = true; $this->shouldApplyFont = true; return $this; } /** * @return int */ public function getFontSize() { return $this->fontSize; } /** * @param int $fontSize Font size, in pixels * @return Style */ public function setFontSize($fontSize) { $this->fontSize = $fontSize; $this->hasSetFontSize = true; $this->shouldApplyFont = true; return $this; } /** * @return string */ public function getFontColor() { return $this->fontColor; } /** * Sets the font color. * * @param string $fontColor ARGB color (@see Color) * @return Style */ public function setFontColor($fontColor) { $this->fontColor = $fontColor; $this->hasSetFontColor = true; $this->shouldApplyFont = true; return $this; } /** * @return string */ public function getFontName() { return $this->fontName; } /** * @param string $fontName Name of the font to use * @return Style */ public function setFontName($fontName) { $this->fontName = $fontName; $this->hasSetFontName = true; $this->shouldApplyFont = true; return $this; } /** * @return bool */ public function shouldWrapText() { return $this->shouldWrapText; } /** * @param bool|void $shouldWrap Should the text be wrapped * @return Style */ public function setShouldWrapText($shouldWrap = true) { $this->shouldWrapText = $shouldWrap; $this->hasSetWrapText = true; return $this; } /** * @return bool */ public function hasSetWrapText() { return $this->hasSetWrapText; } /** * @return bool Whether specific font properties should be applied */ public function shouldApplyFont() { return $this->shouldApplyFont; } /** * Sets the background color * @param string $color ARGB color (@see Color) * @return Style */ public function setBackgroundColor($color) { $this->hasSetBackgroundColor = true; $this->backgroundColor = $color; return $this; } /** * @return string */ public function getBackgroundColor() { return $this->backgroundColor; } /** * * @return bool Whether the background color should be applied */ public function shouldApplyBackgroundColor() { return $this->hasSetBackgroundColor; } /** * Serializes the style for future comparison with other styles. * The ID is excluded from the comparison, as we only care about * actual style properties. * * @return string The serialized style */ public function serialize() { // In order to be able to properly compare style, set static ID value $currentId = $this->id; $this->setId(0); $serializedStyle = serialize($this); $this->setId($currentId); return $serializedStyle; } /** * Merges the current style with the given style, using the given style as a base. This means that: * - if current style and base style both have property A set, use current style property's value * - if current style has property A set but base style does not, use current style property's value * - if base style has property A set but current style does not, use base style property's value * * @NOTE: This function returns a new style. * * @param Style $baseStyle * @return Style New style corresponding to the merge of the 2 styles */ public function mergeWith($baseStyle) { $mergedStyle = clone $this; $this->mergeFontStyles($mergedStyle, $baseStyle); $this->mergeOtherFontProperties($mergedStyle, $baseStyle); $this->mergeCellProperties($mergedStyle, $baseStyle); return $mergedStyle; } /** * @param Style $styleToUpdate (passed as reference) * @param Style $baseStyle * @return void */ private function mergeFontStyles($styleToUpdate, $baseStyle) { if (!$this->hasSetFontBold && $baseStyle->isFontBold()) { $styleToUpdate->setFontBold(); } if (!$this->hasSetFontItalic && $baseStyle->isFontItalic()) { $styleToUpdate->setFontItalic(); } if (!$this->hasSetFontUnderline && $baseStyle->isFontUnderline()) { $styleToUpdate->setFontUnderline(); } if (!$this->hasSetFontStrikethrough && $baseStyle->isFontStrikethrough()) { $styleToUpdate->setFontStrikethrough(); } } /** * @param Style $styleToUpdate Style to update (passed as reference) * @param Style $baseStyle * @return void */ private function mergeOtherFontProperties($styleToUpdate, $baseStyle) { if (!$this->hasSetFontSize && $baseStyle->getFontSize() !== self::DEFAULT_FONT_SIZE) { $styleToUpdate->setFontSize($baseStyle->getFontSize()); } if (!$this->hasSetFontColor && $baseStyle->getFontColor() !== self::DEFAULT_FONT_COLOR) { $styleToUpdate->setFontColor($baseStyle->getFontColor()); } if (!$this->hasSetFontName && $baseStyle->getFontName() !== self::DEFAULT_FONT_NAME) { $styleToUpdate->setFontName($baseStyle->getFontName()); } } /** * @param Style $styleToUpdate Style to update (passed as reference) * @param Style $baseStyle * @return void */ private function mergeCellProperties($styleToUpdate, $baseStyle) { if (!$this->hasSetWrapText && $baseStyle->shouldWrapText()) { $styleToUpdate->setShouldWrapText(); } if (!$this->getBorder() && $baseStyle->shouldApplyBorder()) { $styleToUpdate->setBorder($baseStyle->getBorder()); } if (!$this->hasSetBackgroundColor && $baseStyle->shouldApplyBackgroundColor()) { $styleToUpdate->setBackgroundColor($baseStyle->getBackgroundColor()); } } } app/Services/Spout/Writer/Style/BorderBuilder.php000064400000004435147600120010016027 0ustar00border = new Border(); } /** * @param string|void $color Border A RGB color code * @param string|void $width Border width @see BorderPart::allowedWidths * @param string|void $style Border style @see BorderPart::allowedStyles * @return BorderBuilder */ public function setBorderTop($color = Color::BLACK, $width = Border::WIDTH_MEDIUM, $style = Border::STYLE_SOLID) { $this->border->addPart(new BorderPart(Border::TOP, $color, $width, $style)); return $this; } /** * @param string|void $color Border A RGB color code * @param string|void $width Border width @see BorderPart::allowedWidths * @param string|void $style Border style @see BorderPart::allowedStyles * @return BorderBuilder */ public function setBorderRight($color = Color::BLACK, $width = Border::WIDTH_MEDIUM, $style = Border::STYLE_SOLID) { $this->border->addPart(new BorderPart(Border::RIGHT, $color, $width, $style)); return $this; } /** * @param string|void $color Border A RGB color code * @param string|void $width Border width @see BorderPart::allowedWidths * @param string|void $style Border style @see BorderPart::allowedStyles * @return BorderBuilder */ public function setBorderBottom($color = Color::BLACK, $width = Border::WIDTH_MEDIUM, $style = Border::STYLE_SOLID) { $this->border->addPart(new BorderPart(Border::BOTTOM, $color, $width, $style)); return $this; } /** * @param string|void $color Border A RGB color code * @param string|void $width Border width @see BorderPart::allowedWidths * @param string|void $style Border style @see BorderPart::allowedStyles * @return BorderBuilder */ public function setBorderLeft($color = Color::BLACK, $width = Border::WIDTH_MEDIUM, $style = Border::STYLE_SOLID) { $this->border->addPart(new BorderPart(Border::LEFT, $color, $width, $style)); return $this; } /** * @return Border */ public function build() { return $this->border; } } app/Services/Spout/Writer/Style/Border.php000064400000003205147600120010014512 0ustar00setParts($borderParts); } /** * @param $name The name of the border part * @return null|BorderPart */ public function getPart($name) { return $this->hasPart($name) ? $this->parts[$name] : null; } /** * @param $name The name of the border part * @return bool */ public function hasPart($name) { return isset($this->parts[$name]); } /** * @return array */ public function getParts() { return $this->parts; } /** * Set BorderParts * @param array $parts */ public function setParts($parts) { unset($this->parts); foreach ($parts as $part) { $this->addPart($part); } } /** * @param BorderPart $borderPart * @return self */ public function addPart(BorderPart $borderPart) { $this->parts[$borderPart->getName()] = $borderPart; return $this; } } app/Services/Spout/Writer/Style/Color.php000064400000005045147600120010014357 0ustar00 255) { throw new InvalidColorException("The RGB components must be between 0 and 255. Received: $colorComponent"); } } /** * Converts the color component to its corresponding hexadecimal value * * @param int $colorComponent Color component, 0 - 255 * @return string Corresponding hexadecimal value, with a leading 0 if needed. E.g "0f", "2d" */ protected static function convertColorComponentToHex($colorComponent) { return str_pad(dechex($colorComponent), 2, '0', STR_PAD_LEFT); } /** * Returns the ARGB color of the given RGB color, * assuming that alpha value is always 1. * * @param string $rgbColor RGB color like "FF08B2" * @return string ARGB color */ public static function toARGB($rgbColor) { return 'FF' . $rgbColor; } } app/Services/Spout/Writer/Style/StyleBuilder.php000064400000005665147600120010015720 0ustar00style = new Style(); } /** * Makes the font bold. * * @api * @return StyleBuilder */ public function setFontBold() { $this->style->setFontBold(); return $this; } /** * Makes the font italic. * * @api * @return StyleBuilder */ public function setFontItalic() { $this->style->setFontItalic(); return $this; } /** * Makes the font underlined. * * @api * @return StyleBuilder */ public function setFontUnderline() { $this->style->setFontUnderline(); return $this; } /** * Makes the font struck through. * * @api * @return StyleBuilder */ public function setFontStrikethrough() { $this->style->setFontStrikethrough(); return $this; } /** * Sets the font size. * * @api * @param int $fontSize Font size, in pixels * @return StyleBuilder */ public function setFontSize($fontSize) { $this->style->setFontSize($fontSize); return $this; } /** * Sets the font color. * * @api * @param string $fontColor ARGB color (@see Color) * @return StyleBuilder */ public function setFontColor($fontColor) { $this->style->setFontColor($fontColor); return $this; } /** * Sets the font name. * * @api * @param string $fontName Name of the font to use * @return StyleBuilder */ public function setFontName($fontName) { $this->style->setFontName($fontName); return $this; } /** * Makes the text wrap in the cell if requested * * @api * @param bool $shouldWrap Should the text be wrapped * @return StyleBuilder */ public function setShouldWrapText($shouldWrap = true) { $this->style->setShouldWrapText($shouldWrap); return $this; } /** * Set a border * * @param Border $border * @return $this */ public function setBorder(Border $border) { $this->style->setBorder($border); return $this; } /** * Sets a background color * * @api * @param string $color ARGB color (@see Color) * @return StyleBuilder */ public function setBackgroundColor($color) { $this->style->setBackgroundColor($color); return $this; } /** * Returns the configured style. The style is cached and can be reused. * * @api * @return Style */ public function build() { return $this->style; } } app/Services/Spout/Writer/Style/BorderPart.php000064400000007510147600120010015344 0ustar00setName($name); $this->setColor($color); $this->setWidth($width); $this->setStyle($style); } /** * @return string */ public function getName() { return $this->name; } /** * @param string $name The name of the border part @see BorderPart::$allowedNames * @throws InvalidNameException * @return void */ public function setName($name) { if (!in_array($name, self::$allowedNames)) { throw new InvalidNameException($name); } $this->name = $name; } /** * @return string */ public function getStyle() { return $this->style; } /** * @param string $style The style of the border part @see BorderPart::$allowedStyles * @throws InvalidStyleException * @return void */ public function setStyle($style) { if (!in_array($style, self::$allowedStyles)) { throw new InvalidStyleException($style); } $this->style = $style; } /** * @return string */ public function getColor() { return $this->color; } /** * @param string $color The color of the border part @see Color::rgb() * @return void */ public function setColor($color) { $this->color = $color; } /** * @return string */ public function getWidth() { return $this->width; } /** * @param string $width The width of the border part @see BorderPart::$allowedWidths * @throws InvalidWidthException * @return void */ public function setWidth($width) { if (!in_array($width, self::$allowedWidths)) { throw new InvalidWidthException($width); } $this->width = $width; } /** * @return array */ public static function getAllowedStyles() { return self::$allowedStyles; } /** * @return array */ public static function getAllowedNames() { return self::$allowedNames; } /** * @return array */ public static function getAllowedWidths() { return self::$allowedWidths; } } app/Services/Spout/Writer/XLSX/Helper/FileSystemHelper.php000064400000032653147600120010017447 0ustar00rootFolder; } /** * @return string */ public function getXlFolder() { return $this->xlFolder; } /** * @return string */ public function getXlWorksheetsFolder() { return $this->xlWorksheetsFolder; } /** * Creates all the folders needed to create a XLSX file, as well as the files that won't change. * * @return void * @throws \Box\Spout\Common\Exception\IOException If unable to create at least one of the base folders */ public function createBaseFilesAndFolders() { $this ->createRootFolder() ->createRelsFolderAndFile() ->createDocPropsFolderAndFiles() ->createXlFolderAndSubFolders(); } /** * Creates the folder that will be used as root * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the folder */ protected function createRootFolder() { $this->rootFolder = $this->createFolder($this->baseFolderRealPath, uniqid('xlsx', true)); return $this; } /** * Creates the "_rels" folder under the root folder as well as the ".rels" file in it * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the folder or the ".rels" file */ protected function createRelsFolderAndFile() { $this->relsFolder = $this->createFolder($this->rootFolder, self::RELS_FOLDER_NAME); $this->createRelsFile(); return $this; } /** * Creates the ".rels" file under the "_rels" folder (under root) * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the file */ protected function createRelsFile() { $relsFileContents = << EOD; $this->createFileWithContents($this->relsFolder, self::RELS_FILE_NAME, $relsFileContents); return $this; } /** * Creates the "docProps" folder under the root folder as well as the "app.xml" and "core.xml" files in it * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the folder or one of the files */ protected function createDocPropsFolderAndFiles() { $this->docPropsFolder = $this->createFolder($this->rootFolder, self::DOC_PROPS_FOLDER_NAME); $this->createAppXmlFile(); $this->createCoreXmlFile(); return $this; } /** * Creates the "app.xml" file under the "docProps" folder * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the file */ protected function createAppXmlFile() { $appName = self::APP_NAME; $appXmlFileContents = << $appName 0 EOD; $this->createFileWithContents($this->docPropsFolder, self::APP_XML_FILE_NAME, $appXmlFileContents); return $this; } /** * Creates the "core.xml" file under the "docProps" folder * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the file */ protected function createCoreXmlFile() { $createdDate = (new \DateTime())->format(\DateTime::W3C); $coreXmlFileContents = << $createdDate $createdDate 0 EOD; $this->createFileWithContents($this->docPropsFolder, self::CORE_XML_FILE_NAME, $coreXmlFileContents); return $this; } /** * Creates the "xl" folder under the root folder as well as its subfolders * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create at least one of the folders */ protected function createXlFolderAndSubFolders() { $this->xlFolder = $this->createFolder($this->rootFolder, self::XL_FOLDER_NAME); $this->createXlRelsFolder(); $this->createXlWorksheetsFolder(); return $this; } /** * Creates the "_rels" folder under the "xl" folder * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the folder */ protected function createXlRelsFolder() { $this->xlRelsFolder = $this->createFolder($this->xlFolder, self::RELS_FOLDER_NAME); return $this; } /** * Creates the "worksheets" folder under the "xl" folder * * @return FileSystemHelper * @throws \Box\Spout\Common\Exception\IOException If unable to create the folder */ protected function createXlWorksheetsFolder() { $this->xlWorksheetsFolder = $this->createFolder($this->xlFolder, self::WORKSHEETS_FOLDER_NAME); return $this; } /** * Creates the "[Content_Types].xml" file under the root folder * * @param Worksheet[] $worksheets * @return FileSystemHelper */ public function createContentTypesFile($worksheets) { $contentTypesXmlFileContents = << EOD; /** @var Worksheet $worksheet */ foreach ($worksheets as $worksheet) { $contentTypesXmlFileContents .= ''; } $contentTypesXmlFileContents .= << EOD; $this->createFileWithContents($this->rootFolder, self::CONTENT_TYPES_XML_FILE_NAME, $contentTypesXmlFileContents); return $this; } /** * Creates the "workbook.xml" file under the "xl" folder * * @param Worksheet[] $worksheets * @return FileSystemHelper */ public function createWorkbookFile($worksheets) { $workbookXmlFileContents = << EOD; /** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ $escaper = \Box\Spout\Common\Escaper\XLSX::getInstance(); /** @var Worksheet $worksheet */ foreach ($worksheets as $worksheet) { $worksheetName = $worksheet->getExternalSheet()->getName(); $worksheetId = $worksheet->getId(); $workbookXmlFileContents .= ''; } $workbookXmlFileContents .= << EOD; $this->createFileWithContents($this->xlFolder, self::WORKBOOK_XML_FILE_NAME, $workbookXmlFileContents); return $this; } /** * Creates the "workbook.xml.res" file under the "xl/_res" folder * * @param Worksheet[] $worksheets * @return FileSystemHelper */ public function createWorkbookRelsFile($worksheets) { $workbookRelsXmlFileContents = << EOD; /** @var Worksheet $worksheet */ foreach ($worksheets as $worksheet) { $worksheetId = $worksheet->getId(); $workbookRelsXmlFileContents .= ''; } $workbookRelsXmlFileContents .= ''; $this->createFileWithContents($this->xlRelsFolder, self::WORKBOOK_RELS_XML_FILE_NAME, $workbookRelsXmlFileContents); return $this; } /** * Creates the "styles.xml" file under the "xl" folder * * @param StyleHelper $styleHelper * @return FileSystemHelper */ public function createStylesFile($styleHelper) { $stylesXmlFileContents = $styleHelper->getStylesXMLFileContent(); $this->createFileWithContents($this->xlFolder, self::STYLES_XML_FILE_NAME, $stylesXmlFileContents); return $this; } /** * Zips the root folder and streams the contents of the zip into the given stream * * @param resource $streamPointer Pointer to the stream to copy the zip * @return void */ public function zipRootFolderAndCopyToStream($streamPointer) { $zipHelper = new ZipHelper($this->rootFolder); // In order to have the file's mime type detected properly, files need to be added // to the zip file in a particular order. // "[Content_Types].xml" then at least 2 files located in "xl" folder should be zipped first. $zipHelper->addFileToArchive($this->rootFolder, self::CONTENT_TYPES_XML_FILE_NAME); $zipHelper->addFileToArchive($this->rootFolder, self::XL_FOLDER_NAME . '/' . self::WORKBOOK_XML_FILE_NAME); $zipHelper->addFileToArchive($this->rootFolder, self::XL_FOLDER_NAME . '/' . self::STYLES_XML_FILE_NAME); $zipHelper->addFolderToArchive($this->rootFolder, ZipHelper::EXISTING_FILES_SKIP); $zipHelper->closeArchiveAndCopyToStream($streamPointer); // once the zip is copied, remove it $this->deleteFile($zipHelper->getZipFilePath()); } } app/Services/Spout/Writer/XLSX/Helper/StyleHelper.php000064400000024704147600120010016461 0ustar00 [FILL_ID] maps a style to a fill declaration */ protected $styleIdToFillMappingTable = []; /** * Excel preserves two default fills with index 0 and 1 * Since Excel is the dominant vendor - we play along here * * @var int The fill index counter for custom fills. */ protected $fillIndex = 2; /** * @var array */ protected $registeredBorders = []; /** * @var array [STYLE_ID] => [BORDER_ID] maps a style to a border declaration */ protected $styleIdToBorderMappingTable = []; /** * XLSX specific operations on the registered styles * * @param \Box\Spout\Writer\Style\Style $style * @return \Box\Spout\Writer\Style\Style */ public function registerStyle($style) { $registeredStyle = parent::registerStyle($style); $this->registerFill($registeredStyle); $this->registerBorder($registeredStyle); return $registeredStyle; } /** * Register a fill definition * * @param \Box\Spout\Writer\Style\Style $style */ protected function registerFill($style) { $styleId = $style->getId(); // Currently - only solid backgrounds are supported // so $backgroundColor is a scalar value (RGB Color) $backgroundColor = $style->getBackgroundColor(); if ($backgroundColor) { $isBackgroundColorRegistered = isset($this->registeredFills[$backgroundColor]); // We need to track the already registered background definitions if ($isBackgroundColorRegistered) { $registeredStyleId = $this->registeredFills[$backgroundColor]; $registeredFillId = $this->styleIdToFillMappingTable[$registeredStyleId]; $this->styleIdToFillMappingTable[$styleId] = $registeredFillId; } else { $this->registeredFills[$backgroundColor] = $styleId; $this->styleIdToFillMappingTable[$styleId] = $this->fillIndex++; } } else { // The fillId maps a style to a fill declaration // When there is no background color definition - we default to 0 $this->styleIdToFillMappingTable[$styleId] = 0; } } /** * Register a border definition * * @param \Box\Spout\Writer\Style\Style $style */ protected function registerBorder($style) { $styleId = $style->getId(); if ($style->shouldApplyBorder()) { $border = $style->getBorder(); $serializedBorder = serialize($border); $isBorderAlreadyRegistered = isset($this->registeredBorders[$serializedBorder]); if ($isBorderAlreadyRegistered) { $registeredStyleId = $this->registeredBorders[$serializedBorder]; $registeredBorderId = $this->styleIdToBorderMappingTable[$registeredStyleId]; $this->styleIdToBorderMappingTable[$styleId] = $registeredBorderId; } else { $this->registeredBorders[$serializedBorder] = $styleId; $this->styleIdToBorderMappingTable[$styleId] = count($this->registeredBorders); } } else { // If no border should be applied - the mapping is the default border: 0 $this->styleIdToBorderMappingTable[$styleId] = 0; } } /** * For empty cells, we can specify a style or not. If no style are specified, * then the software default will be applied. But sometimes, it may be useful * to override this default style, for instance if the cell should have a * background color different than the default one or some borders * (fonts property don't really matter here). * * @param int $styleId * @return bool Whether the cell should define a custom style */ public function shouldApplyStyleOnEmptyCell($styleId) { $hasStyleCustomFill = (isset($this->styleIdToFillMappingTable[$styleId]) && $this->styleIdToFillMappingTable[$styleId] !== 0); $hasStyleCustomBorders = (isset($this->styleIdToBorderMappingTable[$styleId]) && $this->styleIdToBorderMappingTable[$styleId] !== 0); return ($hasStyleCustomFill || $hasStyleCustomBorders); } /** * Returns the content of the "styles.xml" file, given a list of styles. * * @return string */ public function getStylesXMLFileContent() { $content = << EOD; $content .= $this->getFontsSectionContent(); $content .= $this->getFillsSectionContent(); $content .= $this->getBordersSectionContent(); $content .= $this->getCellStyleXfsSectionContent(); $content .= $this->getCellXfsSectionContent(); $content .= $this->getCellStylesSectionContent(); $content .= << EOD; return $content; } /** * Returns the content of the "" section. * * @return string */ protected function getFontsSectionContent() { $content = ''; /** @var \Box\Spout\Writer\Style\Style $style */ foreach ($this->getRegisteredStyles() as $style) { $content .= ''; $content .= ''; $content .= ''; $content .= ''; if ($style->isFontBold()) { $content .= ''; } if ($style->isFontItalic()) { $content .= ''; } if ($style->isFontUnderline()) { $content .= ''; } if ($style->isFontStrikethrough()) { $content .= ''; } $content .= ''; } $content .= ''; return $content; } /** * Returns the content of the "" section. * * @return string */ protected function getFillsSectionContent() { // Excel reserves two default fills $fillsCount = count($this->registeredFills) + 2; $content = sprintf('', $fillsCount); $content .= ''; $content .= ''; // The other fills are actually registered by setting a background color foreach ($this->registeredFills as $styleId) { /** @var Style $style */ $style = $this->styleIdToStyleMappingTable[$styleId]; $backgroundColor = $style->getBackgroundColor(); $content .= sprintf( '', $backgroundColor ); } $content .= ''; return $content; } /** * Returns the content of the "" section. * * @return string */ protected function getBordersSectionContent() { // There is one default border with index 0 $borderCount = count($this->registeredBorders) + 1; $content = ''; // Default border starting at index 0 $content .= ''; foreach ($this->registeredBorders as $styleId) { /** @var \Box\Spout\Writer\Style\Style $style */ $style = $this->styleIdToStyleMappingTable[$styleId]; $border = $style->getBorder(); $content .= ''; // @link https://github.com/box/spout/issues/271 $sortOrder = ['left', 'right', 'top', 'bottom']; foreach ($sortOrder as $partName) { if ($border->hasPart($partName)) { /** @var $part \Box\Spout\Writer\Style\BorderPart */ $part = $border->getPart($partName); $content .= BorderHelper::serializeBorderPart($part); } } $content .= ''; } $content .= ''; return $content; } /** * Returns the content of the "" section. * * @return string */ protected function getCellStyleXfsSectionContent() { return << EOD; } /** * Returns the content of the "" section. * * @return string */ protected function getCellXfsSectionContent() { $registeredStyles = $this->getRegisteredStyles(); $content = ''; foreach ($registeredStyles as $style) { $styleId = $style->getId(); $fillId = $this->styleIdToFillMappingTable[$styleId]; $borderId = $this->styleIdToBorderMappingTable[$styleId]; $content .= 'shouldApplyFont()) { $content .= ' applyFont="1"'; } $content .= sprintf(' applyBorder="%d"', $style->shouldApplyBorder() ? 1 : 0); if ($style->shouldWrapText()) { $content .= ' applyAlignment="1">'; $content .= ''; $content .= ''; } else { $content .= '/>'; } } $content .= ''; return $content; } /** * Returns the content of the "" section. * * @return string */ protected function getCellStylesSectionContent() { return << EOD; } } app/Services/Spout/Writer/XLSX/Helper/BorderHelper.php000064400000003626147600120010016576 0ustar00 [ Border::WIDTH_THIN => 'thin', Border::WIDTH_MEDIUM => 'medium', Border::WIDTH_THICK => 'thick' ], Border::STYLE_DOTTED => [ Border::WIDTH_THIN => 'dotted', Border::WIDTH_MEDIUM => 'dotted', Border::WIDTH_THICK => 'dotted', ], Border::STYLE_DASHED => [ Border::WIDTH_THIN => 'dashed', Border::WIDTH_MEDIUM => 'mediumDashed', Border::WIDTH_THICK => 'mediumDashed', ], Border::STYLE_DOUBLE => [ Border::WIDTH_THIN => 'double', Border::WIDTH_MEDIUM => 'double', Border::WIDTH_THICK => 'double', ], Border::STYLE_NONE => [ Border::WIDTH_THIN => 'none', Border::WIDTH_MEDIUM => 'none', Border::WIDTH_THICK => 'none', ], ]; /** * @param BorderPart $borderPart * @return string */ public static function serializeBorderPart(BorderPart $borderPart) { $borderStyle = self::getBorderStyle($borderPart); $colorEl = $borderPart->getColor() ? sprintf('', $borderPart->getColor()) : ''; $partEl = sprintf( '<%s style="%s">%s', $borderPart->getName(), $borderStyle, $colorEl, $borderPart->getName() ); return $partEl . PHP_EOL; } /** * Get the style definition from the style map * * @param BorderPart $borderPart * @return string */ protected static function getBorderStyle(BorderPart $borderPart) { return self::$xlsxStyleMap[$borderPart->getStyle()][$borderPart->getWidth()]; } } app/Services/Spout/Writer/XLSX/Helper/SharedStringsHelper.php000064400000007561147600120010020143 0ustar00 sharedStringsFilePointer = fopen($sharedStringsFilePath, 'w'); $this->throwIfSharedStringsFilePointerIsNotAvailable(); // the headers is split into different parts so that we can fseek and put in the correct count and uniqueCount later $header = self::SHARED_STRINGS_XML_FILE_FIRST_PART_HEADER . ' ' . self::DEFAULT_STRINGS_COUNT_PART . '>'; fwrite($this->sharedStringsFilePointer, $header); /** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ $this->stringsEscaper = \Box\Spout\Common\Escaper\XLSX::getInstance(); } /** * Checks if the book has been created. Throws an exception if not created yet. * * @return void * @throws \Box\Spout\Common\Exception\IOException If the sheet data file cannot be opened for writing */ protected function throwIfSharedStringsFilePointerIsNotAvailable() { if (!$this->sharedStringsFilePointer) { throw new IOException('Unable to open shared strings file for writing.'); } } /** * Writes the given string into the sharedStrings.xml file. * Starting and ending whitespaces are preserved. * * @param string $string * @return int ID of the written shared string */ public function writeString($string) { fwrite($this->sharedStringsFilePointer, '' . $this->stringsEscaper->escape($string) . ''); $this->numSharedStrings++; // Shared string ID is zero-based return ($this->numSharedStrings - 1); } /** * Finishes writing the data in the sharedStrings.xml file and closes the file. * * @return void */ public function close() { if (!is_resource($this->sharedStringsFilePointer)) { return; } fwrite($this->sharedStringsFilePointer, ''); // Replace the default strings count with the actual number of shared strings in the file header $firstPartHeaderLength = strlen(self::SHARED_STRINGS_XML_FILE_FIRST_PART_HEADER); $defaultStringsCountPartLength = strlen(self::DEFAULT_STRINGS_COUNT_PART); // Adding 1 to take into account the space between the last xml attribute and "count" fseek($this->sharedStringsFilePointer, $firstPartHeaderLength + 1); fwrite($this->sharedStringsFilePointer, sprintf("%-{$defaultStringsCountPartLength}s", 'count="' . $this->numSharedStrings . '" uniqueCount="' . $this->numSharedStrings . '"')); fclose($this->sharedStringsFilePointer); } } app/Services/Spout/Writer/XLSX/Internal/Worksheet.php000064400000024403147600120010016525 0ustar00 EOD; /** @var \Box\Spout\Writer\Common\Sheet The "external" sheet */ protected $externalSheet; /** @var string Path to the XML file that will contain the sheet data */ protected $worksheetFilePath; /** @var \Box\Spout\Writer\XLSX\Helper\SharedStringsHelper Helper to write shared strings */ protected $sharedStringsHelper; /** @var \Box\Spout\Writer\XLSX\Helper\StyleHelper Helper to work with styles */ protected $styleHelper; /** @var bool Whether inline or shared strings should be used */ protected $shouldUseInlineStrings; /** @var \Box\Spout\Common\Escaper\XLSX Strings escaper */ protected $stringsEscaper; /** @var \Box\Spout\Common\Helper\StringHelper String helper */ protected $stringHelper; /** @var Resource Pointer to the sheet data file (e.g. xl/worksheets/sheet1.xml) */ protected $sheetFilePointer; /** @var int Index of the last written row */ protected $lastWrittenRowIndex = 0; /** * @param \Box\Spout\Writer\Common\Sheet $externalSheet The associated "external" sheet * @param string $worksheetFilesFolder Temporary folder where the files to create the XLSX will be stored * @param \Box\Spout\Writer\XLSX\Helper\SharedStringsHelper $sharedStringsHelper Helper for shared strings * @param \Box\Spout\Writer\XLSX\Helper\StyleHelper Helper to work with styles * @param bool $shouldUseInlineStrings Whether inline or shared strings should be used * @throws \Box\Spout\Common\Exception\IOException If the sheet data file cannot be opened for writing */ public function __construct($externalSheet, $worksheetFilesFolder, $sharedStringsHelper, $styleHelper, $shouldUseInlineStrings) { $this->externalSheet = $externalSheet; $this->sharedStringsHelper = $sharedStringsHelper; $this->styleHelper = $styleHelper; $this->shouldUseInlineStrings = $shouldUseInlineStrings; /** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ $this->stringsEscaper = \Box\Spout\Common\Escaper\XLSX::getInstance(); $this->stringHelper = new StringHelper(); $this->worksheetFilePath = $worksheetFilesFolder . '/' . strtolower($this->externalSheet->getName()) . '.xml'; $this->startSheet(); } /** * Prepares the worksheet to accept data * * @return void * @throws \Box\Spout\Common\Exception\IOException If the sheet data file cannot be opened for writing */ protected function startSheet() { $this->sheetFilePointer = fopen($this->worksheetFilePath, 'w'); $this->throwIfSheetFilePointerIsNotAvailable(); fwrite($this->sheetFilePointer, self::SHEET_XML_FILE_HEADER); fwrite($this->sheetFilePointer, ''); } /** * Checks if the book has been created. Throws an exception if not created yet. * * @return void * @throws \Box\Spout\Common\Exception\IOException If the sheet data file cannot be opened for writing */ protected function throwIfSheetFilePointerIsNotAvailable() { if (!$this->sheetFilePointer) { throw new IOException('Unable to open sheet for writing.'); } } /** * @return \Box\Spout\Writer\Common\Sheet The "external" sheet */ public function getExternalSheet() { return $this->externalSheet; } /** * @return int The index of the last written row */ public function getLastWrittenRowIndex() { return $this->lastWrittenRowIndex; } /** * @return int The ID of the worksheet */ public function getId() { // sheet index is zero-based, while ID is 1-based return $this->externalSheet->getIndex() + 1; } /** * Adds data to the worksheet. * * @param array $dataRow Array containing data to be written. Cannot be empty. * Example $dataRow = ['data1', 1234, null, '', 'data5']; * @param \Box\Spout\Writer\Style\Style $style Style to be applied to the row. NULL means use default style. * @return void * @throws \Box\Spout\Common\Exception\IOException If the data cannot be written * @throws \Box\Spout\Common\Exception\InvalidArgumentException If a cell value's type is not supported */ public function addRow($dataRow, $style) { if (!$this->isEmptyRow($dataRow)) { $this->addNonEmptyRow($dataRow, $style); } $this->lastWrittenRowIndex++; } /** * Returns whether the given row is empty * * @param array $dataRow Array containing data to be written. Cannot be empty. * Example $dataRow = ['data1', 1234, null, '', 'data5']; * @return bool Whether the given row is empty */ protected function isEmptyRow($dataRow) { $numCells = count($dataRow); // using "reset()" instead of "$dataRow[0]" because $dataRow can be an associative array return ($numCells === 1 && CellHelper::isEmpty(reset($dataRow))); } /** * Adds non empty row to the worksheet. * * @param array $dataRow Array containing data to be written. Cannot be empty. * Example $dataRow = ['data1', 1234, null, '', 'data5']; * @param \Box\Spout\Writer\Style\Style $style Style to be applied to the row. NULL means use default style. * @return void * @throws \Box\Spout\Common\Exception\IOException If the data cannot be written * @throws \Box\Spout\Common\Exception\InvalidArgumentException If a cell value's type is not supported */ protected function addNonEmptyRow($dataRow, $style) { $cellNumber = 0; $rowIndex = $this->lastWrittenRowIndex + 1; $numCells = count($dataRow); $rowXML = ''; foreach($dataRow as $cellValue) { $rowXML .= $this->getCellXML($rowIndex, $cellNumber, $cellValue, $style->getId()); $cellNumber++; } $rowXML .= ''; $wasWriteSuccessful = fwrite($this->sheetFilePointer, $rowXML); if ($wasWriteSuccessful === false) { throw new IOException("Unable to write data in {$this->worksheetFilePath}"); } } /** * Build and return xml for a single cell. * * @param int $rowIndex * @param int $cellNumber * @param mixed $cellValue * @param int $styleId * @return string * @throws InvalidArgumentException If the given value cannot be processed */ protected function getCellXML($rowIndex, $cellNumber, $cellValue, $styleId) { $columnIndex = CellHelper::getCellIndexFromColumnIndex($cellNumber); $cellXML = 'getCellXMLFragmentForNonEmptyString($cellValue); } else if (CellHelper::isBoolean($cellValue)) { $cellXML .= ' t="b">' . intval($cellValue) . ''; } else if (CellHelper::isNumeric($cellValue)) { $cellXML .= '>' . $cellValue . ''; } else if (empty($cellValue)) { if ($this->styleHelper->shouldApplyStyleOnEmptyCell($styleId)) { $cellXML .= '/>'; } else { // don't write empty cells that do no need styling // NOTE: not appending to $cellXML is the right behavior!! $cellXML = ''; } } else { throw new InvalidArgumentException('Trying to add a value with an unsupported type: ' . gettype($cellValue)); } return $cellXML; } /** * Returns the XML fragment for a cell containing a non empty string * * @param string $cellValue The cell value * @return string The XML fragment representing the cell * @throws InvalidArgumentException If the string exceeds the maximum number of characters allowed per cell */ protected function getCellXMLFragmentForNonEmptyString($cellValue) { if ($this->stringHelper->getStringLength($cellValue) > self::MAX_CHARACTERS_PER_CELL) { throw new InvalidArgumentException('Trying to add a value that exceeds the maximum number of characters allowed in a cell (32,767)'); } if ($this->shouldUseInlineStrings) { $cellXMLFragment = ' t="inlineStr">' . $this->stringsEscaper->escape($cellValue) . ''; } else { $sharedStringId = $this->sharedStringsHelper->writeString($cellValue); $cellXMLFragment = ' t="s">' . $sharedStringId . ''; } return $cellXMLFragment; } /** * Closes the worksheet * * @return void */ public function close() { if (!is_resource($this->sheetFilePointer)) { return; } fwrite($this->sheetFilePointer, ''); fwrite($this->sheetFilePointer, ''); fclose($this->sheetFilePointer); } } app/Services/Spout/Writer/XLSX/Internal/Workbook.php000064400000011052147600120010016343 0ustar00shouldUseInlineStrings = $shouldUseInlineStrings; $this->fileSystemHelper = new FileSystemHelper($tempFolder); $this->fileSystemHelper->createBaseFilesAndFolders(); $this->styleHelper = new StyleHelper($defaultRowStyle); // This helper will be shared by all sheets $xlFolder = $this->fileSystemHelper->getXlFolder(); $this->sharedStringsHelper = new SharedStringsHelper($xlFolder); } /** * @return \Box\Spout\Writer\XLSX\Helper\StyleHelper Helper to apply styles to XLSX files */ protected function getStyleHelper() { return $this->styleHelper; } /** * @return int Maximum number of rows/columns a sheet can contain */ protected function getMaxRowsPerWorksheet() { return self::$maxRowsPerWorksheet; } /** * Creates a new sheet in the workbook. The current sheet remains unchanged. * * @return Worksheet The created sheet * @throws \Box\Spout\Common\Exception\IOException If unable to open the sheet for writing */ public function addNewSheet() { $newSheetIndex = count($this->worksheets); $sheet = new Sheet($newSheetIndex, $this->internalId); $worksheetFilesFolder = $this->fileSystemHelper->getXlWorksheetsFolder(); $worksheet = new Worksheet($sheet, $worksheetFilesFolder, $this->sharedStringsHelper, $this->styleHelper, $this->shouldUseInlineStrings); $this->worksheets[] = $worksheet; return $worksheet; } /** * Closes the workbook and all its associated sheets. * All the necessary files are written to disk and zipped together to create the XLSX file. * All the temporary files are then deleted. * * @param resource $finalFilePointer Pointer to the XLSX that will be created * @return void */ public function close($finalFilePointer) { /** @var Worksheet[] $worksheets */ $worksheets = $this->worksheets; foreach ($worksheets as $worksheet) { $worksheet->close(); } $this->sharedStringsHelper->close(); // Finish creating all the necessary files before zipping everything together $this->fileSystemHelper ->createContentTypesFile($worksheets) ->createWorkbookFile($worksheets) ->createWorkbookRelsFile($worksheets) ->createStylesFile($this->styleHelper) ->zipRootFolderAndCopyToStream($finalFilePointer); $this->cleanupTempFolder(); } /** * Deletes the root folder created in the temp folder and all its contents. * * @return void */ protected function cleanupTempFolder() { $xlsxRootFolder = $this->fileSystemHelper->getRootFolder(); $this->fileSystemHelper->deleteFolderRecursively($xlsxRootFolder); } } app/Services/Spout/Writer/XLSX/Writer.php000064400000010567147600120010014260 0ustar00throwIfWriterAlreadyOpened('Writer must be configured before opening it.'); $this->tempFolder = $tempFolder; return $this; } /** * Use inline string to be more memory efficient. If set to false, it will use shared strings. * This must be set before opening the writer. * * @api * @param bool $shouldUseInlineStrings Whether inline or shared strings should be used * @return Writer * @throws \Box\Spout\Writer\Exception\WriterAlreadyOpenedException If the writer was already opened */ public function setShouldUseInlineStrings($shouldUseInlineStrings) { $this->throwIfWriterAlreadyOpened('Writer must be configured before opening it.'); $this->shouldUseInlineStrings = $shouldUseInlineStrings; return $this; } /** * Configures the write and sets the current sheet pointer to a new sheet. * * @return void * @throws \Box\Spout\Common\Exception\IOException If unable to open the file for writing */ protected function openWriter() { if (!$this->book) { $tempFolder = ($this->tempFolder) ? : sys_get_temp_dir(); $this->book = new Workbook($tempFolder, $this->shouldUseInlineStrings, $this->shouldCreateNewSheetsAutomatically, $this->defaultRowStyle); $this->book->addNewSheetAndMakeItCurrent(); } } /** * @return Internal\Workbook The workbook representing the file to be written */ protected function getWorkbook() { return $this->book; } /** * Adds data to the currently opened writer. * If shouldCreateNewSheetsAutomatically option is set to true, it will handle pagination * with the creation of new worksheets if one worksheet has reached its maximum capicity. * * @param array $dataRow Array containing data to be written. * Example $dataRow = ['data1', 1234, null, '', 'data5']; * @param \Box\Spout\Writer\Style\Style $style Style to be applied to the row. * @return void * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException If the book is not created yet * @throws \Box\Spout\Common\Exception\IOException If unable to write data */ protected function addRowToWriter(array $dataRow, $style) { $this->throwIfBookIsNotAvailable(); $this->book->addRowToCurrentWorksheet($dataRow, $style); } /** * Returns the default style to be applied to rows. * * @return \Box\Spout\Writer\Style\Style */ protected function getDefaultRowStyle() { return (new StyleBuilder()) ->setFontSize(self::DEFAULT_FONT_SIZE) ->setFontName(self::DEFAULT_FONT_NAME) ->build(); } /** * Closes the writer, preventing any additional writing. * * @return void */ protected function closeWriter() { if ($this->book) { $this->book->close($this->filePointer); } } } app/Services/Spout/Writer/WriterFactory.php000064400000002454147600120010015006 0ustar00setGlobalFunctionsHelper(new GlobalFunctionsHelper()); return $writer; } } app/Services/Spout/Writer/AbstractWriter.php000064400000031704147600120010015142 0ustar00defaultRowStyle = $this->getDefaultRowStyle(); $this->resetRowStyleToDefault(); } /** * Sets the default styles for all rows added with "addRow". * Overriding the default style instead of using "addRowWithStyle" improves performance by 20%. * @see https://github.com/box/spout/issues/272 * * @param Style\Style $defaultStyle * @return AbstractWriter */ public function setDefaultRowStyle($defaultStyle) { $this->defaultRowStyle = $defaultStyle; $this->resetRowStyleToDefault(); return $this; } /** * @param \Box\Spout\Common\Helper\GlobalFunctionsHelper $globalFunctionsHelper * @return AbstractWriter */ public function setGlobalFunctionsHelper($globalFunctionsHelper) { $this->globalFunctionsHelper = $globalFunctionsHelper; return $this; } /** * Inits the writer and opens it to accept data. * By using this method, the data will be written to a file. * * @api * @param string $outputFilePath Path of the output file that will contain the data * @return AbstractWriter * @throws \Box\Spout\Common\Exception\IOException If the writer cannot be opened or if the given path is not writable */ public function openToFile($outputFilePath) { $this->outputFilePath = $outputFilePath; $this->filePointer = $this->globalFunctionsHelper->fopen($this->outputFilePath, 'wb+'); $this->throwIfFilePointerIsNotAvailable(); $this->openWriter(); $this->isWriterOpened = true; return $this; } /** * Inits the writer and opens it to accept data. * By using this method, the data will be outputted directly to the browser. * * @codeCoverageIgnore * * @api * @param string $outputFileName Name of the output file that will contain the data. If a path is passed in, only the file name will be kept * @return AbstractWriter * @throws \Box\Spout\Common\Exception\IOException If the writer cannot be opened */ public function openToBrowser($outputFileName) { $this->outputFilePath = $this->globalFunctionsHelper->basename($outputFileName); $this->filePointer = $this->globalFunctionsHelper->fopen('php://output', 'w'); $this->throwIfFilePointerIsNotAvailable(); // Clear any previous output (otherwise the generated file will be corrupted) // @see https://github.com/box/spout/issues/241 $this->globalFunctionsHelper->ob_end_clean(); // Set headers $this->globalFunctionsHelper->header('Content-Type: ' . static::$headerContentType); $this->globalFunctionsHelper->header('Content-Disposition: attachment; filename="' . $this->outputFilePath . '"'); /* * When forcing the download of a file over SSL,IE8 and lower browsers fail * if the Cache-Control and Pragma headers are not set. * * @see http://support.microsoft.com/KB/323308 * @see https://github.com/liuggio/ExcelBundle/issues/45 */ $this->globalFunctionsHelper->header('Cache-Control: max-age=0'); $this->globalFunctionsHelper->header('Pragma: public'); $this->openWriter(); $this->isWriterOpened = true; return $this; } /** * Checks if the pointer to the file/stream to write to is available. * Will throw an exception if not available. * * @return void * @throws \Box\Spout\Common\Exception\IOException If the pointer is not available */ protected function throwIfFilePointerIsNotAvailable() { if (!$this->filePointer) { throw new IOException('File pointer has not be opened'); } } /** * Checks if the writer has already been opened, since some actions must be done before it gets opened. * Throws an exception if already opened. * * @param string $message Error message * @return void * @throws \Box\Spout\Writer\Exception\WriterAlreadyOpenedException If the writer was already opened and must not be. */ protected function throwIfWriterAlreadyOpened($message) { if ($this->isWriterOpened) { throw new WriterAlreadyOpenedException($message); } } /** * Write given data to the output. New data will be appended to end of stream. * * @param array $dataRow Array containing data to be streamed. * If empty, no data is added (i.e. not even as a blank row) * Example: $dataRow = ['data1', 1234, null, '', 'data5', false]; * @api * @return AbstractWriter * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException If this function is called before opening the writer * @throws \Box\Spout\Common\Exception\IOException If unable to write data * @throws \Box\Spout\Common\Exception\SpoutException If anything else goes wrong while writing data */ public function addRow(array $dataRow) { if ($this->isWriterOpened) { // empty $dataRow should not add an empty line if (!empty($dataRow)) { try { $this->addRowToWriter($dataRow, $this->rowStyle); } catch (SpoutException $e) { // if an exception occurs while writing data, // close the writer and remove all files created so far. $this->closeAndAttemptToCleanupAllFiles(); // re-throw the exception to alert developers of the error throw $e; } } } else { throw new WriterNotOpenedException('The writer needs to be opened before adding row.'); } return $this; } /** * Write given data to the output and apply the given style. * @see addRow * * @api * @param array $dataRow Array of array containing data to be streamed. * @param Style\Style $style Style to be applied to the row. * @return AbstractWriter * @throws \Box\Spout\Common\Exception\InvalidArgumentException If the input param is not valid * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException If this function is called before opening the writer * @throws \Box\Spout\Common\Exception\IOException If unable to write data */ public function addRowWithStyle(array $dataRow, $style) { if (!$style instanceof Style\Style) { throw new InvalidArgumentException('The "$style" argument must be a Style instance and cannot be NULL.'); } $this->setRowStyle($style); $this->addRow($dataRow); $this->resetRowStyleToDefault(); return $this; } /** * Write given data to the output. New data will be appended to end of stream. * * @api * @param array $dataRows Array of array containing data to be streamed. * If a row is empty, it won't be added (i.e. not even as a blank row) * Example: $dataRows = [ * ['data11', 12, , '', 'data13'], * ['data21', 'data22', null, false], * ]; * @return AbstractWriter * @throws \Box\Spout\Common\Exception\InvalidArgumentException If the input param is not valid * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException If this function is called before opening the writer * @throws \Box\Spout\Common\Exception\IOException If unable to write data */ public function addRows(array $dataRows) { if (!empty($dataRows)) { $firstRow = reset($dataRows); if (!is_array($firstRow)) { throw new InvalidArgumentException('The input should be an array of arrays'); } foreach ($dataRows as $dataRow) { $this->addRow($dataRow); } } return $this; } /** * Write given data to the output and apply the given style. * @see addRows * * @api * @param array $dataRows Array of array containing data to be streamed. * @param Style\Style $style Style to be applied to the rows. * @return AbstractWriter * @throws \Box\Spout\Common\Exception\InvalidArgumentException If the input param is not valid * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException If this function is called before opening the writer * @throws \Box\Spout\Common\Exception\IOException If unable to write data */ public function addRowsWithStyle(array $dataRows, $style) { if (!$style instanceof Style\Style) { throw new InvalidArgumentException('The "$style" argument must be a Style instance and cannot be NULL.'); } $this->setRowStyle($style); $this->addRows($dataRows); $this->resetRowStyleToDefault(); return $this; } /** * Returns the default style to be applied to rows. * Can be overriden by children to have a custom style. * * @return Style\Style */ protected function getDefaultRowStyle() { return (new StyleBuilder())->build(); } /** * Sets the style to be applied to the next written rows * until it is changed or reset. * * @param Style\Style $style * @return void */ private function setRowStyle($style) { // Merge given style with the default one to inherit custom properties $this->rowStyle = $style->mergeWith($this->defaultRowStyle); } /** * Resets the style to be applied to the next written rows. * * @return void */ private function resetRowStyleToDefault() { $this->rowStyle = $this->defaultRowStyle; } /** * Closes the writer. This will close the streamer as well, preventing new data * to be written to the file. * * @api * @return void */ public function close() { if (!$this->isWriterOpened) { return; } $this->closeWriter(); if (is_resource($this->filePointer)) { $this->globalFunctionsHelper->fclose($this->filePointer); } $this->isWriterOpened = false; } /** * Closes the writer and attempts to cleanup all files that were * created during the writing process (temp files & final file). * * @return void */ private function closeAndAttemptToCleanupAllFiles() { // close the writer, which should remove all temp files $this->close(); // remove output file if it was created if ($this->globalFunctionsHelper->file_exists($this->outputFilePath)) { $outputFolderPath = dirname($this->outputFilePath); $fileSystemHelper = new FileSystemHelper($outputFolderPath); $fileSystemHelper->deleteFile($this->outputFilePath); } } } app/Services/Spout/Writer/WriterInterface.php000064400000007220147600120010015273 0ustar00throwIfWriterAlreadyOpened('Writer must be configured before opening it.'); $this->shouldCreateNewSheetsAutomatically = $shouldCreateNewSheetsAutomatically; return $this; } /** * Returns all the workbook's sheets * * @api * @return Common\Sheet[] All the workbook's sheets * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException If the writer has not been opened yet */ public function getSheets() { $this->throwIfBookIsNotAvailable(); $externalSheets = []; $worksheets = $this->getWorkbook()->getWorksheets(); /** @var Common\Internal\WorksheetInterface $worksheet */ foreach ($worksheets as $worksheet) { $externalSheets[] = $worksheet->getExternalSheet(); } return $externalSheets; } /** * Creates a new sheet and make it the current sheet. The data will now be written to this sheet. * * @api * @return Common\Sheet The created sheet * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException If the writer has not been opened yet */ public function addNewSheetAndMakeItCurrent() { $this->throwIfBookIsNotAvailable(); $worksheet = $this->getWorkbook()->addNewSheetAndMakeItCurrent(); return $worksheet->getExternalSheet(); } /** * Returns the current sheet * * @api * @return Common\Sheet The current sheet * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException If the writer has not been opened yet */ public function getCurrentSheet() { $this->throwIfBookIsNotAvailable(); return $this->getWorkbook()->getCurrentWorksheet()->getExternalSheet(); } /** * Sets the given sheet as the current one. New data will be written to this sheet. * The writing will resume where it stopped (i.e. data won't be truncated). * * @api * @param Common\Sheet $sheet The sheet to set as current * @return void * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException If the writer has not been opened yet * @throws \Box\Spout\Writer\Exception\SheetNotFoundException If the given sheet does not exist in the workbook */ public function setCurrentSheet($sheet) { $this->throwIfBookIsNotAvailable(); $this->getWorkbook()->setCurrentSheet($sheet); } /** * Checks if the book has been created. Throws an exception if not created yet. * * @return void * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException If the book is not created yet */ protected function throwIfBookIsNotAvailable() { if (!$this->getWorkbook()) { throw new WriterNotOpenedException('The writer must be opened before performing this action.'); } } } app/Services/Submission/SubmissionService.php000064400000056362147600120010015432 0ustar00model = new Submission(); $this->formService = new FormService(); } public function get($attributes = []) { if (!defined('FLUENTFORM_RENDERING_ENTRIES')) { define('FLUENTFORM_RENDERING_ENTRIES', true); } $entries = $this->model->paginateEntries($attributes); if (Arr::get($attributes, 'parse_entry')) { $form = Form::find(Arr::get($attributes, 'form_id')); $parsedEntries = FormDataParser::parseFormEntries($entries->items(), $form); $entries->setCollection(Collection::make($parsedEntries)); } return apply_filters('fluentform/get_submissions', $entries); } public function find($submissionId) { try { if (!defined('FLUENTFORM_RENDERING_ENTRY')) { define('FLUENTFORM_RENDERING_ENTRY', true); } $submission = $this->model->with(['form'])->findOrFail($submissionId); $form = $submission->form; $autoRead = apply_filters_deprecated( 'fluentform_auto_read', [true, $form], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/auto_read_submission' ); $autoRead = apply_filters('fluentform/auto_read_submission', $autoRead, $form); if ('unread' === $submission->status && $autoRead) { $submission->fill(['status' => 'read'])->save(); } $submission = FormDataParser::parseFormEntry($submission, $form, null, true); if ($submission->user_id) { $user = get_user_by('ID', $submission->user_id); $userDisplayName = trim($user->first_name . ' ' . $user->last_name); if (!$userDisplayName) { $userDisplayName = $user->display_name; } if ($user) { $submission->user = [ 'ID' => $user->ID, 'name' => $userDisplayName, 'permalink' => get_edit_user_link($user->ID) ]; } } $submission = apply_filters_deprecated( 'fluentform_single_response_data', [$submission, $form->id], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/find_submission' ); return apply_filters('fluentform/find_submission', $submission, $form->id)->makeHidden('form'); } catch (Exception $e) { throw new Exception( __('No Entry found.', 'fluentform') ); } } public function findBySerialID($formId,$serialNumber=null,$isHtml = false) { try { if (!defined('FLUENTFORM_RENDERING_ENTRY')) { define('FLUENTFORM_RENDERING_ENTRY', true); } $submission = Submission::where('form_id', $formId) ->when($serialNumber, function ($query) use ($serialNumber) { return $query->where('serial_number', $serialNumber); }) ->when(!$serialNumber && !$formId && !empty($uidHash), function ($query) use ($uidHash) { // Apply the condition to check _entry_uid_hash in submissionMeta if serialNumber and formId are not set return $query->whereHas('submissionMeta', function ($metaQuery) use ($uidHash) { $metaQuery->where('_entry_uid_hash', $uidHash); }); }) ->orderBy('serial_number', 'desc') ->first(); if (!$submission) { return; } $form = $submission->form; $autoRead = apply_filters('fluentform/auto_read_submission', true, $form); if ('unread' === $submission->status && $autoRead) { $submission->fill(['status' => 'read'])->save(); } $submission = FormDataParser::parseFormEntry($submission, $form, null, $isHtml); if ($submission->user_id) { $user = get_user_by('ID', $submission->user_id); $userDisplayName = trim($user->first_name . ' ' . $user->last_name); if (!$userDisplayName) { $userDisplayName = $user->display_name; } if ($user) { $submission->user = [ 'ID' => $user->ID, 'name' => $userDisplayName, 'permalink' => get_edit_user_link($user->ID) ]; } } return apply_filters('fluentform/find_submission', $submission, $form->id)->makeHidden('form'); } catch (Exception $e) { throw new Exception( __('No Entry found.' . $e->getMessage(), 'fluentform') ); } } public function resources($attributes) { $resources = []; $formId = Arr::get($attributes, 'form_id'); $submissionId = Arr::get($attributes, 'entry_id'); if (Arr::get($attributes, 'counts')) { $resources['counts'] = $this->model->countByGroup($formId); } $formInputsAndLabels = null; $wantsLabels = Arr::get($attributes, 'labels'); if ($wantsLabels) { $formInputsAndLabels = $this->formService->getInputsAndLabels($formId); $resources['labels'] = $formInputsAndLabels['labels']; } if (Arr::get($attributes, 'fields')) { $formInputsAndLabels = $formInputsAndLabels ? $formInputsAndLabels : $this->formService->getInputsAndLabels($formId); $resources['fields'] = $formInputsAndLabels['inputs']; } if (Arr::get($attributes, 'visibleColumns')) { $resources['visibleColumns'] = Helper::getFormMeta($formId, '_visible_columns', null); } if (Arr::get($attributes, 'columnsOrder')) { $resources['columnsOrder'] = Helper::getFormMeta($formId, '_columns_order', null); } if (Arr::get($attributes, 'next')) { $resources['next'] = $this->model->findAdjacentSubmission($attributes); } if (Arr::get($attributes, 'previous')) { $attributes['direction'] = 'previous'; $resources['previous'] = $this->model->findAdjacentSubmission($attributes); } if (count(array_intersect(['orderData', 'widgets', 'cards'], array_keys($attributes))) > 0) { try { $submission = $this->model->with('form')->findOrFail($submissionId); } catch (Exception $e) { throw new Exception( __('No Entry found.', 'fluentform') ); } if (Arr::get($attributes, 'orderData')) { $hasPayment = $submission->payment_status || $submission->payment_total || 'subscription' === $submission->payment_type; if ($hasPayment) { $resources['orderData'] = apply_filters( 'fluentform/submission_order_data', false, $submission, $submission->form ); if ($wantsLabels) { $resources['labels'] = apply_filters( 'fluentform/submission_labels', $resources['labels'], $submission, $submission->form ); } } } if (Arr::get($attributes, 'widgets')) { $resources['widgets'] = apply_filters( 'fluentform/submissions_widgets', [], $resources, $submission ); } if (Arr::get($attributes, 'cards')) { $resources['cards'] = apply_filters( 'fluentform/submission_cards', [], $resources, $submission ); } } return apply_filters('fluentform/submission_resources', $resources); } public function updateStatus($attributes = []) { $submissionId = intval(Arr::get($attributes, 'entry_id')); $status = sanitize_text_field(Arr::get($attributes, 'status')); $this->model->amend($submissionId, ['status' => $status]); do_action('fluentform/after_submission_status_update', $submissionId, $status); return $status; } public function toggleIsFavorite($submissionId) { try { $submission = $this->model->findOrFail($submissionId); } catch (Exception $e) { throw new Exception( __('No Entry found.', 'fluentform') ); } if ($submission->is_favourite) { $message = __('The entry has been removed from favorites', 'fluentform'); } else { $message = __('The entry has been marked as favorites', 'fluentform'); } $submission->fill(['is_favourite' => !$submission->is_favourite])->save(); return [$message, $submission->is_favourite]; } public function storeColumnSettings($attributes = []) { $formId = Arr::get($attributes, 'form_id'); $metaKey = sanitize_text_field(Arr::get($attributes, 'meta_key')); $metaValue = wp_unslash(Arr::get($attributes, 'settings')); FormMeta::persist($formId, $metaKey, $metaValue); } public function handleBulkActions($attributes = []) { $formId = Arr::get($attributes, 'form_id'); $submissionIds = fluentFormSanitizer(Arr::get($attributes, 'entries', [])); $actionType = sanitize_text_field(Arr::get($attributes, 'action_type')); if (!$formId || !count($submissionIds)) { throw new Exception(__('Please select entries first', 'fluentform')); } $query = $this->model->where('form_id', $formId)->whereIn('id', $submissionIds); $statuses = Helper::getEntryStatuses($formId); $message = ''; if (isset($statuses[$actionType])) { $query->update([ 'status' => $actionType, 'updated_at' => current_time('mysql'), ]); foreach ($submissionIds as $submissionId) { do_action('fluentform/after_submission_status_update', $submissionId, $actionType); } $message = 'Selected entries successfully marked as ' . $statuses[$actionType]; } elseif ('other.delete_permanently' == $actionType) { $this->deleteEntries($submissionIds, $formId); $message = __('Selected entries successfully deleted', 'fluentform'); } elseif ('other.make_favorite' == $actionType) { $query->update([ 'is_favourite' => 1, ]); $message = __('Selected entries successfully marked as favorites', 'fluentform'); } elseif ('other.unmark_favorite' == $actionType) { $query->update([ 'is_favourite' => 0, ]); $message = __('Selected entries successfully removed from favorites', 'fluentform'); } return $message; } public function deleteEntries($submissionIds, $formId) { $submissionIds = (array)$submissionIds; do_action('fluentform/before_deleting_entries', $submissionIds, $formId); foreach ($submissionIds as $submissionId) { do_action_deprecated( 'fluentform_before_entry_deleted', [$submissionId, $formId], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/before_deleting_entries' ); } $this->deleteFiles($submissionIds, $formId); Submission::remove($submissionIds); do_action('fluentform/after_deleting_submissions', $submissionIds, $formId); foreach ($submissionIds as $submissionId) { do_action_deprecated( 'fluentform_after_entry_deleted', [$submissionId, $formId], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/after_deleting_entries' ); } } public function deleteFiles($submissionIds, $formId) { apply_filters_deprecated( 'fluentform_disable_attachment_delete', [ false, $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/disable_attachment_delete', 'Use fluentform/disable_attachment_delete instead of fluentform_disable_attachment_delete' ); $disableAttachmentDelete = apply_filters( 'fluentform/disable_attachment_delete', false, $formId ); $shouldDelete = defined('FLUENTFORMPRO') && $formId && !$disableAttachmentDelete; if ($shouldDelete) { $deletables = $this->getAttachments($submissionIds, $formId); foreach ($deletables as $file) { $file = wp_upload_dir()['basedir'] . FLUENTFORM_UPLOAD_DIR . '/' . basename($file); if (is_readable($file) && !is_dir($file)) { @unlink($file); } } // Empty Temp Uploads if (defined('FLUENTFORMPRO')) { $tempDir = wp_upload_dir()['basedir'] . FLUENTFORM_UPLOAD_DIR . '/temp/'; $files = glob($tempDir . '*'); if(!empty($files)){ foreach ($files as $file) { if (basename($file) !== 'index.php') { unlink($file); } } } } } } public function getAttachments($submissionIds, $form) { $submissionIds = (array)$submissionIds; if (!$form instanceof Form) { $form = Form::find($form); } $fields = FormFieldsParser::getAttachmentInputFields($form, ['element', 'attributes']); $attachments = []; if ($fields) { $fields = Arr::pluck($fields, 'attributes.name'); $submissions = $this->model->whereIn('id', $submissionIds)->get(); foreach ($submissions as $submission) { $response = json_decode($submission->response, true); $files = Arr::collapse(Arr::only($response, $fields)); $attachments = array_merge($attachments, $files); } } return $attachments; } public function getNotes($submissionId, $attributes) { $formId = (int)Arr::get($attributes, 'form_id'); $apiLog = 'yes' === sanitize_text_field(Arr::get($attributes, 'api_log')); $metaKeys = ['_notes']; if ($apiLog) { $metaKeys[] = 'api_log'; } $notes = SubmissionMeta::where('response_id', $submissionId) ->whereIn('meta_key', $metaKeys) ->orderBy('id', 'DESC') ->get(); foreach ($notes as $note) { if ($note->user_id) { $note->pemalink = get_edit_user_link($note->user_id); $user = get_user_by('ID', $note->user_id); if ($user) { $note->created_by = $user->display_name; } else { $note->created_by = __('Fluent Forms Bot', 'fluentform'); } } else { $note->pemalink = false; } } apply_filters_deprecated( 'fluentform_entry_notes', [ $notes, $submissionId, $formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/entry_notes', 'Use fluentform/entry_notes instead of fluentform_entry_notes' ); $notes = apply_filters('fluentform/entry_notes', $notes, $submissionId, $formId); return apply_filters('fluentform/submission_notes', $notes, $submissionId, $formId); } public function storeNote($submissionId, $attributes = []) { $formId = (int)Arr::get($attributes, 'form_id'); $content = sanitize_textarea_field($attributes['note']['content']); $status = sanitize_text_field($attributes['note']['status']); $user = get_user_by('ID', get_current_user_id()); $now = current_time('mysql'); $note = [ 'response_id' => $submissionId, 'form_id' => $formId, 'meta_key' => '_notes', 'value' => $content, 'status' => $status, 'user_id' => $user->ID, 'name' => $user->display_name, 'created_at' => $now, 'updated_at' => $now, ]; $note = apply_filters_deprecated( 'fluentform_add_response_note', [$note], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/store_submission_note' ); $note = apply_filters('fluentform/store_submission_note', $note); $submissionMeta = new SubmissionMeta; $submissionMeta->fill($note)->save(); do_action_deprecated( 'fluentform_new_response_note_added', [$submissionMeta->id, $submissionMeta], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/submission_note_stored' ); do_action('fluentform/submission_note_stored', $submissionMeta->id, $submissionMeta); return [ 'message' => __('Note has been successfully added', 'fluentform'), 'note' => $submissionMeta, 'insert_id' => $submissionMeta->id, ]; } public function updateSubmissionUser($userId, $submissionId) { if (!$userId || !$submissionId) { throw new Exception(__('Submission ID and User ID is required', 'fluentform')); } $submission = Submission::find($submissionId); $user = get_user_by('ID', $userId); if (!$submission || $submission->user_id == $userId || !$user) { throw new Exception(__('Invalid Request', 'fluentform')); } Submission::where('id', $submission->id) ->update([ 'user_id' => $userId, 'updated_at' => current_time('mysql'), ]); if (defined('FLUENTFORMPRO')) { // let's update the corresponding user IDs for transactions and wpFluent()->table('fluentform_transactions') ->where('submission_id', $submission->id) ->update([ 'user_id' => $userId, 'updated_at' => current_time('mysql'), ]); } do_action('fluentform/log_data', [ 'parent_source_id' => $submission->form_id, 'source_type' => 'submission_item', 'source_id' => $submission->id, 'component' => 'General', 'status' => 'info', 'title' => 'Associate user has been changed from ' . $submission->user_id . ' to ' . $userId, ]); do_action_deprecated( 'fluentform_submission_user_changed', [ $submission, $user ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/submission_user_changed', 'Use fluentform/submission_user_changed instead of fluentform_submission_user_changed.' ); do_action('fluentform/submission_user_changed', $submission, $user); return ([ 'message' => __('Selected user has been successfully assigned to this submission', 'fluentform'), 'user' => [ 'name' => $user->display_name, 'email' => $user->user_email, 'ID' => $user->ID, 'permalink' => get_edit_user_link($user->ID), ], 'user_id' => $userId, ]); } public function recordEntryDetails($entryId, $formId, $data) { $formData = Arr::except($data, Helper::getWhiteListedFields($formId)); $entryItems = []; foreach ($formData as $dataKey => $dataValue) { if (empty($dataValue)) { continue; } if (is_array($dataValue) || is_object($dataValue)) { foreach ($dataValue as $subKey => $subValue) { if (empty($subValue)) { continue; } $entryItems[] = [ 'form_id' => $formId, 'submission_id' => $entryId, 'field_name' => trim($dataKey), 'sub_field_name' => $subKey, 'field_value' => maybe_serialize($subValue), ]; } } else { $entryItems[] = [ 'form_id' => $formId, 'submission_id' => $entryId, 'field_name' => trim($dataKey), 'sub_field_name' => '', 'field_value' => $dataValue, ]; } } foreach ($entryItems as $entryItem) { EntryDetails::insert($entryItem); } return true; } public function getPrintContent($attr) { $content = (new SubmissionPrint())->getContent($attr); return array('success' => true, 'content' => $content); } } app/Services/Submission/SubmissionPrint.php000064400000012546147600120010015122 0ustar00orderBy('id', $orderBy)->get(); if (!$submissions || !$form) { throw new \Exception(__('Invalid Submissions', 'fluentform')); } $pdfBody = $this->getBody($submissions, $form); $pdfCss = ''; return fluentform_sanitize_html($pdfCss . $pdfBody); } protected function getBody($submissions, $form) { $pdfBody = ""; foreach ($submissions as $index => $submission) { $formData = json_decode($submission->response, true); $htmlBody = ShortCodeParser::parse('{all_data}', $submission, $formData, $form, false, true); $htmlBody = '

    Submission - #' . $submission->id . '

    ' . $htmlBody; if ($index !== 0 && apply_filters('fluentform/bulk_entries_print_start_on_new_page', __return_true(), $submission, $form)) { $htmlBody = '
    ' . $htmlBody; } if (apply_filters('fluentform/entry_print_with_notes', __return_true(), $form, $submission)) { $htmlBody = $this->addNotes($htmlBody, $submission, $form); } $pdfBody .= apply_filters('fluentform/entry_print_body', $htmlBody, $submission, $form, $formData); } return apply_filters('fluentform/entries_print_body', $pdfBody, $submissions, $form); } protected function addNotes($htmlBody, $submission, $form) { $notes = (new SubmissionService())->getNotes($submission->id, ['form_id' => $form->id]); if ($notes && count($notes) > 0) { $notesHtml = '

    Submission Notes

    '; foreach ($notes as $note) { if (isset($note->created_by)) { $label = '' . $note->created_by . ' - ' . $note->created_at; } else { $label = '' . $note->name . ' - ' . $note->created_at; } $notesHtml .= ''; } $htmlBody = $htmlBody . $notesHtml . '
    ' . $label . '
    ' . $note->value . '
    '; } return $htmlBody; } protected function getCss() { $mainColor = '#4F4F4F'; $fontSize = 14; $secondaryColor = '#EAEAEA'; ob_start(); ?> .ff_pdf_wrapper, p, li, td, th { color: ; font-size: px; } .ff_all_data, table { empty-cells: show; border-collapse: collapse; border: 1px solid ; width: 100%; color: ; } hr { color: ; background-color: ; } .ff_all_data th { border-bottom: 1px solid ; border-top: 1px solid ; padding-bottom: 10px !important; } .ff_all_data tr td { padding-left: 30px !important; padding-top: 15px !important; padding-bottom: 15px !important; } .ff_all_data tr td, .ff_all_data tr th { border: 1px solid ; text-align: left; } table, .ff_all_data {width: 100%; overflow:wrap;} img.alignright { float: right; margin: 0 0 1em 1em; } img.alignleft { float: left; margin: 0 10px 10px 0; } .center-image-wrapper {text-align:center;} .center-image-wrapper img.aligncenter {display: initial; margin: 0; text-align: center;} .alignright { float: right; } .alignleft { float: left; } .aligncenter { display: block; margin-left: auto; margin-right: auto; text-align: center; } .invoice_title { padding-bottom: 10px; display: block; } .ffp_table thead th { background-color: #e3e8ee; color: #000; text-align: left; vertical-align: bottom; } table th { padding: 5px 10px; } .ff_rtl table th, .ff_rtl table td { text-align: right !important; } /* Add CSS for page breaks */ @media print { .ff-new-entry-page-break { page-break-before: always; } } whereIn('id', $formIds) ->get(); $forms = []; foreach ($result as $item) { $form = json_decode($item); $formMetaFiltered = array_filter($form->form_meta, function ($item) { return ($item->meta_key !== '_total_views'); }); $form->metas = $formMetaFiltered; $form->form_fields = json_decode($form->form_fields); $forms[] = $form; } $fileName = 'fluentform-export-forms-' . count($forms) . '-' . date('d-m-Y') . '.json'; header('Content-disposition: attachment; filename=' . $fileName); header('Content-type: application/json'); echo json_encode(array_values($forms)); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $forms is escaped before being passed in. die(); } /** * @throws Exception */ public static function importForms($file) { if ($file instanceof File) { $forms = \json_decode($file->getContents(), true); $insertedForms = []; if ($forms && is_array($forms)) { foreach ($forms as $formItem) { $formFields = json_encode([]); if ($fields = Arr::get($formItem, 'form', '')) { $formFields = json_encode($fields); } elseif ($fields = Arr::get($formItem, 'form_fields', '')) { $formFields = json_encode($fields); } else { throw new Exception(__('You have a faulty JSON file, please export the Fluent Forms again.', 'fluentform')); } $formTitle = sanitize_text_field(Arr::get($formItem, 'title')); $form = [ 'title' => $formTitle ?: 'Blank Form', 'form_fields' => $formFields, 'status' => sanitize_text_field(Arr::get($formItem, 'status', 'published')), 'has_payment' => sanitize_text_field(Arr::get($formItem, 'has_payment', 0)), 'type' => sanitize_text_field(Arr::get($formItem, 'type', 'form')), 'created_by' => get_current_user_id(), ]; if (Arr::get($formItem, 'conditions')) { $form['conditions'] = Arr::get($formItem, 'conditions'); } if (isset($formItem['appearance_settings'])) { $form['appearance_settings'] = Arr::get($formItem, 'appearance_settings'); } $formId = Form::insertGetId($form); $insertedForms[$formId] = [ 'title' => $form['title'], 'edit_url' => admin_url('admin.php?page=fluent_forms&route=editor&form_id=' . $formId), ]; if (isset($formItem['metas'])) { foreach ($formItem['metas'] as $metaData) { $metaKey = sanitize_text_field(Arr::get($metaData, 'meta_key')); $metaValue = Arr::get($metaData, 'value'); if ("ffc_form_settings_generated_css" == $metaKey || "ffc_form_settings_meta" == $metaKey) { $metaValue = str_replace('ff_conv_app_' . Arr::get($formItem, 'id'), 'ff_conv_app_' . $formId, $metaValue); } $settings = [ 'form_id' => $formId, 'meta_key' => $metaKey, 'value' => $metaValue, ]; FormMeta::insert($settings); } } else { $oldKeys = [ 'formSettings', 'notifications', 'mailchimp_feeds', 'slack', ]; foreach ($oldKeys as $key) { if (isset($formItem[$key])) { FormMeta::persist($formId, $key, json_encode(Arr::get($formItem, $key))); } } } do_action('fluentform/form_imported', $formId); } return ([ 'message' => __('You form has been successfully imported.', 'fluentform'), 'inserted_forms' => $insertedForms, ]); } } throw new Exception(__('You have a faulty JSON file, please export the Fluent Forms again.', 'fluentform')); } public static function exportEntries($args) { if (!defined('FLUENTFORM_EXPORTING_ENTRIES')) { define('FLUENTFORM_EXPORTING_ENTRIES', true); } $formId = (int)Arr::get($args, 'form_id'); try { $form = Form::findOrFail($formId); } catch (Exception $e) { exit('No Form Found'); } $type = sanitize_key(Arr::get($args, 'format', 'csv')); if (!in_array($type, ['csv', 'ods', 'xlsx', 'json'])) { exit('Invalid requested format'); } if ('json' == $type) { self::exportAsJSON($form, $args); } if (!defined('FLUENTFORM_DOING_CSV_EXPORT')) { define('FLUENTFORM_DOING_CSV_EXPORT', true); } $formInputs = FormFieldsParser::getEntryInputs($form, ['admin_label', 'raw']); $inputLabels = FormFieldsParser::getAdminLabels($form, $formInputs); $selectedLabels = Arr::get($args,'fields_to_export'); if (is_string($selectedLabels) && Helper::isJson($selectedLabels)) { $selectedLabels = \json_decode($selectedLabels, true); } $selectedLabels = fluentFormSanitizer($selectedLabels); $withNotes = isset($args['with_notes']); //filter out unselected fields foreach ($inputLabels as $key => $value) { if (!in_array($key,$selectedLabels) && isset($inputLabels[$key])) { unset($inputLabels[$key]); // Remove the element with the specified key } } $submissions = self::getSubmissions($args); $submissions = FormDataParser::parseFormEntries($submissions, $form, $formInputs); $parsedShortCodes = []; $exportData = []; $submissionService = new SubmissionService(); foreach ($submissions as $submission) { $submission->response = json_decode($submission->response, true); $temp = []; foreach ($inputLabels as $field => $label) { //format tabular grid data for CSV/XLSV/ODS export if (isset($formInputs[$field]['element']) && "tabular_grid" === $formInputs[$field]['element']) { $gridRawData = Arr::get($submission->response, $field); $content = Helper::getTabularGridFormatValue($gridRawData, Arr::get($formInputs, $field), ' | '); } elseif (isset($formInputs[$field]['element']) && "subscription_payment_component" === $formInputs[$field]['element']) { //resolve plane name for subscription field $planIndex = Arr::get($submission->user_inputs, $field); $planLabel = Arr::get($formInputs, "{$field}.raw.settings.subscription_options.{$planIndex}.name"); if ($planLabel) { $content = $planLabel; } else { $content = self::getFieldExportContent($submission, $field); } } else { $content = self::getFieldExportContent($submission, $field); if (Arr::get($formInputs, $field . '.element') === "input_number" && is_numeric($content)) { $content = $content + 0; } } $temp[] = Helper::sanitizeForCSV($content); } if($selectedShortcodes = Arr::get($args,'shortcodes_to_export')){ $selectedShortcodes = fluentFormSanitizer($selectedShortcodes); $parsedShortCodes = ShortCodeParser::parse( $selectedShortcodes, $submission->id, $submission->response, $form, false, true ); if(!empty($parsedShortCodes)){ foreach ($parsedShortCodes as $code){ $temp[] = Arr::get($code,'value'); } } } if($withNotes){ $notes = $submissionService->getNotes($submission->id, ['form_id' => $form->id])->pluck('value'); if(!empty($notes)){ $temp[] = implode(", ",$notes->toArray()); } } $exportData[] = $temp; } $extraLabels = []; if(!empty($parsedShortCodes)){ foreach ($parsedShortCodes as $code){ $extraLabels[] = Arr::get($code,'label'); } } $inputLabels = array_merge($inputLabels, $extraLabels); if($withNotes){ $inputLabels[] = __('Notes','fluentform'); } $data = array_merge([array_values($inputLabels)], $exportData); $data = apply_filters('fluentform/export_data', $data, $form, $exportData, $inputLabels); $fileName = sanitize_title($form->title, 'export', 'view') . '-' . date('Y-m-d'); self::downloadOfficeDoc($data, $type, $fileName); } private static function getFieldExportContent($submission, $fieldName) { return trim( wp_strip_all_tags( FormDataParser::formatValue( Arr::get($submission->user_inputs, $fieldName) ) ) ); } private static function exportAsJSON($form, $args) { $formInputs = FormFieldsParser::getEntryInputs($form, ['admin_label', 'raw']); $submissions = self::getSubmissions($args); $submissions = FormDataParser::parseFormEntries($submissions, $form, $formInputs); foreach ($submissions as $submission) { $submission->response = json_decode($submission->response, true); } header('Content-disposition: attachment; filename=' . sanitize_title($form->title, 'export', 'view') . '-' . date('Y-m-d') . '.json'); header('Content-type: application/json'); echo json_encode($submissions); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $submissions is escaped before being passed in. exit(); } private static function getSubmissions($args) { $query = (new Submission)->customQuery($args); $entries = fluentFormSanitizer(Arr::get($args, 'entries', [])); $query->when(is_array($entries) && (count($entries) > 0), function ($q) use ($entries) { return $q->whereIn('id', $entries); }); if (Arr::get($args, 'advanced_filter')) { $query = apply_filters('fluentform/apply_entries_advance_filter', $query, $args); } return $query->get(); } private static function downloadOfficeDoc($data, $type = 'csv', $fileName = null) { $data = array_map(function ($item) { return array_map(function ($itemValue) { if (is_array($itemValue)) { return implode(', ', $itemValue); } return $itemValue; }, $item); }, $data); $autoloaderPath = App::getInstance()->make('path.app') . '/Services/Spout/Autoloader/autoload.php'; // Check if the file is already included if (!in_array(realpath($autoloaderPath), get_included_files())) { // Include the autoloader file if it has not been included yet require_once $autoloaderPath; } $fileName = ($fileName) ? $fileName . '.' . $type : 'export-data-' . date('d-m-Y') . '.' . $type; $writer = \Box\Spout\Writer\WriterFactory::create($type); $writer->openToBrowser($fileName); $writer->addRows($data); $writer->close(); die(); } } app/Services/WPAsync/FluentFormAsyncRequest.php000064400000015556147600120010015577 0ustar00app = $app; } public function queue($feed) { return wpFluent()->table($this->table)->insertGetId($feed); } public function queueFeeds($feeds) { return wpFluent()->table($this->table) ->insert($feeds); } public function dispatchAjax($data = []) { /* This hook is deprecated and will be removed soon */ $sslVerify = apply_filters('fluentform_https_local_ssl_verify', false); $args = array( 'timeout' => 0.1, 'blocking' => false, 'body' => $data, 'cookies' => wpFluentForm('request')->cookie(), 'sslverify' => apply_filters('fluentform/https_local_ssl_verify', $sslVerify), ); $queryArgs = array( 'action' => $this->action, 'nonce' => wp_create_nonce($this->action), ); $url = add_query_arg($queryArgs, admin_url( 'admin-ajax.php' )); wp_remote_post(esc_url_raw($url), $args); } public function handleBackgroundCall() { $originId = wpFluentForm('request')->get('origin_id', false); $this->processActions($originId); echo 'success'; die(); } public function processActions($originId = false) { $actionFeedQuery = wpFluent()->table($this->table) ->where('status', 'pending'); if($originId) { $actionFeedQuery = $actionFeedQuery->where('origin_id', $originId); } $actionFeeds = $actionFeedQuery->get(); if(!$actionFeeds) { return; } $formCache = []; $submissionCache = []; $entryCache = []; foreach ($actionFeeds as $actionFeed) { $action = $actionFeed->action; $feed = maybe_unserialize($actionFeed->data); $feed['scheduled_action_id'] = $actionFeed->id; if(isset($submissionCache[$actionFeed->origin_id])) { $submission = $submissionCache[$actionFeed->origin_id]; } else { $submission = wpFluent()->table('fluentform_submissions')->find($actionFeed->origin_id); $submissionCache[$submission->id] = $submission; } if(isset($formCache[$submission->form_id])) { $form = $formCache[$submission->form_id]; } else { $form = wpFluent()->table('fluentform_forms')->find($submission->form_id); $formCache[$form->id] = $form; } if(isset($entryCache[$submission->id])) { $entry = $entryCache[$submission->id]; } else { $entry = $this->getEntry($submission, $form); $entryCache[$submission->id] = $entry; } $formData = json_decode($submission->response, true); wpFluent()->table($this->table) ->where('id', $actionFeed->id) ->update([ 'status' => 'processing', 'retry_count' => $actionFeed->retry_count + 1, 'updated_at' => current_time('mysql') ]); do_action($action, $feed, $formData, $entry, $form); } if($originId && !empty($form) && !empty($submission)) { /* This hook is deprecated and will be removed soon */ do_action('fluentform_global_notify_completed', $submission->id, $form); do_action('fluentform/global_notify_completed', $submission->id, $form); } } private function getEntry($submission, $form) { $formInputs = FormFieldsParser::getEntryInputs($form, ['admin_label', 'raw']); return FormDataParser::parseFormEntry($submission, $form, $formInputs); } public function process($queue) { if (is_numeric($queue)) { $queue = wpFluent()->table($this->table)->where('status', 'pending')->find($queue); } if (!$queue || empty($queue->action)) { return; } $action = $queue->action; $feed = maybe_unserialize($queue->data); $feed['scheduled_action_id'] = $queue->id; if (isset(static::$submissionCache[$queue->origin_id])) { $submission = static::$submissionCache[$queue->origin_id]; } else { $submission = wpFluent()->table('fluentform_submissions')->find($queue->origin_id); static::$submissionCache[$submission->id] = $submission; } if (isset(static::$formCache[$submission->form_id])) { $form = static::$formCache[$submission->form_id]; } else { $form = wpFluent()->table('fluentform_forms')->find($submission->form_id); static::$formCache[$form->id] = $form; } if (isset(static::$entryCache[$submission->id])) { $entry = static::$entryCache[$submission->id]; } else { $entry = $this->getEntry($submission, $form); static::$entryCache[$submission->id] = $entry; } $formData = json_decode($submission->response, true); wpFluent()->table($this->table) ->where('id', $queue->id) ->update([ 'status' => 'processing', 'retry_count' => $queue->retry_count + 1, 'updated_at' => current_time('mysql') ]); do_action($action, $feed, $formData, $entry, $form); $this->maybeFinished($submission->id, $form); } public function maybeFinished($originId, $form) { $pendingFeeds = wpFluent()->table($this->table)->where([ 'status' => 'pending', 'origin_id' => $originId ])->get(); if (!$pendingFeeds) { do_action('fluentform/global_notify_completed', $originId, $form); } } } app/Services/ConditionAssesor.php000064400000010770147600120010013102 0ustar00': return $inputValue > $conditional['value']; break; case '<': return $inputValue < $conditional['value']; break; case '>=': return $inputValue >= $conditional['value']; break; case '<=': return $inputValue <= $conditional['value']; break; case 'startsWith': return Str::startsWith($inputValue, $conditional['value']); break; case 'endsWith': return Str::endsWith($inputValue, $conditional['value']); break; case 'contains': return Str::contains($inputValue, $conditional['value']); break; case 'doNotContains': return !Str::contains($inputValue, $conditional['value']); break; case 'length_equal': if(is_array($inputValue)) { return count($inputValue) == $conditional['value']; } $inputValue = strval($inputValue); return strlen($inputValue) == $conditional['value']; break; case 'length_less_than': if(is_array($inputValue)) { return count($inputValue) < $conditional['value']; } $inputValue = strval($inputValue); return strlen($inputValue) < $conditional['value']; break; case 'length_greater_than': if(is_array($inputValue)) { return count($inputValue) > $conditional['value']; } $inputValue = strval($inputValue); return strlen($inputValue) > $conditional['value']; break; case 'test_regex': if(is_array($inputValue)) { $inputValue = implode(' ', $inputValue); } $result = preg_match('/'.$conditional['value'].'/', $inputValue); return !!$result; break; } } return false; } } app/Services/GlobalSearchService.php000064400000061140147600120010013460 0ustar00 'Forms', "icon" => '', "path" => '?page=fluent_forms', "tags" => ['all', 'forms', 'dashboard'] ], [ "title" => 'Forms -> New Form', "icon" => '', "path" => '?page=fluent_forms#add=1', "tags" => ['new forms', 'add forms', 'create'] ], [ "title" => 'Entries', "icon" => '', "path" => '?page=fluent_forms_all_entries', "tags" => ['all', 'entries'] ], [ "title" => 'Support', "icon" => '', "path" => '?page=fluent_forms_docs', "tags" => ['support', 'modules', 'docs'] ], [ "title" => 'Integrations -> Modules', "icon" => '', "path" => '?page=fluent_forms_add_ons', "tags" => ['all', 'integrations', 'modules'] ], [ "title" => 'Global Settings > General', "icon" => '', "path" => '?page=fluent_forms_settings#settings', "tags" => [ 'global', 'settings', 'general', 'layout', 'email summaries', 'failure', 'email notification', 'miscellaneous' ] ], [ "title" => 'Global Settings > Security > rCaptcha', "icon" => '', "path" => '?page=fluent_forms_settings#re_captcha', "tags" => ['global', 'security', 'recaptcha'] ], [ "title" => 'Global Settings > Security > hCaptcha', "icon" => '', "path" => '?page=fluent_forms_settings#h_captcha', "tags" => ['global', 'security', 'hcaptcha'] ], [ "title" => 'Global Settings > Security > Turnstile', "icon" => '', "path" => '?page=fluent_forms_settings#turnstile', "tags" => ['global', 'security', 'turnstile'] ], [ "title" => 'Global Settings > Managers', "icon" => '', "path" => '?page=fluent_forms_settings#managers', "tags" => ['global', 'permissions', 'managers'] ], [ "title" => 'Global Settings > Configure Integration -> Mailchimp', "icon" => '', "path" => '?page=fluent_forms_settings#general-mailchimp-settings', "tags" => ['global integrations', 'mailchimp'] ], [ "title" => 'Tools > Import forms', "icon" => '', "path" => '?page=fluent_forms_transfer#importforms', "tags" => ['tools', 'migration', 'transfer', 'import'] ], [ "title" => 'Tools > Export Forms', "icon" => '', "path" => '?page=fluent_forms_transfer#exportsforms', "tags" => ['tools', 'migration', 'transfer', 'export'] ], [ "title" => 'Tools > Migrator', "icon" => '', "path" => '?page=fluent_forms_transfer#migrator', "tags" => ['tools', 'migration', 'transfer', 'migrator'] ], [ "title" => 'Tools > Activity Logs', "icon" => '', "path" => '?page=fluent_forms_transfer#activitylogs', "tags" => ['tools', 'activity logs'] ], [ "title" => 'Tools > API Logs', "icon" => '', "path" => '?page=fluent_forms_transfer#apilogs', "tags" => ['tools', 'api logs'] ], ]; if (defined('FLUENTFORMPRO')) { $links = array_merge($links, [ [ "title" => 'Global Settings > Double Opt-in', "icon" => '', "path" => '?page=fluent_forms_settings#double_optin_settings', "tags" => ['global', 'security', 'double opt-in', 'optin'] ], [ "title" => 'Payments', "icon" => '', "path" => '?page=fluent_forms_payment_entries', "tags" => ['all', 'payments', 'entries'] ], [ "title" => 'Global Settings > Payment > Settings', "icon" => '', "path" => '?page=fluent_forms_settings&component=payment_settings%2F#/', "tags" => ['global', 'settings', 'payment'] ], [ "title" => 'Global Settings > Payment > Coupons', "icon" => '', "path" => '?page=fluent_forms_settings&component=payment_settings%2F#/coupons', "tags" => ['global', 'settings', 'payment', 'coupons'] ], [ "title" => 'Global Settings > Payment > Payment Methods', "icon" => '', "path" => '?page=fluent_forms_settings&component=payment_settings%2F#/payment_methods', "tags" => ['global', 'settings', 'payment', 'method', 'stripe'] ], [ "title" => 'Global Settings > License', "icon" => '', "path" => '?page=fluent_forms_settings&component=license_page', "tags" => ['global', 'license'] ], [ "title" => 'Global Settings > Configure Integration -> Google Map Integration', "icon" => '', "path" => '?page=fluent_forms_settings#google_maps_autocomplete', "tags" => ['global', 'integrations', 'google map integration'] ], [ "title" => 'Global Settings > Configure Integration -> Activecampaign', "icon" => '', "path" => '?page=fluent_forms_settings#general-activecampaign-settings', "tags" => ['global integrations', 'activecampaign'] ], [ "title" => 'Global Settings > Configure Integration -> Campaign Monitor', "icon" => '', "path" => '?page=fluent_forms_settings#general-campaign_monitor-settings', "tags" => ['global integrations', 'campaign monitor'] ], [ "title" => 'Global Settings > Configure Integration -> Constatant Contact', "icon" => '', "path" => '?page=fluent_forms_settings#general-constatantcontact-settings', "tags" => ['global integrations', 'constatantcontact', 'constatant contact'] ], [ "title" => 'Global Settings > Configure Integration -> ConvertKit', "icon" => '', "path" => '?page=fluent_forms_settings#general-convertkit-settings', "tags" => ['global integrations', 'convertkit'] ], [ "title" => 'Global Settings > Configure Integration -> GetResponse', "icon" => '', "path" => '?page=fluent_forms_settings#general-getresponse-settings', "tags" => ['global integrations', 'getresponse'] ], [ "title" => 'Global Settings > Configure Integration -> Hubspot', "icon" => '', "path" => '?page=fluent_forms_settings#general-hubspot-settings', "tags" => ['global integrations', 'hubspot'] ], [ "title" => 'Global Settings > Configure Integration -> iContact', "icon" => '', "path" => '?page=fluent_forms_settings#general-icontact-settings', "tags" => ['global integrations', 'icontact'] ], [ "title" => 'Global Settings > Configure Integration -> MooSend', "icon" => '', "path" => '?page=fluent_forms_settings#general-moosend-settings', "tags" => ['global integrations', 'moosend'] ], [ "title" => 'Global Settings > Configure Integration -> Platformly', "icon" => '', "path" => '?page=fluent_forms_settings#general-platformly-settings', "tags" => ['global integrations', 'platformly'] ], [ "title" => 'Global Settings > Configure Integration -> SendFox', "icon" => '', "path" => '?page=fluent_forms_settings#general-sendfox-settings', "tags" => ['global integrations', 'sendfox'] ], [ "title" => 'Global Settings > Configure Integration -> MailerLite', "icon" => '', "path" => '?page=fluent_forms_settings#general-mailerlite-settings', "tags" => ['global integrations', 'mailerlite'] ], [ "title" => 'Global Settings > Configure Integration -> MooSend', "icon" => '', "path" => '?page=fluent_forms_settings#general-moosend-settings', "tags" => ['global integrations', 'moosend'] ], [ "title" => 'Global Settings > Configure Integration -> Twilio', "icon" => '', "path" => '?page=fluent_forms_settings#general-sms_notification-settings', "tags" => ['global integrations', 'sms notification', 'twilio'] ], [ "title" => 'Global Settings > Configure Integration -> GetGist', "icon" => '', "path" => '?page=fluent_forms_settings#general-getgist-settings', "tags" => ['global integrations', 'getgist'] ], [ "title" => 'Global Settings > Configure Integration -> Google Sheet', "icon" => '', "path" => '?page=fluent_forms_settings#general-google_sheet-settings', "tags" => ['global integrations', 'google sheet'] ], [ "title" => 'Global Settings > Configure Integration -> Trello', "icon" => '', "path" => '?page=fluent_forms_settings#general-trello-settings', "tags" => ['global integrations', 'trello'] ], [ "title" => 'Global Settings > Configure Integration -> Drip', "icon" => '', "path" => '?page=fluent_forms_settings#general-drip-settings', "tags" => ['global integrations', 'drip'] ], [ "title" => 'Global Settings > Configure Integration -> Brevo (formerly SendInBlue)', "icon" => '', "path" => '?page=fluent_forms_settings#general-sendinblue-settings', "tags" => ['global integrations', 'sendinblue', 'brevo'] ], [ "title" => 'Global Settings > Configure Integration -> Automizy', "icon" => '', "path" => '?page=fluent_forms_settings#general-automizy-settings', "tags" => ['global integrations', 'automizy'] ], [ "title" => 'Global Settings > Configure Integration -> Telegram Messenger', "icon" => '', "path" => '?page=fluent_forms_settings#general-telegram-settings', "tags" => ['global integrations', 'telegram messenger'] ], [ "title" => 'Global Settings > Configure Integration -> Salesflare', "icon" => '', "path" => '?page=fluent_forms_settings#general-salesflare-settings', "tags" => ['global integrations', 'salesflare'] ], [ "title" => 'Global Settings > Configure Integration -> CleverReach', "icon" => '', "path" => '?page=fluent_forms_settings#general-cleverreach-settings', "tags" => ['global integrations', 'cleverreach'] ], [ "title" => 'Global Settings > Configure Integration -> ClickSend', "icon" => '', "path" => '?page=fluent_forms_settings#general-clicksend_sms_notification-settings', "tags" => ['global integrations', 'clicksend', 'sms_notification'] ], [ "title" => 'Global Settings > Configure Integration -> Zoho CRM', "icon" => '', "path" => '?page=fluent_forms_settings#general-zohocrm-settings', "tags" => ['global integrations', 'zoho crm'] ], [ "title" => 'Global Settings > Configure Integration -> Pipedrive', "icon" => '', "path" => '?page=fluent_forms_settings#general-pipedrive-settings', "tags" => ['global integrations', 'pipedrive'] ], [ "title" => 'Global Settings > Configure Integration -> Salesforce', "icon" => '', "path" => '?page=fluent_forms_settings#general-salesforce-settings', "tags" => ['global integrations', 'salesforce'] ], [ "title" => 'Global Settings > Configure Integration -> Amocrm', "icon" => '', "path" => '?page=fluent_forms_settings#general-amocrm-settings', "tags" => ['global integrations', 'amocrm'] ], [ "title" => 'Global Settings > Configure Integration -> OnePageCrm', "icon" => '', "path" => '?page=fluent_forms_settings#general-onepagecrm-settings', "tags" => ['global integrations', 'onepagecrm'] ], [ "title" => 'Global Settings > Configure Integration -> Airtable', "icon" => '', "path" => '?page=fluent_forms_settings#general-airtable-settings', "tags" => ['global integrations', 'airtable'] ], [ "title" => 'Global Settings > Configure Integration -> Mailjet', "icon" => '', "path" => '?page=fluent_forms_settings#general-mailjet-settings', "tags" => ['global integrations', 'mailjet'] ], [ "title" => 'Global Settings > Configure Integration -> Insightly', "icon" => '', "path" => '?page=fluent_forms_settings#general-insightly-settings', "tags" => ['global integrations', 'insightly'] ] ]); } if (defined('FLUENTFORM_PDF_VERSION')) { $links = array_merge($links, [ [ "title" => 'Global Settings > Configure Integration -> PDF Settings', "icon" => '', "path" => '?page=fluent_forms_settings#pdf_settings', "tags" => ['global integrations', 'pdf settings'] ], [ "title" => 'Integrations -> Fluent Forms PDF', "icon" => '', "path" => '?page=fluent_forms_add_ons&sub_page=fluentform_pdf', "tags" => ['pdf', 'modules'] ] ]); } $forms = Form::where('status', 'published') ->select(['id', 'title', 'type'])->get(); if ($forms) { foreach ($forms as $form) { $formSpecificLinks = [ [ "title" => "Forms > $form->title > Editor", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=editor", "tags" => ['editor', "$form->id", $form->title] ], [ "title" => "Forms > $form->title > Entries", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=entries#/?sort_by=DESC&type=&page=1", "tags" => ['entries', "$form->id", $form->title] ], [ "title" => "Forms > $form->title > Entries > Visual Reports", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=entries#/visual_reports", "tags" => ['entries', 'visual reports', "$form->id", $form->title] ], [ "title" => "Forms > $form->title > Settings & Integrations > Settings", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=settings&sub_route=form_settings#/", "tags" => ['settings and integrations', "$form->id", $form->title] ], [ "title" => "Forms > $form->title > Settings & Integrations > Slack", "icon" => '', "path" => "?page=fluent_forms&form_id=2&route=settings&sub_route=form_settings#/slack", "tags" => ['slack', "$form->id", $form->title] ], [ "title" => "Forms > $form->title > Settings & Integrations > Custom CSS/JS", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=settings&sub_route=form_settings#/custom-css-js", "tags" => ['custom', 'CSS/JS', 'css javascript', "$form->id", $form->title] ], [ "title" => "Forms > $form->title > Settings & Integrations > Configure Integrations", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=settings&sub_route=form_settings#/all-integrations", "tags" => ['configure integrations', "$form->id", $form->title] ], [ "title" => "Forms > $form->title > Preview", "icon" => '', "type" => 'preview', "path" => "?fluent_forms_pages=1&design_mode=1&preview_id=$form->id#ff_preview", "tags" => ['preview ', "$form->id", $form->title] ] ]; if (defined('FLUENTFORMPRO')) { $formSpecificLinks = array_merge($formSpecificLinks, [ [ "title" => "Forms > $form->title > Settings & Integrations > Landing Page", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=settings&sub_route=form_settings#/landing_pages", "tags" => ['landing pages', "$form->id", $form->title] ], [ "title" => "Forms > $form->title > Settings & Integrations > Conditional Confirmations", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=settings&sub_route=form_settings#/conditional-confirmations", "tags" => ["conditional confirmations", "$form->id", $form->title] ], [ "title" => "Forms > $form->title > Settings & Integrations > Email Notifications", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=settings&sub_route=form_settings#/email-settings", "tags" => ["email notifications", "$form->id", $form->title] ], [ "title" => "Forms > $form->title > Settings & Integrations > Zapier", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=settings&sub_route=form_settings#/zapier", "tags" => ['zapier', "$form->id", $form->title] ], [ "title" => "Forms > $form->title > Settings & Integrations > Webhook", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=settings&sub_route=form_settings#/webhook", "tags" => ['webhook', "$form->id", $form->title] ], [ "title" => "Forms > $form->title > Settings & Integrations > Quiz Settings", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=settings&sub_route=form_settings#/quiz_settings", "tags" => ["quiz", "$form->id", $form->title] ] ]); } if (defined('FLUENTFORM_PDF_VERSION')) { $formSpecificLinks[] = [ "title" => "Forms > $form->title > Settings & Integrations > PDF Feeds", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=settings&sub_route=form_settings#/pdf-feeds", "tags" => ['pdf feeds', "$form->id", $form->title] ]; } if (defined('FLUENTFORMPRO') && 'post' === $form->type) { $formSpecificLinks[] = [ "title" => "Forms > $form->title > Settings & Integrations > Post Feeds", "icon" => '', "path" => "?page=fluent_forms&form_id=104&route=settings&sub_route=form_settings#/post-feeds", "tags" => ['post feeds', "$form->id", $form->title] ]; } if (Helper::isConversionForm($form->id)) { $formSpecificLinks[] = [ "title" => "Forms > $form->title > Design", "icon" => '', "path" => "?page=fluent_forms&form_id=$form->id&route=conversational_design", "tags" => ['conversational design', "$form->id", $form->title] ]; $formSpecificLinks[] = [ "title" => "Forms > $form->title > Conversational Preview", "icon" => '', "type" => 'preview', "path" => "?fluent-form=$form->id", "tags" => ['preview', 'conversational', "$form->id", $form->title] ]; } $links = array_merge($links, $formSpecificLinks); } } return [ "links" => apply_filters('fluentform/global_search_links', $links), "admin_url" => get_admin_url(null, 'admin.php'), "site_url" => site_url(), ]; } } app/Views/admin/addons/pdf_promo.php000064400000003367147600120010013457 0ustar00 app/Views/admin/addons/list.php000064400000000137147600120010012435 0ustar00
    app/Views/admin/addons/index.php000064400000005454147600120010012600 0ustar00
    • $menu_title): ?>
    app/Views/admin/docs/index.php000064400000034770147600120010012263 0ustar00 app/Views/admin/form/entries.php000064400000000563147600120010012631 0ustar00
    app/Views/admin/form/form_wrapper.php000064400000012762147600120010013667 0ustar00
    title); ?>
    id)) $extra_menu_class = "partial_entries_form_editor"; ?>
      $menu_item): ?>
    • "> ">
    app/Views/admin/form/settings.php000064400000001425147600120010013016 0ustar00
    app/Views/admin/form/index.php000064400000000032147600120010012256 0ustar00
    app/Views/admin/form/settings_wrapper.php000064400000011375147600120010014563 0ustar00 app/Views/admin/globalSettings/settings.php000064400000002120147600120010015025 0ustar00
    app/Views/admin/globalSettings/menu.php000064400000051516147600120010014146 0ustar00 app/Views/admin/notices/info.php000064400000002146147600120010012613 0ustar00 app/Views/admin/smtp/index.php000064400000013161147600120010012305 0ustar00

    .

    • Amazon SES
    • Mailgun
    • SendGrid
    • Brevo (formerly SendInBlue)
    • PepiPost
    • SparkPost
    app/Views/admin/tools/index.php000064400000012471147600120010012465 0ustar00 app/Views/admin/global_menu.php000064400000013704147600120010012502 0ustar00 app/Views/admin/index.php000064400000000032147600120010011313 0ustar00 app/Views/admin/menu-old.php000064400000003411147600120010011730 0ustar00 app/Views/admin/all_entries.php000064400000004117147600120010012515 0ustar00
    '; foreach ($notices as $noticeKey => $notice) : ?>
    '; }app/Views/admin/all_forms.php000064400000003762147600120010012177 0ustar00
    '; foreach ($notices as $noticeKey => $notice) : ?>
    '; }app/Views/admin/no_permission.php000064400000002030147600120010013070 0ustar00
    app/Views/email/failedIntegration/body.php000064400000030676147600120010014611 0ustar00 Failed Integration Summary
    10) { break; } ?>
    integration_name ?> form->title ?> note ?>
    10) { $viewAllApiLogs = sprintf( __('You have more error logs, please click %1$s%2$s%3$s to review.', 'fluentform'), '', __('here', 'fluentform'), '' ); $viewAllApiLogs = apply_filters('fluentform/email_summary_body_view_api_logs', $viewAllApiLogs); ?>
    app/Views/email/report/body.php000064400000034755147600120010012476 0ustar00 <?php _e('Email Summary', 'fluentform'); ?>

    title); ?> total); ?>

    title); ?> readable_amount); ?>
    ', get_bloginfo('name'), '' ); $generateText = apply_filters_deprecated( 'fluentform_email_summary_body_text', [ $generateText, $submissions ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_summary_body_text', 'Use fluentform/email_summary_body_text instead of fluentform_email_summary_body_text.' ); $generateText = apply_filters('fluentform/email_summary_body_text', $generateText, $submissions); ?> .
    app/Views/email/template/header.php000064400000006167147600120010013265 0ustar00 <?php echo get_bloginfo( 'name', 'display' ); ?> ="0" marginwidth="0" topmargin="0" marginheight="0" offset="0">
    ' . get_bloginfo( 'name', 'display' ) . '

    '; } ?>

    app/Views/email/template/footer.php000064400000003014147600120010013317 0ustar00FluentForm.', $form, $notification ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/email_template_footer_credit', 'Use fluentform/email_template_footer_credit instead of fluentform_email_template_footer_credit.' ); $poweredBy = apply_filters('fluentform/email_template_footer_credit',$poweredBy, $form, $notification); if(defined('FLUENTFORMPRO')) { $poweredBy = ''; } ?>
    app/Views/email/template/styles.php000064400000011266147600120010013354 0ustar00 '#f6f6f6', 'body_background_color' => '#ffffff', 'base_color' => '#444444', 'text_color' => '#444444' ); $settings = apply_filters('fluentform/email_template_colors', $colors); // Load colours $bg = $settings['background_color']; $body = $settings['body_background_color']; $base = $settings['base_color']; $base_text = '#202020'; $text = $settings['text_color']; $text_lighter_20 = '#555555'; // !important; is a gmail hack to prevent styles being stripped if it doesn't like something. ?> * {-webkit-text-size-adjust: none;} body { background-color: ; -webkit-text-size-adjust: none; font-family: sans-serif; -webkit-font-smoothing: antialiased; font-size: 14px; line-height: 1.4; margin: 0; padding: 0; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; width: 100%; } #wrapper { margin: 0; background-color: ; padding: 40px 0 0 0; -webkit-text-size-adjust: none !important; width: 100%; } .button { background-color:#4CAF50; border-radius:3px; color:#ffffff; display:inline-block; font-family:sans-serif; font-size:13px; font-weight:bold; line-height: 150%; text-align:center; text-decoration:none; -webkit-text-size-adjust:none; padding: 8px 20px; } .button.sm { padding: 5px 10px; } .button.green { background-color: #4CAF50; } .button.orange { background-color: #FF9800; } .button.blue { background-color: #2196F3; } #template_container { background-color: ; border: 1px solid #eee; margin-bottom: 25px; } #template_header { color: #444; border-bottom: 0; font-weight: bold; line-height: 100%; vertical-align: middle; font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; } #template_footer td { padding: 0; } #template_footer #credit { border:0; color: #999; font-family: Arial; font-size:12px; line-height:125%; text-align:center; padding: 0 48px 48px 48px; } #body_content { background-color: ; } #body_content table td { padding: 20px 20px; } #body_content table td td { padding: 12px; } #body_content table td th { padding: 12px; } #body_content p { margin: 0 0 20px; } #body_content_inner { color: ; font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; font-size: 14px; line-height: 170%; text-align: ; } .td { color: ; border: none; } .text { color: ; font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; } #body_content_inner tr.field-label th { padding: 6px 12px; background-color: #f8f8f8; } #body_content_inner tr.field-value td { padding: 6px 12px 12px 12px; white-space: pre-line; } .link { color: ; } #header_wrapper { padding: 36px 48px 0; display: block; } h1 { font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; font-size: 30px; font-weight: 300; line-height: 150%; margin: 0; text-align: ; -webkit-font-smoothing: antialiased; } h2 { color: ; display: block; font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; font-size: 18px; font-weight: bold; line-height: 130%; margin: .5em 0; text-align: ; } h3 { color: ; display: block; font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; font-size: 16px; font-weight: bold; line-height: 130%; margin: .5em 0; text-align: ; } #body_content_inner h1 { margin: 0 0 .5em 0; } #body_content_inner p + h1, #body_content_inner p + h2, #body_content_inner p + h3, #body_content_inner p + h4 { margin-top: 2em; } a { color: ; font-weight: normal; text-decoration: underline; } img { border: none; display: inline; font-size: 14px; font-weight: bold; height: auto; line-height: 100%; outline: none; text-decoration: none; text-transform: capitalize; } .fluent_credit span a { text-decoration: none; } .aligncenter { text-align: center !important; } .alignright { text-align: right !important; } img.aligncenter { text-align: center !important; display: block !important; margin: 0 auto !important; } /* CSS styles for iOS devices - compensates for overly small font size on ios devices */ @media screen and (max-device-width: 768px) and (-webkit-min-device-pixel-ratio: 2) { *{font-size:28px;} *{line-height:1.3em;} } app/Views/frameless/header.php000064400000000000147600120010012320 0ustar00app/Views/frameless/show_preview.php000064400000025407147600120010013633 0ustar00 > <?php esc_html_e('Preview Form', 'fluentform') ?>
    Design Mode
    id) .' - '. esc_attr($form->title); ?>
    [fluentform id=""]

    Other Features
    getPremiumAddOns(); ?>

    [fluentform id='']

    app/Views/frameless/footer.php000064400000000000147600120010012366 0ustar00app/Views/frameless/edit-entry.php000064400000001216147600120010013166 0ustar00 > <?php esc_html_e('Preview Form', 'fluentform') ?>
    app/Views/frameless/body.php000064400000000000147600120010012025 0ustar00app/Views/public/conversational-form-inline.php000064400000001041147600120010015637 0ustar00
    app/Views/public/preview_form.php000064400000000726147600120010013110 0ustar00

    title; ?>

    id.'"]'); ?>
    app/Views/public/conversational-form.php000064400000012343147600120010014372 0ustar00 > <?php echo esc_html($meta['title']); ?> ' rel="stylesheet" type="text/css"> image_preloads as $imgSrc): ?>

    app/index.php000064400000000032147600120010007126 0ustar00getComposer()->getConfig()->get('vendor-dir'); $composerJson = json_decode(file_get_contents($vendorDir . '/../composer.json'), true); $namespace = $composerJson['extra']['wpfluent']['namespace']['current']; if (!$namespace) { throw new InvalidArgumentException("Namespace not set in composer.json file."); } $itr = new RecursiveIteratorIterator(new RecursiveDirectoryIterator( $vendorDir.'/wpfluent/framework/src/', RecursiveDirectoryIterator::SKIP_DOTS ), RecursiveIteratorIterator::SELF_FIRST); foreach ($itr as $file) { if ($file->isDir()) { continue; } $fileName = $file->getPathname(); $content = file_get_contents($fileName); $content = str_replace( 'WPFluent\\', $namespace . '\\Framework\\', $content ); file_put_contents($fileName, $content); } } } assets/css/fluent-forms-public-rtl.css000064400000071601147600120010014040 0ustar00.fluentform *{box-sizing:border-box}.fluentform .clearfix:after,.fluentform .clearfix:before,.fluentform .ff-el-group:after,.fluentform .ff-el-group:before,.fluentform .ff-el-repeat .ff-el-input--content:after,.fluentform .ff-el-repeat .ff-el-input--content:before,.fluentform .ff-step-body:after,.fluentform .ff-step-body:before{content:" ";display:table}.fluentform .clearfix:after,.fluentform .ff-el-group:after,.fluentform .ff-el-repeat .ff-el-input--content:after,.fluentform .ff-step-body:after{clear:both}@media (min-width:768px){.frm-fluent-form .ff-t-container{display:flex;gap:15px;width:100%}.frm-fluent-form .ff-t-container.ff_cond_v{display:flex!important}.frm-fluent-form .ff-t-container.mobile{display:block!important}.frm-fluent-form .ff-t-cell{display:flex;flex-direction:column;vertical-align:inherit;width:100%}.frm-fluent-form .ff-t-cell:first-of-type{padding-right:0}.frm-fluent-form .ff-t-cell:last-of-type{flex-grow:1;padding-left:0}.frm-fluent-form .ff-t-cell .ff_submit_btn_wrapper_custom{align-items:flex-end;display:flex;margin:auto 0 0}.frm-fluent-form .ff-t-cell .ff_submit_btn_wrapper_custom.ff-text-center{justify-content:center}.frm-fluent-form .ff-t-cell .ff_submit_btn_wrapper_custom.ff-text-right{justify-content:flex-end}.frm-fluent-form .ff-t-cell .ff_submit_btn_wrapper_custom button{margin-bottom:20px}}@media (max-width:768px){.ff-t-cell{margin-right:0!important}}.fluentform .ff-el-group{margin-bottom:20px}.fluentform .ff-el-group.ff-el-form-top .ff-el-input--label{display:block;float:none;text-align:right}.fluentform .ff-el-group.ff-el-form-top .ff-el-input--content{margin-bottom:0;margin-right:auto}@media (min-width:481px){.fluentform .ff-el-group.ff-el-form-left .ff-el-input--label{text-align:right}.fluentform .ff-el-group.ff-el-form-right .ff-el-input--label{text-align:left}}.fluentform .ff-el-input--label{display:inline-block;margin-bottom:5px;position:relative}.fluentform .ff-el-input--label.ff-el-is-required.asterisk-left label:before{color:var(--fluentform-danger);content:"* ";margin-left:3px}.fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label:after{color:var(--fluentform-danger);content:" *";margin-right:3px}.fluentform .ff-el-form-control{display:block;width:100%}.fluentform .ff-el-ratings{--fill-inactive:#d4d4d4;--fill-active:#ffb100;display:inline-block;line-height:40px}.fluentform .ff-el-ratings input[type=radio]{display:none;height:0!important;visibility:hidden!important;width:0!important}.fluentform .ff-el-ratings svg{fill:var(--fill-inactive);height:22px;transition:all .3s;vertical-align:middle;width:22px}.fluentform .ff-el-ratings svg.scale{transition:all .15s}.fluentform .ff-el-ratings label{display:inherit;margin-left:3px}.fluentform .ff-el-ratings label.active svg{fill:#ffb100;fill:var(--fill-active)}.fluentform .ff-el-ratings label:hover{cursor:pointer}.fluentform .ff-el-ratings label:hover svg{transform:scale(1.1)}.fluentform .ff-el-ratings label:hover svg.scalling{transform:scale(1.2)}.fluentform .ff-el-repeat .ff-el-form-control{margin-bottom:10px;width:100%}.fluentform .ff-el-repeat .ff-t-cell{padding:0 10px;width:100%}.fluentform .ff-el-repeat .ff-t-cell:first-child{padding-right:0}.fluentform .ff-el-repeat .ff-t-cell:last-child{padding-left:0}.fluentform .ff-el-repeat .ff-t-container{display:flex}.fluentform .ff-el-repeat-buttons-list span{cursor:pointer}@media (min-width:481px){.fluentform .ff-el-form-left .ff-el-input--label,.fluentform .ff-el-form-right .ff-el-input--label{float:right;margin-bottom:0;padding:10px 0 0 15px;width:180px}.fluentform .ff-el-form-left .ff-el-input--content,.fluentform .ff-el-form-right .ff-el-input--content{margin-right:180px}.fluentform .ff-el-form-left .ff-t-container .ff-el-input--label,.fluentform .ff-el-form-right .ff-t-container .ff-el-input--label{float:none;margin-bottom:5px;width:auto}.fluentform .ff-el-form-left .ff-t-container .ff-el-input--content,.fluentform .ff-el-form-right .ff-t-container .ff-el-input--content{margin-right:auto}}.fluentform .ff-el-form-right .ff-el-input--label{text-align:left}.fluentform .ff-el-is-error .text-danger{font-size:12px;margin-top:4px}.fluentform .ff-el-is-error .ff-el-form-check-label,.fluentform .ff-el-is-error .ff-el-form-check-label a{color:var(--fluentform-danger)}.fluentform .ff-el-is-error .ff-el-form-control{border-color:var(--fluentform-danger)}.fluentform .ff-el-tooltip{cursor:pointer;display:inline-block;margin-right:2px;position:relative;vertical-align:middle;z-index:2}.fluentform .ff-el-tooltip:hover{color:#000}.fluentform .ff-el-tooltip svg{fill:var(--fluentform-primary)}.fluentform .ff-el-help-message{color:var(--fluentform-secondary);font-size:12px;font-style:italic;margin-top:5px}.fluentform .ff-el-help-message.ff_ahm{margin-bottom:5px;margin-top:-3px}.fluentform .ff-el-progress{background-color:#e9ecef;border-radius:.25rem;font-size:.75rem;height:1.3rem;line-height:1.2rem;overflow:hidden}.fluentform .ff-el-progress-bar{background-color:var(--fluentform-primary);color:#fff;height:inherit;text-align:left;transition:width .3s;width:0}.fluentform .ff-el-progress-bar span{display:inline-block;padding:0 0 0 5px}.fluentform .ff-el-progress-status{font-size:.9rem;margin-bottom:5px}.fluentform .ff-el-progress-title{border-bottom:2px solid #000;display:inline-block;font-weight:600;list-style-type:none;margin:8px 0 0;padding-right:15px;padding-left:15px}.fluentform .ff-el-progress-title li{display:none}.fluentform .ff-float-right{float:left}.fluentform .ff-chat-gpt-loader-svg{border:1px solid #ced4da;box-shadow:0 1px 5px rgba(0,0,0,.1);margin-top:10px;padding:15px;position:relative}.fluentform .ff-hidden{display:none!important}.fluentform .ff-step-t-container{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.fluentform .ff-step-t-container .ff-t-cell{width:auto}.fluentform .ff-step-t-container.ff-inner_submit_container .ff-el-group{margin-bottom:0}.fluentform .ff-step-container{overflow:hidden}.fluentform .ff-step-header{margin-bottom:20px}.fluentform .ff-step-titles{counter-reset:step;display:table;margin:0 0 20px;overflow:hidden;padding:0;position:relative;table-layout:fixed;text-align:center;width:100%}.fluentform .ff-step-titles-navs{cursor:pointer}.fluentform .ff-step-titles li{color:#333;display:table-cell;font-size:12px;list-style-type:none;padding:0 10px;position:relative;vertical-align:top;width:auto}.fluentform .ff-step-titles li.ff_active,.fluentform .ff-step-titles li.ff_completed{color:#007bff}.fluentform .ff-step-titles li.ff_active:before,.fluentform .ff-step-titles li.ff_completed:before{background:#007bff;border:1px solid transparent;color:#fff}.fluentform .ff-step-titles li.ff_active:after,.fluentform .ff-step-titles li.ff_completed:after{background:#007bff}.fluentform .ff-step-titles li.ff_active:after{left:0}.fluentform .ff-step-titles li:before{background:#fff;border:1px solid;border-radius:3px;color:#333;content:counter(step);counter-increment:step;display:block;font-size:10px;line-height:20px;margin:0 auto 5px;position:relative;vertical-align:top;width:20px;z-index:10}.fluentform .ff-step-titles li:after{background:#000;content:"";height:2px;right:-50%;position:absolute;top:9px;width:100%;z-index:1}.fluentform .ff-step-titles li:first-child{padding-right:0}.fluentform .ff-step-titles li:first-child:after{right:50%}.fluentform .ff-step-titles li:last-child{padding-left:0}.fluentform .ff-step-titles li:last-child:after{right:-50%}.fluentform .ff-step-body{right:0;margin-bottom:15px;position:relative;top:0}.fluentform .ff-upload-progress{margin:10px 0}.fluentform .ff-upload-progress-inline{border-radius:3px;height:6px;margin:4px 0;position:relative}.fluentform .ff-upload-preview{border:1px solid #ced4da;border-radius:3px;margin-top:5px}.fluentform .ff-upload-preview:first-child{margin-top:0}.fluentform .ff-upload-preview-img{background-position:50%;background-repeat:no-repeat;background-size:cover;height:70px;width:70px}.fluentform .ff-upload-container-small-column-image{display:flex;flex-wrap:wrap-reverse;justify-content:center;text-align:center}.fluentform .ff-upload-details,.fluentform .ff-upload-preview{zoom:1;overflow:hidden}.fluentform .ff-upload-details,.fluentform .ff-upload-thumb{display:table-cell;vertical-align:middle}.fluentform .ff-upload-thumb{background-color:#eee}.fluentform .ff-upload-details{border-right:1px solid #ebeef0;padding:0 10px;position:relative;width:10000px}.fluentform .ff-upload-details .ff-inline-block,.fluentform .ff-upload-details .ff-upload-error{font-size:11px}.fluentform .ff-upload-remove{box-shadow:none!important;color:var(--fluentform-danger);cursor:pointer;font-size:16px;line-height:1;padding:0 4px;position:absolute;left:0;top:3px}.fluentform .ff-upload-remove:hover{color:var(--fluentform-danger);text-shadow:-1px 1px 1px #000!important}.fluentform .ff-upload-filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fluentform .ff-table{margin-bottom:0}.fluentform .ff-checkable-grids{border:1px solid #f1f1f1;border-collapse:collapse}.fluentform .ff-checkable-grids thead>tr>th{background:#f1f1f1;border:0;padding:7px 5px;text-align:center}.fluentform .ff-checkable-grids tbody>tr>td{border:0;padding:7px 5px}.fluentform .ff-checkable-grids tbody>tr>td:not(:first-of-type){text-align:center}.fluentform .ff-checkable-grids tbody>tr:nth-child(2n)>td{background:#f1f1f1}.fluentform .ff-checkable-grids tbody>tr:nth-child(2n-1)>td{background:#fff}.fluentform .ff-screen-reader-element{clip:rect(0,0,0,0)!important;word-wrap:normal!important;border:0!important;height:1px!important;margin:0!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important}.fluentform .ff_upload_btn.ff-btn{background:#6f757e;border-color:#6f757e;color:#fff;cursor:pointer;display:inline-block;padding:10px 20px}.fluentform .ff_upload_btn.ff-btn:hover{background-color:#91959b;outline:none}.fluentform .ff_upload_btn.ff-btn:focus-visible{background-color:#91959b;outline:none}.fluentform .ff-el-tc{border:none;border-collapse:collapse;display:table;width:100%}.fluentform .ff-el-tc label.ff_tc_label{display:table-row}.fluentform .ff-el-tc label.ff_tc_label>span{padding-top:8px!important;width:20px}.fluentform .ff-el-tc label.ff_tc_label>div,.fluentform .ff-el-tc label.ff_tc_label>span{display:table-cell}.fluentform .ff-saved-state-input .ff_input-group-text{background-color:#1a7efb;border-color:#1a7efb;margin-right:-1px}.fluentform .ff-saved-state-input .ff_input-group-text:hover{background-color:#4898fc;border-color:#4898fc;opacity:1}.fluentform .ff-saved-state-input .ff_input-group-text img{width:28px}.fluentform .ff-saved-state-link input{text-overflow:ellipsis}.fluentform .ff-hide-group{display:none}.fluentform .ff_t_c{margin:0;padding:0 0 0 5px}.fluentform .ff_t_c p{margin:0;padding:0}.fluentform .force-hide{border:0;display:block;height:0;margin:0;opacity:0;padding:0;visibility:hidden}.fluentform input[type=checkbox],.fluentform input[type=radio]{display:inline-block;margin:0}.fluentform input[type=checkbox]{-webkit-appearance:checkbox}.fluentform input[type=radio]{-webkit-appearance:radio}.fluentform .text-danger{color:var(--fluentform-danger)}.fluentform .iti{width:100%}.fluentform .iti__selected-flag{background:rgba(0,0,0,.1);border-bottom-right-radius:6px;border-top-right-radius:6px}.fluentform .ff_gdpr_field{margin-left:5px}.fluentform form.ff-form-has-steps .ff-btn-submit{visibility:hidden}.fluentform form.ff-form-has-steps .ff_submit_btn_wrapper{text-align:left}.fluentform textarea{max-width:100%}.fluentform .ff-el-form-check{margin-bottom:5px}.fluentform .ff-el-form-check span.ff_span{margin-right:6px}.fluentform .ff-el-form-check-label .ff-el-form-check-input{position:relative;top:-2px;vertical-align:middle}.fluentform .ff-inline-block{display:inline-block}.fluentform .ff-inline-block+.ff-inline-block{margin-right:10px}.fluentform .ff-text-left{text-align:right}.fluentform .ff-text-center{text-align:center}.fluentform .ff-text-right{text-align:left}.fluentform .ff-el-form-control:focus~.ff-el-help-message{display:block!important}.fluentform .ff-el-form-control::-moz-placeholder{color:#868e96;opacity:1}.fluentform .ff-el-form-control::placeholder{color:#868e96;opacity:1}.fluentform .ff-el-form-control:disabled,.fluentform .ff-el-form-control[readonly]:not(.flatpickr-input){background-color:#e9ecef;opacity:1}.fluentform-step{float:right;height:1px;overflow-x:hidden;padding:3px}.fluentform-step.active{height:auto}.fluentform-step .ff_summary_container{font-size:14px;margin-top:10px}.step-nav .next{float:left}.fluentform .has-conditions{display:none}.ff-message-success{border:1px solid #ced4da;box-shadow:0 1px 5px rgba(0,0,0,.1);margin-top:10px;padding:15px;position:relative}.ff-errors-in-stack{display:none;margin-top:15px}.ff-errors-in-stack .error{font-size:14px;line-height:1.7}.ff-errors-in-stack .error-clear{cursor:pointer;margin-right:5px;padding:0 5px}.ff-chat-reply-container div p{border-radius:6px;margin-top:12px;padding:20px 16px}.ff-chat-reply-container div .skeleton{animation:skeleton-loading 2s linear infinite alternate;padding:24px}@keyframes skeleton-loading{0%{background-color:#e3e6e8}to{background-color:#f0f3f5}}.ff-el-chat-container{position:relative}.ff-el-chat-container textarea{outline:none;position:relative;resize:none}.ff-el-chat-container .ff_btn_chat_style{background:transparent;border:none;position:absolute;left:10px;top:38%}.ff-el-chat-container .ff_btn_chat_style svg:hover{cursor:pointer;opacity:.8;outline:0;text-decoration:none;transition:all .4s}.iti-mobile .iti--container{z-index:9999}.grecaptcha-badge{visibility:hidden}.fluentform .hidden_field{display:none!important}.fluentform .ff_force_hide{display:none!important;visibility:hidden!important}.fluentform .ff_scrolled_text{background:#e9ebed;height:200px;overflow:scroll;padding:10px 15px}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check{display:-moz-inline-stack;display:inline-block;float:none!important;margin:0 0 10px;position:relative;width:auto!important}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label{margin:0}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label:focus-within span{background-color:#b3d4fc}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check input{margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label>span{-webkit-appearance:none;background:#fff;border:1px solid #dcdfe6;border-right:0;border-radius:0;box-sizing:border-box;color:#606266;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1;margin:0;outline:none;padding:12px 20px;position:relative;text-align:center;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;vertical-align:middle;white-space:nowrap}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label>span:hover{color:#1a7efb}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check.ff-el-image-holder{border:1px solid #dcdfe5;overflow:hidden}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check.ff-el-image-holder span{border:none!important;border-radius:0!important;margin-right:-1px;width:100%}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check.ff-el-image-holder.ff_item_selected{border-color:#1a7efb}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check:first-child label>span{border-right:1px solid #dcdfe6;border-radius:0 4px 4px 0;box-shadow:none!important}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check:last-child label>span{border-radius:4px 0 0 4px}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check.ff_item_selected label>span{background-color:#1a7efb;border-color:#1a7efb;box-shadow:1px 0 0 0 #8cc5ff;color:#fff}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check.ff_item_selected:first-child label>span{border-right-color:#1a7efb}@media only screen and (max-width:768px){.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check{display:block;width:100%}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label>span{border:1px solid!important;border-radius:4px!important;box-shadow:none!important;display:block;width:100%}}.fluentform div.ff-el-form-hide_label>.ff-el-input--label{display:none;visibility:hidden}.fluentform .ff_file_upload_holder{margin-bottom:0}.fluentform .ff-dropzone .ff_upload_btn.ff-btn{background:rgba(223,240,255,.13);border:1px dashed var(--fluentform-primary);border-radius:var(--fluentform-border-radius);color:var(--fluentform-secondary);display:block;padding:35px;text-align:center;transition:all .2s ease;width:100%}.fluentform .ff-dropzone .ff_upload_btn.ff-btn:hover{background:rgba(223,240,255,.49)}.fluentform .ff-dropzone .ff-uploaded-list{margin-top:10px}.fluentform .ff_center{text-align:center}.fluentform .ff_right{text-align:left}.fluentform .ff_left{text-align:right}.fluentform .ff-form-inline .ff-t-container,.fluentform .ff-form-inline>.ff-el-group,.fluentform .ff-form-inline>.ff-name-field-wrapper{display:inline-block;margin-left:10px;vertical-align:top}.fluentform .ff-form-inline .ff-t-container .ff-t-cell .ff-el-input--label,.fluentform .ff-form-inline .ff-t-container>.ff-el-input--label,.fluentform .ff-form-inline>.ff-el-group .ff-t-cell .ff-el-input--label,.fluentform .ff-form-inline>.ff-el-group>.ff-el-input--label,.fluentform .ff-form-inline>.ff-name-field-wrapper .ff-t-cell .ff-el-input--label,.fluentform .ff-form-inline>.ff-name-field-wrapper>.ff-el-input--label{display:none}.fluentform .ff-form-inline .ff-t-container .ff-el-input--content,.fluentform .ff-form-inline>.ff-el-group .ff-el-input--content,.fluentform .ff-form-inline>.ff-name-field-wrapper .ff-el-input--content{margin-right:0}.fluentform .ff-form-inline .ff-t-container:last-child,.fluentform .ff-form-inline>.ff-el-group:last-child,.fluentform .ff-form-inline>.ff-name-field-wrapper:last-child{margin-left:0}.fluentform .ff-t-container .ff-name-title{width:40%}.fluentform .ff_hide_label .ff-el-input--label{display:none}.fluentform .field-value{white-space:pre-line}.fluentform .ff-el-group .ff-read-only{background-color:#e9ecef!important;opacity:1;pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.fluentform .ff-el-group .ff-read-only:focus{outline:none}.fluentform label.ff-el-image-input-src{background-position:50%;background-repeat:no-repeat;background-size:cover;cursor:pointer;display:block;height:200px;width:200px}.fluentform .ff-el-image-holder{float:right;margin-bottom:20px;margin-left:20px;width:200px}.fluentform .ff-el-image-holder .ff-el-form-check-label{padding-right:1px}.fluentform .ff_el_checkable_photo_holders{display:block;margin-bottom:-20px;overflow:hidden}.fluentform .select2-container{width:100%!important}.fluentform .select2-container .select2-selection__rendered li{margin:0}.fluentform .select2-container .select2-search--inline>input{height:calc(2.25rem + 2px);line-height:1.5;margin-top:0;padding:.375rem .75rem .375rem 1.75rem}.fluentform .ff-el-form-bottom{display:flex;flex-direction:column-reverse}.fluentform .ff-el-form-bottom .ff-el-input--label{margin-bottom:0;margin-top:5px}.fluentform .mce-tinymce.mce-container.mce-panel{border:1px solid #ced4da}.fluentform .ff_input-group{align-items:stretch;display:flex;flex-wrap:wrap;position:relative;width:100%}.fluentform .ff_input-group>.ff-el-form-control:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;display:inline-block;width:auto}.fluentform .ff_input-group>.ff-el-form-control:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fluentform .ff_input-group .ff-el-form-control{flex:1 1 auto;margin-bottom:0;position:relative;width:1%}.fluentform .ff_input-group-prepend{margin-left:-1px}.fluentform .input-group-append{margin-right:-1px}.fluentform .ff_input-group-append,.fluentform .ff_input-group-prepend{display:flex}.fluentform .ff_input-group>.ff_input-group-prepend>.ff_input-group-text{border-bottom-left-radius:0;border-top-left-radius:0}.fluentform .ff_input-group>.ff_input-group-append>.ff_input-group-text{border-bottom-right-radius:0;border-top-right-radius:0}.fluentform .ff_input-group-text{align-items:center;background-color:#e9ecef;border-radius:.25rem;color:#495057;display:flex;font-size:1rem;font-weight:400;line-height:1.5;margin-bottom:0;padding:.375rem .75rem;text-align:center;white-space:nowrap}.fluentform .ff_coupon_wrapper .ff_input-group-append{cursor:pointer}.fluentform .ff_coupon_wrapper .ff_input-group-append:hover .ff_input-group-text{background:#e3e8ed}.fluentform ul.ff_coupon_responses{list-style:none;margin:0;padding:0}.fluentform ul.ff_coupon_responses li{padding-top:5px}.fluentform ul.ff_coupon_responses span.error-clear{color:#ff5050;font-weight:700;margin-left:10px}.fluentform ul.ff_coupon_responses .ff_error{color:#f56c6c;cursor:pointer}.fluentform ul.ff_coupon_responses .ff_success{color:#28a745}.fluentform .ff-btn.disabled{opacity:.65}.fluentform .ff-btn.ff-working{position:relative;transition:all .3s ease}.fluentform .ff-btn.ff-working:after{animation:ff-progress-anim 4s 0s infinite;background:hsla(0,0%,100%,.4);bottom:0;content:"";height:5px;right:0;position:absolute;left:0}.fluentform .ff-btn-block{display:block;width:100%}.fluentform .ff-btn-block+.ff-el-btn-block{margin-top:8px}.fluentform .ff_submitting{pointer-events:none}@keyframes ff-progress-anim{0%{width:0}5%{width:0}10%{width:15%}30%{width:40%}50%{width:55%}80%{width:100%}95%{width:100%}to{width:0}}.ff_modal_container{background:#fff;max-height:90vh!important;max-width:900px;overflow:auto;padding:30px}@media only screen and (min-width:1000px){.ff_modal_container{width:900px}}.select2-results__option{margin:0}.fluentform span.select2.select2-container:after{border-right:5px solid transparent;border-left:5px solid transparent;border-top:5px solid #495057;content:"";position:absolute;left:10px;top:50%;transform:translateY(-50%)}.ff_pointer{cursor:pointer}.ff_net_table{border:0;border-collapse:separate;border-spacing:0;line-height:1.4;margin:0;padding:0;table-layout:fixed;width:100%}.ff_net_table th{border:none;font-size:13px;font-weight:400;padding:8px 0;text-align:center;vertical-align:bottom}.ff_net_table th .ff_not-likely{float:right;text-align:right}.ff_net_table th .ff_extremely-likely{float:left;text-align:left}.ff_net_table tbody tr{background:none;border:0}.ff_net_table tbody tr td{background-color:#fff;border:1px solid #ddd;border-right:0;padding:0;text-align:center;vertical-align:middle}.ff_net_table tbody tr td input[type=radio]:checked+label{background-color:#4caf50;color:#fff}.ff_net_table tbody tr td:first-of-type{border-right:1px solid #ddd;border-radius:0 5px 5px 0}.ff_net_table tbody tr td:last-child{border-radius:5px 0 0 5px}.ff_net_table tbody tr td label{border:0;color:#444;cursor:pointer;display:block;font-size:16px;font-weight:700;height:40px;line-height:40px;margin:0;position:relative;width:100%}.ff_net_table tbody tr td label:after{border:0;content:"";height:100%;right:0;position:absolute;top:0;width:100%}.ff_net_table tbody tr td label:hover:after{border:2px solid #4caf50}.ff-el-pop-content{background-color:#000;border-radius:3px;box-shadow:0 5px 10px rgba(0,0,0,.2);color:#fff;font-size:11px;line-height:1.2;padding:10px;position:absolute;text-align:center;transform-origin:center bottom;z-index:9999}.ff-checkable-grids.mobile{border:0}.ff-checkable-grids.mobile tbody tr{padding-top:0!important}.ff-checkable-grids.mobile tbody tr:nth-child(2n)>td{background:transparent}.ff-checkable-grids.mobile tbody td{padding-right:10px!important;text-align:right!important}.ff-checkable-grids.mobile tbody td.ff_grid_header{background-color:#eee!important;margin:0}.ff-checkable-grids.mobile tbody td:after{content:attr(data-label);display:inline-block;letter-spacing:.5pt;padding-right:10px;white-space:nowrap}span.ff-el-rating-text{line-height:100%;padding-right:5px;vertical-align:bottom}table.ff_repeater_table{background:transparent!important;border:0;border-collapse:collapse;border-spacing:0;margin:0 0 5px;padding:0;table-layout:auto!important;vertical-align:middle;width:100%}table.ff_repeater_table th{font-size:90%;padding:0;text-align:right}table.ff_repeater_table th,table.ff_repeater_table tr{background:transparent!important;border:0;padding-top:5px}table.ff_repeater_table td{background:transparent!important;border:0;max-width:100%;padding:0 0 15px 15px;text-align:right;width:282px}table.ff_repeater_table tbody tr:only-child td .repeat-minus{visibility:hidden}table.ff_repeater_table .ff-el-group{margin:0;padding:0}table.ff_repeater_table .repeat_btn{padding-left:0;vertical-align:middle;width:30px}table.ff_repeater_table .repeat_btn span.ff-icon{cursor:pointer;margin-left:10px}table.ff_repeater_table .repeat_btn span.ff-icon.icon-minus-circle{margin-left:0}table.ff_repeater_table.repeat-maxed .repeat_btn .repeat-plus{visibility:hidden}.ff-repeater-container{display:flex;flex-direction:column}.ff-repeater-container .repeat_btn{align-self:center;display:flex}.ff-repeater-container .ff_repeater_cont_row,.ff-repeater-container .ff_repeater_header{display:flex;flex-wrap:nowrap}.ff-repeater-container .ff_repeater_cont_row:only-child .repeat-minus{visibility:hidden}.ff-repeater-container .ff_repeater_cell,.ff-repeater-container .ff_repeater_header_item{box-sizing:border-box;padding:0 0 0 15px;text-align:right}.ff-repeater-container .ff-el-repeat-buttons-list{display:flex;margin-top:34%}.ff_repeater_table.mobile tbody td{display:block;padding:10px;width:100%}.ff_repeater_table.mobile tbody td .ff-el-group{margin-top:6px}.ff_repeater_table.mobile tbody td:before{clear:both;content:attr(data-label);display:block;font-size:.875em;letter-spacing:.5pt;white-space:nowrap}.ff-el-section-break .ff-el-section-title{font-weight:600;margin-bottom:5px}.ff-el-section-break hr{background-color:#dadbdd;border:none;height:1px;margin-bottom:10px}table.ff_flexible_table.ff-checkable-grids{width:100%}.ff_flexible_table.mobile thead{right:-9999px;position:absolute;top:-9999px}.ff_flexible_table.mobile tbody td{display:block;padding:10px;width:100%}.ff_flexible_table.mobile tbody tr{background:#fff;border-bottom:1px solid #ced4da;border-top:1px solid #ced4da;border-color:#ced4da;border-style:solid;border-width:2px 1px 4px;display:block;margin:16px 0 10px;position:relative}@media only screen and (min-width:641px){.fluentform .ff-el-group.ff_list_3col .ff-el-form-check{display:-moz-inline-stack;display:inline-block;margin:0 0 2px;min-height:28px;padding-left:16px;vertical-align:top;width:33.3%}.fluentform .ff-el-group.ff_list_2col .ff-el-form-check{display:-moz-inline-stack;display:inline-block;margin:0;min-height:28px;padding-left:16px;vertical-align:top;width:50%}.fluentform .ff-el-group.ff_list_4col .ff-el-form-check{display:-moz-inline-stack;display:inline-block;margin:0;min-height:28px;padding-left:16px;vertical-align:top;width:25%}.fluentform .ff-el-group.ff_list_5col .ff-el-form-check{display:-moz-inline-stack;display:inline-block;margin:0;min-height:28px;padding-left:16px;vertical-align:top;width:20%}.fluentform .ff-el-group.ff_list_inline .ff-el-form-check{display:-moz-inline-stack;display:inline-block;float:none!important;margin:0 0 10px 15px;width:auto!important}}@media (max-width:767px){table.ff_flexible_table,table.ff_flexible_table.ff-checkable-grids{border:0}table.ff_flexible_table.ff-checkable-grids tbody tr{padding-top:0!important}table.ff_flexible_table.ff-checkable-grids tbody tr td.ff_grid_header{background-color:#eee!important;margin:0;text-align:center}table.ff_flexible_table.ff-checkable-grids tbody tr td{text-align:right!important}table.ff_flexible_table.ff-checkable-grids tbody tr td:before{content:none!important}table.ff_flexible_table.ff-checkable-grids tbody tr td:after{content:attr(data-label);display:inline-block;letter-spacing:.5pt;padding-right:10px;white-space:nowrap}table.ff_flexible_table.ff-checkable-grids tbody tr:nth-child(2n)>td{background:transparent}table.ff_flexible_table thead{right:-9999px;position:absolute;top:-9999px}table.ff_flexible_table tbody tr{background:#fff;border-bottom:1px solid #ced4da;border-top:1px solid #ced4da;border-color:#ced4da;border-style:solid;border-width:2px 1px 4px;display:block;margin:16px 0 10px;padding-top:12px!important;position:relative}table.ff_flexible_table tbody tr td{display:block;margin-right:8px;margin-left:8px;padding:5px}table.ff_flexible_table tbody tr td:before{clear:both;content:attr(data-label);display:block;font-size:.875em;letter-spacing:.5pt;white-space:nowrap}table.ff_flexible_table tbody tr td.repeat_btn{background-color:#eee;margin-right:0;padding:10px!important;width:100%!important}table.ff_flexible_table tbody tr td.repeat_btn .ff-el-repeat-buttons-list{float:none;width:100%}}@media only screen and (max-width:768px){.lity-container{width:96%}.fluentform .ff-t-container .ff-name-title{width:100%}.ff_repeater_cont_row{background:#fff;border-bottom:1px solid #ced4da;border-top:1px solid #ced4da;border-color:#ced4da;border-style:solid;border-width:2px 1px 4px;display:flex;flex-direction:column;margin:16px 0 10px;padding-top:12px}.ff_repeater_cont_row .ff_repeater_cell{display:block;margin-right:8px;margin-left:8px;padding:5px}.ff_repeater_cont_row .ff-t-cell{flex-basis:100%!important;max-width:100%;width:100%}.ff_repeater_cont_row .ff_repeater_body[role=rowgroup]{display:flex;flex-direction:column}.ff-repeater-container .ff-el-repeat-buttons-list{margin-top:-28px}.ff-el-repeat-buttons-list{margin-top:0}} assets/css/fluentform-public-default-rtl.css000064400000006701147600120010015221 0ustar00:root{--fluentform-primary:#1a7efb;--fluentform-secondary:#606266;--fluentform-danger:#f56c6c;--fluentform-border-color:#dadbdd;--fluentform-border-radius:7px}.ff-default .ff_btn_style{border:1px solid transparent;border-radius:7px;cursor:pointer;display:inline-block;font-size:16px;font-weight:500;line-height:1.5;padding:8px 20px;position:relative;text-align:center;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.ff-default .ff_btn_style:focus,.ff-default .ff_btn_style:hover{opacity:.8;outline:0;text-decoration:none}.ff-default .ff-btn-primary:not(.ff_btn_no_style){background-color:#007bff;border-color:#007bff;color:#fff}.ff-default .ff-btn-primary:not(.ff_btn_no_style):focus,.ff-default .ff-btn-primary:not(.ff_btn_no_style):hover{background-color:#0069d9;border-color:#0062cc;color:#fff}.ff-default .ff-btn-secondary:not(.ff_btn_no_style){background-color:#606266;border-color:#606266;color:#fff}.ff-default .ff-btn-secondary:not(.ff_btn_no_style):focus,.ff-default .ff-btn-secondary:not(.ff_btn_no_style):hover{background-color:#727b84;border-color:#6c757d;color:#fff}.ff-default .ff-btn-lg{border-radius:6px;font-size:18px;line-height:1.5;padding:8px 16px}.ff-default .ff-btn-sm{border-radius:3px;font-size:13px;line-height:1.5;padding:4px 8px}.ff-default .ff-el-form-control{background-clip:padding-box;background-image:none;border:1px solid var(--fluentform-border-color);border-radius:var(--fluentform-border-radius);color:var(--fluentform-secondary);font-family:-apple-system,"system-ui",Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1;margin-bottom:0;max-width:100%;padding:11px 15px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.ff-default .ff-el-form-control:focus{background-color:#fff;border-color:var(--fluentform-primary);color:var(--fluentform-secondary);outline:none}.ff-default .ff-el-form-check label.ff-el-form-check-label{cursor:pointer;margin-bottom:7px}.ff-default .ff-el-form-check label.ff-el-form-check-label>span:after,.ff-default .ff-el-form-check label.ff-el-form-check-label>span:before{content:none}.ff-default .ff-el-form-check:last-child label.ff-el-form-check-label{margin-bottom:0}.ff-default textarea{min-height:90px}select.ff-el-form-control:not([size]):not([multiple]){height:42px}.elementor-editor-active .ff-form-loading .ff-step-container .fluentform-step:first-child{height:auto}.ff-upload-preview.ff_uploading{opacity:.8}@keyframes ff_move{0%{background-position:100% 0}to{background-position:50px 50px}}.ff_uploading .ff-el-progress .ff-el-progress-bar{animation:ff_move 2s linear infinite;background-image:linear-gradient(45deg,hsla(0,0%,100%,.2) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.2) 0,hsla(0,0%,100%,.2) 75%,transparent 0,transparent);background-size:50px 50px;border-bottom-right-radius:20px;border-bottom-left-radius:8px;border-top-right-radius:20px;border-top-left-radius:8px;bottom:0;content:"";right:0;overflow:hidden;position:absolute;left:0;top:0;z-index:1}.ff_payment_summary{overflow-x:scroll}.pac-container{z-index:99999!important}.ff-support-sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.ff-default{font-family:inherit}.ff-default .ff-el-input--label label{display:inline-block;font-weight:500;line-height:inherit;margin-bottom:0} assets/css/choices.css000064400000020371147600120010010757 0ustar00.frm-fluent-form .choices{font-size:16px;margin-bottom:24px;overflow:hidden;position:relative}.frm-fluent-form .choices:focus{outline:none}.frm-fluent-form .choices:last-child{margin-bottom:0}.frm-fluent-form .choices.is-open{overflow:initial}.frm-fluent-form .choices.is-disabled .choices__inner,.frm-fluent-form .choices.is-disabled .choices__input{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none}.frm-fluent-form .choices.is-disabled .choices__item{cursor:not-allowed}.frm-fluent-form .choices [hidden]{display:none!important}.frm-fluent-form .choices[data-type*=select-one]{cursor:pointer}.frm-fluent-form .choices[data-type*=select-one] .choices__input{background-color:#fff;border:1px solid #ced4da!important;box-sizing:border-box!important;display:block;font-size:16px;line-height:1.6;margin:10px 0 10px 10px!important;outline:none!important;padding:6px 10px;width:calc(100% - 20px)!important}.frm-fluent-form .choices[data-type*=select-one] .choices__input:focus{border:1px solid #00bcd4}.frm-fluent-form .choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=);background-size:8px;border-radius:10em;height:20px;margin-right:25px;margin-top:-10px;opacity:.25;padding:0;position:absolute;right:0;top:50%;width:20px}.frm-fluent-form .choices[data-type*=select-one] .choices__button:focus,.frm-fluent-form .choices[data-type*=select-one] .choices__button:hover{opacity:1}.frm-fluent-form .choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #00bcd4}.frm-fluent-form .choices[data-type*=select-one] .choices__item[data-value=""] .choices__button{display:none}.frm-fluent-form .choices[data-type*=select-one]:after{border:5px solid transparent;border-top-color:#495057;content:"";height:0;margin-top:-2.5px;pointer-events:none;position:absolute;right:11.5px;top:50%;width:0}.frm-fluent-form .choices[data-type*=select-one].is-open:after{border-color:transparent transparent #495057;margin-top:-7.5px}.frm-fluent-form .choices[data-type*=select-one][dir=rtl]:after{left:11.5px;right:auto}.frm-fluent-form .choices[data-type*=select-one][dir=rtl] .choices__button{left:0;margin-left:25px;margin-right:0;right:auto}.frm-fluent-form .choices[data-type*=select-multiple] .choices__inner{cursor:text;padding:0 10px}.frm-fluent-form .choices[data-type*=select-multiple] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=);background-size:8px;border-left:1px solid #fff;border-radius:0;display:inline-block;line-height:1;margin:0 -4px 0 8px;opacity:.5;padding:0 20px 0 10px;position:relative;width:8px}.frm-fluent-form .choices[data-type*=select-multiple] .choices__button:focus,.frm-fluent-form .choices[data-type*=select-multiple] .choices__button:hover{background-color:transparent;opacity:1}.frm-fluent-form .choices[data-type*=select-multiple] .choices__input{background:transparent;border:none;border-radius:0;box-shadow:none;display:inline-block;font-size:16px;line-height:1.6;margin:0;padding:6px 0;width:100%}.frm-fluent-form .choices[data-type*=select-multiple] .choices__input:focus{border:none;box-shadow:none;outline:none}.frm-fluent-form .choices[data-type*=select-multiple]:after{border:5px solid transparent;border-top-color:#495057;content:"";height:0;margin-top:-2.5px;pointer-events:none;position:absolute;right:11.5px;top:50%;width:0}.frm-fluent-form .choices[data-type*=select-multiple].is-open:after{border-color:transparent transparent #495057;margin-top:-7.5px}.frm-fluent-form .choices__inner{background:#fff;border:1px solid #ddd;border-radius:.25rem;display:inline-block;font-size:14px;min-height:auto;overflow:hidden;vertical-align:top;width:100%}.is-focused .frm-fluent-form .choices__inner,.is-open .frm-fluent-form .choices__inner{border-color:#80bdff}.is-open .frm-fluent-form .choices__inner{border-radius:.25rem .25rem 0 0}.is-flipped.is-open .frm-fluent-form .choices__inner{border-radius:0 0 .25rem .25rem}.frm-fluent-form .choices__list{list-style:none;margin:0;padding-left:0}.frm-fluent-form .choices__list--single{display:inline-block;padding:6px 24px 6px 12px;width:100%}[dir=rtl] .frm-fluent-form .choices__list--single{padding-left:24px;padding-right:12px}.frm-fluent-form .choices__list--single .choices__item{font-size:16px;line-height:1.65;width:100%}.frm-fluent-form .choices__list--multiple{display:inline}.frm-fluent-form .choices__list--multiple .choices__item{background-color:#4a4e50;border:1px solid #3e3e3e;border-radius:20px;box-sizing:border-box;color:#fff;display:inline-block;font-size:12px;font-weight:500;margin-bottom:3px;margin-right:5px;padding:4px 10px;vertical-align:middle;word-break:break-all}.frm-fluent-form .choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir=rtl] .frm-fluent-form .choices__list--multiple .choices__item{margin-left:5px;margin-right:0}.frm-fluent-form .choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}.is-disabled .frm-fluent-form .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.frm-fluent-form .choices__list--dropdown{background-color:#fff;border:1px solid #80bdff;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;height:auto;margin-top:-1px;max-height:180px;min-width:100%;overflow-x:hidden;overflow-y:auto;position:absolute;top:100%;visibility:hidden;width:-moz-max-content;width:max-content;will-change:visibility;word-break:break-all;z-index:3}.frm-fluent-form .choices__list--dropdown.is-active{visibility:visible}.is-open .frm-fluent-form .choices__list--dropdown{border-color:#80bdff}.is-flipped .frm-fluent-form .choices__list--dropdown{border-radius:.25rem .25rem 0 0;bottom:100%;margin-bottom:-1px;margin-top:0;top:auto}.frm-fluent-form .choices__list--dropdown .choices__list{-webkit-overflow-scrolling:touch;max-height:300px;overflow:auto;position:relative;will-change:scroll-position}.frm-fluent-form .choices__list--dropdown .choices__item{font-size:14px;padding:10px;position:relative}[dir=rtl] .frm-fluent-form .choices__list--dropdown .choices__item{text-align:right}@media (max-width:640px){.frm-fluent-form .choices__list--dropdown .choices__item{padding:16px}}@media (min-width:640px){.frm-fluent-form .choices__list--dropdown .choices__item--selectable{padding-right:100px}.frm-fluent-form .choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir=rtl] .frm-fluent-form .choices__list--dropdown .choices__item--selectable{padding-left:100px;padding-right:10px;text-align:right}[dir=rtl] .frm-fluent-form .choices__list--dropdown .choices__item--selectable:after{left:10px;right:auto}}.frm-fluent-form .choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.frm-fluent-form .choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.frm-fluent-form .choices__item{cursor:default}.frm-fluent-form .choices__item--selectable{cursor:pointer}.frm-fluent-form .choices__item--disabled{cursor:not-allowed;opacity:.5;-webkit-user-select:none;-moz-user-select:none;user-select:none}.frm-fluent-form .choices__heading{border-bottom:1px solid #f7f7f7;color:gray;font-size:12px;font-weight:600;padding:10px}.frm-fluent-form .choices__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;background-position:50%;background-repeat:no-repeat;border:0;cursor:pointer;text-indent:-9999px}.frm-fluent-form .choices__button:focus{outline:none}.frm-fluent-form .choices__placeholder{color:#495057;font-size:16px;line-height:1.65}.choices__list{max-width:100%}.choices__list.choices__list--dropdown.is-active{display:block!important}.choices__list.choices__list--dropdown{display:none} assets/css/admin_docs_rtl.css000064400000167146147600120010012337 0ustar00@font-face{font-display:block;font-family:fluentform;font-style:normal;font-weight:400;src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd);src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd) format("embedded-opentype"),url(../fonts/fluentform.ttf?5fd4a17c106b6a8cae5c741ddbbe132c) format("truetype"),url(../fonts/fluentform.woff?31c9335ad614611f342d70917260470e) format("woff"),url(../fonts/fluentform.svg?1d0875320e0e3980ae21f2d18c21897a) format("svg")}[class*=" ff-icon-"],[class^=ff-icon-]{speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:fluentform!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.ff-icon-tablet:before{content:"\e96f"}.ff-icon-mobile:before{content:"\e970"}.ff-icon-monitor:before{content:"\e971"}.ff-icon-fullscreen-out:before{content:"\e96b"}.ff-icon-menu:before{content:"\e96a"}.ff-icon-play:before{content:"\e969"}.ff-icon-bug:before{content:"\e925"}.ff-icon-star-line:before{content:"\e94e"}.ff-icon-heart-clock:before{content:"\e966"}.ff-icon-microphone:before{content:"\e967"}.ff-icon-handshake:before{content:"\e968"}.ff-icon-ink-pen:before{content:"\e91e"}.ff-icon-arrow-left:before{content:"\e919"}.ff-icon-user-filled:before{content:"\e902"}.ff-icon-payment:before{content:"\e900"}.ff-icon-play-circle-filled:before{content:"\e901"}.ff-icon-promotion:before{content:"\e903"}.ff-icon-share-filled:before{content:"\e904"}.ff-icon-warning-filled:before{content:"\e905"}.ff-icon-more-vertical:before{content:"\e906"}.ff-icon-gift:before{content:"\e907"}.ff-icon-cursor:before{content:"\e908"}.ff-icon-hash:before{content:"\e909"}.ff-icon-photo:before{content:"\e90a"}.ff-icon-italic-light:before{content:"\e90b"}.ff-icon-keyboard:before{content:"\e90c"}.ff-icon-layers:before{content:"\e90d"}.ff-icon-left-align:before{content:"\e90e"}.ff-icon-light-10:before{content:"\e90f"}.ff-icon-map-pin:before{content:"\e910"}.ff-icon-lock:before{content:"\e911"}.ff-icon-email:before{content:"\e912"}.ff-icon-paragraph:before{content:"\e913"}.ff-icon-user:before{content:"\e914"}.ff-icon-phone-outgoing:before{content:"\e915"}.ff-icon-play-circle:before{content:"\e916"}.ff-icon-puzzle:before{content:"\e917"}.ff-icon-redo:before{content:"\e918"}.ff-icon-repeat:before{content:"\e91a"}.ff-icon-right-align:before{content:"\e91b"}.ff-icon-rocket-filled:before{content:"\e91c"}.ff-icon-setting:before{content:"\e91d"}.ff-icon-light-26:before{content:"\e91f"}.ff-icon-trash:before{content:"\e920"}.ff-icon-underline-alt:before{content:"\e921"}.ff-icon-undo:before{content:"\e922"}.ff-icon-upload-alt:before{content:"\e923"}.ff-icon-web-development:before{content:"\e924"}.ff-icon-underline:before{content:"\e926"}.ff-icon-italic:before{content:"\e927"}.ff-icon-filter-alt:before{content:"\e928"}.ff-icon-files:before{content:"\e929"}.ff-icon-file-add:before{content:"\e92a"}.ff-icon-fullscreen:before{content:"\e92b"}.ff-icon-donut-chart:before{content:"\e92c"}.ff-icon-dollar:before{content:"\e92d"}.ff-icon-document-light:before{content:"\e92e"}.ff-icon-document:before{content:"\e92f"}.ff-icon-document-alt:before{content:"\e930"}.ff-icon-design:before{content:"\e931"}.ff-icon-copy-filled:before{content:"\e932"}.ff-icon-copy:before{content:"\e933"}.ff-icon-code-alt:before{content:"\e934"}.ff-icon-code:before{content:"\e935"}.ff-icon-close-circle-filled:before{content:"\e936"}.ff-icon-chevron-double-left:before{content:"\e937"}.ff-icon-check:before{content:"\e938"}.ff-icon-center-align:before{content:"\e939"}.ff-icon-calendar:before{content:"\e93a"}.ff-icon-bookmark:before{content:"\e93b"}.ff-icon-bold:before{content:"\e93c"}.ff-icon-bold-light:before{content:"\e93d"}.ff-icon-bank:before{content:"\e93e"}.ff-icon-arrow-right:before{content:"\e93f"}.ff-icon-plus-filled:before{content:"\e940"}.ff-icon-plus:before{content:"\e941"}.ff-icon-checkmark-square:before{content:"\e942"}.ff-icon-download:before{content:"\e943"}.ff-icon-sort-circle-down:before{content:"\e944"}.ff-icon-eye-off:before{content:"\e945"}.ff-icon-eye:before{content:"\e946"}.ff-icon-flag:before{content:"\e947"}.ff-icon-link:before{content:"\e948"}.ff-icon-list:before{content:"\e949"}.ff-icon-move:before{content:"\e94a"}.ff-icon-plus-alt:before{content:"\e94b"}.ff-icon-radio-button-on:before{content:"\e94c"}.ff-icon-search:before{content:"\e94d"}.ff-icon-star:before{content:"\e94f"}.ff-icon-sort-down-alt:before{content:"\e950"}.ff-icon-close:before{content:"\e951"}.ff-icon-expand:before{content:"\e952"}.ff-icon-eye-filled:before{content:"\e953"}.ff-icon-info-filled:before{content:"\e954"}.ff-icon-keypad:before{content:"\e955"}.ff-icon-more-horizontal:before{content:"\e956"}.ff-icon-setting-filled:before{content:"\e957"}.ff-icon-strikethrough:before{content:"\e958"}.ff-icon-text:before{content:"\e959"}.ff-icon-decrease-edit:before{content:"\e95a"}.ff-icon-sort-down:before{content:"\e95b"}.ff-icon-increase-edit:before{content:"\e95c"}.ff-icon-list-ordered:before{content:"\e95d"}.ff-icon-quote-left:before{content:"\e95e"}.ff-icon-slider-horizontal:before{content:"\e95f"}.ff-icon-text-alt:before{content:"\e960"}.ff-icon-upload:before{content:"\e961"}.ff-icon-edit:before{content:"\e962"}.ff-icon-filter:before{content:"\e963"}.ff-icon-refresh:before{content:"\e964"}.ff-icon-task:before{content:"\e965"}.ff-icon-sort:before{content:"\e96c"}.ff-icon-captcha:before{content:"\e96d"}.ff-icon-clear:before{content:"\e96e"} .ff_menu{align-items:center;display:none;flex-wrap:wrap;margin-top:22px}.ff_menu_active{display:flex;justify-content:center}.ff_menu_link{background-color:transparent;border-radius:6px;color:#353537;display:inline-block;font-size:15px;font-weight:500;line-height:1.6;overflow:hidden;padding:4px 14px;text-decoration:none;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_menu_link:focus{border:0;box-shadow:none;outline:none}.ff_menu_link:hover{color:#1a7efb}.ff_menu_link_buy{background-color:#1a7efb;color:#fff;margin-right:12px}.ff_menu_link_buy:hover{color:#fff}.ff_menu.conversion_form_editor .ff_menu_link,.ff_menu.partial_entries_form_editor .ff_menu_link{max-width:140px}.ff_menu .active .ff_menu_link{background-color:#e8f2ff;color:#1a7efb}.ff_menu_toggle{cursor:pointer;font-size:26px;margin-right:auto}.ff_menu_toggle:hover{color:#1a7efb}.ff_menu_back .el-icon-arrow-left{font-weight:700;position:relative;transition:all .3s;width:18px}.ff_menu_back .el-icon-arrow-left:after{background-color:#353537;background-color:#1a7efb;content:"";height:1.3px;position:absolute;left:-.6px;top:50%;transform:translateY(-52%);transition:all .3s;width:0}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left{color:#1a7efb;transform:translateX(2.4px)}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left:after{font-weight:700;width:13px}.ff_card{background-color:#fff;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 3px 0 hsla(0,0%,51%,.1);padding:24px}.ff_card.primary{background-color:#1a7efb}.ff_card_pro{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;padding-right:54px;padding-left:40px}.ff_card_pro h3{color:#fff;font-size:28px;line-height:1.3;max-width:400px}.ff_card.highlight-border{border-color:#1a7efb}.ff_card .ff_pagination{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_shadow_lg{box-shadow:0 14px 16px -2px hsla(0,0%,51%,.1)}.ff_card .text{font-size:15px;line-height:1.6}.ff_card_alert{border-right:3px solid #ff6154;border-radius:4px}.ff_card_head{border-bottom:1px solid #ececec;margin-bottom:26px;padding-bottom:16px}.ff_card_head .text{margin-top:10px}.ff_card_head_group{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.ff_card_head_group .el-tooltip{font-size:15px}.ff_card_form_action{border-color:#ececec;cursor:pointer;height:100%}.ff_card_form_action .ff_card_text{word-break:break-word}.ff_card_img img{width:100%}.ff_card_s2{border:1px solid #e4e4e4;box-shadow:none;display:flex;flex-direction:column;padding:0;transition:.3s}.ff_card_s2 .ff_card_body{padding:20px}.ff_card_s2 .ff_card_footer{border-top:1px solid #e4e4e4;margin-top:auto;padding:14px 20px}.ff_card_s2:hover{box-shadow:0 22px 16px hsla(0,0%,51%,.12)}.ff_card_footer_group{align-items:center;display:flex;justify-content:space-between}.ff_card .ff-table-container{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_border{border:1px solid #ececec;box-shadow:none}.mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-3{margin-top:16px!important}.mt-4{margin-top:24px!important}.mt-5{margin-top:32px!important}.mt-6{margin-top:40px!important}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.mb-3{margin-bottom:16px!important}.mb-4{margin-bottom:24px!important}.mb-5{margin-bottom:32px!important}.mb-6{margin-bottom:40px!important}.mr-1{margin-left:4px!important}.mr-2{margin-left:8px!important}.mr-3{margin-left:16px!important}.mr-4{margin-left:24px!important}.mr-5{margin-left:32px!important}.mr-6{margin-left:40px!important}.ml-1{margin-right:4px!important}.ml-2{margin-right:8px!important}.ml-3{margin-right:16px!important}.ml-4{margin-right:24px!important}.ml-5{margin-right:32px!important}.ml-6{margin-right:40px!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.mr-0{margin-left:0!important}.ml-0{margin-right:0!important}.ff_list_button_item:not(:last-child){margin-bottom:4px}.ff_list_button_item.active .ff_list_button_link{background-color:#4b4c4d;color:#fff}.ff_list_button_item.has_sub_menu .ff_list_button_link{position:relative}.ff_list_button_item.has_sub_menu .ff_list_button_link:after{content:"\e6df";font-family:element-icons;position:absolute;left:15px;transition:.3s}.ff_list_button_item.has_sub_menu.is-submenu{color:inherit;font-style:inherit;font-weight:inherit;margin-right:0}.ff_list_button_item.has_sub_menu.is-submenu .ff_list_button_link:after{transform:rotate(180deg)}.ff_list_button_link{background-color:transparent;border-radius:5px;color:#1e1f21;display:block;font-size:16px;padding:12px 18px;transition:.2s}.ff_list_button_link:hover{background-color:#f5f5f3;color:#1e1f21}.ff_list_button_small .ff_list_button_link{border-radius:6px;font-size:15px;padding:6px 14px}.ff_list_button_s1 .ff_list_button_item.active .ff_list_button_link{background-color:#f5f5f3;color:#1e1f21;font-weight:600}.ff_list_button_s1 .ff_list_button_link{color:#606266;font-size:15px}.ff_list li:not(:last-child){margin-bottom:12px}.ff_list li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list li a:hover{color:#1a7efb}.ff_list_submenu{background-color:#fff;display:none;margin-right:20px;margin-top:10px;position:relative}.ff_list_submenu:after{background-color:#e4e2df;content:"";height:100%;right:0;position:absolute;top:0;width:2px}.ff_list_submenu li{position:relative}.ff_list_submenu li:after{background-image:url(../images/curve-line.svg?ad01d82f4c085066c0a3accc820c65ac);background-repeat:no-repeat;content:"";height:10px;right:0;position:absolute;top:50%;transform:translateY(-50%);width:12px}.ff_list_submenu li:last-child:before{background-color:#fff;bottom:0;content:"";height:18px;right:0;position:absolute;width:2px;z-index:1}.ff_list_submenu li a{border-radius:6px;color:#606266;display:block;font-size:15px;margin-right:15px;max-width:197px;overflow:hidden;padding:10px;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_list_submenu li a:hover{background-color:#efefef}.ff_list_submenu li.active a{background-color:#efefef;color:#1e1f21}.ff_list_border_bottom>li{font-size:15px;position:relative}.ff_list_border_bottom>li:not(:last-child){border-bottom:1px solid #ececec;margin-bottom:12px;padding-bottom:12px}.ff_list_border_bottom>li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list_border_bottom>li a.lead-text{color:#1a7efb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_list_border_bottom>li a.lead-text.lead-url{white-space:unset;word-break:break-all}.ff_submission_info_list li{display:flex}.ff_submission_info_list .lead-title{flex-shrink:0;width:120px}.ff_submission_info_list .truncate{max-width:228px}.el-button--upload{border-style:dashed;justify-content:center;padding:24px;width:100%}.el-button--upload .el-icon{font-size:22px}.ff_file_upload_result{align-items:center;background-color:#fafafa;border:1px solid #f2f2f2;border-radius:8px;display:flex;overflow:hidden;padding:10px;position:relative}.ff_file_upload_result .el-button{position:absolute;left:10px;top:50%;transform:translateY(-50%)}.ff_file_upload_result+.ff_file_upload_result{margin-top:10px}.ff_file_upload_preview{height:44px;width:44px}.ff_file_upload_preview img{border-radius:4px;height:100%;-o-object-fit:cover;object-fit:cover;width:44px}.ff_file_upload_preview+.ff_file_upload_data{margin-right:15px}.ff_file_upload_description{color:#1e1f21;font-size:14px}.ff_file_upload_size{font-size:12px;margin-top:4px}body{background-color:#f2f2f2;color:#606266}#wpcontent{padding-right:0}#wpbody-content *{box-sizing:border-box}h1,h2,h3,h4,h5,h6{color:#1e1f21;margin:0}ol,ul{list-style:none;margin:0;padding:0}h1{font-size:24px}h2{font-size:23px}h3{font-size:22px;line-height:1.4}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}p{font-size:15px}p:last-child{margin:0}hr{border-bottom-color:#ececec;border-top:0}dd,li{margin-bottom:0}a{color:#1a7efb;font-weight:400;text-decoration:none}a:focus{box-shadow:none;outline:none}a:hover{color:#1a7efb}.notice,div.error,div.updated{margin:8px 24px 2px}.fluentform-admin-notice.notice-error{margin:8px 24px;padding:10px 20px}.fluentform-admin-notice.notice-error h3{font-size:18px;margin:10px 0}.ff_form_wrap_area .fluentform-admin-notice{margin:8px 0}.ff_backdrop{background:rgba(0,0,0,.5);bottom:0;right:0;position:fixed;left:0;top:0;z-index:999999999}.w-100{width:100%!important}.ff-mw-100{max-width:100%!important}.h-100{height:100%!important}.ff_form_wrap{padding:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{-webkit-appearance:none;background-color:#fff;border-color:#dadbdd;border-radius:7px;box-shadow:none;color:#606266;padding:0 15px}input[type=color]:focus,input[type=color]:hover,input[type=date]:focus,input[type=date]:hover,input[type=datetime-local]:focus,input[type=datetime-local]:hover,input[type=datetime]:focus,input[type=datetime]:hover,input[type=email]:focus,input[type=email]:hover,input[type=month]:focus,input[type=month]:hover,input[type=number]:focus,input[type=number]:hover,input[type=password]:focus,input[type=password]:hover,input[type=search]:focus,input[type=search]:hover,input[type=tel]:focus,input[type=tel]:hover,input[type=text]:focus,input[type=text]:hover,input[type=time]:focus,input[type=time]:hover,input[type=url]:focus,input[type=url]:hover,input[type=week]:focus,input[type=week]:hover,textarea:focus,textarea:hover{border-color:#1a7efb!important}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{box-shadow:none}input[type=number]{padding-left:0}input[type=checkbox]:disabled{opacity:0}.ff-select{-webkit-appearance:none!important;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat left 14px top 55%!important;background-blend-mode:hard-light;background-size:16px 16px!important;border:1px solid #dadbdd!important;border-radius:7px!important;box-sizing:border-box!important;color:#606266!important;display:inline-block!important;height:40px!important;line-height:40px!important;max-width:inherit!important;outline:0!important;outline:none!important;padding:0 20px 0 29px!important;text-overflow:ellipsis;transition:border-color .2s cubic-bezier(.645,.045,.355,1)!important}.ff-select:focus{box-shadow:none!important;outline:none!important}.ff-select-block{display:block;width:100%}.ff-select-small{background-position-x:38px!important;border-radius:5px!important;height:32px!important;line-height:32px!important;padding-right:10px!important;padding-left:24px!important}.ff-select-small.condition-field,.ff-select-small.condition-operator,.ff-select-small.condition-value{background-position-x:10%!important}.ff_filter_selected{background-color:#e8f2ff;border-color:#bad8fe;color:#1a7efb}p{margin-bottom:10px;margin-top:0}.icon{display:inline-block;font:normal normal normal 14px/1 ultimateform}.el-input--prefix .el-input__inner{padding-right:38px}.el-input__prefix{right:12px}.ff-icon+span,span+.ff-icon{margin-right:6px}.d-flex{display:flex}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.text-primary{color:#1a7efb!important}.text-secondary{color:#606266!important}.text-danger{color:#ff6154!important}.text-success{color:#00b27f!important}.text-warning{color:#fcbe2d!important}.text-dark{color:#1e1f21!important}.flex-grow-1{flex:1}.mr15{margin-left:15px}.mb15{margin-bottom:15px}.pull-left{float:right!important}.pull-right{float:left!important}.text-left{text-align:right}.text-right{text-align:left}.text-center{text-align:center}.el-icon-clickable{cursor:pointer}.help-text{font-size:.9em;font-style:italic;margin:0}.fs-17{font-size:17px!important}.fs-15{font-size:15px!important}.fs-14{font-size:14px!important}.fs-13{font-size:13px!important}.text-note{color:#606266;font-size:13px;font-weight:400}.ff-disabled{opacity:.5;pointer-events:none}.mx-auto{margin-right:auto;margin-left:auto}.img-thumb{border:1px solid #ececec;border-radius:8px}.lead-title{color:#1e1f21;display:block;font-size:15px;font-weight:500;transition:.2s}.lead-text{color:#606266;font-size:13px}a.lead-text{color:#1a7efb}.btn{background-image:none;border:1px solid transparent;border-radius:4px;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1.42857143;margin-bottom:0;padding:6px 12px;text-align:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.btn-primary{background-color:#337ab7;border-color:#2e6da4;color:#fff}.btn-primary:hover{background-color:#286090;border-color:#204d74;color:#fff}.btn-block{width:100%}.clearfix:after,.clearfix:before,.form-editor:after,.form-editor:before{content:" ";display:table}.clearfix:after,.form-editor:after{clear:both}.el-notification__content p{text-align:right}.label-lh-1-5 label{line-height:1.5}.ff_header{background:#fff;border-bottom:1px solid #ececec;display:flex;flex-direction:column;padding:10px 24px}.ff_header_group{align-items:center;display:flex;justify-content:space-between}.ff_header .plugin-name{height:30px}.ff_header .plugin-name img{height:100%}.ff_header .global-search-menu-button{background-color:transparent;border:0;border-radius:6px;color:rgba(60,60,60,.702);cursor:pointer;display:inline-block;font-size:15px;font-weight:400;line-height:1.6;margin:0 auto 0 0;padding:0 5px 0 0;transition:all .3s}.ff_header .global-search-menu-button .el-icon-search{font-size:16px;font-weight:600}.ff_header .global-search-menu-button .shortcut{border-radius:4px;box-shadow:0 2px 3px 0 rgba(32,33,36,.15);font-size:12px;letter-spacing:3px;padding:5px 8px;transition:all .3s}.ff_header .global-search-menu-button:hover{color:#353537}.ff_header .global-search-menu-button:hover .shortcut{border-color:#1a7efb;color:#1a7efb}.ff_header .global-search-menu-button span{margin-right:5px}.ff_row{display:flex;flex-wrap:wrap}.el-dialog{padding:24px 30px}.el-dialog__headerbtn{background-color:#fafafa;border-radius:50%;font-size:1.25rem;height:2rem;left:22px;top:18px;transition:.2s;width:2rem}.el-dialog__headerbtn .el-dialog__close{color:#1e1f21}.el-dialog__headerbtn:hover{background-color:#ececec}.el-dialog__headerbtn:hover .el-dialog__close{color:#1e1f21}.el-dialog__header{border-bottom:1px solid #ececec;padding:0 0 24px}.el-dialog__header h4{font-weight:500}.el-dialog__body,.el-dialog__footer{padding:0}.el-dialog__footer .has-separator{border-top:1px solid #ececec;padding-top:20px}.el-dialog,.el-popover{border-radius:8px}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__header{border:0;padding:0}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__body .el-row{align-content:center;align-items:center;display:flex;justify-content:center}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__headerbtn{z-index:1}.form-editor .disabled-info .el-dialog__wrapper h3{font-size:1.5em}.form-editor .disabled-info .el-dialog__wrapper p{font-size:16px}.form-editor .disabled-info .el-dialog__wrapper img{width:100%}.ff_nav_top{display:block;margin-bottom:15px;overflow:hidden;width:100%}.ff_nav_top .ff_nav_title{float:right;width:50%}.ff_nav_top .ff_nav_title h3{float:right;line-height:28px;margin:0;padding:0}.ff_nav_top .ff_nav_title .ff_nav_sub_actions{display:inline-block;margin-right:20px}.ff_nav_top .ff_nav_action{float:right;text-align:left;width:50%}.ff_nav_top .ff_search_inline{display:inline-block;text-align:left;width:200px}.ff_nav_top.ff_advanced_search{background:#fff;border-radius:5px;padding:10px 20px}.ff_global_notices{box-sizing:border-box;display:block;margin-top:20px;overflow:hidden;width:100%}.ff_global_notices .ff_global_notice{background:#fff;border:1px solid transparent;border-radius:.25rem;display:block;margin-bottom:1rem;margin-left:20px;padding:.75rem 1.25rem;position:relative}.ff_global_notices .ff_global_notice.ff_notice_error{background-color:#fff3cd;border-color:#ffeeba;color:#856404}.ff_global_notices .ff_global_notice.ff_notice_success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.el-select-dropdown.el-popper{z-index:99999999999!important}ul.ff_entry_list{list-style:disc;margin-right:20px}span.ff_new_badge{background:#ff4747;border-radius:4px;color:#fff;font-size:11px;line-height:100%;margin-right:5px;padding:0 5px 3px;vertical-align:super}label.el-checkbox,label.el-radio{display:inline-block}.el-time-spinner__list .el-time-spinner__item{margin-bottom:0!important}.ff_card_block{background:#f2f2f2;border-radius:8px;padding:20px}.ff_card_block_head{border-bottom:1px solid #e3e3e3;margin-bottom:20px;padding-bottom:15px}.ff_card_block h3{margin:0 0 15px;padding:0}.videoWrapper{height:0;padding-bottom:56.25%;position:relative}.videoWrapper iframe{height:100%;right:0;position:absolute;top:0;width:100%}.ff-left-spaced{margin-right:10px!important}.doc_video_wrapper{background:#fff;margin:0 auto;max-width:800px;padding:20px 0 0;text-align:center}.el-big-items .el-select-dropdown__wrap{max-height:350px}.ff_email_resend_inline{display:inline-block}.el-radio-group-column{display:flex;flex-direction:column}.el-radio-group-column .el-radio{margin-bottom:20px;margin-left:0}.el-checkbox-group-column{display:flex;flex-direction:column}.el-checkbox-group-column .el-checkbox{margin-bottom:14px;margin-left:0}.ff_advanced_filter_wrap{position:relative}.ff_advanced_search{background:#fff;border-radius:8px;box-shadow:0 40px 64px -12px rgba(0,0,0,.08),0 0 14px -4px rgba(0,0,0,.08),0 32px 48px -8px rgba(0,0,0,.1);margin-top:10px;padding:20px;position:absolute;left:0;top:100%;width:350px;z-index:1024}.ff_advanced_search_date_range{background-color:#ececec;border-radius:8px;padding:14px}.ff_advanced_search_date_range p{font-size:14px;font-weight:400}.ff_advanced_search_date_range .el-date-editor--daterange.el-input__inner{width:282px}.el-switch__core:after{box-shadow:0 2px 4px rgba(0,0,0,.2),inset 0 2px 2px #fff,inset 0 -1px 1px rgba(0,0,0,.1)}.row-actions .row-actions-item{display:inline-block;font-size:13px;line-height:1;padding-left:10px;position:relative}.row-actions .row-actions-item:after{background-color:#ddd;content:"";height:10px;position:absolute;left:3px;top:50%;transform:translateY(-50%);width:1px}.row-actions .row-actions-item.trash:after{display:none}.row-actions span.trash a{color:#ff6154}.ff_pagination{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);display:inline-flex;font-weight:500;max-width:100%;padding:12px 20px}.ff_pagination .el-input__inner{background:#f2f2f2;border-color:#f2f2f2;border-radius:4px!important;color:#606266}.ff_pagination .el-input__inner:focus,.ff_pagination .el-input__inner:hover{border-color:#f2f2f2!important}.ff_pagination .el-select .el-input .el-select__caret{color:#606266}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:transparent;border-radius:4px}.ff_shortcode_wrap+.ff_shortcode_wrap{margin-top:.5rem}.ff_shortcode_btn{align-items:center;background-color:#ededed;border:0;border-radius:6px;color:#353537;display:inline-flex;font-size:12px;margin:0;overflow:hidden;padding:4px 10px}.ff_shortcode_btn span{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:200px}.ff_shortcode_btn .el-icon{margin-left:1px}.ff_shortcode_btn_thin{background-color:#f2f2f2}.ff_shortcode_btn_md{font-size:15px;line-height:1.2;padding:10px 14px}.copy_btn{background-color:#e7e6e6;border-radius:4px;cursor:pointer;margin-right:auto;padding:1px 10px;transition:.2s}.copy_btn:hover{background-color:#d8d7d7}.ff_editor_html ul{list-style-type:disc;padding-right:3em}.ff_editor_html ol{list-style-type:decimal;margin-right:3em}.ff_section_block{margin-bottom:64px}.ff_section_block:last-child{margin-bottom:0}.ff_radio_list{display:flex;flex-direction:column}.ff_radio_list_item{margin-bottom:2px;width:100%}.ff_radio_list_item .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:6px!important;box-shadow:none!important;color:#606266;padding:13px 16px;text-align:right;transition:.2s;width:100%}.ff_radio_list_item .el-radio-button__inner:hover,.ff_radio_list_item.is-active .el-radio-button__inner{background-color:rgba(96,98,102,.1);color:#1e1f21}.is-sticky{position:fixed;top:40px;z-index:1020}.ff_section_desc{font-size:16px}.ff_section_head{margin-bottom:40px}.ff_section_head_between{display:flex;flex-wrap:wrap;justify-content:space-between}.ff_section_head.sm{margin-bottom:24px}.ff_section_head_content_group{align-items:center;display:flex}.ff_section_head .text{font-size:15px}.el-row{display:flex;flex-wrap:wrap}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.items_end{align-items:flex-end!important}.el-radio-button__inner{font-weight:400}.el-select-dropdown__item.selected{font-weight:500}.ff_layout_section{display:flex;min-height:550px;position:relative;width:100%}.ff_layout_section_sidebar{background-color:#fff;box-shadow:0 1px 3px rgba(30,31,33,.05);flex-shrink:0;padding:16px;vertical-align:top;width:230px}.ff_layout_section_container{flex:1;overflow-y:scroll;padding:16px}.ff_global_setting_wrap .ff_layout_section_sidebar,.ff_tools_wrap .ff_layout_section_sidebar{height:100%}.ff_global_settings_option{height:110vh;overflow-y:scroll}.ff_global_settings_option::-webkit-scrollbar{display:none}.ff_global_settings_option .el-form-item,.ff_global_settings_option .el-form-item-wrap{margin-bottom:24px}.ff_global_settings_option .el-form-item-wrap:last-child,.ff_global_settings_option .el-form-item:last-child{margin-bottom:0}.ff_global_settings_option .ff_card:not(:last-child){margin-bottom:32px}.ff_input_width{width:438px}.ff_input_full_width{width:100%}.ff_tooltip_wrap{font-size:14px;line-height:1.6;max-width:320px}.ff_tooltip_wrap h6{color:#fff}.ff-icon-gray{color:#757d8a}.el-form--label-top .el-form-item__label{line-height:1;padding-bottom:16px}.ff-form-item .el-form-item__label{align-items:center;color:#1e1f21;display:flex;font-size:15px;font-weight:500}.ff-form-item .el-form-item__label .ff-icon{margin-right:4px}.ff-form-item .el-form-item__content{line-height:1}.ff-form-item .el-icon-info,.ff-form-item .ff-icon-info-filled{font-size:13px}.ff-form-item .el-icon-info{color:#1a7efb;transform:rotate(14deg)}.el-select__tags input{background-color:transparent;border:none;line-height:2;margin-right:0;min-height:30px;padding:0 8px}.ff_alert{background-color:#e8f2ff;border-right:3px solid #1a7efb;border-radius:4px;padding:17px}.ff_alert_icon{display:inline-block;font-size:16px;margin-top:3px}.ff_alert_icon+.ff_alert_content{padding-right:10px}.ff_alert_group{display:flex}.ff_alert_sm{padding:10px}.ff_alert.success{background-color:#00b27f;border-right-color:#00b27f;color:#fff}.ff_alert.success-soft{background-color:#e6ffeb;border-right-color:#00b27f}.ff_alert.danger{background-color:#ff6154;border-right-color:#ff6154;color:#fff}.ff_alert.danger-soft{background-color:#ffefee;border-right-color:#ff6154}.ff_alert .text{font-size:14px;margin-bottom:12px;margin-top:6px}.ff_alert_between{align-items:center;display:flex;justify-content:space-between}.ff_alert_between .text{margin-bottom:0}.ff_alert_s2{border-right:0;border-radius:8px;padding:40px;text-align:center}.ff-form-item-flex{align-items:center;display:flex}.ff-form-item-flex .el-form-item__label{padding-bottom:0}.ff-form-item-flex.reverse{flex-direction:row-reverse;justify-content:flex-end}.ff-form-setting-label-width .el-form-item__label{width:390px}.el-switch input{border:0}.el-switch-lg .el-switch__core{border-radius:30px;height:24px;width:48px!important}.el-switch-lg .el-switch__core:after{height:20px;width:20px}.el-switch-lg.is-checked .el-switch__core:after{margin-right:-21px}.ff_block_title{font-weight:500}.el-form-item__label h6{font-size:15px;font-weight:500}.ff_checkbox_group_col_2{display:flex;flex-wrap:wrap}.ff_checkbox_group_col_2 .el-checkbox{line-height:1;margin-bottom:.75rem;margin-left:0;width:50%}.wp_vue_editor_wrapper{background-color:#fff;border:1px solid #dadbdd;border-radius:8px;overflow:hidden;position:relative}.wp_vue_editor_wrapper .wp-media-buttons{float:none;position:absolute;left:160px;top:10px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media{background-color:#e8f2ff;border-color:#e8f2ff;border-radius:6px;color:#1a7efb;font-weight:500;line-height:1;margin:0;min-height:30px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.wp_vue_editor_wrapper .popover-wrapper{padding:10px;position:absolute;left:0;top:0;z-index:2}.wp_vue_editor_wrapper .wp-editor-container{border:0}.wp_vue_editor_wrapper .wp-editor-tabs{float:none;padding:8px}.wp_vue_editor_wrapper .wp-switch-editor{background-color:transparent;border-color:transparent;border-radius:5px;float:none;font-size:14px;font-weight:500;height:auto;line-height:inherit;margin:0 4px 0 0;padding:7px 14px}.wp_vue_editor_wrapper .html-active .switch-html,.wp_vue_editor_wrapper .tmce-active .switch-tmce{background-color:#ededed;border-color:#dadbdd;color:#1e1f21}.wp_vue_editor_wrapper .switch-html{margin-right:0}.wp_vue_editor_wrapper .mce-top-part:before{box-shadow:none}.wp_vue_editor_wrapper .quicktags-toolbar,.wp_vue_editor_wrapper div.mce-toolbar-grp{background:#f1f1f0;border-bottom:0}.wp_vue_editor_wrapper .mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border:0;border-radius:4px;box-shadow:none}.wp_vue_editor_wrapper textarea{border:0;padding-top:15px}.wp-media-buttons .insert-media{padding-right:8px;padding-left:10px}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#1a7efb}.mce-panel.mce-menu{border-radius:8px}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:10px!important}.el-input-number__decrease{right:2px}.ff_state_box{border-radius:8px;display:block;padding:32px;text-align:center}.ff_icon_btn{align-items:center;background-color:#1a7efb;border-radius:50%;color:#fff;display:flex;font-size:28px;height:58px;justify-content:center;text-align:center;width:58px}.ff_icon_btn:focus,.ff_icon_btn:hover{color:#fff}.ff_icon_btn img{height:36px;-o-object-fit:contain;object-fit:contain}.ff_icon_btn.square{border-radius:12px}.ff_icon_btn.blue{background-color:#3b5998;color:#fff}.ff_icon_btn.blue-soft{background-color:#ebeef5;color:#3b5998}.ff_icon_btn.dark{background-color:#1e1f21;color:#fff}.ff_icon_btn.dark-soft{background-color:#e9e9e9;color:#1e1f21}.ff_icon_btn.primary-soft{background-color:#e8f2ff;color:#1a7efb}.ff_icon_btn.danger{background-color:#ff6154;color:#fff}.ff_icon_btn.danger-soft{background-color:#ffefee;color:#ff6154}.ff_icon_btn.success{background-color:#00b27f;color:#fff}.ff_icon_btn.success-soft{background-color:#e6ffeb;color:#00b27f}.ff_icon_btn.warning{background-color:#fcbe2d;color:#fff}.ff_icon_btn.warning-soft{background-color:#fff9ea;color:#fcbe2d}.ff_icon_btn.info{background-color:#4b4c4d;color:#fff}.ff_icon_btn.info-soft{background-color:#ededed;color:#4b4c4d}.ff_icon_btn.cyan{background-color:#0dcaf0;color:#fff}.ff_icon_btn.cyan-soft{background-color:#e7fafe;color:#0dcaf0}.ff_icon_btn.mini{font-size:12px;height:18px;width:18px}.ff_icon_btn.small{font-size:16px;height:27px;width:27px}.ff_icon_btn.md{font-size:26px;height:48px;width:48px}.ff_icon_btn.md img{height:28px;-o-object-fit:cover;object-fit:cover;-o-object-position:right;object-position:right;width:28px}.ff_icon_btn.lg{font-size:36px;height:72px;width:72px}.ff_btn_group{align-items:center;display:inline-flex;flex-wrap:wrap;margin:-6px}.ff_btn_group>*{margin-bottom:0;padding:6px}.ff_btn_group.sm{margin:-3px}.ff_btn_group.sm>*{padding:3px}.ff_btn_group_half{display:flex}.ff_btn_group_half>*{flex:1}.ff_btn_group_half .el-button{justify-content:center;width:100%}.file-input{background:#fff;border:1px solid #ececec;border-radius:8px;color:#606266;max-width:100%;padding:5px!important}.file-input::file-selector-button{background:#f2f2f2;border:none;border-radius:6px;color:#1e1f21;cursor:pointer;margin-left:6px;padding:6px 16px;transition:background .2s ease-in-out}.file-input::file-selector-button:hover{background:#ced0d4}.el-tag--pill{border-radius:50rem}.ff_radio_group{background-color:#f5f5f3;border-radius:8px;overflow:hidden}.ff_radio_group .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:0!important}.ff_radio_group .el-radio-button__inner:hover{color:#1e1f21}.ff_radio_group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;box-shadow:none;color:#fff}.ff_radio_group_s2{background:#fff;border:1px solid #edeae9;border-radius:8px;display:inline-flex;overflow:hidden}.ff_radio_group_s2 .el-radio-button:first-child .el-radio-button__inner{border-right:0}.ff_radio_group_s2 .el-radio-button:last-child .el-radio-button__inner{border-left:0}.ff_radio_group_s2 .el-radio-button__inner{border-color:transparent transparent transparent #edeae9}.el-input-gray .el-input__inner{background-color:#e7e6e6;border-color:#e7e6e6}.el-input-gray .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray .el-input__prefix{color:#606266}.el-input-gray-light .el-input__inner{background-color:#f5f5f3;border-color:#f5f5f3}.el-input-gray-light .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__prefix{color:#606266}.el-radio.is-bordered{margin-left:6px}.ff_media_group{align-items:center;display:flex}.ff_media_head+.ff_media_body{margin-right:16px}.ff_video_wrap{position:relative}.ff_video_wrap:after{background-color:#1e1f21;border-radius:8px;content:"";height:100%;right:0;opacity:.3;position:absolute;top:0;width:100%}.ff_video_img{border-radius:8px;display:block;width:100%}.ff_video_icon{right:50%;position:absolute;top:50%;transform:translate(50%,-50%);z-index:1}.ff-input-wrap{position:relative}.ff-input-wrap .el-icon{align-items:center;display:inline-flex;height:100%;right:0;padding-right:14px;position:absolute;top:0;z-index:2}.ff-input-wrap .el-icon+.el-input .el-input__inner,.ff-input-wrap .el-icon+input{padding-right:32px}.el-dialog-no-header .el-dialog__header{display:none}.el-radio-button-group{background-color:#fff;border:1px solid #ececec;border-radius:4px}.el-radio-button-group .el-radio-button__inner{background:transparent;border:0;padding:6px 9px}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner{border-right:0;border-radius:0 4px 4px 0}.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-radio-button-group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1a7efb;box-shadow:none}.el-color-picker__color{border-color:#d4edda;border-radius:3px}.ff_socials li{display:inline-block;margin-left:2px}.ff_socials li:last-child{margin-left:0}.ff_socials li a{background-color:#ededed;border-radius:50%;color:#606266;display:grid;height:32px;place-items:center;transition:.2s;width:32px}.ff_socials li a span{font-size:16px;height:auto;transition:0s;width:auto}.ff_socials li a:hover{background-color:#1a7efb;color:#fff}.ff-dropdown-menu .el-dropdown-menu__item{line-height:1.5;padding:6px 20px}.ff-dropdown-menu .el-dropdown-menu__item:hover{background-color:transparent}.truncate{display:block;max-width:188px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;max-width:inherit;white-space:inherit}.hover-y{transition:.3s}.hover-y:hover{transform:translateY(-2px)}.hover-zoom{transition:.3s}.hover-zoom:hover{transform:scale(1.03)}.ff_badge{align-items:center;background-color:#ededed;border:1px solid #dbdbdb;border-radius:30px;color:#4b4c4d;display:inline-flex;line-height:1.2;padding:2px 7px;text-transform:capitalize}.ff_badge.small{font-size:13px}.ff_badge_wrap{align-items:center;display:inline-flex}.ff_badge img{flex-shrink:0;height:14px;margin-left:4px}.ff_badge_active,.ff_badge_primary{background-color:#e8f2ff;border-color:#d1e5fe;color:#1a7efb}.ff_badge_paid{background-color:#e6f7f2;border-color:#ccf0e5;color:#00b27f}.ff_badge_processing{background-color:#e7fafe;border-color:#cff4fc;color:#0dcaf0}.ff_badge_pending{background-color:#fff9ea;border-color:#fef2d5;color:#fcbe2d}.ff_badge_failed{background-color:#ffefee;border-color:#ffdfdd;color:#ff6154}.ff_badge_visa{background-color:#e8e9ef;border-color:#dddee7;color:#192061}.ff_badge_mastercard{background-color:#ffefe6;border-color:#ffe7d9;color:#ff5f00}.ff_badge_amex{background-color:#f0f9fd;border-color:#e9f6fc;color:#6cc4ee}.ff_badge_paypal{background-color:#e6f5fc;border-color:#d9f0fa;color:#019ddd}.ff_badge_stripe{background-color:#eef0fb;border-color:#e5e9f9;color:#5469d4}.ff_badge.is-solid.ff_badge_active{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.ff_badge.is-solid.ff_badge_processing{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.ff_badge.is-solid.ff_badge_paid{background-color:#00b27f;border-color:#00b27f;color:#fff}.ff_badge.is-solid.ff_badge_pending{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.ff_badge.is-solid.ff_badge_cancelled,.ff_badge.is-solid.ff_badge_failed{background-color:#ff6154;border-color:#ff6154;color:#fff}.separator{background-color:rgba(96,98,102,.1);height:1px}.ff_choose_template_wrap .el-dialog{max-width:1280px}.ff_settings_container .notice{margin:0 0 20px}.global-search-wrapper{align-items:center;background:rgba(0,0,0,.7);display:flex;height:auto;inset:0;justify-content:center;min-height:100vh;padding:20px;position:fixed;z-index:999999999}.global-search-wrapper .global-search-container{background:#f6f6f7;border-radius:5px;overflow:auto;position:relative;width:700px}.global-search-wrapper .global-search-container input{font-size:17px;padding:3px 35px;width:100%}.global-search-wrapper .global-search-container ul.search-result li{background:#fff;border-radius:6px;box-shadow:0 1px 3px 0 #d4d9e1;color:#606266;cursor:pointer;display:block;font-size:15px;margin-right:0;margin-top:7px;padding:10px;transition:.2s}.global-search-wrapper .global-search-container ul.search-result li.active-search-link{background-color:#197efb;color:#fff;outline:0}.global-search-wrapper .global-search-container ul.search-result li:focus,.global-search-wrapper .global-search-container ul.search-result li:focus-visible{border:0;box-shadow:none;outline:0}.global-search-wrapper .global-search-container span.global-search-not-match{display:inline-block;font-size:16px;margin-top:6px}.global-search-wrapper .global-search-body{max-height:400px;min-height:200px;overflow-y:auto;padding:20px}.global-search-wrapper .search-commands{background:#fff;box-shadow:0 -1px 0 0 #efefef,0 -2px 6px 0 rgba(70,90,150,.1);color:#606266;display:flex;font-size:14px;justify-content:space-around;padding:12px}.global-search-wrapper .search-commands ul li{font-size:12px;margin-top:7px;padding:10px}.scroll{animation:down 2s ease-in-out infinite;-webkit-animation:down 2s ease-in-out infinite;cursor:pointer;height:26px;margin:0 auto;position:relative;width:60px}.scroll:before{border-bottom:2px solid #777;border-right:2px solid #777;content:"";height:16px;right:18px;position:absolute;top:24px;transform:rotate(45deg);width:16px}.ff_chained_ajax_field{display:flex;flex:auto;gap:10px}.ff_chained_ajax_field .el-select{flex-basis:100%}@keyframes down{0%{opacity:0;-webkit-transform:translateY(-14px)}50%{opacity:1}to{opacity:0;-webkit-transform:translateY(14px)}}.ff_sidebar_toggle{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 1px 10px rgba(0,0,0,.1);color:#000;cursor:pointer;display:none;font-size:18px;height:30px;justify-content:center;position:absolute;left:-21px;top:15px;width:30px}.text-capitalize{text-transform:capitalize}.el-notification__content{text-align:right}.action-buttons .el-button+.el-button{margin-right:0}.el-box-card{box-shadow:none}.el-box-footer,.el-box-header{background-color:#edf1f6;padding:15px}.el-box-body{padding:15px}.el-form-item__force-inline.el-form-item__label{float:right;padding:11px 0 11px 12px}.el-form-item .el-form-item{margin-bottom:10px}.el-form-item__content .line{text-align:center}.el-basic-collapse{border:0;margin-bottom:15px}.el-basic-collapse .el-collapse-item__header{border:0;display:inline-block;padding-right:0}.el-basic-collapse .el-collapse-item__wrap{border:0}.el-basic-collapse .el-collapse-item__content{background-color:#fff;padding:0}.el-collapse-settings{border:0}.el-collapse-settings .el-collapse-item__header{background:#f5f5f3;border:0;border-radius:8px;font-size:16px;padding-right:20px;padding-left:10px}.el-collapse-settings .el-collapse-item__header .el-collapse-item__arrow{font-size:16px;font-weight:500}.el-collapse-settings .el-collapse-item__content{margin-top:15px;padding-bottom:0}.el-collapse-settings .el-collapse-item__arrow{line-height:48px}.el-collapse-settings .el-collapse-item__wrap{background-color:transparent;border-bottom:0;overflow:inherit}.el-popover{text-align:right}.option-fields-section--content .el-form-item__label{color:#1e1f21;font-weight:500;line-height:1;padding-bottom:10px}.option-fields-section--content .el-form-item__content{line-height:1.5;margin-bottom:5px}.option-fields-section--content .el-input-number--mini{line-height:28px}.option-fields-section--content strong{color:#1e1f21;font-weight:600}.el-dropdown-list{border:0;box-shadow:none;margin:0;max-height:280px;min-width:auto;overflow-y:scroll;padding:0;position:static;z-index:10}.el-dropdown-list .el-dropdown-menu__item{border-bottom:1px solid #f1f1f1;font-size:13px;line-height:18px;padding:4px 10px}.el-dropdown-list .el-dropdown-menu__item:last-of-type{border-bottom:0}.el-popper[x-placement^=bottom] .popper__arrow{top:-7px}.el-form-nested.el-form--label-left .el-form-item__label{float:right;padding:10px 0 10px 5px}.el-message{top:40px}.el-tabs--border-card{border-color:#ececec;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.05)}.el-tabs--border-card .el-tabs__header{background-color:transparent;border-top-right-radius:6px;border-top-left-radius:6px;padding:10px 14px}.el-tabs--border-card .el-tabs__header .el-tabs__item{border:0;border-radius:6px;font-size:13px;height:34px;line-height:34px;margin-top:0;padding-right:16px;padding-left:16px}.el-tabs--border-card .el-tabs__header .el-tabs__item:first-child{margin-right:0}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active{background-color:#d1e5fe;color:#1a7efb}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active:hover{color:#1a7efb}.el-button{align-items:center;display:inline-flex;transition:.3s}.el-button .el-loading-mask{border-radius:7px}.el-button .el-loading-mask .el-loading-spinner{margin-top:-12px}.el-button .el-loading-mask .el-loading-spinner .circular{height:24px;width:24px}.el-button span{align-items:center;display:inline-flex}.el-button-group .el-button span{display:inline-block}.el-button--block{justify-content:center;width:100%}.el-button--small .ff-icon{font-size:14px}.el-button--large{font-size:16px;padding:15px 20px}.el-button--soft.el-button--blue{background-color:#ebeef5;border-color:#ebeef5;color:#3b5998}.el-button--soft.el-button--blue:hover{background-color:#3b5998;border-color:#3b5998;color:#fff}.el-button--soft.el-button--primary{background-color:#e8f2ff;border-color:#e8f2ff;color:#1a7efb}.el-button--soft.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--soft.el-button--danger{background-color:#ffefee;border-color:#ffefee;color:#ff6154}.el-button--soft.el-button--danger:hover{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-button--soft.el-button--success{background-color:#e6ffeb;border-color:#e6ffeb;color:#00b27f}.el-button--soft.el-button--success:hover{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-button--soft.el-button--warning{background-color:#fff9ea;border-color:#fff9ea;color:#fcbe2d}.el-button--soft.el-button--warning:hover{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--soft.el-button--info{background-color:#ededed;border-color:#ededed;color:#4b4c4d}.el-button--soft.el-button--info:hover{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--soft.el-button--cyan{background-color:#e7fafe;border-color:#e7fafe;color:#0dcaf0}.el-button--soft.el-button--cyan:hover{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.el-button--soft.el-button--dark{background-color:#e9e9e9;border-color:#e9e9e9;color:#1e1f21}.el-button--soft.el-button--dark:hover{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--soft-2.el-button--primary{background-color:#d1e5fe;border-color:#d1e5fe;color:#1a7efb}.el-button--soft-2.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--icon.el-button--mini{border-radius:4px;padding:7px}.el-button--icon.el-button--small{border-radius:5px;font-size:14px;padding:8px}.el-button--icon.el-button--medium{border-radius:6px;padding:10px}.el-button--text-light{color:#606266}.el-button--info.is-plain{border-color:#ededed}.el-button--dark{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--dark:focus,.el-button--dark:hover{background-color:#3a3a40;border-color:#3a3a40;color:#fff}.el-button--primary:hover{background-color:#1565c9;border-color:#1565c9}.el-pager li{font-weight:600}.form-editor-elements:not(.el-form--label-left):not(.el-form--label-right) .el-form-item__label{line-height:1}.folded .el-dialog__wrapper{right:36px}.el-dialog__wrapper .data-lost-msg{margin-top:10px}.ff-el-banner{border:1px solid #dce0e5;display:inline-block;float:right;height:250px;padding:5px;transition:border .3s;width:200px}.ff-el-banner,.ff-el-banner-group{overflow:hidden}.ff-el-banner-group .ff-el-banner{margin-bottom:30px;margin-left:10px}.ff-el-banner+.ff-el-banner{margin-left:10px}.ff-el-banner img{display:block;height:auto;width:100%}.ff-el-banner-header{background:#909399;color:#fff;font-size:13px;font-weight:400;margin:0;padding:3px 6px;text-align:center}.ff-el-banner-inner-item{height:inherit;overflow:hidden;position:relative}.ff-el-banner:hover .ff-el-banner-text-inside{opacity:1!important;visibility:visible!important}.ff-el-banner-text-inside{display:flex;flex-direction:column;justify-content:center}.ff-el-banner-text-inside-hoverable{bottom:0;color:#fff;right:0;padding:10px;position:absolute;left:0;top:0;transition:all .3s}.ff-el-banner-text-inside .form-title{color:#fff;margin:0 0 10px}.compact td>.cell,.compact th>.cell{white-space:nowrap}.el-tooltip__popper p{margin-bottom:0}.el-dropdown-menu{right:unset;max-width:270px}.el-dropdown-link{cursor:pointer}.el-dropdown-link-lg{color:#1e1f21;font-size:24px;font-weight:600}.el-dropdown-link-lg .el-icon{font-size:20px}.el-switch--small .el-switch__core{height:16px;width:28px!important}.el-switch--small .el-switch__core:after{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core:after{margin-right:-13px}.el-switch--small .el-switch__label *{font-size:13px;font-weight:500}.el-message-box__title{color:#1e1f21;font-weight:500}.el-input-group--append{position:relative}.el-input-group--append .el-input__inner{border-bottom-left-radius:8px;border-top-left-radius:8px}.el-input-group__append,.el-input-group__prepend{background-color:#f2f2f2;border:0;border-radius:5px;display:grid;height:30px;padding:0;position:absolute;text-align:center;top:5px;width:30px}.el-input-group__append:hover,.el-input-group__prepend:hover{background-color:#e0e0e0}.el-input-group__append .el-icon-more,.el-input-group__prepend .el-icon-more{transform:rotate(-90deg)}.el-input-group__append .el-button,.el-input-group__prepend .el-button{margin:0;padding:0}.el-input-group__append{left:4px}.el-input-group__prepend{right:4px}.el-table__fixed,.el-table__fixed-right{background-color:#fff}.el-table__fixed-right:before,.el-table__fixed:before{display:none}.el-radio-button__orig-radio:checked+.el-radio-button__inner{box-shadow:none}.input-with-select{align-items:center;display:flex}.input-with-select.el-input-group--append .el-input__inner{border-bottom-left-radius:0;border-top-left-radius:0}.input-with-select .el-select{background-color:#fff;border:1px solid #dadbdd;height:40px;margin:0}.input-with-select .el-select .el-input__inner{border:0}.input-with-select .el-input-group__append,.input-with-select .el-input-group__prepend{border-radius:0;flex:1;height:auto;right:0;position:inherit;top:0;width:auto}.input-with-select .el-input-group__append:hover,.input-with-select .el-input-group__prepend:hover{background-color:transparent}.input-with-select .el-input-group__prepend .el-select{border-bottom-right-radius:8px;border-left:0;border-top-right-radius:8px}.input-with-select .el-input-group__append .el-select{border-bottom-left-radius:8px;border-right:0;border-top-left-radius:8px}.chain-select-upload-button .el-input-group__append,.chain-select-upload-button .el-input-group__prepend{width:70px}.el-radio-group-dark .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1e1f21;border-color:#1e1f21}.el-radio-group-info .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;border-color:#4b4c4d}.el-table thead .cell{color:#1e1f21;font-weight:500}.el-table--border{border-radius:6px}.ff-input-s1 .el-input .el-select__caret{color:#1e1f21}.ff-input-s1 .el-input .el-icon-arrow-up:before{font-weight:600}.el-radio-button--small:first-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button--small:last-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-input--mini .el-input__inner{border-radius:4px}.el-input--large .el-input__inner{font-size:16px;height:48px;padding-right:20px;padding-left:20px}.el-input-number--mini{line-height:28px}.el-input-number--mini .el-input-number__decrease{border-radius:0 4px 4px 0;right:1px}.el-input-number--mini .el-input-number__increase{border-radius:4px 0 0 4px}.el-input-number__decrease,.el-input-number__increase{background-color:#f2f2f2}.el-dialog__header .title+.text{margin-top:6px}.el-dialog__header .text{margin-bottom:0}.el-dialog__header_group{align-items:center;display:flex}.el-checkbox-horizontal .el-checkbox{display:flex}.el-checkbox-horizontal .el-checkbox__input{align-self:flex-start;padding-top:3px}.el-skeleton__item{border-radius:4px}@media (min-width:1281px){.ff_screen_editor .form_internal_menu_inner{flex-direction:row}.ff_screen_editor .form_internal_menu_inner .ff_menu{margin-right:0;padding-bottom:0}.ff_screen_conversational_design .ff_menu_back,.ff_screen_editor .ff_menu_back,.ff_screen_entries .ff_menu_back,.ff_screen_inventory_list .ff_menu_back,.ff_screen_msformentries .ff_menu_back,.ff_screen_settings .ff_menu_back{display:flex}.option-fields-section--content .v-row{flex-direction:row}.option-fields-section--content .v-col--50{padding-bottom:0;width:50%}.form-editor--body{padding:50px;width:65%}.form-editor--sidebar{width:35%}}@media (min-width:769px){.ff_header{align-items:center;flex-direction:row}.ff_header_group{margin-left:32px}.ff_menu{display:flex;margin-top:0}.ff_menu_toggle{display:none}.ff_form_wrap{padding-right:24px;padding-left:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_editor,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:0}}@media (min-width:1025px){.all-forms-search,.ff_entries_search_wrap{width:270px}.ff_entries_search_wrap{margin-right:auto}.all-forms-select{width:250px}.ff_layout_section_sidebar{width:280px}.ff_layout_section_container,.ff_layout_section_sidebar{padding:24px}.fluent_activation_wrapper .fluentform_label{width:470px}}@media (max-width:768px){.form_internal_menu{margin-right:-10px}.form_internal_menu ul.ff_setting_menu{float:left;padding-left:10px!important}.form_internal_menu ul.ff_setting_menu li a{padding:10px 3px!important}.form_internal_menu .ff_form_name_inner{max-width:100px}.form_internal_menu #switchScreen{margin-left:0;margin-top:14px}.ff_nav_action{float:left!important;text-align:right!important}input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{min-height:30px}.ff_form_main_nav .plugin-name{display:none}.row-actions{display:inline-block!important}.el-form .el-form-item .el-form-item__label{width:100%!important}.el-form .el-form-item .el-form-item__content{margin-right:0!important}.el-tabs__content{padding:20px 10px!important}.wpf_each_entry a{word-break:break-all}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu{top:0!important}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{display:block}.form_internal_menu_inner{background:#fff;border-radius:8px;box-shadow:0 1px 10px rgba(0,0,0,.2);display:none;flex-direction:column;padding:20px;position:absolute;left:20px;top:38px;width:300px;z-index:9999}.form_internal_menu_inner.active{display:flex}.ff_form_name{padding-bottom:10px;padding-top:10px}.ff_screen_editor .form_internal_menu_inner .ff_menu,.form_internal_menu .ff-navigation-right{margin-right:0}.ff_menu{align-items:flex-start;flex-direction:column;margin-bottom:10px}.ff_menu li{width:100%}.ff_menu li a{display:block;max-width:100%!important}.form_internal_menu .ff-navigation-right{align-items:flex-start}.ff-navigation-right{flex-direction:column}.form_internal_menu .el-button,.form_internal_menu .ff_shortcode_btn{margin-bottom:10px;margin-left:0}.form_internal_menu .ff-navigation-right .ff_more_menu{bottom:0;left:0;top:auto;transform:translateY(0)}.ff_screen_conversational_design .ff_menu,.ff_screen_editor .ff_menu,.ff_screen_entries .ff_menu,.ff_screen_inventory_list .ff_menu,.ff_screen_msformentries .ff_menu,.ff_screen_settings .ff_menu{padding-right:0;padding-left:0}.ff_tools_wrap .ff_settings_sidebar_wrap{height:100%}.ff_settings_sidebar_wrap{flex-shrink:0;right:-240px;position:absolute;transition:.3s;z-index:999}.ff_settings_sidebar_wrap.active{right:-10px}.ff_settings_sidebar_wrap.active .ff_layout_section_sidebar{box-shadow:-2px 1px 10px 0 rgba(30,31,33,.1)}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle{left:-18px}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle .ff-icon:before{content:"\e919"}.ff_sidebar_toggle{display:flex}.ff_header{margin-right:-10px;position:relative}.ff_header .global-search-menu-button{position:absolute;left:60px;top:12px}.conditional-logic{flex-direction:column}.conditional-logic>*{width:100%}.el-radio-button-group{border:0}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner,.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner,.el-radio-button-group .el-radio-button__inner{border-radius:4px}}@media (max-width:425px){label.el-checkbox{display:inline-flex}.el-checkbox__label{white-space:normal}.el-checkbox__input{line-height:1.6}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{margin-left:0}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right a,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right button,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right span{font-size:10px;margin:0 3px;padding:5px 4px!important}#ff_form_entries_app .ff_nav_top .ff_nav_action,#ff_form_entries_app .ff_nav_top .ff_nav_title{margin-bottom:10px;width:100%}.form_internal_menu{margin:0 -10px;width:auto}.form_internal_menu ul.ff_setting_menu li a{font-size:11px}.ff_form_application_container{margin-top:0!important}.ff_form_main_nav .ninja-tab{font-size:12px;margin:0;padding:10px 5px}ul.el-pager{display:none!important}button.el-button.pull-right{float:right!important}.entry_header h3{clear:both;display:block;width:100%!important}.v-row .v-col--33{margin-bottom:15px;padding-left:0;width:100%!important}.v-row .v-col--33:last-child{margin-bottom:0}.option-fields-section--content{padding:15px 5px}.ff-add-confirmation-wrap .el-radio.is-bordered{margin-bottom:10px;margin-left:10px}.ff-add-confirmation-wrap .el-radio.is-bordered+.el-radio.is-bordered{margin-right:0}.ff-form-item-flex{flex-wrap:wrap;gap:10px}.ff_pagination_wrap.mt-4{margin-top:0!important}.ff_pagination{flex-wrap:wrap;margin-top:24px}.ff_pagination .el-pagination__jump{margin:10px 0 0}.ff_all_entries .ff_section_head_content{margin-top:24px}.ff_all_entries .ff_section_head_content .ff_advanced_search{left:unset}.ff_all_entries .ff_entries_details .ff_section_head .lead-title{margin-bottom:10px!important}.ff_all_entries .ff_entries_details .ff_radio_group_wrap{margin-bottom:10px;margin-top:10px}.ff_all_entries .ff_entries_details .ff_radio_group_wrap .ff_radio_group_s2{width:100%}}.el-popover{text-align:right!important;word-break:inherit!important}.ff_documentaion_wrapper .el-col{margin-bottom:24px}.ff_upgrade_btn_large{border-color:#fff;color:#1a7efb;font-size:16px;font-weight:600;padding:18px 24px;text-transform:uppercase}.has-mask{position:relative;z-index:1}.mask{z-index:-1}.mask,.mask-1{height:100%;right:0;position:absolute;top:0;width:100%}.mask-1{background-image:url(../images/grid-shape.png?b12daadc3a0a644f1d2df47851c3dde8);background-position:50%;background-repeat:no-repeat}.mask-2{background-image:url(../images/shape.png?4652d2db152400ac6baa71685d89ece1);right:50%;top:20px}.mask-2,.mask-3{background-repeat:no-repeat;height:52px;position:absolute;width:63px}.mask-3{background-image:url(../images/shape-2.png?aaa6a6c1eeea29c475a320494a9d7a0f);right:26px;top:14px}.ff_addon_wrapper{margin:45px auto;max-width:950px}.ff_addon_wrapper .ff_addon_header p{font-size:16px}.ff_addon_wrapper .ff_addon_banner{border-radius:8px;max-width:100%}.ff_addon_wrapper .ff_addon_btn{background:#fff;border:2px solid #c716c1;border-radius:8px;color:#c716c1;cursor:pointer;display:inline-block;font-size:18px;padding:14px 30px;text-decoration:none}.ff_addon_wrapper .ff_addon_btn.ff_invert{background:#c716c1;color:#fff}.ff_addon_wrapper .ff_addon_btn.ff_invert:hover{background:#fff;color:#c716c1}.ff_addon_wrapper .ff_addon_btn:hover{background:#c716c1;color:#fff} assets/css/element-ui-css.css000064400000677241147600120010012212 0ustar00@font-face{font-display:"auto";font-family:element-icons;font-style:normal;font-weight:400;src:url(../fonts/element-icons.woff?313f7dacf2076822059d2dca26dedfc6) format("woff"),url(../fonts/element-icons.ttf?4520188144a17fb24a6af28a70dae0ce) format("truetype")}[class*=" el-icon-"],[class^=el-icon-]{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:element-icons!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;vertical-align:baseline}.el-icon-ice-cream-round:before{content:"\e6a0"}.el-icon-ice-cream-square:before{content:"\e6a3"}.el-icon-lollipop:before{content:"\e6a4"}.el-icon-potato-strips:before{content:"\e6a5"}.el-icon-milk-tea:before{content:"\e6a6"}.el-icon-ice-drink:before{content:"\e6a7"}.el-icon-ice-tea:before{content:"\e6a9"}.el-icon-coffee:before{content:"\e6aa"}.el-icon-orange:before{content:"\e6ab"}.el-icon-pear:before{content:"\e6ac"}.el-icon-apple:before{content:"\e6ad"}.el-icon-cherry:before{content:"\e6ae"}.el-icon-watermelon:before{content:"\e6af"}.el-icon-grape:before{content:"\e6b0"}.el-icon-refrigerator:before{content:"\e6b1"}.el-icon-goblet-square-full:before{content:"\e6b2"}.el-icon-goblet-square:before{content:"\e6b3"}.el-icon-goblet-full:before{content:"\e6b4"}.el-icon-goblet:before{content:"\e6b5"}.el-icon-cold-drink:before{content:"\e6b6"}.el-icon-coffee-cup:before{content:"\e6b8"}.el-icon-water-cup:before{content:"\e6b9"}.el-icon-hot-water:before{content:"\e6ba"}.el-icon-ice-cream:before{content:"\e6bb"}.el-icon-dessert:before{content:"\e6bc"}.el-icon-sugar:before{content:"\e6bd"}.el-icon-tableware:before{content:"\e6be"}.el-icon-burger:before{content:"\e6bf"}.el-icon-knife-fork:before{content:"\e6c1"}.el-icon-fork-spoon:before{content:"\e6c2"}.el-icon-chicken:before{content:"\e6c3"}.el-icon-food:before{content:"\e6c4"}.el-icon-dish-1:before{content:"\e6c5"}.el-icon-dish:before{content:"\e6c6"}.el-icon-moon-night:before{content:"\e6ee"}.el-icon-moon:before{content:"\e6f0"}.el-icon-cloudy-and-sunny:before{content:"\e6f1"}.el-icon-partly-cloudy:before{content:"\e6f2"}.el-icon-cloudy:before{content:"\e6f3"}.el-icon-sunny:before{content:"\e6f6"}.el-icon-sunset:before{content:"\e6f7"}.el-icon-sunrise-1:before{content:"\e6f8"}.el-icon-sunrise:before{content:"\e6f9"}.el-icon-heavy-rain:before{content:"\e6fa"}.el-icon-lightning:before{content:"\e6fb"}.el-icon-light-rain:before{content:"\e6fc"}.el-icon-wind-power:before{content:"\e6fd"}.el-icon-baseball:before{content:"\e712"}.el-icon-soccer:before{content:"\e713"}.el-icon-football:before{content:"\e715"}.el-icon-basketball:before{content:"\e716"}.el-icon-ship:before{content:"\e73f"}.el-icon-truck:before{content:"\e740"}.el-icon-bicycle:before{content:"\e741"}.el-icon-mobile-phone:before{content:"\e6d3"}.el-icon-service:before{content:"\e6d4"}.el-icon-key:before{content:"\e6e2"}.el-icon-unlock:before{content:"\e6e4"}.el-icon-lock:before{content:"\e6e5"}.el-icon-watch:before{content:"\e6fe"}.el-icon-watch-1:before{content:"\e6ff"}.el-icon-timer:before{content:"\e702"}.el-icon-alarm-clock:before{content:"\e703"}.el-icon-map-location:before{content:"\e704"}.el-icon-delete-location:before{content:"\e705"}.el-icon-add-location:before{content:"\e706"}.el-icon-location-information:before{content:"\e707"}.el-icon-location-outline:before{content:"\e708"}.el-icon-location:before{content:"\e79e"}.el-icon-place:before{content:"\e709"}.el-icon-discover:before{content:"\e70a"}.el-icon-first-aid-kit:before{content:"\e70b"}.el-icon-trophy-1:before{content:"\e70c"}.el-icon-trophy:before{content:"\e70d"}.el-icon-medal:before{content:"\e70e"}.el-icon-medal-1:before{content:"\e70f"}.el-icon-stopwatch:before{content:"\e710"}.el-icon-mic:before{content:"\e711"}.el-icon-copy-document:before{content:"\e718"}.el-icon-full-screen:before{content:"\e719"}.el-icon-switch-button:before{content:"\e71b"}.el-icon-aim:before{content:"\e71c"}.el-icon-crop:before{content:"\e71d"}.el-icon-odometer:before{content:"\e71e"}.el-icon-time:before{content:"\e71f"}.el-icon-bangzhu:before{content:"\e724"}.el-icon-close-notification:before{content:"\e726"}.el-icon-microphone:before{content:"\e727"}.el-icon-turn-off-microphone:before{content:"\e728"}.el-icon-position:before{content:"\e729"}.el-icon-postcard:before{content:"\e72a"}.el-icon-message:before{content:"\e72b"}.el-icon-chat-line-square:before{content:"\e72d"}.el-icon-chat-dot-square:before{content:"\e72e"}.el-icon-chat-dot-round:before{content:"\e72f"}.el-icon-chat-square:before{content:"\e730"}.el-icon-chat-line-round:before{content:"\e731"}.el-icon-chat-round:before{content:"\e732"}.el-icon-set-up:before{content:"\e733"}.el-icon-turn-off:before{content:"\e734"}.el-icon-open:before{content:"\e735"}.el-icon-connection:before{content:"\e736"}.el-icon-link:before{content:"\e737"}.el-icon-cpu:before{content:"\e738"}.el-icon-thumb:before{content:"\e739"}.el-icon-female:before{content:"\e73a"}.el-icon-male:before{content:"\e73b"}.el-icon-guide:before{content:"\e73c"}.el-icon-news:before{content:"\e73e"}.el-icon-price-tag:before{content:"\e744"}.el-icon-discount:before{content:"\e745"}.el-icon-wallet:before{content:"\e747"}.el-icon-coin:before{content:"\e748"}.el-icon-money:before{content:"\e749"}.el-icon-bank-card:before{content:"\e74a"}.el-icon-box:before{content:"\e74b"}.el-icon-present:before{content:"\e74c"}.el-icon-sell:before{content:"\e6d5"}.el-icon-sold-out:before{content:"\e6d6"}.el-icon-shopping-bag-2:before{content:"\e74d"}.el-icon-shopping-bag-1:before{content:"\e74e"}.el-icon-shopping-cart-2:before{content:"\e74f"}.el-icon-shopping-cart-1:before{content:"\e750"}.el-icon-shopping-cart-full:before{content:"\e751"}.el-icon-smoking:before{content:"\e752"}.el-icon-no-smoking:before{content:"\e753"}.el-icon-house:before{content:"\e754"}.el-icon-table-lamp:before{content:"\e755"}.el-icon-school:before{content:"\e756"}.el-icon-office-building:before{content:"\e757"}.el-icon-toilet-paper:before{content:"\e758"}.el-icon-notebook-2:before{content:"\e759"}.el-icon-notebook-1:before{content:"\e75a"}.el-icon-files:before{content:"\e75b"}.el-icon-collection:before{content:"\e75c"}.el-icon-receiving:before{content:"\e75d"}.el-icon-suitcase-1:before{content:"\e760"}.el-icon-suitcase:before{content:"\e761"}.el-icon-film:before{content:"\e763"}.el-icon-collection-tag:before{content:"\e765"}.el-icon-data-analysis:before{content:"\e766"}.el-icon-pie-chart:before{content:"\e767"}.el-icon-data-board:before{content:"\e768"}.el-icon-data-line:before{content:"\e76d"}.el-icon-reading:before{content:"\e769"}.el-icon-magic-stick:before{content:"\e76a"}.el-icon-coordinate:before{content:"\e76b"}.el-icon-mouse:before{content:"\e76c"}.el-icon-brush:before{content:"\e76e"}.el-icon-headset:before{content:"\e76f"}.el-icon-umbrella:before{content:"\e770"}.el-icon-scissors:before{content:"\e771"}.el-icon-mobile:before{content:"\e773"}.el-icon-attract:before{content:"\e774"}.el-icon-monitor:before{content:"\e775"}.el-icon-search:before{content:"\e778"}.el-icon-takeaway-box:before{content:"\e77a"}.el-icon-paperclip:before{content:"\e77d"}.el-icon-printer:before{content:"\e77e"}.el-icon-document-add:before{content:"\e782"}.el-icon-document:before{content:"\e785"}.el-icon-document-checked:before{content:"\e786"}.el-icon-document-copy:before{content:"\e787"}.el-icon-document-delete:before{content:"\e788"}.el-icon-document-remove:before{content:"\e789"}.el-icon-tickets:before{content:"\e78b"}.el-icon-folder-checked:before{content:"\e77f"}.el-icon-folder-delete:before{content:"\e780"}.el-icon-folder-remove:before{content:"\e781"}.el-icon-folder-add:before{content:"\e783"}.el-icon-folder-opened:before{content:"\e784"}.el-icon-folder:before{content:"\e78a"}.el-icon-edit-outline:before{content:"\e764"}.el-icon-edit:before{content:"\e78c"}.el-icon-date:before{content:"\e78e"}.el-icon-c-scale-to-original:before{content:"\e7c6"}.el-icon-view:before{content:"\e6ce"}.el-icon-loading:before{content:"\e6cf"}.el-icon-rank:before{content:"\e6d1"}.el-icon-sort-down:before{content:"\e7c4"}.el-icon-sort-up:before{content:"\e7c5"}.el-icon-sort:before{content:"\e6d2"}.el-icon-finished:before{content:"\e6cd"}.el-icon-refresh-left:before{content:"\e6c7"}.el-icon-refresh-right:before{content:"\e6c8"}.el-icon-refresh:before{content:"\e6d0"}.el-icon-video-play:before{content:"\e7c0"}.el-icon-video-pause:before{content:"\e7c1"}.el-icon-d-arrow-right:before{content:"\e6dc"}.el-icon-d-arrow-left:before{content:"\e6dd"}.el-icon-arrow-up:before{content:"\e6e1"}.el-icon-arrow-down:before{content:"\e6df"}.el-icon-arrow-right:before{content:"\e6e0"}.el-icon-arrow-left:before{content:"\e6de"}.el-icon-top-right:before{content:"\e6e7"}.el-icon-top-left:before{content:"\e6e8"}.el-icon-top:before{content:"\e6e6"}.el-icon-bottom:before{content:"\e6eb"}.el-icon-right:before{content:"\e6e9"}.el-icon-back:before{content:"\e6ea"}.el-icon-bottom-right:before{content:"\e6ec"}.el-icon-bottom-left:before{content:"\e6ed"}.el-icon-caret-top:before{content:"\e78f"}.el-icon-caret-bottom:before{content:"\e790"}.el-icon-caret-right:before{content:"\e791"}.el-icon-caret-left:before{content:"\e792"}.el-icon-d-caret:before{content:"\e79a"}.el-icon-share:before{content:"\e793"}.el-icon-menu:before{content:"\e798"}.el-icon-s-grid:before{content:"\e7a6"}.el-icon-s-check:before{content:"\e7a7"}.el-icon-s-data:before{content:"\e7a8"}.el-icon-s-opportunity:before{content:"\e7aa"}.el-icon-s-custom:before{content:"\e7ab"}.el-icon-s-claim:before{content:"\e7ad"}.el-icon-s-finance:before{content:"\e7ae"}.el-icon-s-comment:before{content:"\e7af"}.el-icon-s-flag:before{content:"\e7b0"}.el-icon-s-marketing:before{content:"\e7b1"}.el-icon-s-shop:before{content:"\e7b4"}.el-icon-s-open:before{content:"\e7b5"}.el-icon-s-management:before{content:"\e7b6"}.el-icon-s-ticket:before{content:"\e7b7"}.el-icon-s-release:before{content:"\e7b8"}.el-icon-s-home:before{content:"\e7b9"}.el-icon-s-promotion:before{content:"\e7ba"}.el-icon-s-operation:before{content:"\e7bb"}.el-icon-s-unfold:before{content:"\e7bc"}.el-icon-s-fold:before{content:"\e7a9"}.el-icon-s-platform:before{content:"\e7bd"}.el-icon-s-order:before{content:"\e7be"}.el-icon-s-cooperation:before{content:"\e7bf"}.el-icon-bell:before{content:"\e725"}.el-icon-message-solid:before{content:"\e799"}.el-icon-video-camera:before{content:"\e772"}.el-icon-video-camera-solid:before{content:"\e796"}.el-icon-camera:before{content:"\e779"}.el-icon-camera-solid:before{content:"\e79b"}.el-icon-download:before{content:"\e77c"}.el-icon-upload2:before{content:"\e77b"}.el-icon-upload:before{content:"\e7c3"}.el-icon-picture-outline-round:before{content:"\e75f"}.el-icon-picture-outline:before{content:"\e75e"}.el-icon-picture:before{content:"\e79f"}.el-icon-close:before{content:"\e6db"}.el-icon-check:before{content:"\e6da"}.el-icon-plus:before{content:"\e6d9"}.el-icon-minus:before{content:"\e6d8"}.el-icon-help:before{content:"\e73d"}.el-icon-s-help:before{content:"\e7b3"}.el-icon-circle-close:before{content:"\e78d"}.el-icon-circle-check:before{content:"\e720"}.el-icon-circle-plus-outline:before{content:"\e723"}.el-icon-remove-outline:before{content:"\e722"}.el-icon-zoom-out:before{content:"\e776"}.el-icon-zoom-in:before{content:"\e777"}.el-icon-error:before{content:"\e79d"}.el-icon-success:before{content:"\e79c"}.el-icon-circle-plus:before{content:"\e7a0"}.el-icon-remove:before{content:"\e7a2"}.el-icon-info:before{content:"\e7a1"}.el-icon-question:before{content:"\e7a4"}.el-icon-warning-outline:before{content:"\e6c9"}.el-icon-warning:before{content:"\e7a3"}.el-icon-goods:before{content:"\e7c2"}.el-icon-s-goods:before{content:"\e7b2"}.el-icon-star-off:before{content:"\e717"}.el-icon-star-on:before{content:"\e797"}.el-icon-more-outline:before{content:"\e6cc"}.el-icon-more:before{content:"\e794"}.el-icon-phone-outline:before{content:"\e6cb"}.el-icon-phone:before{content:"\e795"}.el-icon-user:before{content:"\e6e3"}.el-icon-user-solid:before{content:"\e7a5"}.el-icon-setting:before{content:"\e6ca"}.el-icon-s-tools:before{content:"\e7ac"}.el-icon-delete:before{content:"\e6d7"}.el-icon-delete-solid:before{content:"\e7c9"}.el-icon-eleme:before{content:"\e7c7"}.el-icon-platform-eleme:before{content:"\e7ca"}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}} @font-face{font-display:"auto";font-family:element-icons;font-style:normal;font-weight:400;src:url(../fonts/vendor/element-ui/packages/theme-chalk/src/element-icons.woff?313f7dacf2076822059d2dca26dedfc6) format("woff"),url(../fonts/vendor/element-ui/packages/theme-chalk/src/element-icons.ttf?4520188144a17fb24a6af28a70dae0ce) format("truetype")}[class*=" el-icon-"],[class^=el-icon-]{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:element-icons!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;vertical-align:baseline}.el-icon-ice-cream-round:before{content:"\e6a0"}.el-icon-ice-cream-square:before{content:"\e6a3"}.el-icon-lollipop:before{content:"\e6a4"}.el-icon-potato-strips:before{content:"\e6a5"}.el-icon-milk-tea:before{content:"\e6a6"}.el-icon-ice-drink:before{content:"\e6a7"}.el-icon-ice-tea:before{content:"\e6a9"}.el-icon-coffee:before{content:"\e6aa"}.el-icon-orange:before{content:"\e6ab"}.el-icon-pear:before{content:"\e6ac"}.el-icon-apple:before{content:"\e6ad"}.el-icon-cherry:before{content:"\e6ae"}.el-icon-watermelon:before{content:"\e6af"}.el-icon-grape:before{content:"\e6b0"}.el-icon-refrigerator:before{content:"\e6b1"}.el-icon-goblet-square-full:before{content:"\e6b2"}.el-icon-goblet-square:before{content:"\e6b3"}.el-icon-goblet-full:before{content:"\e6b4"}.el-icon-goblet:before{content:"\e6b5"}.el-icon-cold-drink:before{content:"\e6b6"}.el-icon-coffee-cup:before{content:"\e6b8"}.el-icon-water-cup:before{content:"\e6b9"}.el-icon-hot-water:before{content:"\e6ba"}.el-icon-ice-cream:before{content:"\e6bb"}.el-icon-dessert:before{content:"\e6bc"}.el-icon-sugar:before{content:"\e6bd"}.el-icon-tableware:before{content:"\e6be"}.el-icon-burger:before{content:"\e6bf"}.el-icon-knife-fork:before{content:"\e6c1"}.el-icon-fork-spoon:before{content:"\e6c2"}.el-icon-chicken:before{content:"\e6c3"}.el-icon-food:before{content:"\e6c4"}.el-icon-dish-1:before{content:"\e6c5"}.el-icon-dish:before{content:"\e6c6"}.el-icon-moon-night:before{content:"\e6ee"}.el-icon-moon:before{content:"\e6f0"}.el-icon-cloudy-and-sunny:before{content:"\e6f1"}.el-icon-partly-cloudy:before{content:"\e6f2"}.el-icon-cloudy:before{content:"\e6f3"}.el-icon-sunny:before{content:"\e6f6"}.el-icon-sunset:before{content:"\e6f7"}.el-icon-sunrise-1:before{content:"\e6f8"}.el-icon-sunrise:before{content:"\e6f9"}.el-icon-heavy-rain:before{content:"\e6fa"}.el-icon-lightning:before{content:"\e6fb"}.el-icon-light-rain:before{content:"\e6fc"}.el-icon-wind-power:before{content:"\e6fd"}.el-icon-baseball:before{content:"\e712"}.el-icon-soccer:before{content:"\e713"}.el-icon-football:before{content:"\e715"}.el-icon-basketball:before{content:"\e716"}.el-icon-ship:before{content:"\e73f"}.el-icon-truck:before{content:"\e740"}.el-icon-bicycle:before{content:"\e741"}.el-icon-mobile-phone:before{content:"\e6d3"}.el-icon-service:before{content:"\e6d4"}.el-icon-key:before{content:"\e6e2"}.el-icon-unlock:before{content:"\e6e4"}.el-icon-lock:before{content:"\e6e5"}.el-icon-watch:before{content:"\e6fe"}.el-icon-watch-1:before{content:"\e6ff"}.el-icon-timer:before{content:"\e702"}.el-icon-alarm-clock:before{content:"\e703"}.el-icon-map-location:before{content:"\e704"}.el-icon-delete-location:before{content:"\e705"}.el-icon-add-location:before{content:"\e706"}.el-icon-location-information:before{content:"\e707"}.el-icon-location-outline:before{content:"\e708"}.el-icon-location:before{content:"\e79e"}.el-icon-place:before{content:"\e709"}.el-icon-discover:before{content:"\e70a"}.el-icon-first-aid-kit:before{content:"\e70b"}.el-icon-trophy-1:before{content:"\e70c"}.el-icon-trophy:before{content:"\e70d"}.el-icon-medal:before{content:"\e70e"}.el-icon-medal-1:before{content:"\e70f"}.el-icon-stopwatch:before{content:"\e710"}.el-icon-mic:before{content:"\e711"}.el-icon-copy-document:before{content:"\e718"}.el-icon-full-screen:before{content:"\e719"}.el-icon-switch-button:before{content:"\e71b"}.el-icon-aim:before{content:"\e71c"}.el-icon-crop:before{content:"\e71d"}.el-icon-odometer:before{content:"\e71e"}.el-icon-time:before{content:"\e71f"}.el-icon-bangzhu:before{content:"\e724"}.el-icon-close-notification:before{content:"\e726"}.el-icon-microphone:before{content:"\e727"}.el-icon-turn-off-microphone:before{content:"\e728"}.el-icon-position:before{content:"\e729"}.el-icon-postcard:before{content:"\e72a"}.el-icon-message:before{content:"\e72b"}.el-icon-chat-line-square:before{content:"\e72d"}.el-icon-chat-dot-square:before{content:"\e72e"}.el-icon-chat-dot-round:before{content:"\e72f"}.el-icon-chat-square:before{content:"\e730"}.el-icon-chat-line-round:before{content:"\e731"}.el-icon-chat-round:before{content:"\e732"}.el-icon-set-up:before{content:"\e733"}.el-icon-turn-off:before{content:"\e734"}.el-icon-open:before{content:"\e735"}.el-icon-connection:before{content:"\e736"}.el-icon-link:before{content:"\e737"}.el-icon-cpu:before{content:"\e738"}.el-icon-thumb:before{content:"\e739"}.el-icon-female:before{content:"\e73a"}.el-icon-male:before{content:"\e73b"}.el-icon-guide:before{content:"\e73c"}.el-icon-news:before{content:"\e73e"}.el-icon-price-tag:before{content:"\e744"}.el-icon-discount:before{content:"\e745"}.el-icon-wallet:before{content:"\e747"}.el-icon-coin:before{content:"\e748"}.el-icon-money:before{content:"\e749"}.el-icon-bank-card:before{content:"\e74a"}.el-icon-box:before{content:"\e74b"}.el-icon-present:before{content:"\e74c"}.el-icon-sell:before{content:"\e6d5"}.el-icon-sold-out:before{content:"\e6d6"}.el-icon-shopping-bag-2:before{content:"\e74d"}.el-icon-shopping-bag-1:before{content:"\e74e"}.el-icon-shopping-cart-2:before{content:"\e74f"}.el-icon-shopping-cart-1:before{content:"\e750"}.el-icon-shopping-cart-full:before{content:"\e751"}.el-icon-smoking:before{content:"\e752"}.el-icon-no-smoking:before{content:"\e753"}.el-icon-house:before{content:"\e754"}.el-icon-table-lamp:before{content:"\e755"}.el-icon-school:before{content:"\e756"}.el-icon-office-building:before{content:"\e757"}.el-icon-toilet-paper:before{content:"\e758"}.el-icon-notebook-2:before{content:"\e759"}.el-icon-notebook-1:before{content:"\e75a"}.el-icon-files:before{content:"\e75b"}.el-icon-collection:before{content:"\e75c"}.el-icon-receiving:before{content:"\e75d"}.el-icon-suitcase-1:before{content:"\e760"}.el-icon-suitcase:before{content:"\e761"}.el-icon-film:before{content:"\e763"}.el-icon-collection-tag:before{content:"\e765"}.el-icon-data-analysis:before{content:"\e766"}.el-icon-pie-chart:before{content:"\e767"}.el-icon-data-board:before{content:"\e768"}.el-icon-data-line:before{content:"\e76d"}.el-icon-reading:before{content:"\e769"}.el-icon-magic-stick:before{content:"\e76a"}.el-icon-coordinate:before{content:"\e76b"}.el-icon-mouse:before{content:"\e76c"}.el-icon-brush:before{content:"\e76e"}.el-icon-headset:before{content:"\e76f"}.el-icon-umbrella:before{content:"\e770"}.el-icon-scissors:before{content:"\e771"}.el-icon-mobile:before{content:"\e773"}.el-icon-attract:before{content:"\e774"}.el-icon-monitor:before{content:"\e775"}.el-icon-search:before{content:"\e778"}.el-icon-takeaway-box:before{content:"\e77a"}.el-icon-paperclip:before{content:"\e77d"}.el-icon-printer:before{content:"\e77e"}.el-icon-document-add:before{content:"\e782"}.el-icon-document:before{content:"\e785"}.el-icon-document-checked:before{content:"\e786"}.el-icon-document-copy:before{content:"\e787"}.el-icon-document-delete:before{content:"\e788"}.el-icon-document-remove:before{content:"\e789"}.el-icon-tickets:before{content:"\e78b"}.el-icon-folder-checked:before{content:"\e77f"}.el-icon-folder-delete:before{content:"\e780"}.el-icon-folder-remove:before{content:"\e781"}.el-icon-folder-add:before{content:"\e783"}.el-icon-folder-opened:before{content:"\e784"}.el-icon-folder:before{content:"\e78a"}.el-icon-edit-outline:before{content:"\e764"}.el-icon-edit:before{content:"\e78c"}.el-icon-date:before{content:"\e78e"}.el-icon-c-scale-to-original:before{content:"\e7c6"}.el-icon-view:before{content:"\e6ce"}.el-icon-loading:before{content:"\e6cf"}.el-icon-rank:before{content:"\e6d1"}.el-icon-sort-down:before{content:"\e7c4"}.el-icon-sort-up:before{content:"\e7c5"}.el-icon-sort:before{content:"\e6d2"}.el-icon-finished:before{content:"\e6cd"}.el-icon-refresh-left:before{content:"\e6c7"}.el-icon-refresh-right:before{content:"\e6c8"}.el-icon-refresh:before{content:"\e6d0"}.el-icon-video-play:before{content:"\e7c0"}.el-icon-video-pause:before{content:"\e7c1"}.el-icon-d-arrow-right:before{content:"\e6dc"}.el-icon-d-arrow-left:before{content:"\e6dd"}.el-icon-arrow-up:before{content:"\e6e1"}.el-icon-arrow-down:before{content:"\e6df"}.el-icon-arrow-right:before{content:"\e6e0"}.el-icon-arrow-left:before{content:"\e6de"}.el-icon-top-right:before{content:"\e6e7"}.el-icon-top-left:before{content:"\e6e8"}.el-icon-top:before{content:"\e6e6"}.el-icon-bottom:before{content:"\e6eb"}.el-icon-right:before{content:"\e6e9"}.el-icon-back:before{content:"\e6ea"}.el-icon-bottom-right:before{content:"\e6ec"}.el-icon-bottom-left:before{content:"\e6ed"}.el-icon-caret-top:before{content:"\e78f"}.el-icon-caret-bottom:before{content:"\e790"}.el-icon-caret-right:before{content:"\e791"}.el-icon-caret-left:before{content:"\e792"}.el-icon-d-caret:before{content:"\e79a"}.el-icon-share:before{content:"\e793"}.el-icon-menu:before{content:"\e798"}.el-icon-s-grid:before{content:"\e7a6"}.el-icon-s-check:before{content:"\e7a7"}.el-icon-s-data:before{content:"\e7a8"}.el-icon-s-opportunity:before{content:"\e7aa"}.el-icon-s-custom:before{content:"\e7ab"}.el-icon-s-claim:before{content:"\e7ad"}.el-icon-s-finance:before{content:"\e7ae"}.el-icon-s-comment:before{content:"\e7af"}.el-icon-s-flag:before{content:"\e7b0"}.el-icon-s-marketing:before{content:"\e7b1"}.el-icon-s-shop:before{content:"\e7b4"}.el-icon-s-open:before{content:"\e7b5"}.el-icon-s-management:before{content:"\e7b6"}.el-icon-s-ticket:before{content:"\e7b7"}.el-icon-s-release:before{content:"\e7b8"}.el-icon-s-home:before{content:"\e7b9"}.el-icon-s-promotion:before{content:"\e7ba"}.el-icon-s-operation:before{content:"\e7bb"}.el-icon-s-unfold:before{content:"\e7bc"}.el-icon-s-fold:before{content:"\e7a9"}.el-icon-s-platform:before{content:"\e7bd"}.el-icon-s-order:before{content:"\e7be"}.el-icon-s-cooperation:before{content:"\e7bf"}.el-icon-bell:before{content:"\e725"}.el-icon-message-solid:before{content:"\e799"}.el-icon-video-camera:before{content:"\e772"}.el-icon-video-camera-solid:before{content:"\e796"}.el-icon-camera:before{content:"\e779"}.el-icon-camera-solid:before{content:"\e79b"}.el-icon-download:before{content:"\e77c"}.el-icon-upload2:before{content:"\e77b"}.el-icon-upload:before{content:"\e7c3"}.el-icon-picture-outline-round:before{content:"\e75f"}.el-icon-picture-outline:before{content:"\e75e"}.el-icon-picture:before{content:"\e79f"}.el-icon-close:before{content:"\e6db"}.el-icon-check:before{content:"\e6da"}.el-icon-plus:before{content:"\e6d9"}.el-icon-minus:before{content:"\e6d8"}.el-icon-help:before{content:"\e73d"}.el-icon-s-help:before{content:"\e7b3"}.el-icon-circle-close:before{content:"\e78d"}.el-icon-circle-check:before{content:"\e720"}.el-icon-circle-plus-outline:before{content:"\e723"}.el-icon-remove-outline:before{content:"\e722"}.el-icon-zoom-out:before{content:"\e776"}.el-icon-zoom-in:before{content:"\e777"}.el-icon-error:before{content:"\e79d"}.el-icon-success:before{content:"\e79c"}.el-icon-circle-plus:before{content:"\e7a0"}.el-icon-remove:before{content:"\e7a2"}.el-icon-info:before{content:"\e7a1"}.el-icon-question:before{content:"\e7a4"}.el-icon-warning-outline:before{content:"\e6c9"}.el-icon-warning:before{content:"\e7a3"}.el-icon-goods:before{content:"\e7c2"}.el-icon-s-goods:before{content:"\e7b2"}.el-icon-star-off:before{content:"\e717"}.el-icon-star-on:before{content:"\e797"}.el-icon-more-outline:before{content:"\e6cc"}.el-icon-more:before{content:"\e794"}.el-icon-phone-outline:before{content:"\e6cb"}.el-icon-phone:before{content:"\e795"}.el-icon-user:before{content:"\e6e3"}.el-icon-user-solid:before{content:"\e7a5"}.el-icon-setting:before{content:"\e6ca"}.el-icon-s-tools:before{content:"\e7ac"}.el-icon-delete:before{content:"\e6d7"}.el-icon-delete-solid:before{content:"\e7c9"}.el-icon-eleme:before{content:"\e7c7"}.el-icon-platform-eleme:before{content:"\e7ca"}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-pagination{color:#303133;font-weight:700;padding:2px 5px;white-space:nowrap}.el-pagination:after,.el-pagination:before{content:"";display:table}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){box-sizing:border-box;display:inline-block;font-size:13px;height:28px;line-height:28px;min-width:35.5px;vertical-align:top}.el-pagination .el-input__inner{-moz-appearance:textfield;line-height:normal;text-align:center}.el-pagination .el-input__suffix{right:0;transform:scale(.8)}.el-pagination .el-select .el-input{margin:0 5px;width:100px}.el-pagination .el-select .el-input .el-input__inner{border-radius:3px;padding-right:25px}.el-pagination button{background:transparent;border:none;padding:0 6px}.el-pagination button:focus{outline:none}.el-pagination button:hover{color:#1a7efb}.el-pagination button:disabled{background-color:#fff;color:#afb3ba;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat;background-color:#fff;background-size:16px;color:#303133;cursor:pointer;margin:0}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#afb3ba;cursor:not-allowed}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;height:22px;line-height:22px;min-width:22px}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{color:#606266;font-weight:400;margin:0 10px 0 0}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#1a7efb}.el-pagination__total{color:#606266;font-weight:400;margin-right:10px}.el-pagination__jump{color:#606266;font-weight:400;margin-left:24px}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{border-radius:3px;box-sizing:border-box;height:28px;line-height:18px;margin:0 2px;padding:0 2px;text-align:center}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:#ededed;border-radius:2px;color:#606266;margin:0 5px;min-width:30px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .el-pager li.disabled{color:#afb3ba}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev:disabled{color:#afb3ba}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#1a7efb}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#1a7efb;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager{display:inline-block;font-size:0;list-style:none;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:top}.el-pager .more:before{line-height:30px}.el-pager li{background:#fff;box-sizing:border-box;cursor:pointer;display:inline-block;font-size:13px;height:28px;line-height:28px;margin:0;min-width:35.5px;padding:0 4px;text-align:center;vertical-align:top}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{color:#303133;line-height:28px}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#afb3ba}.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#1a7efb}.el-pager li.active{color:#1a7efb;cursor:default}.el-dialog{background:#fff;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;margin:0 auto 50px;position:relative;width:50%}.el-dialog.is-fullscreen{height:100%;margin-bottom:0;margin-top:0;overflow:auto;width:100%}.el-dialog__wrapper{bottom:0;left:0;margin:0;overflow:auto;position:fixed;right:0;top:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:16px;outline:none;padding:0;position:absolute;right:20px;top:20px}.el-dialog__headerbtn .el-dialog__close{color:#4b4c4d}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#1a7efb}.el-dialog__title{color:#303133;font-size:18px;line-height:24px}.el-dialog__body{color:#606266;font-size:14px;padding:30px 20px;word-break:break-all}.el-dialog__footer{box-sizing:border-box;padding:10px 20px 20px;text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{padding:25px 25px 30px;text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{animation:dialog-fade-in .3s}.dialog-fade-leave-active{animation:dialog-fade-out .3s}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.el-autocomplete{display:inline-block;position:relative}.el-autocomplete-suggestion{background-color:#fff;border:1px solid #e4e7ed;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0}.el-autocomplete-suggestion__wrap{box-sizing:border-box;max-height:280px;padding:10px 0}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{color:#606266;cursor:pointer;font-size:14px;line-height:34px;list-style:none;margin:0;overflow:hidden;padding:0 20px;text-overflow:ellipsis;white-space:nowrap}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{border-top:1px solid #000;margin-top:6px}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{color:#999;font-size:20px;height:100px;line-height:100px;text-align:center}.el-autocomplete-suggestion.is-loading li:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{color:#606266;display:inline-block;font-size:14px;position:relative}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{border-left:none;padding-left:5px;padding-right:5px;position:relative}.el-dropdown .el-dropdown__caret-button:before{background:hsla(0,0%,100%,.5);bottom:5px;content:"";display:block;left:0;position:absolute;top:5px;width:1px}.el-dropdown .el-dropdown__caret-button.el-button--default:before{background:hsla(220,4%,86%,.5)}.el-dropdown .el-dropdown__caret-button:hover:not(.is-disabled):before{bottom:0;top:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown [disabled]{color:#bbb;cursor:not-allowed}.el-dropdown-menu{background-color:#fff;border:1px solid #ebeef5;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);left:0;margin:5px 0;padding:10px 0;position:absolute;top:0;z-index:10}.el-dropdown-menu__item{color:#606266;cursor:pointer;font-size:14px;line-height:36px;list-style:none;margin:0;outline:none;padding:0 20px}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#e8f2ff;color:#4898fc}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{border-top:1px solid #ebeef5;margin-top:6px;position:relative}.el-dropdown-menu__item--divided:before{background-color:#fff;content:"";display:block;height:6px;margin:0 -20px}.el-dropdown-menu__item.is-disabled{color:#bbb;cursor:default;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{font-size:14px;line-height:30px;padding:0 17px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{font-size:13px;line-height:27px;padding:0 15px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{font-size:12px;line-height:24px;padding:0 10px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{background-color:#fff;border-right:1px solid #e6e6e6;list-style:none;margin:0;padding-left:0;position:relative}.el-menu:after,.el-menu:before{content:"";display:table}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{border-bottom:2px solid transparent;color:#909399;float:left;height:60px;line-height:60px;margin:0}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:none}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #1a7efb;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{border-bottom:2px solid transparent;color:#909399;height:60px;line-height:60px}.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{margin-left:8px;margin-top:-3px;position:static;vertical-align:middle}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;color:#909399;float:none;height:36px;line-height:36px;padding:0 10px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{color:#303133;outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #1a7efb;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;text-align:center;vertical-align:middle;width:24px}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{display:inline-block;height:0;overflow:hidden;visibility:hidden;width:0}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{border:1px solid #e4e7ed;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);left:100%;margin-left:5px;position:absolute;top:0;z-index:10}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu--popup{border:none;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);min-width:200px;padding:5px 0;z-index:100}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{box-sizing:border-box;color:#303133;cursor:pointer;font-size:14px;height:56px;line-height:56px;list-style:none;padding:0 20px;position:relative;transition:border-color .3s,background-color .3s,color .3s;white-space:nowrap}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{background-color:#e8f2ff;outline:none}.el-menu-item.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-menu-item [class^=el-icon-]{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:24px}.el-menu-item.is-active{color:#1a7efb}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{box-sizing:border-box;color:#303133;cursor:pointer;font-size:14px;height:56px;line-height:56px;list-style:none;padding:0 20px;position:relative;transition:border-color .3s,background-color .3s,color .3s;white-space:nowrap}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{background-color:#e8f2ff;outline:none}.el-submenu__title.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-submenu__title:hover{background-color:#e8f2ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;min-width:200px;padding:0 45px}.el-submenu__icon-arrow{font-size:12px;margin-top:-7px;position:absolute;right:20px;top:50%;transition:transform .3s}.el-submenu.is-active .el-submenu__title{border-bottom-color:#1a7efb}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{background:none!important;cursor:not-allowed;opacity:.25}.el-submenu [class^=el-icon-]{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:24px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{color:#909399;font-size:12px;line-height:normal;padding:7px 0 7px 20px}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{opacity:0;transition:.2s}.el-radio-group{display:inline-block;font-size:0;line-height:1;vertical-align:middle}.el-radio-button,.el-radio-button__inner{display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:#fff;border:1px solid #dadbdd;border-left:0;border-radius:0;box-sizing:border-box;color:#606266;cursor:pointer;font-size:14px;font-weight:500;line-height:1;margin:0;padding:12px 20px;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#1a7efb}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dadbdd;border-radius:7px 0 0 7px;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1a7efb;border-color:#1a7efb;box-shadow:-1px 0 0 0 #1a7efb;color:#fff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{background-color:#fff;background-image:none;border-color:#ebeef5;box-shadow:none;color:#afb3ba;cursor:not-allowed}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 7px 7px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:7px}.el-radio-button--medium .el-radio-button__inner{border-radius:0;font-size:14px;padding:10px 20px}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:13px;padding:8px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:8px 11px}.el-radio-button--mini .el-radio-button__inner{border-radius:0;font-size:12px;padding:7px 15px}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){box-shadow:0 0 2px 2px #1a7efb}.el-switch{align-items:center;display:inline-flex;font-size:14px;height:20px;line-height:20px;position:relative;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{color:#303133;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;height:20px;transition:.2s;vertical-align:middle}.el-switch__label.is-active{color:#1a7efb}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{display:inline-block;font-size:14px;line-height:1}.el-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.el-switch__core{background:#edeae9;border:1px solid #edeae9;border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-block;height:20px;margin:0;outline:none;position:relative;transition:border-color .3s,background-color .3s;vertical-align:middle;width:40px}.el-switch__core:after{background-color:#fff;border-radius:100%;content:"";height:16px;left:1px;position:absolute;top:1px;transition:all .3s;width:16px}.el-switch.is-checked .el-switch__core{background-color:#00b27f;border-color:#00b27f}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{background-color:#fff;border:1px solid #e4e7ed;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0;position:absolute;z-index:1001}.el-select-dropdown.is-multiple .el-select-dropdown__item{padding-right:40px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{background-color:#fff;color:#1a7efb}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e6da";font-family:element-icons;font-size:12px;font-weight:700;position:absolute;right:20px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{color:#999;font-size:14px;margin:0;padding:10px 0;text-align:center}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:6px 0}.el-select-dropdown__item{box-sizing:border-box;color:#606266;cursor:pointer;font-size:14px;height:34px;line-height:34px;overflow:hidden;padding:0 20px;position:relative;text-overflow:ellipsis;white-space:nowrap}.el-select-dropdown__item.is-disabled{color:#afb3ba;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#1a7efb;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{list-style:none;margin:0;padding:0;position:relative}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{background:#e4e7ed;bottom:12px;content:"";display:block;height:1px;left:20px;position:absolute;right:20px}.el-select-group__title{color:#4b4c4d;font-size:12px;line-height:30px;padding-left:20px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#afb3ba}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#1a7efb}.el-select .el-input .el-select__caret{color:#afb3ba;cursor:pointer;font-size:14px;transform:rotate(180deg);transition:transform .3s}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(0deg)}.el-select .el-input .el-select__caret.is-show-close{border-radius:100%;color:#afb3ba;font-size:14px;text-align:center;transform:rotate(180deg);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-select .el-input.is-focus .el-input__inner{border-color:#1a7efb}.el-select>.el-input{display:block}.el-select__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;color:#666;font-size:14px;height:28px;margin-left:15px;outline:none;padding:0}.el-select__input.is-mini{height:14px}.el-select__close{color:#afb3ba;cursor:pointer;font-size:14px;line-height:18px;position:absolute;right:25px;top:8px;z-index:1000}.el-select__close:hover{color:#909399}.el-select__tags{align-items:center;display:flex;flex-wrap:wrap;line-height:normal;position:absolute;top:50%;transform:translateY(-50%);white-space:normal;z-index:1}.el-select__tags-text{overflow:hidden;text-overflow:ellipsis}.el-select .el-tag{align-items:center;background-color:#f0f2f5;border-color:transparent;box-sizing:border-box;display:flex;margin:2px 0 2px 6px;max-width:100%}.el-select .el-tag__close.el-icon-close{background-color:#afb3ba;color:#fff;flex-shrink:0;top:0}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-select .el-tag__close.el-icon-close:before{display:block;transform:translateY(.5px)}.el-table{background-color:#fff;box-sizing:border-box;color:#606266;flex:1;font-size:14px;max-width:100%;overflow:hidden;position:relative;width:100%}.el-table__empty-block{align-items:center;display:flex;justify-content:center;min-height:60px;text-align:center;width:100%}.el-table__empty-text{color:#909399;line-height:60px;width:50%}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{color:#666;cursor:pointer;font-size:12px;height:20px;position:relative;transition:transform .2s ease-in-out}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{left:50%;margin-left:-5px;margin-top:-5px;position:absolute;top:50%}.el-table__expanded-cell{background-color:#fff}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-right:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th.el-table__cell{background:#f5f7fa}.el-table .el-table__cell{box-sizing:border-box;min-width:0;padding:12px 0;position:relative;text-align:left;text-overflow:ellipsis;vertical-align:middle}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{border-bottom-width:0;border-right-width:0;padding:0;width:15px}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table--medium .el-table__cell{padding:10px 0}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:8px 0}.el-table--mini{font-size:12px}.el-table--mini .el-table__cell{padding:6px 0}.el-table tr{background-color:#fff}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:1px solid #ececec}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:#fff;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table th.el-table__cell>.cell{box-sizing:border-box;display:inline-block;padding-left:10px;padding-right:10px;position:relative;vertical-align:middle;width:100%}.el-table th.el-table__cell>.cell.highlight{color:#1a7efb}.el-table th.el-table__cell.required>div:before{background:#ff4d51;border-radius:50%;content:"";display:inline-block;height:8px;margin-right:5px;vertical-align:middle;width:8px}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table .cell{box-sizing:border-box;line-height:23px;overflow:hidden;padding-left:10px;padding-right:10px;text-overflow:ellipsis;white-space:normal;word-break:break-all}.el-table .cell.el-tooltip{min-width:50px;white-space:nowrap}.el-table--border,.el-table--group{border:1px solid #ececec}.el-table--border:after,.el-table--group:after,.el-table:before{background-color:#ececec;content:"";position:absolute;z-index:1}.el-table--border:after,.el-table--group:after{height:100%;right:0;top:0;width:1px}.el-table:before{bottom:0;height:1px;left:0;width:100%}.el-table--border{border-bottom:none;border-right:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border .el-table__cell{border-right:1px solid #ececec}.el-table--border .el-table__cell:first-child .cell{padding-left:10px}.el-table--border th.el-table__cell,.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:1px solid #ececec}.el-table--hidden{visibility:hidden}.el-table__fixed,.el-table__fixed-right{box-shadow:0 0 10px rgba(0,0,0,.12);left:0;overflow-x:hidden;overflow-y:hidden;position:absolute;top:0}.el-table__fixed-right:before,.el-table__fixed:before{background-color:#ebeef5;bottom:0;content:"";height:1px;left:0;position:absolute;width:100%;z-index:4}.el-table__fixed-right-patch{background-color:#fff;border-bottom:1px solid #ececec;position:absolute;right:0;top:-1px}.el-table__fixed-right{left:auto;right:0;top:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{left:0;position:absolute;top:0;z-index:3}.el-table__fixed-footer-wrapper{bottom:0;left:0;position:absolute;z-index:3}.el-table__fixed-footer-wrapper tbody td.el-table__cell{background-color:#f5f7fa;border-top:1px solid #ececec;color:#606266}.el-table__fixed-body-wrapper{left:0;overflow:hidden;position:absolute;top:37px;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td.el-table__cell{border-top:1px solid #ececec}.el-table__body,.el-table__footer,.el-table__header{border-collapse:separate;table-layout:fixed}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ececec}.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ececec}.el-table .caret-wrapper{align-items:center;cursor:pointer;display:inline-flex;flex-direction:column;height:34px;overflow:initial;position:relative;vertical-align:middle;width:24px}.el-table .sort-caret{border:5px solid transparent;height:0;left:7px;position:absolute;width:0}.el-table .sort-caret.ascending{border-bottom-color:#afb3ba;top:5px}.el-table .sort-caret.descending{border-top-color:#afb3ba;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#1a7efb}.el-table .descending .sort-caret.descending{border-top-color:#1a7efb}.el-table .hidden-columns{position:absolute;visibility:hidden;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell,.el-table--striped .el-table__body tr.el-table__row--striped.selection-row td.el-table__cell{background-color:#e8f2ff}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.selection-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row.selection-row>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:#f5f7fa}.el-table__body tr.current-row>td.el-table__cell,.el-table__body tr.selection-row>td.el-table__cell{background-color:#e8f2ff}.el-table__column-resize-proxy{border-left:1px solid #ececec;bottom:0;left:200px;position:absolute;top:0;width:0;z-index:10}.el-table__column-filter-trigger{cursor:pointer;display:inline-block;line-height:34px}.el-table__column-filter-trigger i{color:#4b4c4d;font-size:12px;transform:scale(.75)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;height:20px;line-height:20px;margin-right:3px;text-align:center;width:20px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{background-color:#fff;border:1px solid #ebeef5;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-table-filter__list{list-style:none;margin:0;min-width:100px;padding:5px 0}.el-table-filter__list-item{cursor:pointer;font-size:14px;line-height:36px;padding:0 10px}.el-table-filter__list-item:hover{background-color:#e8f2ff;color:#4898fc}.el-table-filter__list-item.is-active{background-color:#1a7efb;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:transparent;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-table-filter__bottom button:hover{color:#1a7efb}.el-table-filter__bottom button:focus{outline:none}.el-table-filter__bottom button.is-disabled{color:#afb3ba;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-bottom:8px;margin-left:5px;margin-right:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#f2f6fc}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table.is-week-mode .el-date-table__row.current div{background-color:#f2f6fc}.el-date-table td{box-sizing:border-box;cursor:pointer;height:30px;padding:4px 0;position:relative;text-align:center;width:32px}.el-date-table td div{box-sizing:border-box;height:30px;padding:3px 0}.el-date-table td span{border-radius:50%;display:block;height:24px;left:50%;line-height:24px;margin:0 auto;position:absolute;transform:translateX(-50%);width:24px}.el-date-table td.next-month,.el-date-table td.prev-month{color:#afb3ba}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#1a7efb;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#1a7efb}.el-date-table td.in-range div,.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-date-table td.current:not(.disabled) span{background-color:#1a7efb;color:#fff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#1a7efb}.el-date-table td.start-date div{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table td.end-date div{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table td.disabled div{background-color:#f5f7fa;color:#afb3ba;cursor:not-allowed;opacity:1}.el-date-table td.selected div{background-color:#f2f6fc;border-radius:15px;margin-left:5px;margin-right:5px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#1a7efb;border-radius:15px;color:#fff}.el-date-table td.week{color:#606266;font-size:80%}.el-date-table th{border-bottom:1px solid #ebeef5;color:#606266;font-weight:400;padding:5px}.el-month-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-month-table td{cursor:pointer;padding:8px 0;text-align:center}.el-month-table td div{box-sizing:border-box;height:48px;padding:6px 0}.el-month-table td.today .cell{color:#1a7efb;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;color:#afb3ba;cursor:not-allowed}.el-month-table td.disabled .cell:hover{color:#afb3ba}.el-month-table td .cell{border-radius:18px;color:#606266;display:block;height:36px;line-height:36px;margin:0 auto;width:60px}.el-month-table td .cell:hover{color:#1a7efb}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{background-color:#1a7efb;color:#fff}.el-month-table td.start-date div{border-bottom-left-radius:24px;border-top-left-radius:24px}.el-month-table td.end-date div{border-bottom-right-radius:24px;border-top-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#1a7efb}.el-year-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{cursor:pointer;padding:20px 3px;text-align:center}.el-year-table td.today .cell{color:#1a7efb;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;color:#afb3ba;cursor:not-allowed}.el-year-table td.disabled .cell:hover{color:#afb3ba}.el-year-table td .cell{color:#606266;display:block;height:32px;line-height:32px;margin:0 auto;width:48px}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#1a7efb}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{height:28px;position:relative;text-align:center}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{box-sizing:border-box;float:left;margin:0;padding:16px;width:50%}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{border-bottom:1px solid #e4e4e4;box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-range-picker__time-header>.el-icon-arrow-right{color:#303133;display:table-cell;font-size:20px;vertical-align:middle}.el-date-range-picker__time-picker-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-range-picker__time-picker-wrap .el-picker-panel{background:#fff;position:absolute;right:0;top:13px;z-index:1}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-picker__time-header{border-bottom:1px solid #e4e4e4;box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{border-bottom:1px solid #ebeef5;margin-bottom:0;padding-bottom:12px}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{color:#606266;cursor:pointer;font-size:16px;font-weight:500;line-height:22px;padding:0 5px;text-align:center}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#1a7efb}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{cursor:pointer;float:left;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{margin:0;max-height:200px}.time-select-item{font-size:14px;line-height:20px;padding:8px 10px}.time-select-item.selected:not(.disabled){color:#1a7efb;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;cursor:pointer;font-weight:700}.el-date-editor{display:inline-block;position:relative;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{color:#afb3ba;float:left;font-size:14px;line-height:32px;margin-left:-5px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;color:#606266;display:inline-block;font-size:14px;height:100%;margin:0;outline:none;padding:0;text-align:center;width:39%}.el-date-editor .el-range-input::-moz-placeholder{color:#afb3ba}.el-date-editor .el-range-input::placeholder{color:#afb3ba}.el-date-editor .el-range-separator{color:#303133;display:inline-block;font-size:14px;height:100%;line-height:32px;margin:0;padding:0 5px;text-align:center;width:5%}.el-date-editor .el-range__close-icon{color:#afb3ba;display:inline-block;float:right;font-size:14px;line-height:32px;width:25px}.el-range-editor.el-input__inner{align-items:center;display:inline-flex;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#1a7efb}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{font-size:14px;line-height:28px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{font-size:13px;line-height:24px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{font-size:12px;line-height:20px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#afb3ba;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#afb3ba;cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:#afb3ba}.el-range-editor.is-disabled input::placeholder{color:#afb3ba}.el-range-editor.is-disabled .el-range-separator{color:#afb3ba}.el-picker-panel{background:#fff;border:1px solid #e4e7ed;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);color:#606266;line-height:30px;margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{clear:both;content:"";display:table}.el-picker-panel__content{margin:15px;position:relative}.el-picker-panel__footer{background-color:#fff;border-top:1px solid #e4e4e4;font-size:0;padding:4px;position:relative;text-align:right}.el-picker-panel__shortcut{background-color:transparent;border:0;color:#606266;cursor:pointer;display:block;font-size:14px;line-height:28px;outline:none;padding-left:12px;text-align:left;width:100%}.el-picker-panel__shortcut:hover{color:#1a7efb}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#1a7efb}.el-picker-panel__btn{background-color:transparent;border:1px solid #dcdcdc;border-radius:2px;color:#333;cursor:pointer;font-size:12px;line-height:24px;outline:none;padding:0 20px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{background:transparent;border:0;color:#303133;cursor:pointer;font-size:12px;margin-top:8px;outline:none}.el-picker-panel__icon-btn:hover{color:#1a7efb}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{background-color:#fff;border-right:1px solid #e4e4e4;bottom:0;box-sizing:border-box;overflow:auto;padding-top:6px;position:absolute;top:0;width:110px}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{display:inline-block;max-height:190px;overflow:auto;position:relative;vertical-align:top;width:50%}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;overflow:hidden;text-align:center}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{color:#909399;cursor:pointer;font-size:12px;height:30px;left:0;line-height:30px;position:absolute;text-align:center;width:100%;z-index:1}.el-time-spinner__arrow:hover{color:#1a7efb}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__list{list-style:none;margin:0}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;height:80px;width:100%}.el-time-spinner__item{color:#606266;font-size:12px;height:32px;line-height:32px}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#afb3ba;cursor:not-allowed}.el-time-panel{background-color:#fff;border:1px solid #e4e7ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:content-box;left:0;margin:5px 0;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:180px;z-index:1000}.el-time-panel__content{font-size:0;overflow:hidden;position:relative}.el-time-panel__content:after,.el-time-panel__content:before{border-bottom:1px solid #e4e7ed;border-top:1px solid #e4e7ed;box-sizing:border-box;content:"";height:32px;left:0;margin-top:-15px;padding-top:6px;position:absolute;right:0;text-align:left;top:50%;z-index:-1}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{margin-left:12%;margin-right:12%;padding-left:50%}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;box-sizing:border-box;height:36px;line-height:25px;padding:4px;text-align:right}.el-time-panel__btn{background-color:transparent;border:none;color:#303133;cursor:pointer;font-size:12px;line-height:28px;margin:0 5px;outline:none;padding:0 5px}.el-time-panel__btn.confirm{color:#1a7efb;font-weight:800}.el-time-range-picker{overflow:visible;width:354px}.el-time-range-picker__content{padding:10px;position:relative;text-align:center}.el-time-range-picker__cell{box-sizing:border-box;display:inline-block;margin:0;padding:4px 7px 7px;width:50%}.el-time-range-picker__header{font-size:14px;margin-bottom:5px;text-align:center}.el-time-range-picker__body{border:1px solid #e4e7ed;border-radius:2px}.el-popover{background:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);color:#606266;font-size:14px;line-height:1.4;min-width:150px;padding:12px;position:absolute;text-align:justify;word-break:break-all;z-index:2000}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.v-modal-enter{animation:v-modal-in .2s ease}.v-modal-leave{animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:#000;height:100%;left:0;opacity:.5;position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-message-box{backface-visibility:hidden;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);display:inline-block;font-size:18px;overflow:hidden;padding-bottom:10px;text-align:left;vertical-align:middle;width:420px}.el-message-box__wrapper{bottom:0;left:0;position:fixed;right:0;text-align:center;top:0}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.el-message-box__header{padding:15px 15px 10px;position:relative}.el-message-box__title{color:#303133;font-size:18px;line-height:1;margin-bottom:0;padding-left:0}.el-message-box__headerbtn{background:transparent;border:none;cursor:pointer;font-size:16px;outline:none;padding:0;position:absolute;right:15px;top:15px}.el-message-box__headerbtn .el-message-box__close{color:#4b4c4d}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#1a7efb}.el-message-box__content{color:#606266;font-size:14px;padding:10px 15px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#ff6154}.el-message-box__status{font-size:24px!important;position:absolute;top:50%;transform:translateY(-50%)}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#00b27f}.el-message-box__status.el-icon-info{color:#4b4c4d}.el-message-box__status.el-icon-warning{color:#fcbe2d}.el-message-box__status.el-icon-error{color:#ff6154}.el-message-box__message{margin:0}.el-message-box__message p{line-height:24px;margin:0}.el-message-box__errormsg{color:#ff6154;font-size:12px;margin-top:2px;min-height:18px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{align-items:center;display:flex;justify-content:center;position:relative}.el-message-box--center .el-message-box__status{padding-right:5px;position:relative;text-align:center;top:auto;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{animation:msgbox-fade-out .3s}@keyframes msgbox-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes msgbox-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{content:"";display:table}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{color:#afb3ba;font-weight:700;margin:0 9px}.el-breadcrumb__separator[class*=icon]{font-weight:400;margin:0 6px}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{color:#303133;font-weight:700;text-decoration:none;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#1a7efb;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{color:#606266;cursor:text;font-weight:400}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{display:inline-block;float:none;padding:0 0 10px;text-align:left}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{display:inline-block;float:none}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{content:"";display:table}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini.el-form-item{margin-bottom:18px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{box-sizing:border-box;color:#606266;float:left;font-size:14px;line-height:40px;padding:0 12px 0 0;text-align:right;vertical-align:middle}.el-form-item__content{font-size:14px;line-height:40px;position:relative}.el-form-item__content:after,.el-form-item__content:before{content:"";display:table}.el-form-item__content:after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#ff6154;font-size:12px;left:0;line-height:1;padding-top:4px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{color:#ff6154;content:"*";margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#ff6154}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#ff6154}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{margin:0 0 15px;padding:0;position:relative}.el-tabs__active-bar{background-color:#1a7efb;bottom:0;height:2px;left:0;list-style:none;position:absolute;transition:transform .3s cubic-bezier(.645,.045,.355,1);z-index:1}.el-tabs__new-tab{border:1px solid #d3dce6;border-radius:3px;color:#d3dce6;cursor:pointer;float:right;font-size:12px;height:18px;line-height:18px;margin:12px 0 9px 10px;text-align:center;transition:all .15s;width:18px}.el-tabs__new-tab .el-icon-plus{transform:scale(.8)}.el-tabs__new-tab:hover{color:#1a7efb}.el-tabs__nav-wrap{margin-bottom:-1px;overflow:hidden;position:relative}.el-tabs__nav-wrap:after{background-color:#e4e7ed;bottom:0;content:"";height:2px;left:0;position:absolute;width:100%;z-index:1}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{color:#909399;cursor:pointer;font-size:12px;line-height:44px;position:absolute}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{float:left;position:relative;transition:transform .3s;white-space:nowrap;z-index:2}.el-tabs__nav.is-stretch{display:flex;min-width:100%}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{box-sizing:border-box;color:#303133;display:inline-block;font-size:14px;font-weight:500;height:40px;line-height:40px;list-style:none;padding:0 20px;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus.is-active.is-focus:not(:active){border-radius:3px;box-shadow:inset 0 0 2px 2px #1a7efb}.el-tabs__item .el-icon-close{border-radius:50%;margin-left:5px;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1)}.el-tabs__item .el-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .el-icon-close:hover{background-color:#afb3ba;color:#fff}.el-tabs__item.is-active{color:#1a7efb}.el-tabs__item:hover{color:#1a7efb;cursor:pointer}.el-tabs__item.is-disabled{color:#afb3ba;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{font-size:12px;height:14px;line-height:15px;overflow:hidden;position:relative;right:-2px;top:-1px;transform-origin:100% 50%;vertical-align:middle;width:0}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close{width:14px}.el-tabs--border-card{background:#fff;border:1px solid #dadbdd;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:1px solid transparent;color:#909399;margin-top:-1px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:#fff;border-left-color:#dadbdd;border-right-color:#dadbdd;color:#1a7efb}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#1a7efb}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#afb3ba}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dadbdd}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-bottom:0;margin-top:-1px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{bottom:auto;height:auto;top:0;width:2px}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{cursor:pointer;height:30px;line-height:30px;text-align:center;width:100%}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{bottom:auto;height:100%;top:0;width:2px}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border:1px solid #e4e7ed;border-bottom:none;border-left:none;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:none;border-right:1px solid #fff;border-top:1px solid #e4e7ed}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid #e4e7ed;border-radius:4px 0 0 4px;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:none;border-left:1px solid #fff;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid #e4e7ed;border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter .3s}.slideInRight-leave{animation:slideInRight-leave .3s;left:0;position:absolute;right:0}.slideInLeft-enter{animation:slideInLeft-enter .3s}.slideInLeft-leave{animation:slideInLeft-leave .3s;left:0;position:absolute;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform:translateX(100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInRight-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(100%);transform-origin:0 0}}@keyframes slideInLeft-enter{0%{opacity:0;transform:translateX(-100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInLeft-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(-100%);transform-origin:0 0}}.el-tree{background:#fff;color:#606266;cursor:default;position:relative}.el-tree__empty-block{height:100%;min-height:60px;position:relative;text-align:center;width:100%}.el-tree__empty-text{color:#909399;font-size:14px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.el-tree__drop-indicator{background-color:#1a7efb;height:1px;left:0;position:absolute;right:0}.el-tree-node{outline:none;white-space:nowrap}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#1a7efb;color:#fff}.el-tree-node__content{align-items:center;cursor:pointer;display:flex;height:26px}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#f5f7fa}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{color:#afb3ba;cursor:pointer;font-size:12px;transform:rotate(0deg);transition:transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{color:#afb3ba;font-size:14px;margin-right:8px}.el-tree-node>.el-tree-node__children{background-color:transparent;overflow:hidden}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#edf5ff}.el-alert{align-items:center;background-color:#fff;border-radius:7px;box-sizing:border-box;display:flex;margin:0;opacity:1;overflow:hidden;padding:8px 16px;position:relative;transition:opacity .2s;width:100%}.el-alert.is-light .el-alert__closebtn{color:#afb3ba}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{justify-content:center}.el-alert--success.is-light{background-color:#e6ffeb;color:#00b27f}.el-alert--success.is-light .el-alert__description{color:#00b27f}.el-alert--success.is-dark{background-color:#00b27f;color:#fff}.el-alert--info.is-light{background-color:#ededed;color:#4b4c4d}.el-alert--info.is-dark{background-color:#4b4c4d;color:#fff}.el-alert--info .el-alert__description{color:#4b4c4d}.el-alert--warning.is-light{background-color:#fff9ea;color:#fcbe2d}.el-alert--warning.is-light .el-alert__description{color:#fcbe2d}.el-alert--warning.is-dark{background-color:#fcbe2d;color:#fff}.el-alert--error.is-light{background-color:#ffefee;color:#ff6154}.el-alert--error.is-light .el-alert__description{color:#ff6154}.el-alert--error.is-dark{background-color:#ff6154;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{cursor:pointer;font-size:12px;opacity:1;position:absolute;right:15px;top:12px}.el-alert__closebtn.is-customed{font-size:13px;font-style:normal;top:9px}.el-alert-fade-enter,.el-alert-fade-leave-active{opacity:0}.el-notification{background-color:#fff;border:1px solid #ebeef5;border-radius:8px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;display:flex;overflow:hidden;padding:14px 26px 14px 13px;position:fixed;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;width:330px}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{color:#303133;font-size:16px;font-weight:700;margin:0}.el-notification__content{color:#606266;font-size:14px;line-height:21px;margin:6px 0 0;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{font-size:24px;height:24px;width:24px}.el-notification__closeBtn{color:#909399;cursor:pointer;font-size:16px;position:absolute;right:15px;top:18px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#00b27f}.el-notification .el-icon-error{color:#ff6154}.el-notification .el-icon-info{color:#4b4c4d}.el-notification .el-icon-warning{color:#fcbe2d}.el-notification-fade-enter.right{right:0;transform:translateX(100%)}.el-notification-fade-enter.left{left:0;transform:translateX(-100%)}.el-notification-fade-leave-active{opacity:0}.el-input-number{display:inline-block;line-height:38px;position:relative;width:180px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px;height:auto;position:absolute;text-align:center;top:1px;width:40px;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#1a7efb}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#1a7efb}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#afb3ba;cursor:not-allowed}.el-input-number__increase{border-left:1px solid #dadbdd;border-radius:0 7px 7px 0;right:1px}.el-input-number__decrease{border-radius:7px 0 0 7px;border-right:1px solid #dadbdd;left:1px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{line-height:34px;width:200px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{font-size:14px;width:36px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{line-height:30px;width:130px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{font-size:13px;width:32px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{line-height:26px;width:130px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{font-size:12px;width:28px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-bottom:1px solid #dadbdd;border-radius:0 7px 0 0}.el-input-number.is-controls-right .el-input-number__decrease{border-left:1px solid #dadbdd;border-radius:0 0 7px 0;border-right:none;bottom:1px;left:auto;right:1px;top:auto}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{word-wrap:break-word;border-radius:4px;font-size:12px;line-height:1.2;min-width:10px;padding:10px;position:absolute;z-index:2000}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{border-color:transparent;border-style:solid;display:block;height:0;position:absolute;width:0}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{border-width:5px;content:" "}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{border-bottom-width:0;border-top-color:#303133;bottom:-6px}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{border-bottom-width:0;border-top-color:#303133;bottom:1px;margin-left:-5px}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133;border-top-width:0;top:-6px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#303133;border-top-width:0;margin-left:-5px;top:1px}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{border-left-width:0;border-right-color:#303133;left:-6px}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{border-left-width:0;border-right-color:#303133;bottom:-5px;left:1px}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{border-left-color:#303133;border-right-width:0;right:-6px}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{border-left-color:#303133;border-right-width:0;bottom:-5px;margin-left:-5px;right:1px}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-slider:after,.el-slider:before{content:"";display:table}.el-slider:after{clear:both}.el-slider__runway{background-color:#e4e7ed;border-radius:3px;cursor:pointer;height:6px;margin:16px 0;position:relative;vertical-align:middle;width:100%}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#afb3ba}.el-slider__runway.disabled .el-slider__button{border-color:#afb3ba}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{background-color:#1a7efb;border-bottom-left-radius:3px;border-top-left-radius:3px;height:6px;position:absolute}.el-slider__button-wrapper{background-color:transparent;height:36px;line-height:normal;position:absolute;text-align:center;top:-15px;transform:translateX(-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:36px;z-index:1001}.el-slider__button-wrapper:after{content:"";height:100%}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{display:inline-block;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{background-color:#fff;border:2px solid #1a7efb;border-radius:50%;height:16px;transition:.2s;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:16px}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{background-color:#fff;border-radius:100%;height:6px;position:absolute;transform:translateX(-50%);width:6px}.el-slider__marks{height:100%;left:12px;top:0;width:18px}.el-slider__marks-text{color:#4b4c4d;font-size:14px;margin-top:15px;position:absolute;transform:translateX(-50%)}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{height:100%;margin:0 16px;width:6px}.el-slider.is-vertical .el-slider__bar{border-radius:0 0 3px 3px;height:auto;width:6px}.el-slider.is-vertical .el-slider__button-wrapper{left:-15px;top:auto;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{bottom:22px;float:none;margin-top:15px;overflow:visible;position:absolute;width:36px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{padding-left:5px;padding-right:5px;text-align:center}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{border:1px solid #dadbdd;box-sizing:border-box;line-height:20px;margin-top:-1px;top:32px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{border-bottom-left-radius:7px;right:18px;width:18px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{border-bottom-right-radius:7px;width:19px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#afb3ba}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#1a7efb}.el-slider.is-vertical .el-slider__marks-text{left:15px;margin-top:0;transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:hsla(0,0%,100%,.9);bottom:0;left:0;margin:0;position:absolute;right:0;top:0;transition:opacity .3s;z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{margin-top:-21px;position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:#1a7efb;font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;height:42px;width:42px}.el-loading-spinner .path{stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#1a7efb;stroke-linecap:round;animation:loading-dash 1.5s ease-in-out infinite}.el-loading-spinner i{color:#1a7efb}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{box-sizing:border-box;position:relative}.el-row:after,.el-row:before{content:"";display:table}.el-row:after{clear:both}.el-row--flex{display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{justify-content:center}.el-row--flex.is-justify-end{justify-content:flex-end}.el-row--flex.is-justify-space-between{justify-content:space-between}.el-row--flex.is-justify-space-around{justify-content:space-around}.el-row--flex.is-align-top{align-items:flex-start}.el-row--flex.is-align-middle{align-items:center}.el-row--flex.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box;float:left}.el-col-0{display:none;width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{left:0;position:relative}.el-col-1{width:4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{left:4.1666666667%;position:relative}.el-col-2{width:8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{left:8.3333333333%;position:relative}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{left:12.5%;position:relative}.el-col-4{width:16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{left:16.6666666667%;position:relative}.el-col-5{width:20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{left:20.8333333333%;position:relative}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{left:25%;position:relative}.el-col-7{width:29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{left:29.1666666667%;position:relative}.el-col-8{width:33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{left:33.3333333333%;position:relative}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{left:37.5%;position:relative}.el-col-10{width:41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{left:41.6666666667%;position:relative}.el-col-11{width:45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{left:45.8333333333%;position:relative}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%;position:relative}.el-col-13{width:54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{left:54.1666666667%;position:relative}.el-col-14{width:58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{left:58.3333333333%;position:relative}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{left:62.5%;position:relative}.el-col-16{width:66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{left:66.6666666667%;position:relative}.el-col-17{width:70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{left:70.8333333333%;position:relative}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{left:75%;position:relative}.el-col-19{width:79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{left:79.1666666667%;position:relative}.el-col-20{width:83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{left:83.3333333333%;position:relative}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{left:87.5%;position:relative}.el-col-22{width:91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{left:91.6666666667%;position:relative}.el-col-23{width:95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{left:95.8333333333%;position:relative}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{left:100%;position:relative}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{left:0;position:relative}.el-col-xs-1{width:4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{left:4.1666666667%;position:relative}.el-col-xs-2{width:8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{left:8.3333333333%;position:relative}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{left:12.5%;position:relative}.el-col-xs-4{width:16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{left:16.6666666667%;position:relative}.el-col-xs-5{width:20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{left:20.8333333333%;position:relative}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{left:25%;position:relative}.el-col-xs-7{width:29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{left:29.1666666667%;position:relative}.el-col-xs-8{width:33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{left:33.3333333333%;position:relative}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{left:37.5%;position:relative}.el-col-xs-10{width:41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{left:41.6666666667%;position:relative}.el-col-xs-11{width:45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{left:45.8333333333%;position:relative}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{left:50%;position:relative}.el-col-xs-13{width:54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{left:54.1666666667%;position:relative}.el-col-xs-14{width:58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{left:58.3333333333%;position:relative}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{left:62.5%;position:relative}.el-col-xs-16{width:66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{left:66.6666666667%;position:relative}.el-col-xs-17{width:70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{left:70.8333333333%;position:relative}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{left:75%;position:relative}.el-col-xs-19{width:79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{left:79.1666666667%;position:relative}.el-col-xs-20{width:83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{left:83.3333333333%;position:relative}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{left:87.5%;position:relative}.el-col-xs-22{width:91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{left:91.6666666667%;position:relative}.el-col-xs-23{width:95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{left:95.8333333333%;position:relative}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{left:100%;position:relative}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{left:0;position:relative}.el-col-sm-1{width:4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{left:4.1666666667%;position:relative}.el-col-sm-2{width:8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{left:8.3333333333%;position:relative}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{left:12.5%;position:relative}.el-col-sm-4{width:16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{left:16.6666666667%;position:relative}.el-col-sm-5{width:20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{left:20.8333333333%;position:relative}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{left:25%;position:relative}.el-col-sm-7{width:29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{left:29.1666666667%;position:relative}.el-col-sm-8{width:33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{left:33.3333333333%;position:relative}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{left:37.5%;position:relative}.el-col-sm-10{width:41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{left:41.6666666667%;position:relative}.el-col-sm-11{width:45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{left:45.8333333333%;position:relative}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{left:50%;position:relative}.el-col-sm-13{width:54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{left:54.1666666667%;position:relative}.el-col-sm-14{width:58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{left:58.3333333333%;position:relative}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{left:62.5%;position:relative}.el-col-sm-16{width:66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{left:66.6666666667%;position:relative}.el-col-sm-17{width:70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{left:70.8333333333%;position:relative}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{left:75%;position:relative}.el-col-sm-19{width:79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{left:79.1666666667%;position:relative}.el-col-sm-20{width:83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{left:83.3333333333%;position:relative}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{left:87.5%;position:relative}.el-col-sm-22{width:91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{left:91.6666666667%;position:relative}.el-col-sm-23{width:95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{left:95.8333333333%;position:relative}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{left:100%;position:relative}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{left:0;position:relative}.el-col-md-1{width:4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{left:4.1666666667%;position:relative}.el-col-md-2{width:8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{left:8.3333333333%;position:relative}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{left:12.5%;position:relative}.el-col-md-4{width:16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{left:16.6666666667%;position:relative}.el-col-md-5{width:20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{left:20.8333333333%;position:relative}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{left:25%;position:relative}.el-col-md-7{width:29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{left:29.1666666667%;position:relative}.el-col-md-8{width:33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{left:33.3333333333%;position:relative}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{left:37.5%;position:relative}.el-col-md-10{width:41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{left:41.6666666667%;position:relative}.el-col-md-11{width:45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{left:45.8333333333%;position:relative}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{left:50%;position:relative}.el-col-md-13{width:54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{left:54.1666666667%;position:relative}.el-col-md-14{width:58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{left:58.3333333333%;position:relative}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{left:62.5%;position:relative}.el-col-md-16{width:66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{left:66.6666666667%;position:relative}.el-col-md-17{width:70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{left:70.8333333333%;position:relative}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{left:75%;position:relative}.el-col-md-19{width:79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{left:79.1666666667%;position:relative}.el-col-md-20{width:83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{left:83.3333333333%;position:relative}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{left:87.5%;position:relative}.el-col-md-22{width:91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{left:91.6666666667%;position:relative}.el-col-md-23{width:95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{left:95.8333333333%;position:relative}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{left:100%;position:relative}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{left:0;position:relative}.el-col-lg-1{width:4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{left:4.1666666667%;position:relative}.el-col-lg-2{width:8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{left:8.3333333333%;position:relative}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{left:12.5%;position:relative}.el-col-lg-4{width:16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{left:16.6666666667%;position:relative}.el-col-lg-5{width:20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{left:20.8333333333%;position:relative}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{left:25%;position:relative}.el-col-lg-7{width:29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{left:29.1666666667%;position:relative}.el-col-lg-8{width:33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{left:33.3333333333%;position:relative}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{left:37.5%;position:relative}.el-col-lg-10{width:41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{left:41.6666666667%;position:relative}.el-col-lg-11{width:45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{left:45.8333333333%;position:relative}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{left:50%;position:relative}.el-col-lg-13{width:54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{left:54.1666666667%;position:relative}.el-col-lg-14{width:58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{left:58.3333333333%;position:relative}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{left:62.5%;position:relative}.el-col-lg-16{width:66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{left:66.6666666667%;position:relative}.el-col-lg-17{width:70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{left:70.8333333333%;position:relative}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{left:75%;position:relative}.el-col-lg-19{width:79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{left:79.1666666667%;position:relative}.el-col-lg-20{width:83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{left:83.3333333333%;position:relative}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{left:87.5%;position:relative}.el-col-lg-22{width:91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{left:91.6666666667%;position:relative}.el-col-lg-23{width:95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{left:95.8333333333%;position:relative}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{left:100%;position:relative}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{left:0;position:relative}.el-col-xl-1{width:4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{left:4.1666666667%;position:relative}.el-col-xl-2{width:8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{left:8.3333333333%;position:relative}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{left:12.5%;position:relative}.el-col-xl-4{width:16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{left:16.6666666667%;position:relative}.el-col-xl-5{width:20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{left:20.8333333333%;position:relative}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{left:25%;position:relative}.el-col-xl-7{width:29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{left:29.1666666667%;position:relative}.el-col-xl-8{width:33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{left:33.3333333333%;position:relative}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{left:37.5%;position:relative}.el-col-xl-10{width:41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{left:41.6666666667%;position:relative}.el-col-xl-11{width:45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{left:45.8333333333%;position:relative}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{left:50%;position:relative}.el-col-xl-13{width:54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{left:54.1666666667%;position:relative}.el-col-xl-14{width:58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{left:58.3333333333%;position:relative}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{left:62.5%;position:relative}.el-col-xl-16{width:66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{left:66.6666666667%;position:relative}.el-col-xl-17{width:70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{left:70.8333333333%;position:relative}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{left:75%;position:relative}.el-col-xl-19{width:79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{left:79.1666666667%;position:relative}.el-col-xl-20{width:83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{left:83.3333333333%;position:relative}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{left:87.5%;position:relative}.el-col-xl-22{width:91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{left:91.6666666667%;position:relative}.el-col-xl-23{width:95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{left:95.8333333333%;position:relative}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{left:100%;position:relative}}.el-upload{cursor:pointer;display:inline-block;outline:none;text-align:center}.el-upload__input{display:none}.el-upload__tip{color:#606266;font-size:12px;margin-top:7px}.el-upload iframe{filter:alpha(opacity=0);left:0;opacity:0;position:absolute;top:0;z-index:-1}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;box-sizing:border-box;cursor:pointer;height:148px;line-height:146px;vertical-align:top;width:148px}.el-upload--picture-card i{color:#8c939d;font-size:28px}.el-upload--picture-card:hover,.el-upload:focus{border-color:#1a7efb;color:#1a7efb}.el-upload:focus .el-upload-dragger{border-color:#1a7efb}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;box-sizing:border-box;cursor:pointer;height:180px;overflow:hidden;position:relative;text-align:center;width:360px}.el-upload-dragger .el-icon-upload{color:#afb3ba;font-size:67px;line-height:50px;margin:40px 0 16px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dadbdd;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#1a7efb;font-style:normal}.el-upload-dragger:hover{border-color:#1a7efb}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #1a7efb}.el-upload-list{list-style:none;margin:0;padding:0}.el-upload-list__item{border-radius:4px;box-sizing:border-box;color:#606266;font-size:14px;line-height:1.8;margin-top:5px;position:relative;transition:all .5s cubic-bezier(.55,0,.1,1);width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#00b27f}.el-upload-list__item .el-icon-close{color:#606266;cursor:pointer;display:none;opacity:.75;position:absolute;right:5px;top:5px}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{color:#1a7efb;cursor:pointer;display:none;font-size:12px;opacity:1;position:absolute;right:5px;top:5px}.el-upload-list__item:hover{background-color:#f5f7fa}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#1a7efb;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{color:#909399;height:100%;line-height:inherit;margin-right:7px}.el-upload-list__item-status-label{display:none;line-height:inherit;position:absolute;right:5px;top:0}.el-upload-list__item-delete{color:#606266;display:none;font-size:12px;position:absolute;right:10px;top:0}.el-upload-list__item-delete:hover{color:#1a7efb}.el-upload-list--picture-card{display:inline;margin:0;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;display:inline-block;height:148px;margin:0 8px 8px 0;overflow:hidden;width:148px}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{height:100%;width:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:#13ce66;box-shadow:0 0 1pc 1px rgba(0,0,0,.2);height:24px;position:absolute;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{background-color:rgba(0,0,0,.5);color:#fff;cursor:default;font-size:20px;height:100%;left:0;opacity:0;position:absolute;text-align:center;top:0;transition:opacity .3s;width:100%}.el-upload-list--picture-card .el-upload-list__item-actions:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{color:inherit;font-size:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;height:92px;margin-top:10px;overflow:hidden;padding:10px 10px 10px 90px;z-index:0}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:transparent;box-shadow:none;right:-12px;top:-2px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{background-color:#fff;display:inline-block;float:left;height:70px;margin-left:-80px;position:relative;vertical-align:middle;width:70px;z-index:1}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;left:9px;line-height:1;position:absolute;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{background:#13ce66;box-shadow:0 1px 1px #ccc;height:26px;position:absolute;right:-17px;text-align:center;top:-7px;transform:rotate(45deg);width:46px}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{cursor:default;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:10}.el-upload-cover:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;height:100%;width:100%}.el-upload-cover__label{background:#13ce66;box-shadow:0 0 1pc 1px rgba(0,0,0,.2);height:24px;position:absolute;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-cover__label i{color:#fff;font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-cover__progress{display:inline-block;position:static;vertical-align:middle;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{height:100%;left:0;position:absolute;top:0;width:100%}.el-upload-cover__interact{background-color:rgba(0,0,0,.72);bottom:0;height:100%;left:0;position:absolute;text-align:center;width:100%}.el-upload-cover__interact .btn{color:#fff;cursor:pointer;display:inline-block;font-size:14px;margin-top:60px;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);vertical-align:middle}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{background-color:#fff;bottom:0;color:#303133;font-size:14px;font-weight:400;height:36px;left:0;line-height:36px;margin:0;overflow:hidden;padding:0 10px;position:absolute;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{line-height:1;position:relative}.el-progress__text{color:#606266;display:inline-block;font-size:14px;line-height:1;margin-left:10px;vertical-align:middle}.el-progress__text i{display:block;vertical-align:middle}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{left:0;margin:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{display:inline-block;vertical-align:middle}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{display:block;margin-right:0;padding-right:0}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#00b27f}.el-progress.is-success .el-progress__text{color:#00b27f}.el-progress.is-warning .el-progress-bar__inner{background-color:#fcbe2d}.el-progress.is-warning .el-progress__text{color:#fcbe2d}.el-progress.is-exception .el-progress-bar__inner{background-color:#ff6154}.el-progress.is-exception .el-progress__text{color:#ff6154}.el-progress-bar{box-sizing:border-box;display:inline-block;margin-right:-55px;padding-right:50px;vertical-align:middle;width:100%}.el-progress-bar__outer{background-color:#ebeef5;border-radius:100px;height:6px;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{background-color:#1a7efb;border-radius:100px;height:100%;left:0;line-height:1;position:absolute;text-align:right;top:0;transition:width .6s ease;white-space:nowrap}.el-progress-bar__inner:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__innerText{color:#fff;display:inline-block;font-size:12px;margin:0 5px;vertical-align:middle}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-time-spinner{white-space:nowrap;width:100%}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{animation:rotate 2s linear infinite;height:50px;width:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(1turn)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{align-items:center;background-color:#edf2fc;border:1px solid #ebeef5;border-radius:7px;box-sizing:border-box;display:flex;left:50%;min-width:380px;overflow:hidden;padding:15px 15px 15px 20px;position:fixed;top:20px;transform:translateX(-50%);transition:opacity .3s,transform .4s,top .4s}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#4b4c4d}.el-message--success{background-color:#e6ffeb;border-color:#ccf0e5}.el-message--success .el-message__content{color:#00b27f}.el-message--warning{background-color:#fff9ea;border-color:#fef2d5}.el-message--warning .el-message__content{color:#fcbe2d}.el-message--error{background-color:#ffefee;border-color:#ffdfdd}.el-message--error .el-message__content{color:#ff6154}.el-message__icon{margin-right:10px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message__closeBtn{color:#afb3ba;cursor:pointer;font-size:16px;position:absolute;right:15px;top:50%;transform:translateY(-50%)}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#00b27f}.el-message .el-icon-error{color:#ff6154}.el-message .el-icon-info{color:#4b4c4d}.el-message .el-icon-warning{color:#fcbe2d}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;transform:translate(-50%,-100%)}.el-badge{display:inline-block;position:relative;vertical-align:middle}.el-badge__content{background-color:#ff6154;border:1px solid #fff;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:10px;top:0;transform:translateY(-50%) translateX(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content--primary{background-color:#1a7efb}.el-badge__content--success{background-color:#00b27f}.el-badge__content--warning{background-color:#fcbe2d}.el-badge__content--info{background-color:#4b4c4d}.el-badge__content--danger{background-color:#ff6154}.el-card{background-color:#fff;border:1px solid #ebeef5;border-radius:4px;color:#303133;overflow:hidden;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{border-bottom:1px solid #ebeef5;box-sizing:border-box;padding:18px 20px}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon,.el-rate__item{display:inline-block;position:relative}.el-rate__icon{color:#afb3ba;font-size:18px;margin-right:6px;transition:.3s}.el-rate__icon.hover{transform:scale(1.15)}.el-rate__decimal,.el-rate__icon .path2{left:0;position:absolute;top:0}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:flex}.el-steps--simple{background:#f5f7fa;border-radius:4px;padding:13px 8%}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{flex-flow:column;height:100%}.el-step{flex-shrink:1;position:relative}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-grow:0;flex-shrink:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{border-color:#303133;color:#303133}.el-step__head.is-wait{border-color:#afb3ba;color:#afb3ba}.el-step__head.is-success{border-color:#00b27f;color:#00b27f}.el-step__head.is-error{border-color:#ff6154;color:#ff6154}.el-step__head.is-finish{border-color:#1a7efb;color:#1a7efb}.el-step__icon{align-items:center;background:#fff;box-sizing:border-box;display:inline-flex;font-size:14px;height:24px;justify-content:center;position:relative;transition:.15s ease-out;width:24px;z-index:1}.el-step__icon.is-text{border:2px solid;border-color:inherit;border-radius:50%}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{color:inherit;display:inline-block;font-weight:700;line-height:1;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{background-color:#afb3ba;border-color:inherit;position:absolute}.el-step__line-inner{border:1px solid;border-color:inherit;box-sizing:border-box;display:block;height:0;transition:.15s ease-out;width:0}.el-step__main{text-align:left;white-space:normal}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{color:#303133;font-weight:700}.el-step__title.is-wait{color:#afb3ba}.el-step__title.is-success{color:#00b27f}.el-step__title.is-error{color:#ff6154}.el-step__title.is-finish{color:#1a7efb}.el-step__description{font-size:12px;font-weight:400;line-height:20px;margin-top:-5px;padding-right:10%}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#afb3ba}.el-step__description.is-success{color:#00b27f}.el-step__description.is-error{color:#ff6154}.el-step__description.is-finish{color:#1a7efb}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;left:0;right:0;top:11px}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{flex-grow:1;padding-left:10px}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{bottom:0;left:11px;top:0;width:2px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{align-items:center;display:flex}.el-step.is-simple .el-step__head{font-size:0;padding-right:10px;width:auto}.el-step.is-simple .el-step__icon{background:transparent;font-size:12px;height:16px;width:16px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{align-items:stretch;display:flex;flex-grow:1;position:relative}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{align-items:center;display:flex;flex-grow:1;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{background:#afb3ba;content:"";display:inline-block;height:15px;position:absolute;width:1px}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{height:300px;position:relative}.el-carousel__arrow{background-color:rgba(31,45,61,.11);border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:12px;height:36px;margin:0;outline:none;padding:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);transition:.3s;width:36px;z-index:10}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{list-style:none;margin:0;padding:0;position:absolute;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;position:static;text-align:center;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#afb3ba;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;text-align:center;transform:none}.el-carousel__indicators--labels .el-carousel__button{font-size:12px;height:auto;padding:2px 18px;width:auto}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{height:15px;width:2px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{background-color:#fff;border:none;cursor:pointer;display:block;height:2px;margin:0;opacity:.48;outline:none;padding:0;transition:.3s;width:30px}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{opacity:0;transform:translateY(-50%) translateX(-10px)}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{opacity:0;transform:translateY(-50%) translateX(10px)}.el-carousel__item{display:inline-block;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{background-color:#fff;height:100%;left:0;opacity:.24;position:absolute;top:0;transition:.2s;width:100%}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1)}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1)}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1)}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-bottom:1px solid #ebeef5;border-top:1px solid #ebeef5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{align-items:center;background-color:#fff;border-bottom:1px solid #ebeef5;color:#303133;cursor:pointer;display:flex;font-size:13px;font-weight:500;height:48px;line-height:48px;outline:none;transition:border-bottom-color .3s}.el-collapse-item__arrow{font-weight:300;margin:0 8px 0 auto;transition:transform .3s}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#1a7efb}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{background-color:#fff;border-bottom:1px solid #ebeef5;box-sizing:border-box;overflow:hidden;will-change:height}.el-collapse-item__content{color:#303133;font-size:13px;line-height:1.7692307692;padding-bottom:25px}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{border-color:transparent;border-style:solid;display:block;height:0;position:absolute;width:0}.el-popper .popper__arrow{border-width:6px;filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{border-width:6px;content:" "}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{border-bottom-width:0;border-top-color:#ebeef5;bottom:-6px;left:50%;margin-right:3px}.el-popper[x-placement^=top] .popper__arrow:after{border-bottom-width:0;border-top-color:#fff;bottom:1px;margin-left:-6px}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{border-bottom-color:#ebeef5;border-top-width:0;left:50%;margin-right:3px;top:-6px}.el-popper[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff;border-top-width:0;margin-left:-6px;top:1px}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{border-left-width:0;border-right-color:#ebeef5;left:-6px;margin-bottom:3px;top:50%}.el-popper[x-placement^=right] .popper__arrow:after{border-left-width:0;border-right-color:#fff;bottom:-6px;left:1px}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{border-left-color:#ebeef5;border-right-width:0;margin-bottom:3px;right:-6px;top:50%}.el-popper[x-placement^=left] .popper__arrow:after{border-left-color:#fff;border-right-width:0;bottom:-6px;margin-left:-6px;right:1px}.el-tag{background-color:#e8f2ff;border:1px solid #d1e5fe;border-radius:4px;box-sizing:border-box;color:#1a7efb;display:inline-block;font-size:12px;height:32px;line-height:30px;padding:0 10px;white-space:nowrap}.el-tag.is-hit{border-color:#1a7efb}.el-tag .el-tag__close{color:#1a7efb}.el-tag .el-tag__close:hover{background-color:#1a7efb;color:#fff}.el-tag.el-tag--info{background-color:#ededed;border-color:#dbdbdb;color:#4b4c4d}.el-tag.el-tag--info.is-hit{border-color:#4b4c4d}.el-tag.el-tag--info .el-tag__close{color:#4b4c4d}.el-tag.el-tag--info .el-tag__close:hover{background-color:#4b4c4d;color:#fff}.el-tag.el-tag--success{background-color:#e6f7f2;border-color:#ccf0e5;color:#00b27f}.el-tag.el-tag--success.is-hit{border-color:#00b27f}.el-tag.el-tag--success .el-tag__close{color:#00b27f}.el-tag.el-tag--success .el-tag__close:hover{background-color:#00b27f;color:#fff}.el-tag.el-tag--warning{background-color:#fff9ea;border-color:#fef2d5;color:#fcbe2d}.el-tag.el-tag--warning.is-hit{border-color:#fcbe2d}.el-tag.el-tag--warning .el-tag__close{color:#fcbe2d}.el-tag.el-tag--warning .el-tag__close:hover{background-color:#fcbe2d;color:#fff}.el-tag.el-tag--danger{background-color:#ffefee;border-color:#ffdfdd;color:#ff6154}.el-tag.el-tag--danger.is-hit{border-color:#ff6154}.el-tag.el-tag--danger .el-tag__close{color:#ff6154}.el-tag.el-tag--danger .el-tag__close:hover{background-color:#ff6154;color:#fff}.el-tag .el-icon-close{border-radius:50%;cursor:pointer;font-size:12px;height:16px;line-height:16px;position:relative;right:-5px;text-align:center;top:-1px;vertical-align:middle;width:16px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#1a7efb;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#1a7efb}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{background-color:#4898fc;color:#fff}.el-tag--dark.el-tag--info{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#4b4c4d}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{background-color:#6f7071;color:#fff}.el-tag--dark.el-tag--success{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#00b27f}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{background-color:#33c199;color:#fff}.el-tag--dark.el-tag--warning{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#fcbe2d}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{background-color:#fdcb57;color:#fff}.el-tag--dark.el-tag--danger{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#ff6154}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{background-color:#ff8176;color:#fff}.el-tag--plain{background-color:#fff;border-color:#a3cbfd;color:#1a7efb}.el-tag--plain.is-hit{border-color:#1a7efb}.el-tag--plain .el-tag__close{color:#1a7efb}.el-tag--plain .el-tag__close:hover{background-color:#1a7efb;color:#fff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#b7b7b8;color:#4b4c4d}.el-tag--plain.el-tag--info.is-hit{border-color:#4b4c4d}.el-tag--plain.el-tag--info .el-tag__close{color:#4b4c4d}.el-tag--plain.el-tag--info .el-tag__close:hover{background-color:#4b4c4d;color:#fff}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#99e0cc;color:#00b27f}.el-tag--plain.el-tag--success.is-hit{border-color:#00b27f}.el-tag--plain.el-tag--success .el-tag__close{color:#00b27f}.el-tag--plain.el-tag--success .el-tag__close:hover{background-color:#00b27f;color:#fff}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#fee5ab;color:#fcbe2d}.el-tag--plain.el-tag--warning.is-hit{border-color:#fcbe2d}.el-tag--plain.el-tag--warning .el-tag__close{color:#fcbe2d}.el-tag--plain.el-tag--warning .el-tag__close:hover{background-color:#fcbe2d;color:#fff}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#ffc0bb;color:#ff6154}.el-tag--plain.el-tag--danger.is-hit{border-color:#ff6154}.el-tag--plain.el-tag--danger .el-tag__close{color:#ff6154}.el-tag--plain.el-tag--danger .el-tag__close:hover{background-color:#ff6154;color:#fff}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;line-height:22px;padding:0 8px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;line-height:19px;padding:0 5px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}.el-cascader{display:inline-block;font-size:14px;line-height:40px;position:relative}.el-cascader:not(.is-disabled):hover .el-input__inner{border-color:#afb3ba;cursor:pointer}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-input__inner:focus{border-color:#1a7efb}.el-cascader .el-input .el-icon-arrow-down{font-size:14px;transition:transform .3s}.el-cascader .el-input .el-icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader .el-input.is-focus .el-input__inner{border-color:#1a7efb}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{color:#afb3ba;z-index:2}.el-cascader__dropdown{background:#fff;border:1px solid #e4e7ed;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);font-size:14px;margin:5px 0}.el-cascader__tags{box-sizing:border-box;display:flex;flex-wrap:wrap;left:0;line-height:normal;position:absolute;right:30px;text-align:left;top:50%;transform:translateY(-50%)}.el-cascader__tags .el-tag{align-items:center;background:#f0f2f5;display:inline-flex;margin:2px 0 2px 6px;max-width:100%;text-overflow:ellipsis}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{background-color:#afb3ba;color:#fff;flex:none}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:7px}.el-cascader__suggestion-list{color:#606266;font-size:14px;margin:0;max-height:204px;padding:6px 0;text-align:center}.el-cascader__suggestion-item{align-items:center;cursor:pointer;display:flex;height:34px;justify-content:space-between;outline:none;padding:0 15px;text-align:left}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#1a7efb;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{color:#afb3ba;margin:10px 0}.el-cascader__search-input{border:none;box-sizing:border-box;color:#606266;flex:1;height:24px;margin:2px 0 2px 15px;min-width:60px;outline:none;padding:0}.el-cascader__search-input::-moz-placeholder{color:#afb3ba}.el-cascader__search-input::placeholder{color:#afb3ba}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{border-radius:4px;cursor:pointer;height:20px;margin:0 0 8px 8px;width:20px}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px #1a7efb}.el-color-predefine__color-selector>div{border-radius:3px;display:flex;height:100%}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{background-color:red;box-sizing:border-box;height:12px;padding:0 2px;position:relative;width:280px}.el-color-hue-slider__bar{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%;position:relative}.el-color-hue-slider__thumb{background:#fff;border:1px solid #f0f0f0;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);box-sizing:border-box;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:4px;z-index:1}.el-color-hue-slider.is-vertical{height:180px;padding:2px 0;width:12px}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{height:4px;left:0;top:0;width:100%}.el-color-svpanel{height:180px;position:relative;width:280px}.el-color-svpanel__black,.el-color-svpanel__white{bottom:0;left:0;position:absolute;right:0;top:0}.el-color-svpanel__white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);cursor:head;height:4px;transform:translate(-2px,-2px);width:4px}.el-color-alpha-slider{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);box-sizing:border-box;height:12px;position:relative;width:280px}.el-color-alpha-slider__bar{background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%;position:relative}.el-color-alpha-slider__thumb{background:#fff;border:1px solid #f0f0f0;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);box-sizing:border-box;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:4px;z-index:1}.el-color-alpha-slider.is-vertical{height:180px;width:20px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{height:4px;left:0;top:0;width:100%}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{clear:both;content:"";display:table}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{color:#000;float:left;font-size:12px;line-height:26px;width:160px}.el-color-dropdown__btn{background-color:transparent;border:1px solid #dcdcdc;border-radius:2px;color:#333;cursor:pointer;font-size:12px;line-height:24px;outline:none;padding:0 20px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{border-color:#1a7efb;color:#1a7efb}.el-color-dropdown__link-btn{color:#1a7efb;cursor:pointer;font-size:12px;padding:15px;text-decoration:none}.el-color-dropdown__link-btn:hover{color:tint(#1a7efb,20%)}.el-color-picker{display:inline-block;height:40px;line-height:normal;position:relative}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{background-color:hsla(0,0%,100%,.7);border-radius:4px;cursor:not-allowed;height:38px;left:1px;position:absolute;top:1px;width:38px;z-index:1}.el-color-picker__trigger{border:1px solid #e6e6e6;border-radius:4px;box-sizing:border-box;cursor:pointer;display:inline-block;font-size:0;height:40px;padding:4px;position:relative;width:40px}.el-color-picker__color{border:1px solid #999;border-radius:4px;box-sizing:border-box;display:block;height:100%;position:relative;text-align:center;width:100%}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{bottom:0;left:0;position:absolute;right:0;top:0}.el-color-picker__empty{color:#999}.el-color-picker__empty,.el-color-picker__icon{font-size:12px;left:50%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{color:#fff;display:inline-block;text-align:center;width:100%}.el-color-picker__panel{background-color:#fff;border:1px solid #ebeef5;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:content-box;padding:6px;position:absolute;z-index:10}.el-textarea{display:inline-block;font-size:14px;position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{background-color:#fff;background-image:none;border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;color:#606266;display:block;font-size:inherit;line-height:1.5;padding:5px 15px;resize:vertical;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-textarea__inner::-moz-placeholder{color:#afb3ba}.el-textarea__inner::placeholder{color:#afb3ba}.el-textarea__inner:hover{border-color:#afb3ba}.el-textarea__inner:focus{border-color:#1a7efb;outline:none}.el-textarea .el-input__count{background:#fff;bottom:5px;color:#4b4c4d;font-size:12px;position:absolute;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#afb3ba;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#afb3ba}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#afb3ba}.el-textarea.is-exceed .el-textarea__inner{border-color:#ff6154}.el-textarea.is-exceed .el-input__count{color:#ff6154}.el-input{display:inline-block;font-size:14px;position:relative;width:100%}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:#b4bccc;border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#afb3ba;cursor:pointer;font-size:14px;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{align-items:center;color:#4b4c4d;display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:#fff;display:inline-block;line-height:normal;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:none;padding:0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__inner::-ms-reveal{display:none}.el-input__inner::-moz-placeholder{color:#afb3ba}.el-input__inner::placeholder{color:#afb3ba}.el-input__inner:hover{border-color:#afb3ba}.el-input__inner:focus{border-color:#1a7efb;outline:none}.el-input__suffix{color:#afb3ba;height:100%;pointer-events:none;position:absolute;right:5px;text-align:center;top:0;transition:all .3s}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{color:#afb3ba;left:5px;position:absolute;top:0}.el-input__icon,.el-input__prefix{height:100%;text-align:center;transition:all .3s}.el-input__icon{line-height:40px;width:25px}.el-input__icon:after{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__inner{border-color:#1a7efb;outline:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#afb3ba;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#afb3ba}.el-input.is-disabled .el-input__inner::placeholder{color:#afb3ba}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#ff6154}.el-input.is-exceed .el-input__suffix .el-input__count{color:#ff6154}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{border-collapse:separate;border-spacing:0;display:inline-table;line-height:normal;width:100%}.el-input-group>.el-input__inner{display:table-cell;vertical-align:middle}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;border:1px solid #dadbdd;border-radius:7px;color:#4b4c4d;display:table-cell;padding:0 20px;position:relative;vertical-align:middle;white-space:nowrap;width:1px}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{background-color:transparent;border-color:transparent;border-bottom:0;border-top:0;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.el-input-group__append{border-left:0}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input-group--append .el-input__inner{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;height:0;width:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;padding:0 30px;vertical-align:middle}.el-transfer__button{background-color:#1a7efb;border-radius:50%;color:#fff;display:block;font-size:0;margin:0 auto;padding:10px}.el-transfer__button.is-with-texts{border-radius:7px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{background-color:#f5f7fa;border:1px solid #dadbdd;color:#afb3ba}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer-panel{background:#fff;border:1px solid #ebeef5;border-radius:7px;box-sizing:border-box;display:inline-block;max-height:100%;overflow:hidden;position:relative;vertical-align:middle;width:200px}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{box-sizing:border-box;height:246px;list-style:none;margin:0;overflow:auto;padding:6px 0}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{display:block!important;height:30px;line-height:30px;padding-left:15px}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#1a7efb}.el-transfer-panel__item.el-checkbox .el-checkbox__label{box-sizing:border-box;display:block;line-height:30px;overflow:hidden;padding-left:24px;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{box-sizing:border-box;display:block;margin:15px;text-align:center;width:auto}.el-transfer-panel__filter .el-input__inner{border-radius:16px;box-sizing:border-box;display:inline-block;font-size:12px;height:32px;padding-left:30px;padding-right:10px;width:100%}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{background:#f5f7fa;border-bottom:1px solid #ebeef5;box-sizing:border-box;color:#000;height:40px;line-height:40px;margin:0;padding-left:15px}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{color:#303133;font-size:16px;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{color:#909399;font-size:12px;font-weight:400;position:absolute;right:15px}.el-transfer-panel .el-transfer-panel__footer{background:#fff;border-top:1px solid #ebeef5;bottom:0;height:40px;left:0;margin:0;padding:0;position:absolute;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{color:#606266;padding-left:20px}.el-transfer-panel .el-transfer-panel__empty{color:#909399;height:30px;line-height:30px;margin:0;padding:6px 15px 0;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{border-radius:3px;height:14px;width:14px}.el-transfer-panel .el-checkbox__inner:after{height:6px;left:4px;width:3px}.el-container{box-sizing:border-box;display:flex;flex:1;flex-basis:auto;flex-direction:row;min-width:0}.el-container.is-vertical{flex-direction:column}.el-header{padding:0 20px}.el-aside,.el-header{box-sizing:border-box;flex-shrink:0}.el-aside,.el-main{overflow:auto}.el-main{display:block;flex:1;flex-basis:auto;padding:20px}.el-footer,.el-main{box-sizing:border-box}.el-footer{flex-shrink:0;padding:0 20px}.el-timeline{font-size:14px;list-style:none;margin:0}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{padding-bottom:20px;position:relative}.el-timeline-item__wrapper{padding-left:28px;position:relative;top:-3px}.el-timeline-item__tail{border-left:2px solid #e4e7ed;height:100%;left:4px;position:absolute}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{align-items:center;background-color:#e4e7ed;border-radius:50%;display:flex;justify-content:center;position:absolute}.el-timeline-item__node--normal{height:12px;left:-1px;width:12px}.el-timeline-item__node--large{height:14px;left:-2px;width:14px}.el-timeline-item__node--primary{background-color:#1a7efb}.el-timeline-item__node--success{background-color:#00b27f}.el-timeline-item__node--warning{background-color:#fcbe2d}.el-timeline-item__node--danger{background-color:#ff6154}.el-timeline-item__node--info{background-color:#4b4c4d}.el-timeline-item__dot{align-items:center;display:flex;justify-content:center;position:absolute}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;font-size:13px;line-height:1}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{align-items:center;cursor:pointer;display:inline-flex;flex-direction:row;font-size:14px;font-weight:500;justify-content:center;outline:none;padding:0;position:relative;text-decoration:none;vertical-align:middle}.el-link.is-underline:hover:after{border-bottom:1px solid #1a7efb;bottom:0;content:"";height:0;left:0;position:absolute;right:0}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#1a7efb}.el-link.el-link--default:after{border-color:#1a7efb}.el-link.el-link--default.is-disabled{color:#afb3ba}.el-link.el-link--primary{color:#1a7efb}.el-link.el-link--primary:hover{color:#4898fc}.el-link.el-link--primary:after{border-color:#1a7efb}.el-link.el-link--primary.is-disabled{color:#8dbffd}.el-link.el-link--primary.is-underline:hover:after{border-color:#1a7efb}.el-link.el-link--danger{color:#ff6154}.el-link.el-link--danger:hover{color:#ff8176}.el-link.el-link--danger:after{border-color:#ff6154}.el-link.el-link--danger.is-disabled{color:#ffb0aa}.el-link.el-link--danger.is-underline:hover:after{border-color:#ff6154}.el-link.el-link--success{color:#00b27f}.el-link.el-link--success:hover{color:#33c199}.el-link.el-link--success:after{border-color:#00b27f}.el-link.el-link--success.is-disabled{color:#80d9bf}.el-link.el-link--success.is-underline:hover:after{border-color:#00b27f}.el-link.el-link--warning{color:#fcbe2d}.el-link.el-link--warning:hover{color:#fdcb57}.el-link.el-link--warning:after{border-color:#fcbe2d}.el-link.el-link--warning.is-disabled{color:#fedf96}.el-link.el-link--warning.is-underline:hover:after{border-color:#fcbe2d}.el-link.el-link--info{color:#4b4c4d}.el-link.el-link--info:hover{color:#6f7071}.el-link.el-link--info:after{border-color:#4b4c4d}.el-link.el-link--info.is-disabled{color:#a5a6a6}.el-link.el-link--info.is-underline:hover:after{border-color:#4b4c4d}.el-divider{background-color:#dadbdd;position:relative}.el-divider--horizontal{display:block;height:1px;margin:24px 0;width:100%}.el-divider--vertical{display:inline-block;height:1em;margin:0 8px;position:relative;vertical-align:middle;width:1px}.el-divider__text{background-color:#fff;color:#303133;font-size:14px;font-weight:500;padding:0 20px;position:absolute}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{height:100%;width:100%}.el-image{display:inline-block;overflow:hidden;position:relative}.el-image__inner{vertical-align:top}.el-image__inner--center{display:block;left:50%;position:relative;top:50%;transform:translate(-50%,-50%)}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-image__error{align-items:center;color:#afb3ba;display:flex;font-size:14px;justify-content:center;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{bottom:0;left:0;position:fixed;right:0;top:0}.el-image-viewer__btn{align-items:center;border-radius:50%;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;opacity:.8;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1}.el-image-viewer__close{background-color:#606266;color:#fff;font-size:24px;height:40px;right:40px;top:40px;width:40px}.el-image-viewer__canvas{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.el-image-viewer__actions{background-color:#606266;border-color:#fff;border-radius:22px;bottom:30px;height:44px;left:50%;padding:0 23px;transform:translateX(-50%);width:282px}.el-image-viewer__actions__inner{align-items:center;color:#fff;cursor:default;display:flex;font-size:23px;height:100%;justify-content:space-around;text-align:justify;width:100%}.el-image-viewer__prev{left:40px}.el-image-viewer__next,.el-image-viewer__prev{background-color:#606266;border-color:#fff;color:#fff;font-size:24px;height:44px;top:50%;transform:translateY(-50%);width:44px}.el-image-viewer__next{right:40px;text-indent:2px}.el-image-viewer__mask{background:#000;height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%}.viewer-fade-enter-active{animation:viewer-fade-in .3s}.viewer-fade-leave-active{animation:viewer-fade-out .3s}@keyframes viewer-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.el-button{-webkit-appearance:none;background:#fff;border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;color:#606266;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1;margin:0;outline:none;padding:12px 20px;text-align:center;transition:.1s;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;white-space:nowrap}.el-button+.el-button{margin-left:10px}.el-button.is-round{padding:12px 20px}.el-button:focus,.el-button:hover{background-color:#e8f2ff;border-color:#bad8fe;color:#1a7efb}.el-button:active{border-color:#1771e2;color:#1771e2;outline:none}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#1a7efb;color:#1a7efb}.el-button.is-plain:active{background:#fff;outline:none}.el-button.is-active,.el-button.is-plain:active{border-color:#1771e2;color:#1771e2}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{background-color:#fff;background-image:none;border-color:#ebeef5;color:#afb3ba;cursor:not-allowed}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#afb3ba}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:hsla(0,0%,100%,.35);border-radius:inherit;bottom:-1px;content:"";left:-1px;pointer-events:none;position:absolute;right:-1px;top:-1px}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--primary:focus,.el-button--primary:hover{background:#4898fc;border-color:#4898fc;color:#fff}.el-button--primary:active{outline:none}.el-button--primary.is-active,.el-button--primary:active{background:#1771e2;border-color:#1771e2;color:#fff}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{background-color:#8dbffd;border-color:#8dbffd;color:#fff}.el-button--primary.is-plain{background:#e8f2ff;border-color:#a3cbfd;color:#1a7efb}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--primary.is-plain:active{background:#1771e2;border-color:#1771e2;color:#fff;outline:none}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{background-color:#e8f2ff;border-color:#d1e5fe;color:#76b2fd}.el-button--success{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-button--success:focus,.el-button--success:hover{background:#33c199;border-color:#33c199;color:#fff}.el-button--success:active{outline:none}.el-button--success.is-active,.el-button--success:active{background:#00a072;border-color:#00a072;color:#fff}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{background-color:#80d9bf;border-color:#80d9bf;color:#fff}.el-button--success.is-plain{background:#e6f7f2;border-color:#99e0cc;color:#00b27f}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#00b27f;border-color:#00b27f;color:#fff}.el-button--success.is-plain:active{background:#00a072;border-color:#00a072;color:#fff;outline:none}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{background-color:#e6f7f2;border-color:#ccf0e5;color:#66d1b2}.el-button--warning{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--warning:focus,.el-button--warning:hover{background:#fdcb57;border-color:#fdcb57;color:#fff}.el-button--warning:active{outline:none}.el-button--warning.is-active,.el-button--warning:active{background:#e3ab29;border-color:#e3ab29;color:#fff}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{background-color:#fedf96;border-color:#fedf96;color:#fff}.el-button--warning.is-plain{background:#fff9ea;border-color:#fee5ab;color:#fcbe2d}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--warning.is-plain:active{background:#e3ab29;border-color:#e3ab29;color:#fff;outline:none}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{background-color:#fff9ea;border-color:#fef2d5;color:#fdd881}.el-button--danger{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-button--danger:focus,.el-button--danger:hover{background:#ff8176;border-color:#ff8176;color:#fff}.el-button--danger:active{outline:none}.el-button--danger.is-active,.el-button--danger:active{background:#e6574c;border-color:#e6574c;color:#fff}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{background-color:#ffb0aa;border-color:#ffb0aa;color:#fff}.el-button--danger.is-plain{background:#ffefee;border-color:#ffc0bb;color:#ff6154}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#ff6154;border-color:#ff6154;color:#fff}.el-button--danger.is-plain:active{background:#e6574c;border-color:#e6574c;color:#fff;outline:none}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{background-color:#ffefee;border-color:#ffdfdd;color:#ffa098}.el-button--info{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--info:focus,.el-button--info:hover{background:#6f7071;border-color:#6f7071;color:#fff}.el-button--info:active{outline:none}.el-button--info.is-active,.el-button--info:active{background:#444445;border-color:#444445;color:#fff}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{background-color:#a5a6a6;border-color:#a5a6a6;color:#fff}.el-button--info.is-plain{background:#ededed;border-color:#b7b7b8;color:#4b4c4d}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--info.is-plain:active{background:#444445;border-color:#444445;color:#fff;outline:none}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{background-color:#ededed;border-color:#dbdbdb;color:#939494}.el-button--medium{border-radius:7px;font-size:14px;padding:10px 20px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small{border-radius:6px;font-size:13px;padding:8px 11px}.el-button--small.is-round{padding:8px 11px}.el-button--small.is-circle{padding:8px}.el-button--mini{border-radius:6px;font-size:12px;padding:7px 15px}.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{background:transparent;border-color:transparent;color:#1a7efb;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{background-color:transparent;border-color:transparent;color:#4898fc}.el-button--text:active{background-color:transparent;color:#1771e2}.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{content:"";display:table}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.el-button-group>.el-button:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-bottom-left-radius:7px;border-bottom-right-radius:7px;border-top-left-radius:7px;border-top-right-radius:7px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:not(.is-disabled):active,.el-button-group>.el-button:not(.is-disabled):focus,.el-button-group>.el-button:not(.is-disabled):hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-bottom-left-radius:0;border-left-color:hsla(0,0%,100%,.5);border-top-left-radius:0}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-calendar{background-color:#fff}.el-calendar__header{border-bottom:1px solid #ececec;display:flex;justify-content:space-between;padding:12px 20px}.el-calendar__title{align-self:center;color:#000}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{color:#606266;font-weight:400;padding:12px 0}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#afb3ba}.el-calendar-table td{border-bottom:1px solid #ececec;border-right:1px solid #ececec;transition:background-color .2s ease;vertical-align:top}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table td.is-today{color:#1a7efb}.el-calendar-table tr:first-child td{border-top:1px solid #ececec}.el-calendar-table tr td:first-child{border-left:1px solid #ececec}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;height:85px;padding:8px}.el-calendar-table .el-calendar-day:hover{background-color:#f2f8fe;cursor:pointer}.el-backtop{align-items:center;background-color:#fff;border-radius:50%;box-shadow:0 0 6px rgba(0,0,0,.12);color:#1a7efb;cursor:pointer;display:flex;font-size:20px;height:40px;justify-content:center;position:fixed;width:40px;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{display:flex;line-height:24px}.el-page-header__left{cursor:pointer;display:flex;margin-right:40px;position:relative}.el-page-header__left:after{background-color:#dadbdd;content:"";height:16px;position:absolute;right:-20px;top:50%;transform:translateY(-50%);width:1px}.el-page-header__left .el-icon-back{align-self:center;font-size:18px;margin-right:6px}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{color:#303133;font-size:18px}.el-checkbox{color:#606266;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;margin-right:30px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-checkbox.is-bordered{border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;height:40px;line-height:normal;padding:9px 20px 9px 10px}.el-checkbox.is-bordered.is-checked{border-color:#1a7efb}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{border-radius:7px;height:36px;padding:7px 20px 7px 10px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{font-size:14px;line-height:17px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:6px;height:32px;padding:5px 15px 5px 10px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:13px;line-height:15px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{border-radius:6px;height:28px;padding:3px 15px 3px 10px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{font-size:12px;line-height:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;display:inline-block;line-height:1;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dadbdd;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{border-color:#afb3ba;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dadbdd}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#afb3ba}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dadbdd}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#afb3ba;border-color:#afb3ba}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#afb3ba;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:#1a7efb;border-color:#1a7efb}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#1a7efb}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#1a7efb}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#1a7efb;border-color:#1a7efb}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{background-color:#fff;content:"";display:block;height:2px;left:0;position:absolute;right:0;top:5px;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{background-color:#fff;border:1px solid #868686;border-radius:4px;box-sizing:border-box;display:inline-block;height:14px;position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);width:14px;z-index:1}.el-checkbox__inner:hover{border-color:#1a7efb}.el-checkbox__inner:after{border:1px solid #fff;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.el-checkbox__original{height:0;margin:0;opacity:0;outline:none;position:absolute;width:0;z-index:-1}.el-checkbox__label{display:inline-block;font-size:14px;line-height:19px;padding-left:10px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button,.el-checkbox-button__inner{display:inline-block;position:relative}.el-checkbox-button__inner{-webkit-appearance:none;background:#fff;border:1px solid #dadbdd;border-left:0;border-radius:0;box-sizing:border-box;color:#606266;cursor:pointer;font-size:14px;font-weight:500;line-height:1;margin:0;outline:none;padding:12px 20px;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;vertical-align:middle;white-space:nowrap}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#1a7efb}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{background-color:#1a7efb;border-color:#1a7efb;box-shadow:-1px 0 0 0 #76b2fd;color:#fff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#1a7efb}.el-checkbox-button.is-disabled .el-checkbox-button__inner{background-color:#fff;background-image:none;border-color:#ebeef5;box-shadow:none;color:#afb3ba;cursor:not-allowed}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dadbdd;border-radius:7px 0 0 7px;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#1a7efb}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 7px 7px 0}.el-checkbox-button--medium .el-checkbox-button__inner{border-radius:0;font-size:14px;padding:10px 20px}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{border-radius:0;font-size:13px;padding:8px 11px}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:8px 11px}.el-checkbox-button--mini .el-checkbox-button__inner{border-radius:0;font-size:12px;padding:7px 15px}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio{color:#606266;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1;margin-right:30px;outline:none;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;white-space:nowrap}.el-radio.is-bordered{border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;height:40px;padding:12px 20px 0 10px}.el-radio.is-bordered.is-checked{border-color:#1a7efb}.el-radio.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{border-radius:7px;height:36px;padding:10px 20px 0 10px}.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{border-radius:6px;height:32px;padding:8px 15px 0 10px}.el-radio--small.is-bordered .el-radio__label{font-size:13px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{border-radius:6px;height:28px;padding:6px 15px 0 10px}.el-radio--mini.is-bordered .el-radio__label{font-size:12px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;display:inline-block;line-height:1;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-radio__input.is-disabled .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed;cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{background-color:#f5f7fa;cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#afb3ba}.el-radio__input.is-disabled+span.el-radio__label{color:#afb3ba;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{background:#1a7efb;border-color:#1a7efb}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#1a7efb}.el-radio__input.is-focus .el-radio__inner{border-color:#1a7efb}.el-radio__inner{background-color:#fff;border:1px solid #dadbdd;border-radius:100%;box-sizing:border-box;cursor:pointer;display:inline-block;height:14px;position:relative;width:14px}.el-radio__inner:hover{border-color:#1a7efb}.el-radio__inner:after{background-color:#fff;border-radius:100%;content:"";height:4px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in;width:4px}.el-radio__original{bottom:0;left:0;margin:0;opacity:0;outline:none;position:absolute;right:0;top:0;z-index:-1}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px #1a7efb}.el-radio__label{font-size:14px;padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;transition:opacity .34s ease-out}.el-scrollbar__wrap{height:100%;overflow:scroll}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{height:0;width:0}.el-scrollbar__thumb{background-color:hsla(220,4%,58%,.3);border-radius:inherit;cursor:pointer;display:block;height:0;position:relative;transition:background-color .3s;width:0}.el-scrollbar__thumb:hover{background-color:hsla(220,4%,58%,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;opacity:0;position:absolute;right:2px;transition:opacity .12s ease-out;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{border-radius:7px;display:flex;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #e4e7ed;border-radius:7px}.el-cascader-menu{border-right:1px solid #e4e7ed;box-sizing:border-box;color:#606266;min-width:180px}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{box-sizing:border-box;list-style:none;margin:0;min-height:100%;padding:6px 0;position:relative}.el-cascader-menu__hover-zone{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.el-cascader-menu__empty-text{color:#afb3ba;left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.el-cascader-node{align-items:center;display:flex;height:34px;line-height:34px;outline:none;padding:0 30px 0 20px;position:relative}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#1a7efb;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#afb3ba;cursor:not-allowed}.el-cascader-node__prefix{left:10px;position:absolute}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;overflow:hidden;padding:0 10px;text-overflow:ellipsis;white-space:nowrap}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{background:#c0c4cc;box-sizing:border-box;color:#fff;display:inline-block;font-size:14px;height:40px;line-height:40px;overflow:hidden;text-align:center;width:40px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:7px}.el-avatar--icon{font-size:18px}.el-avatar--large{height:40px;line-height:40px;width:40px}.el-avatar--medium{height:36px;line-height:36px;width:36px}.el-avatar--small{height:28px;line-height:28px;width:28px}@keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rtl-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rtl-drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes ltr-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes ltr-drawer-out{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes ttb-drawer-in{0%{transform:translateY(-100%)}to{transform:translate(0)}}@keyframes ttb-drawer-out{0%{transform:translate(0)}to{transform:translateY(-100%)}}@keyframes btt-drawer-in{0%{transform:translateY(100%)}to{transform:translate(0)}}@keyframes btt-drawer-out{0%{transform:translate(0)}to{transform:translateY(100%)}}.el-drawer{background-color:#fff;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-sizing:border-box;display:flex;flex-direction:column;outline:0;overflow:hidden;position:absolute}.el-drawer.rtl{animation:rtl-drawer-out .3s}.el-drawer__open .el-drawer.rtl{animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{animation:ltr-drawer-out .3s}.el-drawer__open .el-drawer.ltr{animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{animation:ttb-drawer-out .3s}.el-drawer__open .el-drawer.ttb{animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{animation:btt-drawer-out .3s}.el-drawer__open .el-drawer.btt{animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{bottom:0;left:0;margin:0;overflow:hidden;position:fixed;right:0;top:0}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:20px 20px 0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{flex:1;font-size:1rem;line-height:inherit;margin:0}.el-drawer__close-btn{background-color:transparent;border:none;color:inherit;cursor:pointer;font-size:20px}.el-drawer__body{flex:1;overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{bottom:0;height:100%;top:0}.el-drawer.btt,.el-drawer.ttb{left:0;right:0;width:100%}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer__container{bottom:0;height:100%;left:0;position:relative;right:0;top:0;width:100%}.el-drawer-fade-enter-active{animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-statistic{font-feature-settings:"tnum";box-sizing:border-box;color:#000;font-variant:tabular-nums;list-style:none;margin:0;padding:0;text-align:center;width:100%}.el-statistic .head{color:#606266;font-size:13px;margin-bottom:4px}.el-statistic .con{align-items:center;color:#303133;display:flex;font-family:Sans-serif;justify-content:center}.el-statistic .con .number{font-size:20px;padding:0 4px}.el-statistic .con span{display:inline-block;line-height:100%;margin:0}.el-popconfirm__main{align-items:center;display:flex}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{margin:0;text-align:right}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{background:#f2f2f2;height:16px;margin-top:16px}.el-skeleton.is-animated .el-skeleton__item{animation:el-skeleton-loading 1.4s ease infinite;background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%}.el-skeleton__item{background:#f2f2f2;border-radius:7px;display:inline-block;height:16px;width:100%}.el-skeleton__circle{border-radius:50%;height:36px;line-height:36px;width:36px}.el-skeleton__circle--lg{height:40px;line-height:40px;width:40px}.el-skeleton__circle--md{height:28px;line-height:28px;width:28px}.el-skeleton__button{border-radius:4px;height:40px;width:64px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{height:13px;width:100%}.el-skeleton__caption{height:12px}.el-skeleton__h1{height:20px}.el-skeleton__h3{height:18px}.el-skeleton__h5{height:16px}.el-skeleton__image{align-items:center;border-radius:0;display:flex;justify-content:center;width:unset}.el-skeleton__image svg{fill:#dcdde0;height:22%;width:22%}.el-empty{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:40px 0;text-align:center}.el-empty__image{width:160px}.el-empty__image img{height:100%;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:top;width:100%}.el-empty__image svg{fill:#dcdde0;height:100%;vertical-align:top;width:100%}.el-empty__description{margin-top:20px}.el-empty__description p{color:#909399;font-size:14px;margin:0}.el-empty__bottom{margin-top:20px}.el-descriptions{box-sizing:border-box;color:#303133;font-size:14px}.el-descriptions__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.el-descriptions__title{font-size:16px;font-weight:700}.el-descriptions__body{background-color:#fff;color:#606266}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;table-layout:fixed;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell{box-sizing:border-box;font-weight:400;line-height:1.5;text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-right{text-align:right}.el-descriptions .is-bordered{table-layout:auto}.el-descriptions .is-bordered .el-descriptions-item__cell{border:1px solid #ebeef5;padding:12px 10px}.el-descriptions :not(.is-bordered) .el-descriptions-item__cell{padding-bottom:12px}.el-descriptions--medium.is-bordered .el-descriptions-item__cell{padding:10px}.el-descriptions--medium:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:10px}.el-descriptions--small{font-size:12px}.el-descriptions--small.is-bordered .el-descriptions-item__cell{padding:8px 10px}.el-descriptions--small:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:8px}.el-descriptions--mini{font-size:12px}.el-descriptions--mini.is-bordered .el-descriptions-item__cell{padding:6px 10px}.el-descriptions--mini:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:6px}.el-descriptions-item{vertical-align:top}.el-descriptions-item__container{display:flex}.el-descriptions-item__container .el-descriptions-item__content,.el-descriptions-item__container .el-descriptions-item__label{align-items:baseline;display:inline-flex}.el-descriptions-item__container .el-descriptions-item__content{flex:1}.el-descriptions-item__label.has-colon:after{content:":";position:relative;top:-.5px}.el-descriptions-item__label.is-bordered-label{background:#fafafa;color:#909399;font-weight:700}.el-descriptions-item__label:not(.is-bordered-label){margin-right:10px}.el-descriptions-item__content{overflow-wrap:break-word;word-break:break-word}.el-result{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:40px 30px;text-align:center}.el-result__icon svg{height:64px;width:64px}.el-result__title{margin-top:20px}.el-result__title p{color:#303133;font-size:20px;line-height:1.3;margin:0}.el-result__subtitle{margin-top:10px}.el-result__subtitle p{color:#606266;font-size:14px;line-height:1.3;margin:0}.el-result__extra{margin-top:30px}.el-result .icon-success{fill:#00b27f}.el-result .icon-error{fill:#ff6154}.el-result .icon-info{fill:#4b4c4d}.el-result .icon-warning{fill:#fcbe2d}.el-dropdown-list-wrapper{padding:0}.el-dropdown-list-wrapper .group-title{background-color:#4b4c4d;color:#fff;display:block;padding:5px 10px}.remove-btn{cursor:pointer}.el-text-danger{color:#ff6154}.ff_condition_icon{color:#9ca1a7;position:absolute;right:8px;top:8px;z-index:1}.ff_conv_section>.ff_condition_icon,.item-container>.ff_condition_icon{right:17px;top:12px;z-index:2}.search-element{margin:10px 0;padding:0}.ff_filter_wrapper{margin-bottom:20px;overflow:hidden;width:100%}.ff_inline{display:inline-block}.ff_forms_table .el-loading-mask{z-index:100}.copy{cursor:context-menu}.fluent_form_intro{align-items:center;display:flex;text-align:center}.fluent_form_intro_video iframe{border-radius:8px;height:292px;width:100%}.wpns_preview_mce .el-form-item{margin-bottom:20px!important}.wpns_button_preview{border:1px solid #dde6ed!important;border-radius:.3rem!important;display:flex;flex-direction:column!important;height:100%!important;text-align:center}.wpns_button_preview .preview_header{background-color:#f2f5f9!important;color:#53657a!important;padding:6px 0}.wpns_button_preview .preview_body{align-items:center!important;height:100%;padding:150px 0}.ff_photo_small .wpf_photo_holder{background:gray;border-radius:3px;color:#fff;cursor:pointer;position:relative;text-align:center;width:64px}.ff_photo_small .wpf_photo_holder:hover img{display:none}.ff_photo_horizontal .wpf_photo_holder{border-radius:3px;color:#fff;cursor:pointer;position:relative;text-align:left}.ff_photo_horizontal .wpf_photo_holder img{display:inline-block;width:64px}.ff_photo_horizontal .wpf_photo_holder .photo_widget_btn{color:#000;display:inline-block;vertical-align:top}.ff_photo_horizontal .wpf_photo_holder .photo_widget_btn span{font-size:40px}.photo_widget_btn_clear{color:#ff6154;display:none;left:0;position:absolute;top:0}.wpf_photo_holder:hover .photo_widget_btn_clear{display:block}.wp_vue_editor{min-height:100px;width:100%}.wp_vue_editor_wrapper{position:relative}.wp_vue_editor_wrapper .popover-wrapper{position:absolute;right:0;top:0;z-index:2}.wp_vue_editor_wrapper .popover-wrapper-plaintext{left:auto;right:0;top:-32px}.wp_vue_editor_wrapper .wp-editor-tabs{float:left}.mce-wpns_editor_btn button{border:1px solid gray;border-radius:3px;font-size:14px!important;margin-top:-1px;padding:3px 8px!important}.mce-wpns_editor_btn:hover{border:1px solid transparent!important}.wp-core-ui .button,.wp-core-ui .button-secondary{border-color:gray;color:#595959}.is-error .el-input__inner{border-color:#ff6154}.el-form-item__error{position:relative!important}.el-form-item__error p{margin-bottom:0;margin-top:0}.el-dropdown-list-wrapper.el-popover{z-index:9999999999999!important}.input-textarea-value .icon{top:-18px}.el_pop_data_group{background:#fff;border-radius:8px;display:flex;overflow:hidden;padding:12px}.el_pop_data_headings{background-color:#f2f2f2;border-radius:8px;padding:12px;width:175px}.el_pop_data_headings ul{margin:10px 0;padding:0}.el_pop_data_headings ul li.active_item_selected{background:#f5f5f5;border-left:2px solid #6c757d;color:#6c757d}.el_pop_data_body{margin-left:20px;max-height:388px;overflow:auto;width:280px}.input-textarea-value{position:relative}.input-textarea-value .icon{background-color:#f2f2f2;border-radius:4px;cursor:pointer;display:inline-block;display:grid;height:26px;place-items:center;position:absolute;right:0;top:-30px;width:26px}.input-textarea-value .icon:hover{background-color:#e0e0e0} .el-dropdown-menu[data-v-7a97a5a6]{z-index:9999!important} assets/css/admin_notices.css000064400000002535147600120010012160 0ustar00.fluentform-admin-notice{display:block;margin:10px 0}.fluentform-admin-notice h3{font-size:16px;margin:16px 0}.fluentform-admin-notice p{margin:8px 0;padding:2px}.fluentform-admin-notice .ff_logo_holder{display:inline-block;margin-right:20px;max-width:90px}.fluentform-admin-notice .ff_logo_holder img{max-width:100%}.fluentform-admin-notice .ff_notice_container{display:inline-block;max-width:67%;padding-right:40px;position:relative;vertical-align:top}.fluentform-admin-notice .ff_notice_container>h3{margin:0}.fluentform-admin-notice .ff_notice_container .ff_temp_hide_nag{position:absolute;right:5px;top:50%}.fluentform-admin-notice .ff_notice_container .ff_temp_hide_nag .nag_cross_btn{cursor:pointer}.fluentform-admin-notice .ff_notice_container .ff_temp_hide_nag .nag_cross_btn:hover{color:gray}.fluentform-admin-notice .ff_notice_container .text-button{color:inherit}#ff_notice_review_query{background:#fff;border-left:4px solid #00b27f;border-radius:4px;box-shadow:0 1px 3px rgba(30,31,33,.08);margin:8px 24px 0}#ff_notice_review_query p{margin:0 0 8px;padding:0}#ff_notice_review_query .ff_notice_container{max-width:100%;width:100%}#ff_notice_review_query .ff_notice_container .ff_temp_hide_nag{top:35%}#ff_notice_review_query+.ff_global_setting_wrap,#ff_notice_review_query+.ff_tools_wrap,.error_notice_ff_fluentform_pro_license+.ff_tools_wrap{margin-top:20px} assets/css/fluent-all-forms.css000064400000202667147600120010012543 0ustar00@font-face{font-display:block;font-family:fluentform;font-style:normal;font-weight:400;src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd);src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd) format("embedded-opentype"),url(../fonts/fluentform.ttf?5fd4a17c106b6a8cae5c741ddbbe132c) format("truetype"),url(../fonts/fluentform.woff?31c9335ad614611f342d70917260470e) format("woff"),url(../fonts/fluentform.svg?1d0875320e0e3980ae21f2d18c21897a) format("svg")}[class*=" ff-icon-"],[class^=ff-icon-]{speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:fluentform!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.ff-icon-tablet:before{content:"\e96f"}.ff-icon-mobile:before{content:"\e970"}.ff-icon-monitor:before{content:"\e971"}.ff-icon-fullscreen-out:before{content:"\e96b"}.ff-icon-menu:before{content:"\e96a"}.ff-icon-play:before{content:"\e969"}.ff-icon-bug:before{content:"\e925"}.ff-icon-star-line:before{content:"\e94e"}.ff-icon-heart-clock:before{content:"\e966"}.ff-icon-microphone:before{content:"\e967"}.ff-icon-handshake:before{content:"\e968"}.ff-icon-ink-pen:before{content:"\e91e"}.ff-icon-arrow-left:before{content:"\e919"}.ff-icon-user-filled:before{content:"\e902"}.ff-icon-payment:before{content:"\e900"}.ff-icon-play-circle-filled:before{content:"\e901"}.ff-icon-promotion:before{content:"\e903"}.ff-icon-share-filled:before{content:"\e904"}.ff-icon-warning-filled:before{content:"\e905"}.ff-icon-more-vertical:before{content:"\e906"}.ff-icon-gift:before{content:"\e907"}.ff-icon-cursor:before{content:"\e908"}.ff-icon-hash:before{content:"\e909"}.ff-icon-photo:before{content:"\e90a"}.ff-icon-italic-light:before{content:"\e90b"}.ff-icon-keyboard:before{content:"\e90c"}.ff-icon-layers:before{content:"\e90d"}.ff-icon-left-align:before{content:"\e90e"}.ff-icon-light-10:before{content:"\e90f"}.ff-icon-map-pin:before{content:"\e910"}.ff-icon-lock:before{content:"\e911"}.ff-icon-email:before{content:"\e912"}.ff-icon-paragraph:before{content:"\e913"}.ff-icon-user:before{content:"\e914"}.ff-icon-phone-outgoing:before{content:"\e915"}.ff-icon-play-circle:before{content:"\e916"}.ff-icon-puzzle:before{content:"\e917"}.ff-icon-redo:before{content:"\e918"}.ff-icon-repeat:before{content:"\e91a"}.ff-icon-right-align:before{content:"\e91b"}.ff-icon-rocket-filled:before{content:"\e91c"}.ff-icon-setting:before{content:"\e91d"}.ff-icon-light-26:before{content:"\e91f"}.ff-icon-trash:before{content:"\e920"}.ff-icon-underline-alt:before{content:"\e921"}.ff-icon-undo:before{content:"\e922"}.ff-icon-upload-alt:before{content:"\e923"}.ff-icon-web-development:before{content:"\e924"}.ff-icon-underline:before{content:"\e926"}.ff-icon-italic:before{content:"\e927"}.ff-icon-filter-alt:before{content:"\e928"}.ff-icon-files:before{content:"\e929"}.ff-icon-file-add:before{content:"\e92a"}.ff-icon-fullscreen:before{content:"\e92b"}.ff-icon-donut-chart:before{content:"\e92c"}.ff-icon-dollar:before{content:"\e92d"}.ff-icon-document-light:before{content:"\e92e"}.ff-icon-document:before{content:"\e92f"}.ff-icon-document-alt:before{content:"\e930"}.ff-icon-design:before{content:"\e931"}.ff-icon-copy-filled:before{content:"\e932"}.ff-icon-copy:before{content:"\e933"}.ff-icon-code-alt:before{content:"\e934"}.ff-icon-code:before{content:"\e935"}.ff-icon-close-circle-filled:before{content:"\e936"}.ff-icon-chevron-double-left:before{content:"\e937"}.ff-icon-check:before{content:"\e938"}.ff-icon-center-align:before{content:"\e939"}.ff-icon-calendar:before{content:"\e93a"}.ff-icon-bookmark:before{content:"\e93b"}.ff-icon-bold:before{content:"\e93c"}.ff-icon-bold-light:before{content:"\e93d"}.ff-icon-bank:before{content:"\e93e"}.ff-icon-arrow-right:before{content:"\e93f"}.ff-icon-plus-filled:before{content:"\e940"}.ff-icon-plus:before{content:"\e941"}.ff-icon-checkmark-square:before{content:"\e942"}.ff-icon-download:before{content:"\e943"}.ff-icon-sort-circle-down:before{content:"\e944"}.ff-icon-eye-off:before{content:"\e945"}.ff-icon-eye:before{content:"\e946"}.ff-icon-flag:before{content:"\e947"}.ff-icon-link:before{content:"\e948"}.ff-icon-list:before{content:"\e949"}.ff-icon-move:before{content:"\e94a"}.ff-icon-plus-alt:before{content:"\e94b"}.ff-icon-radio-button-on:before{content:"\e94c"}.ff-icon-search:before{content:"\e94d"}.ff-icon-star:before{content:"\e94f"}.ff-icon-sort-down-alt:before{content:"\e950"}.ff-icon-close:before{content:"\e951"}.ff-icon-expand:before{content:"\e952"}.ff-icon-eye-filled:before{content:"\e953"}.ff-icon-info-filled:before{content:"\e954"}.ff-icon-keypad:before{content:"\e955"}.ff-icon-more-horizontal:before{content:"\e956"}.ff-icon-setting-filled:before{content:"\e957"}.ff-icon-strikethrough:before{content:"\e958"}.ff-icon-text:before{content:"\e959"}.ff-icon-decrease-edit:before{content:"\e95a"}.ff-icon-sort-down:before{content:"\e95b"}.ff-icon-increase-edit:before{content:"\e95c"}.ff-icon-list-ordered:before{content:"\e95d"}.ff-icon-quote-left:before{content:"\e95e"}.ff-icon-slider-horizontal:before{content:"\e95f"}.ff-icon-text-alt:before{content:"\e960"}.ff-icon-upload:before{content:"\e961"}.ff-icon-edit:before{content:"\e962"}.ff-icon-filter:before{content:"\e963"}.ff-icon-refresh:before{content:"\e964"}.ff-icon-task:before{content:"\e965"}.ff-icon-sort:before{content:"\e96c"}.ff-icon-captcha:before{content:"\e96d"}.ff-icon-clear:before{content:"\e96e"} .mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-3{margin-top:16px!important}.mt-4{margin-top:24px!important}.mt-5{margin-top:32px!important}.mt-6{margin-top:40px!important}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.mb-3{margin-bottom:16px!important}.mb-4{margin-bottom:24px!important}.mb-5{margin-bottom:32px!important}.mb-6{margin-bottom:40px!important}.mr-1{margin-right:4px!important}.mr-2{margin-right:8px!important}.mr-3{margin-right:16px!important}.mr-4{margin-right:24px!important}.mr-5{margin-right:32px!important}.mr-6{margin-right:40px!important}.ml-1{margin-left:4px!important}.ml-2{margin-left:8px!important}.ml-3{margin-left:16px!important}.ml-4{margin-left:24px!important}.ml-5{margin-left:32px!important}.ml-6{margin-left:40px!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.mr-0{margin-right:0!important}.ml-0{margin-left:0!important}.ff_list_button_item:not(:last-child){margin-bottom:4px}.ff_list_button_item.active .ff_list_button_link{background-color:#4b4c4d;color:#fff}.ff_list_button_item.has_sub_menu .ff_list_button_link{position:relative}.ff_list_button_item.has_sub_menu .ff_list_button_link:after{content:"\e6df";font-family:element-icons;position:absolute;right:15px;transition:.3s}.ff_list_button_item.has_sub_menu.is-submenu{color:inherit;font-style:inherit;font-weight:inherit;margin-left:0}.ff_list_button_item.has_sub_menu.is-submenu .ff_list_button_link:after{transform:rotate(-180deg)}.ff_list_button_link{background-color:transparent;border-radius:5px;color:#1e1f21;display:block;font-size:16px;padding:12px 18px;transition:.2s}.ff_list_button_link:hover{background-color:#f5f5f3;color:#1e1f21}.ff_list_button_small .ff_list_button_link{border-radius:6px;font-size:15px;padding:6px 14px}.ff_list_button_s1 .ff_list_button_item.active .ff_list_button_link{background-color:#f5f5f3;color:#1e1f21;font-weight:600}.ff_list_button_s1 .ff_list_button_link{color:#606266;font-size:15px}.ff_list li:not(:last-child){margin-bottom:12px}.ff_list li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list li a:hover{color:#1a7efb}.ff_list_submenu{background-color:#fff;display:none;margin-left:20px;margin-top:10px;position:relative}.ff_list_submenu:after{background-color:#e4e2df;content:"";height:100%;left:0;position:absolute;top:0;width:2px}.ff_list_submenu li{position:relative}.ff_list_submenu li:after{background-image:url(../images/curve-line.svg?ad01d82f4c085066c0a3accc820c65ac);background-repeat:no-repeat;content:"";height:10px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:12px}.ff_list_submenu li:last-child:before{background-color:#fff;bottom:0;content:"";height:18px;left:0;position:absolute;width:2px;z-index:1}.ff_list_submenu li a{border-radius:6px;color:#606266;display:block;font-size:15px;margin-left:15px;max-width:197px;overflow:hidden;padding:10px;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_list_submenu li a:hover{background-color:#efefef}.ff_list_submenu li.active a{background-color:#efefef;color:#1e1f21}.ff_list_border_bottom>li{font-size:15px;position:relative}.ff_list_border_bottom>li:not(:last-child){border-bottom:1px solid #ececec;margin-bottom:12px;padding-bottom:12px}.ff_list_border_bottom>li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list_border_bottom>li a.lead-text{color:#1a7efb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_list_border_bottom>li a.lead-text.lead-url{white-space:unset;word-break:break-all}.ff_submission_info_list li{display:flex}.ff_submission_info_list .lead-title{flex-shrink:0;width:120px}.ff_submission_info_list .truncate{max-width:228px}.el-button--upload{border-style:dashed;justify-content:center;padding:24px;width:100%}.el-button--upload .el-icon{font-size:22px}.ff_file_upload_result{align-items:center;background-color:#fafafa;border:1px solid #f2f2f2;border-radius:8px;display:flex;overflow:hidden;padding:10px;position:relative}.ff_file_upload_result .el-button{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.ff_file_upload_result+.ff_file_upload_result{margin-top:10px}.ff_file_upload_preview{height:44px;width:44px}.ff_file_upload_preview img{border-radius:4px;height:100%;-o-object-fit:cover;object-fit:cover;width:44px}.ff_file_upload_preview+.ff_file_upload_data{margin-left:15px}.ff_file_upload_description{color:#1e1f21;font-size:14px}.ff_file_upload_size{font-size:12px;margin-top:4px}body{background-color:#f2f2f2;color:#606266}#wpcontent{padding-left:0}#wpbody-content *{box-sizing:border-box}h1,h2,h3,h4,h5,h6{color:#1e1f21;margin:0}ol,ul{list-style:none;margin:0;padding:0}h1{font-size:24px}h2{font-size:23px}h3{font-size:22px;line-height:1.4}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}p{font-size:15px}p:last-child{margin:0}hr{border-bottom-color:#ececec;border-top:0}dd,li{margin-bottom:0}a{color:#1a7efb;font-weight:400;text-decoration:none}a:focus{box-shadow:none;outline:none}a:hover{color:#1a7efb}.notice,div.error,div.updated{margin:8px 24px 2px}.fluentform-admin-notice.notice-error{margin:8px 24px;padding:10px 20px}.fluentform-admin-notice.notice-error h3{font-size:18px;margin:10px 0}.ff_form_wrap_area .fluentform-admin-notice{margin:8px 0}.ff_backdrop{background:rgba(0,0,0,.5);bottom:0;left:0;position:fixed;right:0;top:0;z-index:999999999}.w-100{width:100%!important}.ff-mw-100{max-width:100%!important}.h-100{height:100%!important}.ff_form_wrap{padding:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{-webkit-appearance:none;background-color:#fff;border-color:#dadbdd;border-radius:7px;box-shadow:none;color:#606266;padding:0 15px}input[type=color]:focus,input[type=color]:hover,input[type=date]:focus,input[type=date]:hover,input[type=datetime-local]:focus,input[type=datetime-local]:hover,input[type=datetime]:focus,input[type=datetime]:hover,input[type=email]:focus,input[type=email]:hover,input[type=month]:focus,input[type=month]:hover,input[type=number]:focus,input[type=number]:hover,input[type=password]:focus,input[type=password]:hover,input[type=search]:focus,input[type=search]:hover,input[type=tel]:focus,input[type=tel]:hover,input[type=text]:focus,input[type=text]:hover,input[type=time]:focus,input[type=time]:hover,input[type=url]:focus,input[type=url]:hover,input[type=week]:focus,input[type=week]:hover,textarea:focus,textarea:hover{border-color:#1a7efb!important}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{box-shadow:none}input[type=number]{padding-right:0}input[type=checkbox]:disabled{opacity:0}.ff-select{-webkit-appearance:none!important;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat right 14px top 55%!important;background-blend-mode:hard-light;background-size:16px 16px!important;border:1px solid #dadbdd!important;border-radius:7px!important;box-sizing:border-box!important;color:#606266!important;display:inline-block!important;height:40px!important;line-height:40px!important;max-width:inherit!important;outline:0!important;outline:none!important;padding:0 29px 0 20px!important;text-overflow:ellipsis;transition:border-color .2s cubic-bezier(.645,.045,.355,1)!important}.ff-select:focus{box-shadow:none!important;outline:none!important}.ff-select-block{display:block;width:100%}.ff-select-small{background-position-x:38px!important;border-radius:5px!important;height:32px!important;line-height:32px!important;padding-left:10px!important;padding-right:24px!important}.ff-select-small.condition-field,.ff-select-small.condition-operator,.ff-select-small.condition-value{background-position-x:90%!important}.ff_filter_selected{background-color:#e8f2ff;border-color:#bad8fe;color:#1a7efb}p{margin-bottom:10px;margin-top:0}.icon{display:inline-block;font:normal normal normal 14px/1 ultimateform}.el-input--prefix .el-input__inner{padding-left:38px}.el-input__prefix{left:12px}.ff-icon+span,span+.ff-icon{margin-left:6px}.d-flex{display:flex}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.text-primary{color:#1a7efb!important}.text-secondary{color:#606266!important}.text-danger{color:#ff6154!important}.text-success{color:#00b27f!important}.text-warning{color:#fcbe2d!important}.text-dark{color:#1e1f21!important}.flex-grow-1{flex:1}.mr15{margin-right:15px}.mb15{margin-bottom:15px}.pull-left{float:left!important}.pull-right{float:right!important}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.el-icon-clickable{cursor:pointer}.help-text{font-size:.9em;font-style:italic;margin:0}.fs-17{font-size:17px!important}.fs-15{font-size:15px!important}.fs-14{font-size:14px!important}.fs-13{font-size:13px!important}.text-note{color:#606266;font-size:13px;font-weight:400}.ff-disabled{opacity:.5;pointer-events:none}.mx-auto{margin-left:auto;margin-right:auto}.img-thumb{border:1px solid #ececec;border-radius:8px}.lead-title{color:#1e1f21;display:block;font-size:15px;font-weight:500;transition:.2s}.lead-text{color:#606266;font-size:13px}a.lead-text{color:#1a7efb}.btn{background-image:none;border:1px solid transparent;border-radius:4px;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1.42857143;margin-bottom:0;padding:6px 12px;text-align:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.btn-primary{background-color:#337ab7;border-color:#2e6da4;color:#fff}.btn-primary:hover{background-color:#286090;border-color:#204d74;color:#fff}.btn-block{width:100%}.clearfix:after,.clearfix:before,.form-editor:after,.form-editor:before{content:" ";display:table}.clearfix:after,.form-editor:after{clear:both}.el-notification__content p{text-align:left}.label-lh-1-5 label{line-height:1.5}.ff_header{background:#fff;border-bottom:1px solid #ececec;display:flex;flex-direction:column;padding:10px 24px}.ff_header_group{align-items:center;display:flex;justify-content:space-between}.ff_header .plugin-name{height:30px}.ff_header .plugin-name img{height:100%}.ff_header .global-search-menu-button{background-color:transparent;border:0;border-radius:6px;color:rgba(60,60,60,.702);cursor:pointer;display:inline-block;font-size:15px;font-weight:400;line-height:1.6;margin:0 0 0 auto;padding:0 0 0 5px;transition:all .3s}.ff_header .global-search-menu-button .el-icon-search{font-size:16px;font-weight:600}.ff_header .global-search-menu-button .shortcut{border-radius:4px;box-shadow:0 2px 3px 0 rgba(32,33,36,.15);font-size:12px;letter-spacing:3px;padding:5px 8px;transition:all .3s}.ff_header .global-search-menu-button:hover{color:#353537}.ff_header .global-search-menu-button:hover .shortcut{border-color:#1a7efb;color:#1a7efb}.ff_header .global-search-menu-button span{margin-left:5px}.ff_row{display:flex;flex-wrap:wrap}.el-dialog{padding:24px 30px}.el-dialog__headerbtn{background-color:#fafafa;border-radius:50%;font-size:1.25rem;height:2rem;right:22px;top:18px;transition:.2s;width:2rem}.el-dialog__headerbtn .el-dialog__close{color:#1e1f21}.el-dialog__headerbtn:hover{background-color:#ececec}.el-dialog__headerbtn:hover .el-dialog__close{color:#1e1f21}.el-dialog__header{border-bottom:1px solid #ececec;padding:0 0 24px}.el-dialog__header h4{font-weight:500}.el-dialog__body,.el-dialog__footer{padding:0}.el-dialog__footer .has-separator{border-top:1px solid #ececec;padding-top:20px}.el-dialog,.el-popover{border-radius:8px}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__header{border:0;padding:0}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__body .el-row{align-content:center;align-items:center;display:flex;justify-content:center}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__headerbtn{z-index:1}.form-editor .disabled-info .el-dialog__wrapper h3{font-size:1.5em}.form-editor .disabled-info .el-dialog__wrapper p{font-size:16px}.form-editor .disabled-info .el-dialog__wrapper img{width:100%}.ff_nav_top{display:block;margin-bottom:15px;overflow:hidden;width:100%}.ff_nav_top .ff_nav_title{float:left;width:50%}.ff_nav_top .ff_nav_title h3{float:left;line-height:28px;margin:0;padding:0}.ff_nav_top .ff_nav_title .ff_nav_sub_actions{display:inline-block;margin-left:20px}.ff_nav_top .ff_nav_action{float:left;text-align:right;width:50%}.ff_nav_top .ff_search_inline{display:inline-block;text-align:right;width:200px}.ff_nav_top.ff_advanced_search{background:#fff;border-radius:5px;padding:10px 20px}.ff_global_notices{box-sizing:border-box;display:block;margin-top:20px;overflow:hidden;width:100%}.ff_global_notices .ff_global_notice{background:#fff;border:1px solid transparent;border-radius:.25rem;display:block;margin-bottom:1rem;margin-right:20px;padding:.75rem 1.25rem;position:relative}.ff_global_notices .ff_global_notice.ff_notice_error{background-color:#fff3cd;border-color:#ffeeba;color:#856404}.ff_global_notices .ff_global_notice.ff_notice_success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.el-select-dropdown.el-popper{z-index:99999999999!important}ul.ff_entry_list{list-style:disc;margin-left:20px}span.ff_new_badge{background:#ff4747;border-radius:4px;color:#fff;font-size:11px;line-height:100%;margin-left:5px;padding:0 5px 3px;vertical-align:super}label.el-checkbox,label.el-radio{display:inline-block}.el-time-spinner__list .el-time-spinner__item{margin-bottom:0!important}.ff_card_block{background:#f2f2f2;border-radius:8px;padding:20px}.ff_card_block_head{border-bottom:1px solid #e3e3e3;margin-bottom:20px;padding-bottom:15px}.ff_card_block h3{margin:0 0 15px;padding:0}.videoWrapper{height:0;padding-bottom:56.25%;position:relative}.videoWrapper iframe{height:100%;left:0;position:absolute;top:0;width:100%}.ff-left-spaced{margin-left:10px!important}.doc_video_wrapper{background:#fff;margin:0 auto;max-width:800px;padding:20px 0 0;text-align:center}.el-big-items .el-select-dropdown__wrap{max-height:350px}.ff_email_resend_inline{display:inline-block}.el-radio-group-column{display:flex;flex-direction:column}.el-radio-group-column .el-radio{margin-bottom:20px;margin-right:0}.el-checkbox-group-column{display:flex;flex-direction:column}.el-checkbox-group-column .el-checkbox{margin-bottom:14px;margin-right:0}.ff_advanced_filter_wrap{position:relative}.ff_advanced_search{background:#fff;border-radius:8px;box-shadow:0 40px 64px -12px rgba(0,0,0,.08),0 0 14px -4px rgba(0,0,0,.08),0 32px 48px -8px rgba(0,0,0,.1);margin-top:10px;padding:20px;position:absolute;right:0;top:100%;width:350px;z-index:1024}.ff_advanced_search_date_range{background-color:#ececec;border-radius:8px;padding:14px}.ff_advanced_search_date_range p{font-size:14px;font-weight:400}.ff_advanced_search_date_range .el-date-editor--daterange.el-input__inner{width:282px}.el-switch__core:after{box-shadow:0 2px 4px rgba(0,0,0,.2),inset 0 2px 2px #fff,inset 0 -1px 1px rgba(0,0,0,.1)}.row-actions .row-actions-item{display:inline-block;font-size:13px;line-height:1;padding-right:10px;position:relative}.row-actions .row-actions-item:after{background-color:#ddd;content:"";height:10px;position:absolute;right:3px;top:50%;transform:translateY(-50%);width:1px}.row-actions .row-actions-item.trash:after{display:none}.row-actions span.trash a{color:#ff6154}.ff_pagination{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);display:inline-flex;font-weight:500;max-width:100%;padding:12px 20px}.ff_pagination .el-input__inner{background:#f2f2f2;border-color:#f2f2f2;border-radius:4px!important;color:#606266}.ff_pagination .el-input__inner:focus,.ff_pagination .el-input__inner:hover{border-color:#f2f2f2!important}.ff_pagination .el-select .el-input .el-select__caret{color:#606266}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:transparent;border-radius:4px}.ff_shortcode_wrap+.ff_shortcode_wrap{margin-top:.5rem}.ff_shortcode_btn{align-items:center;background-color:#ededed;border:0;border-radius:6px;color:#353537;display:inline-flex;font-size:12px;margin:0;overflow:hidden;padding:4px 10px}.ff_shortcode_btn span{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:200px}.ff_shortcode_btn .el-icon{margin-right:1px}.ff_shortcode_btn_thin{background-color:#f2f2f2}.ff_shortcode_btn_md{font-size:15px;line-height:1.2;padding:10px 14px}.copy_btn{background-color:#e7e6e6;border-radius:4px;cursor:pointer;margin-left:auto;padding:1px 10px;transition:.2s}.copy_btn:hover{background-color:#d8d7d7}.ff_editor_html ul{list-style-type:disc;padding-left:3em}.ff_editor_html ol{list-style-type:decimal;margin-left:3em}.ff_section_block{margin-bottom:64px}.ff_section_block:last-child{margin-bottom:0}.ff_radio_list{display:flex;flex-direction:column}.ff_radio_list_item{margin-bottom:2px;width:100%}.ff_radio_list_item .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:6px!important;box-shadow:none!important;color:#606266;padding:13px 16px;text-align:left;transition:.2s;width:100%}.ff_radio_list_item .el-radio-button__inner:hover,.ff_radio_list_item.is-active .el-radio-button__inner{background-color:rgba(96,98,102,.1);color:#1e1f21}.is-sticky{position:fixed;top:40px;z-index:1020}.ff_section_desc{font-size:16px}.ff_section_head{margin-bottom:40px}.ff_section_head_between{display:flex;flex-wrap:wrap;justify-content:space-between}.ff_section_head.sm{margin-bottom:24px}.ff_section_head_content_group{align-items:center;display:flex}.ff_section_head .text{font-size:15px}.el-row{display:flex;flex-wrap:wrap}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.items_end{align-items:flex-end!important}.el-radio-button__inner{font-weight:400}.el-select-dropdown__item.selected{font-weight:500}.ff_layout_section{display:flex;min-height:550px;position:relative;width:100%}.ff_layout_section_sidebar{background-color:#fff;box-shadow:0 1px 3px rgba(30,31,33,.05);flex-shrink:0;padding:16px;vertical-align:top;width:230px}.ff_layout_section_container{flex:1;overflow-y:scroll;padding:16px}.ff_global_setting_wrap .ff_layout_section_sidebar,.ff_tools_wrap .ff_layout_section_sidebar{height:100%}.ff_global_settings_option{height:110vh;overflow-y:scroll}.ff_global_settings_option::-webkit-scrollbar{display:none}.ff_global_settings_option .el-form-item,.ff_global_settings_option .el-form-item-wrap{margin-bottom:24px}.ff_global_settings_option .el-form-item-wrap:last-child,.ff_global_settings_option .el-form-item:last-child{margin-bottom:0}.ff_global_settings_option .ff_card:not(:last-child){margin-bottom:32px}.ff_input_width{width:438px}.ff_input_full_width{width:100%}.ff_tooltip_wrap{font-size:14px;line-height:1.6;max-width:320px}.ff_tooltip_wrap h6{color:#fff}.ff-icon-gray{color:#757d8a}.el-form--label-top .el-form-item__label{line-height:1;padding-bottom:16px}.ff-form-item .el-form-item__label{align-items:center;color:#1e1f21;display:flex;font-size:15px;font-weight:500}.ff-form-item .el-form-item__label .ff-icon{margin-left:4px}.ff-form-item .el-form-item__content{line-height:1}.ff-form-item .el-icon-info,.ff-form-item .ff-icon-info-filled{font-size:13px}.ff-form-item .el-icon-info{color:#1a7efb;transform:rotate(-14deg)}.el-select__tags input{background-color:transparent;border:none;line-height:2;margin-left:0;min-height:30px;padding:0 8px}.ff_alert{background-color:#e8f2ff;border-left:3px solid #1a7efb;border-radius:4px;padding:17px}.ff_alert_icon{display:inline-block;font-size:16px;margin-top:3px}.ff_alert_icon+.ff_alert_content{padding-left:10px}.ff_alert_group{display:flex}.ff_alert_sm{padding:10px}.ff_alert.success{background-color:#00b27f;border-left-color:#00b27f;color:#fff}.ff_alert.success-soft{background-color:#e6ffeb;border-left-color:#00b27f}.ff_alert.danger{background-color:#ff6154;border-left-color:#ff6154;color:#fff}.ff_alert.danger-soft{background-color:#ffefee;border-left-color:#ff6154}.ff_alert .text{font-size:14px;margin-bottom:12px;margin-top:6px}.ff_alert_between{align-items:center;display:flex;justify-content:space-between}.ff_alert_between .text{margin-bottom:0}.ff_alert_s2{border-left:0;border-radius:8px;padding:40px;text-align:center}.ff-form-item-flex{align-items:center;display:flex}.ff-form-item-flex .el-form-item__label{padding-bottom:0}.ff-form-item-flex.reverse{flex-direction:row-reverse;justify-content:flex-end}.ff-form-setting-label-width .el-form-item__label{width:390px}.el-switch input{border:0}.el-switch-lg .el-switch__core{border-radius:30px;height:24px;width:48px!important}.el-switch-lg .el-switch__core:after{height:20px;width:20px}.el-switch-lg.is-checked .el-switch__core:after{margin-left:-21px}.ff_block_title{font-weight:500}.el-form-item__label h6{font-size:15px;font-weight:500}.ff_checkbox_group_col_2{display:flex;flex-wrap:wrap}.ff_checkbox_group_col_2 .el-checkbox{line-height:1;margin-bottom:.75rem;margin-right:0;width:50%}.wp_vue_editor_wrapper{background-color:#fff;border:1px solid #dadbdd;border-radius:8px;overflow:hidden;position:relative}.wp_vue_editor_wrapper .wp-media-buttons{float:none;position:absolute;right:160px;top:10px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media{background-color:#e8f2ff;border-color:#e8f2ff;border-radius:6px;color:#1a7efb;font-weight:500;line-height:1;margin:0;min-height:30px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.wp_vue_editor_wrapper .popover-wrapper{padding:10px;position:absolute;right:0;top:0;z-index:2}.wp_vue_editor_wrapper .wp-editor-container{border:0}.wp_vue_editor_wrapper .wp-editor-tabs{float:none;padding:8px}.wp_vue_editor_wrapper .wp-switch-editor{background-color:transparent;border-color:transparent;border-radius:5px;float:none;font-size:14px;font-weight:500;height:auto;line-height:inherit;margin:0 0 0 4px;padding:7px 14px}.wp_vue_editor_wrapper .html-active .switch-html,.wp_vue_editor_wrapper .tmce-active .switch-tmce{background-color:#ededed;border-color:#dadbdd;color:#1e1f21}.wp_vue_editor_wrapper .switch-html{margin-left:0}.wp_vue_editor_wrapper .mce-top-part:before{box-shadow:none}.wp_vue_editor_wrapper .quicktags-toolbar,.wp_vue_editor_wrapper div.mce-toolbar-grp{background:#f1f1f0;border-bottom:0}.wp_vue_editor_wrapper .mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border:0;border-radius:4px;box-shadow:none}.wp_vue_editor_wrapper textarea{border:0;padding-top:15px}.wp-media-buttons .insert-media{padding-left:8px;padding-right:10px}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#1a7efb}.mce-panel.mce-menu{border-radius:8px}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:10px!important}.el-input-number__decrease{left:2px}.ff_state_box{border-radius:8px;display:block;padding:32px;text-align:center}.ff_icon_btn{align-items:center;background-color:#1a7efb;border-radius:50%;color:#fff;display:flex;font-size:28px;height:58px;justify-content:center;text-align:center;width:58px}.ff_icon_btn:focus,.ff_icon_btn:hover{color:#fff}.ff_icon_btn img{height:36px;-o-object-fit:contain;object-fit:contain}.ff_icon_btn.square{border-radius:12px}.ff_icon_btn.blue{background-color:#3b5998;color:#fff}.ff_icon_btn.blue-soft{background-color:#ebeef5;color:#3b5998}.ff_icon_btn.dark{background-color:#1e1f21;color:#fff}.ff_icon_btn.dark-soft{background-color:#e9e9e9;color:#1e1f21}.ff_icon_btn.primary-soft{background-color:#e8f2ff;color:#1a7efb}.ff_icon_btn.danger{background-color:#ff6154;color:#fff}.ff_icon_btn.danger-soft{background-color:#ffefee;color:#ff6154}.ff_icon_btn.success{background-color:#00b27f;color:#fff}.ff_icon_btn.success-soft{background-color:#e6ffeb;color:#00b27f}.ff_icon_btn.warning{background-color:#fcbe2d;color:#fff}.ff_icon_btn.warning-soft{background-color:#fff9ea;color:#fcbe2d}.ff_icon_btn.info{background-color:#4b4c4d;color:#fff}.ff_icon_btn.info-soft{background-color:#ededed;color:#4b4c4d}.ff_icon_btn.cyan{background-color:#0dcaf0;color:#fff}.ff_icon_btn.cyan-soft{background-color:#e7fafe;color:#0dcaf0}.ff_icon_btn.mini{font-size:12px;height:18px;width:18px}.ff_icon_btn.small{font-size:16px;height:27px;width:27px}.ff_icon_btn.md{font-size:26px;height:48px;width:48px}.ff_icon_btn.md img{height:28px;-o-object-fit:cover;object-fit:cover;-o-object-position:left;object-position:left;width:28px}.ff_icon_btn.lg{font-size:36px;height:72px;width:72px}.ff_btn_group{align-items:center;display:inline-flex;flex-wrap:wrap;margin:-6px}.ff_btn_group>*{margin-bottom:0;padding:6px}.ff_btn_group.sm{margin:-3px}.ff_btn_group.sm>*{padding:3px}.ff_btn_group_half{display:flex}.ff_btn_group_half>*{flex:1}.ff_btn_group_half .el-button{justify-content:center;width:100%}.file-input{background:#fff;border:1px solid #ececec;border-radius:8px;color:#606266;max-width:100%;padding:5px!important}.file-input::file-selector-button{background:#f2f2f2;border:none;border-radius:6px;color:#1e1f21;cursor:pointer;margin-right:6px;padding:6px 16px;transition:background .2s ease-in-out}.file-input::file-selector-button:hover{background:#ced0d4}.el-tag--pill{border-radius:50rem}.ff_radio_group{background-color:#f5f5f3;border-radius:8px;overflow:hidden}.ff_radio_group .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:0!important}.ff_radio_group .el-radio-button__inner:hover{color:#1e1f21}.ff_radio_group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;box-shadow:none;color:#fff}.ff_radio_group_s2{background:#fff;border:1px solid #edeae9;border-radius:8px;display:inline-flex;overflow:hidden}.ff_radio_group_s2 .el-radio-button:first-child .el-radio-button__inner{border-left:0}.ff_radio_group_s2 .el-radio-button:last-child .el-radio-button__inner{border-right:0}.ff_radio_group_s2 .el-radio-button__inner{border-color:transparent #edeae9 transparent transparent}.el-input-gray .el-input__inner{background-color:#e7e6e6;border-color:#e7e6e6}.el-input-gray .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray .el-input__prefix{color:#606266}.el-input-gray-light .el-input__inner{background-color:#f5f5f3;border-color:#f5f5f3}.el-input-gray-light .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__prefix{color:#606266}.el-radio.is-bordered{margin-right:6px}.ff_media_group{align-items:center;display:flex}.ff_media_head+.ff_media_body{margin-left:16px}.ff_video_wrap{position:relative}.ff_video_wrap:after{background-color:#1e1f21;border-radius:8px;content:"";height:100%;left:0;opacity:.3;position:absolute;top:0;width:100%}.ff_video_img{border-radius:8px;display:block;width:100%}.ff_video_icon{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1}.ff-input-wrap{position:relative}.ff-input-wrap .el-icon{align-items:center;display:inline-flex;height:100%;left:0;padding-left:14px;position:absolute;top:0;z-index:2}.ff-input-wrap .el-icon+.el-input .el-input__inner,.ff-input-wrap .el-icon+input{padding-left:32px}.el-dialog-no-header .el-dialog__header{display:none}.el-radio-button-group{background-color:#fff;border:1px solid #ececec;border-radius:4px}.el-radio-button-group .el-radio-button__inner{background:transparent;border:0;padding:6px 9px}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner{border-left:0;border-radius:4px 0 0 4px}.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button-group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1a7efb;box-shadow:none}.el-color-picker__color{border-color:#d4edda;border-radius:3px}.ff_socials li{display:inline-block;margin-right:2px}.ff_socials li:last-child{margin-right:0}.ff_socials li a{background-color:#ededed;border-radius:50%;color:#606266;display:grid;height:32px;place-items:center;transition:.2s;width:32px}.ff_socials li a span{font-size:16px;height:auto;transition:0s;width:auto}.ff_socials li a:hover{background-color:#1a7efb;color:#fff}.ff-dropdown-menu .el-dropdown-menu__item{line-height:1.5;padding:6px 20px}.ff-dropdown-menu .el-dropdown-menu__item:hover{background-color:transparent}.truncate{display:block;max-width:188px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;max-width:inherit;white-space:inherit}.hover-y{transition:.3s}.hover-y:hover{transform:translateY(-2px)}.hover-zoom{transition:.3s}.hover-zoom:hover{transform:scale(1.03)}.ff_badge{align-items:center;background-color:#ededed;border:1px solid #dbdbdb;border-radius:30px;color:#4b4c4d;display:inline-flex;line-height:1.2;padding:2px 7px;text-transform:capitalize}.ff_badge.small{font-size:13px}.ff_badge_wrap{align-items:center;display:inline-flex}.ff_badge img{flex-shrink:0;height:14px;margin-right:4px}.ff_badge_active,.ff_badge_primary{background-color:#e8f2ff;border-color:#d1e5fe;color:#1a7efb}.ff_badge_paid{background-color:#e6f7f2;border-color:#ccf0e5;color:#00b27f}.ff_badge_processing{background-color:#e7fafe;border-color:#cff4fc;color:#0dcaf0}.ff_badge_pending{background-color:#fff9ea;border-color:#fef2d5;color:#fcbe2d}.ff_badge_failed{background-color:#ffefee;border-color:#ffdfdd;color:#ff6154}.ff_badge_visa{background-color:#e8e9ef;border-color:#dddee7;color:#192061}.ff_badge_mastercard{background-color:#ffefe6;border-color:#ffe7d9;color:#ff5f00}.ff_badge_amex{background-color:#f0f9fd;border-color:#e9f6fc;color:#6cc4ee}.ff_badge_paypal{background-color:#e6f5fc;border-color:#d9f0fa;color:#019ddd}.ff_badge_stripe{background-color:#eef0fb;border-color:#e5e9f9;color:#5469d4}.ff_badge.is-solid.ff_badge_active{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.ff_badge.is-solid.ff_badge_processing{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.ff_badge.is-solid.ff_badge_paid{background-color:#00b27f;border-color:#00b27f;color:#fff}.ff_badge.is-solid.ff_badge_pending{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.ff_badge.is-solid.ff_badge_cancelled,.ff_badge.is-solid.ff_badge_failed{background-color:#ff6154;border-color:#ff6154;color:#fff}.separator{background-color:rgba(96,98,102,.1);height:1px}.ff_choose_template_wrap .el-dialog{max-width:1280px}.ff_settings_container .notice{margin:0 0 20px}.global-search-wrapper{align-items:center;background:rgba(0,0,0,.7);display:flex;height:auto;inset:0;justify-content:center;min-height:100vh;padding:20px;position:fixed;z-index:999999999}.global-search-wrapper .global-search-container{background:#f6f6f7;border-radius:5px;overflow:auto;position:relative;width:700px}.global-search-wrapper .global-search-container input{font-size:17px;padding:3px 35px;width:100%}.global-search-wrapper .global-search-container ul.search-result li{background:#fff;border-radius:6px;box-shadow:0 1px 3px 0 #d4d9e1;color:#606266;cursor:pointer;display:block;font-size:15px;margin-left:0;margin-top:7px;padding:10px;transition:.2s}.global-search-wrapper .global-search-container ul.search-result li.active-search-link{background-color:#197efb;color:#fff;outline:0}.global-search-wrapper .global-search-container ul.search-result li:focus,.global-search-wrapper .global-search-container ul.search-result li:focus-visible{border:0;box-shadow:none;outline:0}.global-search-wrapper .global-search-container span.global-search-not-match{display:inline-block;font-size:16px;margin-top:6px}.global-search-wrapper .global-search-body{max-height:400px;min-height:200px;overflow-y:auto;padding:20px}.global-search-wrapper .search-commands{background:#fff;box-shadow:0 -1px 0 0 #efefef,0 -2px 6px 0 rgba(70,90,150,.1);color:#606266;display:flex;font-size:14px;justify-content:space-around;padding:12px}.global-search-wrapper .search-commands ul li{font-size:12px;margin-top:7px;padding:10px}.scroll{animation:down 2s ease-in-out infinite;-webkit-animation:down 2s ease-in-out infinite;cursor:pointer;height:26px;margin:0 auto;position:relative;width:60px}.scroll:before{border-bottom:2px solid #777;border-left:2px solid #777;content:"";height:16px;left:18px;position:absolute;top:24px;transform:rotate(-45deg);width:16px}.ff_chained_ajax_field{display:flex;flex:auto;gap:10px}.ff_chained_ajax_field .el-select{flex-basis:100%}@keyframes down{0%{opacity:0;-webkit-transform:translateY(-14px)}50%{opacity:1}to{opacity:0;-webkit-transform:translateY(14px)}}.ff_sidebar_toggle{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 1px 10px rgba(0,0,0,.1);color:#000;cursor:pointer;display:none;font-size:18px;height:30px;justify-content:center;position:absolute;right:-21px;top:15px;width:30px}.text-capitalize{text-transform:capitalize}.ff_menu{align-items:center;display:none;flex-wrap:wrap;margin-top:22px}.ff_menu_active{display:flex;justify-content:center}.ff_menu_link{background-color:transparent;border-radius:6px;color:#353537;display:inline-block;font-size:15px;font-weight:500;line-height:1.6;overflow:hidden;padding:4px 14px;text-decoration:none;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_menu_link:focus{border:0;box-shadow:none;outline:none}.ff_menu_link:hover{color:#1a7efb}.ff_menu_link_buy{background-color:#1a7efb;color:#fff;margin-left:12px}.ff_menu_link_buy:hover{color:#fff}.ff_menu.conversion_form_editor .ff_menu_link,.ff_menu.partial_entries_form_editor .ff_menu_link{max-width:140px}.ff_menu .active .ff_menu_link{background-color:#e8f2ff;color:#1a7efb}.ff_menu_toggle{cursor:pointer;font-size:26px;margin-left:auto}.ff_menu_toggle:hover{color:#1a7efb}.ff_menu_back .el-icon-arrow-left{font-weight:700;position:relative;transition:all .3s;width:18px}.ff_menu_back .el-icon-arrow-left:after{background-color:#353537;background-color:#1a7efb;content:"";height:1.3px;position:absolute;right:-.6px;top:50%;transform:translateY(-52%);transition:all .3s;width:0}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left{color:#1a7efb;transform:translateX(-2.4px)}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left:after{font-weight:700;width:13px}.ff_table{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);padding:10px 24px}.ff_table .el-table__row td:first-child{vertical-align:top}.ff_table .el-table__empty-block,.ff_table table{width:100%!important}.ff_table .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell,.ff_table .el-table__body tr.el-table__row--striped td.el-table__cell,.ff_table .el-table__body tr.hover-row>td.el-table__cell,.ff_table th.el-table__cell,.ff_table tr{background-color:transparent!important}.ff_table .el-table--border:after,.ff_table .el-table--group:after,.ff_table .el-table:before{display:none}.ff_table thead{color:#1e1f21}.ff_table thead .el-table__cell,.ff_table thead th{padding-bottom:8px;padding-top:0}.ff_table .cell,.ff_table th.el-table__cell>.cell{font-weight:600;padding-left:0;padding-right:0}.ff_table .sort-caret{border-width:4px}.ff_table .sort-caret.ascending{top:7px}.ff_table .sort-caret.descending{bottom:8px}.ff_table .cell strong{color:#1e1f21;font-weight:500}.ff_table td.el-table__cell,.ff_table th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff_table tbody tr:last-child td.el-table__cell,.ff_table tbody tr:last-child th.el-table__cell.is-leaf{border-bottom-width:0}.ff_table tbody .cell{font-weight:400}.ff_table_s2 .el-table__body tr.el-table__row--striped td.el-table__cell,.ff_table_s2 th.el-table__cell,.ff_table_s2 tr,.ff_table_s2.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:transparent}.ff_table_s2 .el-table__empty-block,.ff_table_s2 table{width:100%!important}.ff_table_s2 thead{color:#1e1f21}.ff_table_s2 thead th.el-table__cell{background-color:#f8f8f8;border-bottom:0!important}.ff_table_s2 thead th.el-table__cell .cell{font-weight:500}.ff_table_s2 thead tr th:first-child{border-bottom-left-radius:8px;border-top-left-radius:8px}.ff_table_s2 thead tr th:first-child .cell{padding-left:20px}.ff_table_s2 thead tr th:last-child{border-bottom-right-radius:8px;border-top-right-radius:8px}.ff_table_s2 tbody tr td:first-child .cell{padding-left:20px}.ff_table_s2 td.el-table__cell,.ff_table_s2 th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff-table-container{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);padding:10px 24px}.ff-table-container .el-table__row td:first-child{vertical-align:top}.ff-table-container .el-table{background-color:transparent}.ff-table-container .el-table__empty-block,.ff-table-container table{width:100%!important}.ff-table-container .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell,.ff-table-container .el-table__body tr.el-table__row--striped td.el-table__cell,.ff-table-container .el-table__body tr.hover-row>td.el-table__cell,.ff-table-container .el-table__body tr:hover td.el-table__cell,.ff-table-container th.el-table__cell,.ff-table-container tr{background-color:transparent}.ff-table-container .el-table--border:after,.ff-table-container .el-table--group:after,.ff-table-container .el-table:before{display:none}.ff-table-container thead{color:#1e1f21}.ff-table-container thead .el-table__cell,.ff-table-container thead th{padding-bottom:8px;padding-top:0}.ff-table-container .cell,.ff-table-container th.el-table__cell>.cell{font-weight:600;padding-left:0;padding-right:1px}.ff-table-container .sort-caret{border-width:3px}.ff-table-container .sort-caret.ascending{top:9px}.ff-table-container .sort-caret.descending{bottom:11px}.ff-table-container .cell strong{color:#1e1f21;font-weight:500}.ff-table-container td.el-table__cell,.ff-table-container th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff-table-container tbody tr:last-child td.el-table__cell,.ff-table-container tbody tr:last-child th.el-table__cell.is-leaf{border-bottom-width:0}.ff-table-container tbody .cell{font-weight:400}.ff-table-container_s2 .el-table__body tr.el-table__row--striped td.el-table__cell,.ff-table-container_s2 th.el-table__cell,.ff-table-container_s2 tr,.ff-table-container_s2.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:transparent}.ff-table-container_s2 thead{color:#1e1f21}.ff-table-container_s2 thead th.el-table__cell{background-color:#f8f8f8;border-bottom:0!important}.ff-table-container_s2 thead th.el-table__cell .cell{font-weight:500}.ff-table-container_s2 thead tr th:first-child{border-bottom-left-radius:8px;border-top-left-radius:8px}.ff-table-container_s2 thead tr th:first-child .cell{padding-left:20px}.ff-table-container_s2 thead tr th:last-child{border-bottom-right-radius:8px;border-top-right-radius:8px}.ff-table-container_s2 tbody tr td:first-child .cell{padding-left:20px}.ff-table-container_s2 td.el-table__cell,.ff-table-container_s2 th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff_card{background-color:#fff;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 3px 0 hsla(0,0%,51%,.1);padding:24px}.ff_card.primary{background-color:#1a7efb}.ff_card_pro{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;padding-left:54px;padding-right:40px}.ff_card_pro h3{color:#fff;font-size:28px;line-height:1.3;max-width:400px}.ff_card.highlight-border{border-color:#1a7efb}.ff_card .ff_pagination{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_shadow_lg{box-shadow:0 14px 16px -2px hsla(0,0%,51%,.1)}.ff_card .text{font-size:15px;line-height:1.6}.ff_card_alert{border-left:3px solid #ff6154;border-radius:4px}.ff_card_head{border-bottom:1px solid #ececec;margin-bottom:26px;padding-bottom:16px}.ff_card_head .text{margin-top:10px}.ff_card_head_group{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.ff_card_head_group .el-tooltip{font-size:15px}.ff_card_form_action{border-color:#ececec;cursor:pointer;height:100%}.ff_card_form_action .ff_card_text{word-break:break-word}.ff_card_img img{width:100%}.ff_card_s2{border:1px solid #e4e4e4;box-shadow:none;display:flex;flex-direction:column;padding:0;transition:.3s}.ff_card_s2 .ff_card_body{padding:20px}.ff_card_s2 .ff_card_footer{border-top:1px solid #e4e4e4;margin-top:auto;padding:14px 20px}.ff_card_s2:hover{box-shadow:0 22px 16px hsla(0,0%,51%,.12)}.ff_card_footer_group{align-items:center;display:flex;justify-content:space-between}.ff_card .ff-table-container{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_border{border:1px solid #ececec;box-shadow:none}.ff_predefined_options{display:flex}.ff_predefined_sidebar{flex-shrink:0;margin-right:30px;width:240px}.ff_predefined_main{margin-left:auto;width:calc(100% - 240px)}.ff_predefined_main .form_item_group{display:flex}.ff_predefined_main .ff_form_group_title{border-bottom:1px solid #ececec;font-size:15px;margin-bottom:24px;padding-bottom:14px;text-transform:uppercase}.ff_predefined_main .ff_predefined_form_wrap{height:500px;overflow-y:scroll}.ff_predefined_form_wrap{position:relative}.slide-down-enter-active{max-height:100vh;transition:all .8s}.slide-down-leave-active{max-height:100vh;transition:all .3s}.slide-down-enter,.slide-down-leave-to{max-height:0}.el-notification__content{text-align:left}.action-buttons .el-button+.el-button{margin-left:0}.el-box-card{box-shadow:none}.el-box-footer,.el-box-header{background-color:#edf1f6;padding:15px}.el-box-body{padding:15px}.el-form-item__force-inline.el-form-item__label{float:left;padding:11px 12px 11px 0}.el-form-item .el-form-item{margin-bottom:10px}.el-form-item__content .line{text-align:center}.el-basic-collapse{border:0;margin-bottom:15px}.el-basic-collapse .el-collapse-item__header{border:0;display:inline-block;padding-left:0}.el-basic-collapse .el-collapse-item__wrap{border:0}.el-basic-collapse .el-collapse-item__content{background-color:#fff;padding:0}.el-collapse-settings{border:0}.el-collapse-settings .el-collapse-item__header{background:#f5f5f3;border:0;border-radius:8px;font-size:16px;padding-left:20px;padding-right:10px}.el-collapse-settings .el-collapse-item__header .el-collapse-item__arrow{font-size:16px;font-weight:500}.el-collapse-settings .el-collapse-item__content{margin-top:15px;padding-bottom:0}.el-collapse-settings .el-collapse-item__arrow{line-height:48px}.el-collapse-settings .el-collapse-item__wrap{background-color:transparent;border-bottom:0;overflow:inherit}.el-popover{text-align:left}.option-fields-section--content .el-form-item__label{color:#1e1f21;font-weight:500;line-height:1;padding-bottom:10px}.option-fields-section--content .el-form-item__content{line-height:1.5;margin-bottom:5px}.option-fields-section--content .el-input-number--mini{line-height:28px}.option-fields-section--content strong{color:#1e1f21;font-weight:600}.el-dropdown-list{border:0;box-shadow:none;margin:0;max-height:280px;min-width:auto;overflow-y:scroll;padding:0;position:static;z-index:10}.el-dropdown-list .el-dropdown-menu__item{border-bottom:1px solid #f1f1f1;font-size:13px;line-height:18px;padding:4px 10px}.el-dropdown-list .el-dropdown-menu__item:last-of-type{border-bottom:0}.el-popper[x-placement^=bottom] .popper__arrow{top:-7px}.el-form-nested.el-form--label-left .el-form-item__label{float:left;padding:10px 5px 10px 0}.el-message{top:40px}.el-tabs--border-card{border-color:#ececec;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.05)}.el-tabs--border-card .el-tabs__header{background-color:transparent;border-top-left-radius:6px;border-top-right-radius:6px;padding:10px 14px}.el-tabs--border-card .el-tabs__header .el-tabs__item{border:0;border-radius:6px;font-size:13px;height:34px;line-height:34px;margin-top:0;padding-left:16px;padding-right:16px}.el-tabs--border-card .el-tabs__header .el-tabs__item:first-child{margin-left:0}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active{background-color:#d1e5fe;color:#1a7efb}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active:hover{color:#1a7efb}.el-button{align-items:center;display:inline-flex;transition:.3s}.el-button .el-loading-mask{border-radius:7px}.el-button .el-loading-mask .el-loading-spinner{margin-top:-12px}.el-button .el-loading-mask .el-loading-spinner .circular{height:24px;width:24px}.el-button span{align-items:center;display:inline-flex}.el-button-group .el-button span{display:inline-block}.el-button--block{justify-content:center;width:100%}.el-button--small .ff-icon{font-size:14px}.el-button--large{font-size:16px;padding:15px 20px}.el-button--soft.el-button--blue{background-color:#ebeef5;border-color:#ebeef5;color:#3b5998}.el-button--soft.el-button--blue:hover{background-color:#3b5998;border-color:#3b5998;color:#fff}.el-button--soft.el-button--primary{background-color:#e8f2ff;border-color:#e8f2ff;color:#1a7efb}.el-button--soft.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--soft.el-button--danger{background-color:#ffefee;border-color:#ffefee;color:#ff6154}.el-button--soft.el-button--danger:hover{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-button--soft.el-button--success{background-color:#e6ffeb;border-color:#e6ffeb;color:#00b27f}.el-button--soft.el-button--success:hover{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-button--soft.el-button--warning{background-color:#fff9ea;border-color:#fff9ea;color:#fcbe2d}.el-button--soft.el-button--warning:hover{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--soft.el-button--info{background-color:#ededed;border-color:#ededed;color:#4b4c4d}.el-button--soft.el-button--info:hover{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--soft.el-button--cyan{background-color:#e7fafe;border-color:#e7fafe;color:#0dcaf0}.el-button--soft.el-button--cyan:hover{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.el-button--soft.el-button--dark{background-color:#e9e9e9;border-color:#e9e9e9;color:#1e1f21}.el-button--soft.el-button--dark:hover{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--soft-2.el-button--primary{background-color:#d1e5fe;border-color:#d1e5fe;color:#1a7efb}.el-button--soft-2.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--icon.el-button--mini{border-radius:4px;padding:7px}.el-button--icon.el-button--small{border-radius:5px;font-size:14px;padding:8px}.el-button--icon.el-button--medium{border-radius:6px;padding:10px}.el-button--text-light{color:#606266}.el-button--info.is-plain{border-color:#ededed}.el-button--dark{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--dark:focus,.el-button--dark:hover{background-color:#3a3a40;border-color:#3a3a40;color:#fff}.el-button--primary:hover{background-color:#1565c9;border-color:#1565c9}.el-pager li{font-weight:600}.form-editor-elements:not(.el-form--label-left):not(.el-form--label-right) .el-form-item__label{line-height:1}.folded .el-dialog__wrapper{left:36px}.el-dialog__wrapper .data-lost-msg{margin-top:10px}.ff-el-banner{border:1px solid #dce0e5;display:inline-block;float:left;height:250px;padding:5px;transition:border .3s;width:200px}.ff-el-banner,.ff-el-banner-group{overflow:hidden}.ff-el-banner-group .ff-el-banner{margin-bottom:30px;margin-right:10px}.ff-el-banner+.ff-el-banner{margin-right:10px}.ff-el-banner img{display:block;height:auto;width:100%}.ff-el-banner-header{background:#909399;color:#fff;font-size:13px;font-weight:400;margin:0;padding:3px 6px;text-align:center}.ff-el-banner-inner-item{height:inherit;overflow:hidden;position:relative}.ff-el-banner:hover .ff-el-banner-text-inside{opacity:1!important;visibility:visible!important}.ff-el-banner-text-inside{display:flex;flex-direction:column;justify-content:center}.ff-el-banner-text-inside-hoverable{bottom:0;color:#fff;left:0;padding:10px;position:absolute;right:0;top:0;transition:all .3s}.ff-el-banner-text-inside .form-title{color:#fff;margin:0 0 10px}.compact td>.cell,.compact th>.cell{white-space:nowrap}.el-tooltip__popper p{margin-bottom:0}.el-dropdown-menu{left:unset;max-width:270px}.el-dropdown-link{cursor:pointer}.el-dropdown-link-lg{color:#1e1f21;font-size:24px;font-weight:600}.el-dropdown-link-lg .el-icon{font-size:20px}.el-switch--small .el-switch__core{height:16px;width:28px!important}.el-switch--small .el-switch__core:after{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core:after{margin-left:-13px}.el-switch--small .el-switch__label *{font-size:13px;font-weight:500}.el-message-box__title{color:#1e1f21;font-weight:500}.el-input-group--append{position:relative}.el-input-group--append .el-input__inner{border-bottom-right-radius:8px;border-top-right-radius:8px}.el-input-group__append,.el-input-group__prepend{background-color:#f2f2f2;border:0;border-radius:5px;display:grid;height:30px;padding:0;position:absolute;text-align:center;top:5px;width:30px}.el-input-group__append:hover,.el-input-group__prepend:hover{background-color:#e0e0e0}.el-input-group__append .el-icon-more,.el-input-group__prepend .el-icon-more{transform:rotate(90deg)}.el-input-group__append .el-button,.el-input-group__prepend .el-button{margin:0;padding:0}.el-input-group__append{right:4px}.el-input-group__prepend{left:4px}.el-table__fixed,.el-table__fixed-right{background-color:#fff}.el-table__fixed-right:before,.el-table__fixed:before{display:none}.el-radio-button__orig-radio:checked+.el-radio-button__inner{box-shadow:none}.input-with-select{align-items:center;display:flex}.input-with-select.el-input-group--append .el-input__inner{border-bottom-right-radius:0;border-top-right-radius:0}.input-with-select .el-select{background-color:#fff;border:1px solid #dadbdd;height:40px;margin:0}.input-with-select .el-select .el-input__inner{border:0}.input-with-select .el-input-group__append,.input-with-select .el-input-group__prepend{border-radius:0;flex:1;height:auto;left:0;position:inherit;top:0;width:auto}.input-with-select .el-input-group__append:hover,.input-with-select .el-input-group__prepend:hover{background-color:transparent}.input-with-select .el-input-group__prepend .el-select{border-bottom-left-radius:8px;border-right:0;border-top-left-radius:8px}.input-with-select .el-input-group__append .el-select{border-bottom-right-radius:8px;border-left:0;border-top-right-radius:8px}.chain-select-upload-button .el-input-group__append,.chain-select-upload-button .el-input-group__prepend{width:70px}.el-radio-group-dark .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1e1f21;border-color:#1e1f21}.el-radio-group-info .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;border-color:#4b4c4d}.el-table thead .cell{color:#1e1f21;font-weight:500}.el-table--border{border-radius:6px}.ff-input-s1 .el-input .el-select__caret{color:#1e1f21}.ff-input-s1 .el-input .el-icon-arrow-up:before{font-weight:600}.el-radio-button--small:first-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-radio-button--small:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-input--mini .el-input__inner{border-radius:4px}.el-input--large .el-input__inner{font-size:16px;height:48px;padding-left:20px;padding-right:20px}.el-input-number--mini{line-height:28px}.el-input-number--mini .el-input-number__decrease{border-radius:4px 0 0 4px;left:1px}.el-input-number--mini .el-input-number__increase{border-radius:0 4px 4px 0}.el-input-number__decrease,.el-input-number__increase{background-color:#f2f2f2}.el-dialog__header .title+.text{margin-top:6px}.el-dialog__header .text{margin-bottom:0}.el-dialog__header_group{align-items:center;display:flex}.el-checkbox-horizontal .el-checkbox{display:flex}.el-checkbox-horizontal .el-checkbox__input{align-self:flex-start;padding-top:3px}.el-skeleton__item{border-radius:4px}@media (min-width:1281px){.ff_screen_editor .form_internal_menu_inner{flex-direction:row}.ff_screen_editor .form_internal_menu_inner .ff_menu{margin-left:0;padding-bottom:0}.ff_screen_conversational_design .ff_menu_back,.ff_screen_editor .ff_menu_back,.ff_screen_entries .ff_menu_back,.ff_screen_inventory_list .ff_menu_back,.ff_screen_msformentries .ff_menu_back,.ff_screen_settings .ff_menu_back{display:flex}.option-fields-section--content .v-row{flex-direction:row}.option-fields-section--content .v-col--50{padding-bottom:0;width:50%}.form-editor--body{padding:50px;width:65%}.form-editor--sidebar{width:35%}}@media (min-width:769px){.ff_header{align-items:center;flex-direction:row}.ff_header_group{margin-right:32px}.ff_menu{display:flex;margin-top:0}.ff_menu_toggle{display:none}.ff_form_wrap{padding-left:24px;padding-right:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_editor,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:0}}@media (min-width:1025px){.all-forms-search,.ff_entries_search_wrap{width:270px}.ff_entries_search_wrap{margin-left:auto}.all-forms-select{width:250px}.ff_layout_section_sidebar{width:280px}.ff_layout_section_container,.ff_layout_section_sidebar{padding:24px}.fluent_activation_wrapper .fluentform_label{width:470px}}@media (max-width:768px){.form_internal_menu{margin-left:-10px}.form_internal_menu ul.ff_setting_menu{float:right;padding-right:10px!important}.form_internal_menu ul.ff_setting_menu li a{padding:10px 3px!important}.form_internal_menu .ff_form_name_inner{max-width:100px}.form_internal_menu #switchScreen{margin-right:0;margin-top:14px}.ff_nav_action{float:right!important;text-align:left!important}input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{min-height:30px}.ff_form_main_nav .plugin-name{display:none}.row-actions{display:inline-block!important}.el-form .el-form-item .el-form-item__label{width:100%!important}.el-form .el-form-item .el-form-item__content{margin-left:0!important}.el-tabs__content{padding:20px 10px!important}.wpf_each_entry a{word-break:break-all}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu{top:0!important}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{display:block}.form_internal_menu_inner{background:#fff;border-radius:8px;box-shadow:0 1px 10px rgba(0,0,0,.2);display:none;flex-direction:column;padding:20px;position:absolute;right:20px;top:38px;width:300px;z-index:9999}.form_internal_menu_inner.active{display:flex}.ff_form_name{padding-bottom:10px;padding-top:10px}.ff_screen_editor .form_internal_menu_inner .ff_menu,.form_internal_menu .ff-navigation-right{margin-left:0}.ff_menu{align-items:flex-start;flex-direction:column;margin-bottom:10px}.ff_menu li{width:100%}.ff_menu li a{display:block;max-width:100%!important}.form_internal_menu .ff-navigation-right{align-items:flex-start}.ff-navigation-right{flex-direction:column}.form_internal_menu .el-button,.form_internal_menu .ff_shortcode_btn{margin-bottom:10px;margin-right:0}.form_internal_menu .ff-navigation-right .ff_more_menu{bottom:0;right:0;top:auto;transform:translateY(0)}.ff_screen_conversational_design .ff_menu,.ff_screen_editor .ff_menu,.ff_screen_entries .ff_menu,.ff_screen_inventory_list .ff_menu,.ff_screen_msformentries .ff_menu,.ff_screen_settings .ff_menu{padding-left:0;padding-right:0}.ff_tools_wrap .ff_settings_sidebar_wrap{height:100%}.ff_settings_sidebar_wrap{flex-shrink:0;left:-240px;position:absolute;transition:.3s;z-index:999}.ff_settings_sidebar_wrap.active{left:-10px}.ff_settings_sidebar_wrap.active .ff_layout_section_sidebar{box-shadow:2px 1px 10px 0 rgba(30,31,33,.1)}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle{right:-18px}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle .ff-icon:before{content:"\e919"}.ff_sidebar_toggle{display:flex}.ff_header{margin-left:-10px;position:relative}.ff_header .global-search-menu-button{position:absolute;right:60px;top:12px}.conditional-logic{flex-direction:column}.conditional-logic>*{width:100%}.el-radio-button-group{border:0}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner,.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner,.el-radio-button-group .el-radio-button__inner{border-radius:4px}}@media (max-width:425px){label.el-checkbox{display:inline-flex}.el-checkbox__label{white-space:normal}.el-checkbox__input{line-height:1.6}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{margin-right:0}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right a,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right button,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right span{font-size:10px;margin:0 3px;padding:5px 4px!important}#ff_form_entries_app .ff_nav_top .ff_nav_action,#ff_form_entries_app .ff_nav_top .ff_nav_title{margin-bottom:10px;width:100%}.form_internal_menu{margin:0 -10px;width:auto}.form_internal_menu ul.ff_setting_menu li a{font-size:11px}.ff_form_application_container{margin-top:0!important}.ff_form_main_nav .ninja-tab{font-size:12px;margin:0;padding:10px 5px}ul.el-pager{display:none!important}button.el-button.pull-right{float:left!important}.entry_header h3{clear:both;display:block;width:100%!important}.v-row .v-col--33{margin-bottom:15px;padding-right:0;width:100%!important}.v-row .v-col--33:last-child{margin-bottom:0}.option-fields-section--content{padding:15px 5px}.ff-add-confirmation-wrap .el-radio.is-bordered{margin-bottom:10px;margin-right:10px}.ff-add-confirmation-wrap .el-radio.is-bordered+.el-radio.is-bordered{margin-left:0}.ff-form-item-flex{flex-wrap:wrap;gap:10px}.ff_pagination_wrap.mt-4{margin-top:0!important}.ff_pagination{flex-wrap:wrap;margin-top:24px}.ff_pagination .el-pagination__jump{margin:10px 0 0}.ff_all_entries .ff_section_head_content{margin-top:24px}.ff_all_entries .ff_section_head_content .ff_advanced_search{right:unset}.ff_all_entries .ff_entries_details .ff_section_head .lead-title{margin-bottom:10px!important}.ff_all_entries .ff_entries_details .ff_radio_group_wrap{margin-bottom:10px;margin-top:10px}.ff_all_entries .ff_entries_details .ff_radio_group_wrap .ff_radio_group_s2{width:100%}}.el-popover{text-align:left!important;word-break:inherit!important}.mtb10{margin-bottom:10px;margin-top:10px}.ff-el-banner-text-inside{cursor:pointer}.el-notification.right{z-index:9999999999!important}small{font-size:13px;font-weight:400;margin-left:15px}.classic_shortcode{margin-bottom:7px}.form-locations{margin-top:5px}.form-locations .ff_inline_list{display:inline-flex}.form-locations .ff_inline_list li{margin:0 5px}.ff_form_group{margin-bottom:32px}.ff_form_item_group{display:flex;flex-wrap:wrap;margin-left:-12px;margin-right:-12px}.ff_form_item_col{margin-bottom:24px;padding-left:12px;padding-right:12px;width:25%}.ff_form_card{background-color:#fff;border:1px solid #edeae9;border-radius:8px;height:258px;position:relative}.ff_form_card img{border-radius:inherit;display:block;height:100%;width:100%}.ff_form_card:hover .ff_form_card_overlap{opacity:1;visibility:visible}.ff_form_card_overlap{align-items:center;background:linear-gradient(180deg,rgba(10,16,26,.08),rgba(27,29,32,.851) 69.85%,#1e1f21 85.67%);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:flex-end;left:0;opacity:0;padding:24px;position:absolute;text-align:center;top:0;transition:.3s;visibility:hidden;width:100%}.ff_form_card_overlap p{color:#fff;padding-top:32px;word-break:break-word}.import-forms-section .ff_card{background-color:#f2f2f2;box-shadow:none}.ff_all_forms .inactive_form{opacity:.6}.ff_forms_table .el-table__row:hover .row-actions{opacity:1;position:relative}.ff_forms_table .el-table__row:hover .row-actions-item a{cursor:pointer}.ff_forms_table .row-actions{left:0;opacity:0;transition:all .2s}.ff_forms_table .row-actions .el-loading-spinner .circular{height:17px;margin-top:14px;width:17px}.ff_form_remove_confirm_class,.ff_form_remove_confirm_class:focus{background-color:#ff6154;border-color:#ff6154;color:#fff}.ff_form_remove_confirm_class:hover{background:#ff8176;border-color:#ff8176;color:#fff} assets/css/admin_docs.css000064400000167106147600120010011452 0ustar00@font-face{font-display:block;font-family:fluentform;font-style:normal;font-weight:400;src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd);src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd) format("embedded-opentype"),url(../fonts/fluentform.ttf?5fd4a17c106b6a8cae5c741ddbbe132c) format("truetype"),url(../fonts/fluentform.woff?31c9335ad614611f342d70917260470e) format("woff"),url(../fonts/fluentform.svg?1d0875320e0e3980ae21f2d18c21897a) format("svg")}[class*=" ff-icon-"],[class^=ff-icon-]{speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:fluentform!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.ff-icon-tablet:before{content:"\e96f"}.ff-icon-mobile:before{content:"\e970"}.ff-icon-monitor:before{content:"\e971"}.ff-icon-fullscreen-out:before{content:"\e96b"}.ff-icon-menu:before{content:"\e96a"}.ff-icon-play:before{content:"\e969"}.ff-icon-bug:before{content:"\e925"}.ff-icon-star-line:before{content:"\e94e"}.ff-icon-heart-clock:before{content:"\e966"}.ff-icon-microphone:before{content:"\e967"}.ff-icon-handshake:before{content:"\e968"}.ff-icon-ink-pen:before{content:"\e91e"}.ff-icon-arrow-left:before{content:"\e919"}.ff-icon-user-filled:before{content:"\e902"}.ff-icon-payment:before{content:"\e900"}.ff-icon-play-circle-filled:before{content:"\e901"}.ff-icon-promotion:before{content:"\e903"}.ff-icon-share-filled:before{content:"\e904"}.ff-icon-warning-filled:before{content:"\e905"}.ff-icon-more-vertical:before{content:"\e906"}.ff-icon-gift:before{content:"\e907"}.ff-icon-cursor:before{content:"\e908"}.ff-icon-hash:before{content:"\e909"}.ff-icon-photo:before{content:"\e90a"}.ff-icon-italic-light:before{content:"\e90b"}.ff-icon-keyboard:before{content:"\e90c"}.ff-icon-layers:before{content:"\e90d"}.ff-icon-left-align:before{content:"\e90e"}.ff-icon-light-10:before{content:"\e90f"}.ff-icon-map-pin:before{content:"\e910"}.ff-icon-lock:before{content:"\e911"}.ff-icon-email:before{content:"\e912"}.ff-icon-paragraph:before{content:"\e913"}.ff-icon-user:before{content:"\e914"}.ff-icon-phone-outgoing:before{content:"\e915"}.ff-icon-play-circle:before{content:"\e916"}.ff-icon-puzzle:before{content:"\e917"}.ff-icon-redo:before{content:"\e918"}.ff-icon-repeat:before{content:"\e91a"}.ff-icon-right-align:before{content:"\e91b"}.ff-icon-rocket-filled:before{content:"\e91c"}.ff-icon-setting:before{content:"\e91d"}.ff-icon-light-26:before{content:"\e91f"}.ff-icon-trash:before{content:"\e920"}.ff-icon-underline-alt:before{content:"\e921"}.ff-icon-undo:before{content:"\e922"}.ff-icon-upload-alt:before{content:"\e923"}.ff-icon-web-development:before{content:"\e924"}.ff-icon-underline:before{content:"\e926"}.ff-icon-italic:before{content:"\e927"}.ff-icon-filter-alt:before{content:"\e928"}.ff-icon-files:before{content:"\e929"}.ff-icon-file-add:before{content:"\e92a"}.ff-icon-fullscreen:before{content:"\e92b"}.ff-icon-donut-chart:before{content:"\e92c"}.ff-icon-dollar:before{content:"\e92d"}.ff-icon-document-light:before{content:"\e92e"}.ff-icon-document:before{content:"\e92f"}.ff-icon-document-alt:before{content:"\e930"}.ff-icon-design:before{content:"\e931"}.ff-icon-copy-filled:before{content:"\e932"}.ff-icon-copy:before{content:"\e933"}.ff-icon-code-alt:before{content:"\e934"}.ff-icon-code:before{content:"\e935"}.ff-icon-close-circle-filled:before{content:"\e936"}.ff-icon-chevron-double-left:before{content:"\e937"}.ff-icon-check:before{content:"\e938"}.ff-icon-center-align:before{content:"\e939"}.ff-icon-calendar:before{content:"\e93a"}.ff-icon-bookmark:before{content:"\e93b"}.ff-icon-bold:before{content:"\e93c"}.ff-icon-bold-light:before{content:"\e93d"}.ff-icon-bank:before{content:"\e93e"}.ff-icon-arrow-right:before{content:"\e93f"}.ff-icon-plus-filled:before{content:"\e940"}.ff-icon-plus:before{content:"\e941"}.ff-icon-checkmark-square:before{content:"\e942"}.ff-icon-download:before{content:"\e943"}.ff-icon-sort-circle-down:before{content:"\e944"}.ff-icon-eye-off:before{content:"\e945"}.ff-icon-eye:before{content:"\e946"}.ff-icon-flag:before{content:"\e947"}.ff-icon-link:before{content:"\e948"}.ff-icon-list:before{content:"\e949"}.ff-icon-move:before{content:"\e94a"}.ff-icon-plus-alt:before{content:"\e94b"}.ff-icon-radio-button-on:before{content:"\e94c"}.ff-icon-search:before{content:"\e94d"}.ff-icon-star:before{content:"\e94f"}.ff-icon-sort-down-alt:before{content:"\e950"}.ff-icon-close:before{content:"\e951"}.ff-icon-expand:before{content:"\e952"}.ff-icon-eye-filled:before{content:"\e953"}.ff-icon-info-filled:before{content:"\e954"}.ff-icon-keypad:before{content:"\e955"}.ff-icon-more-horizontal:before{content:"\e956"}.ff-icon-setting-filled:before{content:"\e957"}.ff-icon-strikethrough:before{content:"\e958"}.ff-icon-text:before{content:"\e959"}.ff-icon-decrease-edit:before{content:"\e95a"}.ff-icon-sort-down:before{content:"\e95b"}.ff-icon-increase-edit:before{content:"\e95c"}.ff-icon-list-ordered:before{content:"\e95d"}.ff-icon-quote-left:before{content:"\e95e"}.ff-icon-slider-horizontal:before{content:"\e95f"}.ff-icon-text-alt:before{content:"\e960"}.ff-icon-upload:before{content:"\e961"}.ff-icon-edit:before{content:"\e962"}.ff-icon-filter:before{content:"\e963"}.ff-icon-refresh:before{content:"\e964"}.ff-icon-task:before{content:"\e965"}.ff-icon-sort:before{content:"\e96c"}.ff-icon-captcha:before{content:"\e96d"}.ff-icon-clear:before{content:"\e96e"} .ff_menu{align-items:center;display:none;flex-wrap:wrap;margin-top:22px}.ff_menu_active{display:flex;justify-content:center}.ff_menu_link{background-color:transparent;border-radius:6px;color:#353537;display:inline-block;font-size:15px;font-weight:500;line-height:1.6;overflow:hidden;padding:4px 14px;text-decoration:none;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_menu_link:focus{border:0;box-shadow:none;outline:none}.ff_menu_link:hover{color:#1a7efb}.ff_menu_link_buy{background-color:#1a7efb;color:#fff;margin-left:12px}.ff_menu_link_buy:hover{color:#fff}.ff_menu.conversion_form_editor .ff_menu_link,.ff_menu.partial_entries_form_editor .ff_menu_link{max-width:140px}.ff_menu .active .ff_menu_link{background-color:#e8f2ff;color:#1a7efb}.ff_menu_toggle{cursor:pointer;font-size:26px;margin-left:auto}.ff_menu_toggle:hover{color:#1a7efb}.ff_menu_back .el-icon-arrow-left{font-weight:700;position:relative;transition:all .3s;width:18px}.ff_menu_back .el-icon-arrow-left:after{background-color:#353537;background-color:#1a7efb;content:"";height:1.3px;position:absolute;right:-.6px;top:50%;transform:translateY(-52%);transition:all .3s;width:0}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left{color:#1a7efb;transform:translateX(-2.4px)}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left:after{font-weight:700;width:13px}.ff_card{background-color:#fff;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 3px 0 hsla(0,0%,51%,.1);padding:24px}.ff_card.primary{background-color:#1a7efb}.ff_card_pro{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;padding-left:54px;padding-right:40px}.ff_card_pro h3{color:#fff;font-size:28px;line-height:1.3;max-width:400px}.ff_card.highlight-border{border-color:#1a7efb}.ff_card .ff_pagination{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_shadow_lg{box-shadow:0 14px 16px -2px hsla(0,0%,51%,.1)}.ff_card .text{font-size:15px;line-height:1.6}.ff_card_alert{border-left:3px solid #ff6154;border-radius:4px}.ff_card_head{border-bottom:1px solid #ececec;margin-bottom:26px;padding-bottom:16px}.ff_card_head .text{margin-top:10px}.ff_card_head_group{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.ff_card_head_group .el-tooltip{font-size:15px}.ff_card_form_action{border-color:#ececec;cursor:pointer;height:100%}.ff_card_form_action .ff_card_text{word-break:break-word}.ff_card_img img{width:100%}.ff_card_s2{border:1px solid #e4e4e4;box-shadow:none;display:flex;flex-direction:column;padding:0;transition:.3s}.ff_card_s2 .ff_card_body{padding:20px}.ff_card_s2 .ff_card_footer{border-top:1px solid #e4e4e4;margin-top:auto;padding:14px 20px}.ff_card_s2:hover{box-shadow:0 22px 16px hsla(0,0%,51%,.12)}.ff_card_footer_group{align-items:center;display:flex;justify-content:space-between}.ff_card .ff-table-container{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_border{border:1px solid #ececec;box-shadow:none}.mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-3{margin-top:16px!important}.mt-4{margin-top:24px!important}.mt-5{margin-top:32px!important}.mt-6{margin-top:40px!important}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.mb-3{margin-bottom:16px!important}.mb-4{margin-bottom:24px!important}.mb-5{margin-bottom:32px!important}.mb-6{margin-bottom:40px!important}.mr-1{margin-right:4px!important}.mr-2{margin-right:8px!important}.mr-3{margin-right:16px!important}.mr-4{margin-right:24px!important}.mr-5{margin-right:32px!important}.mr-6{margin-right:40px!important}.ml-1{margin-left:4px!important}.ml-2{margin-left:8px!important}.ml-3{margin-left:16px!important}.ml-4{margin-left:24px!important}.ml-5{margin-left:32px!important}.ml-6{margin-left:40px!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.mr-0{margin-right:0!important}.ml-0{margin-left:0!important}.ff_list_button_item:not(:last-child){margin-bottom:4px}.ff_list_button_item.active .ff_list_button_link{background-color:#4b4c4d;color:#fff}.ff_list_button_item.has_sub_menu .ff_list_button_link{position:relative}.ff_list_button_item.has_sub_menu .ff_list_button_link:after{content:"\e6df";font-family:element-icons;position:absolute;right:15px;transition:.3s}.ff_list_button_item.has_sub_menu.is-submenu{color:inherit;font-style:inherit;font-weight:inherit;margin-left:0}.ff_list_button_item.has_sub_menu.is-submenu .ff_list_button_link:after{transform:rotate(-180deg)}.ff_list_button_link{background-color:transparent;border-radius:5px;color:#1e1f21;display:block;font-size:16px;padding:12px 18px;transition:.2s}.ff_list_button_link:hover{background-color:#f5f5f3;color:#1e1f21}.ff_list_button_small .ff_list_button_link{border-radius:6px;font-size:15px;padding:6px 14px}.ff_list_button_s1 .ff_list_button_item.active .ff_list_button_link{background-color:#f5f5f3;color:#1e1f21;font-weight:600}.ff_list_button_s1 .ff_list_button_link{color:#606266;font-size:15px}.ff_list li:not(:last-child){margin-bottom:12px}.ff_list li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list li a:hover{color:#1a7efb}.ff_list_submenu{background-color:#fff;display:none;margin-left:20px;margin-top:10px;position:relative}.ff_list_submenu:after{background-color:#e4e2df;content:"";height:100%;left:0;position:absolute;top:0;width:2px}.ff_list_submenu li{position:relative}.ff_list_submenu li:after{background-image:url(../images/curve-line.svg?ad01d82f4c085066c0a3accc820c65ac);background-repeat:no-repeat;content:"";height:10px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:12px}.ff_list_submenu li:last-child:before{background-color:#fff;bottom:0;content:"";height:18px;left:0;position:absolute;width:2px;z-index:1}.ff_list_submenu li a{border-radius:6px;color:#606266;display:block;font-size:15px;margin-left:15px;max-width:197px;overflow:hidden;padding:10px;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_list_submenu li a:hover{background-color:#efefef}.ff_list_submenu li.active a{background-color:#efefef;color:#1e1f21}.ff_list_border_bottom>li{font-size:15px;position:relative}.ff_list_border_bottom>li:not(:last-child){border-bottom:1px solid #ececec;margin-bottom:12px;padding-bottom:12px}.ff_list_border_bottom>li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list_border_bottom>li a.lead-text{color:#1a7efb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_list_border_bottom>li a.lead-text.lead-url{white-space:unset;word-break:break-all}.ff_submission_info_list li{display:flex}.ff_submission_info_list .lead-title{flex-shrink:0;width:120px}.ff_submission_info_list .truncate{max-width:228px}.el-button--upload{border-style:dashed;justify-content:center;padding:24px;width:100%}.el-button--upload .el-icon{font-size:22px}.ff_file_upload_result{align-items:center;background-color:#fafafa;border:1px solid #f2f2f2;border-radius:8px;display:flex;overflow:hidden;padding:10px;position:relative}.ff_file_upload_result .el-button{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.ff_file_upload_result+.ff_file_upload_result{margin-top:10px}.ff_file_upload_preview{height:44px;width:44px}.ff_file_upload_preview img{border-radius:4px;height:100%;-o-object-fit:cover;object-fit:cover;width:44px}.ff_file_upload_preview+.ff_file_upload_data{margin-left:15px}.ff_file_upload_description{color:#1e1f21;font-size:14px}.ff_file_upload_size{font-size:12px;margin-top:4px}body{background-color:#f2f2f2;color:#606266}#wpcontent{padding-left:0}#wpbody-content *{box-sizing:border-box}h1,h2,h3,h4,h5,h6{color:#1e1f21;margin:0}ol,ul{list-style:none;margin:0;padding:0}h1{font-size:24px}h2{font-size:23px}h3{font-size:22px;line-height:1.4}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}p{font-size:15px}p:last-child{margin:0}hr{border-bottom-color:#ececec;border-top:0}dd,li{margin-bottom:0}a{color:#1a7efb;font-weight:400;text-decoration:none}a:focus{box-shadow:none;outline:none}a:hover{color:#1a7efb}.notice,div.error,div.updated{margin:8px 24px 2px}.fluentform-admin-notice.notice-error{margin:8px 24px;padding:10px 20px}.fluentform-admin-notice.notice-error h3{font-size:18px;margin:10px 0}.ff_form_wrap_area .fluentform-admin-notice{margin:8px 0}.ff_backdrop{background:rgba(0,0,0,.5);bottom:0;left:0;position:fixed;right:0;top:0;z-index:999999999}.w-100{width:100%!important}.ff-mw-100{max-width:100%!important}.h-100{height:100%!important}.ff_form_wrap{padding:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{-webkit-appearance:none;background-color:#fff;border-color:#dadbdd;border-radius:7px;box-shadow:none;color:#606266;padding:0 15px}input[type=color]:focus,input[type=color]:hover,input[type=date]:focus,input[type=date]:hover,input[type=datetime-local]:focus,input[type=datetime-local]:hover,input[type=datetime]:focus,input[type=datetime]:hover,input[type=email]:focus,input[type=email]:hover,input[type=month]:focus,input[type=month]:hover,input[type=number]:focus,input[type=number]:hover,input[type=password]:focus,input[type=password]:hover,input[type=search]:focus,input[type=search]:hover,input[type=tel]:focus,input[type=tel]:hover,input[type=text]:focus,input[type=text]:hover,input[type=time]:focus,input[type=time]:hover,input[type=url]:focus,input[type=url]:hover,input[type=week]:focus,input[type=week]:hover,textarea:focus,textarea:hover{border-color:#1a7efb!important}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{box-shadow:none}input[type=number]{padding-right:0}input[type=checkbox]:disabled{opacity:0}.ff-select{-webkit-appearance:none!important;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat right 14px top 55%!important;background-blend-mode:hard-light;background-size:16px 16px!important;border:1px solid #dadbdd!important;border-radius:7px!important;box-sizing:border-box!important;color:#606266!important;display:inline-block!important;height:40px!important;line-height:40px!important;max-width:inherit!important;outline:0!important;outline:none!important;padding:0 29px 0 20px!important;text-overflow:ellipsis;transition:border-color .2s cubic-bezier(.645,.045,.355,1)!important}.ff-select:focus{box-shadow:none!important;outline:none!important}.ff-select-block{display:block;width:100%}.ff-select-small{background-position-x:38px!important;border-radius:5px!important;height:32px!important;line-height:32px!important;padding-left:10px!important;padding-right:24px!important}.ff-select-small.condition-field,.ff-select-small.condition-operator,.ff-select-small.condition-value{background-position-x:90%!important}.ff_filter_selected{background-color:#e8f2ff;border-color:#bad8fe;color:#1a7efb}p{margin-bottom:10px;margin-top:0}.icon{display:inline-block;font:normal normal normal 14px/1 ultimateform}.el-input--prefix .el-input__inner{padding-left:38px}.el-input__prefix{left:12px}.ff-icon+span,span+.ff-icon{margin-left:6px}.d-flex{display:flex}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.text-primary{color:#1a7efb!important}.text-secondary{color:#606266!important}.text-danger{color:#ff6154!important}.text-success{color:#00b27f!important}.text-warning{color:#fcbe2d!important}.text-dark{color:#1e1f21!important}.flex-grow-1{flex:1}.mr15{margin-right:15px}.mb15{margin-bottom:15px}.pull-left{float:left!important}.pull-right{float:right!important}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.el-icon-clickable{cursor:pointer}.help-text{font-size:.9em;font-style:italic;margin:0}.fs-17{font-size:17px!important}.fs-15{font-size:15px!important}.fs-14{font-size:14px!important}.fs-13{font-size:13px!important}.text-note{color:#606266;font-size:13px;font-weight:400}.ff-disabled{opacity:.5;pointer-events:none}.mx-auto{margin-left:auto;margin-right:auto}.img-thumb{border:1px solid #ececec;border-radius:8px}.lead-title{color:#1e1f21;display:block;font-size:15px;font-weight:500;transition:.2s}.lead-text{color:#606266;font-size:13px}a.lead-text{color:#1a7efb}.btn{background-image:none;border:1px solid transparent;border-radius:4px;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1.42857143;margin-bottom:0;padding:6px 12px;text-align:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.btn-primary{background-color:#337ab7;border-color:#2e6da4;color:#fff}.btn-primary:hover{background-color:#286090;border-color:#204d74;color:#fff}.btn-block{width:100%}.clearfix:after,.clearfix:before,.form-editor:after,.form-editor:before{content:" ";display:table}.clearfix:after,.form-editor:after{clear:both}.el-notification__content p{text-align:left}.label-lh-1-5 label{line-height:1.5}.ff_header{background:#fff;border-bottom:1px solid #ececec;display:flex;flex-direction:column;padding:10px 24px}.ff_header_group{align-items:center;display:flex;justify-content:space-between}.ff_header .plugin-name{height:30px}.ff_header .plugin-name img{height:100%}.ff_header .global-search-menu-button{background-color:transparent;border:0;border-radius:6px;color:rgba(60,60,60,.702);cursor:pointer;display:inline-block;font-size:15px;font-weight:400;line-height:1.6;margin:0 0 0 auto;padding:0 0 0 5px;transition:all .3s}.ff_header .global-search-menu-button .el-icon-search{font-size:16px;font-weight:600}.ff_header .global-search-menu-button .shortcut{border-radius:4px;box-shadow:0 2px 3px 0 rgba(32,33,36,.15);font-size:12px;letter-spacing:3px;padding:5px 8px;transition:all .3s}.ff_header .global-search-menu-button:hover{color:#353537}.ff_header .global-search-menu-button:hover .shortcut{border-color:#1a7efb;color:#1a7efb}.ff_header .global-search-menu-button span{margin-left:5px}.ff_row{display:flex;flex-wrap:wrap}.el-dialog{padding:24px 30px}.el-dialog__headerbtn{background-color:#fafafa;border-radius:50%;font-size:1.25rem;height:2rem;right:22px;top:18px;transition:.2s;width:2rem}.el-dialog__headerbtn .el-dialog__close{color:#1e1f21}.el-dialog__headerbtn:hover{background-color:#ececec}.el-dialog__headerbtn:hover .el-dialog__close{color:#1e1f21}.el-dialog__header{border-bottom:1px solid #ececec;padding:0 0 24px}.el-dialog__header h4{font-weight:500}.el-dialog__body,.el-dialog__footer{padding:0}.el-dialog__footer .has-separator{border-top:1px solid #ececec;padding-top:20px}.el-dialog,.el-popover{border-radius:8px}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__header{border:0;padding:0}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__body .el-row{align-content:center;align-items:center;display:flex;justify-content:center}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__headerbtn{z-index:1}.form-editor .disabled-info .el-dialog__wrapper h3{font-size:1.5em}.form-editor .disabled-info .el-dialog__wrapper p{font-size:16px}.form-editor .disabled-info .el-dialog__wrapper img{width:100%}.ff_nav_top{display:block;margin-bottom:15px;overflow:hidden;width:100%}.ff_nav_top .ff_nav_title{float:left;width:50%}.ff_nav_top .ff_nav_title h3{float:left;line-height:28px;margin:0;padding:0}.ff_nav_top .ff_nav_title .ff_nav_sub_actions{display:inline-block;margin-left:20px}.ff_nav_top .ff_nav_action{float:left;text-align:right;width:50%}.ff_nav_top .ff_search_inline{display:inline-block;text-align:right;width:200px}.ff_nav_top.ff_advanced_search{background:#fff;border-radius:5px;padding:10px 20px}.ff_global_notices{box-sizing:border-box;display:block;margin-top:20px;overflow:hidden;width:100%}.ff_global_notices .ff_global_notice{background:#fff;border:1px solid transparent;border-radius:.25rem;display:block;margin-bottom:1rem;margin-right:20px;padding:.75rem 1.25rem;position:relative}.ff_global_notices .ff_global_notice.ff_notice_error{background-color:#fff3cd;border-color:#ffeeba;color:#856404}.ff_global_notices .ff_global_notice.ff_notice_success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.el-select-dropdown.el-popper{z-index:99999999999!important}ul.ff_entry_list{list-style:disc;margin-left:20px}span.ff_new_badge{background:#ff4747;border-radius:4px;color:#fff;font-size:11px;line-height:100%;margin-left:5px;padding:0 5px 3px;vertical-align:super}label.el-checkbox,label.el-radio{display:inline-block}.el-time-spinner__list .el-time-spinner__item{margin-bottom:0!important}.ff_card_block{background:#f2f2f2;border-radius:8px;padding:20px}.ff_card_block_head{border-bottom:1px solid #e3e3e3;margin-bottom:20px;padding-bottom:15px}.ff_card_block h3{margin:0 0 15px;padding:0}.videoWrapper{height:0;padding-bottom:56.25%;position:relative}.videoWrapper iframe{height:100%;left:0;position:absolute;top:0;width:100%}.ff-left-spaced{margin-left:10px!important}.doc_video_wrapper{background:#fff;margin:0 auto;max-width:800px;padding:20px 0 0;text-align:center}.el-big-items .el-select-dropdown__wrap{max-height:350px}.ff_email_resend_inline{display:inline-block}.el-radio-group-column{display:flex;flex-direction:column}.el-radio-group-column .el-radio{margin-bottom:20px;margin-right:0}.el-checkbox-group-column{display:flex;flex-direction:column}.el-checkbox-group-column .el-checkbox{margin-bottom:14px;margin-right:0}.ff_advanced_filter_wrap{position:relative}.ff_advanced_search{background:#fff;border-radius:8px;box-shadow:0 40px 64px -12px rgba(0,0,0,.08),0 0 14px -4px rgba(0,0,0,.08),0 32px 48px -8px rgba(0,0,0,.1);margin-top:10px;padding:20px;position:absolute;right:0;top:100%;width:350px;z-index:1024}.ff_advanced_search_date_range{background-color:#ececec;border-radius:8px;padding:14px}.ff_advanced_search_date_range p{font-size:14px;font-weight:400}.ff_advanced_search_date_range .el-date-editor--daterange.el-input__inner{width:282px}.el-switch__core:after{box-shadow:0 2px 4px rgba(0,0,0,.2),inset 0 2px 2px #fff,inset 0 -1px 1px rgba(0,0,0,.1)}.row-actions .row-actions-item{display:inline-block;font-size:13px;line-height:1;padding-right:10px;position:relative}.row-actions .row-actions-item:after{background-color:#ddd;content:"";height:10px;position:absolute;right:3px;top:50%;transform:translateY(-50%);width:1px}.row-actions .row-actions-item.trash:after{display:none}.row-actions span.trash a{color:#ff6154}.ff_pagination{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);display:inline-flex;font-weight:500;max-width:100%;padding:12px 20px}.ff_pagination .el-input__inner{background:#f2f2f2;border-color:#f2f2f2;border-radius:4px!important;color:#606266}.ff_pagination .el-input__inner:focus,.ff_pagination .el-input__inner:hover{border-color:#f2f2f2!important}.ff_pagination .el-select .el-input .el-select__caret{color:#606266}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:transparent;border-radius:4px}.ff_shortcode_wrap+.ff_shortcode_wrap{margin-top:.5rem}.ff_shortcode_btn{align-items:center;background-color:#ededed;border:0;border-radius:6px;color:#353537;display:inline-flex;font-size:12px;margin:0;overflow:hidden;padding:4px 10px}.ff_shortcode_btn span{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:200px}.ff_shortcode_btn .el-icon{margin-right:1px}.ff_shortcode_btn_thin{background-color:#f2f2f2}.ff_shortcode_btn_md{font-size:15px;line-height:1.2;padding:10px 14px}.copy_btn{background-color:#e7e6e6;border-radius:4px;cursor:pointer;margin-left:auto;padding:1px 10px;transition:.2s}.copy_btn:hover{background-color:#d8d7d7}.ff_editor_html ul{list-style-type:disc;padding-left:3em}.ff_editor_html ol{list-style-type:decimal;margin-left:3em}.ff_section_block{margin-bottom:64px}.ff_section_block:last-child{margin-bottom:0}.ff_radio_list{display:flex;flex-direction:column}.ff_radio_list_item{margin-bottom:2px;width:100%}.ff_radio_list_item .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:6px!important;box-shadow:none!important;color:#606266;padding:13px 16px;text-align:left;transition:.2s;width:100%}.ff_radio_list_item .el-radio-button__inner:hover,.ff_radio_list_item.is-active .el-radio-button__inner{background-color:rgba(96,98,102,.1);color:#1e1f21}.is-sticky{position:fixed;top:40px;z-index:1020}.ff_section_desc{font-size:16px}.ff_section_head{margin-bottom:40px}.ff_section_head_between{display:flex;flex-wrap:wrap;justify-content:space-between}.ff_section_head.sm{margin-bottom:24px}.ff_section_head_content_group{align-items:center;display:flex}.ff_section_head .text{font-size:15px}.el-row{display:flex;flex-wrap:wrap}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.items_end{align-items:flex-end!important}.el-radio-button__inner{font-weight:400}.el-select-dropdown__item.selected{font-weight:500}.ff_layout_section{display:flex;min-height:550px;position:relative;width:100%}.ff_layout_section_sidebar{background-color:#fff;box-shadow:0 1px 3px rgba(30,31,33,.05);flex-shrink:0;padding:16px;vertical-align:top;width:230px}.ff_layout_section_container{flex:1;overflow-y:scroll;padding:16px}.ff_global_setting_wrap .ff_layout_section_sidebar,.ff_tools_wrap .ff_layout_section_sidebar{height:100%}.ff_global_settings_option{height:110vh;overflow-y:scroll}.ff_global_settings_option::-webkit-scrollbar{display:none}.ff_global_settings_option .el-form-item,.ff_global_settings_option .el-form-item-wrap{margin-bottom:24px}.ff_global_settings_option .el-form-item-wrap:last-child,.ff_global_settings_option .el-form-item:last-child{margin-bottom:0}.ff_global_settings_option .ff_card:not(:last-child){margin-bottom:32px}.ff_input_width{width:438px}.ff_input_full_width{width:100%}.ff_tooltip_wrap{font-size:14px;line-height:1.6;max-width:320px}.ff_tooltip_wrap h6{color:#fff}.ff-icon-gray{color:#757d8a}.el-form--label-top .el-form-item__label{line-height:1;padding-bottom:16px}.ff-form-item .el-form-item__label{align-items:center;color:#1e1f21;display:flex;font-size:15px;font-weight:500}.ff-form-item .el-form-item__label .ff-icon{margin-left:4px}.ff-form-item .el-form-item__content{line-height:1}.ff-form-item .el-icon-info,.ff-form-item .ff-icon-info-filled{font-size:13px}.ff-form-item .el-icon-info{color:#1a7efb;transform:rotate(-14deg)}.el-select__tags input{background-color:transparent;border:none;line-height:2;margin-left:0;min-height:30px;padding:0 8px}.ff_alert{background-color:#e8f2ff;border-left:3px solid #1a7efb;border-radius:4px;padding:17px}.ff_alert_icon{display:inline-block;font-size:16px;margin-top:3px}.ff_alert_icon+.ff_alert_content{padding-left:10px}.ff_alert_group{display:flex}.ff_alert_sm{padding:10px}.ff_alert.success{background-color:#00b27f;border-left-color:#00b27f;color:#fff}.ff_alert.success-soft{background-color:#e6ffeb;border-left-color:#00b27f}.ff_alert.danger{background-color:#ff6154;border-left-color:#ff6154;color:#fff}.ff_alert.danger-soft{background-color:#ffefee;border-left-color:#ff6154}.ff_alert .text{font-size:14px;margin-bottom:12px;margin-top:6px}.ff_alert_between{align-items:center;display:flex;justify-content:space-between}.ff_alert_between .text{margin-bottom:0}.ff_alert_s2{border-left:0;border-radius:8px;padding:40px;text-align:center}.ff-form-item-flex{align-items:center;display:flex}.ff-form-item-flex .el-form-item__label{padding-bottom:0}.ff-form-item-flex.reverse{flex-direction:row-reverse;justify-content:flex-end}.ff-form-setting-label-width .el-form-item__label{width:390px}.el-switch input{border:0}.el-switch-lg .el-switch__core{border-radius:30px;height:24px;width:48px!important}.el-switch-lg .el-switch__core:after{height:20px;width:20px}.el-switch-lg.is-checked .el-switch__core:after{margin-left:-21px}.ff_block_title{font-weight:500}.el-form-item__label h6{font-size:15px;font-weight:500}.ff_checkbox_group_col_2{display:flex;flex-wrap:wrap}.ff_checkbox_group_col_2 .el-checkbox{line-height:1;margin-bottom:.75rem;margin-right:0;width:50%}.wp_vue_editor_wrapper{background-color:#fff;border:1px solid #dadbdd;border-radius:8px;overflow:hidden;position:relative}.wp_vue_editor_wrapper .wp-media-buttons{float:none;position:absolute;right:160px;top:10px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media{background-color:#e8f2ff;border-color:#e8f2ff;border-radius:6px;color:#1a7efb;font-weight:500;line-height:1;margin:0;min-height:30px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.wp_vue_editor_wrapper .popover-wrapper{padding:10px;position:absolute;right:0;top:0;z-index:2}.wp_vue_editor_wrapper .wp-editor-container{border:0}.wp_vue_editor_wrapper .wp-editor-tabs{float:none;padding:8px}.wp_vue_editor_wrapper .wp-switch-editor{background-color:transparent;border-color:transparent;border-radius:5px;float:none;font-size:14px;font-weight:500;height:auto;line-height:inherit;margin:0 0 0 4px;padding:7px 14px}.wp_vue_editor_wrapper .html-active .switch-html,.wp_vue_editor_wrapper .tmce-active .switch-tmce{background-color:#ededed;border-color:#dadbdd;color:#1e1f21}.wp_vue_editor_wrapper .switch-html{margin-left:0}.wp_vue_editor_wrapper .mce-top-part:before{box-shadow:none}.wp_vue_editor_wrapper .quicktags-toolbar,.wp_vue_editor_wrapper div.mce-toolbar-grp{background:#f1f1f0;border-bottom:0}.wp_vue_editor_wrapper .mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border:0;border-radius:4px;box-shadow:none}.wp_vue_editor_wrapper textarea{border:0;padding-top:15px}.wp-media-buttons .insert-media{padding-left:8px;padding-right:10px}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#1a7efb}.mce-panel.mce-menu{border-radius:8px}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:10px!important}.el-input-number__decrease{left:2px}.ff_state_box{border-radius:8px;display:block;padding:32px;text-align:center}.ff_icon_btn{align-items:center;background-color:#1a7efb;border-radius:50%;color:#fff;display:flex;font-size:28px;height:58px;justify-content:center;text-align:center;width:58px}.ff_icon_btn:focus,.ff_icon_btn:hover{color:#fff}.ff_icon_btn img{height:36px;-o-object-fit:contain;object-fit:contain}.ff_icon_btn.square{border-radius:12px}.ff_icon_btn.blue{background-color:#3b5998;color:#fff}.ff_icon_btn.blue-soft{background-color:#ebeef5;color:#3b5998}.ff_icon_btn.dark{background-color:#1e1f21;color:#fff}.ff_icon_btn.dark-soft{background-color:#e9e9e9;color:#1e1f21}.ff_icon_btn.primary-soft{background-color:#e8f2ff;color:#1a7efb}.ff_icon_btn.danger{background-color:#ff6154;color:#fff}.ff_icon_btn.danger-soft{background-color:#ffefee;color:#ff6154}.ff_icon_btn.success{background-color:#00b27f;color:#fff}.ff_icon_btn.success-soft{background-color:#e6ffeb;color:#00b27f}.ff_icon_btn.warning{background-color:#fcbe2d;color:#fff}.ff_icon_btn.warning-soft{background-color:#fff9ea;color:#fcbe2d}.ff_icon_btn.info{background-color:#4b4c4d;color:#fff}.ff_icon_btn.info-soft{background-color:#ededed;color:#4b4c4d}.ff_icon_btn.cyan{background-color:#0dcaf0;color:#fff}.ff_icon_btn.cyan-soft{background-color:#e7fafe;color:#0dcaf0}.ff_icon_btn.mini{font-size:12px;height:18px;width:18px}.ff_icon_btn.small{font-size:16px;height:27px;width:27px}.ff_icon_btn.md{font-size:26px;height:48px;width:48px}.ff_icon_btn.md img{height:28px;-o-object-fit:cover;object-fit:cover;-o-object-position:left;object-position:left;width:28px}.ff_icon_btn.lg{font-size:36px;height:72px;width:72px}.ff_btn_group{align-items:center;display:inline-flex;flex-wrap:wrap;margin:-6px}.ff_btn_group>*{margin-bottom:0;padding:6px}.ff_btn_group.sm{margin:-3px}.ff_btn_group.sm>*{padding:3px}.ff_btn_group_half{display:flex}.ff_btn_group_half>*{flex:1}.ff_btn_group_half .el-button{justify-content:center;width:100%}.file-input{background:#fff;border:1px solid #ececec;border-radius:8px;color:#606266;max-width:100%;padding:5px!important}.file-input::file-selector-button{background:#f2f2f2;border:none;border-radius:6px;color:#1e1f21;cursor:pointer;margin-right:6px;padding:6px 16px;transition:background .2s ease-in-out}.file-input::file-selector-button:hover{background:#ced0d4}.el-tag--pill{border-radius:50rem}.ff_radio_group{background-color:#f5f5f3;border-radius:8px;overflow:hidden}.ff_radio_group .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:0!important}.ff_radio_group .el-radio-button__inner:hover{color:#1e1f21}.ff_radio_group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;box-shadow:none;color:#fff}.ff_radio_group_s2{background:#fff;border:1px solid #edeae9;border-radius:8px;display:inline-flex;overflow:hidden}.ff_radio_group_s2 .el-radio-button:first-child .el-radio-button__inner{border-left:0}.ff_radio_group_s2 .el-radio-button:last-child .el-radio-button__inner{border-right:0}.ff_radio_group_s2 .el-radio-button__inner{border-color:transparent #edeae9 transparent transparent}.el-input-gray .el-input__inner{background-color:#e7e6e6;border-color:#e7e6e6}.el-input-gray .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray .el-input__prefix{color:#606266}.el-input-gray-light .el-input__inner{background-color:#f5f5f3;border-color:#f5f5f3}.el-input-gray-light .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__prefix{color:#606266}.el-radio.is-bordered{margin-right:6px}.ff_media_group{align-items:center;display:flex}.ff_media_head+.ff_media_body{margin-left:16px}.ff_video_wrap{position:relative}.ff_video_wrap:after{background-color:#1e1f21;border-radius:8px;content:"";height:100%;left:0;opacity:.3;position:absolute;top:0;width:100%}.ff_video_img{border-radius:8px;display:block;width:100%}.ff_video_icon{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1}.ff-input-wrap{position:relative}.ff-input-wrap .el-icon{align-items:center;display:inline-flex;height:100%;left:0;padding-left:14px;position:absolute;top:0;z-index:2}.ff-input-wrap .el-icon+.el-input .el-input__inner,.ff-input-wrap .el-icon+input{padding-left:32px}.el-dialog-no-header .el-dialog__header{display:none}.el-radio-button-group{background-color:#fff;border:1px solid #ececec;border-radius:4px}.el-radio-button-group .el-radio-button__inner{background:transparent;border:0;padding:6px 9px}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner{border-left:0;border-radius:4px 0 0 4px}.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button-group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1a7efb;box-shadow:none}.el-color-picker__color{border-color:#d4edda;border-radius:3px}.ff_socials li{display:inline-block;margin-right:2px}.ff_socials li:last-child{margin-right:0}.ff_socials li a{background-color:#ededed;border-radius:50%;color:#606266;display:grid;height:32px;place-items:center;transition:.2s;width:32px}.ff_socials li a span{font-size:16px;height:auto;transition:0s;width:auto}.ff_socials li a:hover{background-color:#1a7efb;color:#fff}.ff-dropdown-menu .el-dropdown-menu__item{line-height:1.5;padding:6px 20px}.ff-dropdown-menu .el-dropdown-menu__item:hover{background-color:transparent}.truncate{display:block;max-width:188px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;max-width:inherit;white-space:inherit}.hover-y{transition:.3s}.hover-y:hover{transform:translateY(-2px)}.hover-zoom{transition:.3s}.hover-zoom:hover{transform:scale(1.03)}.ff_badge{align-items:center;background-color:#ededed;border:1px solid #dbdbdb;border-radius:30px;color:#4b4c4d;display:inline-flex;line-height:1.2;padding:2px 7px;text-transform:capitalize}.ff_badge.small{font-size:13px}.ff_badge_wrap{align-items:center;display:inline-flex}.ff_badge img{flex-shrink:0;height:14px;margin-right:4px}.ff_badge_active,.ff_badge_primary{background-color:#e8f2ff;border-color:#d1e5fe;color:#1a7efb}.ff_badge_paid{background-color:#e6f7f2;border-color:#ccf0e5;color:#00b27f}.ff_badge_processing{background-color:#e7fafe;border-color:#cff4fc;color:#0dcaf0}.ff_badge_pending{background-color:#fff9ea;border-color:#fef2d5;color:#fcbe2d}.ff_badge_failed{background-color:#ffefee;border-color:#ffdfdd;color:#ff6154}.ff_badge_visa{background-color:#e8e9ef;border-color:#dddee7;color:#192061}.ff_badge_mastercard{background-color:#ffefe6;border-color:#ffe7d9;color:#ff5f00}.ff_badge_amex{background-color:#f0f9fd;border-color:#e9f6fc;color:#6cc4ee}.ff_badge_paypal{background-color:#e6f5fc;border-color:#d9f0fa;color:#019ddd}.ff_badge_stripe{background-color:#eef0fb;border-color:#e5e9f9;color:#5469d4}.ff_badge.is-solid.ff_badge_active{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.ff_badge.is-solid.ff_badge_processing{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.ff_badge.is-solid.ff_badge_paid{background-color:#00b27f;border-color:#00b27f;color:#fff}.ff_badge.is-solid.ff_badge_pending{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.ff_badge.is-solid.ff_badge_cancelled,.ff_badge.is-solid.ff_badge_failed{background-color:#ff6154;border-color:#ff6154;color:#fff}.separator{background-color:rgba(96,98,102,.1);height:1px}.ff_choose_template_wrap .el-dialog{max-width:1280px}.ff_settings_container .notice{margin:0 0 20px}.global-search-wrapper{align-items:center;background:rgba(0,0,0,.7);display:flex;height:auto;inset:0;justify-content:center;min-height:100vh;padding:20px;position:fixed;z-index:999999999}.global-search-wrapper .global-search-container{background:#f6f6f7;border-radius:5px;overflow:auto;position:relative;width:700px}.global-search-wrapper .global-search-container input{font-size:17px;padding:3px 35px;width:100%}.global-search-wrapper .global-search-container ul.search-result li{background:#fff;border-radius:6px;box-shadow:0 1px 3px 0 #d4d9e1;color:#606266;cursor:pointer;display:block;font-size:15px;margin-left:0;margin-top:7px;padding:10px;transition:.2s}.global-search-wrapper .global-search-container ul.search-result li.active-search-link{background-color:#197efb;color:#fff;outline:0}.global-search-wrapper .global-search-container ul.search-result li:focus,.global-search-wrapper .global-search-container ul.search-result li:focus-visible{border:0;box-shadow:none;outline:0}.global-search-wrapper .global-search-container span.global-search-not-match{display:inline-block;font-size:16px;margin-top:6px}.global-search-wrapper .global-search-body{max-height:400px;min-height:200px;overflow-y:auto;padding:20px}.global-search-wrapper .search-commands{background:#fff;box-shadow:0 -1px 0 0 #efefef,0 -2px 6px 0 rgba(70,90,150,.1);color:#606266;display:flex;font-size:14px;justify-content:space-around;padding:12px}.global-search-wrapper .search-commands ul li{font-size:12px;margin-top:7px;padding:10px}.scroll{animation:down 2s ease-in-out infinite;-webkit-animation:down 2s ease-in-out infinite;cursor:pointer;height:26px;margin:0 auto;position:relative;width:60px}.scroll:before{border-bottom:2px solid #777;border-left:2px solid #777;content:"";height:16px;left:18px;position:absolute;top:24px;transform:rotate(-45deg);width:16px}.ff_chained_ajax_field{display:flex;flex:auto;gap:10px}.ff_chained_ajax_field .el-select{flex-basis:100%}@keyframes down{0%{opacity:0;-webkit-transform:translateY(-14px)}50%{opacity:1}to{opacity:0;-webkit-transform:translateY(14px)}}.ff_sidebar_toggle{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 1px 10px rgba(0,0,0,.1);color:#000;cursor:pointer;display:none;font-size:18px;height:30px;justify-content:center;position:absolute;right:-21px;top:15px;width:30px}.text-capitalize{text-transform:capitalize}.el-notification__content{text-align:left}.action-buttons .el-button+.el-button{margin-left:0}.el-box-card{box-shadow:none}.el-box-footer,.el-box-header{background-color:#edf1f6;padding:15px}.el-box-body{padding:15px}.el-form-item__force-inline.el-form-item__label{float:left;padding:11px 12px 11px 0}.el-form-item .el-form-item{margin-bottom:10px}.el-form-item__content .line{text-align:center}.el-basic-collapse{border:0;margin-bottom:15px}.el-basic-collapse .el-collapse-item__header{border:0;display:inline-block;padding-left:0}.el-basic-collapse .el-collapse-item__wrap{border:0}.el-basic-collapse .el-collapse-item__content{background-color:#fff;padding:0}.el-collapse-settings{border:0}.el-collapse-settings .el-collapse-item__header{background:#f5f5f3;border:0;border-radius:8px;font-size:16px;padding-left:20px;padding-right:10px}.el-collapse-settings .el-collapse-item__header .el-collapse-item__arrow{font-size:16px;font-weight:500}.el-collapse-settings .el-collapse-item__content{margin-top:15px;padding-bottom:0}.el-collapse-settings .el-collapse-item__arrow{line-height:48px}.el-collapse-settings .el-collapse-item__wrap{background-color:transparent;border-bottom:0;overflow:inherit}.el-popover{text-align:left}.option-fields-section--content .el-form-item__label{color:#1e1f21;font-weight:500;line-height:1;padding-bottom:10px}.option-fields-section--content .el-form-item__content{line-height:1.5;margin-bottom:5px}.option-fields-section--content .el-input-number--mini{line-height:28px}.option-fields-section--content strong{color:#1e1f21;font-weight:600}.el-dropdown-list{border:0;box-shadow:none;margin:0;max-height:280px;min-width:auto;overflow-y:scroll;padding:0;position:static;z-index:10}.el-dropdown-list .el-dropdown-menu__item{border-bottom:1px solid #f1f1f1;font-size:13px;line-height:18px;padding:4px 10px}.el-dropdown-list .el-dropdown-menu__item:last-of-type{border-bottom:0}.el-popper[x-placement^=bottom] .popper__arrow{top:-7px}.el-form-nested.el-form--label-left .el-form-item__label{float:left;padding:10px 5px 10px 0}.el-message{top:40px}.el-tabs--border-card{border-color:#ececec;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.05)}.el-tabs--border-card .el-tabs__header{background-color:transparent;border-top-left-radius:6px;border-top-right-radius:6px;padding:10px 14px}.el-tabs--border-card .el-tabs__header .el-tabs__item{border:0;border-radius:6px;font-size:13px;height:34px;line-height:34px;margin-top:0;padding-left:16px;padding-right:16px}.el-tabs--border-card .el-tabs__header .el-tabs__item:first-child{margin-left:0}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active{background-color:#d1e5fe;color:#1a7efb}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active:hover{color:#1a7efb}.el-button{align-items:center;display:inline-flex;transition:.3s}.el-button .el-loading-mask{border-radius:7px}.el-button .el-loading-mask .el-loading-spinner{margin-top:-12px}.el-button .el-loading-mask .el-loading-spinner .circular{height:24px;width:24px}.el-button span{align-items:center;display:inline-flex}.el-button-group .el-button span{display:inline-block}.el-button--block{justify-content:center;width:100%}.el-button--small .ff-icon{font-size:14px}.el-button--large{font-size:16px;padding:15px 20px}.el-button--soft.el-button--blue{background-color:#ebeef5;border-color:#ebeef5;color:#3b5998}.el-button--soft.el-button--blue:hover{background-color:#3b5998;border-color:#3b5998;color:#fff}.el-button--soft.el-button--primary{background-color:#e8f2ff;border-color:#e8f2ff;color:#1a7efb}.el-button--soft.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--soft.el-button--danger{background-color:#ffefee;border-color:#ffefee;color:#ff6154}.el-button--soft.el-button--danger:hover{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-button--soft.el-button--success{background-color:#e6ffeb;border-color:#e6ffeb;color:#00b27f}.el-button--soft.el-button--success:hover{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-button--soft.el-button--warning{background-color:#fff9ea;border-color:#fff9ea;color:#fcbe2d}.el-button--soft.el-button--warning:hover{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--soft.el-button--info{background-color:#ededed;border-color:#ededed;color:#4b4c4d}.el-button--soft.el-button--info:hover{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--soft.el-button--cyan{background-color:#e7fafe;border-color:#e7fafe;color:#0dcaf0}.el-button--soft.el-button--cyan:hover{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.el-button--soft.el-button--dark{background-color:#e9e9e9;border-color:#e9e9e9;color:#1e1f21}.el-button--soft.el-button--dark:hover{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--soft-2.el-button--primary{background-color:#d1e5fe;border-color:#d1e5fe;color:#1a7efb}.el-button--soft-2.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--icon.el-button--mini{border-radius:4px;padding:7px}.el-button--icon.el-button--small{border-radius:5px;font-size:14px;padding:8px}.el-button--icon.el-button--medium{border-radius:6px;padding:10px}.el-button--text-light{color:#606266}.el-button--info.is-plain{border-color:#ededed}.el-button--dark{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--dark:focus,.el-button--dark:hover{background-color:#3a3a40;border-color:#3a3a40;color:#fff}.el-button--primary:hover{background-color:#1565c9;border-color:#1565c9}.el-pager li{font-weight:600}.form-editor-elements:not(.el-form--label-left):not(.el-form--label-right) .el-form-item__label{line-height:1}.folded .el-dialog__wrapper{left:36px}.el-dialog__wrapper .data-lost-msg{margin-top:10px}.ff-el-banner{border:1px solid #dce0e5;display:inline-block;float:left;height:250px;padding:5px;transition:border .3s;width:200px}.ff-el-banner,.ff-el-banner-group{overflow:hidden}.ff-el-banner-group .ff-el-banner{margin-bottom:30px;margin-right:10px}.ff-el-banner+.ff-el-banner{margin-right:10px}.ff-el-banner img{display:block;height:auto;width:100%}.ff-el-banner-header{background:#909399;color:#fff;font-size:13px;font-weight:400;margin:0;padding:3px 6px;text-align:center}.ff-el-banner-inner-item{height:inherit;overflow:hidden;position:relative}.ff-el-banner:hover .ff-el-banner-text-inside{opacity:1!important;visibility:visible!important}.ff-el-banner-text-inside{display:flex;flex-direction:column;justify-content:center}.ff-el-banner-text-inside-hoverable{bottom:0;color:#fff;left:0;padding:10px;position:absolute;right:0;top:0;transition:all .3s}.ff-el-banner-text-inside .form-title{color:#fff;margin:0 0 10px}.compact td>.cell,.compact th>.cell{white-space:nowrap}.el-tooltip__popper p{margin-bottom:0}.el-dropdown-menu{left:unset;max-width:270px}.el-dropdown-link{cursor:pointer}.el-dropdown-link-lg{color:#1e1f21;font-size:24px;font-weight:600}.el-dropdown-link-lg .el-icon{font-size:20px}.el-switch--small .el-switch__core{height:16px;width:28px!important}.el-switch--small .el-switch__core:after{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core:after{margin-left:-13px}.el-switch--small .el-switch__label *{font-size:13px;font-weight:500}.el-message-box__title{color:#1e1f21;font-weight:500}.el-input-group--append{position:relative}.el-input-group--append .el-input__inner{border-bottom-right-radius:8px;border-top-right-radius:8px}.el-input-group__append,.el-input-group__prepend{background-color:#f2f2f2;border:0;border-radius:5px;display:grid;height:30px;padding:0;position:absolute;text-align:center;top:5px;width:30px}.el-input-group__append:hover,.el-input-group__prepend:hover{background-color:#e0e0e0}.el-input-group__append .el-icon-more,.el-input-group__prepend .el-icon-more{transform:rotate(90deg)}.el-input-group__append .el-button,.el-input-group__prepend .el-button{margin:0;padding:0}.el-input-group__append{right:4px}.el-input-group__prepend{left:4px}.el-table__fixed,.el-table__fixed-right{background-color:#fff}.el-table__fixed-right:before,.el-table__fixed:before{display:none}.el-radio-button__orig-radio:checked+.el-radio-button__inner{box-shadow:none}.input-with-select{align-items:center;display:flex}.input-with-select.el-input-group--append .el-input__inner{border-bottom-right-radius:0;border-top-right-radius:0}.input-with-select .el-select{background-color:#fff;border:1px solid #dadbdd;height:40px;margin:0}.input-with-select .el-select .el-input__inner{border:0}.input-with-select .el-input-group__append,.input-with-select .el-input-group__prepend{border-radius:0;flex:1;height:auto;left:0;position:inherit;top:0;width:auto}.input-with-select .el-input-group__append:hover,.input-with-select .el-input-group__prepend:hover{background-color:transparent}.input-with-select .el-input-group__prepend .el-select{border-bottom-left-radius:8px;border-right:0;border-top-left-radius:8px}.input-with-select .el-input-group__append .el-select{border-bottom-right-radius:8px;border-left:0;border-top-right-radius:8px}.chain-select-upload-button .el-input-group__append,.chain-select-upload-button .el-input-group__prepend{width:70px}.el-radio-group-dark .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1e1f21;border-color:#1e1f21}.el-radio-group-info .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;border-color:#4b4c4d}.el-table thead .cell{color:#1e1f21;font-weight:500}.el-table--border{border-radius:6px}.ff-input-s1 .el-input .el-select__caret{color:#1e1f21}.ff-input-s1 .el-input .el-icon-arrow-up:before{font-weight:600}.el-radio-button--small:first-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-radio-button--small:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-input--mini .el-input__inner{border-radius:4px}.el-input--large .el-input__inner{font-size:16px;height:48px;padding-left:20px;padding-right:20px}.el-input-number--mini{line-height:28px}.el-input-number--mini .el-input-number__decrease{border-radius:4px 0 0 4px;left:1px}.el-input-number--mini .el-input-number__increase{border-radius:0 4px 4px 0}.el-input-number__decrease,.el-input-number__increase{background-color:#f2f2f2}.el-dialog__header .title+.text{margin-top:6px}.el-dialog__header .text{margin-bottom:0}.el-dialog__header_group{align-items:center;display:flex}.el-checkbox-horizontal .el-checkbox{display:flex}.el-checkbox-horizontal .el-checkbox__input{align-self:flex-start;padding-top:3px}.el-skeleton__item{border-radius:4px}@media (min-width:1281px){.ff_screen_editor .form_internal_menu_inner{flex-direction:row}.ff_screen_editor .form_internal_menu_inner .ff_menu{margin-left:0;padding-bottom:0}.ff_screen_conversational_design .ff_menu_back,.ff_screen_editor .ff_menu_back,.ff_screen_entries .ff_menu_back,.ff_screen_inventory_list .ff_menu_back,.ff_screen_msformentries .ff_menu_back,.ff_screen_settings .ff_menu_back{display:flex}.option-fields-section--content .v-row{flex-direction:row}.option-fields-section--content .v-col--50{padding-bottom:0;width:50%}.form-editor--body{padding:50px;width:65%}.form-editor--sidebar{width:35%}}@media (min-width:769px){.ff_header{align-items:center;flex-direction:row}.ff_header_group{margin-right:32px}.ff_menu{display:flex;margin-top:0}.ff_menu_toggle{display:none}.ff_form_wrap{padding-left:24px;padding-right:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_editor,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:0}}@media (min-width:1025px){.all-forms-search,.ff_entries_search_wrap{width:270px}.ff_entries_search_wrap{margin-left:auto}.all-forms-select{width:250px}.ff_layout_section_sidebar{width:280px}.ff_layout_section_container,.ff_layout_section_sidebar{padding:24px}.fluent_activation_wrapper .fluentform_label{width:470px}}@media (max-width:768px){.form_internal_menu{margin-left:-10px}.form_internal_menu ul.ff_setting_menu{float:right;padding-right:10px!important}.form_internal_menu ul.ff_setting_menu li a{padding:10px 3px!important}.form_internal_menu .ff_form_name_inner{max-width:100px}.form_internal_menu #switchScreen{margin-right:0;margin-top:14px}.ff_nav_action{float:right!important;text-align:left!important}input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{min-height:30px}.ff_form_main_nav .plugin-name{display:none}.row-actions{display:inline-block!important}.el-form .el-form-item .el-form-item__label{width:100%!important}.el-form .el-form-item .el-form-item__content{margin-left:0!important}.el-tabs__content{padding:20px 10px!important}.wpf_each_entry a{word-break:break-all}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu{top:0!important}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{display:block}.form_internal_menu_inner{background:#fff;border-radius:8px;box-shadow:0 1px 10px rgba(0,0,0,.2);display:none;flex-direction:column;padding:20px;position:absolute;right:20px;top:38px;width:300px;z-index:9999}.form_internal_menu_inner.active{display:flex}.ff_form_name{padding-bottom:10px;padding-top:10px}.ff_screen_editor .form_internal_menu_inner .ff_menu,.form_internal_menu .ff-navigation-right{margin-left:0}.ff_menu{align-items:flex-start;flex-direction:column;margin-bottom:10px}.ff_menu li{width:100%}.ff_menu li a{display:block;max-width:100%!important}.form_internal_menu .ff-navigation-right{align-items:flex-start}.ff-navigation-right{flex-direction:column}.form_internal_menu .el-button,.form_internal_menu .ff_shortcode_btn{margin-bottom:10px;margin-right:0}.form_internal_menu .ff-navigation-right .ff_more_menu{bottom:0;right:0;top:auto;transform:translateY(0)}.ff_screen_conversational_design .ff_menu,.ff_screen_editor .ff_menu,.ff_screen_entries .ff_menu,.ff_screen_inventory_list .ff_menu,.ff_screen_msformentries .ff_menu,.ff_screen_settings .ff_menu{padding-left:0;padding-right:0}.ff_tools_wrap .ff_settings_sidebar_wrap{height:100%}.ff_settings_sidebar_wrap{flex-shrink:0;left:-240px;position:absolute;transition:.3s;z-index:999}.ff_settings_sidebar_wrap.active{left:-10px}.ff_settings_sidebar_wrap.active .ff_layout_section_sidebar{box-shadow:2px 1px 10px 0 rgba(30,31,33,.1)}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle{right:-18px}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle .ff-icon:before{content:"\e919"}.ff_sidebar_toggle{display:flex}.ff_header{margin-left:-10px;position:relative}.ff_header .global-search-menu-button{position:absolute;right:60px;top:12px}.conditional-logic{flex-direction:column}.conditional-logic>*{width:100%}.el-radio-button-group{border:0}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner,.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner,.el-radio-button-group .el-radio-button__inner{border-radius:4px}}@media (max-width:425px){label.el-checkbox{display:inline-flex}.el-checkbox__label{white-space:normal}.el-checkbox__input{line-height:1.6}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{margin-right:0}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right a,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right button,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right span{font-size:10px;margin:0 3px;padding:5px 4px!important}#ff_form_entries_app .ff_nav_top .ff_nav_action,#ff_form_entries_app .ff_nav_top .ff_nav_title{margin-bottom:10px;width:100%}.form_internal_menu{margin:0 -10px;width:auto}.form_internal_menu ul.ff_setting_menu li a{font-size:11px}.ff_form_application_container{margin-top:0!important}.ff_form_main_nav .ninja-tab{font-size:12px;margin:0;padding:10px 5px}ul.el-pager{display:none!important}button.el-button.pull-right{float:left!important}.entry_header h3{clear:both;display:block;width:100%!important}.v-row .v-col--33{margin-bottom:15px;padding-right:0;width:100%!important}.v-row .v-col--33:last-child{margin-bottom:0}.option-fields-section--content{padding:15px 5px}.ff-add-confirmation-wrap .el-radio.is-bordered{margin-bottom:10px;margin-right:10px}.ff-add-confirmation-wrap .el-radio.is-bordered+.el-radio.is-bordered{margin-left:0}.ff-form-item-flex{flex-wrap:wrap;gap:10px}.ff_pagination_wrap.mt-4{margin-top:0!important}.ff_pagination{flex-wrap:wrap;margin-top:24px}.ff_pagination .el-pagination__jump{margin:10px 0 0}.ff_all_entries .ff_section_head_content{margin-top:24px}.ff_all_entries .ff_section_head_content .ff_advanced_search{right:unset}.ff_all_entries .ff_entries_details .ff_section_head .lead-title{margin-bottom:10px!important}.ff_all_entries .ff_entries_details .ff_radio_group_wrap{margin-bottom:10px;margin-top:10px}.ff_all_entries .ff_entries_details .ff_radio_group_wrap .ff_radio_group_s2{width:100%}}.el-popover{text-align:left!important;word-break:inherit!important}.ff_documentaion_wrapper .el-col{margin-bottom:24px}.ff_upgrade_btn_large{border-color:#fff;color:#1a7efb;font-size:16px;font-weight:600;padding:18px 24px;text-transform:uppercase}.has-mask{position:relative;z-index:1}.mask{z-index:-1}.mask,.mask-1{height:100%;left:0;position:absolute;top:0;width:100%}.mask-1{background-image:url(../images/grid-shape.png?b12daadc3a0a644f1d2df47851c3dde8);background-position:50%;background-repeat:no-repeat}.mask-2{background-image:url(../images/shape.png?4652d2db152400ac6baa71685d89ece1);left:50%;top:20px}.mask-2,.mask-3{background-repeat:no-repeat;height:52px;position:absolute;width:63px}.mask-3{background-image:url(../images/shape-2.png?aaa6a6c1eeea29c475a320494a9d7a0f);left:26px;top:14px}.ff_addon_wrapper{margin:45px auto;max-width:950px}.ff_addon_wrapper .ff_addon_header p{font-size:16px}.ff_addon_wrapper .ff_addon_banner{border-radius:8px;max-width:100%}.ff_addon_wrapper .ff_addon_btn{background:#fff;border:2px solid #c716c1;border-radius:8px;color:#c716c1;cursor:pointer;display:inline-block;font-size:18px;padding:14px 30px;text-decoration:none}.ff_addon_wrapper .ff_addon_btn.ff_invert{background:#c716c1;color:#fff}.ff_addon_wrapper .ff_addon_btn.ff_invert:hover{background:#fff;color:#c716c1}.ff_addon_wrapper .ff_addon_btn:hover{background:#c716c1;color:#fff} assets/css/fluent-forms-admin-rtl.css000064400000027251147600120010013654 0ustar00.splitpanes{display:flex;height:100%;width:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;-moz-user-select:none;user-select:none}.splitpanes__pane{height:100%;overflow:hidden;width:100%}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{cursor:col-resize;min-width:1px}.splitpanes--horizontal>.splitpanes__splitter{cursor:row-resize;min-height:1px}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;box-sizing:border-box;flex-shrink:0;position:relative}.splitpanes.default-theme .splitpanes__splitter:after,.splitpanes.default-theme .splitpanes__splitter:before{background-color:#00000026;content:"";right:50%;position:absolute;top:50%;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:after,.splitpanes.default-theme .splitpanes__splitter:hover:before{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme .splitpanes--vertical>.splitpanes__splitter,.default-theme.splitpanes--vertical>.splitpanes__splitter{border-right:1px solid #eee;margin-right:-1px;width:7px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{height:30px;transform:translateY(-50%);width:1px}.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{margin-right:-2px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:after{margin-right:1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter,.default-theme.splitpanes--horizontal>.splitpanes__splitter{border-top:1px solid #eee;height:7px;margin-top:-1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{height:1px;transform:translate(50%);width:30px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px} .v-row{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:left;margin-left:-15px}.v-row>[class*=v-col--]{box-sizing:border-box}.v-row .v-col--auto{width:100%}.v-row .v-col--100{padding-left:15px;width:100%}.v-row .v-col--100:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--100{width:100%}.v-row .v-col--95{padding-left:15px;width:95%}.v-row .v-col--95:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--95{width:95%}.v-row .v-col--90{padding-left:15px;width:90%}.v-row .v-col--90:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--90{width:90%}.v-row .v-col--85{padding-left:15px;width:85%}.v-row .v-col--85:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--85{width:85%}.v-row .v-col--80{padding-left:15px;width:80%}.v-row .v-col--80:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--80{width:80%}.v-row .v-col--75{padding-left:15px;width:75%}.v-row .v-col--75:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--75{width:75%}.v-row .v-col--70{padding-left:15px;width:70%}.v-row .v-col--70:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--70{width:70%}.v-row .v-col--66{padding-left:15px;width:66.66666666666666%}.v-row .v-col--66:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--66{width:66.66666666666666%}.v-row .v-col--65{padding-left:15px;width:65%}.v-row .v-col--65:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--65{width:65%}.v-row .v-col--60{padding-left:15px;width:60%}.v-row .v-col--60:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--60{width:60%}.v-row .v-col--55{padding-left:15px;width:55%}.v-row .v-col--55:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--55{width:55%}.v-row .v-col--50{padding-left:15px;width:50%}.v-row .v-col--50:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--50{width:50%}.v-row .v-col--45{padding-left:15px;width:45%}.v-row .v-col--45:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--45{width:45%}.v-row .v-col--40{padding-left:15px;width:40%}.v-row .v-col--40:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--40{width:40%}.v-row .v-col--35{padding-left:15px;width:35%}.v-row .v-col--35:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--35{width:35%}.v-row .v-col--33{padding-left:15px;width:33.333333333333336%}.v-row .v-col--33:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--33{width:33.333333333333336%}.v-row .v-col--30{padding-left:15px;width:30%}.v-row .v-col--30:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--30{width:30%}.v-row .v-col--25{padding-left:15px;width:25%}.v-row .v-col--25:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--25{width:25%}.v-row .v-col--20{padding-left:15px;width:20%}.v-row .v-col--20:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--20{width:20%}.v-row .v-col--15{padding-left:15px;width:15%}.v-row .v-col--15:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--15{width:15%}.v-row .v-col--10{padding-left:15px;width:10%}.v-row .v-col--10:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--10{width:10%}.v-row .v-col--5{padding-left:15px;width:5%}.v-row .v-col--5:last-child{padding-left:0}.v-row.v-row--no-gutter .v-col--5{width:5%}.v-row .v-col--auto:last-child,.v-row .v-col--auto:last-child~.v-col--auto{width:100%/1;width:100%}.v-row.v-row--no-gutter .v-col--auto:last-child,.v-row.v-row--no-gutter .v-col--auto:last-child~.v-col--auto{width:100%/1}.v-row .v-col--auto:nth-last-child(2),.v-row .v-col--auto:nth-last-child(2)~.v-col--auto{width:100%/2;width:calc(50% - 7.5px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(2),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(2)~.v-col--auto{width:100%/2}.v-row .v-col--auto:nth-last-child(3),.v-row .v-col--auto:nth-last-child(3)~.v-col--auto{width:100%/3;width:calc(33.33333% - 10px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(3),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(3)~.v-col--auto{width:100%/3}.v-row .v-col--auto:nth-last-child(4),.v-row .v-col--auto:nth-last-child(4)~.v-col--auto{width:100%/4;width:calc(25% - 11.25px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(4),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(4)~.v-col--auto{width:100%/4}.v-row .v-col--auto:nth-last-child(5),.v-row .v-col--auto:nth-last-child(5)~.v-col--auto{width:100%/5;width:calc(20% - 12px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(5),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(5)~.v-col--auto{width:100%/5}.v-row .v-col--auto:nth-last-child(6),.v-row .v-col--auto:nth-last-child(6)~.v-col--auto{width:100%/6;width:calc(16.66667% - 12.5px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(6),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(6)~.v-col--auto{width:100%/6}.v-row .v-col--auto:nth-last-child(7),.v-row .v-col--auto:nth-last-child(7)~.v-col--auto{width:100%/7;width:calc(14.28571% - 12.85714px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(7),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(7)~.v-col--auto{width:100%/7}.v-row .v-col--auto:nth-last-child(8),.v-row .v-col--auto:nth-last-child(8)~.v-col--auto{width:100%/8;width:calc(12.5% - 13.125px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(8),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(8)~.v-col--auto{width:100%/8}.v-row .v-col--auto:nth-last-child(9),.v-row .v-col--auto:nth-last-child(9)~.v-col--auto{width:100%/9;width:calc(11.11111% - 13.33333px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(9),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(9)~.v-col--auto{width:100%/9}.v-row .v-col--auto:nth-last-child(10),.v-row .v-col--auto:nth-last-child(10)~.v-col--auto{width:100%/10;width:calc(10% - 13.5px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(10),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(10)~.v-col--auto{width:100%/10}.v-row .v-col--auto:nth-last-child(11),.v-row .v-col--auto:nth-last-child(11)~.v-col--auto{width:100%/11;width:calc(9.09091% - 13.63636px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(11),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(11)~.v-col--auto{width:100%/11}.v-row .v-col--auto:nth-last-child(12),.v-row .v-col--auto:nth-last-child(12)~.v-col--auto{width:100%/12;width:calc(8.33333% - 13.75px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(12),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(12)~.v-col--auto{width:100%/12}.v-row .v-col--auto:nth-last-child(13),.v-row .v-col--auto:nth-last-child(13)~.v-col--auto{width:100%/13;width:calc(7.69231% - 13.84615px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(13),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(13)~.v-col--auto{width:100%/13}.v-row .v-col--auto:nth-last-child(14),.v-row .v-col--auto:nth-last-child(14)~.v-col--auto{width:100%/14;width:calc(7.14286% - 13.92857px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(14),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(14)~.v-col--auto{width:100%/14}.v-row .v-col--auto:nth-last-child(15),.v-row .v-col--auto:nth-last-child(15)~.v-col--auto{width:100%/15;width:calc(6.66667% - 14px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(15),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(15)~.v-col--auto{width:100%/15}.v-row .v-col--auto:nth-last-child(16),.v-row .v-col--auto:nth-last-child(16)~.v-col--auto{width:100%/16;width:calc(6.25% - 14.0625px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(16),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(16)~.v-col--auto{width:100%/16}.v-row .v-col--auto:nth-last-child(17),.v-row .v-col--auto:nth-last-child(17)~.v-col--auto{width:100%/17;width:calc(5.88235% - 14.11765px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(17),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(17)~.v-col--auto{width:100%/17}.v-row .v-col--auto:nth-last-child(18),.v-row .v-col--auto:nth-last-child(18)~.v-col--auto{width:100%/18;width:calc(5.55556% - 14.16667px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(18),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(18)~.v-col--auto{width:100%/18}.v-row .v-col--auto:nth-last-child(19),.v-row .v-col--auto:nth-last-child(19)~.v-col--auto{width:100%/19;width:calc(5.26316% - 14.21053px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(19),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(19)~.v-col--auto{width:100%/19}.v-row .v-col--auto:nth-last-child(20),.v-row .v-col--auto:nth-last-child(20)~.v-col--auto{width:100%/20;width:calc(5% - 14.25px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(20),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(20)~.v-col--auto{width:100%/20}.v-row .v-col--auto:nth-last-child(21),.v-row .v-col--auto:nth-last-child(21)~.v-col--auto{width:100%/21;width:calc(4.7619% - 14.28571px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(21),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(21)~.v-col--auto{width:100%/21}.default-theme.splitpanes .splitpanes__splitter{border-right:none}.splitpanes.default-theme .splitpanes__pane{background-color:transparent} assets/css/fluent-forms-admin-sass.css000064400000351276147600120010014033 0ustar00/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none} @font-face{font-display:"auto";font-family:element-icons;font-style:normal;font-weight:400;src:url(../fonts/element-icons.woff?313f7dacf2076822059d2dca26dedfc6) format("woff"),url(../fonts/element-icons.ttf?4520188144a17fb24a6af28a70dae0ce) format("truetype")}[class*=" el-icon-"],[class^=el-icon-]{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:element-icons!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;vertical-align:baseline}.el-icon-ice-cream-round:before{content:"\e6a0"}.el-icon-ice-cream-square:before{content:"\e6a3"}.el-icon-lollipop:before{content:"\e6a4"}.el-icon-potato-strips:before{content:"\e6a5"}.el-icon-milk-tea:before{content:"\e6a6"}.el-icon-ice-drink:before{content:"\e6a7"}.el-icon-ice-tea:before{content:"\e6a9"}.el-icon-coffee:before{content:"\e6aa"}.el-icon-orange:before{content:"\e6ab"}.el-icon-pear:before{content:"\e6ac"}.el-icon-apple:before{content:"\e6ad"}.el-icon-cherry:before{content:"\e6ae"}.el-icon-watermelon:before{content:"\e6af"}.el-icon-grape:before{content:"\e6b0"}.el-icon-refrigerator:before{content:"\e6b1"}.el-icon-goblet-square-full:before{content:"\e6b2"}.el-icon-goblet-square:before{content:"\e6b3"}.el-icon-goblet-full:before{content:"\e6b4"}.el-icon-goblet:before{content:"\e6b5"}.el-icon-cold-drink:before{content:"\e6b6"}.el-icon-coffee-cup:before{content:"\e6b8"}.el-icon-water-cup:before{content:"\e6b9"}.el-icon-hot-water:before{content:"\e6ba"}.el-icon-ice-cream:before{content:"\e6bb"}.el-icon-dessert:before{content:"\e6bc"}.el-icon-sugar:before{content:"\e6bd"}.el-icon-tableware:before{content:"\e6be"}.el-icon-burger:before{content:"\e6bf"}.el-icon-knife-fork:before{content:"\e6c1"}.el-icon-fork-spoon:before{content:"\e6c2"}.el-icon-chicken:before{content:"\e6c3"}.el-icon-food:before{content:"\e6c4"}.el-icon-dish-1:before{content:"\e6c5"}.el-icon-dish:before{content:"\e6c6"}.el-icon-moon-night:before{content:"\e6ee"}.el-icon-moon:before{content:"\e6f0"}.el-icon-cloudy-and-sunny:before{content:"\e6f1"}.el-icon-partly-cloudy:before{content:"\e6f2"}.el-icon-cloudy:before{content:"\e6f3"}.el-icon-sunny:before{content:"\e6f6"}.el-icon-sunset:before{content:"\e6f7"}.el-icon-sunrise-1:before{content:"\e6f8"}.el-icon-sunrise:before{content:"\e6f9"}.el-icon-heavy-rain:before{content:"\e6fa"}.el-icon-lightning:before{content:"\e6fb"}.el-icon-light-rain:before{content:"\e6fc"}.el-icon-wind-power:before{content:"\e6fd"}.el-icon-baseball:before{content:"\e712"}.el-icon-soccer:before{content:"\e713"}.el-icon-football:before{content:"\e715"}.el-icon-basketball:before{content:"\e716"}.el-icon-ship:before{content:"\e73f"}.el-icon-truck:before{content:"\e740"}.el-icon-bicycle:before{content:"\e741"}.el-icon-mobile-phone:before{content:"\e6d3"}.el-icon-service:before{content:"\e6d4"}.el-icon-key:before{content:"\e6e2"}.el-icon-unlock:before{content:"\e6e4"}.el-icon-lock:before{content:"\e6e5"}.el-icon-watch:before{content:"\e6fe"}.el-icon-watch-1:before{content:"\e6ff"}.el-icon-timer:before{content:"\e702"}.el-icon-alarm-clock:before{content:"\e703"}.el-icon-map-location:before{content:"\e704"}.el-icon-delete-location:before{content:"\e705"}.el-icon-add-location:before{content:"\e706"}.el-icon-location-information:before{content:"\e707"}.el-icon-location-outline:before{content:"\e708"}.el-icon-location:before{content:"\e79e"}.el-icon-place:before{content:"\e709"}.el-icon-discover:before{content:"\e70a"}.el-icon-first-aid-kit:before{content:"\e70b"}.el-icon-trophy-1:before{content:"\e70c"}.el-icon-trophy:before{content:"\e70d"}.el-icon-medal:before{content:"\e70e"}.el-icon-medal-1:before{content:"\e70f"}.el-icon-stopwatch:before{content:"\e710"}.el-icon-mic:before{content:"\e711"}.el-icon-copy-document:before{content:"\e718"}.el-icon-full-screen:before{content:"\e719"}.el-icon-switch-button:before{content:"\e71b"}.el-icon-aim:before{content:"\e71c"}.el-icon-crop:before{content:"\e71d"}.el-icon-odometer:before{content:"\e71e"}.el-icon-time:before{content:"\e71f"}.el-icon-bangzhu:before{content:"\e724"}.el-icon-close-notification:before{content:"\e726"}.el-icon-microphone:before{content:"\e727"}.el-icon-turn-off-microphone:before{content:"\e728"}.el-icon-position:before{content:"\e729"}.el-icon-postcard:before{content:"\e72a"}.el-icon-message:before{content:"\e72b"}.el-icon-chat-line-square:before{content:"\e72d"}.el-icon-chat-dot-square:before{content:"\e72e"}.el-icon-chat-dot-round:before{content:"\e72f"}.el-icon-chat-square:before{content:"\e730"}.el-icon-chat-line-round:before{content:"\e731"}.el-icon-chat-round:before{content:"\e732"}.el-icon-set-up:before{content:"\e733"}.el-icon-turn-off:before{content:"\e734"}.el-icon-open:before{content:"\e735"}.el-icon-connection:before{content:"\e736"}.el-icon-link:before{content:"\e737"}.el-icon-cpu:before{content:"\e738"}.el-icon-thumb:before{content:"\e739"}.el-icon-female:before{content:"\e73a"}.el-icon-male:before{content:"\e73b"}.el-icon-guide:before{content:"\e73c"}.el-icon-news:before{content:"\e73e"}.el-icon-price-tag:before{content:"\e744"}.el-icon-discount:before{content:"\e745"}.el-icon-wallet:before{content:"\e747"}.el-icon-coin:before{content:"\e748"}.el-icon-money:before{content:"\e749"}.el-icon-bank-card:before{content:"\e74a"}.el-icon-box:before{content:"\e74b"}.el-icon-present:before{content:"\e74c"}.el-icon-sell:before{content:"\e6d5"}.el-icon-sold-out:before{content:"\e6d6"}.el-icon-shopping-bag-2:before{content:"\e74d"}.el-icon-shopping-bag-1:before{content:"\e74e"}.el-icon-shopping-cart-2:before{content:"\e74f"}.el-icon-shopping-cart-1:before{content:"\e750"}.el-icon-shopping-cart-full:before{content:"\e751"}.el-icon-smoking:before{content:"\e752"}.el-icon-no-smoking:before{content:"\e753"}.el-icon-house:before{content:"\e754"}.el-icon-table-lamp:before{content:"\e755"}.el-icon-school:before{content:"\e756"}.el-icon-office-building:before{content:"\e757"}.el-icon-toilet-paper:before{content:"\e758"}.el-icon-notebook-2:before{content:"\e759"}.el-icon-notebook-1:before{content:"\e75a"}.el-icon-files:before{content:"\e75b"}.el-icon-collection:before{content:"\e75c"}.el-icon-receiving:before{content:"\e75d"}.el-icon-suitcase-1:before{content:"\e760"}.el-icon-suitcase:before{content:"\e761"}.el-icon-film:before{content:"\e763"}.el-icon-collection-tag:before{content:"\e765"}.el-icon-data-analysis:before{content:"\e766"}.el-icon-pie-chart:before{content:"\e767"}.el-icon-data-board:before{content:"\e768"}.el-icon-data-line:before{content:"\e76d"}.el-icon-reading:before{content:"\e769"}.el-icon-magic-stick:before{content:"\e76a"}.el-icon-coordinate:before{content:"\e76b"}.el-icon-mouse:before{content:"\e76c"}.el-icon-brush:before{content:"\e76e"}.el-icon-headset:before{content:"\e76f"}.el-icon-umbrella:before{content:"\e770"}.el-icon-scissors:before{content:"\e771"}.el-icon-mobile:before{content:"\e773"}.el-icon-attract:before{content:"\e774"}.el-icon-monitor:before{content:"\e775"}.el-icon-search:before{content:"\e778"}.el-icon-takeaway-box:before{content:"\e77a"}.el-icon-paperclip:before{content:"\e77d"}.el-icon-printer:before{content:"\e77e"}.el-icon-document-add:before{content:"\e782"}.el-icon-document:before{content:"\e785"}.el-icon-document-checked:before{content:"\e786"}.el-icon-document-copy:before{content:"\e787"}.el-icon-document-delete:before{content:"\e788"}.el-icon-document-remove:before{content:"\e789"}.el-icon-tickets:before{content:"\e78b"}.el-icon-folder-checked:before{content:"\e77f"}.el-icon-folder-delete:before{content:"\e780"}.el-icon-folder-remove:before{content:"\e781"}.el-icon-folder-add:before{content:"\e783"}.el-icon-folder-opened:before{content:"\e784"}.el-icon-folder:before{content:"\e78a"}.el-icon-edit-outline:before{content:"\e764"}.el-icon-edit:before{content:"\e78c"}.el-icon-date:before{content:"\e78e"}.el-icon-c-scale-to-original:before{content:"\e7c6"}.el-icon-view:before{content:"\e6ce"}.el-icon-loading:before{content:"\e6cf"}.el-icon-rank:before{content:"\e6d1"}.el-icon-sort-down:before{content:"\e7c4"}.el-icon-sort-up:before{content:"\e7c5"}.el-icon-sort:before{content:"\e6d2"}.el-icon-finished:before{content:"\e6cd"}.el-icon-refresh-left:before{content:"\e6c7"}.el-icon-refresh-right:before{content:"\e6c8"}.el-icon-refresh:before{content:"\e6d0"}.el-icon-video-play:before{content:"\e7c0"}.el-icon-video-pause:before{content:"\e7c1"}.el-icon-d-arrow-right:before{content:"\e6dc"}.el-icon-d-arrow-left:before{content:"\e6dd"}.el-icon-arrow-up:before{content:"\e6e1"}.el-icon-arrow-down:before{content:"\e6df"}.el-icon-arrow-right:before{content:"\e6e0"}.el-icon-arrow-left:before{content:"\e6de"}.el-icon-top-right:before{content:"\e6e7"}.el-icon-top-left:before{content:"\e6e8"}.el-icon-top:before{content:"\e6e6"}.el-icon-bottom:before{content:"\e6eb"}.el-icon-right:before{content:"\e6e9"}.el-icon-back:before{content:"\e6ea"}.el-icon-bottom-right:before{content:"\e6ec"}.el-icon-bottom-left:before{content:"\e6ed"}.el-icon-caret-top:before{content:"\e78f"}.el-icon-caret-bottom:before{content:"\e790"}.el-icon-caret-right:before{content:"\e791"}.el-icon-caret-left:before{content:"\e792"}.el-icon-d-caret:before{content:"\e79a"}.el-icon-share:before{content:"\e793"}.el-icon-menu:before{content:"\e798"}.el-icon-s-grid:before{content:"\e7a6"}.el-icon-s-check:before{content:"\e7a7"}.el-icon-s-data:before{content:"\e7a8"}.el-icon-s-opportunity:before{content:"\e7aa"}.el-icon-s-custom:before{content:"\e7ab"}.el-icon-s-claim:before{content:"\e7ad"}.el-icon-s-finance:before{content:"\e7ae"}.el-icon-s-comment:before{content:"\e7af"}.el-icon-s-flag:before{content:"\e7b0"}.el-icon-s-marketing:before{content:"\e7b1"}.el-icon-s-shop:before{content:"\e7b4"}.el-icon-s-open:before{content:"\e7b5"}.el-icon-s-management:before{content:"\e7b6"}.el-icon-s-ticket:before{content:"\e7b7"}.el-icon-s-release:before{content:"\e7b8"}.el-icon-s-home:before{content:"\e7b9"}.el-icon-s-promotion:before{content:"\e7ba"}.el-icon-s-operation:before{content:"\e7bb"}.el-icon-s-unfold:before{content:"\e7bc"}.el-icon-s-fold:before{content:"\e7a9"}.el-icon-s-platform:before{content:"\e7bd"}.el-icon-s-order:before{content:"\e7be"}.el-icon-s-cooperation:before{content:"\e7bf"}.el-icon-bell:before{content:"\e725"}.el-icon-message-solid:before{content:"\e799"}.el-icon-video-camera:before{content:"\e772"}.el-icon-video-camera-solid:before{content:"\e796"}.el-icon-camera:before{content:"\e779"}.el-icon-camera-solid:before{content:"\e79b"}.el-icon-download:before{content:"\e77c"}.el-icon-upload2:before{content:"\e77b"}.el-icon-upload:before{content:"\e7c3"}.el-icon-picture-outline-round:before{content:"\e75f"}.el-icon-picture-outline:before{content:"\e75e"}.el-icon-picture:before{content:"\e79f"}.el-icon-close:before{content:"\e6db"}.el-icon-check:before{content:"\e6da"}.el-icon-plus:before{content:"\e6d9"}.el-icon-minus:before{content:"\e6d8"}.el-icon-help:before{content:"\e73d"}.el-icon-s-help:before{content:"\e7b3"}.el-icon-circle-close:before{content:"\e78d"}.el-icon-circle-check:before{content:"\e720"}.el-icon-circle-plus-outline:before{content:"\e723"}.el-icon-remove-outline:before{content:"\e722"}.el-icon-zoom-out:before{content:"\e776"}.el-icon-zoom-in:before{content:"\e777"}.el-icon-error:before{content:"\e79d"}.el-icon-success:before{content:"\e79c"}.el-icon-circle-plus:before{content:"\e7a0"}.el-icon-remove:before{content:"\e7a2"}.el-icon-info:before{content:"\e7a1"}.el-icon-question:before{content:"\e7a4"}.el-icon-warning-outline:before{content:"\e6c9"}.el-icon-warning:before{content:"\e7a3"}.el-icon-goods:before{content:"\e7c2"}.el-icon-s-goods:before{content:"\e7b2"}.el-icon-star-off:before{content:"\e717"}.el-icon-star-on:before{content:"\e797"}.el-icon-more-outline:before{content:"\e6cc"}.el-icon-more:before{content:"\e794"}.el-icon-phone-outline:before{content:"\e6cb"}.el-icon-phone:before{content:"\e795"}.el-icon-user:before{content:"\e6e3"}.el-icon-user-solid:before{content:"\e7a5"}.el-icon-setting:before{content:"\e6ca"}.el-icon-s-tools:before{content:"\e7ac"}.el-icon-delete:before{content:"\e6d7"}.el-icon-delete-solid:before{content:"\e7c9"}.el-icon-eleme:before{content:"\e7c7"}.el-icon-platform-eleme:before{content:"\e7ca"}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}} @font-face{font-family:fluentform;font-style:normal;font-weight:400;src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd);src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd?#iefix) format("embedded-opentype"),url(../fonts/fluentform.woff?31c9335ad614611f342d70917260470e) format("woff"),url(../fonts/fluentform.ttf?5fd4a17c106b6a8cae5c741ddbbe132c) format("truetype"),url(../fonts/fluentform.svg?1d0875320e0e3980ae21f2d18c21897a#fluentform) format("svg")}[data-icon]:before{content:attr(data-icon)}[class*=" icon-"]:before,[class^=icon-]:before,[data-icon]:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:fluentform!important;font-style:normal!important;font-variant:normal!important;font-weight:400!important;line-height:1;text-transform:none!important}.icon-trash-o:before{content:"\e000"}.icon-pencil:before{content:"\e001"}.icon-clone:before{content:"\e002"}.icon-arrows:before{content:"\e003"}.icon-user:before{content:"\e004"}.icon-text-width:before{content:"\e005"}.icon-unlock-alt:before{content:"\e006"}.icon-paragraph:before{content:"\e007"}.icon-columns:before{content:"\e008"}.icon-plus-circle:before{content:"\e009"}.icon-minus-circle:before{content:"\e00a"}.icon-link:before{content:"\e00b"}.icon-envelope-o:before{content:"\e00c"}.icon-caret-square-o-down:before{content:"\e00d"}.icon-list-ul:before{content:"\e00e"}.icon-dot-circle-o:before{content:"\e00f"}.icon-check-square-o:before{content:"\e010"}.icon-eye-slash:before{content:"\e011"}.icon-picture-o:before{content:"\e012"}.icon-calendar-o:before{content:"\e013"}.icon-upload:before{content:"\e014"}.icon-globe:before{content:"\e015"}.icon-pound:before{content:"\e016"}.icon-map-marker:before{content:"\e017"}.icon-credit-card:before{content:"\e018"}.icon-step-forward:before{content:"\e019"}.icon-code:before{content:"\e01a"}.icon-html5:before{content:"\e01b"}.icon-qrcode:before{content:"\e01c"}.icon-certificate:before{content:"\e01d"}.icon-star-half-o:before{content:"\e01e"}.icon-eye:before{content:"\e01f"}.icon-save:before{content:"\e020"}.icon-puzzle-piece:before{content:"\e021"}.icon-slack:before{content:"\e022"}.icon-trash:before{content:"\e023"}.icon-lock:before{content:"\e024"}.icon-chevron-down:before{content:"\e025"}.icon-chevron-up:before{content:"\e026"}.icon-chevron-right:before{content:"\e027"}.icon-chevron-left:before{content:"\e028"}.icon-circle-o:before{content:"\e029"}.icon-cog:before{content:"\e02a"}.icon-info:before{content:"\e02c"}.icon-info-circle:before{content:"\e02b"}.icon-ink-pen:before{content:"\e02d"}.icon-keyboard-o:before{content:"\e02e"} @font-face{font-family:fluentformeditors;font-style:normal;font-weight:400;src:url(../fonts/fluentformeditors.eot?695c683f9bdc8870085152aeae450705);src:url(../fonts/fluentformeditors.eot?695c683f9bdc8870085152aeae450705?#iefix) format("embedded-opentype"),url(../fonts/fluentformeditors.woff?b6a6f9b1e3cb2d1ffcae94da6c41267c) format("woff"),url(../fonts/fluentformeditors.ttf?53ded98b085397a9b532636159850690) format("truetype"),url(../fonts/fluentformeditors.svg?cba12fd827161d89bb293c99497b6f8d#fluentformeditors) format("svg")}[class*=" ff-edit-"]:before,[class^=ff-edit-]:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:fluentformeditors!important;font-style:normal!important;font-variant:normal!important;font-weight:400!important;line-height:1;text-transform:none!important}.ff-icon-lock:before{font-size:30px}.ff-edit-column-2:before{content:"\62"}.ff-edit-rating:before{content:"\63"}.ff-edit-checkable-grid:before{content:"\64"}.ff-edit-hidden-field:before{content:"\65"}.ff-edit-section-break:before{content:"\66"}.ff-edit-recaptha:before{content:"\67"}.ff-edit-html:before{content:"\68"}.ff-edit-shortcode:before{content:"\69"}.ff-edit-terms-condition:before{content:"\6a"}.ff-edit-action-hook:before{content:"\6b"}.ff-edit-step:before{content:"\6c"}.ff-edit-name:before{content:"\6d"}.ff-edit-email:before{content:"\6e"}.ff-edit-text:before{content:"\6f"}.ff-edit-mask:before{content:"\70"}.ff-edit-textarea:before{content:"\71"}.ff-edit-address:before{content:"\72"}.ff-edit-country:before{content:"\73"}.ff-edit-dropdown:before{content:"\75"}.ff-edit-radio:before{content:"\76"}.ff-edit-checkbox-1:before{content:"\77"}.ff-edit-multiple-choice:before{content:"\78"}.ff-edit-website-url:before{content:"\79"}.ff-edit-password:before{content:"\7a"}.ff-edit-date:before{content:"\41"}.ff-edit-files:before{content:"\42"}.ff-edit-images:before{content:"\43"}.ff-edit-gdpr:before{content:"\45"}.ff-edit-three-column:before{content:"\47"}.ff-edit-repeat:before{content:"\46"}.ff-edit-numeric:before{content:"\74"}.ff-edit-credit-card:before{content:"\61"}.ff-edit-keyboard-o:before{content:"\44"}.ff-edit-shopping-cart:before{content:"\48"}.ff-edit-link:before{content:"\49"}.ff-edit-ios-cart-outline:before{content:"\4a"}.ff-edit-tint:before{content:"\4b"} .mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-3{margin-top:16px!important}.mt-4{margin-top:24px!important}.mt-5{margin-top:32px!important}.mt-6{margin-top:40px!important}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.mb-3{margin-bottom:16px!important}.mb-4{margin-bottom:24px!important}.mb-5{margin-bottom:32px!important}.mb-6{margin-bottom:40px!important}.mr-1{margin-right:4px!important}.mr-2{margin-right:8px!important}.mr-3{margin-right:16px!important}.mr-4{margin-right:24px!important}.mr-5{margin-right:32px!important}.mr-6{margin-right:40px!important}.ml-1{margin-left:4px!important}.ml-2{margin-left:8px!important}.ml-3{margin-left:16px!important}.ml-4{margin-left:24px!important}.ml-5{margin-left:32px!important}.ml-6{margin-left:40px!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.mr-0{margin-right:0!important}.ml-0{margin-left:0!important}.ff_list_button_item:not(:last-child){margin-bottom:4px}.ff_list_button_item.active .ff_list_button_link{background-color:#4b4c4d;color:#fff}.ff_list_button_item.has_sub_menu .ff_list_button_link{position:relative}.ff_list_button_item.has_sub_menu .ff_list_button_link:after{content:"\e6df";font-family:element-icons;position:absolute;right:15px;transition:.3s}.ff_list_button_item.has_sub_menu.is-submenu{color:inherit;font-style:inherit;font-weight:inherit;margin-left:0}.ff_list_button_item.has_sub_menu.is-submenu .ff_list_button_link:after{transform:rotate(-180deg)}.ff_list_button_link{background-color:transparent;border-radius:5px;color:#1e1f21;display:block;font-size:16px;padding:12px 18px;transition:.2s}.ff_list_button_link:hover{background-color:#f5f5f3;color:#1e1f21}.ff_list_button_small .ff_list_button_link{border-radius:6px;font-size:15px;padding:6px 14px}.ff_list_button_s1 .ff_list_button_item.active .ff_list_button_link{background-color:#f5f5f3;color:#1e1f21;font-weight:600}.ff_list_button_s1 .ff_list_button_link{color:#606266;font-size:15px}.ff_list li:not(:last-child){margin-bottom:12px}.ff_list li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list li a:hover{color:#1a7efb}.ff_list_submenu{background-color:#fff;display:none;margin-left:20px;margin-top:10px;position:relative}.ff_list_submenu:after{background-color:#e4e2df;content:"";height:100%;left:0;position:absolute;top:0;width:2px}.ff_list_submenu li{position:relative}.ff_list_submenu li:after{background-image:url(../images/curve-line.svg?ad01d82f4c085066c0a3accc820c65ac);background-repeat:no-repeat;content:"";height:10px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:12px}.ff_list_submenu li:last-child:before{background-color:#fff;bottom:0;content:"";height:18px;left:0;position:absolute;width:2px;z-index:1}.ff_list_submenu li a{border-radius:6px;color:#606266;display:block;font-size:15px;margin-left:15px;max-width:197px;overflow:hidden;padding:10px;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_list_submenu li a:hover{background-color:#efefef}.ff_list_submenu li.active a{background-color:#efefef;color:#1e1f21}.ff_list_border_bottom>li{font-size:15px;position:relative}.ff_list_border_bottom>li:not(:last-child){border-bottom:1px solid #ececec;margin-bottom:12px;padding-bottom:12px}.ff_list_border_bottom>li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list_border_bottom>li a.lead-text{color:#1a7efb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_list_border_bottom>li a.lead-text.lead-url{white-space:unset;word-break:break-all}.ff_submission_info_list li{display:flex}.ff_submission_info_list .lead-title{flex-shrink:0;width:120px}.ff_submission_info_list .truncate{max-width:228px}.el-button--upload{border-style:dashed;justify-content:center;padding:24px;width:100%}.el-button--upload .el-icon{font-size:22px}.ff_file_upload_result{align-items:center;background-color:#fafafa;border:1px solid #f2f2f2;border-radius:8px;display:flex;overflow:hidden;padding:10px;position:relative}.ff_file_upload_result .el-button{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.ff_file_upload_result+.ff_file_upload_result{margin-top:10px}.ff_file_upload_preview{height:44px;width:44px}.ff_file_upload_preview img{border-radius:4px;height:100%;-o-object-fit:cover;object-fit:cover;width:44px}.ff_file_upload_preview+.ff_file_upload_data{margin-left:15px}.ff_file_upload_description{color:#1e1f21;font-size:14px}.ff_file_upload_size{font-size:12px;margin-top:4px}body{background-color:#f2f2f2;color:#606266}#wpcontent{padding-left:0}#wpbody-content *{box-sizing:border-box}h1,h2,h3,h4,h5,h6{color:#1e1f21;margin:0}ol,ul{list-style:none;margin:0;padding:0}h1{font-size:24px}h2{font-size:23px}h3{font-size:22px;line-height:1.4}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}p{font-size:15px}p:last-child{margin:0}hr{border-bottom-color:#ececec;border-top:0}dd,li{margin-bottom:0}a{color:#1a7efb;font-weight:400;text-decoration:none}a:focus{box-shadow:none;outline:none}a:hover{color:#1a7efb}.notice,div.error,div.updated{margin:8px 24px 2px}.fluentform-admin-notice.notice-error{margin:8px 24px;padding:10px 20px}.fluentform-admin-notice.notice-error h3{font-size:18px;margin:10px 0}.ff_form_wrap_area .fluentform-admin-notice{margin:8px 0}.ff_backdrop{background:rgba(0,0,0,.5);bottom:0;left:0;position:fixed;right:0;top:0;z-index:999999999}.w-100{width:100%!important}.ff-mw-100{max-width:100%!important}.h-100{height:100%!important}.ff_form_wrap{padding:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{-webkit-appearance:none;background-color:#fff;border-color:#dadbdd;border-radius:7px;box-shadow:none;color:#606266;padding:0 15px}input[type=color]:focus,input[type=color]:hover,input[type=date]:focus,input[type=date]:hover,input[type=datetime-local]:focus,input[type=datetime-local]:hover,input[type=datetime]:focus,input[type=datetime]:hover,input[type=email]:focus,input[type=email]:hover,input[type=month]:focus,input[type=month]:hover,input[type=number]:focus,input[type=number]:hover,input[type=password]:focus,input[type=password]:hover,input[type=search]:focus,input[type=search]:hover,input[type=tel]:focus,input[type=tel]:hover,input[type=text]:focus,input[type=text]:hover,input[type=time]:focus,input[type=time]:hover,input[type=url]:focus,input[type=url]:hover,input[type=week]:focus,input[type=week]:hover,textarea:focus,textarea:hover{border-color:#1a7efb!important}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{box-shadow:none}input[type=number]{padding-right:0}input[type=checkbox]:disabled{opacity:0}.ff-select{-webkit-appearance:none!important;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat right 14px top 55%!important;background-blend-mode:hard-light;background-size:16px 16px!important;border:1px solid #dadbdd!important;border-radius:7px!important;box-sizing:border-box!important;color:#606266!important;display:inline-block!important;height:40px!important;line-height:40px!important;max-width:inherit!important;outline:0!important;outline:none!important;padding:0 29px 0 20px!important;text-overflow:ellipsis;transition:border-color .2s cubic-bezier(.645,.045,.355,1)!important}.ff-select:focus{box-shadow:none!important;outline:none!important}.ff-select-block{display:block;width:100%}.ff-select-small{background-position-x:38px!important;border-radius:5px!important;height:32px!important;line-height:32px!important;padding-left:10px!important;padding-right:24px!important}.ff-select-small.condition-field,.ff-select-small.condition-operator,.ff-select-small.condition-value{background-position-x:90%!important}.ff_filter_selected{background-color:#e8f2ff;border-color:#bad8fe;color:#1a7efb}p{margin-bottom:10px;margin-top:0}.icon{display:inline-block;font:normal normal normal 14px/1 ultimateform}.el-input--prefix .el-input__inner{padding-left:38px}.el-input__prefix{left:12px}.ff-icon+span,span+.ff-icon{margin-left:6px}.d-flex{display:flex}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.text-primary{color:#1a7efb!important}.text-secondary{color:#606266!important}.text-danger{color:#ff6154!important}.text-success{color:#00b27f!important}.text-warning{color:#fcbe2d!important}.text-dark{color:#1e1f21!important}.flex-grow-1{flex:1}.mr15{margin-right:15px}.mb15{margin-bottom:15px}.pull-left{float:left!important}.pull-right{float:right!important}.text-left{text-align:left}.text-center{text-align:center}.el-icon-clickable{cursor:pointer}.help-text{font-size:.9em;font-style:italic;margin:0}.fs-17{font-size:17px!important}.fs-15{font-size:15px!important}.fs-14{font-size:14px!important}.fs-13{font-size:13px!important}.text-note{color:#606266;font-size:13px;font-weight:400}.ff-disabled{opacity:.5;pointer-events:none}.mx-auto{margin-left:auto;margin-right:auto}.img-thumb{border:1px solid #ececec;border-radius:8px}.lead-title{color:#1e1f21;display:block;font-size:15px;font-weight:500;transition:.2s}.lead-text{color:#606266;font-size:13px}a.lead-text{color:#1a7efb}.btn{background-image:none;border:1px solid transparent;border-radius:4px;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1.42857143;margin-bottom:0;padding:6px 12px;text-align:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.btn-primary{background-color:#337ab7;border-color:#2e6da4;color:#fff}.btn-primary:hover{background-color:#286090;border-color:#204d74;color:#fff}.btn-block{width:100%}.clearfix:after,.clearfix:before,.form-editor:after,.form-editor:before{content:" ";display:table}.clearfix:after,.form-editor:after{clear:both}.el-notification__content p{text-align:left}.label-lh-1-5 label{line-height:1.5}.ff_header{background:#fff;border-bottom:1px solid #ececec;display:flex;flex-direction:column;padding:10px 24px}.ff_header_group{align-items:center;display:flex;justify-content:space-between}.ff_header .plugin-name{height:30px}.ff_header .plugin-name img{height:100%}.ff_header .global-search-menu-button{background-color:transparent;border:0;border-radius:6px;color:rgba(60,60,60,.702);cursor:pointer;display:inline-block;font-size:15px;font-weight:400;line-height:1.6;margin:0 0 0 auto;padding:0 0 0 5px;transition:all .3s}.ff_header .global-search-menu-button .el-icon-search{font-size:16px;font-weight:600}.ff_header .global-search-menu-button .shortcut{border-radius:4px;box-shadow:0 2px 3px 0 rgba(32,33,36,.15);font-size:12px;letter-spacing:3px;padding:5px 8px;transition:all .3s}.ff_header .global-search-menu-button:hover{color:#353537}.ff_header .global-search-menu-button:hover .shortcut{border-color:#1a7efb;color:#1a7efb}.ff_header .global-search-menu-button span{margin-left:5px}.ff_row{display:flex;flex-wrap:wrap}.el-dialog{padding:24px 30px}.el-dialog__headerbtn{background-color:#fafafa;border-radius:50%;font-size:1.25rem;height:2rem;right:22px;top:18px;transition:.2s;width:2rem}.el-dialog__headerbtn .el-dialog__close{color:#1e1f21}.el-dialog__headerbtn:hover{background-color:#ececec}.el-dialog__headerbtn:hover .el-dialog__close{color:#1e1f21}.el-dialog__header{border-bottom:1px solid #ececec;padding:0 0 24px}.el-dialog__header h4{font-weight:500}.el-dialog__body,.el-dialog__footer{padding:0}.el-dialog__footer .has-separator{border-top:1px solid #ececec;padding-top:20px}.el-dialog,.el-popover{border-radius:8px}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__header{border:0;padding:0}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__body .el-row{align-content:center;align-items:center;display:flex;justify-content:center}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__headerbtn{z-index:1}.form-editor .disabled-info .el-dialog__wrapper h3{font-size:1.5em}.form-editor .disabled-info .el-dialog__wrapper p{font-size:16px}.form-editor .disabled-info .el-dialog__wrapper img{width:100%}.ff_nav_top{display:block;margin-bottom:15px;overflow:hidden;width:100%}.ff_nav_top .ff_nav_title{float:left;width:50%}.ff_nav_top .ff_nav_title h3{float:left;line-height:28px;margin:0;padding:0}.ff_nav_top .ff_nav_title .ff_nav_sub_actions{display:inline-block;margin-left:20px}.ff_nav_top .ff_nav_action{float:left;text-align:right;width:50%}.ff_nav_top .ff_search_inline{display:inline-block;text-align:right;width:200px}.ff_nav_top.ff_advanced_search{background:#fff;border-radius:5px;padding:10px 20px}.ff_global_notices{box-sizing:border-box;display:block;margin-top:20px;overflow:hidden;width:100%}.ff_global_notices .ff_global_notice{background:#fff;border:1px solid transparent;border-radius:.25rem;display:block;margin-bottom:1rem;margin-right:20px;padding:.75rem 1.25rem;position:relative}.ff_global_notices .ff_global_notice.ff_notice_error{background-color:#fff3cd;border-color:#ffeeba;color:#856404}.ff_global_notices .ff_global_notice.ff_notice_success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.el-select-dropdown.el-popper{z-index:99999999999!important}ul.ff_entry_list{list-style:disc;margin-left:20px}span.ff_new_badge{background:#ff4747;border-radius:4px;color:#fff;font-size:11px;line-height:100%;margin-left:5px;padding:0 5px 3px;vertical-align:super}label.el-checkbox,label.el-radio{display:inline-block}.el-time-spinner__list .el-time-spinner__item{margin-bottom:0!important}.ff_card_block{background:#f2f2f2;border-radius:8px;padding:20px}.ff_card_block_head{border-bottom:1px solid #e3e3e3;margin-bottom:20px;padding-bottom:15px}.ff_card_block h3{margin:0 0 15px;padding:0}.videoWrapper{height:0;padding-bottom:56.25%;position:relative}.videoWrapper iframe{height:100%;left:0;position:absolute;top:0;width:100%}.ff-left-spaced{margin-left:10px!important}.doc_video_wrapper{background:#fff;margin:0 auto;max-width:800px;padding:20px 0 0;text-align:center}.el-big-items .el-select-dropdown__wrap{max-height:350px}.ff_email_resend_inline{display:inline-block}.el-radio-group-column{display:flex;flex-direction:column}.el-radio-group-column .el-radio{margin-bottom:20px;margin-right:0}.el-checkbox-group-column{display:flex;flex-direction:column}.el-checkbox-group-column .el-checkbox{margin-bottom:14px;margin-right:0}.ff_advanced_filter_wrap{position:relative}.ff_advanced_search{background:#fff;border-radius:8px;box-shadow:0 40px 64px -12px rgba(0,0,0,.08),0 0 14px -4px rgba(0,0,0,.08),0 32px 48px -8px rgba(0,0,0,.1);margin-top:10px;padding:20px;position:absolute;right:0;top:100%;width:350px;z-index:1024}.ff_advanced_search_date_range{background-color:#ececec;border-radius:8px;padding:14px}.ff_advanced_search_date_range p{font-size:14px;font-weight:400}.ff_advanced_search_date_range .el-date-editor--daterange.el-input__inner{width:282px}.el-switch__core:after{box-shadow:0 2px 4px rgba(0,0,0,.2),inset 0 2px 2px #fff,inset 0 -1px 1px rgba(0,0,0,.1)}.row-actions .row-actions-item{display:inline-block;font-size:13px;line-height:1;padding-right:10px;position:relative}.row-actions .row-actions-item:after{background-color:#ddd;content:"";height:10px;position:absolute;right:3px;top:50%;transform:translateY(-50%);width:1px}.row-actions .row-actions-item.trash:after{display:none}.row-actions span.trash a{color:#ff6154}.ff_pagination{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);display:inline-flex;font-weight:500;max-width:100%;padding:12px 20px}.ff_pagination .el-input__inner{background:#f2f2f2;border-color:#f2f2f2;border-radius:4px!important;color:#606266}.ff_pagination .el-input__inner:focus,.ff_pagination .el-input__inner:hover{border-color:#f2f2f2!important}.ff_pagination .el-select .el-input .el-select__caret{color:#606266}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:transparent;border-radius:4px}.ff_shortcode_wrap+.ff_shortcode_wrap{margin-top:.5rem}.ff_shortcode_btn{align-items:center;background-color:#ededed;border:0;border-radius:6px;color:#353537;display:inline-flex;font-size:12px;margin:0;overflow:hidden;padding:4px 10px}.ff_shortcode_btn span{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:200px}.ff_shortcode_btn .el-icon{margin-right:1px}.ff_shortcode_btn_thin{background-color:#f2f2f2}.ff_shortcode_btn_md{font-size:15px;line-height:1.2;padding:10px 14px}.copy_btn{background-color:#e7e6e6;border-radius:4px;cursor:pointer;margin-left:auto;padding:1px 10px;transition:.2s}.copy_btn:hover{background-color:#d8d7d7}.ff_editor_html ul{list-style-type:disc;padding-left:3em}.ff_editor_html ol{list-style-type:decimal;margin-left:3em}.ff_section_block{margin-bottom:64px}.ff_section_block:last-child{margin-bottom:0}.ff_radio_list{display:flex;flex-direction:column}.ff_radio_list_item{margin-bottom:2px;width:100%}.ff_radio_list_item .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:6px!important;box-shadow:none!important;color:#606266;padding:13px 16px;text-align:left;transition:.2s;width:100%}.ff_radio_list_item .el-radio-button__inner:hover,.ff_radio_list_item.is-active .el-radio-button__inner{background-color:rgba(96,98,102,.1);color:#1e1f21}.is-sticky{position:fixed;top:40px;z-index:1020}.ff_section_desc{font-size:16px}.ff_section_head{margin-bottom:40px}.ff_section_head_between{display:flex;flex-wrap:wrap;justify-content:space-between}.ff_section_head.sm{margin-bottom:24px}.ff_section_head_content_group{align-items:center;display:flex}.ff_section_head .text{font-size:15px}.el-row{display:flex;flex-wrap:wrap}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.items_end{align-items:flex-end!important}.el-radio-button__inner{font-weight:400}.el-select-dropdown__item.selected{font-weight:500}.ff_layout_section{display:flex;min-height:550px;position:relative;width:100%}.ff_layout_section_sidebar{background-color:#fff;box-shadow:0 1px 3px rgba(30,31,33,.05);flex-shrink:0;padding:16px;vertical-align:top;width:230px}.ff_layout_section_container{flex:1;overflow-y:scroll;padding:16px}.ff_global_setting_wrap .ff_layout_section_sidebar,.ff_tools_wrap .ff_layout_section_sidebar{height:100%}.ff_global_settings_option{height:110vh;overflow-y:scroll}.ff_global_settings_option::-webkit-scrollbar{display:none}.ff_global_settings_option .el-form-item,.ff_global_settings_option .el-form-item-wrap{margin-bottom:24px}.ff_global_settings_option .el-form-item-wrap:last-child,.ff_global_settings_option .el-form-item:last-child{margin-bottom:0}.ff_global_settings_option .ff_card:not(:last-child){margin-bottom:32px}.ff_input_width{width:438px}.ff_input_full_width{width:100%}.ff_tooltip_wrap{font-size:14px;line-height:1.6;max-width:320px}.ff_tooltip_wrap h6{color:#fff}.ff-icon-gray{color:#757d8a}.el-form--label-top .el-form-item__label{line-height:1;padding-bottom:16px}.ff-form-item .el-form-item__label{align-items:center;color:#1e1f21;display:flex;font-size:15px;font-weight:500}.ff-form-item .el-form-item__label .ff-icon{margin-left:4px}.ff-form-item .el-form-item__content{line-height:1}.ff-form-item .el-icon-info,.ff-form-item .ff-icon-info-filled{font-size:13px}.ff-form-item .el-icon-info{color:#1a7efb;transform:rotate(-14deg)}.el-select__tags input{background-color:transparent;border:none;line-height:2;margin-left:0;min-height:30px;padding:0 8px}.ff_alert{background-color:#e8f2ff;border-left:3px solid #1a7efb;border-radius:4px;padding:17px}.ff_alert_icon{display:inline-block;font-size:16px;margin-top:3px}.ff_alert_icon+.ff_alert_content{padding-left:10px}.ff_alert_group{display:flex}.ff_alert_sm{padding:10px}.ff_alert.success{background-color:#00b27f;border-left-color:#00b27f;color:#fff}.ff_alert.success-soft{background-color:#e6ffeb;border-left-color:#00b27f}.ff_alert.danger{background-color:#ff6154;border-left-color:#ff6154;color:#fff}.ff_alert.danger-soft{background-color:#ffefee;border-left-color:#ff6154}.ff_alert .text{font-size:14px;margin-bottom:12px;margin-top:6px}.ff_alert_between{align-items:center;display:flex;justify-content:space-between}.ff_alert_between .text{margin-bottom:0}.ff_alert_s2{border-left:0;border-radius:8px;padding:40px;text-align:center}.ff-form-item-flex{align-items:center;display:flex}.ff-form-item-flex .el-form-item__label{padding-bottom:0}.ff-form-item-flex.reverse{flex-direction:row-reverse;justify-content:flex-end}.ff-form-setting-label-width .el-form-item__label{width:390px}.el-switch input{border:0}.el-switch-lg .el-switch__core{border-radius:30px;height:24px;width:48px!important}.el-switch-lg .el-switch__core:after{height:20px;width:20px}.el-switch-lg.is-checked .el-switch__core:after{margin-left:-21px}.ff_block_title{font-weight:500}.el-form-item__label h6{font-size:15px;font-weight:500}.ff_checkbox_group_col_2{display:flex;flex-wrap:wrap}.ff_checkbox_group_col_2 .el-checkbox{line-height:1;margin-bottom:.75rem;margin-right:0;width:50%}.wp_vue_editor_wrapper{background-color:#fff;border:1px solid #dadbdd;border-radius:8px;overflow:hidden;position:relative}.wp_vue_editor_wrapper .wp-media-buttons{float:none;position:absolute;right:160px;top:10px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media{background-color:#e8f2ff;border-color:#e8f2ff;border-radius:6px;color:#1a7efb;font-weight:500;line-height:1;margin:0;min-height:30px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.wp_vue_editor_wrapper .popover-wrapper{padding:10px;position:absolute;right:0;top:0;z-index:2}.wp_vue_editor_wrapper .wp-editor-container{border:0}.wp_vue_editor_wrapper .wp-editor-tabs{float:none;padding:8px}.wp_vue_editor_wrapper .wp-switch-editor{background-color:transparent;border-color:transparent;border-radius:5px;float:none;font-size:14px;font-weight:500;height:auto;line-height:inherit;margin:0 0 0 4px;padding:7px 14px}.wp_vue_editor_wrapper .html-active .switch-html,.wp_vue_editor_wrapper .tmce-active .switch-tmce{background-color:#ededed;border-color:#dadbdd;color:#1e1f21}.wp_vue_editor_wrapper .switch-html{margin-left:0}.wp_vue_editor_wrapper .mce-top-part:before{box-shadow:none}.wp_vue_editor_wrapper .quicktags-toolbar,.wp_vue_editor_wrapper div.mce-toolbar-grp{background:#f1f1f0;border-bottom:0}.wp_vue_editor_wrapper .mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border:0;border-radius:4px;box-shadow:none}.wp_vue_editor_wrapper textarea{border:0;padding-top:15px}.wp-media-buttons .insert-media{padding-left:8px;padding-right:10px}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#1a7efb}.mce-panel.mce-menu{border-radius:8px}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:10px!important}.el-input-number__decrease{left:2px}.ff_state_box{border-radius:8px;display:block;padding:32px;text-align:center}.ff_icon_btn{align-items:center;background-color:#1a7efb;border-radius:50%;color:#fff;display:flex;font-size:28px;height:58px;justify-content:center;text-align:center;width:58px}.ff_icon_btn:focus,.ff_icon_btn:hover{color:#fff}.ff_icon_btn img{height:36px;-o-object-fit:contain;object-fit:contain}.ff_icon_btn.square{border-radius:12px}.ff_icon_btn.blue{background-color:#3b5998;color:#fff}.ff_icon_btn.blue-soft{background-color:#ebeef5;color:#3b5998}.ff_icon_btn.dark{background-color:#1e1f21;color:#fff}.ff_icon_btn.dark-soft{background-color:#e9e9e9;color:#1e1f21}.ff_icon_btn.primary-soft{background-color:#e8f2ff;color:#1a7efb}.ff_icon_btn.danger{background-color:#ff6154;color:#fff}.ff_icon_btn.danger-soft{background-color:#ffefee;color:#ff6154}.ff_icon_btn.success{background-color:#00b27f;color:#fff}.ff_icon_btn.success-soft{background-color:#e6ffeb;color:#00b27f}.ff_icon_btn.warning{background-color:#fcbe2d;color:#fff}.ff_icon_btn.warning-soft{background-color:#fff9ea;color:#fcbe2d}.ff_icon_btn.info{background-color:#4b4c4d;color:#fff}.ff_icon_btn.info-soft{background-color:#ededed;color:#4b4c4d}.ff_icon_btn.cyan{background-color:#0dcaf0;color:#fff}.ff_icon_btn.cyan-soft{background-color:#e7fafe;color:#0dcaf0}.ff_icon_btn.mini{font-size:12px;height:18px;width:18px}.ff_icon_btn.small{font-size:16px;height:27px;width:27px}.ff_icon_btn.md{font-size:26px;height:48px;width:48px}.ff_icon_btn.md img{height:28px;-o-object-fit:cover;object-fit:cover;-o-object-position:left;object-position:left;width:28px}.ff_icon_btn.lg{font-size:36px;height:72px;width:72px}.ff_btn_group{align-items:center;display:inline-flex;flex-wrap:wrap;margin:-6px}.ff_btn_group>*{margin-bottom:0;padding:6px}.ff_btn_group.sm{margin:-3px}.ff_btn_group.sm>*{padding:3px}.ff_btn_group_half{display:flex}.ff_btn_group_half>*{flex:1}.ff_btn_group_half .el-button{justify-content:center;width:100%}.file-input{background:#fff;border:1px solid #ececec;border-radius:8px;color:#606266;max-width:100%;padding:5px!important}.file-input::file-selector-button{background:#f2f2f2;border:none;border-radius:6px;color:#1e1f21;cursor:pointer;margin-right:6px;padding:6px 16px;transition:background .2s ease-in-out}.file-input::file-selector-button:hover{background:#ced0d4}.el-tag--pill{border-radius:50rem}.ff_radio_group{background-color:#f5f5f3;border-radius:8px;overflow:hidden}.ff_radio_group .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:0!important}.ff_radio_group .el-radio-button__inner:hover{color:#1e1f21}.ff_radio_group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;box-shadow:none;color:#fff}.ff_radio_group_s2{background:#fff;border:1px solid #edeae9;border-radius:8px;display:inline-flex;overflow:hidden}.ff_radio_group_s2 .el-radio-button:first-child .el-radio-button__inner{border-left:0}.ff_radio_group_s2 .el-radio-button:last-child .el-radio-button__inner{border-right:0}.ff_radio_group_s2 .el-radio-button__inner{border-color:transparent #edeae9 transparent transparent}.el-input-gray .el-input__inner{background-color:#e7e6e6;border-color:#e7e6e6}.el-input-gray .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray .el-input__prefix{color:#606266}.el-input-gray-light .el-input__inner{background-color:#f5f5f3;border-color:#f5f5f3}.el-input-gray-light .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__prefix{color:#606266}.el-radio.is-bordered{margin-right:6px}.ff_media_group{align-items:center;display:flex}.ff_media_head+.ff_media_body{margin-left:16px}.ff_video_wrap{position:relative}.ff_video_wrap:after{background-color:#1e1f21;border-radius:8px;content:"";height:100%;left:0;opacity:.3;position:absolute;top:0;width:100%}.ff_video_img{border-radius:8px;display:block;width:100%}.ff_video_icon{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1}.ff-input-wrap{position:relative}.ff-input-wrap .el-icon{align-items:center;display:inline-flex;height:100%;left:0;padding-left:14px;position:absolute;top:0;z-index:2}.ff-input-wrap .el-icon+.el-input .el-input__inner,.ff-input-wrap .el-icon+input{padding-left:32px}.el-dialog-no-header .el-dialog__header{display:none}.el-radio-button-group{background-color:#fff;border:1px solid #ececec;border-radius:4px}.el-radio-button-group .el-radio-button__inner{background:transparent;border:0;padding:6px 9px}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner{border-left:0;border-radius:4px 0 0 4px}.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button-group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1a7efb;box-shadow:none}.el-color-picker__color{border-color:#d4edda;border-radius:3px}.ff_socials li{display:inline-block;margin-right:2px}.ff_socials li:last-child{margin-right:0}.ff_socials li a{background-color:#ededed;border-radius:50%;color:#606266;display:grid;height:32px;place-items:center;transition:.2s;width:32px}.ff_socials li a span{font-size:16px;height:auto;transition:0s;width:auto}.ff_socials li a:hover{background-color:#1a7efb;color:#fff}.ff-dropdown-menu .el-dropdown-menu__item{line-height:1.5;padding:6px 20px}.ff-dropdown-menu .el-dropdown-menu__item:hover{background-color:transparent}.truncate{display:block;max-width:188px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;max-width:inherit;white-space:inherit}.hover-y{transition:.3s}.hover-y:hover{transform:translateY(-2px)}.hover-zoom{transition:.3s}.hover-zoom:hover{transform:scale(1.03)}.ff_badge{align-items:center;background-color:#ededed;border:1px solid #dbdbdb;border-radius:30px;color:#4b4c4d;display:inline-flex;line-height:1.2;padding:2px 7px;text-transform:capitalize}.ff_badge.small{font-size:13px}.ff_badge_wrap{align-items:center;display:inline-flex}.ff_badge img{flex-shrink:0;height:14px;margin-right:4px}.ff_badge_active,.ff_badge_primary{background-color:#e8f2ff;border-color:#d1e5fe;color:#1a7efb}.ff_badge_paid{background-color:#e6f7f2;border-color:#ccf0e5;color:#00b27f}.ff_badge_processing{background-color:#e7fafe;border-color:#cff4fc;color:#0dcaf0}.ff_badge_pending{background-color:#fff9ea;border-color:#fef2d5;color:#fcbe2d}.ff_badge_failed{background-color:#ffefee;border-color:#ffdfdd;color:#ff6154}.ff_badge_visa{background-color:#e8e9ef;border-color:#dddee7;color:#192061}.ff_badge_mastercard{background-color:#ffefe6;border-color:#ffe7d9;color:#ff5f00}.ff_badge_amex{background-color:#f0f9fd;border-color:#e9f6fc;color:#6cc4ee}.ff_badge_paypal{background-color:#e6f5fc;border-color:#d9f0fa;color:#019ddd}.ff_badge_stripe{background-color:#eef0fb;border-color:#e5e9f9;color:#5469d4}.ff_badge.is-solid.ff_badge_active{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.ff_badge.is-solid.ff_badge_processing{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.ff_badge.is-solid.ff_badge_paid{background-color:#00b27f;border-color:#00b27f;color:#fff}.ff_badge.is-solid.ff_badge_pending{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.ff_badge.is-solid.ff_badge_cancelled,.ff_badge.is-solid.ff_badge_failed{background-color:#ff6154;border-color:#ff6154;color:#fff}.separator{background-color:rgba(96,98,102,.1);height:1px}.ff_choose_template_wrap .el-dialog{max-width:1280px}.ff_settings_container .notice{margin:0 0 20px}.global-search-wrapper{align-items:center;background:rgba(0,0,0,.7);display:flex;height:auto;inset:0;justify-content:center;min-height:100vh;padding:20px;position:fixed;z-index:999999999}.global-search-wrapper .global-search-container{background:#f6f6f7;border-radius:5px;overflow:auto;position:relative;width:700px}.global-search-wrapper .global-search-container input{font-size:17px;padding:3px 35px;width:100%}.global-search-wrapper .global-search-container ul.search-result li{background:#fff;border-radius:6px;box-shadow:0 1px 3px 0 #d4d9e1;color:#606266;cursor:pointer;display:block;font-size:15px;margin-left:0;margin-top:7px;padding:10px;transition:.2s}.global-search-wrapper .global-search-container ul.search-result li.active-search-link{background-color:#197efb;color:#fff;outline:0}.global-search-wrapper .global-search-container ul.search-result li:focus,.global-search-wrapper .global-search-container ul.search-result li:focus-visible{border:0;box-shadow:none;outline:0}.global-search-wrapper .global-search-container span.global-search-not-match{display:inline-block;font-size:16px;margin-top:6px}.global-search-wrapper .global-search-body{max-height:400px;min-height:200px;overflow-y:auto;padding:20px}.global-search-wrapper .search-commands{background:#fff;box-shadow:0 -1px 0 0 #efefef,0 -2px 6px 0 rgba(70,90,150,.1);color:#606266;display:flex;font-size:14px;justify-content:space-around;padding:12px}.global-search-wrapper .search-commands ul li{font-size:12px;margin-top:7px;padding:10px}.scroll{animation:down 2s ease-in-out infinite;-webkit-animation:down 2s ease-in-out infinite;cursor:pointer;height:26px;margin:0 auto;position:relative;width:60px}.scroll:before{border-bottom:2px solid #777;border-left:2px solid #777;content:"";height:16px;left:18px;position:absolute;top:24px;transform:rotate(-45deg);width:16px}.ff_chained_ajax_field{display:flex;flex:auto;gap:10px}.ff_chained_ajax_field .el-select{flex-basis:100%}@keyframes down{0%{opacity:0;-webkit-transform:translateY(-14px)}50%{opacity:1}to{opacity:0;-webkit-transform:translateY(14px)}}.ff_sidebar_toggle{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 1px 10px rgba(0,0,0,.1);color:#000;cursor:pointer;display:none;font-size:18px;height:30px;justify-content:center;position:absolute;right:-21px;top:15px;width:30px}.text-capitalize{text-transform:capitalize}.ultimate-nav-menu{background-color:#fff;border-radius:4px}.ultimate-nav-menu>ul{margin:0}.ultimate-nav-menu>ul>li{display:inline-block;font-weight:600;margin:0}.ultimate-nav-menu>ul>li+li{margin-left:-4px}.ultimate-nav-menu>ul>li a{color:#23282d;display:block;padding:10px;text-decoration:none}.ultimate-nav-menu>ul>li a:hover{background-color:#1a7efb;color:#fff}.ultimate-nav-menu>ul>li:first-of-type a{border-radius:4px 0 0 4px}.ultimate-nav-menu>ul>li.active a{background-color:#1a7efb;color:#fff}.nav-tab-list{display:flex;flex-wrap:wrap;position:sticky;top:0;z-index:10}.nav-tab-list li{flex:1;margin-bottom:0}.nav-tab-list li.active a{background-color:#4b4c4d;color:#fff}.nav-tab-list li a{background-color:#f5f5f3;color:#1e1f21;display:block;font-weight:500;overflow:hidden;padding:12px;text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.nav-tab-list li a:focus{box-shadow:none}.toggle-fields-options{overflow:hidden}.nav-tab-items{background-color:#fff}.vddl-draggable,.vddl-list{position:relative}.vddl-dragging{opacity:1}.vddl-dragging-source{display:none}.select{min-width:200px}.new-elements .btn-element{align-items:center;background-color:#fff;border:1px solid #dfdfdf;border-radius:8px;color:#1e1f21;cursor:move;display:flex;font-size:14px;padding:12px 16px;text-align:center;transition:all .05s}.new-elements .btn-element span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.new-elements .btn-element:focus,.new-elements .btn-element:hover{background-color:#4b4c4d;color:#fff}.new-elements .btn-element:active:not([draggable=false]){box-shadow:inset 0 2px 7px -4px rgba(0,0,0,.5);transform:translateY(1px)}.new-elements .btn-element i{display:block;font-size:16px;margin-right:10px;padding-top:2px}.new-elements .btn-element[draggable=false]{cursor:pointer;opacity:.5}.mtb15{margin-bottom:15px;margin-top:15px}.text-right{text-align:right}.container,footer{margin:0 auto;max-width:980px;min-width:730px}.help-text{margin-bottom:0}.demo-content{width:100%}.vddl-list__handle div.vddl-nodrag{-webkit-touch-callout:none;align-items:center;display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vddl-list__handle input[type=radio]{margin-right:0}.vddl-list__handle .nodrag div{margin-right:6px}.vddl-list__handle .nodrag div:last-of-type{margin-right:0}.vddl-list__handle .handle{background:url(../images/handle.png?113dcab1e057b4d108fdbe088b054a5d) 50% no-repeat;background-size:20px 20px;cursor:move;height:16px;width:25px}.vddl-draggable .el-form-item{margin-bottom:5px}.tooltip-icon{color:#757d8a;margin-left:3px;vertical-align:middle!important}.tooltip-icon.el-icon-info{transform:rotate(-14deg)}.option-fields-section{background:#fff;border-radius:8px;margin-bottom:12px}.option-fields-section--title{border-bottom:1px solid transparent;cursor:pointer;font-size:14px;font-weight:500;padding:12px 20px;position:relative}.option-fields-section--title:after{content:"\e6df";font-family:element-icons;font-size:16px;font-weight:600;position:absolute;right:16px;transition:.2s;vertical-align:middle}.option-fields-section--title.active{border-bottom-color:#ececec;color:#1a7efb;font-weight:600}.option-fields-section--title.active:after{transform:rotate(-180deg)}.option-fields-section--icon{float:right;margin-top:3px;vertical-align:middle}.option-fields-section--content{max-height:1050vh;padding:16px}.option-fields-section--content .el-form-item{margin-bottom:14px}.slide-fade-enter-active,.slide-fade-leave-active{overflow:hidden;transition:all .2s ease-in-out}.slide-fade-enter,.slide-fade-leave-to{max-height:0!important;opacity:.2;transform:translateY(-11px)}.ff_conv_section_wrapper{align-items:center;display:flex;flex-basis:50%;flex-direction:row;flex-grow:1;justify-content:space-between}.ff_conv_section_wrapper.ff_conv_layout_default{padding:10px 0}.ff_conv_section_wrapper.ff_conv_layout_default .ff_conv_media_preview{display:none!important}.ff_conv_section_wrapper.ff_conv_layout_default .ff_conv_input{padding-left:10px;padding-right:10px;width:100%}.ff_conv_section_wrapper .ff_conv_input{display:flex;flex-direction:column-reverse;justify-content:center;padding:0 20px 0 10px;width:100%}.ff_conv_section_wrapper .ff_conv_input label.el-form-item__label{font-size:18px;margin-bottom:5px}.ff_conv_section_wrapper .ff_conv_input .help-text{font-style:normal!important;margin-bottom:8px}.ff_conv_section_wrapper .ff_conv_media_preview{width:100%}.ff_conv_section_wrapper .ff_conv_media_preview img{max-width:100%}.ff_conv_section_wrapper.ff_conv_layout_media_right .ff_conv_media_preview{text-align:center}.ff_conv_section_wrapper.ff_conv_layout_media_left{flex-direction:row-reverse}.ff_conv_section_wrapper.ff_conv_layout_media_left .ff_conv_media_preview{text-align:center}.ff_conv_section_wrapper.ff_conv_layout_media_left .ff_conv_input{padding:0 10px 0 20px;width:100%}.ff_conv_section_wrapper.ff_conv_layout_media_right_full{align-items:normal}.ff_conv_section_wrapper.ff_conv_layout_media_right_full .ff_conv_media_preview{margin:-10px -10px -10px 0}.ff_conv_section_wrapper.ff_conv_layout_media_right_full .ff_conv_media_preview .fc_i_layout_media_right_full,.ff_conv_section_wrapper.ff_conv_layout_media_right_full .ff_conv_media_preview .fc_i_layout_media_right_full .fc_image_holder{height:100%}.ff_conv_section_wrapper.ff_conv_layout_media_right_full img{border-bottom-right-radius:8px;border-top-right-radius:8px;display:block;height:100%;margin:0 auto;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 50%;object-position:50% 50%;width:100%}.ff_conv_section_wrapper.ff_conv_layout_media_left_full{align-items:normal;flex-direction:row-reverse}.ff_conv_section_wrapper.ff_conv_layout_media_left_full .ff_conv_media_preview{margin:-10px 0 -10px -10px}.ff_conv_section_wrapper.ff_conv_layout_media_left_full .ff_conv_media_preview .fc_i_layout_media_left_full,.ff_conv_section_wrapper.ff_conv_layout_media_left_full .ff_conv_media_preview .fc_i_layout_media_left_full .fc_image_holder{height:100%}.ff_conv_section_wrapper.ff_conv_layout_media_left_full .ff_conv_input{padding:0 10px 0 20px;width:100%}.ff_conv_section_wrapper.ff_conv_layout_media_left_full img{border-bottom-left-radius:8px;border-top-left-radius:8px;display:block;height:100%;margin:0 auto;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 50%;object-position:50% 50%;width:100%}.ff_conv_section{animation:expand 1s cubic-bezier(.22,1,.36,1) 0s 1 normal none running;background-color:transparent;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.08),0 2px 12px rgba(0,0,0,.06);color:#262627;cursor:pointer;height:100%;margin-bottom:20px;position:relative;width:100%}.ff_conv_section .hover-action-middle{align-items:flex-start;justify-content:flex-end}.ff_conv_section .panel__body--item{border-radius:8px}.ff_conv_section .panel__body--item.selected{background:#fff}.ff_conversion_editor{background:#fafafa}.ff_conversion_editor .form-editor--body,.ff_conversion_editor .form-editor__body-content,.ff_conversion_editor .panel__body--list{background-color:#fafafa!important}.ff_conversion_editor .ffc_btn_wrapper{align-items:center;display:flex;margin-top:20px}.ff_conversion_editor .ffc_btn_wrapper .fcc_btn_help{padding-left:15px}.ff_conversion_editor .welcome_screen.text-center .ffc_btn_wrapper{justify-content:center}.ff_conversion_editor .welcome_screen.text-right .ffc_btn_wrapper{justify-content:flex-end}.ff_conversion_editor .ff_default_submit_button_wrapper{display:block!important}.ff_conversion_editor .fcc_pro_message{background:#fef6f1;font-size:13px;margin:10px 0;padding:15px;text-align:center}.ff_conversion_editor .fcc_pro_message a{display:block;margin-top:10px}.ff_conversion_editor .ffc_raw_content{margin:0 auto;max-height:250px;max-width:60%;overflow:hidden}.subscription-field-options{background-color:#fff;border-radius:6px;display:block;margin-bottom:20px;width:100%}.subscription-field-options .plan_header{border-bottom:1px solid #ececec;color:#1e1f21;display:block;font-weight:600;overflow:hidden;padding:10px 15px}.subscription-field-options .plan_header .plan_label{float:left}.subscription-field-options .plan_header .plan_actions{float:right}.subscription-field-options .plan_body{overflow:hidden;padding:15px}.subscription-field-options .plan_footer{border-top:1px solid #ececec;padding:10px 40px;text-align:center}.subscription-field-options .plan_settings{display:block;float:left;padding-right:50px;width:50%}.el-input+.plan_msg,.plan_msg{margin-top:5px}.ff_payment_item_wrapper{margin-bottom:24px}.form-editor *{box-sizing:border-box}.form-editor .address-field-option label.el-checkbox{display:inline-block}.form-editor-main{display:flex;flex-wrap:wrap}.form-editor--body{background-color:#fff;height:100vh;overflow-y:scroll;padding:10px;width:60%}.form-editor--body::-webkit-scrollbar{-webkit-appearance:none;display:none}.form-editor--body .ff-el-form-hide_label .el-form-item__label,.form-editor--body .ff-el-form-hide_label>label{display:none}.form-editor--body .el-slider__button-wrapper{z-index:0}.form-editor--body .ff_upload_btn_editor span.ff-dropzone-preview{background:rgba(223,240,255,.13);border:1px dashed #1a7efb;border-radius:7px;color:#606266;display:block;padding:35px;text-align:center;width:100%}.form-editor .ff-el-form-bottom .el-form-item,.form-editor .ff-el-form-bottom.el-form-item{display:flex;flex-direction:column-reverse}.form-editor .ff-el-form-bottom .el-form-item__label{padding:10px 0 0}.form-editor .ff-el-form-right .el-form-item__label{padding-right:5px;text-align:right}.form-editor .ff-dynamic-editor-wrap{max-height:300px;overflow:hidden}.form-editor--sidebar{width:40%}.form-editor--sidebar-content{background-color:#f2f2f2;border-left:1px solid #ececec;height:100vh;overflow-y:scroll}.form-editor--sidebar-content::-webkit-scrollbar{-webkit-appearance:none;display:none}.form-editor--sidebar-content .nav-tab-list{background-color:#fff}.form-editor--sidebar-content .nav-tab-list li{flex:0;padding-left:10px;padding-right:10px}.form-editor--sidebar-content .nav-tab-list li a{background-color:transparent;border-bottom:2px solid transparent;color:#1e1f21;font-size:14px;padding:15px 0;text-align:left}.form-editor--sidebar-content .nav-tab-list li a:hover{color:#1a7efb}.form-editor--sidebar-content .nav-tab-list li.active a{border-bottom-color:#1a7efb;color:#1a7efb}.form-editor--sidebar-content .search-element{margin:0;padding:0 0 20px}.form-editor--sidebar .nav-tab-items{background-color:transparent;padding:20px}.form-editor--sidebar .ff_advnced_options_wrap{margin-bottom:10px;max-height:300px;overflow-y:auto}.form-editor--sidebar .ff_validation_rule_warp{border-radius:5px;margin:10px -10px;padding:10px}.form-editor--sidebar .ff_validation_rule_warp .el-input__inner{transition:all .5s}.form-editor--sidebar .ff-dynamic-warp{border-left:1px dashed #ececec;margin-bottom:10px;padding:10px 10px 0}.form-editor--sidebar .ff-dynamic-filter-groups{border:1px solid #ececec;border-radius:5px;margin-bottom:10px;padding:10px}.form-editor--sidebar .ff-dynamic-filter-condition{align-items:center;display:flex;justify-content:center;margin:10px -10px}.form-editor--sidebar .ff-dynamic-filter-condition.condition-or{margin:10px 0}.form-editor--sidebar .ff-dynamic-filter-condition span.condition-border{border:1px dashed #ececec;display:block;width:100%}.form-editor--sidebar .ff-dynamic-filter-condition span.condition-item{padding:0 20px}.form-editor--sidebar .ff_validation_rule_error_choice{border-left:1px dotted #dcdfe6;padding-left:10px}.form-editor--sidebar .ff_validation_rule_error_choice .el-form-item{margin-bottom:0}.form-editor--sidebar .ff_validation_rule_error_choice .ff_validation_rule_error_label_wrap{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.form-editor--sidebar .ff_validation_rule_error_choice .ff_validation_rule_error_label_wrap label{padding-bottom:0}.form-editor .ff-switch-sm .el-switch__label span{font-size:12px}.form-editor .ff-switch-sm .el-switch__core{height:16px;width:26px!important}.form-editor .ff-switch-sm .el-switch__core:after{height:12px;width:12px}.form-editor .ff-switch-sm.is-checked .el-switch__core:after{margin-left:-13px}.form-editor__body-content{margin:0 auto;max-width:100%}.form-editor__body-content .ff_check_photo_item{float:left;margin-bottom:10px;margin-right:10px}.form-editor__body-content .ff_check_photo_item .ff_photo_holder{background-position:50%;background-repeat:no-repeat;background-size:cover;height:120px;width:120px}div#js-form-editor--body .form-editor__body-content{background-color:#fff}body.ff_full_screen{overflow-y:hidden}body.ff_full_screen .form-editor--sidebar-content{height:calc(100vh - 56px)}body.ff_full_screen #switchScreen:before{content:"\e96b";font-weight:600}body.ff_full_screen .ff_screen_editor{background:#fff;bottom:0;color:#444;cursor:default;height:100%;left:0!important;margin:0!important;min-width:0;overflow:hidden;position:fixed;right:0!important;top:0;z-index:100099!important}body.ff_full_screen .ff_screen_editor .form_internal_menu{left:0;position:absolute;right:0;top:0;z-index:5}body.ff_full_screen div#js-form-editor--body .form-editor__body-content{padding:30px}body.ff_full_screen .form-editor--sidebar{margin-top:52.2px}.ff_screen_editor{padding:0}.styler_row{margin-bottom:10px;margin-left:-5px;margin-right:-5px;overflow:hidden;width:100%}.styler_row .el-form-item{float:left;margin-bottom:10px;padding-left:5px;padding-right:5px;width:50%}.styler_row.styler_row_3 .el-form-item{margin-right:1%;width:32%}#wp-link-wrap,.el-color-picker__panel,.el-dialog__wrapper,.el-message,.el-notification,.el-notification.right,.el-popper,.el-tooltip__popper,div.mce-inline-toolbar-grp.mce-arrow-up{z-index:9999999999!important}.ff_code_editor textarea{background:#353535!important;color:#fff!important}.el-popper.el-dropdown-list-wrapper .el-dropdown-menu{width:100%}.ff_editor_html{display:block;min-height:24px;overflow:hidden;width:100%}.ff_editor_html img.aligncenter{display:block;margin:0 auto;text-align:center}.address-field-option__settings{margin-top:10px}.address-field-option .pad-b-20{padding-bottom:20px!important}.el-form-item .ff_list_inline>div{display:-moz-inline-stack;display:inline-block;float:none!important;margin:0 15px 10px 0;width:auto!important}.el-form-item .ff_list_3col{width:100%}.el-form-item .ff_list_3col>div{display:-moz-inline-stack;display:inline-block;margin:0 0 2px;min-height:28px;padding-right:16px;vertical-align:top;width:33.3%}.el-form-item .ff_list_2col{width:100%}.el-form-item .ff_list_2col>div{display:-moz-inline-stack;display:inline-block;margin:0;min-height:28px;padding-right:16px;vertical-align:top;width:50%}.el-form-item .ff_list_4col{width:100%}.el-form-item .ff_list_4col>div{display:-moz-inline-stack;display:inline-block;margin:0;min-height:28px;padding-right:16px;vertical-align:top;width:25%}.el-form-item .ff_list_5col{width:100%}.el-form-item .ff_list_5col>div{display:-moz-inline-stack;display:inline-block;margin:0;min-height:28px;padding-right:16px;vertical-align:top;width:20%}.el-form-item .ff_list_buttons>div:not(.ff_checkable_images){-webkit-appearance:none;background:#fff;border:1px solid #dcdfe6;border-left:0;border-radius:0;box-sizing:border-box;color:#606266;cursor:pointer;display:-moz-inline-stack;display:inline-block;float:none!important;font-weight:500;line-height:1;margin:0 0 10px;outline:none;padding:6px 20px;position:relative;text-align:center;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;vertical-align:middle;white-space:nowrap;width:auto!important}.el-form-item .ff_list_buttons>div:not(.ff_checkable_images) input{margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.el-form-item .ff_list_buttons>div:not(.ff_checkable_images):first-child{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-form-item .ff_list_buttons>div:not(.ff_checkable_images):last-child{border-radius:0 4px 4px 0}.el-form-item .el-form-item__content .ff-el-form-captcha-img-wrapper{max-height:60px;max-width:222px}.el-form-item .el-form-item__content .ff-el-form-captcha-img-wrapper img{max-width:100%}.el-form-item .el-form-item__content .ff-el-calendar-wrapper{text-align:center}.el-form-item .el-form-item__content .ff-el-calendar-wrapper img{max-height:300px}.el-form-item .ff-group-select .el-loading-spinner{background-color:#f0f8ff;border-radius:7px}.el-form-item .ff-group-select .el-loading-spinner .el-loading-text{margin:10px 0}#wpwrap{background:#fff}#switchScreen{color:#606266;cursor:pointer;font-size:28px;vertical-align:middle}.ff_setting_menu li{opacity:.5}.ff_setting_menu li.active,.ff_setting_menu li:hover{opacity:1}.editor_play_video{align-items:center;background:#fff;border:1px solid #1e1f21;border-radius:10px;box-shadow:2px 2px #1e1f21;color:#1e1f21;cursor:pointer;display:inline-flex;font-size:16px;left:50%;padding:12px 24px;position:absolute;top:350px;transform:translateX(-50%)}.editor_play_video .el-icon{margin-right:8px}.editor_play_video:hover{background-color:#1e1f21;box-shadow:none;color:#fff}.editor_play_video:hover .el-icon{fill:#fff}.form-editor .form-editor--sidebar{position:relative}.form-editor .code{overflow-x:scroll}.form-editor .ff-user-guide{margin-top:-155px;padding-left:40px;text-align:center}.form-editor .ff-user-guide img{width:100%}.form-editor .post-form-settings label.el-form-item__label{color:#606266;font-weight:500;margin-top:8px}.form-editor .el-button--mini{padding:7px 12px}.action-btn{display:inline-flex}.action-btn i{cursor:pointer;vertical-align:middle}.ff-input-customization-wrap .option-fields-section--content .wp_vue_editor_wrapper .wp-media-buttons{right:10px}.ff-input-customization-wrap .option-fields-section--content .wp_vue_editor_wrapper .wp-switch-editor{padding:4px 12px}.chained-select-settings .uploader{height:130px;margin-top:10px;position:relative;width:100%}.chained-select-settings .el-upload--text,.chained-select-settings .el-upload-dragger{height:130px;width:100%}.chained-select-settings .el-upload-dragger .el-icon-upload{margin-top:20px}.chained-select-settings .el-upload-list,.chained-select-settings .el-upload-list .el-upload-list__item{margin:-5px 0 0}.chained-select-settings .btn-danger{color:#ff6154}.conditional-logic{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.condition-field,.condition-value{width:30%}.condition-operator{width:85px}.form-control-2{border-radius:5px;height:28px;line-height:28;padding:2px 5px;vertical-align:middle}mark{background-color:#929292!important;color:#fff!important;display:inline-block;font-size:11px;line-height:1;padding:5px}.highlighted .field-options-settings{background-color:#ffc6c6}.flexable{display:flex}.flexable .el-form-item{margin-right:5px}.flexable .el-form-item:last-of-type{margin-right:0}.address-field-option .el-form-item{margin-bottom:15px}.address-field-option .el-checkbox+.el-checkbox{margin-left:0}.address-field-option .required-checkbox{display:none;margin-right:10px}.address-field-option .required-checkbox.is-open{display:block}.address-field-option__settings{display:none;margin-top:15px}.address-field-option__settings.is-open{display:block}.el-form-item.ff_full_width_child .el-form-item__content{margin-left:0!important;width:100%}.el-select .el-input{min-width:70px}.pull-right.top-check-action>label{margin-right:10px}.pull-right.top-check-action>label:last-child{margin-right:0}.pull-right.top-check-action span.el-checkbox__label{padding-left:3px}.item_desc textarea{margin-top:5px;width:100%}.optionsToRender{margin:7px 0}.address-field-wrapper{margin-top:10px}.chained-Select-template .header{margin-bottom:5px;margin-right:5px;width:100%}.checkable-grids{border-collapse:collapse}.checkable-grids thead>tr>th{background:#f1f1f1;padding:7px 10px}.checkable-grids tbody>tr>td{padding:7px 10px}.checkable-grids tbody>tr>td:not(:first-of-type){text-align:center}.checkable-grids tbody>tr:nth-child(2n)>td{background:#f1f1f1}.checkable-grids tbody>tr:nth-child(2n-1)>td{background:#fff}.net-promoter-button{border-radius:inherit}.ff-el-net-promoter-tags{display:flex;justify-content:space-between;max-width:550px}.ff-el-net-promoter-tags p{font-size:12px;opacity:.6}.ff-el-rate{display:inline-block}.repeat-field--item{display:flex;margin-right:5px;width:calc(100% - 40px)}.repeat-field--item>div{flex-grow:1;margin:0 3px}.repeat-field--item .el-form-item__label{text-align:left}.repeat-field--item .el-select{width:100%}.repeat-field .el-form-item__content{align-items:center;display:flex}.repeat-field-actions{margin-top:26px}.repeater-item-container{display:flex}.repeater-item-container .repeat-field-actions{align-self:center}.section-break__title{font-size:18px;margin-bottom:10px;margin-top:0}.el-form-item .select{background-position:top 55% right 12px;border-color:#dadbdd;border-radius:7px;max-width:100%;min-height:40px;min-width:100%;padding-left:15px;width:100%}.ff-btn{border:1px solid transparent;border-radius:8px;display:inline-block;font-size:14px;font-weight:500;line-height:1.5;padding:10px 20px;text-align:center;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.ff-btn:focus,.ff-btn:hover{box-shadow:0 0 0 2px rgba(0,123,255,.25);outline:0;text-decoration:none}.ff-btn.disabled,.ff-btn:disabled{opacity:.65}.ff-btn-lg{border-radius:6px;font-size:18px;line-height:1.5;padding:8px 16px}.ff-btn-sm{border-radius:3px;font-size:13px;line-height:1.5;padding:4px 8px}.ff-btn-block{display:block;width:100%}.ff-btn-primary{background-color:#1a7efb;color:#fff}.ff-btn-green{background-color:#67c23a;color:#fff}.ff-btn-orange{background-color:#e6a23c;color:#fff}.ff-btn-red{background-color:#f56c6c;color:#fff}.ff-btn-gray{background-color:#909399;color:#fff}.taxonomy-template .el-form-item .select{height:35px!important;min-width:100%;width:100%}.taxonomy-template .el-form-item .el-checkbox{display:block;line-height:19px;margin:5px 0}.taxonomy-template .el-form-item .el-checkbox .el-checkbox__label{padding-left:5px}.taxonomy-template .el-form-item .el-checkbox .el-checkbox__inner{background:#fff;border:1px solid #7e8993;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);clear:both;color:#555;height:16px;margin:-4px 4px 0 0;min-width:16px;transition:border-color .05s ease-in-out;width:16px}.ff_tc{overflow:hidden}.ff_tc .el-checkbox__input{vertical-align:top}.ff_tc .el-checkbox__label{line-height:1;overflow:hidden;white-space:break-spaces;word-break:break-word}.v-row .v-col--50:last-child,.v-row.ff_items_1 .v-col--33,.v-row.ff_items_2 .v-col--33{padding-right:15px}.ff_bulk_option_groups{align-items:center;display:flex;overflow-x:auto;white-space:nowrap}.ff_bulk_option_groups li{background-color:#ededed;border-radius:30px;cursor:pointer;padding:6px 20px;transition:.2s}.ff_bulk_option_groups li:not(:last-child){margin-right:8px}.ff_bulk_option_groups li.active,.ff_bulk_option_groups li:hover{background-color:#d2d2d3;color:#1e1f21}#more-menu .el-icon-s-operation{color:#606266;font-size:25px}#more-menu .ff-icon-more-vertical{font-size:30px}.dragable-address-fields div.vddl-nodrag{align-items:flex-start}.dragable-address-fields .handle{height:24px}.button_styler_customizer{position:relative}.button_styler_customizer:after{background-color:#fff;content:"";height:10px;left:20px;position:absolute;top:-4px;transform:rotate(134deg);width:10px}.search-element-wrap .el-input__inner{background-color:hsla(0,0%,100%,.57);border-color:#ced0d4;height:44px}.search-element-wrap .el-input__inner:focus,.search-element-wrap .el-input__inner:hover{background-color:#fff;border-color:#ced0d4!important}.search-element-wrap .el-input__inner:focus::-webkit-input-placeholder,.search-element-wrap .el-input__inner:hover::-webkit-input-placeholder{opacity:.6}.search-element-wrap .el-input__inner::-webkit-input-placeholder{color:#626261}.search-element-wrap .active .el-input__inner{background-color:#fff}.ff_conditions_warp{background:#f2f2f2;border-radius:5px;margin:0 -10px 10px;padding:10px}.option-fields-section--content .v-row{flex-direction:column}.option-fields-section--content .v-col--50{padding-bottom:6px;width:100%}.option-fields-section--content .v-row .v-col--50:last-child{padding-bottom:0}.ff-edit-history-wrap .option-fields-section--title:after{display:none}.ff-edit-history-wrap .option-fields-section--title{display:flex;justify-content:space-between}.ff-edit-history-wrap .option-fields-section--title h5{color:#1a7efb;font-size:14px}.ff-edit-history-wrap .timeline{font-size:14px;list-style:none;margin:0;max-height:70vh;overflow-y:auto}.ff-edit-history-wrap .timeline .timeline_item{border-bottom:1px solid transparent;border-top:1px solid transparent;padding:6px 25px 0 42px;position:relative}.ff-edit-history-wrap .timeline .timeline_item:first-child{margin-top:10px}.ff-edit-history-wrap .timeline .timeline_item:hover{background:#f0f8ff;border-color:#dfdfdf}.ff-edit-history-wrap .timeline .timeline_item:before{background-color:#b1bacb;border-radius:50%;content:"";height:12px;left:18px;position:absolute;top:15px;width:12px}.ff-edit-history-wrap .timeline .timeline_item:after{border-left:2px solid #e4e7ed;content:"";height:calc(100% - 10px);left:23px;position:absolute;top:27px;z-index:1}.ff-edit-history-wrap .timeline .timeline_item:after:last-child{display:none}.ff-edit-history-wrap .timeline .timeline_item .timeline_item_header{align-items:center;display:flex;justify-content:space-between}.ff-edit-history-wrap .timeline .timeline_item .details_list{border:1px solid #ececed;border-bottom:none;font-size:small;padding:7px}.ff-edit-history-wrap .timeline .timeline_item .details_list:last-child{border-bottom:1px solid #e9e0e0}.ff-edit-history-wrap .timeline .timeline_item .timeline_details.is-visible ul{background:#fff;margin-bottom:15px;max-height:160px;overflow:auto}.ff-edit-history-wrap .timeline .timeline-action{align-content:center}.ff-edit-history-wrap .timeline .timeline_content{color:#303133}.ff-edit-history-wrap .timeline .timeline_content span{font-weight:500}.ff-edit-history-wrap .timeline .timeline_date{color:#686f7a;cursor:pointer;display:block;font-size:13px;margin-bottom:10px}.ff-edit-history-wrap .timeline_details{max-height:0;opacity:0;overflow:hidden;transition:max-height .3s ease-out,opacity .3s ease-out}.ff-edit-history-wrap .timeline_details.is-visible{max-height:500px;opacity:1}.ff-edit-history-wrap .el-icon-caret-bottom{transition:transform .3s ease}.ff-edit-history-wrap .el-icon-caret-bottom.is-active{transform:rotate(180deg)}.ff-undo-redo-container{border-right:1px solid #ececec;display:flex;gap:6px}.ff-undo-redo-container .ff-redo-button,.ff-undo-redo-container .ff-undo-button{background-color:transparent;border:none;border-radius:5px;cursor:pointer;padding:6px;transition:background-color .3s ease,opacity .3s ease}.ff-undo-redo-container .ff-redo-button svg,.ff-undo-redo-container .ff-undo-button svg{opacity:.5}.ff-undo-redo-container .ff-redo-button.active svg,.ff-undo-redo-container .ff-undo-button.active svg{opacity:1}.ff-undo-redo-container .ff-redo-button.active:hover svg,.ff-undo-redo-container .ff-undo-button.active:hover svg{opacity:.8}.ff-keyboard-shortcut-tooltip{position:relative}.ff-keyboard-shortcut-tooltip .ff-tooltip{background-color:#4b4c4d;border-radius:5px;color:#fff;font-size:12px;left:50%;opacity:0;padding:5px 10px;position:absolute;top:100%;transform:translateX(-50%);transition:opacity .3s ease,visibility .3s ease;visibility:hidden;white-space:nowrap;z-index:11}.ff-keyboard-shortcut-tooltip#saveFormData .ff-tooltip{padding:6px 12px;top:135%}.ff-keyboard-shortcut-tooltip:hover .ff-tooltip{opacity:1;visibility:visible}.panel{border:1px solid #ebebeb;border-radius:8px;margin-bottom:15px;overflow:hidden}.panel__heading{background:#f5f5f5;border-bottom:1px solid #ebebeb;height:42px}.panel__heading .form-name-editable{border-radius:2px;float:left;font-size:14px;margin:8px 0 8px 8px;max-width:250px;overflow:hidden;padding:4px 8px;text-overflow:ellipsis;white-space:nowrap}.panel__heading .form-name-editable:hover{background-color:#fff;cursor:pointer}.panel__heading .copy-form-shortcode{background-color:#909399;border-radius:2px;color:#fff;cursor:pointer;float:left;margin:8px 0 8px 8px;padding:4px 8px}.panel__heading--btn{padding:3px}.panel__heading .form-inline{float:left;padding:5px}.panel__body{padding:10px 0}.panel__body p{color:#666;font-size:14px;line-height:20px}.panel__body .panel__placeholder,.panel__body--item{background:#fff;box-sizing:border-box;min-height:78px;padding:14px;width:100%}.panel__body--item.no-padding-left{padding-left:0}.panel__body--item:last-child{border-bottom:none}.panel__body--item{margin-bottom:2px;max-width:100%;position:relative}.panel__body--item.selected{background-color:rgba(30,31,33,.05);border-left:3px solid #1a7efb;border-radius:4px}.panel__body--item>.popup-search-element{bottom:-10px;left:50%;opacity:0;position:absolute;transform:translateX(-50%);transition:all .3s;visibility:hidden;z-index:3}.panel__body--item.is-editor-inserter>.item-actions-wrapper,.panel__body--item.is-editor-inserter>.popup-search-element,.panel__body--item:hover>.item-actions-wrapper,.panel__body--item:hover>.popup-search-element{opacity:1;visibility:visible}.panel__body--item iframe,.panel__body--item img{max-width:100%}.panel .panel__placeholder{background:#f5f5f5}.panel.panel--info .panel__body,.panel>.panel__body{padding:15px}.el-fluid{width:100%!important}.label-block{display:inline-block;font-weight:500;line-height:1;margin-bottom:10px}.form-group{margin-bottom:15px}.form-control{background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);color:#555;display:block;font-size:14px;height:34px;line-height:1.42857143;padding:6px 12px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}textarea.form-control{height:auto}label.is-required:before{color:red;content:"* "}.el-checkbox-horizontal,.el-radio-horizontal{display:inline-block}.el-checkbox-horizontal .el-checkbox,.el-checkbox-horizontal .el-radio,.el-radio-horizontal .el-checkbox,.el-radio-horizontal .el-radio{display:block;margin-bottom:7px;margin-left:23px;white-space:normal}.el-checkbox-horizontal .el-checkbox+.el-checkbox,.el-checkbox-horizontal .el-checkbox+.el-radio,.el-checkbox-horizontal .el-radio+.el-checkbox,.el-checkbox-horizontal .el-radio+.el-radio,.el-radio-horizontal .el-checkbox+.el-checkbox,.el-radio-horizontal .el-checkbox+.el-radio,.el-radio-horizontal .el-radio+.el-checkbox,.el-radio-horizontal .el-radio+.el-radio{margin-left:23px}.el-checkbox-horizontal .el-checkbox__input,.el-checkbox-horizontal .el-radio__input,.el-radio-horizontal .el-checkbox__input,.el-radio-horizontal .el-radio__input{margin-left:-23px}.form-inline{display:inline-block}.form-inline .el-input{width:auto}.v-form-item{margin-bottom:15px}.v-form-item:last-of-type{margin-bottom:0}.v-form-item label{display:inline-block;margin-top:9px}.settings-page{background-color:#fff}.settings-body{padding:15px}.el-notification__content{text-align:left}.action-buttons .el-button+.el-button{margin-left:0}.el-box-card{box-shadow:none}.el-box-footer,.el-box-header{background-color:#edf1f6;padding:15px}.el-box-body{padding:15px}.el-form-item__force-inline.el-form-item__label{float:left;padding:11px 12px 11px 0}.el-form-item .el-form-item{margin-bottom:10px}.el-form-item__content .line{text-align:center}.el-basic-collapse{border:0;margin-bottom:15px}.el-basic-collapse .el-collapse-item__header{border:0;display:inline-block;padding-left:0}.el-basic-collapse .el-collapse-item__wrap{border:0}.el-basic-collapse .el-collapse-item__content{background-color:#fff;padding:0}.el-collapse-settings{border:0}.el-collapse-settings .el-collapse-item__header{background:#f5f5f3;border:0;border-radius:8px;font-size:16px;padding-left:20px;padding-right:10px}.el-collapse-settings .el-collapse-item__header .el-collapse-item__arrow{font-size:16px;font-weight:500}.el-collapse-settings .el-collapse-item__content{margin-top:15px;padding-bottom:0}.el-collapse-settings .el-collapse-item__arrow{line-height:48px}.el-collapse-settings .el-collapse-item__wrap{background-color:transparent;border-bottom:0;overflow:inherit}.el-popover{text-align:left}.option-fields-section--content .el-form-item__label{color:#1e1f21;font-weight:500;line-height:1;padding-bottom:10px}.option-fields-section--content .el-form-item__content{line-height:1.5;margin-bottom:5px}.option-fields-section--content .el-input-number--mini{line-height:28px}.option-fields-section--content strong{color:#1e1f21;font-weight:600}.el-dropdown-list{border:0;box-shadow:none;margin:0;max-height:280px;min-width:auto;overflow-y:scroll;padding:0;position:static;z-index:10}.el-dropdown-list .el-dropdown-menu__item{border-bottom:1px solid #f1f1f1;font-size:13px;line-height:18px;padding:4px 10px}.el-dropdown-list .el-dropdown-menu__item:last-of-type{border-bottom:0}.el-popper[x-placement^=bottom] .popper__arrow{top:-7px}.el-form-nested.el-form--label-left .el-form-item__label{float:left;padding:10px 5px 10px 0}.el-message{top:40px}.el-tabs--border-card{border-color:#ececec;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.05)}.el-tabs--border-card .el-tabs__header{background-color:transparent;border-top-left-radius:6px;border-top-right-radius:6px;padding:10px 14px}.el-tabs--border-card .el-tabs__header .el-tabs__item{border:0;border-radius:6px;font-size:13px;height:34px;line-height:34px;margin-top:0;padding-left:16px;padding-right:16px}.el-tabs--border-card .el-tabs__header .el-tabs__item:first-child{margin-left:0}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active{background-color:#d1e5fe;color:#1a7efb}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active:hover{color:#1a7efb}.el-button{align-items:center;display:inline-flex;transition:.3s}.el-button .el-loading-mask{border-radius:7px}.el-button .el-loading-mask .el-loading-spinner{margin-top:-12px}.el-button .el-loading-mask .el-loading-spinner .circular{height:24px;width:24px}.el-button span{align-items:center;display:inline-flex}.el-button-group .el-button span{display:inline-block}.el-button--block{justify-content:center;width:100%}.el-button--small .ff-icon{font-size:14px}.el-button--large{font-size:16px;padding:15px 20px}.el-button--soft.el-button--blue{background-color:#ebeef5;border-color:#ebeef5;color:#3b5998}.el-button--soft.el-button--blue:hover{background-color:#3b5998;border-color:#3b5998;color:#fff}.el-button--soft.el-button--primary{background-color:#e8f2ff;border-color:#e8f2ff;color:#1a7efb}.el-button--soft.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--soft.el-button--danger{background-color:#ffefee;border-color:#ffefee;color:#ff6154}.el-button--soft.el-button--danger:hover{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-button--soft.el-button--success{background-color:#e6ffeb;border-color:#e6ffeb;color:#00b27f}.el-button--soft.el-button--success:hover{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-button--soft.el-button--warning{background-color:#fff9ea;border-color:#fff9ea;color:#fcbe2d}.el-button--soft.el-button--warning:hover{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--soft.el-button--info{background-color:#ededed;border-color:#ededed;color:#4b4c4d}.el-button--soft.el-button--info:hover{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--soft.el-button--cyan{background-color:#e7fafe;border-color:#e7fafe;color:#0dcaf0}.el-button--soft.el-button--cyan:hover{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.el-button--soft.el-button--dark{background-color:#e9e9e9;border-color:#e9e9e9;color:#1e1f21}.el-button--soft.el-button--dark:hover{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--soft-2.el-button--primary{background-color:#d1e5fe;border-color:#d1e5fe;color:#1a7efb}.el-button--soft-2.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--icon.el-button--mini{border-radius:4px;padding:7px}.el-button--icon.el-button--small{border-radius:5px;font-size:14px;padding:8px}.el-button--icon.el-button--medium{border-radius:6px;padding:10px}.el-button--text-light{color:#606266}.el-button--info.is-plain{border-color:#ededed}.el-button--dark{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--dark:focus,.el-button--dark:hover{background-color:#3a3a40;border-color:#3a3a40;color:#fff}.el-button--primary:hover{background-color:#1565c9;border-color:#1565c9}.el-pager li{font-weight:600}.form-editor-elements:not(.el-form--label-left):not(.el-form--label-right) .el-form-item__label{line-height:1}.folded .el-dialog__wrapper{left:36px}.el-dialog__wrapper .data-lost-msg{margin-top:10px}.ff-el-banner{border:1px solid #dce0e5;display:inline-block;float:left;height:250px;padding:5px;transition:border .3s;width:200px}.ff-el-banner,.ff-el-banner-group{overflow:hidden}.ff-el-banner-group .ff-el-banner{margin-bottom:30px;margin-right:10px}.ff-el-banner+.ff-el-banner{margin-right:10px}.ff-el-banner img{display:block;height:auto;width:100%}.ff-el-banner-header{background:#909399;color:#fff;font-size:13px;font-weight:400;margin:0;padding:3px 6px;text-align:center}.ff-el-banner-inner-item{height:inherit;overflow:hidden;position:relative}.ff-el-banner:hover .ff-el-banner-text-inside{opacity:1!important;visibility:visible!important}.ff-el-banner-text-inside{display:flex;flex-direction:column;justify-content:center}.ff-el-banner-text-inside-hoverable{bottom:0;color:#fff;left:0;padding:10px;position:absolute;right:0;top:0;transition:all .3s}.ff-el-banner-text-inside .form-title{color:#fff;margin:0 0 10px}.compact td>.cell,.compact th>.cell{white-space:nowrap}.el-tooltip__popper p{margin-bottom:0}.el-dropdown-menu{left:unset;max-width:270px}.el-dropdown-link{cursor:pointer}.el-dropdown-link-lg{color:#1e1f21;font-size:24px;font-weight:600}.el-dropdown-link-lg .el-icon{font-size:20px}.el-switch--small .el-switch__core{height:16px;width:28px!important}.el-switch--small .el-switch__core:after{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core:after{margin-left:-13px}.el-switch--small .el-switch__label *{font-size:13px;font-weight:500}.el-message-box__title{color:#1e1f21;font-weight:500}.el-input-group--append{position:relative}.el-input-group--append .el-input__inner{border-bottom-right-radius:8px;border-top-right-radius:8px}.el-input-group__append,.el-input-group__prepend{background-color:#f2f2f2;border:0;border-radius:5px;display:grid;height:30px;padding:0;position:absolute;text-align:center;top:5px;width:30px}.el-input-group__append:hover,.el-input-group__prepend:hover{background-color:#e0e0e0}.el-input-group__append .el-icon-more,.el-input-group__prepend .el-icon-more{transform:rotate(90deg)}.el-input-group__append .el-button,.el-input-group__prepend .el-button{margin:0;padding:0}.el-input-group__append{right:4px}.el-input-group__prepend{left:4px}.el-table__fixed,.el-table__fixed-right{background-color:#fff}.el-table__fixed-right:before,.el-table__fixed:before{display:none}.el-radio-button__orig-radio:checked+.el-radio-button__inner{box-shadow:none}.input-with-select{align-items:center;display:flex}.input-with-select.el-input-group--append .el-input__inner{border-bottom-right-radius:0;border-top-right-radius:0}.input-with-select .el-select{background-color:#fff;border:1px solid #dadbdd;height:40px;margin:0}.input-with-select .el-select .el-input__inner{border:0}.input-with-select .el-input-group__append,.input-with-select .el-input-group__prepend{border-radius:0;flex:1;height:auto;left:0;position:inherit;top:0;width:auto}.input-with-select .el-input-group__append:hover,.input-with-select .el-input-group__prepend:hover{background-color:transparent}.input-with-select .el-input-group__prepend .el-select{border-bottom-left-radius:8px;border-right:0;border-top-left-radius:8px}.input-with-select .el-input-group__append .el-select{border-bottom-right-radius:8px;border-left:0;border-top-right-radius:8px}.chain-select-upload-button .el-input-group__append,.chain-select-upload-button .el-input-group__prepend{width:70px}.el-radio-group-dark .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1e1f21;border-color:#1e1f21}.el-radio-group-info .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;border-color:#4b4c4d}.el-table thead .cell{color:#1e1f21;font-weight:500}.el-table--border{border-radius:6px}.ff-input-s1 .el-input .el-select__caret{color:#1e1f21}.ff-input-s1 .el-input .el-icon-arrow-up:before{font-weight:600}.el-radio-button--small:first-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-radio-button--small:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-input--mini .el-input__inner{border-radius:4px}.el-input--large .el-input__inner{font-size:16px;height:48px;padding-left:20px;padding-right:20px}.el-input-number--mini{line-height:28px}.el-input-number--mini .el-input-number__decrease{border-radius:4px 0 0 4px;left:1px}.el-input-number--mini .el-input-number__increase{border-radius:0 4px 4px 0}.el-input-number__decrease,.el-input-number__increase{background-color:#f2f2f2}.el-dialog__header .title+.text{margin-top:6px}.el-dialog__header .text{margin-bottom:0}.el-dialog__header_group{align-items:center;display:flex}.el-checkbox-horizontal .el-checkbox{display:flex}.el-checkbox-horizontal .el-checkbox__input{align-self:flex-start;padding-top:3px}.el-skeleton__item{border-radius:4px}.list-group{margin:0}.list-group>li.title{background:#ddd;padding:5px 10px}.list-group li{line-height:1.5;margin-bottom:6px}.list-group li>ul{padding-left:10px;padding-right:10px}.flex-container{align-items:center;display:flex}.flex-container .flex-col{flex:1 100%;padding-left:10px;padding-right:10px}.flex-container .flex-col:first-child{padding-left:0}.flex-container .flex-col:last-child{padding-right:0}.hidden-field-item{background-color:#f5f5f5;margin-bottom:10px}.form-step__wrapper.form-step__wrapper{background:#f5f5f5;border:1px solid #f0f0f0;padding:10px}.form-step__start{border-radius:3px 3px 0 0;border-radius:0 0 3px 3px;margin-bottom:10px}.step-start{margin-left:-10px;margin-right:-10px}.step-start__indicator{padding:5px 0;position:relative;text-align:center}.step-start__indicator strong{background:#f5f5f5;color:#000;font-size:14px;font-weight:600;padding:3px 10px;position:relative;z-index:2}.step-start__indicator hr{border:0;border-top:1px solid #e3e3e3;left:10px;position:absolute;right:10px;top:7px;z-index:1}.vddl-list{min-height:78px;padding-left:0}.vddl-placeholder{background:#f5f5f5;min-height:78px;width:100%}.empty-dropzone,.vddl-placeholder{border:1px dashed #ced0d4;border-radius:6px}.empty-dropzone{height:78px;margin:0 10px;position:relative;z-index:2}.empty-dropzone.vddl-dragover{border-color:transparent;height:auto}.empty-dropzone-placeholder{display:table-cell;height:inherit;text-align:center;vertical-align:middle;width:1000px}.empty-dropzone-placeholder .popup-search-element{position:relative;z-index:2}.popup-search-element{background:#4b4c4d;border-radius:50%;color:#fff;cursor:pointer;display:inline-block;font-size:16px;font-weight:700;height:26px;line-height:26px;text-align:center;width:26px}.popup-search-element:hover{background:#1a7efb}.field-option-settings .section-heading{border-bottom:1px solid #f5f5f5;font-size:15px;margin-bottom:16px;margin-top:0;padding-bottom:8px}.item-actions-wrapper{opacity:0;position:absolute;top:0;transition:all .3s;visibility:hidden;z-index:3}.item-actions{background-color:#4b4c4d;border-radius:6px;display:flex;flex-direction:row;overflow:hidden;position:absolute;right:14px;top:8px}.item-actions span{display:none}.item-actions .action-menu-item:hover{background-color:#1a7efb}.item-actions .el-icon{color:#fff;cursor:pointer;padding:10px}.context-menu-active{z-index:5}.context-menu-active span{display:block}.context-menu-active .item-actions{background-color:#2c2c2e;border:1px solid #3a3a3c;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.3);flex-direction:column;max-width:100px;min-width:220px;padding:6px 0;position:absolute;z-index:1000}.context-menu-active .action-menu-item{align-items:center;color:#e9e6e6;cursor:pointer;display:flex;padding:2px 4px;transition:background-color .2s,color .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.context-menu-active .action-menu-item .el-icon{color:#c1bfbf}.context-menu-active .action-menu-item:active{background-color:#4a4a4c}.context-menu-active .context-menu__separator{background-color:#3a3a3c;height:1px;margin:6px 0}.context-menu-active .action-menu-item-danger{color:#ff453a}.context-menu-active .action-menu-item-danger:hover{background-color:#3a2a2a}.hover-action-top-right{right:10px;top:-10px;width:38%}.hover-action-top-right .item-actions{position:inherit;right:auto;top:auto}.hover-action-middle{background-color:rgba(30,31,33,.05);border-radius:4px;height:100%;left:0;width:100%}.item-container{border:1px dashed #ced0d4;border-radius:6px;display:flex;padding:5px 10px}.item-container .splitpanes .splitpanes__pane .ff_custom_button{margin-top:23px}.item-container .col{background:rgba(255,185,0,.08);border-right:1px dashed #ced0d4;box-sizing:border-box;flex-basis:0;flex-grow:1}.item-container .col .panel__body{background:transparent}.item-container .col:last-of-type{border-right:0}.ff-el-form-left .el-form-item__label,.ff-el-form-right .el-form-item__label{float:left!important;line-height:40px;padding-bottom:0;padding-right:10px;width:120px}.ff-el-form-left .el-form-item__content,.ff-el-form-right .el-form-item__content{margin-left:120px}.ff-el-form-left .el-form-item__label{text-align:left}.ff-el-form-right .el-form-item__label{text-align:right}.ff-el-form-top .el-form-item__label{display:inline-block;float:none;line-height:1;padding-bottom:10px;text-align:left}.ff-el-form-top .el-form-item__content{margin-left:auto!important}.action-btn .icon{cursor:pointer;vertical-align:middle}.sr-only{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.editor-inserter__wrapper{height:auto;position:relative}.editor-inserter__wrapper:after{background-color:#fff;box-shadow:-4px -4px 8px rgba(30,31,33,.05);content:"";height:14px;left:50%;position:absolute;top:-7px;transform:translateX(-50%) rotate(45deg);width:14px}.editor-inserter__wrapper.is-bottom:after,.editor-inserter__wrapper.is-bottom:before{border-top:none}.editor-inserter__wrapper.is-bottom:before{top:-9px}.editor-inserter__wrapper.is-bottom:after{top:-7px}.editor-inserter__wrapper.is-top:after,.editor-inserter__wrapper.is-top:before{border-bottom:none}.editor-inserter__wrapper.is-top:before{bottom:-9px}.editor-inserter__wrapper.is-top:after{bottom:-7px}.editor-inserter__contents{height:243px;overflow:scroll}.editor-inserter__content-items{display:flex;flex-wrap:wrap;padding:10px}.editor-inserter__content-item{background-color:#fff;border-radius:6px;cursor:pointer;font-size:14px;padding:15px;text-align:center;width:33.3333333333%}.editor-inserter__content-item:hover{background-color:#f5f5f3;color:#1e1f21}.editor-inserter__content-item .icon{font-size:18px;margin-bottom:4px}.editor-inserter__content-item .icon.dashicons{font-family:dashicons}.editor-inserter__content-item div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-inserter__search.editor-inserter__search{padding-bottom:5px;padding-top:5px;width:100%}.editor-inserter__tabs{padding-left:20px;padding-right:20px}.editor-inserter__tabs li:not(:last-child){margin-right:10px}.editor-inserter__tabs li a{border-radius:6px;padding:8px 6px}.search-popup-wrapper{background-color:#fff;border-radius:8px;box-shadow:0 40px 64px -12px rgba(0,0,0,.08),0 0 14px -4px rgba(0,0,0,.05),0 32px 48px -8px rgba(0,0,0,.1);position:fixed;z-index:3}.userContent{border:1px solid #ebedee;max-height:200px;overflow:scroll;padding:20px}.address-field-option{margin-bottom:10px;padding-bottom:10px;width:100%}.address-field-option .el-icon-caret-top,.address-field-option>.el-icon-caret-bottom{border-radius:3px;font-size:18px;margin-top:-2px;padding:2px 4px;transition:.2s}.address-field-option .el-icon-caret-top:hover,.address-field-option>.el-icon-caret-bottom:hover,.address-field-option>.el-icon-caret-top{background-color:#f2f2f2}.address-field-option__settings{position:relative}.address-field-option__settings:after{background-color:#f2f2f2;content:"";height:10px;left:20px;position:absolute;top:-5px;transform:rotate(134deg);width:10px}.address-field-option__settings.is-open{background:#f2f2f2;border-radius:6px;padding:15px}.vddl-list__handle_scrollable{background:#fff;margin-bottom:10px;margin-top:5px;max-height:190px;overflow:scroll;padding:5px 10px;width:100%}.vddl-handle.handle+.address-field-option{margin-left:10px}.entry_navs a{padding:2px 5px;text-decoration:none}.entry_navs a.active{background:#20a0ff;color:#fff}.entry-multi-texts{display:flex;flex-wrap:wrap;margin-left:-7px;margin-right:-7px}.entry-multi-texts .mult-text-each{padding-left:7px;padding-right:7px;width:32%}.ff_entry_user_change{position:absolute;right:0;top:-5px}.addresss_editor{background:#eaeaea;display:flex;flex-wrap:wrap;padding:20px 20px 10px}.addresss_editor .each_address_field{line-height:1;margin-bottom:20px;padding-left:7px;padding-right:7px;width:47%}.addresss_editor .each_address_field label{color:#1e1f21;display:block;font-weight:500;margin-bottom:10px}.repeat_field_items{display:flex;flex-direction:row;flex-wrap:wrap;overflow:hidden;width:100%}.repeat_field_items .field_item{display:flex;flex-basis:100%;flex:1;flex-direction:column;padding-right:20px}.repeat_field_items .field_item.field_item_action{display:block!important;flex:0.35;padding-right:0}.ff-table,.ff_entry_table_field,table.editor_table{border-collapse:collapse;display:table;text-align:left;white-space:normal;width:100%}.ff-table td,.ff_entry_table_field td,table.editor_table td{border:1px solid #e4e4e4;padding:7px;text-align:left}.ff-table th,.ff_entry_table_field th,table.editor_table th{background:#f5f5f5;border:1px solid #e4e4e4;padding:0 7px}.ff-table .action-buttons-group,.ff_entry_table_field .action-buttons-group,table.editor_table .action-buttons-group{display:flex}.ff-payment-table tbody td{padding:15px 10px}.ff-payment-table thead th{font-size:120%;font-weight:500;padding:15px 10px}.ff-payment-table tfoot th{padding:10px}.ff-payment-table tfoot .text-right{text-align:right}.ff_list_items li{display:flex;list-style:none;overflow:hidden;padding:7px 0}.ff_list_items li .dashicons,.ff_list_items li .dashicons-before:before{line-height:inherit}.ff_list_items li:hover{background:#f7fafc}.ff_list_items li .ff_list_header{color:#1e1f21;font-weight:600;width:180px}.edit_entry_view .el-select{width:100%}.edit_entry_view .el-form-item>label{color:#1e1f21;font-weight:500}.edit_entry_view .el-form-item{margin-bottom:0;padding-bottom:14px;padding-top:14px}.edit_entry_view .el-form-item:nth-child(2n){background:#f9f7f7;padding-left:20px;padding-right:20px}.fluentform-wrapper .json_action{background-color:#ededed;border-radius:5px;color:#606266;cursor:pointer;font-size:16px;height:26px;line-height:26px;margin-right:8px;text-align:center;width:26px}.fluentform-wrapper .json_action:hover{background-color:#dbdbdb}.fluentform-wrapper .show_code{background:#2e2a2a;border:0;color:#fff;line-height:24px;min-height:500px;padding:20px;width:100%}.fluentform-wrapper .entry-details{background-color:#fff}.fluentform-wrapper .entry-details .table{border-collapse:collapse;width:100%}.fluentform-wrapper .entry-details .table tr:nth-child(2n),.fluentform-wrapper .entry-details .table tr:nth-child(odd){background-color:#fff}.fluentform-wrapper .entry-details .table tr td{padding:8px 10px}.fluentform-wrapper .entry-title{border-bottom:1px solid #fdfdfd;font-size:17px;margin:0;padding:15px}.fluentform-wrapper .entry-body,.fluentform-wrapper .entry-field,.fluentform-wrapper .entry-value{padding:6px 10px}.fluentform-wrapper .entry-footer{border-top:1px solid #ececec;margin-top:12px;padding-top:20px}.response_wrapper .response_header{background-color:#eaf2fa;border-bottom:1px solid #fff;font-weight:700;line-height:1.5;padding:7px 7px 7px 10px}.response_wrapper .response_body{border-bottom:1px solid #dfdfdf;line-height:1.8;overflow:hidden;padding:7px 7px 15px 40px}.response_wrapper .response_body *{box-sizing:border-box}.ff-table{border-collapse:collapse;text-align:left;width:100%}.ff-table thead>tr>th{background:#f1f1f1;color:#1e1f21;font-weight:500;padding:7px 10px}.ff-table tbody>tr>td{padding:7px 10px}.ff-table tbody>tr:nth-child(2n)>td{background:#f1f1f1}.ff-table tbody>tr:nth-child(2n-1)>td{background:#fff}.input-image{float:left;height:auto;margin-right:10px;max-width:100%;width:150px}.input-image img{width:100%}.input_file_ext{background:#eee;color:#a7a3a3;display:block;font-size:16px;padding:15px 10px;text-align:center;width:100%}.input_file_ext i{color:#797878;display:block;font-size:22px}.input_file a,.input_file a:hover{text-decoration:none}.entry_info_box{margin-bottom:24px}.entry_info_box_header{align-items:center;display:flex;justify-content:space-between}.entry_info_box_title{align-items:center;color:#1e1f21;display:inline-flex;font-size:17px;font-weight:600}.ff_entry_detail_wrap .ff_card{margin-bottom:24px}.ff_entry_detail_wrap .entry_submission_log_des{overflow-y:auto}.wpf_each_entry{border-bottom:1px solid #ececec;padding:12px 0}.wpf_each_entry:first-child{padding-top:0}.wpf_each_entry:last-child{border-bottom:0;padding-bottom:0}.wpf_entry_label{color:#1e1f21;font-size:14px;font-weight:500;position:relative}.wpf_entry_value{margin-top:8px;white-space:pre-line;word-break:break-all}.wpf_entry_remove{position:absolute;right:0;top:0}.entry_info_body.narrow_items{padding:0 15px 15px}.entry_info_body.narrow_items .wpf_each_entry{margin:0 -15px;padding:10px 15px}.entry_info_body.narrow_items .wpf_each_entry *{word-break:break-all}.entry_info_body.narrow_items .wpf_each_entry p{margin:5px 0}.wpf_entry_value input[type=checkbox]:disabled:checked{border:1px solid #65afd2;opacity:1!important}.wpf_entry_value input[type=checkbox]:disabled{border:1px solid #909399;opacity:1!important}a.input-image{border:1px solid #e3e8ee}a.input-image:hover{border:1px solid gray}a.input-image:hover img{opacity:.8}.show_on_hover{display:none}.el-table__row:hover .show_on_hover{display:inline-block}.show_on_hover .icon-favorite{color:#fcbe2d;font-size:18px}.show_on_hover .icon-favorite.el-icon-star-on{font-size:20px}.show_on_hover .icon-status{color:#303133;font-size:16px}.show_on_hover [class*=el-icon-],.show_on_hover [class^=el-icon-]{margin-left:2px}.inline_actions{margin-left:5px}.inline_item.inline_actions{display:inline-block}.action_button{cursor:pointer}.current_form_name button.el-button.el-button--default.el-button--mini{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:10px}.ff_email_resend_inline+.compact_input{margin-left:10px}.compact_input .el-checkbox__label{padding-left:5px}.ff_report_body{min-height:20px;width:100%}@media print{.ff_nav_action,.form_internal_menu,div#adminmenumain,div#wpadminbar{display:none}.ff_chart_switcher,.ff_print_hide{display:none!important}div#wpcontent{margin-left:0;padding-left:0}html.wp-toolbar{padding:0}.wrap.ff_form_wrap,div#wpcontent{background:#fff}.ff_report_body{left:10px;position:absolute;right:10px;top:0}.ff_form_application_container{margin-top:0!important}.all_report_items{width:100%!important}.ff-table{border-collapse:collapse;float:right;text-align:left;width:auto}}.all_report_items .entriest_chart_wrapper{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.all_report_items .ff_card{margin-bottom:24px}.report_header{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.report_header .title{color:#1e1f21;font-size:16px;font-weight:600}.report_header .ff_chart_switcher span{background:#ededed;border-radius:6px;cursor:pointer;height:30px;line-height:30px;width:30px}.report_header .ff_chart_switcher span.active_chart{background:#1a7efb;color:#fff}.report_header .ff_chart_switcher span.ff_rotate_90{transform:rotate(90deg)}.report_body{display:flex;flex-wrap:wrap;justify-content:space-between;padding-top:30px;width:100%}.report_body .chart_data{width:50%}.report_body .ff_chart_view{max-width:380px;width:50%}ul.entry_item_list{list-style:disc;list-style-image:none;list-style-position:initial;list-style-type:disc;padding-left:30px}.star_big{display:inline-block;font-size:20px;margin-right:5px;vertical-align:middle!important}.wpf_each_entry ul{list-style:disc;padding-left:14px}.wpf_each_entry ul li:not(:last-child){margin-bottom:5px}.el-table-column--selection .cell{text-overflow:clip!important}.ff-error{background:#ff9800}.ff-error,.ff-success{color:#fff;padding:10px}.ff-success{background:#4caf50}tr.el-table__row td{padding:18px 0}.add_note_wrapper{padding:20px}.fluent_notes .fluent_note_content{background:#eaf2fa;font-size:13px;line-height:160%;padding:10px 15px}.fluent_notes .fluent_note_meta{font-size:11px;padding:5px 15px}.wpf_add_note_box button{margin-top:15px}.wpf_add_note_box{border-bottom:1px solid #ececec;display:block;margin-bottom:20px;overflow:hidden;padding-bottom:30px}span.ff_tag{background:#626261;border-radius:10px;color:#fff;font-size:10px;padding:4px 6px;text-transform:capitalize}.el-table .cell.el-tooltip{max-height:50px;overflow:hidden}.form-editor--sidebar{position:relative}.code{overflow-x:scroll}.search-element{padding:10px 20px}.ff-user-guide{margin-top:-105px;position:relative;text-align:center;z-index:1}.post-form-settings label.el-form-item__label{color:#606266;font-weight:500;margin-top:8px}.transaction_item_small{background:#f7f7f7;margin-bottom:16px}.transaction_item_heading{align-items:center;border-bottom:1px solid #d2d2d2;display:flex;justify-content:space-between;padding:14px 20px}.transaction_item_body{padding:14px 20px}.transaction_item_line{font-size:15px;margin-bottom:10px}.transaction_heading_title{display:inline-block;font-size:16px;font-weight:500}.ff_badge_status_pending{background-color:#fcbe2d}.ff_badge_status_paid{background:#00b27f;border-color:#00b27f;color:#fff}.entry_submission_log .wpf_entry_label{margin-bottom:10px}.entry_submission_log_component{font-weight:700;text-transform:capitalize}.entry_submission_log .log_status_error,.entry_submission_log .log_status_failed{background:#ff6154}.entry_submission_log .log_status_success{background:#00b27f}.ff_report_card+.ff_print_hide{margin-top:40px}.ff_as_container{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);margin-bottom:20px;padding:5px 10px}.ff_as_container .ff_rich_filters{background:#fdfdfd;border:1px solid #efefef;border-radius:4px;padding:10px}.ff_as_container .ff_rich_filters .ff_table{background:#f0f3f7;border:1px solid #dedcdc;box-shadow:none}.ff_as_container .ff_rich_filters .ff_table .filter_name{font-weight:500}.ff_as_container .ff_cond_or{border-bottom:1px dashed #d5dce1;color:gray;line-height:100%;margin:0 0 15px;padding:0;text-align:center}.ff_as_container .ff_cond_or em{background:#fff;font-size:1.2em;font-style:normal;margin:0 10px;padding:0 10px;position:relative;top:9px}@media (min-width:1281px){.ff_screen_editor .form_internal_menu_inner{flex-direction:row}.ff_screen_editor .form_internal_menu_inner .ff_menu{margin-left:0;padding-bottom:0}.ff_screen_conversational_design .ff_menu_back,.ff_screen_editor .ff_menu_back,.ff_screen_entries .ff_menu_back,.ff_screen_inventory_list .ff_menu_back,.ff_screen_msformentries .ff_menu_back,.ff_screen_settings .ff_menu_back{display:flex}.option-fields-section--content .v-row{flex-direction:row}.option-fields-section--content .v-col--50{padding-bottom:0;width:50%}.form-editor--body{padding:50px;width:65%}.form-editor--sidebar{width:35%}}@media (min-width:769px){.ff_header{align-items:center;flex-direction:row}.ff_header_group{margin-right:32px}.ff_menu{display:flex;margin-top:0}.ff_menu_toggle{display:none}.ff_form_wrap{padding-left:24px;padding-right:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_editor,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:0}}@media (min-width:1025px){.all-forms-search,.ff_entries_search_wrap{width:270px}.ff_entries_search_wrap{margin-left:auto}.all-forms-select{width:250px}.ff_layout_section_sidebar{width:280px}.ff_layout_section_container,.ff_layout_section_sidebar{padding:24px}.fluent_activation_wrapper .fluentform_label{width:470px}}@media (max-width:768px){.form_internal_menu{margin-left:-10px}.form_internal_menu ul.ff_setting_menu{float:right;padding-right:10px!important}.form_internal_menu ul.ff_setting_menu li a{padding:10px 3px!important}.form_internal_menu .ff_form_name_inner{max-width:100px}.form_internal_menu #switchScreen{margin-right:0;margin-top:14px}.ff_nav_action{float:right!important;text-align:left!important}input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{min-height:30px}.ff_form_main_nav .plugin-name{display:none}.row-actions{display:inline-block!important}.el-form .el-form-item .el-form-item__label{width:100%!important}.el-form .el-form-item .el-form-item__content{margin-left:0!important}.el-tabs__content{padding:20px 10px!important}.wpf_each_entry a{word-break:break-all}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu{top:0!important}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{display:block}.form_internal_menu_inner{background:#fff;border-radius:8px;box-shadow:0 1px 10px rgba(0,0,0,.2);display:none;flex-direction:column;padding:20px;position:absolute;right:20px;top:38px;width:300px;z-index:9999}.form_internal_menu_inner.active{display:flex}.ff_form_name{padding-bottom:10px;padding-top:10px}.ff_screen_editor .form_internal_menu_inner .ff_menu,.form_internal_menu .ff-navigation-right{margin-left:0}.ff_menu{align-items:flex-start;flex-direction:column;margin-bottom:10px}.ff_menu li{width:100%}.ff_menu li a{display:block;max-width:100%!important}.form_internal_menu .ff-navigation-right{align-items:flex-start}.ff-navigation-right{flex-direction:column}.form_internal_menu .el-button,.form_internal_menu .ff_shortcode_btn{margin-bottom:10px;margin-right:0}.form_internal_menu .ff-navigation-right .ff_more_menu{bottom:0;right:0;top:auto;transform:translateY(0)}.ff_screen_conversational_design .ff_menu,.ff_screen_editor .ff_menu,.ff_screen_entries .ff_menu,.ff_screen_inventory_list .ff_menu,.ff_screen_msformentries .ff_menu,.ff_screen_settings .ff_menu{padding-left:0;padding-right:0}.ff_tools_wrap .ff_settings_sidebar_wrap{height:100%}.ff_settings_sidebar_wrap{flex-shrink:0;left:-240px;position:absolute;transition:.3s;z-index:999}.ff_settings_sidebar_wrap.active{left:-10px}.ff_settings_sidebar_wrap.active .ff_layout_section_sidebar{box-shadow:2px 1px 10px 0 rgba(30,31,33,.1)}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle{right:-18px}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle .ff-icon:before{content:"\e919"}.ff_sidebar_toggle{display:flex}.ff_header{margin-left:-10px;position:relative}.ff_header .global-search-menu-button{position:absolute;right:60px;top:12px}.conditional-logic{flex-direction:column}.conditional-logic>*{width:100%}.el-radio-button-group{border:0}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner,.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner,.el-radio-button-group .el-radio-button__inner{border-radius:4px}}@media (max-width:425px){label.el-checkbox{display:inline-flex}.el-checkbox__label{white-space:normal}.el-checkbox__input{line-height:1.6}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{margin-right:0}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right a,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right button,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right span{font-size:10px;margin:0 3px;padding:5px 4px!important}#ff_form_entries_app .ff_nav_top .ff_nav_action,#ff_form_entries_app .ff_nav_top .ff_nav_title{margin-bottom:10px;width:100%}.form_internal_menu{margin:0 -10px;width:auto}.form_internal_menu ul.ff_setting_menu li a{font-size:11px}.ff_form_application_container{margin-top:0!important}.ff_form_main_nav .ninja-tab{font-size:12px;margin:0;padding:10px 5px}ul.el-pager{display:none!important}button.el-button.pull-right{float:left!important}.entry_header h3{clear:both;display:block;width:100%!important}.v-row .v-col--33{margin-bottom:15px;padding-right:0;width:100%!important}.v-row .v-col--33:last-child{margin-bottom:0}.option-fields-section--content{padding:15px 5px}.ff-add-confirmation-wrap .el-radio.is-bordered{margin-bottom:10px;margin-right:10px}.ff-add-confirmation-wrap .el-radio.is-bordered+.el-radio.is-bordered{margin-left:0}.ff-form-item-flex{flex-wrap:wrap;gap:10px}.ff_pagination_wrap.mt-4{margin-top:0!important}.ff_pagination{flex-wrap:wrap;margin-top:24px}.ff_pagination .el-pagination__jump{margin:10px 0 0}.ff_all_entries .ff_section_head_content{margin-top:24px}.ff_all_entries .ff_section_head_content .ff_advanced_search{right:unset}.ff_all_entries .ff_entries_details .ff_section_head .lead-title{margin-bottom:10px!important}.ff_all_entries .ff_entries_details .ff_radio_group_wrap{margin-bottom:10px;margin-top:10px}.ff_all_entries .ff_entries_details .ff_radio_group_wrap .ff_radio_group_s2{width:100%}}.el-popover{text-align:left!important;word-break:inherit!important} assets/css/add-ons-rtl.css000064400000174536147600120010011503 0ustar00@font-face{font-display:block;font-family:fluentform;font-style:normal;font-weight:400;src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd);src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd) format("embedded-opentype"),url(../fonts/fluentform.ttf?5fd4a17c106b6a8cae5c741ddbbe132c) format("truetype"),url(../fonts/fluentform.woff?31c9335ad614611f342d70917260470e) format("woff"),url(../fonts/fluentform.svg?1d0875320e0e3980ae21f2d18c21897a) format("svg")}[class*=" ff-icon-"],[class^=ff-icon-]{speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:fluentform!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.ff-icon-tablet:before{content:"\e96f"}.ff-icon-mobile:before{content:"\e970"}.ff-icon-monitor:before{content:"\e971"}.ff-icon-fullscreen-out:before{content:"\e96b"}.ff-icon-menu:before{content:"\e96a"}.ff-icon-play:before{content:"\e969"}.ff-icon-bug:before{content:"\e925"}.ff-icon-star-line:before{content:"\e94e"}.ff-icon-heart-clock:before{content:"\e966"}.ff-icon-microphone:before{content:"\e967"}.ff-icon-handshake:before{content:"\e968"}.ff-icon-ink-pen:before{content:"\e91e"}.ff-icon-arrow-left:before{content:"\e919"}.ff-icon-user-filled:before{content:"\e902"}.ff-icon-payment:before{content:"\e900"}.ff-icon-play-circle-filled:before{content:"\e901"}.ff-icon-promotion:before{content:"\e903"}.ff-icon-share-filled:before{content:"\e904"}.ff-icon-warning-filled:before{content:"\e905"}.ff-icon-more-vertical:before{content:"\e906"}.ff-icon-gift:before{content:"\e907"}.ff-icon-cursor:before{content:"\e908"}.ff-icon-hash:before{content:"\e909"}.ff-icon-photo:before{content:"\e90a"}.ff-icon-italic-light:before{content:"\e90b"}.ff-icon-keyboard:before{content:"\e90c"}.ff-icon-layers:before{content:"\e90d"}.ff-icon-left-align:before{content:"\e90e"}.ff-icon-light-10:before{content:"\e90f"}.ff-icon-map-pin:before{content:"\e910"}.ff-icon-lock:before{content:"\e911"}.ff-icon-email:before{content:"\e912"}.ff-icon-paragraph:before{content:"\e913"}.ff-icon-user:before{content:"\e914"}.ff-icon-phone-outgoing:before{content:"\e915"}.ff-icon-play-circle:before{content:"\e916"}.ff-icon-puzzle:before{content:"\e917"}.ff-icon-redo:before{content:"\e918"}.ff-icon-repeat:before{content:"\e91a"}.ff-icon-right-align:before{content:"\e91b"}.ff-icon-rocket-filled:before{content:"\e91c"}.ff-icon-setting:before{content:"\e91d"}.ff-icon-light-26:before{content:"\e91f"}.ff-icon-trash:before{content:"\e920"}.ff-icon-underline-alt:before{content:"\e921"}.ff-icon-undo:before{content:"\e922"}.ff-icon-upload-alt:before{content:"\e923"}.ff-icon-web-development:before{content:"\e924"}.ff-icon-underline:before{content:"\e926"}.ff-icon-italic:before{content:"\e927"}.ff-icon-filter-alt:before{content:"\e928"}.ff-icon-files:before{content:"\e929"}.ff-icon-file-add:before{content:"\e92a"}.ff-icon-fullscreen:before{content:"\e92b"}.ff-icon-donut-chart:before{content:"\e92c"}.ff-icon-dollar:before{content:"\e92d"}.ff-icon-document-light:before{content:"\e92e"}.ff-icon-document:before{content:"\e92f"}.ff-icon-document-alt:before{content:"\e930"}.ff-icon-design:before{content:"\e931"}.ff-icon-copy-filled:before{content:"\e932"}.ff-icon-copy:before{content:"\e933"}.ff-icon-code-alt:before{content:"\e934"}.ff-icon-code:before{content:"\e935"}.ff-icon-close-circle-filled:before{content:"\e936"}.ff-icon-chevron-double-left:before{content:"\e937"}.ff-icon-check:before{content:"\e938"}.ff-icon-center-align:before{content:"\e939"}.ff-icon-calendar:before{content:"\e93a"}.ff-icon-bookmark:before{content:"\e93b"}.ff-icon-bold:before{content:"\e93c"}.ff-icon-bold-light:before{content:"\e93d"}.ff-icon-bank:before{content:"\e93e"}.ff-icon-arrow-right:before{content:"\e93f"}.ff-icon-plus-filled:before{content:"\e940"}.ff-icon-plus:before{content:"\e941"}.ff-icon-checkmark-square:before{content:"\e942"}.ff-icon-download:before{content:"\e943"}.ff-icon-sort-circle-down:before{content:"\e944"}.ff-icon-eye-off:before{content:"\e945"}.ff-icon-eye:before{content:"\e946"}.ff-icon-flag:before{content:"\e947"}.ff-icon-link:before{content:"\e948"}.ff-icon-list:before{content:"\e949"}.ff-icon-move:before{content:"\e94a"}.ff-icon-plus-alt:before{content:"\e94b"}.ff-icon-radio-button-on:before{content:"\e94c"}.ff-icon-search:before{content:"\e94d"}.ff-icon-star:before{content:"\e94f"}.ff-icon-sort-down-alt:before{content:"\e950"}.ff-icon-close:before{content:"\e951"}.ff-icon-expand:before{content:"\e952"}.ff-icon-eye-filled:before{content:"\e953"}.ff-icon-info-filled:before{content:"\e954"}.ff-icon-keypad:before{content:"\e955"}.ff-icon-more-horizontal:before{content:"\e956"}.ff-icon-setting-filled:before{content:"\e957"}.ff-icon-strikethrough:before{content:"\e958"}.ff-icon-text:before{content:"\e959"}.ff-icon-decrease-edit:before{content:"\e95a"}.ff-icon-sort-down:before{content:"\e95b"}.ff-icon-increase-edit:before{content:"\e95c"}.ff-icon-list-ordered:before{content:"\e95d"}.ff-icon-quote-left:before{content:"\e95e"}.ff-icon-slider-horizontal:before{content:"\e95f"}.ff-icon-text-alt:before{content:"\e960"}.ff-icon-upload:before{content:"\e961"}.ff-icon-edit:before{content:"\e962"}.ff-icon-filter:before{content:"\e963"}.ff-icon-refresh:before{content:"\e964"}.ff-icon-task:before{content:"\e965"}.ff-icon-sort:before{content:"\e96c"}.ff-icon-captcha:before{content:"\e96d"}.ff-icon-clear:before{content:"\e96e"} .ff_menu{align-items:center;display:none;flex-wrap:wrap;margin-top:22px}.ff_menu_active{display:flex;justify-content:center}.ff_menu_link{background-color:transparent;border-radius:6px;color:#353537;display:inline-block;font-size:15px;font-weight:500;line-height:1.6;overflow:hidden;padding:4px 14px;text-decoration:none;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_menu_link:focus{border:0;box-shadow:none;outline:none}.ff_menu_link:hover{color:#1a7efb}.ff_menu_link_buy{background-color:#1a7efb;color:#fff;margin-right:12px}.ff_menu_link_buy:hover{color:#fff}.ff_menu.conversion_form_editor .ff_menu_link,.ff_menu.partial_entries_form_editor .ff_menu_link{max-width:140px}.ff_menu .active .ff_menu_link{background-color:#e8f2ff;color:#1a7efb}.ff_menu_toggle{cursor:pointer;font-size:26px;margin-right:auto}.ff_menu_toggle:hover{color:#1a7efb}.ff_menu_back .el-icon-arrow-left{font-weight:700;position:relative;transition:all .3s;width:18px}.ff_menu_back .el-icon-arrow-left:after{background-color:#353537;background-color:#1a7efb;content:"";height:1.3px;position:absolute;left:-.6px;top:50%;transform:translateY(-52%);transition:all .3s;width:0}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left{color:#1a7efb;transform:translateX(2.4px)}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left:after{font-weight:700;width:13px}.ff_card{background-color:#fff;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 3px 0 hsla(0,0%,51%,.1);padding:24px}.ff_card.primary{background-color:#1a7efb}.ff_card_pro{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;padding-right:54px;padding-left:40px}.ff_card_pro h3{color:#fff;font-size:28px;line-height:1.3;max-width:400px}.ff_card.highlight-border{border-color:#1a7efb}.ff_card .ff_pagination{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_shadow_lg{box-shadow:0 14px 16px -2px hsla(0,0%,51%,.1)}.ff_card .text{font-size:15px;line-height:1.6}.ff_card_alert{border-right:3px solid #ff6154;border-radius:4px}.ff_card_head{border-bottom:1px solid #ececec;margin-bottom:26px;padding-bottom:16px}.ff_card_head .text{margin-top:10px}.ff_card_head_group{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.ff_card_head_group .el-tooltip{font-size:15px}.ff_card_form_action{border-color:#ececec;cursor:pointer;height:100%}.ff_card_form_action .ff_card_text{word-break:break-word}.ff_card_img img{width:100%}.ff_card_s2{border:1px solid #e4e4e4;box-shadow:none;display:flex;flex-direction:column;padding:0;transition:.3s}.ff_card_s2 .ff_card_body{padding:20px}.ff_card_s2 .ff_card_footer{border-top:1px solid #e4e4e4;margin-top:auto;padding:14px 20px}.ff_card_s2:hover{box-shadow:0 22px 16px hsla(0,0%,51%,.12)}.ff_card_footer_group{align-items:center;display:flex;justify-content:space-between}.ff_card .ff-table-container{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_border{border:1px solid #ececec;box-shadow:none}.ff_tab{border-bottom:1px solid #ececec;display:flex}.ff_tab_item:not(:last-child){margin-left:30px}.ff_tab_item.active .ff_tab_link{color:#1a7efb}.ff_tab_item.active .ff_tab_link:after{width:100%}.ff_tab_link{color:#1e1f21;display:block;font-size:16px;font-weight:500;padding-bottom:16px;position:relative}.ff_tab_link:after{background-color:#1a7efb;bottom:-1px;content:"";height:2px;right:0;position:absolute;transition:.2s;width:0}.ff_tab_center .ff_tab_item{flex:1;text-align:center}.mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-3{margin-top:16px!important}.mt-4{margin-top:24px!important}.mt-5{margin-top:32px!important}.mt-6{margin-top:40px!important}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.mb-3{margin-bottom:16px!important}.mb-4{margin-bottom:24px!important}.mb-5{margin-bottom:32px!important}.mb-6{margin-bottom:40px!important}.mr-1{margin-left:4px!important}.mr-2{margin-left:8px!important}.mr-3{margin-left:16px!important}.mr-4{margin-left:24px!important}.mr-5{margin-left:32px!important}.mr-6{margin-left:40px!important}.ml-1{margin-right:4px!important}.ml-2{margin-right:8px!important}.ml-3{margin-right:16px!important}.ml-4{margin-right:24px!important}.ml-5{margin-right:32px!important}.ml-6{margin-right:40px!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.mr-0{margin-left:0!important}.ml-0{margin-right:0!important}.ff_list_button_item:not(:last-child){margin-bottom:4px}.ff_list_button_item.active .ff_list_button_link{background-color:#4b4c4d;color:#fff}.ff_list_button_item.has_sub_menu .ff_list_button_link{position:relative}.ff_list_button_item.has_sub_menu .ff_list_button_link:after{content:"\e6df";font-family:element-icons;position:absolute;left:15px;transition:.3s}.ff_list_button_item.has_sub_menu.is-submenu{color:inherit;font-style:inherit;font-weight:inherit;margin-right:0}.ff_list_button_item.has_sub_menu.is-submenu .ff_list_button_link:after{transform:rotate(180deg)}.ff_list_button_link{background-color:transparent;border-radius:5px;color:#1e1f21;display:block;font-size:16px;padding:12px 18px;transition:.2s}.ff_list_button_link:hover{background-color:#f5f5f3;color:#1e1f21}.ff_list_button_small .ff_list_button_link{border-radius:6px;font-size:15px;padding:6px 14px}.ff_list_button_s1 .ff_list_button_item.active .ff_list_button_link{background-color:#f5f5f3;color:#1e1f21;font-weight:600}.ff_list_button_s1 .ff_list_button_link{color:#606266;font-size:15px}.ff_list li:not(:last-child){margin-bottom:12px}.ff_list li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list li a:hover{color:#1a7efb}.ff_list_submenu{background-color:#fff;display:none;margin-right:20px;margin-top:10px;position:relative}.ff_list_submenu:after{background-color:#e4e2df;content:"";height:100%;right:0;position:absolute;top:0;width:2px}.ff_list_submenu li{position:relative}.ff_list_submenu li:after{background-image:url(../images/curve-line.svg?ad01d82f4c085066c0a3accc820c65ac);background-repeat:no-repeat;content:"";height:10px;right:0;position:absolute;top:50%;transform:translateY(-50%);width:12px}.ff_list_submenu li:last-child:before{background-color:#fff;bottom:0;content:"";height:18px;right:0;position:absolute;width:2px;z-index:1}.ff_list_submenu li a{border-radius:6px;color:#606266;display:block;font-size:15px;margin-right:15px;max-width:197px;overflow:hidden;padding:10px;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_list_submenu li a:hover{background-color:#efefef}.ff_list_submenu li.active a{background-color:#efefef;color:#1e1f21}.ff_list_border_bottom>li{font-size:15px;position:relative}.ff_list_border_bottom>li:not(:last-child){border-bottom:1px solid #ececec;margin-bottom:12px;padding-bottom:12px}.ff_list_border_bottom>li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list_border_bottom>li a.lead-text{color:#1a7efb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_list_border_bottom>li a.lead-text.lead-url{white-space:unset;word-break:break-all}.ff_submission_info_list li{display:flex}.ff_submission_info_list .lead-title{flex-shrink:0;width:120px}.ff_submission_info_list .truncate{max-width:228px}.el-button--upload{border-style:dashed;justify-content:center;padding:24px;width:100%}.el-button--upload .el-icon{font-size:22px}.ff_file_upload_result{align-items:center;background-color:#fafafa;border:1px solid #f2f2f2;border-radius:8px;display:flex;overflow:hidden;padding:10px;position:relative}.ff_file_upload_result .el-button{position:absolute;left:10px;top:50%;transform:translateY(-50%)}.ff_file_upload_result+.ff_file_upload_result{margin-top:10px}.ff_file_upload_preview{height:44px;width:44px}.ff_file_upload_preview img{border-radius:4px;height:100%;-o-object-fit:cover;object-fit:cover;width:44px}.ff_file_upload_preview+.ff_file_upload_data{margin-right:15px}.ff_file_upload_description{color:#1e1f21;font-size:14px}.ff_file_upload_size{font-size:12px;margin-top:4px}body{background-color:#f2f2f2;color:#606266}#wpcontent{padding-right:0}#wpbody-content *{box-sizing:border-box}h1,h2,h3,h4,h5,h6{color:#1e1f21;margin:0}ol,ul{list-style:none;margin:0;padding:0}h1{font-size:24px}h2{font-size:23px}h3{font-size:22px;line-height:1.4}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}p{font-size:15px}p:last-child{margin:0}hr{border-bottom-color:#ececec;border-top:0}dd,li{margin-bottom:0}a{color:#1a7efb;font-weight:400;text-decoration:none}a:focus{box-shadow:none;outline:none}a:hover{color:#1a7efb}.notice,div.error,div.updated{margin:8px 24px 2px}.fluentform-admin-notice.notice-error{margin:8px 24px;padding:10px 20px}.fluentform-admin-notice.notice-error h3{font-size:18px;margin:10px 0}.ff_form_wrap_area .fluentform-admin-notice{margin:8px 0}.ff_backdrop{background:rgba(0,0,0,.5);bottom:0;right:0;position:fixed;left:0;top:0;z-index:999999999}.w-100{width:100%!important}.ff-mw-100{max-width:100%!important}.h-100{height:100%!important}.ff_form_wrap{padding:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{-webkit-appearance:none;background-color:#fff;border-color:#dadbdd;border-radius:7px;box-shadow:none;color:#606266;padding:0 15px}input[type=color]:focus,input[type=color]:hover,input[type=date]:focus,input[type=date]:hover,input[type=datetime-local]:focus,input[type=datetime-local]:hover,input[type=datetime]:focus,input[type=datetime]:hover,input[type=email]:focus,input[type=email]:hover,input[type=month]:focus,input[type=month]:hover,input[type=number]:focus,input[type=number]:hover,input[type=password]:focus,input[type=password]:hover,input[type=search]:focus,input[type=search]:hover,input[type=tel]:focus,input[type=tel]:hover,input[type=text]:focus,input[type=text]:hover,input[type=time]:focus,input[type=time]:hover,input[type=url]:focus,input[type=url]:hover,input[type=week]:focus,input[type=week]:hover,textarea:focus,textarea:hover{border-color:#1a7efb!important}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{box-shadow:none}input[type=number]{padding-left:0}input[type=checkbox]:disabled{opacity:0}.ff-select{-webkit-appearance:none!important;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat left 14px top 55%!important;background-blend-mode:hard-light;background-size:16px 16px!important;border:1px solid #dadbdd!important;border-radius:7px!important;box-sizing:border-box!important;color:#606266!important;display:inline-block!important;height:40px!important;line-height:40px!important;max-width:inherit!important;outline:0!important;outline:none!important;padding:0 20px 0 29px!important;text-overflow:ellipsis;transition:border-color .2s cubic-bezier(.645,.045,.355,1)!important}.ff-select:focus{box-shadow:none!important;outline:none!important}.ff-select-block{display:block;width:100%}.ff-select-small{background-position-x:38px!important;border-radius:5px!important;height:32px!important;line-height:32px!important;padding-right:10px!important;padding-left:24px!important}.ff-select-small.condition-field,.ff-select-small.condition-operator,.ff-select-small.condition-value{background-position-x:10%!important}.ff_filter_selected{background-color:#e8f2ff;border-color:#bad8fe;color:#1a7efb}p{margin-bottom:10px;margin-top:0}.icon{display:inline-block;font:normal normal normal 14px/1 ultimateform}.el-input--prefix .el-input__inner{padding-right:38px}.el-input__prefix{right:12px}.ff-icon+span,span+.ff-icon{margin-right:6px}.d-flex{display:flex}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.text-primary{color:#1a7efb!important}.text-secondary{color:#606266!important}.text-danger{color:#ff6154!important}.text-success{color:#00b27f!important}.text-warning{color:#fcbe2d!important}.text-dark{color:#1e1f21!important}.flex-grow-1{flex:1}.mr15{margin-left:15px}.mb15{margin-bottom:15px}.pull-left{float:right!important}.pull-right{float:left!important}.text-left{text-align:right}.text-right{text-align:left}.text-center{text-align:center}.el-icon-clickable{cursor:pointer}.help-text{font-size:.9em;font-style:italic;margin:0}.fs-17{font-size:17px!important}.fs-15{font-size:15px!important}.fs-14{font-size:14px!important}.fs-13{font-size:13px!important}.text-note{color:#606266;font-size:13px;font-weight:400}.ff-disabled{opacity:.5;pointer-events:none}.mx-auto{margin-right:auto;margin-left:auto}.img-thumb{border:1px solid #ececec;border-radius:8px}.lead-title{color:#1e1f21;display:block;font-size:15px;font-weight:500;transition:.2s}.lead-text{color:#606266;font-size:13px}a.lead-text{color:#1a7efb}.btn{background-image:none;border:1px solid transparent;border-radius:4px;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1.42857143;margin-bottom:0;padding:6px 12px;text-align:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.btn-primary{background-color:#337ab7;border-color:#2e6da4;color:#fff}.btn-primary:hover{background-color:#286090;border-color:#204d74;color:#fff}.btn-block{width:100%}.clearfix:after,.clearfix:before,.form-editor:after,.form-editor:before{content:" ";display:table}.clearfix:after,.form-editor:after{clear:both}.el-notification__content p{text-align:right}.label-lh-1-5 label{line-height:1.5}.ff_header{background:#fff;border-bottom:1px solid #ececec;display:flex;flex-direction:column;padding:10px 24px}.ff_header_group{align-items:center;display:flex;justify-content:space-between}.ff_header .plugin-name{height:30px}.ff_header .plugin-name img{height:100%}.ff_header .global-search-menu-button{background-color:transparent;border:0;border-radius:6px;color:rgba(60,60,60,.702);cursor:pointer;display:inline-block;font-size:15px;font-weight:400;line-height:1.6;margin:0 auto 0 0;padding:0 5px 0 0;transition:all .3s}.ff_header .global-search-menu-button .el-icon-search{font-size:16px;font-weight:600}.ff_header .global-search-menu-button .shortcut{border-radius:4px;box-shadow:0 2px 3px 0 rgba(32,33,36,.15);font-size:12px;letter-spacing:3px;padding:5px 8px;transition:all .3s}.ff_header .global-search-menu-button:hover{color:#353537}.ff_header .global-search-menu-button:hover .shortcut{border-color:#1a7efb;color:#1a7efb}.ff_header .global-search-menu-button span{margin-right:5px}.ff_row{display:flex;flex-wrap:wrap}.el-dialog{padding:24px 30px}.el-dialog__headerbtn{background-color:#fafafa;border-radius:50%;font-size:1.25rem;height:2rem;left:22px;top:18px;transition:.2s;width:2rem}.el-dialog__headerbtn .el-dialog__close{color:#1e1f21}.el-dialog__headerbtn:hover{background-color:#ececec}.el-dialog__headerbtn:hover .el-dialog__close{color:#1e1f21}.el-dialog__header{border-bottom:1px solid #ececec;padding:0 0 24px}.el-dialog__header h4{font-weight:500}.el-dialog__body,.el-dialog__footer{padding:0}.el-dialog__footer .has-separator{border-top:1px solid #ececec;padding-top:20px}.el-dialog,.el-popover{border-radius:8px}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__header{border:0;padding:0}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__body .el-row{align-content:center;align-items:center;display:flex;justify-content:center}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__headerbtn{z-index:1}.form-editor .disabled-info .el-dialog__wrapper h3{font-size:1.5em}.form-editor .disabled-info .el-dialog__wrapper p{font-size:16px}.form-editor .disabled-info .el-dialog__wrapper img{width:100%}.ff_nav_top{display:block;margin-bottom:15px;overflow:hidden;width:100%}.ff_nav_top .ff_nav_title{float:right;width:50%}.ff_nav_top .ff_nav_title h3{float:right;line-height:28px;margin:0;padding:0}.ff_nav_top .ff_nav_title .ff_nav_sub_actions{display:inline-block;margin-right:20px}.ff_nav_top .ff_nav_action{float:right;text-align:left;width:50%}.ff_nav_top .ff_search_inline{display:inline-block;text-align:left;width:200px}.ff_nav_top.ff_advanced_search{background:#fff;border-radius:5px;padding:10px 20px}.ff_global_notices{box-sizing:border-box;display:block;margin-top:20px;overflow:hidden;width:100%}.ff_global_notices .ff_global_notice{background:#fff;border:1px solid transparent;border-radius:.25rem;display:block;margin-bottom:1rem;margin-left:20px;padding:.75rem 1.25rem;position:relative}.ff_global_notices .ff_global_notice.ff_notice_error{background-color:#fff3cd;border-color:#ffeeba;color:#856404}.ff_global_notices .ff_global_notice.ff_notice_success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.el-select-dropdown.el-popper{z-index:99999999999!important}ul.ff_entry_list{list-style:disc;margin-right:20px}span.ff_new_badge{background:#ff4747;border-radius:4px;color:#fff;font-size:11px;line-height:100%;margin-right:5px;padding:0 5px 3px;vertical-align:super}label.el-checkbox,label.el-radio{display:inline-block}.el-time-spinner__list .el-time-spinner__item{margin-bottom:0!important}.ff_card_block{background:#f2f2f2;border-radius:8px;padding:20px}.ff_card_block_head{border-bottom:1px solid #e3e3e3;margin-bottom:20px;padding-bottom:15px}.ff_card_block h3{margin:0 0 15px;padding:0}.videoWrapper{height:0;padding-bottom:56.25%;position:relative}.videoWrapper iframe{height:100%;right:0;position:absolute;top:0;width:100%}.ff-left-spaced{margin-right:10px!important}.doc_video_wrapper{background:#fff;margin:0 auto;max-width:800px;padding:20px 0 0;text-align:center}.el-big-items .el-select-dropdown__wrap{max-height:350px}.ff_email_resend_inline{display:inline-block}.el-radio-group-column{display:flex;flex-direction:column}.el-radio-group-column .el-radio{margin-bottom:20px;margin-left:0}.el-checkbox-group-column{display:flex;flex-direction:column}.el-checkbox-group-column .el-checkbox{margin-bottom:14px;margin-left:0}.ff_advanced_filter_wrap{position:relative}.ff_advanced_search{background:#fff;border-radius:8px;box-shadow:0 40px 64px -12px rgba(0,0,0,.08),0 0 14px -4px rgba(0,0,0,.08),0 32px 48px -8px rgba(0,0,0,.1);margin-top:10px;padding:20px;position:absolute;left:0;top:100%;width:350px;z-index:1024}.ff_advanced_search_date_range{background-color:#ececec;border-radius:8px;padding:14px}.ff_advanced_search_date_range p{font-size:14px;font-weight:400}.ff_advanced_search_date_range .el-date-editor--daterange.el-input__inner{width:282px}.el-switch__core:after{box-shadow:0 2px 4px rgba(0,0,0,.2),inset 0 2px 2px #fff,inset 0 -1px 1px rgba(0,0,0,.1)}.row-actions .row-actions-item{display:inline-block;font-size:13px;line-height:1;padding-left:10px;position:relative}.row-actions .row-actions-item:after{background-color:#ddd;content:"";height:10px;position:absolute;left:3px;top:50%;transform:translateY(-50%);width:1px}.row-actions .row-actions-item.trash:after{display:none}.row-actions span.trash a{color:#ff6154}.ff_pagination{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);display:inline-flex;font-weight:500;max-width:100%;padding:12px 20px}.ff_pagination .el-input__inner{background:#f2f2f2;border-color:#f2f2f2;border-radius:4px!important;color:#606266}.ff_pagination .el-input__inner:focus,.ff_pagination .el-input__inner:hover{border-color:#f2f2f2!important}.ff_pagination .el-select .el-input .el-select__caret{color:#606266}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:transparent;border-radius:4px}.ff_shortcode_wrap+.ff_shortcode_wrap{margin-top:.5rem}.ff_shortcode_btn{align-items:center;background-color:#ededed;border:0;border-radius:6px;color:#353537;display:inline-flex;font-size:12px;margin:0;overflow:hidden;padding:4px 10px}.ff_shortcode_btn span{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:200px}.ff_shortcode_btn .el-icon{margin-left:1px}.ff_shortcode_btn_thin{background-color:#f2f2f2}.ff_shortcode_btn_md{font-size:15px;line-height:1.2;padding:10px 14px}.copy_btn{background-color:#e7e6e6;border-radius:4px;cursor:pointer;margin-right:auto;padding:1px 10px;transition:.2s}.copy_btn:hover{background-color:#d8d7d7}.ff_editor_html ul{list-style-type:disc;padding-right:3em}.ff_editor_html ol{list-style-type:decimal;margin-right:3em}.ff_section_block{margin-bottom:64px}.ff_section_block:last-child{margin-bottom:0}.ff_radio_list{display:flex;flex-direction:column}.ff_radio_list_item{margin-bottom:2px;width:100%}.ff_radio_list_item .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:6px!important;box-shadow:none!important;color:#606266;padding:13px 16px;text-align:right;transition:.2s;width:100%}.ff_radio_list_item .el-radio-button__inner:hover,.ff_radio_list_item.is-active .el-radio-button__inner{background-color:rgba(96,98,102,.1);color:#1e1f21}.is-sticky{position:fixed;top:40px;z-index:1020}.ff_section_desc{font-size:16px}.ff_section_head{margin-bottom:40px}.ff_section_head_between{display:flex;flex-wrap:wrap;justify-content:space-between}.ff_section_head.sm{margin-bottom:24px}.ff_section_head_content_group{align-items:center;display:flex}.ff_section_head .text{font-size:15px}.el-row{display:flex;flex-wrap:wrap}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.items_end{align-items:flex-end!important}.el-radio-button__inner{font-weight:400}.el-select-dropdown__item.selected{font-weight:500}.ff_layout_section{display:flex;min-height:550px;position:relative;width:100%}.ff_layout_section_sidebar{background-color:#fff;box-shadow:0 1px 3px rgba(30,31,33,.05);flex-shrink:0;padding:16px;vertical-align:top;width:230px}.ff_layout_section_container{flex:1;overflow-y:scroll;padding:16px}.ff_global_setting_wrap .ff_layout_section_sidebar,.ff_tools_wrap .ff_layout_section_sidebar{height:100%}.ff_global_settings_option{height:110vh;overflow-y:scroll}.ff_global_settings_option::-webkit-scrollbar{display:none}.ff_global_settings_option .el-form-item,.ff_global_settings_option .el-form-item-wrap{margin-bottom:24px}.ff_global_settings_option .el-form-item-wrap:last-child,.ff_global_settings_option .el-form-item:last-child{margin-bottom:0}.ff_global_settings_option .ff_card:not(:last-child){margin-bottom:32px}.ff_input_width{width:438px}.ff_input_full_width{width:100%}.ff_tooltip_wrap{font-size:14px;line-height:1.6;max-width:320px}.ff_tooltip_wrap h6{color:#fff}.ff-icon-gray{color:#757d8a}.el-form--label-top .el-form-item__label{line-height:1;padding-bottom:16px}.ff-form-item .el-form-item__label{align-items:center;color:#1e1f21;display:flex;font-size:15px;font-weight:500}.ff-form-item .el-form-item__label .ff-icon{margin-right:4px}.ff-form-item .el-form-item__content{line-height:1}.ff-form-item .el-icon-info,.ff-form-item .ff-icon-info-filled{font-size:13px}.ff-form-item .el-icon-info{color:#1a7efb;transform:rotate(14deg)}.el-select__tags input{background-color:transparent;border:none;line-height:2;margin-right:0;min-height:30px;padding:0 8px}.ff_alert{background-color:#e8f2ff;border-right:3px solid #1a7efb;border-radius:4px;padding:17px}.ff_alert_icon{display:inline-block;font-size:16px;margin-top:3px}.ff_alert_icon+.ff_alert_content{padding-right:10px}.ff_alert_group{display:flex}.ff_alert_sm{padding:10px}.ff_alert.success{background-color:#00b27f;border-right-color:#00b27f;color:#fff}.ff_alert.success-soft{background-color:#e6ffeb;border-right-color:#00b27f}.ff_alert.danger{background-color:#ff6154;border-right-color:#ff6154;color:#fff}.ff_alert.danger-soft{background-color:#ffefee;border-right-color:#ff6154}.ff_alert .text{font-size:14px;margin-bottom:12px;margin-top:6px}.ff_alert_between{align-items:center;display:flex;justify-content:space-between}.ff_alert_between .text{margin-bottom:0}.ff_alert_s2{border-right:0;border-radius:8px;padding:40px;text-align:center}.ff-form-item-flex{align-items:center;display:flex}.ff-form-item-flex .el-form-item__label{padding-bottom:0}.ff-form-item-flex.reverse{flex-direction:row-reverse;justify-content:flex-end}.ff-form-setting-label-width .el-form-item__label{width:390px}.el-switch input{border:0}.el-switch-lg .el-switch__core{border-radius:30px;height:24px;width:48px!important}.el-switch-lg .el-switch__core:after{height:20px;width:20px}.el-switch-lg.is-checked .el-switch__core:after{margin-right:-21px}.ff_block_title{font-weight:500}.el-form-item__label h6{font-size:15px;font-weight:500}.ff_checkbox_group_col_2{display:flex;flex-wrap:wrap}.ff_checkbox_group_col_2 .el-checkbox{line-height:1;margin-bottom:.75rem;margin-left:0;width:50%}.wp_vue_editor_wrapper{background-color:#fff;border:1px solid #dadbdd;border-radius:8px;overflow:hidden;position:relative}.wp_vue_editor_wrapper .wp-media-buttons{float:none;position:absolute;left:160px;top:10px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media{background-color:#e8f2ff;border-color:#e8f2ff;border-radius:6px;color:#1a7efb;font-weight:500;line-height:1;margin:0;min-height:30px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.wp_vue_editor_wrapper .popover-wrapper{padding:10px;position:absolute;left:0;top:0;z-index:2}.wp_vue_editor_wrapper .wp-editor-container{border:0}.wp_vue_editor_wrapper .wp-editor-tabs{float:none;padding:8px}.wp_vue_editor_wrapper .wp-switch-editor{background-color:transparent;border-color:transparent;border-radius:5px;float:none;font-size:14px;font-weight:500;height:auto;line-height:inherit;margin:0 4px 0 0;padding:7px 14px}.wp_vue_editor_wrapper .html-active .switch-html,.wp_vue_editor_wrapper .tmce-active .switch-tmce{background-color:#ededed;border-color:#dadbdd;color:#1e1f21}.wp_vue_editor_wrapper .switch-html{margin-right:0}.wp_vue_editor_wrapper .mce-top-part:before{box-shadow:none}.wp_vue_editor_wrapper .quicktags-toolbar,.wp_vue_editor_wrapper div.mce-toolbar-grp{background:#f1f1f0;border-bottom:0}.wp_vue_editor_wrapper .mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border:0;border-radius:4px;box-shadow:none}.wp_vue_editor_wrapper textarea{border:0;padding-top:15px}.wp-media-buttons .insert-media{padding-right:8px;padding-left:10px}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#1a7efb}.mce-panel.mce-menu{border-radius:8px}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:10px!important}.el-input-number__decrease{right:2px}.ff_state_box{border-radius:8px;display:block;padding:32px;text-align:center}.ff_icon_btn{align-items:center;background-color:#1a7efb;border-radius:50%;color:#fff;display:flex;font-size:28px;height:58px;justify-content:center;text-align:center;width:58px}.ff_icon_btn:focus,.ff_icon_btn:hover{color:#fff}.ff_icon_btn img{height:36px;-o-object-fit:contain;object-fit:contain}.ff_icon_btn.square{border-radius:12px}.ff_icon_btn.blue{background-color:#3b5998;color:#fff}.ff_icon_btn.blue-soft{background-color:#ebeef5;color:#3b5998}.ff_icon_btn.dark{background-color:#1e1f21;color:#fff}.ff_icon_btn.dark-soft{background-color:#e9e9e9;color:#1e1f21}.ff_icon_btn.primary-soft{background-color:#e8f2ff;color:#1a7efb}.ff_icon_btn.danger{background-color:#ff6154;color:#fff}.ff_icon_btn.danger-soft{background-color:#ffefee;color:#ff6154}.ff_icon_btn.success{background-color:#00b27f;color:#fff}.ff_icon_btn.success-soft{background-color:#e6ffeb;color:#00b27f}.ff_icon_btn.warning{background-color:#fcbe2d;color:#fff}.ff_icon_btn.warning-soft{background-color:#fff9ea;color:#fcbe2d}.ff_icon_btn.info{background-color:#4b4c4d;color:#fff}.ff_icon_btn.info-soft{background-color:#ededed;color:#4b4c4d}.ff_icon_btn.cyan{background-color:#0dcaf0;color:#fff}.ff_icon_btn.cyan-soft{background-color:#e7fafe;color:#0dcaf0}.ff_icon_btn.mini{font-size:12px;height:18px;width:18px}.ff_icon_btn.small{font-size:16px;height:27px;width:27px}.ff_icon_btn.md{font-size:26px;height:48px;width:48px}.ff_icon_btn.md img{height:28px;-o-object-fit:cover;object-fit:cover;-o-object-position:right;object-position:right;width:28px}.ff_icon_btn.lg{font-size:36px;height:72px;width:72px}.ff_btn_group{align-items:center;display:inline-flex;flex-wrap:wrap;margin:-6px}.ff_btn_group>*{margin-bottom:0;padding:6px}.ff_btn_group.sm{margin:-3px}.ff_btn_group.sm>*{padding:3px}.ff_btn_group_half{display:flex}.ff_btn_group_half>*{flex:1}.ff_btn_group_half .el-button{justify-content:center;width:100%}.file-input{background:#fff;border:1px solid #ececec;border-radius:8px;color:#606266;max-width:100%;padding:5px!important}.file-input::file-selector-button{background:#f2f2f2;border:none;border-radius:6px;color:#1e1f21;cursor:pointer;margin-left:6px;padding:6px 16px;transition:background .2s ease-in-out}.file-input::file-selector-button:hover{background:#ced0d4}.el-tag--pill{border-radius:50rem}.ff_radio_group{background-color:#f5f5f3;border-radius:8px;overflow:hidden}.ff_radio_group .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:0!important}.ff_radio_group .el-radio-button__inner:hover{color:#1e1f21}.ff_radio_group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;box-shadow:none;color:#fff}.ff_radio_group_s2{background:#fff;border:1px solid #edeae9;border-radius:8px;display:inline-flex;overflow:hidden}.ff_radio_group_s2 .el-radio-button:first-child .el-radio-button__inner{border-right:0}.ff_radio_group_s2 .el-radio-button:last-child .el-radio-button__inner{border-left:0}.ff_radio_group_s2 .el-radio-button__inner{border-color:transparent transparent transparent #edeae9}.el-input-gray .el-input__inner{background-color:#e7e6e6;border-color:#e7e6e6}.el-input-gray .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray .el-input__prefix{color:#606266}.el-input-gray-light .el-input__inner{background-color:#f5f5f3;border-color:#f5f5f3}.el-input-gray-light .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__prefix{color:#606266}.el-radio.is-bordered{margin-left:6px}.ff_media_group{align-items:center;display:flex}.ff_media_head+.ff_media_body{margin-right:16px}.ff_video_wrap{position:relative}.ff_video_wrap:after{background-color:#1e1f21;border-radius:8px;content:"";height:100%;right:0;opacity:.3;position:absolute;top:0;width:100%}.ff_video_img{border-radius:8px;display:block;width:100%}.ff_video_icon{right:50%;position:absolute;top:50%;transform:translate(50%,-50%);z-index:1}.ff-input-wrap{position:relative}.ff-input-wrap .el-icon{align-items:center;display:inline-flex;height:100%;right:0;padding-right:14px;position:absolute;top:0;z-index:2}.ff-input-wrap .el-icon+.el-input .el-input__inner,.ff-input-wrap .el-icon+input{padding-right:32px}.el-dialog-no-header .el-dialog__header{display:none}.el-radio-button-group{background-color:#fff;border:1px solid #ececec;border-radius:4px}.el-radio-button-group .el-radio-button__inner{background:transparent;border:0;padding:6px 9px}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner{border-right:0;border-radius:0 4px 4px 0}.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-radio-button-group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1a7efb;box-shadow:none}.el-color-picker__color{border-color:#d4edda;border-radius:3px}.ff_socials li{display:inline-block;margin-left:2px}.ff_socials li:last-child{margin-left:0}.ff_socials li a{background-color:#ededed;border-radius:50%;color:#606266;display:grid;height:32px;place-items:center;transition:.2s;width:32px}.ff_socials li a span{font-size:16px;height:auto;transition:0s;width:auto}.ff_socials li a:hover{background-color:#1a7efb;color:#fff}.ff-dropdown-menu .el-dropdown-menu__item{line-height:1.5;padding:6px 20px}.ff-dropdown-menu .el-dropdown-menu__item:hover{background-color:transparent}.truncate{display:block;max-width:188px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;max-width:inherit;white-space:inherit}.hover-y{transition:.3s}.hover-y:hover{transform:translateY(-2px)}.hover-zoom{transition:.3s}.hover-zoom:hover{transform:scale(1.03)}.ff_badge{align-items:center;background-color:#ededed;border:1px solid #dbdbdb;border-radius:30px;color:#4b4c4d;display:inline-flex;line-height:1.2;padding:2px 7px;text-transform:capitalize}.ff_badge.small{font-size:13px}.ff_badge_wrap{align-items:center;display:inline-flex}.ff_badge img{flex-shrink:0;height:14px;margin-left:4px}.ff_badge_active,.ff_badge_primary{background-color:#e8f2ff;border-color:#d1e5fe;color:#1a7efb}.ff_badge_paid{background-color:#e6f7f2;border-color:#ccf0e5;color:#00b27f}.ff_badge_processing{background-color:#e7fafe;border-color:#cff4fc;color:#0dcaf0}.ff_badge_pending{background-color:#fff9ea;border-color:#fef2d5;color:#fcbe2d}.ff_badge_failed{background-color:#ffefee;border-color:#ffdfdd;color:#ff6154}.ff_badge_visa{background-color:#e8e9ef;border-color:#dddee7;color:#192061}.ff_badge_mastercard{background-color:#ffefe6;border-color:#ffe7d9;color:#ff5f00}.ff_badge_amex{background-color:#f0f9fd;border-color:#e9f6fc;color:#6cc4ee}.ff_badge_paypal{background-color:#e6f5fc;border-color:#d9f0fa;color:#019ddd}.ff_badge_stripe{background-color:#eef0fb;border-color:#e5e9f9;color:#5469d4}.ff_badge.is-solid.ff_badge_active{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.ff_badge.is-solid.ff_badge_processing{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.ff_badge.is-solid.ff_badge_paid{background-color:#00b27f;border-color:#00b27f;color:#fff}.ff_badge.is-solid.ff_badge_pending{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.ff_badge.is-solid.ff_badge_cancelled,.ff_badge.is-solid.ff_badge_failed{background-color:#ff6154;border-color:#ff6154;color:#fff}.separator{background-color:rgba(96,98,102,.1);height:1px}.ff_choose_template_wrap .el-dialog{max-width:1280px}.ff_settings_container .notice{margin:0 0 20px}.global-search-wrapper{align-items:center;background:rgba(0,0,0,.7);display:flex;height:auto;inset:0;justify-content:center;min-height:100vh;padding:20px;position:fixed;z-index:999999999}.global-search-wrapper .global-search-container{background:#f6f6f7;border-radius:5px;overflow:auto;position:relative;width:700px}.global-search-wrapper .global-search-container input{font-size:17px;padding:3px 35px;width:100%}.global-search-wrapper .global-search-container ul.search-result li{background:#fff;border-radius:6px;box-shadow:0 1px 3px 0 #d4d9e1;color:#606266;cursor:pointer;display:block;font-size:15px;margin-right:0;margin-top:7px;padding:10px;transition:.2s}.global-search-wrapper .global-search-container ul.search-result li.active-search-link{background-color:#197efb;color:#fff;outline:0}.global-search-wrapper .global-search-container ul.search-result li:focus,.global-search-wrapper .global-search-container ul.search-result li:focus-visible{border:0;box-shadow:none;outline:0}.global-search-wrapper .global-search-container span.global-search-not-match{display:inline-block;font-size:16px;margin-top:6px}.global-search-wrapper .global-search-body{max-height:400px;min-height:200px;overflow-y:auto;padding:20px}.global-search-wrapper .search-commands{background:#fff;box-shadow:0 -1px 0 0 #efefef,0 -2px 6px 0 rgba(70,90,150,.1);color:#606266;display:flex;font-size:14px;justify-content:space-around;padding:12px}.global-search-wrapper .search-commands ul li{font-size:12px;margin-top:7px;padding:10px}.scroll{animation:down 2s ease-in-out infinite;-webkit-animation:down 2s ease-in-out infinite;cursor:pointer;height:26px;margin:0 auto;position:relative;width:60px}.scroll:before{border-bottom:2px solid #777;border-right:2px solid #777;content:"";height:16px;right:18px;position:absolute;top:24px;transform:rotate(45deg);width:16px}.ff_chained_ajax_field{display:flex;flex:auto;gap:10px}.ff_chained_ajax_field .el-select{flex-basis:100%}@keyframes down{0%{opacity:0;-webkit-transform:translateY(-14px)}50%{opacity:1}to{opacity:0;-webkit-transform:translateY(14px)}}.ff_sidebar_toggle{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 1px 10px rgba(0,0,0,.1);color:#000;cursor:pointer;display:none;font-size:18px;height:30px;justify-content:center;position:absolute;left:-21px;top:15px;width:30px}.text-capitalize{text-transform:capitalize}.el-notification__content{text-align:right}.action-buttons .el-button+.el-button{margin-right:0}.el-box-card{box-shadow:none}.el-box-footer,.el-box-header{background-color:#edf1f6;padding:15px}.el-box-body{padding:15px}.el-form-item__force-inline.el-form-item__label{float:right;padding:11px 0 11px 12px}.el-form-item .el-form-item{margin-bottom:10px}.el-form-item__content .line{text-align:center}.el-basic-collapse{border:0;margin-bottom:15px}.el-basic-collapse .el-collapse-item__header{border:0;display:inline-block;padding-right:0}.el-basic-collapse .el-collapse-item__wrap{border:0}.el-basic-collapse .el-collapse-item__content{background-color:#fff;padding:0}.el-collapse-settings{border:0}.el-collapse-settings .el-collapse-item__header{background:#f5f5f3;border:0;border-radius:8px;font-size:16px;padding-right:20px;padding-left:10px}.el-collapse-settings .el-collapse-item__header .el-collapse-item__arrow{font-size:16px;font-weight:500}.el-collapse-settings .el-collapse-item__content{margin-top:15px;padding-bottom:0}.el-collapse-settings .el-collapse-item__arrow{line-height:48px}.el-collapse-settings .el-collapse-item__wrap{background-color:transparent;border-bottom:0;overflow:inherit}.el-popover{text-align:right}.option-fields-section--content .el-form-item__label{color:#1e1f21;font-weight:500;line-height:1;padding-bottom:10px}.option-fields-section--content .el-form-item__content{line-height:1.5;margin-bottom:5px}.option-fields-section--content .el-input-number--mini{line-height:28px}.option-fields-section--content strong{color:#1e1f21;font-weight:600}.el-dropdown-list{border:0;box-shadow:none;margin:0;max-height:280px;min-width:auto;overflow-y:scroll;padding:0;position:static;z-index:10}.el-dropdown-list .el-dropdown-menu__item{border-bottom:1px solid #f1f1f1;font-size:13px;line-height:18px;padding:4px 10px}.el-dropdown-list .el-dropdown-menu__item:last-of-type{border-bottom:0}.el-popper[x-placement^=bottom] .popper__arrow{top:-7px}.el-form-nested.el-form--label-left .el-form-item__label{float:right;padding:10px 0 10px 5px}.el-message{top:40px}.el-tabs--border-card{border-color:#ececec;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.05)}.el-tabs--border-card .el-tabs__header{background-color:transparent;border-top-right-radius:6px;border-top-left-radius:6px;padding:10px 14px}.el-tabs--border-card .el-tabs__header .el-tabs__item{border:0;border-radius:6px;font-size:13px;height:34px;line-height:34px;margin-top:0;padding-right:16px;padding-left:16px}.el-tabs--border-card .el-tabs__header .el-tabs__item:first-child{margin-right:0}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active{background-color:#d1e5fe;color:#1a7efb}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active:hover{color:#1a7efb}.el-button{align-items:center;display:inline-flex;transition:.3s}.el-button .el-loading-mask{border-radius:7px}.el-button .el-loading-mask .el-loading-spinner{margin-top:-12px}.el-button .el-loading-mask .el-loading-spinner .circular{height:24px;width:24px}.el-button span{align-items:center;display:inline-flex}.el-button-group .el-button span{display:inline-block}.el-button--block{justify-content:center;width:100%}.el-button--small .ff-icon{font-size:14px}.el-button--large{font-size:16px;padding:15px 20px}.el-button--soft.el-button--blue{background-color:#ebeef5;border-color:#ebeef5;color:#3b5998}.el-button--soft.el-button--blue:hover{background-color:#3b5998;border-color:#3b5998;color:#fff}.el-button--soft.el-button--primary{background-color:#e8f2ff;border-color:#e8f2ff;color:#1a7efb}.el-button--soft.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--soft.el-button--danger{background-color:#ffefee;border-color:#ffefee;color:#ff6154}.el-button--soft.el-button--danger:hover{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-button--soft.el-button--success{background-color:#e6ffeb;border-color:#e6ffeb;color:#00b27f}.el-button--soft.el-button--success:hover{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-button--soft.el-button--warning{background-color:#fff9ea;border-color:#fff9ea;color:#fcbe2d}.el-button--soft.el-button--warning:hover{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--soft.el-button--info{background-color:#ededed;border-color:#ededed;color:#4b4c4d}.el-button--soft.el-button--info:hover{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--soft.el-button--cyan{background-color:#e7fafe;border-color:#e7fafe;color:#0dcaf0}.el-button--soft.el-button--cyan:hover{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.el-button--soft.el-button--dark{background-color:#e9e9e9;border-color:#e9e9e9;color:#1e1f21}.el-button--soft.el-button--dark:hover{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--soft-2.el-button--primary{background-color:#d1e5fe;border-color:#d1e5fe;color:#1a7efb}.el-button--soft-2.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--icon.el-button--mini{border-radius:4px;padding:7px}.el-button--icon.el-button--small{border-radius:5px;font-size:14px;padding:8px}.el-button--icon.el-button--medium{border-radius:6px;padding:10px}.el-button--text-light{color:#606266}.el-button--info.is-plain{border-color:#ededed}.el-button--dark{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--dark:focus,.el-button--dark:hover{background-color:#3a3a40;border-color:#3a3a40;color:#fff}.el-button--primary:hover{background-color:#1565c9;border-color:#1565c9}.el-pager li{font-weight:600}.form-editor-elements:not(.el-form--label-left):not(.el-form--label-right) .el-form-item__label{line-height:1}.folded .el-dialog__wrapper{right:36px}.el-dialog__wrapper .data-lost-msg{margin-top:10px}.ff-el-banner{border:1px solid #dce0e5;display:inline-block;float:right;height:250px;padding:5px;transition:border .3s;width:200px}.ff-el-banner,.ff-el-banner-group{overflow:hidden}.ff-el-banner-group .ff-el-banner{margin-bottom:30px;margin-left:10px}.ff-el-banner+.ff-el-banner{margin-left:10px}.ff-el-banner img{display:block;height:auto;width:100%}.ff-el-banner-header{background:#909399;color:#fff;font-size:13px;font-weight:400;margin:0;padding:3px 6px;text-align:center}.ff-el-banner-inner-item{height:inherit;overflow:hidden;position:relative}.ff-el-banner:hover .ff-el-banner-text-inside{opacity:1!important;visibility:visible!important}.ff-el-banner-text-inside{display:flex;flex-direction:column;justify-content:center}.ff-el-banner-text-inside-hoverable{bottom:0;color:#fff;right:0;padding:10px;position:absolute;left:0;top:0;transition:all .3s}.ff-el-banner-text-inside .form-title{color:#fff;margin:0 0 10px}.compact td>.cell,.compact th>.cell{white-space:nowrap}.el-tooltip__popper p{margin-bottom:0}.el-dropdown-menu{right:unset;max-width:270px}.el-dropdown-link{cursor:pointer}.el-dropdown-link-lg{color:#1e1f21;font-size:24px;font-weight:600}.el-dropdown-link-lg .el-icon{font-size:20px}.el-switch--small .el-switch__core{height:16px;width:28px!important}.el-switch--small .el-switch__core:after{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core:after{margin-right:-13px}.el-switch--small .el-switch__label *{font-size:13px;font-weight:500}.el-message-box__title{color:#1e1f21;font-weight:500}.el-input-group--append{position:relative}.el-input-group--append .el-input__inner{border-bottom-left-radius:8px;border-top-left-radius:8px}.el-input-group__append,.el-input-group__prepend{background-color:#f2f2f2;border:0;border-radius:5px;display:grid;height:30px;padding:0;position:absolute;text-align:center;top:5px;width:30px}.el-input-group__append:hover,.el-input-group__prepend:hover{background-color:#e0e0e0}.el-input-group__append .el-icon-more,.el-input-group__prepend .el-icon-more{transform:rotate(-90deg)}.el-input-group__append .el-button,.el-input-group__prepend .el-button{margin:0;padding:0}.el-input-group__append{left:4px}.el-input-group__prepend{right:4px}.el-table__fixed,.el-table__fixed-right{background-color:#fff}.el-table__fixed-right:before,.el-table__fixed:before{display:none}.el-radio-button__orig-radio:checked+.el-radio-button__inner{box-shadow:none}.input-with-select{align-items:center;display:flex}.input-with-select.el-input-group--append .el-input__inner{border-bottom-left-radius:0;border-top-left-radius:0}.input-with-select .el-select{background-color:#fff;border:1px solid #dadbdd;height:40px;margin:0}.input-with-select .el-select .el-input__inner{border:0}.input-with-select .el-input-group__append,.input-with-select .el-input-group__prepend{border-radius:0;flex:1;height:auto;right:0;position:inherit;top:0;width:auto}.input-with-select .el-input-group__append:hover,.input-with-select .el-input-group__prepend:hover{background-color:transparent}.input-with-select .el-input-group__prepend .el-select{border-bottom-right-radius:8px;border-left:0;border-top-right-radius:8px}.input-with-select .el-input-group__append .el-select{border-bottom-left-radius:8px;border-right:0;border-top-left-radius:8px}.chain-select-upload-button .el-input-group__append,.chain-select-upload-button .el-input-group__prepend{width:70px}.el-radio-group-dark .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1e1f21;border-color:#1e1f21}.el-radio-group-info .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;border-color:#4b4c4d}.el-table thead .cell{color:#1e1f21;font-weight:500}.el-table--border{border-radius:6px}.ff-input-s1 .el-input .el-select__caret{color:#1e1f21}.ff-input-s1 .el-input .el-icon-arrow-up:before{font-weight:600}.el-radio-button--small:first-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button--small:last-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-input--mini .el-input__inner{border-radius:4px}.el-input--large .el-input__inner{font-size:16px;height:48px;padding-right:20px;padding-left:20px}.el-input-number--mini{line-height:28px}.el-input-number--mini .el-input-number__decrease{border-radius:0 4px 4px 0;right:1px}.el-input-number--mini .el-input-number__increase{border-radius:4px 0 0 4px}.el-input-number__decrease,.el-input-number__increase{background-color:#f2f2f2}.el-dialog__header .title+.text{margin-top:6px}.el-dialog__header .text{margin-bottom:0}.el-dialog__header_group{align-items:center;display:flex}.el-checkbox-horizontal .el-checkbox{display:flex}.el-checkbox-horizontal .el-checkbox__input{align-self:flex-start;padding-top:3px}.el-skeleton__item{border-radius:4px}.ff-add-ons{display:block;margin-bottom:20px;overflow:hidden;position:relative;width:100%}.ff-add-on{box-sizing:border-box;float:right;margin-bottom:10px;overflow:hidden;padding-left:30px;width:33.33%}@media (max-width:768px){.ff-add-on{float:none;margin-bottom:30px;padding-left:0;width:100%}}.ff-add-on.ff-featured-addon{width:100%}.ff-add-on.ff-featured-addon a.button.button-primary{background:#1a7efb;font-size:18px;height:auto;padding:5px 20px}.ff-add-on.ff-featured-addon p.ff-add-on-active{max-width:250px;position:static}.ff-add-on.ff-featured-addon .ff-plugin_info{border-left:1px solid #dcd8d8;float:right;max-width:250px;padding-left:20px}.ff-add-on.ff-featured-addon .ff-plugin_info>img{height:auto!important;max-height:none;max-width:200px;width:100%}.ff-add-on.ff-featured-addon .ff-add-on-description{font-size:16px;margin-bottom:20px}.ff-add-on.ff-featured-addon .ff-featured_content{display:block;float:right;padding-right:20px}.ff-add-on.ff-featured-addon .ff-featured_content .ff-integration{height:auto;max-width:300px}.ff-add-on.ff-featured-addon .ff-featured_content .ff-feature-lists{float:right;margin-left:150px;text-align:right}.ff-add-on.ff-featured-addon .ff-featured_content .ff-feature-lists:last-child{margin-left:0}.ff-add-on.ff-featured-addon .ff-featured_content .ff-feature-lists ul li{font-size:17px;margin-bottom:10px}.ff-add-on.ff-featured-addon .ff-featured_content .ff-feature-lists ul li span{color:green;font-weight:700}.ff-add-on-box{background:#fff;border-radius:4px;box-shadow:0 0 5px rgba(0,0,0,.05);min-height:280px;overflow:hidden;padding:15px;position:relative}.ff-add-on-box img{max-height:100px;max-width:100px}.ff-add-on-active{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.ff-add-on-inactive{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.ff-add-on-active,.ff-add-on-inactive{bottom:15px;font-weight:700;right:15px;padding:6px;position:absolute;left:15px}.ff-add-on-description{margin-bottom:56px}.fluent_activate_now{display:none}.fluent_activation_wrapper .fluentform_label{display:inline-block;margin-left:10px;margin-top:-4px;width:270px}.fluent_activation_wrapper .fluentform_label input{background-color:#f2f2f2;width:100%}.fluent_activation_wrapper .fluentform_label input::-webkit-input-placeholder{color:#908f8f}.fluent_activation_wrapper .contact_us_line{margin-top:12px}.fluent_activation_wrapper .fluent_plugin_activated_hide{display:none!important}.license_activated_sucess{margin-bottom:16px}.license_activated_sucess h5{margin-bottom:8px}.ff_add_on_body .notice,.ff_add_on_body div.error,.ff_add_on_body div.updated{margin:0 0 10px}.add_on_modules .el-col{margin-bottom:22px}.font_downloader_wrapper{margin-right:auto;margin-left:auto;width:650px}.font_downloader_wrapper .el-button.is-loading{border:0;overflow:hidden;pointer-events:inherit}.font_downloader_wrapper .el-button.is-loading span{position:relative;z-index:1}.font_downloader_wrapper .el-button.is-loading:before{background-color:hsla(0,0%,100%,.8)}.font_downloader_wrapper .el-button.is-loading .ff_download_fonts_bar{background-color:#1a7efb;bottom:0;content:"";right:0;position:absolute;left:0;top:0;width:0}.ff_pdf_system_status li,.ff_pdf_system_status_list li{font-size:15px;margin-bottom:10px}.ff_pdf_system_status li .dashicons,.ff_pdf_system_status_list li .dashicons{color:#00b27f}.ff_addon_enabled_yes{background-color:#e8f2ff;border-color:#bad8fe}.ff_addon_enabled_yes .ff_card_footer{border-top-color:#bad8fe}.ff_download_logs{background-color:#4b4c4d;border-radius:10px;color:#fff;line-height:28px;max-height:200px;overflow:scroll;padding:10px 20px;text-align:right}@media (min-width:1281px){.ff_screen_editor .form_internal_menu_inner{flex-direction:row}.ff_screen_editor .form_internal_menu_inner .ff_menu{margin-right:0;padding-bottom:0}.ff_screen_conversational_design .ff_menu_back,.ff_screen_editor .ff_menu_back,.ff_screen_entries .ff_menu_back,.ff_screen_inventory_list .ff_menu_back,.ff_screen_msformentries .ff_menu_back,.ff_screen_settings .ff_menu_back{display:flex}.option-fields-section--content .v-row{flex-direction:row}.option-fields-section--content .v-col--50{padding-bottom:0;width:50%}.form-editor--body{padding:50px;width:65%}.form-editor--sidebar{width:35%}}@media (min-width:769px){.ff_header{align-items:center;flex-direction:row}.ff_header_group{margin-left:32px}.ff_menu{display:flex;margin-top:0}.ff_menu_toggle{display:none}.ff_form_wrap{padding-right:24px;padding-left:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_editor,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:0}}@media (min-width:1025px){.all-forms-search,.ff_entries_search_wrap{width:270px}.ff_entries_search_wrap{margin-right:auto}.all-forms-select{width:250px}.ff_layout_section_sidebar{width:280px}.ff_layout_section_container,.ff_layout_section_sidebar{padding:24px}.fluent_activation_wrapper .fluentform_label{width:470px}}@media (max-width:768px){.form_internal_menu{margin-right:-10px}.form_internal_menu ul.ff_setting_menu{float:left;padding-left:10px!important}.form_internal_menu ul.ff_setting_menu li a{padding:10px 3px!important}.form_internal_menu .ff_form_name_inner{max-width:100px}.form_internal_menu #switchScreen{margin-left:0;margin-top:14px}.ff_nav_action{float:left!important;text-align:right!important}input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{min-height:30px}.ff_form_main_nav .plugin-name{display:none}.row-actions{display:inline-block!important}.el-form .el-form-item .el-form-item__label{width:100%!important}.el-form .el-form-item .el-form-item__content{margin-right:0!important}.el-tabs__content{padding:20px 10px!important}.wpf_each_entry a{word-break:break-all}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu{top:0!important}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{display:block}.form_internal_menu_inner{background:#fff;border-radius:8px;box-shadow:0 1px 10px rgba(0,0,0,.2);display:none;flex-direction:column;padding:20px;position:absolute;left:20px;top:38px;width:300px;z-index:9999}.form_internal_menu_inner.active{display:flex}.ff_form_name{padding-bottom:10px;padding-top:10px}.ff_screen_editor .form_internal_menu_inner .ff_menu,.form_internal_menu .ff-navigation-right{margin-right:0}.ff_menu{align-items:flex-start;flex-direction:column;margin-bottom:10px}.ff_menu li{width:100%}.ff_menu li a{display:block;max-width:100%!important}.form_internal_menu .ff-navigation-right{align-items:flex-start}.ff-navigation-right{flex-direction:column}.form_internal_menu .el-button,.form_internal_menu .ff_shortcode_btn{margin-bottom:10px;margin-left:0}.form_internal_menu .ff-navigation-right .ff_more_menu{bottom:0;left:0;top:auto;transform:translateY(0)}.ff_screen_conversational_design .ff_menu,.ff_screen_editor .ff_menu,.ff_screen_entries .ff_menu,.ff_screen_inventory_list .ff_menu,.ff_screen_msformentries .ff_menu,.ff_screen_settings .ff_menu{padding-right:0;padding-left:0}.ff_tools_wrap .ff_settings_sidebar_wrap{height:100%}.ff_settings_sidebar_wrap{flex-shrink:0;right:-240px;position:absolute;transition:.3s;z-index:999}.ff_settings_sidebar_wrap.active{right:-10px}.ff_settings_sidebar_wrap.active .ff_layout_section_sidebar{box-shadow:-2px 1px 10px 0 rgba(30,31,33,.1)}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle{left:-18px}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle .ff-icon:before{content:"\e919"}.ff_sidebar_toggle{display:flex}.ff_header{margin-right:-10px;position:relative}.ff_header .global-search-menu-button{position:absolute;left:60px;top:12px}.conditional-logic{flex-direction:column}.conditional-logic>*{width:100%}.el-radio-button-group{border:0}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner,.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner,.el-radio-button-group .el-radio-button__inner{border-radius:4px}}@media (max-width:425px){label.el-checkbox{display:inline-flex}.el-checkbox__label{white-space:normal}.el-checkbox__input{line-height:1.6}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{margin-left:0}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right a,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right button,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right span{font-size:10px;margin:0 3px;padding:5px 4px!important}#ff_form_entries_app .ff_nav_top .ff_nav_action,#ff_form_entries_app .ff_nav_top .ff_nav_title{margin-bottom:10px;width:100%}.form_internal_menu{margin:0 -10px;width:auto}.form_internal_menu ul.ff_setting_menu li a{font-size:11px}.ff_form_application_container{margin-top:0!important}.ff_form_main_nav .ninja-tab{font-size:12px;margin:0;padding:10px 5px}ul.el-pager{display:none!important}button.el-button.pull-right{float:right!important}.entry_header h3{clear:both;display:block;width:100%!important}.v-row .v-col--33{margin-bottom:15px;padding-left:0;width:100%!important}.v-row .v-col--33:last-child{margin-bottom:0}.option-fields-section--content{padding:15px 5px}.ff-add-confirmation-wrap .el-radio.is-bordered{margin-bottom:10px;margin-left:10px}.ff-add-confirmation-wrap .el-radio.is-bordered+.el-radio.is-bordered{margin-right:0}.ff-form-item-flex{flex-wrap:wrap;gap:10px}.ff_pagination_wrap.mt-4{margin-top:0!important}.ff_pagination{flex-wrap:wrap;margin-top:24px}.ff_pagination .el-pagination__jump{margin:10px 0 0}.ff_all_entries .ff_section_head_content{margin-top:24px}.ff_all_entries .ff_section_head_content .ff_advanced_search{left:unset}.ff_all_entries .ff_entries_details .ff_section_head .lead-title{margin-bottom:10px!important}.ff_all_entries .ff_entries_details .ff_radio_group_wrap{margin-bottom:10px;margin-top:10px}.ff_all_entries .ff_entries_details .ff_radio_group_wrap .ff_radio_group_s2{width:100%}}.el-popover{text-align:right!important;word-break:inherit!important} assets/css/fluent_gutenblock.css000064400000001040147600120010013044 0ustar00.flueform-guten-wrapper .ff_guten_block{pointer-events:none}.flueform-guten-wrapper .fluentform-logo img{display:block;margin:0 auto;max-width:48px}.flueform-guten-wrapper .fluentform-logo{margin-bottom:30px}.flueform-guten-wrapper .conv-demo{margin:0 auto;text-align:center}.flueform-guten-wrapper .conv-demo img{margin:0 auto 15px;max-height:400px}.flueform-guten-wrapper .components-base-control__label{padding-right:15px}.flueform-guten-wrapper .ff-btn-submit{pointer-events:none}.flueform-guten-wrapper .fluentform-step.active{width:100%} assets/css/settings_global.css000064400000272026147600120010012530 0ustar00@font-face{font-display:block;font-family:fluentform;font-style:normal;font-weight:400;src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd);src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd) format("embedded-opentype"),url(../fonts/fluentform.ttf?5fd4a17c106b6a8cae5c741ddbbe132c) format("truetype"),url(../fonts/fluentform.woff?31c9335ad614611f342d70917260470e) format("woff"),url(../fonts/fluentform.svg?1d0875320e0e3980ae21f2d18c21897a) format("svg")}[class*=" ff-icon-"],[class^=ff-icon-]{speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:fluentform!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.ff-icon-tablet:before{content:"\e96f"}.ff-icon-mobile:before{content:"\e970"}.ff-icon-monitor:before{content:"\e971"}.ff-icon-fullscreen-out:before{content:"\e96b"}.ff-icon-menu:before{content:"\e96a"}.ff-icon-play:before{content:"\e969"}.ff-icon-bug:before{content:"\e925"}.ff-icon-star-line:before{content:"\e94e"}.ff-icon-heart-clock:before{content:"\e966"}.ff-icon-microphone:before{content:"\e967"}.ff-icon-handshake:before{content:"\e968"}.ff-icon-ink-pen:before{content:"\e91e"}.ff-icon-arrow-left:before{content:"\e919"}.ff-icon-user-filled:before{content:"\e902"}.ff-icon-payment:before{content:"\e900"}.ff-icon-play-circle-filled:before{content:"\e901"}.ff-icon-promotion:before{content:"\e903"}.ff-icon-share-filled:before{content:"\e904"}.ff-icon-warning-filled:before{content:"\e905"}.ff-icon-more-vertical:before{content:"\e906"}.ff-icon-gift:before{content:"\e907"}.ff-icon-cursor:before{content:"\e908"}.ff-icon-hash:before{content:"\e909"}.ff-icon-photo:before{content:"\e90a"}.ff-icon-italic-light:before{content:"\e90b"}.ff-icon-keyboard:before{content:"\e90c"}.ff-icon-layers:before{content:"\e90d"}.ff-icon-left-align:before{content:"\e90e"}.ff-icon-light-10:before{content:"\e90f"}.ff-icon-map-pin:before{content:"\e910"}.ff-icon-lock:before{content:"\e911"}.ff-icon-email:before{content:"\e912"}.ff-icon-paragraph:before{content:"\e913"}.ff-icon-user:before{content:"\e914"}.ff-icon-phone-outgoing:before{content:"\e915"}.ff-icon-play-circle:before{content:"\e916"}.ff-icon-puzzle:before{content:"\e917"}.ff-icon-redo:before{content:"\e918"}.ff-icon-repeat:before{content:"\e91a"}.ff-icon-right-align:before{content:"\e91b"}.ff-icon-rocket-filled:before{content:"\e91c"}.ff-icon-setting:before{content:"\e91d"}.ff-icon-light-26:before{content:"\e91f"}.ff-icon-trash:before{content:"\e920"}.ff-icon-underline-alt:before{content:"\e921"}.ff-icon-undo:before{content:"\e922"}.ff-icon-upload-alt:before{content:"\e923"}.ff-icon-web-development:before{content:"\e924"}.ff-icon-underline:before{content:"\e926"}.ff-icon-italic:before{content:"\e927"}.ff-icon-filter-alt:before{content:"\e928"}.ff-icon-files:before{content:"\e929"}.ff-icon-file-add:before{content:"\e92a"}.ff-icon-fullscreen:before{content:"\e92b"}.ff-icon-donut-chart:before{content:"\e92c"}.ff-icon-dollar:before{content:"\e92d"}.ff-icon-document-light:before{content:"\e92e"}.ff-icon-document:before{content:"\e92f"}.ff-icon-document-alt:before{content:"\e930"}.ff-icon-design:before{content:"\e931"}.ff-icon-copy-filled:before{content:"\e932"}.ff-icon-copy:before{content:"\e933"}.ff-icon-code-alt:before{content:"\e934"}.ff-icon-code:before{content:"\e935"}.ff-icon-close-circle-filled:before{content:"\e936"}.ff-icon-chevron-double-left:before{content:"\e937"}.ff-icon-check:before{content:"\e938"}.ff-icon-center-align:before{content:"\e939"}.ff-icon-calendar:before{content:"\e93a"}.ff-icon-bookmark:before{content:"\e93b"}.ff-icon-bold:before{content:"\e93c"}.ff-icon-bold-light:before{content:"\e93d"}.ff-icon-bank:before{content:"\e93e"}.ff-icon-arrow-right:before{content:"\e93f"}.ff-icon-plus-filled:before{content:"\e940"}.ff-icon-plus:before{content:"\e941"}.ff-icon-checkmark-square:before{content:"\e942"}.ff-icon-download:before{content:"\e943"}.ff-icon-sort-circle-down:before{content:"\e944"}.ff-icon-eye-off:before{content:"\e945"}.ff-icon-eye:before{content:"\e946"}.ff-icon-flag:before{content:"\e947"}.ff-icon-link:before{content:"\e948"}.ff-icon-list:before{content:"\e949"}.ff-icon-move:before{content:"\e94a"}.ff-icon-plus-alt:before{content:"\e94b"}.ff-icon-radio-button-on:before{content:"\e94c"}.ff-icon-search:before{content:"\e94d"}.ff-icon-star:before{content:"\e94f"}.ff-icon-sort-down-alt:before{content:"\e950"}.ff-icon-close:before{content:"\e951"}.ff-icon-expand:before{content:"\e952"}.ff-icon-eye-filled:before{content:"\e953"}.ff-icon-info-filled:before{content:"\e954"}.ff-icon-keypad:before{content:"\e955"}.ff-icon-more-horizontal:before{content:"\e956"}.ff-icon-setting-filled:before{content:"\e957"}.ff-icon-strikethrough:before{content:"\e958"}.ff-icon-text:before{content:"\e959"}.ff-icon-decrease-edit:before{content:"\e95a"}.ff-icon-sort-down:before{content:"\e95b"}.ff-icon-increase-edit:before{content:"\e95c"}.ff-icon-list-ordered:before{content:"\e95d"}.ff-icon-quote-left:before{content:"\e95e"}.ff-icon-slider-horizontal:before{content:"\e95f"}.ff-icon-text-alt:before{content:"\e960"}.ff-icon-upload:before{content:"\e961"}.ff-icon-edit:before{content:"\e962"}.ff-icon-filter:before{content:"\e963"}.ff-icon-refresh:before{content:"\e964"}.ff-icon-task:before{content:"\e965"}.ff-icon-sort:before{content:"\e96c"}.ff-icon-captcha:before{content:"\e96d"}.ff-icon-clear:before{content:"\e96e"} .ff_menu{align-items:center;display:none;flex-wrap:wrap;margin-top:22px}.ff_menu_active{display:flex;justify-content:center}.ff_menu_link{background-color:transparent;border-radius:6px;color:#353537;display:inline-block;font-size:15px;font-weight:500;line-height:1.6;overflow:hidden;padding:4px 14px;text-decoration:none;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_menu_link:focus{border:0;box-shadow:none;outline:none}.ff_menu_link:hover{color:#1a7efb}.ff_menu_link_buy{background-color:#1a7efb;color:#fff;margin-left:12px}.ff_menu_link_buy:hover{color:#fff}.ff_menu.conversion_form_editor .ff_menu_link,.ff_menu.partial_entries_form_editor .ff_menu_link{max-width:140px}.ff_menu .active .ff_menu_link{background-color:#e8f2ff;color:#1a7efb}.ff_menu_toggle{cursor:pointer;font-size:26px;margin-left:auto}.ff_menu_toggle:hover{color:#1a7efb}.ff_menu_back .el-icon-arrow-left{font-weight:700;position:relative;transition:all .3s;width:18px}.ff_menu_back .el-icon-arrow-left:after{background-color:#353537;background-color:#1a7efb;content:"";height:1.3px;position:absolute;right:-.6px;top:50%;transform:translateY(-52%);transition:all .3s;width:0}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left{color:#1a7efb;transform:translateX(-2.4px)}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left:after{font-weight:700;width:13px}.mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-3{margin-top:16px!important}.mt-4{margin-top:24px!important}.mt-5{margin-top:32px!important}.mt-6{margin-top:40px!important}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.mb-3{margin-bottom:16px!important}.mb-4{margin-bottom:24px!important}.mb-5{margin-bottom:32px!important}.mb-6{margin-bottom:40px!important}.mr-1{margin-right:4px!important}.mr-2{margin-right:8px!important}.mr-3{margin-right:16px!important}.mr-4{margin-right:24px!important}.mr-5{margin-right:32px!important}.mr-6{margin-right:40px!important}.ml-1{margin-left:4px!important}.ml-2{margin-left:8px!important}.ml-3{margin-left:16px!important}.ml-4{margin-left:24px!important}.ml-5{margin-left:32px!important}.ml-6{margin-left:40px!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.mr-0{margin-right:0!important}.ml-0{margin-left:0!important}.ff_list_button_item:not(:last-child){margin-bottom:4px}.ff_list_button_item.active .ff_list_button_link{background-color:#4b4c4d;color:#fff}.ff_list_button_item.has_sub_menu .ff_list_button_link{position:relative}.ff_list_button_item.has_sub_menu .ff_list_button_link:after{content:"\e6df";font-family:element-icons;position:absolute;right:15px;transition:.3s}.ff_list_button_item.has_sub_menu.is-submenu{color:inherit;font-style:inherit;font-weight:inherit;margin-left:0}.ff_list_button_item.has_sub_menu.is-submenu .ff_list_button_link:after{transform:rotate(-180deg)}.ff_list_button_link{background-color:transparent;border-radius:5px;color:#1e1f21;display:block;font-size:16px;padding:12px 18px;transition:.2s}.ff_list_button_link:hover{background-color:#f5f5f3;color:#1e1f21}.ff_list_button_small .ff_list_button_link{border-radius:6px;font-size:15px;padding:6px 14px}.ff_list_button_s1 .ff_list_button_item.active .ff_list_button_link{background-color:#f5f5f3;color:#1e1f21;font-weight:600}.ff_list_button_s1 .ff_list_button_link{color:#606266;font-size:15px}.ff_list li:not(:last-child){margin-bottom:12px}.ff_list li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list li a:hover{color:#1a7efb}.ff_list_submenu{background-color:#fff;display:none;margin-left:20px;margin-top:10px;position:relative}.ff_list_submenu:after{background-color:#e4e2df;content:"";height:100%;left:0;position:absolute;top:0;width:2px}.ff_list_submenu li{position:relative}.ff_list_submenu li:after{background-image:url(../images/curve-line.svg?ad01d82f4c085066c0a3accc820c65ac);background-repeat:no-repeat;content:"";height:10px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:12px}.ff_list_submenu li:last-child:before{background-color:#fff;bottom:0;content:"";height:18px;left:0;position:absolute;width:2px;z-index:1}.ff_list_submenu li a{border-radius:6px;color:#606266;display:block;font-size:15px;margin-left:15px;max-width:197px;overflow:hidden;padding:10px;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_list_submenu li a:hover{background-color:#efefef}.ff_list_submenu li.active a{background-color:#efefef;color:#1e1f21}.ff_list_border_bottom>li{font-size:15px;position:relative}.ff_list_border_bottom>li:not(:last-child){border-bottom:1px solid #ececec;margin-bottom:12px;padding-bottom:12px}.ff_list_border_bottom>li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list_border_bottom>li a.lead-text{color:#1a7efb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_list_border_bottom>li a.lead-text.lead-url{white-space:unset;word-break:break-all}.ff_submission_info_list li{display:flex}.ff_submission_info_list .lead-title{flex-shrink:0;width:120px}.ff_submission_info_list .truncate{max-width:228px}.el-button--upload{border-style:dashed;justify-content:center;padding:24px;width:100%}.el-button--upload .el-icon{font-size:22px}.ff_file_upload_result{align-items:center;background-color:#fafafa;border:1px solid #f2f2f2;border-radius:8px;display:flex;overflow:hidden;padding:10px;position:relative}.ff_file_upload_result .el-button{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.ff_file_upload_result+.ff_file_upload_result{margin-top:10px}.ff_file_upload_preview{height:44px;width:44px}.ff_file_upload_preview img{border-radius:4px;height:100%;-o-object-fit:cover;object-fit:cover;width:44px}.ff_file_upload_preview+.ff_file_upload_data{margin-left:15px}.ff_file_upload_description{color:#1e1f21;font-size:14px}.ff_file_upload_size{font-size:12px;margin-top:4px}body{background-color:#f2f2f2;color:#606266}#wpcontent{padding-left:0}#wpbody-content *{box-sizing:border-box}h1,h2,h3,h4,h5,h6{color:#1e1f21;margin:0}ol,ul{list-style:none;margin:0;padding:0}h1{font-size:24px}h2{font-size:23px}h3{font-size:22px;line-height:1.4}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}p{font-size:15px}p:last-child{margin:0}hr{border-bottom-color:#ececec;border-top:0}dd,li{margin-bottom:0}a{color:#1a7efb;font-weight:400;text-decoration:none}a:focus{box-shadow:none;outline:none}a:hover{color:#1a7efb}.notice,div.error,div.updated{margin:8px 24px 2px}.fluentform-admin-notice.notice-error{margin:8px 24px;padding:10px 20px}.fluentform-admin-notice.notice-error h3{font-size:18px;margin:10px 0}.ff_form_wrap_area .fluentform-admin-notice{margin:8px 0}.ff_backdrop{background:rgba(0,0,0,.5);bottom:0;left:0;position:fixed;right:0;top:0;z-index:999999999}.w-100{width:100%!important}.ff-mw-100{max-width:100%!important}.h-100{height:100%!important}.ff_form_wrap{padding:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{-webkit-appearance:none;background-color:#fff;border-color:#dadbdd;border-radius:7px;box-shadow:none;color:#606266;padding:0 15px}input[type=color]:focus,input[type=color]:hover,input[type=date]:focus,input[type=date]:hover,input[type=datetime-local]:focus,input[type=datetime-local]:hover,input[type=datetime]:focus,input[type=datetime]:hover,input[type=email]:focus,input[type=email]:hover,input[type=month]:focus,input[type=month]:hover,input[type=number]:focus,input[type=number]:hover,input[type=password]:focus,input[type=password]:hover,input[type=search]:focus,input[type=search]:hover,input[type=tel]:focus,input[type=tel]:hover,input[type=text]:focus,input[type=text]:hover,input[type=time]:focus,input[type=time]:hover,input[type=url]:focus,input[type=url]:hover,input[type=week]:focus,input[type=week]:hover,textarea:focus,textarea:hover{border-color:#1a7efb!important}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{box-shadow:none}input[type=number]{padding-right:0}input[type=checkbox]:disabled{opacity:0}.ff-select{-webkit-appearance:none!important;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat right 14px top 55%!important;background-blend-mode:hard-light;background-size:16px 16px!important;border:1px solid #dadbdd!important;border-radius:7px!important;box-sizing:border-box!important;color:#606266!important;display:inline-block!important;height:40px!important;line-height:40px!important;max-width:inherit!important;outline:0!important;outline:none!important;padding:0 29px 0 20px!important;text-overflow:ellipsis;transition:border-color .2s cubic-bezier(.645,.045,.355,1)!important}.ff-select:focus{box-shadow:none!important;outline:none!important}.ff-select-block{display:block;width:100%}.ff-select-small{background-position-x:38px!important;border-radius:5px!important;height:32px!important;line-height:32px!important;padding-left:10px!important;padding-right:24px!important}.ff-select-small.condition-field,.ff-select-small.condition-operator,.ff-select-small.condition-value{background-position-x:90%!important}.ff_filter_selected{background-color:#e8f2ff;border-color:#bad8fe;color:#1a7efb}p{margin-bottom:10px;margin-top:0}.icon{display:inline-block;font:normal normal normal 14px/1 ultimateform}.el-input--prefix .el-input__inner{padding-left:38px}.el-input__prefix{left:12px}.ff-icon+span,span+.ff-icon{margin-left:6px}.d-flex{display:flex}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.text-primary{color:#1a7efb!important}.text-secondary{color:#606266!important}.text-danger{color:#ff6154!important}.text-success{color:#00b27f!important}.text-warning{color:#fcbe2d!important}.text-dark{color:#1e1f21!important}.flex-grow-1{flex:1}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.el-icon-clickable{cursor:pointer}.fs-17{font-size:17px!important}.fs-15{font-size:15px!important}.fs-14{font-size:14px!important}.fs-13{font-size:13px!important}.text-note{color:#606266;font-size:13px;font-weight:400}.ff-disabled{opacity:.5;pointer-events:none}.mx-auto{margin-left:auto;margin-right:auto}.img-thumb{border:1px solid #ececec;border-radius:8px}.lead-title{color:#1e1f21;display:block;font-size:15px;font-weight:500;transition:.2s}.lead-text{color:#606266;font-size:13px}a.lead-text{color:#1a7efb}.btn{background-image:none;border:1px solid transparent;border-radius:4px;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1.42857143;margin-bottom:0;padding:6px 12px;text-align:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.btn-primary{background-color:#337ab7;border-color:#2e6da4;color:#fff}.btn-primary:hover{background-color:#286090;border-color:#204d74;color:#fff}.btn-block{width:100%}.el-notification__content p{text-align:left}.label-lh-1-5 label{line-height:1.5}.ff_header{background:#fff;border-bottom:1px solid #ececec;display:flex;flex-direction:column;padding:10px 24px}.ff_header_group{align-items:center;display:flex;justify-content:space-between}.ff_header .plugin-name{height:30px}.ff_header .plugin-name img{height:100%}.ff_header .global-search-menu-button{background-color:transparent;border:0;border-radius:6px;color:rgba(60,60,60,.702);cursor:pointer;display:inline-block;font-size:15px;font-weight:400;line-height:1.6;margin:0 0 0 auto;padding:0 0 0 5px;transition:all .3s}.ff_header .global-search-menu-button .el-icon-search{font-size:16px;font-weight:600}.ff_header .global-search-menu-button .shortcut{border-radius:4px;box-shadow:0 2px 3px 0 rgba(32,33,36,.15);font-size:12px;letter-spacing:3px;padding:5px 8px;transition:all .3s}.ff_header .global-search-menu-button:hover{color:#353537}.ff_header .global-search-menu-button:hover .shortcut{border-color:#1a7efb;color:#1a7efb}.ff_header .global-search-menu-button span{margin-left:5px}.ff_row{display:flex;flex-wrap:wrap}.el-dialog{padding:24px 30px}.el-dialog__headerbtn{background-color:#fafafa;border-radius:50%;font-size:1.25rem;height:2rem;right:22px;top:18px;transition:.2s;width:2rem}.el-dialog__headerbtn .el-dialog__close{color:#1e1f21}.el-dialog__headerbtn:hover{background-color:#ececec}.el-dialog__headerbtn:hover .el-dialog__close{color:#1e1f21}.el-dialog__header{border-bottom:1px solid #ececec;padding:0 0 24px}.el-dialog__header h4{font-weight:500}.el-dialog__body,.el-dialog__footer{padding:0}.el-dialog__footer .has-separator{border-top:1px solid #ececec;padding-top:20px}.el-dialog,.el-popover{border-radius:8px}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__header{border:0;padding:0}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__body .el-row{align-content:center;align-items:center;display:flex;justify-content:center}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__headerbtn{z-index:1}.form-editor .disabled-info .el-dialog__wrapper h3{font-size:1.5em}.form-editor .disabled-info .el-dialog__wrapper p{font-size:16px}.form-editor .disabled-info .el-dialog__wrapper img{width:100%}.ff_nav_top{display:block;margin-bottom:15px;overflow:hidden;width:100%}.ff_nav_top .ff_nav_title{float:left;width:50%}.ff_nav_top .ff_nav_title h3{float:left;line-height:28px;margin:0;padding:0}.ff_nav_top .ff_nav_title .ff_nav_sub_actions{display:inline-block;margin-left:20px}.ff_nav_top .ff_nav_action{float:left;text-align:right;width:50%}.ff_nav_top .ff_search_inline{display:inline-block;text-align:right;width:200px}.ff_global_notices{box-sizing:border-box;display:block;margin-top:20px;overflow:hidden;width:100%}.ff_global_notices .ff_global_notice{background:#fff;border:1px solid transparent;border-radius:.25rem;display:block;margin-bottom:1rem;margin-right:20px;padding:.75rem 1.25rem;position:relative}.ff_global_notices .ff_global_notice.ff_notice_error{background-color:#fff3cd;border-color:#ffeeba;color:#856404}.ff_global_notices .ff_global_notice.ff_notice_success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.el-select-dropdown.el-popper{z-index:99999999999!important}ul.ff_entry_list{list-style:disc;margin-left:20px}span.ff_new_badge{background:#ff4747;border-radius:4px;color:#fff;font-size:11px;line-height:100%;margin-left:5px;padding:0 5px 3px;vertical-align:super}label.el-checkbox,label.el-radio{display:inline-block}.el-time-spinner__list .el-time-spinner__item{margin-bottom:0!important}.ff_card_block{background:#f2f2f2;border-radius:8px;padding:20px}.ff_card_block_head{border-bottom:1px solid #e3e3e3;margin-bottom:20px;padding-bottom:15px}.ff_card_block h3{margin:0 0 15px;padding:0}.videoWrapper{height:0;padding-bottom:56.25%;position:relative}.videoWrapper iframe{height:100%;left:0;position:absolute;top:0;width:100%}.ff-left-spaced{margin-left:10px!important}.doc_video_wrapper{background:#fff;margin:0 auto;max-width:800px;padding:20px 0 0;text-align:center}.el-big-items .el-select-dropdown__wrap{max-height:350px}.ff_email_resend_inline{display:inline-block}.el-radio-group-column{display:flex;flex-direction:column}.el-radio-group-column .el-radio{margin-bottom:20px;margin-right:0}.el-checkbox-group-column{display:flex;flex-direction:column}.el-checkbox-group-column .el-checkbox{margin-bottom:14px;margin-right:0}.ff_advanced_filter_wrap{position:relative}.ff_advanced_search{background:#fff;border-radius:8px;box-shadow:0 40px 64px -12px rgba(0,0,0,.08),0 0 14px -4px rgba(0,0,0,.08),0 32px 48px -8px rgba(0,0,0,.1);margin-top:10px;padding:20px;position:absolute;right:0;top:100%;width:350px;z-index:1024}.ff_advanced_search_date_range{background-color:#ececec;border-radius:8px;padding:14px}.ff_advanced_search_date_range p{font-size:14px;font-weight:400}.ff_advanced_search_date_range .el-date-editor--daterange.el-input__inner{width:282px}.el-switch__core:after{box-shadow:0 2px 4px rgba(0,0,0,.2),inset 0 2px 2px #fff,inset 0 -1px 1px rgba(0,0,0,.1)}.row-actions .row-actions-item{display:inline-block;font-size:13px;line-height:1;padding-right:10px;position:relative}.row-actions .row-actions-item:after{background-color:#ddd;content:"";height:10px;position:absolute;right:3px;top:50%;transform:translateY(-50%);width:1px}.row-actions .row-actions-item.trash:after{display:none}.row-actions span.trash a{color:#ff6154}.ff_pagination{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);display:inline-flex;font-weight:500;max-width:100%;padding:12px 20px}.ff_pagination .el-input__inner{background:#f2f2f2;border-color:#f2f2f2;border-radius:4px!important;color:#606266}.ff_pagination .el-input__inner:focus,.ff_pagination .el-input__inner:hover{border-color:#f2f2f2!important}.ff_pagination .el-select .el-input .el-select__caret{color:#606266}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:transparent;border-radius:4px}.ff_shortcode_wrap+.ff_shortcode_wrap{margin-top:.5rem}.ff_shortcode_btn{align-items:center;background-color:#ededed;border:0;border-radius:6px;color:#353537;display:inline-flex;font-size:12px;margin:0;overflow:hidden;padding:4px 10px}.ff_shortcode_btn span{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:200px}.ff_shortcode_btn .el-icon{margin-right:1px}.ff_shortcode_btn_thin{background-color:#f2f2f2}.ff_shortcode_btn_md{font-size:15px;line-height:1.2;padding:10px 14px}.copy_btn{background-color:#e7e6e6;border-radius:4px;cursor:pointer;margin-left:auto;padding:1px 10px;transition:.2s}.copy_btn:hover{background-color:#d8d7d7}.ff_editor_html ul{list-style-type:disc;padding-left:3em}.ff_editor_html ol{list-style-type:decimal;margin-left:3em}.ff_section_block{margin-bottom:64px}.ff_section_block:last-child{margin-bottom:0}.ff_radio_list{display:flex;flex-direction:column}.ff_radio_list_item{margin-bottom:2px;width:100%}.ff_radio_list_item .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:6px!important;box-shadow:none!important;color:#606266;padding:13px 16px;text-align:left;transition:.2s;width:100%}.ff_radio_list_item .el-radio-button__inner:hover,.ff_radio_list_item.is-active .el-radio-button__inner{background-color:rgba(96,98,102,.1);color:#1e1f21}.is-sticky{position:fixed;top:40px;z-index:1020}.ff_section_desc{font-size:16px}.ff_section_head{margin-bottom:40px}.ff_section_head_between{display:flex;flex-wrap:wrap;justify-content:space-between}.ff_section_head.sm{margin-bottom:24px}.ff_section_head_content_group{align-items:center;display:flex}.ff_section_head .text{font-size:15px}.el-row{display:flex;flex-wrap:wrap}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.items_end{align-items:flex-end!important}.el-radio-button__inner{font-weight:400}.el-select-dropdown__item.selected{font-weight:500}.ff_layout_section{display:flex;min-height:550px;position:relative;width:100%}.ff_layout_section_sidebar{background-color:#fff;box-shadow:0 1px 3px rgba(30,31,33,.05);flex-shrink:0;padding:16px;vertical-align:top;width:230px}.ff_layout_section_container{flex:1;overflow-y:scroll;padding:16px}.ff_global_setting_wrap .ff_layout_section_sidebar,.ff_tools_wrap .ff_layout_section_sidebar{height:100%}.ff_global_settings_option{height:110vh;overflow-y:scroll}.ff_global_settings_option::-webkit-scrollbar{display:none}.ff_global_settings_option .el-form-item,.ff_global_settings_option .el-form-item-wrap{margin-bottom:24px}.ff_global_settings_option .el-form-item-wrap:last-child,.ff_global_settings_option .el-form-item:last-child{margin-bottom:0}.ff_global_settings_option .ff_card:not(:last-child){margin-bottom:32px}.ff_input_width{width:438px}.ff_input_full_width{width:100%}.ff_tooltip_wrap{font-size:14px;line-height:1.6;max-width:320px}.ff_tooltip_wrap h6{color:#fff}.ff-icon-gray{color:#757d8a}.el-form--label-top .el-form-item__label{line-height:1;padding-bottom:16px}.ff-form-item .el-form-item__label{align-items:center;color:#1e1f21;display:flex;font-size:15px;font-weight:500}.ff-form-item .el-form-item__label .ff-icon{margin-left:4px}.ff-form-item .el-form-item__content{line-height:1}.ff-form-item .el-icon-info,.ff-form-item .ff-icon-info-filled{font-size:13px}.ff-form-item .el-icon-info{color:#1a7efb;transform:rotate(-14deg)}.el-select__tags input{background-color:transparent;border:none;line-height:2;margin-left:0;min-height:30px;padding:0 8px}.ff_alert{background-color:#e8f2ff;border-left:3px solid #1a7efb;border-radius:4px;padding:17px}.ff_alert_icon{display:inline-block;font-size:16px;margin-top:3px}.ff_alert_icon+.ff_alert_content{padding-left:10px}.ff_alert_group{display:flex}.ff_alert_sm{padding:10px}.ff_alert.success{background-color:#00b27f;border-left-color:#00b27f;color:#fff}.ff_alert.success-soft{background-color:#e6ffeb;border-left-color:#00b27f}.ff_alert.danger{background-color:#ff6154;border-left-color:#ff6154;color:#fff}.ff_alert.danger-soft{background-color:#ffefee;border-left-color:#ff6154}.ff_alert .text{font-size:14px;margin-bottom:12px;margin-top:6px}.ff_alert_between{align-items:center;display:flex;justify-content:space-between}.ff_alert_between .text{margin-bottom:0}.ff_alert_s2{border-left:0;border-radius:8px;padding:40px;text-align:center}.ff-form-item-flex{align-items:center;display:flex}.ff-form-item-flex .el-form-item__label{padding-bottom:0}.ff-form-item-flex.reverse{flex-direction:row-reverse;justify-content:flex-end}.ff-form-setting-label-width .el-form-item__label{width:390px}.el-switch input{border:0}.el-switch-lg .el-switch__core{border-radius:30px;height:24px;width:48px!important}.el-switch-lg .el-switch__core:after{height:20px;width:20px}.el-switch-lg.is-checked .el-switch__core:after{margin-left:-21px}.ff_block_title{font-weight:500}.el-form-item__label h6{font-size:15px;font-weight:500}.ff_checkbox_group_col_2{display:flex;flex-wrap:wrap}.ff_checkbox_group_col_2 .el-checkbox{line-height:1;margin-bottom:.75rem;margin-right:0;width:50%}.wp_vue_editor_wrapper{background-color:#fff;border:1px solid #dadbdd;border-radius:8px;overflow:hidden;position:relative}.wp_vue_editor_wrapper .wp-media-buttons{float:none;position:absolute;right:160px;top:10px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media{background-color:#e8f2ff;border-color:#e8f2ff;border-radius:6px;color:#1a7efb;font-weight:500;line-height:1;margin:0;min-height:30px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.wp_vue_editor_wrapper .popover-wrapper{padding:10px;position:absolute;right:0;top:0;z-index:2}.wp_vue_editor_wrapper .wp-editor-container{border:0}.wp_vue_editor_wrapper .wp-editor-tabs{float:none;padding:8px}.wp_vue_editor_wrapper .wp-switch-editor{background-color:transparent;border-color:transparent;border-radius:5px;float:none;font-size:14px;font-weight:500;height:auto;line-height:inherit;margin:0 0 0 4px;padding:7px 14px}.wp_vue_editor_wrapper .html-active .switch-html,.wp_vue_editor_wrapper .tmce-active .switch-tmce{background-color:#ededed;border-color:#dadbdd;color:#1e1f21}.wp_vue_editor_wrapper .switch-html{margin-left:0}.wp_vue_editor_wrapper .mce-top-part:before{box-shadow:none}.wp_vue_editor_wrapper .quicktags-toolbar,.wp_vue_editor_wrapper div.mce-toolbar-grp{background:#f1f1f0;border-bottom:0}.wp_vue_editor_wrapper .mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border:0;border-radius:4px;box-shadow:none}.wp_vue_editor_wrapper textarea{border:0;padding-top:15px}.wp-media-buttons .insert-media{padding-left:8px;padding-right:10px}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#1a7efb}.mce-panel.mce-menu{border-radius:8px}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:10px!important}.el-input-number__decrease{left:2px}.ff_state_box{border-radius:8px;display:block;padding:32px;text-align:center}.ff_icon_btn{align-items:center;background-color:#1a7efb;border-radius:50%;color:#fff;display:flex;font-size:28px;height:58px;justify-content:center;text-align:center;width:58px}.ff_icon_btn:focus,.ff_icon_btn:hover{color:#fff}.ff_icon_btn img{height:36px;-o-object-fit:contain;object-fit:contain}.ff_icon_btn.square{border-radius:12px}.ff_icon_btn.blue{background-color:#3b5998;color:#fff}.ff_icon_btn.blue-soft{background-color:#ebeef5;color:#3b5998}.ff_icon_btn.dark{background-color:#1e1f21;color:#fff}.ff_icon_btn.dark-soft{background-color:#e9e9e9;color:#1e1f21}.ff_icon_btn.primary-soft{background-color:#e8f2ff;color:#1a7efb}.ff_icon_btn.danger{background-color:#ff6154;color:#fff}.ff_icon_btn.danger-soft{background-color:#ffefee;color:#ff6154}.ff_icon_btn.success{background-color:#00b27f;color:#fff}.ff_icon_btn.success-soft{background-color:#e6ffeb;color:#00b27f}.ff_icon_btn.warning{background-color:#fcbe2d;color:#fff}.ff_icon_btn.warning-soft{background-color:#fff9ea;color:#fcbe2d}.ff_icon_btn.info{background-color:#4b4c4d;color:#fff}.ff_icon_btn.info-soft{background-color:#ededed;color:#4b4c4d}.ff_icon_btn.cyan{background-color:#0dcaf0;color:#fff}.ff_icon_btn.cyan-soft{background-color:#e7fafe;color:#0dcaf0}.ff_icon_btn.mini{font-size:12px;height:18px;width:18px}.ff_icon_btn.small{font-size:16px;height:27px;width:27px}.ff_icon_btn.md{font-size:26px;height:48px;width:48px}.ff_icon_btn.md img{height:28px;-o-object-fit:cover;object-fit:cover;-o-object-position:left;object-position:left;width:28px}.ff_icon_btn.lg{font-size:36px;height:72px;width:72px}.ff_btn_group{align-items:center;display:inline-flex;flex-wrap:wrap;margin:-6px}.ff_btn_group>*{margin-bottom:0;padding:6px}.ff_btn_group.sm{margin:-3px}.ff_btn_group.sm>*{padding:3px}.ff_btn_group_half{display:flex}.ff_btn_group_half>*{flex:1}.ff_btn_group_half .el-button{justify-content:center;width:100%}.file-input{background:#fff;border:1px solid #ececec;border-radius:8px;color:#606266;max-width:100%;padding:5px!important}.file-input::file-selector-button{background:#f2f2f2;border:none;border-radius:6px;color:#1e1f21;cursor:pointer;margin-right:6px;padding:6px 16px;transition:background .2s ease-in-out}.file-input::file-selector-button:hover{background:#ced0d4}.el-tag--pill{border-radius:50rem}.ff_radio_group{background-color:#f5f5f3;border-radius:8px;overflow:hidden}.ff_radio_group .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:0!important}.ff_radio_group .el-radio-button__inner:hover{color:#1e1f21}.ff_radio_group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;box-shadow:none;color:#fff}.ff_radio_group_s2{background:#fff;border:1px solid #edeae9;border-radius:8px;display:inline-flex;overflow:hidden}.ff_radio_group_s2 .el-radio-button:first-child .el-radio-button__inner{border-left:0}.ff_radio_group_s2 .el-radio-button:last-child .el-radio-button__inner{border-right:0}.ff_radio_group_s2 .el-radio-button__inner{border-color:transparent #edeae9 transparent transparent}.el-input-gray .el-input__inner{background-color:#e7e6e6;border-color:#e7e6e6}.el-input-gray .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray .el-input__prefix{color:#606266}.el-input-gray-light .el-input__inner{background-color:#f5f5f3;border-color:#f5f5f3}.el-input-gray-light .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__prefix{color:#606266}.el-radio.is-bordered{margin-right:6px}.ff_media_group{align-items:center;display:flex}.ff_media_head+.ff_media_body{margin-left:16px}.ff_video_wrap{position:relative}.ff_video_wrap:after{background-color:#1e1f21;border-radius:8px;content:"";height:100%;left:0;opacity:.3;position:absolute;top:0;width:100%}.ff_video_img{border-radius:8px;display:block;width:100%}.ff_video_icon{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1}.ff-input-wrap{position:relative}.ff-input-wrap .el-icon{align-items:center;display:inline-flex;height:100%;left:0;padding-left:14px;position:absolute;top:0;z-index:2}.ff-input-wrap .el-icon+.el-input .el-input__inner,.ff-input-wrap .el-icon+input{padding-left:32px}.el-dialog-no-header .el-dialog__header{display:none}.el-radio-button-group{background-color:#fff;border:1px solid #ececec;border-radius:4px}.el-radio-button-group .el-radio-button__inner{background:transparent;border:0;padding:6px 9px}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner{border-left:0;border-radius:4px 0 0 4px}.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button-group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1a7efb;box-shadow:none}.el-color-picker__color{border-color:#d4edda;border-radius:3px}.ff_socials li{display:inline-block;margin-right:2px}.ff_socials li:last-child{margin-right:0}.ff_socials li a{background-color:#ededed;border-radius:50%;color:#606266;display:grid;height:32px;place-items:center;transition:.2s;width:32px}.ff_socials li a span{font-size:16px;height:auto;transition:0s;width:auto}.ff_socials li a:hover{background-color:#1a7efb;color:#fff}.ff-dropdown-menu .el-dropdown-menu__item{line-height:1.5;padding:6px 20px}.ff-dropdown-menu .el-dropdown-menu__item:hover{background-color:transparent}.truncate{display:block;max-width:188px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;max-width:inherit;white-space:inherit}.hover-y{transition:.3s}.hover-y:hover{transform:translateY(-2px)}.hover-zoom{transition:.3s}.hover-zoom:hover{transform:scale(1.03)}.ff_badge{align-items:center;background-color:#ededed;border:1px solid #dbdbdb;border-radius:30px;color:#4b4c4d;display:inline-flex;line-height:1.2;padding:2px 7px;text-transform:capitalize}.ff_badge.small{font-size:13px}.ff_badge_wrap{align-items:center;display:inline-flex}.ff_badge img{flex-shrink:0;height:14px;margin-right:4px}.ff_badge_active,.ff_badge_primary{background-color:#e8f2ff;border-color:#d1e5fe;color:#1a7efb}.ff_badge_paid{background-color:#e6f7f2;border-color:#ccf0e5;color:#00b27f}.ff_badge_processing{background-color:#e7fafe;border-color:#cff4fc;color:#0dcaf0}.ff_badge_pending{background-color:#fff9ea;border-color:#fef2d5;color:#fcbe2d}.ff_badge_failed{background-color:#ffefee;border-color:#ffdfdd;color:#ff6154}.ff_badge_visa{background-color:#e8e9ef;border-color:#dddee7;color:#192061}.ff_badge_mastercard{background-color:#ffefe6;border-color:#ffe7d9;color:#ff5f00}.ff_badge_amex{background-color:#f0f9fd;border-color:#e9f6fc;color:#6cc4ee}.ff_badge_paypal{background-color:#e6f5fc;border-color:#d9f0fa;color:#019ddd}.ff_badge_stripe{background-color:#eef0fb;border-color:#e5e9f9;color:#5469d4}.ff_badge.is-solid.ff_badge_active{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.ff_badge.is-solid.ff_badge_processing{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.ff_badge.is-solid.ff_badge_paid{background-color:#00b27f;border-color:#00b27f;color:#fff}.ff_badge.is-solid.ff_badge_pending{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.ff_badge.is-solid.ff_badge_cancelled,.ff_badge.is-solid.ff_badge_failed{background-color:#ff6154;border-color:#ff6154;color:#fff}.separator{background-color:rgba(96,98,102,.1);height:1px}.ff_choose_template_wrap .el-dialog{max-width:1280px}.ff_settings_container .notice{margin:0 0 20px}.global-search-wrapper{align-items:center;background:rgba(0,0,0,.7);display:flex;height:auto;inset:0;justify-content:center;min-height:100vh;padding:20px;position:fixed;z-index:999999999}.global-search-wrapper .global-search-container{background:#f6f6f7;border-radius:5px;overflow:auto;position:relative;width:700px}.global-search-wrapper .global-search-container input{font-size:17px;padding:3px 35px;width:100%}.global-search-wrapper .global-search-container ul.search-result li{background:#fff;border-radius:6px;box-shadow:0 1px 3px 0 #d4d9e1;color:#606266;cursor:pointer;display:block;font-size:15px;margin-left:0;margin-top:7px;padding:10px;transition:.2s}.global-search-wrapper .global-search-container ul.search-result li.active-search-link{background-color:#197efb;color:#fff;outline:0}.global-search-wrapper .global-search-container ul.search-result li:focus,.global-search-wrapper .global-search-container ul.search-result li:focus-visible{border:0;box-shadow:none;outline:0}.global-search-wrapper .global-search-container span.global-search-not-match{display:inline-block;font-size:16px;margin-top:6px}.global-search-wrapper .global-search-body{max-height:400px;min-height:200px;overflow-y:auto;padding:20px}.global-search-wrapper .search-commands{background:#fff;box-shadow:0 -1px 0 0 #efefef,0 -2px 6px 0 rgba(70,90,150,.1);color:#606266;display:flex;font-size:14px;justify-content:space-around;padding:12px}.global-search-wrapper .search-commands ul li{font-size:12px;margin-top:7px;padding:10px}.scroll{animation:down 2s ease-in-out infinite;-webkit-animation:down 2s ease-in-out infinite;cursor:pointer;height:26px;margin:0 auto;position:relative;width:60px}.scroll:before{border-bottom:2px solid #777;border-left:2px solid #777;content:"";height:16px;left:18px;position:absolute;top:24px;transform:rotate(-45deg);width:16px}.ff_chained_ajax_field{display:flex;flex:auto;gap:10px}.ff_chained_ajax_field .el-select{flex-basis:100%}@keyframes down{0%{opacity:0;-webkit-transform:translateY(-14px)}50%{opacity:1}to{opacity:0;-webkit-transform:translateY(14px)}}.ff_sidebar_toggle{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 1px 10px rgba(0,0,0,.1);color:#000;cursor:pointer;display:none;font-size:18px;height:30px;justify-content:center;position:absolute;right:-21px;top:15px;width:30px}.text-capitalize{text-transform:capitalize}.ff_card{background-color:#fff;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 3px 0 hsla(0,0%,51%,.1);padding:24px}.ff_card.primary{background-color:#1a7efb}.ff_card_pro{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;padding-left:54px;padding-right:40px}.ff_card_pro h3{color:#fff;font-size:28px;line-height:1.3;max-width:400px}.ff_card.highlight-border{border-color:#1a7efb}.ff_card .ff_pagination{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_shadow_lg{box-shadow:0 14px 16px -2px hsla(0,0%,51%,.1)}.ff_card .text{font-size:15px;line-height:1.6}.ff_card_alert{border-left:3px solid #ff6154;border-radius:4px}.ff_card_head{border-bottom:1px solid #ececec;margin-bottom:26px;padding-bottom:16px}.ff_card_head .text{margin-top:10px}.ff_card_head_group{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.ff_card_head_group .el-tooltip{font-size:15px}.ff_card_form_action{border-color:#ececec;cursor:pointer;height:100%}.ff_card_form_action .ff_card_text{word-break:break-word}.ff_card_img img{width:100%}.ff_card_s2{border:1px solid #e4e4e4;box-shadow:none;display:flex;flex-direction:column;padding:0;transition:.3s}.ff_card_s2 .ff_card_body{padding:20px}.ff_card_s2 .ff_card_footer{border-top:1px solid #e4e4e4;margin-top:auto;padding:14px 20px}.ff_card_s2:hover{box-shadow:0 22px 16px hsla(0,0%,51%,.12)}.ff_card_footer_group{align-items:center;display:flex;justify-content:space-between}.ff_card .ff-table-container{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_border{border:1px solid #ececec;box-shadow:none}.ff_table{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);padding:10px 24px}.ff_table .el-table__row td:first-child{vertical-align:top}.ff_table .el-table__empty-block,.ff_table table{width:100%!important}.ff_table .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell,.ff_table .el-table__body tr.el-table__row--striped td.el-table__cell,.ff_table .el-table__body tr.hover-row>td.el-table__cell,.ff_table th.el-table__cell,.ff_table tr{background-color:transparent!important}.ff_table .el-table--border:after,.ff_table .el-table--group:after,.ff_table .el-table:before{display:none}.ff_table thead{color:#1e1f21}.ff_table thead .el-table__cell,.ff_table thead th{padding-bottom:8px;padding-top:0}.ff_table .cell,.ff_table th.el-table__cell>.cell{font-weight:600;padding-left:0;padding-right:0}.ff_table .sort-caret{border-width:4px}.ff_table .sort-caret.ascending{top:7px}.ff_table .sort-caret.descending{bottom:8px}.ff_table .cell strong{color:#1e1f21;font-weight:500}.ff_table td.el-table__cell,.ff_table th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff_table tbody tr:last-child td.el-table__cell,.ff_table tbody tr:last-child th.el-table__cell.is-leaf{border-bottom-width:0}.ff_table tbody .cell{font-weight:400}.ff_table_s2 .el-table__body tr.el-table__row--striped td.el-table__cell,.ff_table_s2 th.el-table__cell,.ff_table_s2 tr,.ff_table_s2.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:transparent}.ff_table_s2 .el-table__empty-block,.ff_table_s2 table{width:100%!important}.ff_table_s2 thead{color:#1e1f21}.ff_table_s2 thead th.el-table__cell{background-color:#f8f8f8;border-bottom:0!important}.ff_table_s2 thead th.el-table__cell .cell{font-weight:500}.ff_table_s2 thead tr th:first-child{border-bottom-left-radius:8px;border-top-left-radius:8px}.ff_table_s2 thead tr th:first-child .cell{padding-left:20px}.ff_table_s2 thead tr th:last-child{border-bottom-right-radius:8px;border-top-right-radius:8px}.ff_table_s2 tbody tr td:first-child .cell{padding-left:20px}.ff_table_s2 td.el-table__cell,.ff_table_s2 th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff-table-container{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);padding:10px 24px}.ff-table-container .el-table__row td:first-child{vertical-align:top}.ff-table-container .el-table{background-color:transparent}.ff-table-container .el-table__empty-block,.ff-table-container table{width:100%!important}.ff-table-container .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell,.ff-table-container .el-table__body tr.el-table__row--striped td.el-table__cell,.ff-table-container .el-table__body tr.hover-row>td.el-table__cell,.ff-table-container .el-table__body tr:hover td.el-table__cell,.ff-table-container th.el-table__cell,.ff-table-container tr{background-color:transparent}.ff-table-container .el-table--border:after,.ff-table-container .el-table--group:after,.ff-table-container .el-table:before{display:none}.ff-table-container thead{color:#1e1f21}.ff-table-container thead .el-table__cell,.ff-table-container thead th{padding-bottom:8px;padding-top:0}.ff-table-container .cell,.ff-table-container th.el-table__cell>.cell{font-weight:600;padding-left:0;padding-right:1px}.ff-table-container .sort-caret{border-width:3px}.ff-table-container .sort-caret.ascending{top:9px}.ff-table-container .sort-caret.descending{bottom:11px}.ff-table-container .cell strong{color:#1e1f21;font-weight:500}.ff-table-container td.el-table__cell,.ff-table-container th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff-table-container tbody tr:last-child td.el-table__cell,.ff-table-container tbody tr:last-child th.el-table__cell.is-leaf{border-bottom-width:0}.ff-table-container tbody .cell{font-weight:400}.ff-table-container_s2 .el-table__body tr.el-table__row--striped td.el-table__cell,.ff-table-container_s2 th.el-table__cell,.ff-table-container_s2 tr,.ff-table-container_s2.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:transparent}.ff-table-container_s2 thead{color:#1e1f21}.ff-table-container_s2 thead th.el-table__cell{background-color:#f8f8f8;border-bottom:0!important}.ff-table-container_s2 thead th.el-table__cell .cell{font-weight:500}.ff-table-container_s2 thead tr th:first-child{border-bottom-left-radius:8px;border-top-left-radius:8px}.ff-table-container_s2 thead tr th:first-child .cell{padding-left:20px}.ff-table-container_s2 thead tr th:last-child{border-bottom-right-radius:8px;border-top-right-radius:8px}.ff-table-container_s2 tbody tr td:first-child .cell{padding-left:20px}.ff-table-container_s2 td.el-table__cell,.ff-table-container_s2 th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff_tab{border-bottom:1px solid #ececec;display:flex}.ff_tab_item:not(:last-child){margin-right:30px}.ff_tab_item.active .ff_tab_link{color:#1a7efb}.ff_tab_item.active .ff_tab_link:after{width:100%}.ff_tab_link{color:#1e1f21;display:block;font-size:16px;font-weight:500;padding-bottom:16px;position:relative}.ff_tab_link:after{background-color:#1a7efb;bottom:-1px;content:"";height:2px;left:0;position:absolute;transition:.2s;width:0}.ff_tab_center .ff_tab_item{flex:1;text-align:center}.el-notification__content{text-align:left}.action-buttons .el-button+.el-button{margin-left:0}.el-box-card{box-shadow:none}.el-box-footer,.el-box-header{background-color:#edf1f6;padding:15px}.el-box-body{padding:15px}.el-form-item__force-inline.el-form-item__label{float:left;padding:11px 12px 11px 0}.el-form-item .el-form-item{margin-bottom:10px}.el-form-item__content .line{text-align:center}.el-basic-collapse{border:0;margin-bottom:15px}.el-basic-collapse .el-collapse-item__header{border:0;display:inline-block;padding-left:0}.el-basic-collapse .el-collapse-item__wrap{border:0}.el-basic-collapse .el-collapse-item__content{background-color:#fff;padding:0}.el-collapse-settings{border:0}.el-collapse-settings .el-collapse-item__header{background:#f5f5f3;border:0;border-radius:8px;font-size:16px;padding-left:20px;padding-right:10px}.el-collapse-settings .el-collapse-item__header .el-collapse-item__arrow{font-size:16px;font-weight:500}.el-collapse-settings .el-collapse-item__content{margin-top:15px;padding-bottom:0}.el-collapse-settings .el-collapse-item__arrow{line-height:48px}.el-collapse-settings .el-collapse-item__wrap{background-color:transparent;border-bottom:0;overflow:inherit}.el-popover{text-align:left}.option-fields-section--content .el-form-item__label{color:#1e1f21;font-weight:500;line-height:1;padding-bottom:10px}.option-fields-section--content .el-form-item__content{line-height:1.5;margin-bottom:5px}.option-fields-section--content .el-input-number--mini{line-height:28px}.option-fields-section--content strong{color:#1e1f21;font-weight:600}.el-dropdown-list{border:0;box-shadow:none;margin:0;max-height:280px;min-width:auto;overflow-y:scroll;padding:0;position:static;z-index:10}.el-dropdown-list .el-dropdown-menu__item{border-bottom:1px solid #f1f1f1;font-size:13px;line-height:18px;padding:4px 10px}.el-dropdown-list .el-dropdown-menu__item:last-of-type{border-bottom:0}.el-popper[x-placement^=bottom] .popper__arrow{top:-7px}.el-form-nested.el-form--label-left .el-form-item__label{float:left;padding:10px 5px 10px 0}.el-message{top:40px}.el-tabs--border-card{border-color:#ececec;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.05)}.el-tabs--border-card .el-tabs__header{background-color:transparent;border-top-left-radius:6px;border-top-right-radius:6px;padding:10px 14px}.el-tabs--border-card .el-tabs__header .el-tabs__item{border:0;border-radius:6px;font-size:13px;height:34px;line-height:34px;margin-top:0;padding-left:16px;padding-right:16px}.el-tabs--border-card .el-tabs__header .el-tabs__item:first-child{margin-left:0}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active{background-color:#d1e5fe;color:#1a7efb}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active:hover{color:#1a7efb}.el-button{align-items:center;display:inline-flex;transition:.3s}.el-button .el-loading-mask{border-radius:7px}.el-button .el-loading-mask .el-loading-spinner{margin-top:-12px}.el-button .el-loading-mask .el-loading-spinner .circular{height:24px;width:24px}.el-button span{align-items:center;display:inline-flex}.el-button-group .el-button span{display:inline-block}.el-button--block{justify-content:center;width:100%}.el-button--small .ff-icon{font-size:14px}.el-button--large{font-size:16px;padding:15px 20px}.el-button--soft.el-button--blue{background-color:#ebeef5;border-color:#ebeef5;color:#3b5998}.el-button--soft.el-button--blue:hover{background-color:#3b5998;border-color:#3b5998;color:#fff}.el-button--soft.el-button--primary{background-color:#e8f2ff;border-color:#e8f2ff;color:#1a7efb}.el-button--soft.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--soft.el-button--danger{background-color:#ffefee;border-color:#ffefee;color:#ff6154}.el-button--soft.el-button--danger:hover{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-button--soft.el-button--success{background-color:#e6ffeb;border-color:#e6ffeb;color:#00b27f}.el-button--soft.el-button--success:hover{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-button--soft.el-button--warning{background-color:#fff9ea;border-color:#fff9ea;color:#fcbe2d}.el-button--soft.el-button--warning:hover{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--soft.el-button--info{background-color:#ededed;border-color:#ededed;color:#4b4c4d}.el-button--soft.el-button--info:hover{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--soft.el-button--cyan{background-color:#e7fafe;border-color:#e7fafe;color:#0dcaf0}.el-button--soft.el-button--cyan:hover{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.el-button--soft.el-button--dark{background-color:#e9e9e9;border-color:#e9e9e9;color:#1e1f21}.el-button--soft.el-button--dark:hover{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--soft-2.el-button--primary{background-color:#d1e5fe;border-color:#d1e5fe;color:#1a7efb}.el-button--soft-2.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--icon.el-button--mini{border-radius:4px;padding:7px}.el-button--icon.el-button--small{border-radius:5px;font-size:14px;padding:8px}.el-button--icon.el-button--medium{border-radius:6px;padding:10px}.el-button--text-light{color:#606266}.el-button--info.is-plain{border-color:#ededed}.el-button--dark{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--dark:focus,.el-button--dark:hover{background-color:#3a3a40;border-color:#3a3a40;color:#fff}.el-button--primary:hover{background-color:#1565c9;border-color:#1565c9}.el-pager li{font-weight:600}.form-editor-elements:not(.el-form--label-left):not(.el-form--label-right) .el-form-item__label{line-height:1}.folded .el-dialog__wrapper{left:36px}.el-dialog__wrapper .data-lost-msg{margin-top:10px}.ff-el-banner{border:1px solid #dce0e5;display:inline-block;float:left;height:250px;padding:5px;transition:border .3s;width:200px}.ff-el-banner,.ff-el-banner-group{overflow:hidden}.ff-el-banner-group .ff-el-banner{margin-bottom:30px;margin-right:10px}.ff-el-banner+.ff-el-banner{margin-right:10px}.ff-el-banner img{display:block;height:auto;width:100%}.ff-el-banner-header{background:#909399;color:#fff;font-size:13px;font-weight:400;margin:0;padding:3px 6px;text-align:center}.ff-el-banner-inner-item{height:inherit;overflow:hidden;position:relative}.ff-el-banner:hover .ff-el-banner-text-inside{opacity:1!important;visibility:visible!important}.ff-el-banner-text-inside{display:flex;flex-direction:column;justify-content:center}.ff-el-banner-text-inside-hoverable{bottom:0;color:#fff;left:0;padding:10px;position:absolute;right:0;top:0;transition:all .3s}.ff-el-banner-text-inside .form-title{color:#fff;margin:0 0 10px}.compact td>.cell,.compact th>.cell{white-space:nowrap}.el-tooltip__popper p{margin-bottom:0}.el-dropdown-menu{left:unset;max-width:270px}.el-dropdown-link{cursor:pointer}.el-dropdown-link-lg{color:#1e1f21;font-size:24px;font-weight:600}.el-dropdown-link-lg .el-icon{font-size:20px}.el-switch--small .el-switch__core{height:16px;width:28px!important}.el-switch--small .el-switch__core:after{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core:after{margin-left:-13px}.el-switch--small .el-switch__label *{font-size:13px;font-weight:500}.el-message-box__title{color:#1e1f21;font-weight:500}.el-input-group--append{position:relative}.el-input-group--append .el-input__inner{border-bottom-right-radius:8px;border-top-right-radius:8px}.el-input-group__append,.el-input-group__prepend{background-color:#f2f2f2;border:0;border-radius:5px;display:grid;height:30px;padding:0;position:absolute;text-align:center;top:5px;width:30px}.el-input-group__append:hover,.el-input-group__prepend:hover{background-color:#e0e0e0}.el-input-group__append .el-icon-more,.el-input-group__prepend .el-icon-more{transform:rotate(90deg)}.el-input-group__append .el-button,.el-input-group__prepend .el-button{margin:0;padding:0}.el-input-group__append{right:4px}.el-input-group__prepend{left:4px}.el-table__fixed,.el-table__fixed-right{background-color:#fff}.el-table__fixed-right:before,.el-table__fixed:before{display:none}.el-radio-button__orig-radio:checked+.el-radio-button__inner{box-shadow:none}.input-with-select{align-items:center;display:flex}.input-with-select.el-input-group--append .el-input__inner{border-bottom-right-radius:0;border-top-right-radius:0}.input-with-select .el-select{background-color:#fff;border:1px solid #dadbdd;height:40px;margin:0}.input-with-select .el-select .el-input__inner{border:0}.input-with-select .el-input-group__append,.input-with-select .el-input-group__prepend{border-radius:0;flex:1;height:auto;left:0;position:inherit;top:0;width:auto}.input-with-select .el-input-group__append:hover,.input-with-select .el-input-group__prepend:hover{background-color:transparent}.input-with-select .el-input-group__prepend .el-select{border-bottom-left-radius:8px;border-right:0;border-top-left-radius:8px}.input-with-select .el-input-group__append .el-select{border-bottom-right-radius:8px;border-left:0;border-top-right-radius:8px}.chain-select-upload-button .el-input-group__append,.chain-select-upload-button .el-input-group__prepend{width:70px}.el-radio-group-dark .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1e1f21;border-color:#1e1f21}.el-radio-group-info .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;border-color:#4b4c4d}.el-table thead .cell{color:#1e1f21;font-weight:500}.el-table--border{border-radius:6px}.ff-input-s1 .el-input .el-select__caret{color:#1e1f21}.ff-input-s1 .el-input .el-icon-arrow-up:before{font-weight:600}.el-radio-button--small:first-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-radio-button--small:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-input--mini .el-input__inner{border-radius:4px}.el-input--large .el-input__inner{font-size:16px;height:48px;padding-left:20px;padding-right:20px}.el-input-number--mini{line-height:28px}.el-input-number--mini .el-input-number__decrease{border-radius:4px 0 0 4px;left:1px}.el-input-number--mini .el-input-number__increase{border-radius:0 4px 4px 0}.el-input-number__decrease,.el-input-number__increase{background-color:#f2f2f2}.el-dialog__header .title+.text{margin-top:6px}.el-dialog__header .text{margin-bottom:0}.el-dialog__header_group{align-items:center;display:flex}.el-checkbox-horizontal .el-checkbox{display:flex}.el-checkbox-horizontal .el-checkbox__input{align-self:flex-start;padding-top:3px}.el-skeleton__item{border-radius:4px}.ff_subscription_data{display:flex;justify-content:space-between}.ff_subscription_data_item_title{color:#1e1f21;font-size:16px;font-weight:500;margin-bottom:6px}.ff_subscription_data_item .ff_sub_id,.ff_subscription_data_item_name{font-size:13px}.ff_subscription_data_item_payment{align-items:center;display:flex;font-size:15px;margin-bottom:20px}.ff_subscription_data_item_payment .ff_badge{margin-left:5px}.ff_subscription_data_item_payment .ff_badge i{margin-right:2px}.ff_subscription_data_item_total{color:#1e1f21;font-weight:500;margin-bottom:4px}.ff_payment_detail_data .wpf_entry_transaction:not(:first-child){margin-top:20px}.ff_payment_detail_data_payment{align-items:center;display:flex;font-size:15px;margin-bottom:10px}.ff_payment_detail_data_payment .ff_badge{margin-left:5px}.ff_payment_detail_data_payment .ff_badge i{margin-right:2px}.entry_navs a{padding:2px 5px;text-decoration:none}.entry_navs a.active{background:#20a0ff;color:#fff}.entry-multi-texts{display:flex;flex-wrap:wrap;margin-left:-7px;margin-right:-7px}.entry-multi-texts .mult-text-each{padding-left:7px;padding-right:7px;width:32%}.ff_entry_user_change{position:absolute;right:0;top:-5px}.addresss_editor{background:#eaeaea;display:flex;flex-wrap:wrap;padding:20px 20px 10px}.addresss_editor .each_address_field{line-height:1;margin-bottom:20px;padding-left:7px;padding-right:7px;width:47%}.addresss_editor .each_address_field label{color:#1e1f21;display:block;font-weight:500;margin-bottom:10px}.repeat_field_items{display:flex;flex-direction:row;flex-wrap:wrap;overflow:hidden;width:100%}.repeat_field_items .field_item{display:flex;flex-basis:100%;flex:1;flex-direction:column;padding-right:20px}.repeat_field_items .field_item.field_item_action{display:block!important;flex:0.35;padding-right:0}.ff-table,.ff_entry_table_field,table.editor_table{border-collapse:collapse;display:table;text-align:left;white-space:normal;width:100%}.ff-table td,.ff_entry_table_field td,table.editor_table td{border:1px solid #e4e4e4;padding:7px;text-align:left}.ff-table th,.ff_entry_table_field th,table.editor_table th{background:#f5f5f5;border:1px solid #e4e4e4;padding:0 7px}.ff-table .action-buttons-group,.ff_entry_table_field .action-buttons-group,table.editor_table .action-buttons-group{display:flex}.ff-payment-table tbody td{padding:15px 10px}.ff-payment-table thead th{font-size:120%;font-weight:500;padding:15px 10px}.ff-payment-table tfoot th{padding:10px}.ff-payment-table tfoot .text-right{text-align:right}.ff_list_items li{display:flex;list-style:none;overflow:hidden;padding:7px 0}.ff_list_items li .dashicons,.ff_list_items li .dashicons-before:before{line-height:inherit}.ff_list_items li:hover{background:#f7fafc}.ff_list_items li .ff_list_header{color:#1e1f21;font-weight:600;width:180px}.edit_entry_view .el-select{width:100%}.edit_entry_view .el-form-item>label{color:#1e1f21;font-weight:500}.edit_entry_view .el-form-item{margin-bottom:0;padding-bottom:14px;padding-top:14px}.edit_entry_view .el-form-item:nth-child(2n){background:#f9f7f7;padding-left:20px;padding-right:20px}.fluentform-wrapper .json_action{background-color:#ededed;border-radius:5px;color:#606266;cursor:pointer;font-size:16px;height:26px;line-height:26px;margin-right:8px;text-align:center;width:26px}.fluentform-wrapper .json_action:hover{background-color:#dbdbdb}.fluentform-wrapper .show_code{background:#2e2a2a;border:0;color:#fff;line-height:24px;min-height:500px;padding:20px;width:100%}.fluentform-wrapper .entry-details{background-color:#fff}.fluentform-wrapper .entry-details .table{border-collapse:collapse;width:100%}.fluentform-wrapper .entry-details .table tr:nth-child(2n),.fluentform-wrapper .entry-details .table tr:nth-child(odd){background-color:#fff}.fluentform-wrapper .entry-details .table tr td{padding:8px 10px}.fluentform-wrapper .entry-title{border-bottom:1px solid #fdfdfd;font-size:17px;margin:0;padding:15px}.fluentform-wrapper .entry-body,.fluentform-wrapper .entry-field,.fluentform-wrapper .entry-value{padding:6px 10px}.fluentform-wrapper .entry-footer{border-top:1px solid #ececec;margin-top:12px;padding-top:20px}.response_wrapper .response_header{background-color:#eaf2fa;border-bottom:1px solid #fff;font-weight:700;line-height:1.5;padding:7px 7px 7px 10px}.response_wrapper .response_body{border-bottom:1px solid #dfdfdf;line-height:1.8;overflow:hidden;padding:7px 7px 15px 40px}.response_wrapper .response_body *{box-sizing:border-box}.ff-table{border-collapse:collapse;text-align:left;width:100%}.ff-table thead>tr>th{background:#f1f1f1;color:#1e1f21;font-weight:500;padding:7px 10px}.ff-table tbody>tr>td{padding:7px 10px}.ff-table tbody>tr:nth-child(2n)>td{background:#f1f1f1}.ff-table tbody>tr:nth-child(2n-1)>td{background:#fff}.input-image{float:left;height:auto;margin-right:10px;max-width:100%;width:150px}.input-image img{width:100%}.input_file_ext{background:#eee;color:#a7a3a3;display:block;font-size:16px;padding:15px 10px;text-align:center;width:100%}.input_file_ext i{color:#797878;display:block;font-size:22px}.input_file a,.input_file a:hover{text-decoration:none}.entry_info_box{margin-bottom:24px}.entry_info_box_header{align-items:center;display:flex;justify-content:space-between}.entry_info_box_title{align-items:center;color:#1e1f21;display:inline-flex;font-size:17px;font-weight:600}.ff_entry_detail_wrap .ff_card{margin-bottom:24px}.ff_entry_detail_wrap .entry_submission_log_des{overflow-y:auto}.wpf_each_entry{border-bottom:1px solid #ececec;padding:12px 0}.wpf_each_entry:first-child{padding-top:0}.wpf_each_entry:last-child{border-bottom:0;padding-bottom:0}.wpf_entry_label{color:#1e1f21;font-size:14px;font-weight:500;position:relative}.wpf_entry_value{margin-top:8px;white-space:pre-line;word-break:break-all}.wpf_entry_remove{position:absolute;right:0;top:0}.entry_info_body.narrow_items{padding:0 15px 15px}.entry_info_body.narrow_items .wpf_each_entry{margin:0 -15px;padding:10px 15px}.entry_info_body.narrow_items .wpf_each_entry *{word-break:break-all}.entry_info_body.narrow_items .wpf_each_entry p{margin:5px 0}.wpf_entry_value input[type=checkbox]:disabled:checked{border:1px solid #65afd2;opacity:1!important}.wpf_entry_value input[type=checkbox]:disabled{border:1px solid #909399;opacity:1!important}a.input-image{border:1px solid #e3e8ee}a.input-image:hover{border:1px solid gray}a.input-image:hover img{opacity:.8}.show_on_hover{display:none}.el-table__row:hover .show_on_hover{display:inline-block}.show_on_hover .icon-favorite{color:#fcbe2d;font-size:18px}.show_on_hover .icon-favorite.el-icon-star-on{font-size:20px}.show_on_hover .icon-status{color:#303133;font-size:16px}.show_on_hover [class*=el-icon-],.show_on_hover [class^=el-icon-]{margin-left:2px}.inline_actions{margin-left:5px}.inline_item.inline_actions{display:inline-block}.action_button{cursor:pointer}.current_form_name button.el-button.el-button--default.el-button--mini{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:10px}.ff_email_resend_inline+.compact_input{margin-left:10px}.compact_input .el-checkbox__label{padding-left:5px}.ff_report_body{min-height:20px;width:100%}@media print{.ff_nav_action,.form_internal_menu,div#adminmenumain,div#wpadminbar{display:none}.ff_chart_switcher,.ff_print_hide{display:none!important}div#wpcontent{margin-left:0;padding-left:0}html.wp-toolbar{padding:0}.wrap.ff_form_wrap,div#wpcontent{background:#fff}.ff_report_body{left:10px;position:absolute;right:10px;top:0}.ff_form_application_container{margin-top:0!important}.all_report_items{width:100%!important}.ff-table{border-collapse:collapse;float:right;text-align:left;width:auto}}.all_report_items .entriest_chart_wrapper{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.all_report_items .ff_card{margin-bottom:24px}.report_header{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.report_header .title{color:#1e1f21;font-size:16px;font-weight:600}.report_header .ff_chart_switcher span{background:#ededed;border-radius:6px;cursor:pointer;height:30px;line-height:30px;width:30px}.report_header .ff_chart_switcher span.active_chart{background:#1a7efb;color:#fff}.report_header .ff_chart_switcher span.ff_rotate_90{transform:rotate(90deg)}.report_body{display:flex;flex-wrap:wrap;justify-content:space-between;padding-top:30px;width:100%}.report_body .chart_data{width:50%}.report_body .ff_chart_view{max-width:380px;width:50%}ul.entry_item_list{list-style:disc;list-style-image:none;list-style-position:initial;list-style-type:disc;padding-left:30px}.star_big{display:inline-block;font-size:20px;margin-right:5px;vertical-align:middle!important}.wpf_each_entry ul{list-style:disc;padding-left:14px}.wpf_each_entry ul li:not(:last-child){margin-bottom:5px}.el-table-column--selection .cell{text-overflow:clip!important}.ff-error{background:#ff9800}.ff-error,.ff-success{color:#fff;padding:10px}.ff-success{background:#4caf50}tr.el-table__row td{padding:18px 0}.add_note_wrapper{padding:20px}.fluent_notes .fluent_note_content{background:#eaf2fa;font-size:13px;line-height:160%;padding:10px 15px}.fluent_notes .fluent_note_meta{font-size:11px;padding:5px 15px}.wpf_add_note_box button{margin-top:15px}.wpf_add_note_box{border-bottom:1px solid #ececec;display:block;margin-bottom:20px;overflow:hidden;padding-bottom:30px}span.ff_tag{background:#626261;border-radius:10px;color:#fff;font-size:10px;padding:4px 6px;text-transform:capitalize}.el-table .cell.el-tooltip{max-height:50px;overflow:hidden}.form-editor--sidebar{position:relative}.code{overflow-x:scroll}.search-element{padding:10px 20px}.ff-user-guide{margin-top:-105px;position:relative;text-align:center;z-index:1}.post-form-settings label.el-form-item__label{color:#606266;font-weight:500;margin-top:8px}.transaction_item_small{background:#f7f7f7;margin-bottom:16px}.transaction_item_heading{align-items:center;border-bottom:1px solid #d2d2d2;display:flex;justify-content:space-between;padding:14px 20px}.transaction_item_body{padding:14px 20px}.transaction_item_line{font-size:15px;margin-bottom:10px}.transaction_heading_title{display:inline-block;font-size:16px;font-weight:500}.ff_badge_status_pending{background-color:#fcbe2d}.ff_badge_status_paid{background:#00b27f;border-color:#00b27f;color:#fff}.entry_submission_log .wpf_entry_label{margin-bottom:10px}.entry_submission_log_component{font-weight:700;text-transform:capitalize}.entry_submission_log .log_status_error,.entry_submission_log .log_status_failed{background:#ff6154}.entry_submission_log .log_status_success{background:#00b27f}.ff_report_card+.ff_print_hide{margin-top:40px}.ff_as_container{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);margin-bottom:20px;padding:5px 10px}.ff_as_container .ff_rich_filters{background:#fdfdfd;border:1px solid #efefef;border-radius:4px;padding:10px}.ff_as_container .ff_rich_filters .ff_table{background:#f0f3f7;border:1px solid #dedcdc;box-shadow:none}.ff_as_container .ff_rich_filters .ff_table .filter_name{font-weight:500}.ff_as_container .ff_cond_or{border-bottom:1px dashed #d5dce1;color:gray;line-height:100%;margin:0 0 15px;padding:0;text-align:center}.ff_as_container .ff_cond_or em{background:#fff;font-size:1.2em;font-style:normal;margin:0 10px;padding:0 10px;position:relative;top:9px}.browser-frame{border-radius:10px;box-shadow:0 0 3px #e6ecef;max-width:100%;overflow:hidden}.browser-controls{align-items:center;background:#e6ecef;color:#bec4c6;display:flex;height:50px;justify-content:space-around}.window-controls{flex:0 0 60px;margin:0 2%}.window-controls span{background:#ff8585;border-radius:50px;display:inline-block;height:15px;width:15px}.window-controls span.minimise{background:#ffd071}.window-controls span.maximise{background:#74ed94}.page-controls{flex:0 0 70px;margin-right:2%}.page-controls span{display:inline-block;font-size:13px;height:20px;line-height:11px;padding-top:5px;text-align:center;width:30px}.url-bar{color:#889396;flex-grow:1;font-family:monospace;margin-right:2%;overflow:hidden;padding:5px 5px 0 10px}.white-container{background:#fff;border-radius:3px;height:25px}.bar-warning{background:#fa6b05;color:#fff}.bar-warning a{color:#fee;font-size:120%}.browser-frame.ffc_browser_mobile{margin:0 auto;max-width:375px}.clearfix:after,.clearfix:before,.form-editor:after,.form-editor:before{content:" ";display:table}.clearfix:after,.form-editor:after{clear:both}.mr15{margin-right:15px}.mb15{margin-bottom:15px}.mb0{margin-bottom:0}.pull-left{float:left!important}.icon-clickable{cursor:pointer}.help-text{font-size:.9em;font-style:italic;margin:0}.form_internal_menu{background:#fff;border-bottom:1px solid #ececec;display:flex;padding-left:20px;padding-right:20px;position:relative}.form_internal_menu .ff_menu_toggle{padding-top:4px}.form_internal_menu_inner{display:flex;width:100%}.form_internal_menu .ff_setting_menu{display:inline-block;list-style:none;margin:0;padding:0}.form_internal_menu .ff_setting_menu li{display:inline-block;list-style:none;margin-bottom:0}.form_internal_menu .ff_setting_menu li a{color:#24282e;display:block;font-weight:700;padding:19px 15px;text-decoration:none}.form_internal_menu .ff_setting_menu li.active a{box-shadow:inset 0 -2px #1a7efb;color:#1a7efb;margin-bottom:-2px}.form_internal_menu .ff-navigation-right{align-items:center;display:flex;margin-left:auto;padding-bottom:3px;position:relative}.form_internal_menu .ff-navigation-right .ff_more_menu{position:absolute;right:-12px;top:48%;transform:translateY(-50%)}.form_internal_menu .el-button,.form_internal_menu .ff_shortcode_btn{margin-right:10px}.form_internal_menu #switchScreen{margin-right:20px}.wp-admin.folded .ff_form_wrap{left:56px}.ff_screen_entries .ff_form_application_container,.ff_screen_inventory_list .ff_form_application_container,.ff_screen_msformentries .ff_form_application_container{padding:24px}.ff_partial-entries_action_wrap{justify-content:flex-end}.ff_partial-entries_action_wrap .partial_entries_search_wrap{margin-right:16px;width:270px}.conditional-items{border-left:2px solid #ececec;padding-left:18px;padding-right:1px}.ff_screen_conversational_design .ff-navigation-right,.ff_screen_entries .ff-navigation-right,.ff_screen_msformentries .ff-navigation-right,.ff_screen_settings .ff-navigation-right{padding-right:0}.ff_screen_conversational_design .ff-navigation-right .el-button,.ff_screen_entries .ff-navigation-right .el-button,.ff_screen_msformentries .ff-navigation-right .el-button,.ff_screen_settings .ff-navigation-right .el-button{margin-right:0}.settings_app .el-form-item,.settings_app .el-form-item-wrap{margin-bottom:24px}.settings_app .el-form-item-wrap:last-child,.settings_app .el-form-item:last-child{margin-bottom:0}.settings_app .ff_card:not(:last-child){margin-bottom:28px}.settings_app .el-row .el-col{margin-bottom:24px}.ff_settings_form{height:90vh;overflow-y:scroll}.ff_settings_form::-webkit-scrollbar{display:none}.ff_settings_notifications .el-form-item__content{line-height:inherit}.slide-down-enter-active{max-height:100vh;transition:all .8s}.slide-down-leave-active{max-height:100vh;transition:all .3s}.slide-down-enter,.slide-down-leave-to{max-height:0}.fade-enter-active,.fade-leave-active{transition:opacity .25s ease-out}.fade-enter,.fade-leave-to{opacity:0}.flip-enter-active{transition:all .2s cubic-bezier(.55,.085,.68,.53)}.flip-leave-active{transition:all .25s cubic-bezier(.25,.46,.45,.94)}.flip-enter,.flip-leave-to{opacity:0;transform:scaleY(0) translateZ(0)}.el-tooltip__popper h3{margin:0 0 5px}.el-date-editor .el-range-separator{width:22px}.ff_form_group .el-date-editor--datetimerange{width:100%}.ff_nav_top.ff_advanced_search{background:#fff;border-radius:5px;padding:10px 20px}.general_integration_logo{height:28px;-o-object-fit:cover;object-fit:cover;-o-object-position:left;object-position:left;width:28px}.general_integration_name{font-size:16px}.integration_success_state{background:#f1f1f1;padding:30px;text-align:center}.integration_success_state p{font-size:18px}.integration_instraction{background-color:#fcf6ed;border-left:4px solid #fcbe2d;border-radius:4px;box-shadow:0 2px 3px 0 hsla(0,0%,51%,.1);margin-bottom:25px;padding:15px 20px}.integration_instraction h4{font-size:16px;line-height:1.4}.integration_instraction h4:not(:last-child){margin-bottom:12px}.integration_instraction li{font-size:15px;line-height:24px}.integration_instraction li:not(:last-child){margin-bottom:4px}.ff_global_settings_option .el-row{margin-bottom:-24px}.ff_global_settings_option .el-row .el-col{margin-bottom:24px}.ff_pdf_form_wrap{display:flex;flex-wrap:wrap;margin-bottom:-30px;margin-left:-12px;margin-right:-12px}.ff_field_manager{margin-bottom:30px;padding-left:12px;padding-right:12px;width:50%}.ff_field_manager .el-select,.ff_full_width_feed .ff_field_manager{width:100%}.ff_feed_editor .el-tabs--border-card{background-color:transparent;box-shadow:none}.ff_top_50{margin-top:50px}.ff_top_25{margin-top:25px}.ff_conversational_page_items{margin-top:30px}.ff_items_inline .el-select .el-input{width:100%}.ff_items_inline .el-input,.ff_items_inline .el-select{display:inline-block;width:49%}.el-table .warning-row{background:oldlace}.el-table .warning-row td{background:oldlace!important}.wpf_each_filter{padding-right:20px}.wpf_each_filter>label{display:block;width:100%}.wpf_each_filter>.el-select{width:100%!important}.ff_reguest_field_table tbody td{padding-bottom:4px}.action-btns{align-items:center;display:inline-flex}.action-btns i{cursor:pointer}.action-btns i:not(:last-child){margin-right:4px}.ff_inline .el-input{display:inline-block;width:auto}.ff_routing_fields{margin-bottom:30px}table.ff_routing_table{border:0;border-collapse:collapse;border-spacing:0;width:100%}table.ff_routing_table tr td{border:0;padding:12px 3px}table.ff_routing_table tr{border:1px solid rgba(232,232,236,.439);border-left:0;border-right:0}.promo_section{border-top:1px solid #bdbdbd;margin-top:30px;padding:20px;text-align:center}.promo_section p{font-size:20px}.promo_section a{font-size:20px!important;height:40px!important;padding:6px 20px!important}.ff-feature-lists ul li{font-size:18px;line-height:27px}.ff-feature-lists ul li span{font-size:20px;margin-top:4px}.ff_landing_page_items{margin-top:30px}.inline-form-field{margin-top:15px}.el-collapse-item{margin-bottom:1px}.ff_each_template{margin-bottom:20px}.ff_each_template .ff_card{border:1px solid #ddd;cursor:pointer;padding:10px;text-align:center}.ff_each_template .ff_card .ff_template_label{font-weight:700}.ff_each_template .ff_card:hover{border:2px solid #1a7efb;opacity:.8}.ff_each_template img{max-width:100%}.post_feed .no-mapping-alert{background-color:#f2f2f2;border-radius:5px;margin-bottom:20px;padding:10px;text-align:center}.ff_post_feed_wrap .meta_fields_mapping{margin-top:20px}.ff_post_feed_wrap .feed_name{color:#606266;font-weight:400}.meta_fields_mapping_head,.post_fields_mapping_head{align-items:center;border-bottom:1px solid #ececec;display:flex;justify-content:space-between;margin-bottom:14px;padding-bottom:14px}.meta_fields_mapping_head.no_border,.post_fields_mapping_head.no_border{border-bottom:0;margin-bottom:0}.post_feeds .green{color:#00b27f}.post_feeds .red{color:#ff6154}.post-settings .mt15{margin-top:15px}.el-fluid,.el-fluid table{width:100%!important}.action-add-field-select{width:calc(100% - 46px)}.content-ellipsis .cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content-ellipsis .page a{text-decoration:none}.el-form-item__error{position:relative!important}.el-form-item__error p{margin-bottom:0;margin-top:0}.pull-right{float:right!important}.ninja_custom_css_editor{border-radius:6px;height:auto;min-height:350px}.ninja_css_errors .ace_gutter-cell.ace_warning{display:none}.ff-vddl-col_options_wrap .vddl-column-list{align-items:center;display:flex;margin-bottom:14px}.ff-vddl-col_options_wrap .handle{background:url(../images/handle.png?113dcab1e057b4d108fdbe088b054a5d) 50% no-repeat;background-size:20px 20px;cursor:move;height:20px;margin-right:10px;width:25px}.post_meta_plugins_mappings{background:#fffaf3;border-radius:8px;padding:20px}.ff_landing{align-items:stretch;display:flex;flex-direction:row;justify-content:flex-start;margin-top:30px}.ff_landing .wp_vue_editor_wrapper .wp-media-buttons{right:10px}.ff_landing .ff_landing_sidebar{width:310px}.ff_landing .ff_landing_sidebar .ffc_sidebar_body{height:600px;overflow:hidden scroll;padding-right:10px;padding-top:30px}.ff_landing .ff_landing_sidebar .ffc_sidebar_body .ffc_sidebar_body .ffc_design_submit{margin-top:30px;text-align:center}.ff_landing .ffc_design_container{margin-left:auto;margin-top:-44px;width:calc(100% - 340px)}.ff_landing .ffc_design_elements .fcc_eq_line .el-form-item__label{line-height:120%}.ff_landing .ffc_design_elements .el-form-item.fcc_label_top .el-form-item__label{display:block;float:none;line-height:100%;width:100%!important}.ff_landing .ffc_design_elements .el-form-item.fcc_label_top .el-form-item__content{display:block;margin-left:0!important;width:100%}.ff_type_settings{width:100%}.ff_type_settings .ff-type-control{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.ff_type_settings .ff-type-control .ff-control-title,.ff_type_settings .ff-type-control .ff-type-value{color:#1e1f21;display:inline-block;font-size:13px;font-weight:500}.ff_type_settings .ff-type-control.ff-type-full{flex-direction:column}.ff_type_settings .ff-type-control.ff-type-full .ff-control-title{margin-bottom:8px}.ff_type_settings .ff-type-control.ff-type-full .ff-control-title,.ff_type_settings .ff-type-control.ff-type-full .ff-type-value{width:100%}ul.fcc_inline_social{margin:20px 0;padding:0}ul.fcc_inline_social li{display:inline-block;margin-right:10px}ul.fcc_inline_social li a{text-decoration:none}.ffc_sharing_settings .el-row .el-col{margin-bottom:0}.fcc_card{background:#fff;border:1px solid #ececec;border-radius:8px;margin-bottom:24px;padding:20px}.copy_share.fc_copy_success i:before{content:"\e6da"}.ff_smtp_suggest{background:#ededed;border-radius:8px;display:block;padding:40px 30px 30px;position:relative;text-align:center}.ff_smtp_suggest p{font-size:14px;margin-bottom:16px}.ff_smtp_suggest .ff_smtp_close{cursor:pointer;font-size:17px;font-weight:600;height:22px;line-height:22px;position:absolute;right:10px;top:10px;width:22px}.ff_managers_settings h2{margin:10px 0}.ff_managers_settings .ff_manager_settings_header{align-items:center;display:flex}.ff_managers_settings .ff_manager_settings_nav{display:block;margin-bottom:15px;width:100%}.ff_managers_settings .ff_manager_settings_nav ul{border-bottom:1px solid #e4e7ec;list-style:none;margin:0;padding:0}.ff_managers_settings .ff_manager_settings_nav ul li{border-bottom:3px solid transparent;cursor:pointer;display:inline-block;margin:0;padding:0 20px 15px}.ff_managers_settings .ff_manager_settings_nav ul li.ff_active{border-bottom-color:#1a7efb;color:#1a7efb;font-weight:700}.ff_managers_settings .el-tag{margin-right:10px}.ff_managers_form p{margin-top:5px}.ff-quiz-settings-wrapper .quiz-field{align-items:center;display:flex;margin-bottom:15px}.ff-quiz-settings-wrapper .quiz-field-setting{display:flex;flex-direction:column;padding-right:10px}.ff-quiz-settings-wrapper .quiz-questions>div .quiz-field-container{border:1px solid #efefef;border-bottom:none;padding:10px}.ff-quiz-settings-wrapper .quiz-questions>div>div:last-child .quiz-field-container{border-bottom:1px solid #efefef}.ff_tips,.ff_tips_error,.ff_tips_warning{background-color:#ecf8ff;border-left:5px solid #50bfff;border-radius:4px;margin:20px 0;padding:8px 16px}.ff_tips_warning{background-color:#faecd8;border-left-color:#e6a23c}.ff_tips_error{background:#fde2e2;border-left-color:#f56c6c}.ff_tips *,.ff_tips_error *,.ff_tips_warning *{margin:0}.ff_iconed_radios>label{border:1px solid #ececec;border-radius:4px;color:#606266;margin-right:12px;padding:6px}.ff_iconed_radios>label span.el-radio__input{display:none}.ff_iconed_radios>label .el-radio__label{padding-left:0}.ff_iconed_radios>label i{font-size:26px;height:auto;width:auto}.ff_iconed_radios>label.is-checked{background:#1a7efb;border-color:#1a7efb}.ff_iconed_radios>label.is-checked i{color:#fff;display:block}.landing-page-settings{min-height:100px}.landing-page-settings .ff_iconed_radios>label{margin-right:10px}body.ff_full_screen{overflow:hidden}body.ff_full_screen .el-tooltip__popper{z-index:1000999!important}body.ff_full_screen .ff-landing-layout-box-shadow-popover{left:35px!important;z-index:1000999!important}body.ff_full_screen .el-color-dropdown{z-index:1000999!important}body.ff_full_screen .ff_settings_container{background:#fff;bottom:0;color:#444;cursor:default;height:100%;left:0!important;margin:0!important;min-width:0;overflow:hidden;position:fixed;right:0!important;top:0;z-index:100099!important}body.ff_full_screen .ff_settings_container .ff-landing-page-settings .ff_card{box-shadow:none;padding:0}body.ff_full_screen .ff_settings_container .ff_landing{max-height:calc(95vh - 120px);overflow:hidden scroll}body.ff_full_screen .ff_settings_container .ff_landing .ffc_design_container{margin-top:0}.ff_form_name{align-items:center;border-right:1px solid #ececec;color:#353537;display:flex;font-size:15px;font-weight:500;max-width:110px;padding-left:10px;padding-right:10px;position:relative}.ff_form_name .el-icon-edit{left:10px;position:absolute}.ff_form_name_inner{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_screen_conversational_design .ff_menu,.ff_screen_editor .ff_menu,.ff_screen_entries .ff_menu,.ff_screen_inventory_list .ff_menu,.ff_screen_msformentries .ff_menu,.ff_screen_settings .ff_menu{display:flex;margin-top:0;padding-left:10px;padding-right:10px}.ff_screen_conversational_design .ff_menu_back,.ff_screen_editor .ff_menu_back,.ff_screen_entries .ff_menu_back,.ff_screen_inventory_list .ff_menu_back,.ff_screen_msformentries .ff_menu_back,.ff_screen_settings .ff_menu_back{align-items:center;border-right:1px solid #ececec;display:none;padding-right:10px}.ff_screen_conversational_design .ff_menu_back .el-icon,.ff_screen_editor .ff_menu_back .el-icon,.ff_screen_entries .ff_menu_back .el-icon,.ff_screen_inventory_list .ff_menu_back .el-icon,.ff_screen_msformentries .ff_menu_back .el-icon,.ff_screen_settings .ff_menu_back .el-icon{font-weight:700}.ff_screen_conversational_design .ff_menu_back .ff_menu_link,.ff_screen_editor .ff_menu_back .ff_menu_link,.ff_screen_entries .ff_menu_back .ff_menu_link,.ff_screen_inventory_list .ff_menu_back .ff_menu_link,.ff_screen_msformentries .ff_menu_back .ff_menu_link,.ff_screen_settings .ff_menu_back .ff_menu_link{color:#353537;padding:0}.ff_screen_conversational_design .ff-navigation-right,.ff_screen_editor .ff-navigation-right,.ff_screen_entries .ff-navigation-right,.ff_screen_inventory_list .ff-navigation-right,.ff_screen_msformentries .ff-navigation-right,.ff_screen_settings .ff-navigation-right{display:flex}.ff-navigation-right .el-button{padding:9px 14px}.ff-navigation-right .ff_shortcode_btn_md{cursor:pointer;font-size:14px;max-width:70px;padding-bottom:9px;padding-top:9px;transition:all .5s ease}.ff-navigation-right .ff_shortcode_btn:hover{background:#4b4c4d;color:#fff;max-width:220px}.more_menu{padding:0}.more_menu .ff-icon-more-vertical{font-size:24px}.form_internal_menu_inner{padding:10px 10px 6px}.ff_screen_editor .ff_form_name{padding-left:30px}.ff_screen_editor .form_internal_menu_inner{flex-direction:column}.ff_screen_editor .form_internal_menu_inner .ff_menu{margin-left:auto;padding-bottom:5px}.ff_merge_fields .el-form-item,.ff_merge_fields .el-form-item:last-child{margin-bottom:0}.ff_merge_fields .el-form-item__label{padding-bottom:0}.ff_field_routing .ff_routing_fields{margin-bottom:10px;margin-top:16px}.ff_field_routing .el-select+.el-checkbox{margin-left:10px}.ff_chained_filter{display:flex}.ff_chained_filter .el-select+.el-select{margin-left:20px}.ff_payment_mode_wrap{background-color:#fff;border-radius:8px;padding:24px}.ff_payment_mode_wrap h4{font-size:18px;font-weight:500;margin-bottom:15px}.el-tabs__nav-wrap:after{height:1px}.el-tabs__item{color:#606266;font-weight:500;height:auto;line-height:inherit;padding-bottom:15px;padding-left:15px;padding-right:15px}.ff_between_wrap,.ff_migrator_navigation_header{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.ff-quiz-settings-wrapper .ff_field_manager{padding-left:0;padding-right:0;width:auto}.ff-quiz-settings-wrapper .ff_field_manager:last-child{margin-bottom:0}.ff_payment_badge{border:1px solid #b1b1b1;border-radius:30px;display:inline-block;font-size:12px;font-weight:500;line-height:1;padding:4px 8px}span+.ff_payment_badge{margin-left:5px}.fluent_activate_now{display:none}.fluent_activation_wrapper .fluentform_label{display:inline-block;margin-right:10px;margin-top:-4px;width:270px}.fluent_activation_wrapper .fluentform_label input{background-color:#f2f2f2;width:100%}.fluent_activation_wrapper .fluentform_label input::-webkit-input-placeholder{color:#908f8f}.fluent_activation_wrapper .contact_us_line{margin-top:12px}.fluent_activation_wrapper .fluent_plugin_activated_hide{display:none}.license_activated_sucess{margin-bottom:16px}.license_activated_sucess h5{margin-bottom:8px}.ff-repeater-setting .field-options-settings{padding-top:8px}.ff-repeater-setting .address-field-option{padding-bottom:0}.ff-repeater-setting-label{color:#1e1f21;font-size:14px}.ff-repeater-header{align-items:center;display:flex;justify-content:space-between}.ff-repeater-title{color:#1a7efb;font-size:14px;font-weight:500}.ff-repeater-action,.ff-repeater-action .repeater-toggle{align-items:center;display:inline-flex}.ff-repeater-action .repeater-toggle{cursor:pointer;font-size:18px;height:18px;width:18px}.ff-input-yes-no-checkbox-wrap:not(:last-child){margin-bottom:16px}.ff-input-yes-no-checkbox-wrap .el-checkbox__label{align-items:center;display:inline-flex}.ff-input-yes-no-checkbox-wrap .checkbox-label{display:inline-block;max-width:310px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-tooltip__popper{max-width:300px;z-index:99999999999!important}.ff_inventory_list .list_container{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);padding:20px 24px}.ff_inventory_list .el-table__footer-wrapper tbody td.el-table__cell{background-color:#e8f2ff}.ff_2_col_items * label{display:inline-block;margin:0 0 10px;width:50%}.global-overlay{background:rgba(0,0,0,.612);display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:10}.global-overlay.active{display:block}.ff_chained_filter .el-row .wpf_each_filter{margin-bottom:18px}.ff_chained_filter .el-row .wpf_each_filter label{margin-bottom:10px}@media (min-width:1281px){.ff_screen_editor .form_internal_menu_inner{flex-direction:row}.ff_screen_editor .form_internal_menu_inner .ff_menu{margin-left:0;padding-bottom:0}.ff_screen_conversational_design .ff_menu_back,.ff_screen_editor .ff_menu_back,.ff_screen_entries .ff_menu_back,.ff_screen_inventory_list .ff_menu_back,.ff_screen_msformentries .ff_menu_back,.ff_screen_settings .ff_menu_back{display:flex}.option-fields-section--content .v-row{flex-direction:row}.option-fields-section--content .v-col--50{padding-bottom:0;width:50%}.form-editor--body{padding:50px;width:65%}.form-editor--sidebar{width:35%}}@media (min-width:769px){.ff_header{align-items:center;flex-direction:row}.ff_header_group{margin-right:32px}.ff_menu{display:flex;margin-top:0}.ff_menu_toggle{display:none}.ff_form_wrap{padding-left:24px;padding-right:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_editor,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:0}}@media (min-width:1025px){.all-forms-search,.ff_entries_search_wrap{width:270px}.ff_entries_search_wrap{margin-left:auto}.all-forms-select{width:250px}.ff_layout_section_sidebar{width:280px}.ff_layout_section_container,.ff_layout_section_sidebar{padding:24px}.fluent_activation_wrapper .fluentform_label{width:470px}}@media (max-width:768px){.form_internal_menu{margin-left:-10px}.form_internal_menu ul.ff_setting_menu{float:right;padding-right:10px!important}.form_internal_menu ul.ff_setting_menu li a{padding:10px 3px!important}.form_internal_menu .ff_form_name_inner{max-width:100px}.form_internal_menu #switchScreen{margin-right:0;margin-top:14px}.ff_nav_action{float:right!important;text-align:left!important}input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{min-height:30px}.ff_form_main_nav .plugin-name{display:none}.row-actions{display:inline-block!important}.el-form .el-form-item .el-form-item__label{width:100%!important}.el-form .el-form-item .el-form-item__content{margin-left:0!important}.el-tabs__content{padding:20px 10px!important}.wpf_each_entry a{word-break:break-all}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu{top:0!important}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{display:block}.form_internal_menu_inner{background:#fff;border-radius:8px;box-shadow:0 1px 10px rgba(0,0,0,.2);display:none;flex-direction:column;padding:20px;position:absolute;right:20px;top:38px;width:300px;z-index:9999}.form_internal_menu_inner.active{display:flex}.ff_form_name{padding-bottom:10px;padding-top:10px}.ff_screen_editor .form_internal_menu_inner .ff_menu,.form_internal_menu .ff-navigation-right{margin-left:0}.ff_menu{align-items:flex-start;flex-direction:column;margin-bottom:10px}.ff_menu li{width:100%}.ff_menu li a{display:block;max-width:100%!important}.form_internal_menu .ff-navigation-right{align-items:flex-start}.ff-navigation-right{flex-direction:column}.form_internal_menu .el-button,.form_internal_menu .ff_shortcode_btn{margin-bottom:10px;margin-right:0}.form_internal_menu .ff-navigation-right .ff_more_menu{bottom:0;right:0;top:auto;transform:translateY(0)}.ff_screen_conversational_design .ff_menu,.ff_screen_editor .ff_menu,.ff_screen_entries .ff_menu,.ff_screen_inventory_list .ff_menu,.ff_screen_msformentries .ff_menu,.ff_screen_settings .ff_menu{padding-left:0;padding-right:0}.ff_tools_wrap .ff_settings_sidebar_wrap{height:100%}.ff_settings_sidebar_wrap{flex-shrink:0;left:-240px;position:absolute;transition:.3s;z-index:999}.ff_settings_sidebar_wrap.active{left:-10px}.ff_settings_sidebar_wrap.active .ff_layout_section_sidebar{box-shadow:2px 1px 10px 0 rgba(30,31,33,.1)}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle{right:-18px}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle .ff-icon:before{content:"\e919"}.ff_sidebar_toggle{display:flex}.ff_header{margin-left:-10px;position:relative}.ff_header .global-search-menu-button{position:absolute;right:60px;top:12px}.conditional-logic{flex-direction:column}.conditional-logic>*{width:100%}.el-radio-button-group{border:0}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner,.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner,.el-radio-button-group .el-radio-button__inner{border-radius:4px}}@media (max-width:425px){label.el-checkbox{display:inline-flex}.el-checkbox__label{white-space:normal}.el-checkbox__input{line-height:1.6}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{margin-right:0}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right a,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right button,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right span{font-size:10px;margin:0 3px;padding:5px 4px!important}#ff_form_entries_app .ff_nav_top .ff_nav_action,#ff_form_entries_app .ff_nav_top .ff_nav_title{margin-bottom:10px;width:100%}.form_internal_menu{margin:0 -10px;width:auto}.form_internal_menu ul.ff_setting_menu li a{font-size:11px}.ff_form_application_container{margin-top:0!important}.ff_form_main_nav .ninja-tab{font-size:12px;margin:0;padding:10px 5px}ul.el-pager{display:none!important}button.el-button.pull-right{float:left!important}.entry_header h3{clear:both;display:block;width:100%!important}.v-row .v-col--33{margin-bottom:15px;padding-right:0;width:100%!important}.v-row .v-col--33:last-child{margin-bottom:0}.option-fields-section--content{padding:15px 5px}.ff-add-confirmation-wrap .el-radio.is-bordered{margin-bottom:10px;margin-right:10px}.ff-add-confirmation-wrap .el-radio.is-bordered+.el-radio.is-bordered{margin-left:0}.ff-form-item-flex{flex-wrap:wrap;gap:10px}.ff_pagination_wrap.mt-4{margin-top:0!important}.ff_pagination{flex-wrap:wrap;margin-top:24px}.ff_pagination .el-pagination__jump{margin:10px 0 0}.ff_all_entries .ff_section_head_content{margin-top:24px}.ff_all_entries .ff_section_head_content .ff_advanced_search{right:unset}.ff_all_entries .ff_entries_details .ff_section_head .lead-title{margin-bottom:10px!important}.ff_all_entries .ff_entries_details .ff_radio_group_wrap{margin-bottom:10px;margin-top:10px}.ff_all_entries .ff_entries_details .ff_radio_group_wrap .ff_radio_group_s2{width:100%}}.el-popover{text-align:left!important;word-break:inherit!important} assets/css/add-ons.css000064400000174501147600120010010674 0ustar00@font-face{font-display:block;font-family:fluentform;font-style:normal;font-weight:400;src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd);src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd) format("embedded-opentype"),url(../fonts/fluentform.ttf?5fd4a17c106b6a8cae5c741ddbbe132c) format("truetype"),url(../fonts/fluentform.woff?31c9335ad614611f342d70917260470e) format("woff"),url(../fonts/fluentform.svg?1d0875320e0e3980ae21f2d18c21897a) format("svg")}[class*=" ff-icon-"],[class^=ff-icon-]{speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:fluentform!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.ff-icon-tablet:before{content:"\e96f"}.ff-icon-mobile:before{content:"\e970"}.ff-icon-monitor:before{content:"\e971"}.ff-icon-fullscreen-out:before{content:"\e96b"}.ff-icon-menu:before{content:"\e96a"}.ff-icon-play:before{content:"\e969"}.ff-icon-bug:before{content:"\e925"}.ff-icon-star-line:before{content:"\e94e"}.ff-icon-heart-clock:before{content:"\e966"}.ff-icon-microphone:before{content:"\e967"}.ff-icon-handshake:before{content:"\e968"}.ff-icon-ink-pen:before{content:"\e91e"}.ff-icon-arrow-left:before{content:"\e919"}.ff-icon-user-filled:before{content:"\e902"}.ff-icon-payment:before{content:"\e900"}.ff-icon-play-circle-filled:before{content:"\e901"}.ff-icon-promotion:before{content:"\e903"}.ff-icon-share-filled:before{content:"\e904"}.ff-icon-warning-filled:before{content:"\e905"}.ff-icon-more-vertical:before{content:"\e906"}.ff-icon-gift:before{content:"\e907"}.ff-icon-cursor:before{content:"\e908"}.ff-icon-hash:before{content:"\e909"}.ff-icon-photo:before{content:"\e90a"}.ff-icon-italic-light:before{content:"\e90b"}.ff-icon-keyboard:before{content:"\e90c"}.ff-icon-layers:before{content:"\e90d"}.ff-icon-left-align:before{content:"\e90e"}.ff-icon-light-10:before{content:"\e90f"}.ff-icon-map-pin:before{content:"\e910"}.ff-icon-lock:before{content:"\e911"}.ff-icon-email:before{content:"\e912"}.ff-icon-paragraph:before{content:"\e913"}.ff-icon-user:before{content:"\e914"}.ff-icon-phone-outgoing:before{content:"\e915"}.ff-icon-play-circle:before{content:"\e916"}.ff-icon-puzzle:before{content:"\e917"}.ff-icon-redo:before{content:"\e918"}.ff-icon-repeat:before{content:"\e91a"}.ff-icon-right-align:before{content:"\e91b"}.ff-icon-rocket-filled:before{content:"\e91c"}.ff-icon-setting:before{content:"\e91d"}.ff-icon-light-26:before{content:"\e91f"}.ff-icon-trash:before{content:"\e920"}.ff-icon-underline-alt:before{content:"\e921"}.ff-icon-undo:before{content:"\e922"}.ff-icon-upload-alt:before{content:"\e923"}.ff-icon-web-development:before{content:"\e924"}.ff-icon-underline:before{content:"\e926"}.ff-icon-italic:before{content:"\e927"}.ff-icon-filter-alt:before{content:"\e928"}.ff-icon-files:before{content:"\e929"}.ff-icon-file-add:before{content:"\e92a"}.ff-icon-fullscreen:before{content:"\e92b"}.ff-icon-donut-chart:before{content:"\e92c"}.ff-icon-dollar:before{content:"\e92d"}.ff-icon-document-light:before{content:"\e92e"}.ff-icon-document:before{content:"\e92f"}.ff-icon-document-alt:before{content:"\e930"}.ff-icon-design:before{content:"\e931"}.ff-icon-copy-filled:before{content:"\e932"}.ff-icon-copy:before{content:"\e933"}.ff-icon-code-alt:before{content:"\e934"}.ff-icon-code:before{content:"\e935"}.ff-icon-close-circle-filled:before{content:"\e936"}.ff-icon-chevron-double-left:before{content:"\e937"}.ff-icon-check:before{content:"\e938"}.ff-icon-center-align:before{content:"\e939"}.ff-icon-calendar:before{content:"\e93a"}.ff-icon-bookmark:before{content:"\e93b"}.ff-icon-bold:before{content:"\e93c"}.ff-icon-bold-light:before{content:"\e93d"}.ff-icon-bank:before{content:"\e93e"}.ff-icon-arrow-right:before{content:"\e93f"}.ff-icon-plus-filled:before{content:"\e940"}.ff-icon-plus:before{content:"\e941"}.ff-icon-checkmark-square:before{content:"\e942"}.ff-icon-download:before{content:"\e943"}.ff-icon-sort-circle-down:before{content:"\e944"}.ff-icon-eye-off:before{content:"\e945"}.ff-icon-eye:before{content:"\e946"}.ff-icon-flag:before{content:"\e947"}.ff-icon-link:before{content:"\e948"}.ff-icon-list:before{content:"\e949"}.ff-icon-move:before{content:"\e94a"}.ff-icon-plus-alt:before{content:"\e94b"}.ff-icon-radio-button-on:before{content:"\e94c"}.ff-icon-search:before{content:"\e94d"}.ff-icon-star:before{content:"\e94f"}.ff-icon-sort-down-alt:before{content:"\e950"}.ff-icon-close:before{content:"\e951"}.ff-icon-expand:before{content:"\e952"}.ff-icon-eye-filled:before{content:"\e953"}.ff-icon-info-filled:before{content:"\e954"}.ff-icon-keypad:before{content:"\e955"}.ff-icon-more-horizontal:before{content:"\e956"}.ff-icon-setting-filled:before{content:"\e957"}.ff-icon-strikethrough:before{content:"\e958"}.ff-icon-text:before{content:"\e959"}.ff-icon-decrease-edit:before{content:"\e95a"}.ff-icon-sort-down:before{content:"\e95b"}.ff-icon-increase-edit:before{content:"\e95c"}.ff-icon-list-ordered:before{content:"\e95d"}.ff-icon-quote-left:before{content:"\e95e"}.ff-icon-slider-horizontal:before{content:"\e95f"}.ff-icon-text-alt:before{content:"\e960"}.ff-icon-upload:before{content:"\e961"}.ff-icon-edit:before{content:"\e962"}.ff-icon-filter:before{content:"\e963"}.ff-icon-refresh:before{content:"\e964"}.ff-icon-task:before{content:"\e965"}.ff-icon-sort:before{content:"\e96c"}.ff-icon-captcha:before{content:"\e96d"}.ff-icon-clear:before{content:"\e96e"} .ff_menu{align-items:center;display:none;flex-wrap:wrap;margin-top:22px}.ff_menu_active{display:flex;justify-content:center}.ff_menu_link{background-color:transparent;border-radius:6px;color:#353537;display:inline-block;font-size:15px;font-weight:500;line-height:1.6;overflow:hidden;padding:4px 14px;text-decoration:none;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_menu_link:focus{border:0;box-shadow:none;outline:none}.ff_menu_link:hover{color:#1a7efb}.ff_menu_link_buy{background-color:#1a7efb;color:#fff;margin-left:12px}.ff_menu_link_buy:hover{color:#fff}.ff_menu.conversion_form_editor .ff_menu_link,.ff_menu.partial_entries_form_editor .ff_menu_link{max-width:140px}.ff_menu .active .ff_menu_link{background-color:#e8f2ff;color:#1a7efb}.ff_menu_toggle{cursor:pointer;font-size:26px;margin-left:auto}.ff_menu_toggle:hover{color:#1a7efb}.ff_menu_back .el-icon-arrow-left{font-weight:700;position:relative;transition:all .3s;width:18px}.ff_menu_back .el-icon-arrow-left:after{background-color:#353537;background-color:#1a7efb;content:"";height:1.3px;position:absolute;right:-.6px;top:50%;transform:translateY(-52%);transition:all .3s;width:0}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left{color:#1a7efb;transform:translateX(-2.4px)}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left:after{font-weight:700;width:13px}.ff_card{background-color:#fff;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 3px 0 hsla(0,0%,51%,.1);padding:24px}.ff_card.primary{background-color:#1a7efb}.ff_card_pro{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;padding-left:54px;padding-right:40px}.ff_card_pro h3{color:#fff;font-size:28px;line-height:1.3;max-width:400px}.ff_card.highlight-border{border-color:#1a7efb}.ff_card .ff_pagination{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_shadow_lg{box-shadow:0 14px 16px -2px hsla(0,0%,51%,.1)}.ff_card .text{font-size:15px;line-height:1.6}.ff_card_alert{border-left:3px solid #ff6154;border-radius:4px}.ff_card_head{border-bottom:1px solid #ececec;margin-bottom:26px;padding-bottom:16px}.ff_card_head .text{margin-top:10px}.ff_card_head_group{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.ff_card_head_group .el-tooltip{font-size:15px}.ff_card_form_action{border-color:#ececec;cursor:pointer;height:100%}.ff_card_form_action .ff_card_text{word-break:break-word}.ff_card_img img{width:100%}.ff_card_s2{border:1px solid #e4e4e4;box-shadow:none;display:flex;flex-direction:column;padding:0;transition:.3s}.ff_card_s2 .ff_card_body{padding:20px}.ff_card_s2 .ff_card_footer{border-top:1px solid #e4e4e4;margin-top:auto;padding:14px 20px}.ff_card_s2:hover{box-shadow:0 22px 16px hsla(0,0%,51%,.12)}.ff_card_footer_group{align-items:center;display:flex;justify-content:space-between}.ff_card .ff-table-container{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_border{border:1px solid #ececec;box-shadow:none}.ff_tab{border-bottom:1px solid #ececec;display:flex}.ff_tab_item:not(:last-child){margin-right:30px}.ff_tab_item.active .ff_tab_link{color:#1a7efb}.ff_tab_item.active .ff_tab_link:after{width:100%}.ff_tab_link{color:#1e1f21;display:block;font-size:16px;font-weight:500;padding-bottom:16px;position:relative}.ff_tab_link:after{background-color:#1a7efb;bottom:-1px;content:"";height:2px;left:0;position:absolute;transition:.2s;width:0}.ff_tab_center .ff_tab_item{flex:1;text-align:center}.mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-3{margin-top:16px!important}.mt-4{margin-top:24px!important}.mt-5{margin-top:32px!important}.mt-6{margin-top:40px!important}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.mb-3{margin-bottom:16px!important}.mb-4{margin-bottom:24px!important}.mb-5{margin-bottom:32px!important}.mb-6{margin-bottom:40px!important}.mr-1{margin-right:4px!important}.mr-2{margin-right:8px!important}.mr-3{margin-right:16px!important}.mr-4{margin-right:24px!important}.mr-5{margin-right:32px!important}.mr-6{margin-right:40px!important}.ml-1{margin-left:4px!important}.ml-2{margin-left:8px!important}.ml-3{margin-left:16px!important}.ml-4{margin-left:24px!important}.ml-5{margin-left:32px!important}.ml-6{margin-left:40px!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.mr-0{margin-right:0!important}.ml-0{margin-left:0!important}.ff_list_button_item:not(:last-child){margin-bottom:4px}.ff_list_button_item.active .ff_list_button_link{background-color:#4b4c4d;color:#fff}.ff_list_button_item.has_sub_menu .ff_list_button_link{position:relative}.ff_list_button_item.has_sub_menu .ff_list_button_link:after{content:"\e6df";font-family:element-icons;position:absolute;right:15px;transition:.3s}.ff_list_button_item.has_sub_menu.is-submenu{color:inherit;font-style:inherit;font-weight:inherit;margin-left:0}.ff_list_button_item.has_sub_menu.is-submenu .ff_list_button_link:after{transform:rotate(-180deg)}.ff_list_button_link{background-color:transparent;border-radius:5px;color:#1e1f21;display:block;font-size:16px;padding:12px 18px;transition:.2s}.ff_list_button_link:hover{background-color:#f5f5f3;color:#1e1f21}.ff_list_button_small .ff_list_button_link{border-radius:6px;font-size:15px;padding:6px 14px}.ff_list_button_s1 .ff_list_button_item.active .ff_list_button_link{background-color:#f5f5f3;color:#1e1f21;font-weight:600}.ff_list_button_s1 .ff_list_button_link{color:#606266;font-size:15px}.ff_list li:not(:last-child){margin-bottom:12px}.ff_list li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list li a:hover{color:#1a7efb}.ff_list_submenu{background-color:#fff;display:none;margin-left:20px;margin-top:10px;position:relative}.ff_list_submenu:after{background-color:#e4e2df;content:"";height:100%;left:0;position:absolute;top:0;width:2px}.ff_list_submenu li{position:relative}.ff_list_submenu li:after{background-image:url(../images/curve-line.svg?ad01d82f4c085066c0a3accc820c65ac);background-repeat:no-repeat;content:"";height:10px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:12px}.ff_list_submenu li:last-child:before{background-color:#fff;bottom:0;content:"";height:18px;left:0;position:absolute;width:2px;z-index:1}.ff_list_submenu li a{border-radius:6px;color:#606266;display:block;font-size:15px;margin-left:15px;max-width:197px;overflow:hidden;padding:10px;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_list_submenu li a:hover{background-color:#efefef}.ff_list_submenu li.active a{background-color:#efefef;color:#1e1f21}.ff_list_border_bottom>li{font-size:15px;position:relative}.ff_list_border_bottom>li:not(:last-child){border-bottom:1px solid #ececec;margin-bottom:12px;padding-bottom:12px}.ff_list_border_bottom>li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list_border_bottom>li a.lead-text{color:#1a7efb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_list_border_bottom>li a.lead-text.lead-url{white-space:unset;word-break:break-all}.ff_submission_info_list li{display:flex}.ff_submission_info_list .lead-title{flex-shrink:0;width:120px}.ff_submission_info_list .truncate{max-width:228px}.el-button--upload{border-style:dashed;justify-content:center;padding:24px;width:100%}.el-button--upload .el-icon{font-size:22px}.ff_file_upload_result{align-items:center;background-color:#fafafa;border:1px solid #f2f2f2;border-radius:8px;display:flex;overflow:hidden;padding:10px;position:relative}.ff_file_upload_result .el-button{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.ff_file_upload_result+.ff_file_upload_result{margin-top:10px}.ff_file_upload_preview{height:44px;width:44px}.ff_file_upload_preview img{border-radius:4px;height:100%;-o-object-fit:cover;object-fit:cover;width:44px}.ff_file_upload_preview+.ff_file_upload_data{margin-left:15px}.ff_file_upload_description{color:#1e1f21;font-size:14px}.ff_file_upload_size{font-size:12px;margin-top:4px}body{background-color:#f2f2f2;color:#606266}#wpcontent{padding-left:0}#wpbody-content *{box-sizing:border-box}h1,h2,h3,h4,h5,h6{color:#1e1f21;margin:0}ol,ul{list-style:none;margin:0;padding:0}h1{font-size:24px}h2{font-size:23px}h3{font-size:22px;line-height:1.4}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}p{font-size:15px}p:last-child{margin:0}hr{border-bottom-color:#ececec;border-top:0}dd,li{margin-bottom:0}a{color:#1a7efb;font-weight:400;text-decoration:none}a:focus{box-shadow:none;outline:none}a:hover{color:#1a7efb}.notice,div.error,div.updated{margin:8px 24px 2px}.fluentform-admin-notice.notice-error{margin:8px 24px;padding:10px 20px}.fluentform-admin-notice.notice-error h3{font-size:18px;margin:10px 0}.ff_form_wrap_area .fluentform-admin-notice{margin:8px 0}.ff_backdrop{background:rgba(0,0,0,.5);bottom:0;left:0;position:fixed;right:0;top:0;z-index:999999999}.w-100{width:100%!important}.ff-mw-100{max-width:100%!important}.h-100{height:100%!important}.ff_form_wrap{padding:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{-webkit-appearance:none;background-color:#fff;border-color:#dadbdd;border-radius:7px;box-shadow:none;color:#606266;padding:0 15px}input[type=color]:focus,input[type=color]:hover,input[type=date]:focus,input[type=date]:hover,input[type=datetime-local]:focus,input[type=datetime-local]:hover,input[type=datetime]:focus,input[type=datetime]:hover,input[type=email]:focus,input[type=email]:hover,input[type=month]:focus,input[type=month]:hover,input[type=number]:focus,input[type=number]:hover,input[type=password]:focus,input[type=password]:hover,input[type=search]:focus,input[type=search]:hover,input[type=tel]:focus,input[type=tel]:hover,input[type=text]:focus,input[type=text]:hover,input[type=time]:focus,input[type=time]:hover,input[type=url]:focus,input[type=url]:hover,input[type=week]:focus,input[type=week]:hover,textarea:focus,textarea:hover{border-color:#1a7efb!important}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{box-shadow:none}input[type=number]{padding-right:0}input[type=checkbox]:disabled{opacity:0}.ff-select{-webkit-appearance:none!important;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat right 14px top 55%!important;background-blend-mode:hard-light;background-size:16px 16px!important;border:1px solid #dadbdd!important;border-radius:7px!important;box-sizing:border-box!important;color:#606266!important;display:inline-block!important;height:40px!important;line-height:40px!important;max-width:inherit!important;outline:0!important;outline:none!important;padding:0 29px 0 20px!important;text-overflow:ellipsis;transition:border-color .2s cubic-bezier(.645,.045,.355,1)!important}.ff-select:focus{box-shadow:none!important;outline:none!important}.ff-select-block{display:block;width:100%}.ff-select-small{background-position-x:38px!important;border-radius:5px!important;height:32px!important;line-height:32px!important;padding-left:10px!important;padding-right:24px!important}.ff-select-small.condition-field,.ff-select-small.condition-operator,.ff-select-small.condition-value{background-position-x:90%!important}.ff_filter_selected{background-color:#e8f2ff;border-color:#bad8fe;color:#1a7efb}p{margin-bottom:10px;margin-top:0}.icon{display:inline-block;font:normal normal normal 14px/1 ultimateform}.el-input--prefix .el-input__inner{padding-left:38px}.el-input__prefix{left:12px}.ff-icon+span,span+.ff-icon{margin-left:6px}.d-flex{display:flex}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.text-primary{color:#1a7efb!important}.text-secondary{color:#606266!important}.text-danger{color:#ff6154!important}.text-success{color:#00b27f!important}.text-warning{color:#fcbe2d!important}.text-dark{color:#1e1f21!important}.flex-grow-1{flex:1}.mr15{margin-right:15px}.mb15{margin-bottom:15px}.pull-left{float:left!important}.pull-right{float:right!important}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.el-icon-clickable{cursor:pointer}.help-text{font-size:.9em;font-style:italic;margin:0}.fs-17{font-size:17px!important}.fs-15{font-size:15px!important}.fs-14{font-size:14px!important}.fs-13{font-size:13px!important}.text-note{color:#606266;font-size:13px;font-weight:400}.ff-disabled{opacity:.5;pointer-events:none}.mx-auto{margin-left:auto;margin-right:auto}.img-thumb{border:1px solid #ececec;border-radius:8px}.lead-title{color:#1e1f21;display:block;font-size:15px;font-weight:500;transition:.2s}.lead-text{color:#606266;font-size:13px}a.lead-text{color:#1a7efb}.btn{background-image:none;border:1px solid transparent;border-radius:4px;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1.42857143;margin-bottom:0;padding:6px 12px;text-align:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.btn-primary{background-color:#337ab7;border-color:#2e6da4;color:#fff}.btn-primary:hover{background-color:#286090;border-color:#204d74;color:#fff}.btn-block{width:100%}.clearfix:after,.clearfix:before,.form-editor:after,.form-editor:before{content:" ";display:table}.clearfix:after,.form-editor:after{clear:both}.el-notification__content p{text-align:left}.label-lh-1-5 label{line-height:1.5}.ff_header{background:#fff;border-bottom:1px solid #ececec;display:flex;flex-direction:column;padding:10px 24px}.ff_header_group{align-items:center;display:flex;justify-content:space-between}.ff_header .plugin-name{height:30px}.ff_header .plugin-name img{height:100%}.ff_header .global-search-menu-button{background-color:transparent;border:0;border-radius:6px;color:rgba(60,60,60,.702);cursor:pointer;display:inline-block;font-size:15px;font-weight:400;line-height:1.6;margin:0 0 0 auto;padding:0 0 0 5px;transition:all .3s}.ff_header .global-search-menu-button .el-icon-search{font-size:16px;font-weight:600}.ff_header .global-search-menu-button .shortcut{border-radius:4px;box-shadow:0 2px 3px 0 rgba(32,33,36,.15);font-size:12px;letter-spacing:3px;padding:5px 8px;transition:all .3s}.ff_header .global-search-menu-button:hover{color:#353537}.ff_header .global-search-menu-button:hover .shortcut{border-color:#1a7efb;color:#1a7efb}.ff_header .global-search-menu-button span{margin-left:5px}.ff_row{display:flex;flex-wrap:wrap}.el-dialog{padding:24px 30px}.el-dialog__headerbtn{background-color:#fafafa;border-radius:50%;font-size:1.25rem;height:2rem;right:22px;top:18px;transition:.2s;width:2rem}.el-dialog__headerbtn .el-dialog__close{color:#1e1f21}.el-dialog__headerbtn:hover{background-color:#ececec}.el-dialog__headerbtn:hover .el-dialog__close{color:#1e1f21}.el-dialog__header{border-bottom:1px solid #ececec;padding:0 0 24px}.el-dialog__header h4{font-weight:500}.el-dialog__body,.el-dialog__footer{padding:0}.el-dialog__footer .has-separator{border-top:1px solid #ececec;padding-top:20px}.el-dialog,.el-popover{border-radius:8px}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__header{border:0;padding:0}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__body .el-row{align-content:center;align-items:center;display:flex;justify-content:center}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__headerbtn{z-index:1}.form-editor .disabled-info .el-dialog__wrapper h3{font-size:1.5em}.form-editor .disabled-info .el-dialog__wrapper p{font-size:16px}.form-editor .disabled-info .el-dialog__wrapper img{width:100%}.ff_nav_top{display:block;margin-bottom:15px;overflow:hidden;width:100%}.ff_nav_top .ff_nav_title{float:left;width:50%}.ff_nav_top .ff_nav_title h3{float:left;line-height:28px;margin:0;padding:0}.ff_nav_top .ff_nav_title .ff_nav_sub_actions{display:inline-block;margin-left:20px}.ff_nav_top .ff_nav_action{float:left;text-align:right;width:50%}.ff_nav_top .ff_search_inline{display:inline-block;text-align:right;width:200px}.ff_nav_top.ff_advanced_search{background:#fff;border-radius:5px;padding:10px 20px}.ff_global_notices{box-sizing:border-box;display:block;margin-top:20px;overflow:hidden;width:100%}.ff_global_notices .ff_global_notice{background:#fff;border:1px solid transparent;border-radius:.25rem;display:block;margin-bottom:1rem;margin-right:20px;padding:.75rem 1.25rem;position:relative}.ff_global_notices .ff_global_notice.ff_notice_error{background-color:#fff3cd;border-color:#ffeeba;color:#856404}.ff_global_notices .ff_global_notice.ff_notice_success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.el-select-dropdown.el-popper{z-index:99999999999!important}ul.ff_entry_list{list-style:disc;margin-left:20px}span.ff_new_badge{background:#ff4747;border-radius:4px;color:#fff;font-size:11px;line-height:100%;margin-left:5px;padding:0 5px 3px;vertical-align:super}label.el-checkbox,label.el-radio{display:inline-block}.el-time-spinner__list .el-time-spinner__item{margin-bottom:0!important}.ff_card_block{background:#f2f2f2;border-radius:8px;padding:20px}.ff_card_block_head{border-bottom:1px solid #e3e3e3;margin-bottom:20px;padding-bottom:15px}.ff_card_block h3{margin:0 0 15px;padding:0}.videoWrapper{height:0;padding-bottom:56.25%;position:relative}.videoWrapper iframe{height:100%;left:0;position:absolute;top:0;width:100%}.ff-left-spaced{margin-left:10px!important}.doc_video_wrapper{background:#fff;margin:0 auto;max-width:800px;padding:20px 0 0;text-align:center}.el-big-items .el-select-dropdown__wrap{max-height:350px}.ff_email_resend_inline{display:inline-block}.el-radio-group-column{display:flex;flex-direction:column}.el-radio-group-column .el-radio{margin-bottom:20px;margin-right:0}.el-checkbox-group-column{display:flex;flex-direction:column}.el-checkbox-group-column .el-checkbox{margin-bottom:14px;margin-right:0}.ff_advanced_filter_wrap{position:relative}.ff_advanced_search{background:#fff;border-radius:8px;box-shadow:0 40px 64px -12px rgba(0,0,0,.08),0 0 14px -4px rgba(0,0,0,.08),0 32px 48px -8px rgba(0,0,0,.1);margin-top:10px;padding:20px;position:absolute;right:0;top:100%;width:350px;z-index:1024}.ff_advanced_search_date_range{background-color:#ececec;border-radius:8px;padding:14px}.ff_advanced_search_date_range p{font-size:14px;font-weight:400}.ff_advanced_search_date_range .el-date-editor--daterange.el-input__inner{width:282px}.el-switch__core:after{box-shadow:0 2px 4px rgba(0,0,0,.2),inset 0 2px 2px #fff,inset 0 -1px 1px rgba(0,0,0,.1)}.row-actions .row-actions-item{display:inline-block;font-size:13px;line-height:1;padding-right:10px;position:relative}.row-actions .row-actions-item:after{background-color:#ddd;content:"";height:10px;position:absolute;right:3px;top:50%;transform:translateY(-50%);width:1px}.row-actions .row-actions-item.trash:after{display:none}.row-actions span.trash a{color:#ff6154}.ff_pagination{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);display:inline-flex;font-weight:500;max-width:100%;padding:12px 20px}.ff_pagination .el-input__inner{background:#f2f2f2;border-color:#f2f2f2;border-radius:4px!important;color:#606266}.ff_pagination .el-input__inner:focus,.ff_pagination .el-input__inner:hover{border-color:#f2f2f2!important}.ff_pagination .el-select .el-input .el-select__caret{color:#606266}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:transparent;border-radius:4px}.ff_shortcode_wrap+.ff_shortcode_wrap{margin-top:.5rem}.ff_shortcode_btn{align-items:center;background-color:#ededed;border:0;border-radius:6px;color:#353537;display:inline-flex;font-size:12px;margin:0;overflow:hidden;padding:4px 10px}.ff_shortcode_btn span{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:200px}.ff_shortcode_btn .el-icon{margin-right:1px}.ff_shortcode_btn_thin{background-color:#f2f2f2}.ff_shortcode_btn_md{font-size:15px;line-height:1.2;padding:10px 14px}.copy_btn{background-color:#e7e6e6;border-radius:4px;cursor:pointer;margin-left:auto;padding:1px 10px;transition:.2s}.copy_btn:hover{background-color:#d8d7d7}.ff_editor_html ul{list-style-type:disc;padding-left:3em}.ff_editor_html ol{list-style-type:decimal;margin-left:3em}.ff_section_block{margin-bottom:64px}.ff_section_block:last-child{margin-bottom:0}.ff_radio_list{display:flex;flex-direction:column}.ff_radio_list_item{margin-bottom:2px;width:100%}.ff_radio_list_item .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:6px!important;box-shadow:none!important;color:#606266;padding:13px 16px;text-align:left;transition:.2s;width:100%}.ff_radio_list_item .el-radio-button__inner:hover,.ff_radio_list_item.is-active .el-radio-button__inner{background-color:rgba(96,98,102,.1);color:#1e1f21}.is-sticky{position:fixed;top:40px;z-index:1020}.ff_section_desc{font-size:16px}.ff_section_head{margin-bottom:40px}.ff_section_head_between{display:flex;flex-wrap:wrap;justify-content:space-between}.ff_section_head.sm{margin-bottom:24px}.ff_section_head_content_group{align-items:center;display:flex}.ff_section_head .text{font-size:15px}.el-row{display:flex;flex-wrap:wrap}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.items_end{align-items:flex-end!important}.el-radio-button__inner{font-weight:400}.el-select-dropdown__item.selected{font-weight:500}.ff_layout_section{display:flex;min-height:550px;position:relative;width:100%}.ff_layout_section_sidebar{background-color:#fff;box-shadow:0 1px 3px rgba(30,31,33,.05);flex-shrink:0;padding:16px;vertical-align:top;width:230px}.ff_layout_section_container{flex:1;overflow-y:scroll;padding:16px}.ff_global_setting_wrap .ff_layout_section_sidebar,.ff_tools_wrap .ff_layout_section_sidebar{height:100%}.ff_global_settings_option{height:110vh;overflow-y:scroll}.ff_global_settings_option::-webkit-scrollbar{display:none}.ff_global_settings_option .el-form-item,.ff_global_settings_option .el-form-item-wrap{margin-bottom:24px}.ff_global_settings_option .el-form-item-wrap:last-child,.ff_global_settings_option .el-form-item:last-child{margin-bottom:0}.ff_global_settings_option .ff_card:not(:last-child){margin-bottom:32px}.ff_input_width{width:438px}.ff_input_full_width{width:100%}.ff_tooltip_wrap{font-size:14px;line-height:1.6;max-width:320px}.ff_tooltip_wrap h6{color:#fff}.ff-icon-gray{color:#757d8a}.el-form--label-top .el-form-item__label{line-height:1;padding-bottom:16px}.ff-form-item .el-form-item__label{align-items:center;color:#1e1f21;display:flex;font-size:15px;font-weight:500}.ff-form-item .el-form-item__label .ff-icon{margin-left:4px}.ff-form-item .el-form-item__content{line-height:1}.ff-form-item .el-icon-info,.ff-form-item .ff-icon-info-filled{font-size:13px}.ff-form-item .el-icon-info{color:#1a7efb;transform:rotate(-14deg)}.el-select__tags input{background-color:transparent;border:none;line-height:2;margin-left:0;min-height:30px;padding:0 8px}.ff_alert{background-color:#e8f2ff;border-left:3px solid #1a7efb;border-radius:4px;padding:17px}.ff_alert_icon{display:inline-block;font-size:16px;margin-top:3px}.ff_alert_icon+.ff_alert_content{padding-left:10px}.ff_alert_group{display:flex}.ff_alert_sm{padding:10px}.ff_alert.success{background-color:#00b27f;border-left-color:#00b27f;color:#fff}.ff_alert.success-soft{background-color:#e6ffeb;border-left-color:#00b27f}.ff_alert.danger{background-color:#ff6154;border-left-color:#ff6154;color:#fff}.ff_alert.danger-soft{background-color:#ffefee;border-left-color:#ff6154}.ff_alert .text{font-size:14px;margin-bottom:12px;margin-top:6px}.ff_alert_between{align-items:center;display:flex;justify-content:space-between}.ff_alert_between .text{margin-bottom:0}.ff_alert_s2{border-left:0;border-radius:8px;padding:40px;text-align:center}.ff-form-item-flex{align-items:center;display:flex}.ff-form-item-flex .el-form-item__label{padding-bottom:0}.ff-form-item-flex.reverse{flex-direction:row-reverse;justify-content:flex-end}.ff-form-setting-label-width .el-form-item__label{width:390px}.el-switch input{border:0}.el-switch-lg .el-switch__core{border-radius:30px;height:24px;width:48px!important}.el-switch-lg .el-switch__core:after{height:20px;width:20px}.el-switch-lg.is-checked .el-switch__core:after{margin-left:-21px}.ff_block_title{font-weight:500}.el-form-item__label h6{font-size:15px;font-weight:500}.ff_checkbox_group_col_2{display:flex;flex-wrap:wrap}.ff_checkbox_group_col_2 .el-checkbox{line-height:1;margin-bottom:.75rem;margin-right:0;width:50%}.wp_vue_editor_wrapper{background-color:#fff;border:1px solid #dadbdd;border-radius:8px;overflow:hidden;position:relative}.wp_vue_editor_wrapper .wp-media-buttons{float:none;position:absolute;right:160px;top:10px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media{background-color:#e8f2ff;border-color:#e8f2ff;border-radius:6px;color:#1a7efb;font-weight:500;line-height:1;margin:0;min-height:30px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.wp_vue_editor_wrapper .popover-wrapper{padding:10px;position:absolute;right:0;top:0;z-index:2}.wp_vue_editor_wrapper .wp-editor-container{border:0}.wp_vue_editor_wrapper .wp-editor-tabs{float:none;padding:8px}.wp_vue_editor_wrapper .wp-switch-editor{background-color:transparent;border-color:transparent;border-radius:5px;float:none;font-size:14px;font-weight:500;height:auto;line-height:inherit;margin:0 0 0 4px;padding:7px 14px}.wp_vue_editor_wrapper .html-active .switch-html,.wp_vue_editor_wrapper .tmce-active .switch-tmce{background-color:#ededed;border-color:#dadbdd;color:#1e1f21}.wp_vue_editor_wrapper .switch-html{margin-left:0}.wp_vue_editor_wrapper .mce-top-part:before{box-shadow:none}.wp_vue_editor_wrapper .quicktags-toolbar,.wp_vue_editor_wrapper div.mce-toolbar-grp{background:#f1f1f0;border-bottom:0}.wp_vue_editor_wrapper .mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border:0;border-radius:4px;box-shadow:none}.wp_vue_editor_wrapper textarea{border:0;padding-top:15px}.wp-media-buttons .insert-media{padding-left:8px;padding-right:10px}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#1a7efb}.mce-panel.mce-menu{border-radius:8px}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:10px!important}.el-input-number__decrease{left:2px}.ff_state_box{border-radius:8px;display:block;padding:32px;text-align:center}.ff_icon_btn{align-items:center;background-color:#1a7efb;border-radius:50%;color:#fff;display:flex;font-size:28px;height:58px;justify-content:center;text-align:center;width:58px}.ff_icon_btn:focus,.ff_icon_btn:hover{color:#fff}.ff_icon_btn img{height:36px;-o-object-fit:contain;object-fit:contain}.ff_icon_btn.square{border-radius:12px}.ff_icon_btn.blue{background-color:#3b5998;color:#fff}.ff_icon_btn.blue-soft{background-color:#ebeef5;color:#3b5998}.ff_icon_btn.dark{background-color:#1e1f21;color:#fff}.ff_icon_btn.dark-soft{background-color:#e9e9e9;color:#1e1f21}.ff_icon_btn.primary-soft{background-color:#e8f2ff;color:#1a7efb}.ff_icon_btn.danger{background-color:#ff6154;color:#fff}.ff_icon_btn.danger-soft{background-color:#ffefee;color:#ff6154}.ff_icon_btn.success{background-color:#00b27f;color:#fff}.ff_icon_btn.success-soft{background-color:#e6ffeb;color:#00b27f}.ff_icon_btn.warning{background-color:#fcbe2d;color:#fff}.ff_icon_btn.warning-soft{background-color:#fff9ea;color:#fcbe2d}.ff_icon_btn.info{background-color:#4b4c4d;color:#fff}.ff_icon_btn.info-soft{background-color:#ededed;color:#4b4c4d}.ff_icon_btn.cyan{background-color:#0dcaf0;color:#fff}.ff_icon_btn.cyan-soft{background-color:#e7fafe;color:#0dcaf0}.ff_icon_btn.mini{font-size:12px;height:18px;width:18px}.ff_icon_btn.small{font-size:16px;height:27px;width:27px}.ff_icon_btn.md{font-size:26px;height:48px;width:48px}.ff_icon_btn.md img{height:28px;-o-object-fit:cover;object-fit:cover;-o-object-position:left;object-position:left;width:28px}.ff_icon_btn.lg{font-size:36px;height:72px;width:72px}.ff_btn_group{align-items:center;display:inline-flex;flex-wrap:wrap;margin:-6px}.ff_btn_group>*{margin-bottom:0;padding:6px}.ff_btn_group.sm{margin:-3px}.ff_btn_group.sm>*{padding:3px}.ff_btn_group_half{display:flex}.ff_btn_group_half>*{flex:1}.ff_btn_group_half .el-button{justify-content:center;width:100%}.file-input{background:#fff;border:1px solid #ececec;border-radius:8px;color:#606266;max-width:100%;padding:5px!important}.file-input::file-selector-button{background:#f2f2f2;border:none;border-radius:6px;color:#1e1f21;cursor:pointer;margin-right:6px;padding:6px 16px;transition:background .2s ease-in-out}.file-input::file-selector-button:hover{background:#ced0d4}.el-tag--pill{border-radius:50rem}.ff_radio_group{background-color:#f5f5f3;border-radius:8px;overflow:hidden}.ff_radio_group .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:0!important}.ff_radio_group .el-radio-button__inner:hover{color:#1e1f21}.ff_radio_group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;box-shadow:none;color:#fff}.ff_radio_group_s2{background:#fff;border:1px solid #edeae9;border-radius:8px;display:inline-flex;overflow:hidden}.ff_radio_group_s2 .el-radio-button:first-child .el-radio-button__inner{border-left:0}.ff_radio_group_s2 .el-radio-button:last-child .el-radio-button__inner{border-right:0}.ff_radio_group_s2 .el-radio-button__inner{border-color:transparent #edeae9 transparent transparent}.el-input-gray .el-input__inner{background-color:#e7e6e6;border-color:#e7e6e6}.el-input-gray .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray .el-input__prefix{color:#606266}.el-input-gray-light .el-input__inner{background-color:#f5f5f3;border-color:#f5f5f3}.el-input-gray-light .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__prefix{color:#606266}.el-radio.is-bordered{margin-right:6px}.ff_media_group{align-items:center;display:flex}.ff_media_head+.ff_media_body{margin-left:16px}.ff_video_wrap{position:relative}.ff_video_wrap:after{background-color:#1e1f21;border-radius:8px;content:"";height:100%;left:0;opacity:.3;position:absolute;top:0;width:100%}.ff_video_img{border-radius:8px;display:block;width:100%}.ff_video_icon{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1}.ff-input-wrap{position:relative}.ff-input-wrap .el-icon{align-items:center;display:inline-flex;height:100%;left:0;padding-left:14px;position:absolute;top:0;z-index:2}.ff-input-wrap .el-icon+.el-input .el-input__inner,.ff-input-wrap .el-icon+input{padding-left:32px}.el-dialog-no-header .el-dialog__header{display:none}.el-radio-button-group{background-color:#fff;border:1px solid #ececec;border-radius:4px}.el-radio-button-group .el-radio-button__inner{background:transparent;border:0;padding:6px 9px}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner{border-left:0;border-radius:4px 0 0 4px}.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button-group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1a7efb;box-shadow:none}.el-color-picker__color{border-color:#d4edda;border-radius:3px}.ff_socials li{display:inline-block;margin-right:2px}.ff_socials li:last-child{margin-right:0}.ff_socials li a{background-color:#ededed;border-radius:50%;color:#606266;display:grid;height:32px;place-items:center;transition:.2s;width:32px}.ff_socials li a span{font-size:16px;height:auto;transition:0s;width:auto}.ff_socials li a:hover{background-color:#1a7efb;color:#fff}.ff-dropdown-menu .el-dropdown-menu__item{line-height:1.5;padding:6px 20px}.ff-dropdown-menu .el-dropdown-menu__item:hover{background-color:transparent}.truncate{display:block;max-width:188px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;max-width:inherit;white-space:inherit}.hover-y{transition:.3s}.hover-y:hover{transform:translateY(-2px)}.hover-zoom{transition:.3s}.hover-zoom:hover{transform:scale(1.03)}.ff_badge{align-items:center;background-color:#ededed;border:1px solid #dbdbdb;border-radius:30px;color:#4b4c4d;display:inline-flex;line-height:1.2;padding:2px 7px;text-transform:capitalize}.ff_badge.small{font-size:13px}.ff_badge_wrap{align-items:center;display:inline-flex}.ff_badge img{flex-shrink:0;height:14px;margin-right:4px}.ff_badge_active,.ff_badge_primary{background-color:#e8f2ff;border-color:#d1e5fe;color:#1a7efb}.ff_badge_paid{background-color:#e6f7f2;border-color:#ccf0e5;color:#00b27f}.ff_badge_processing{background-color:#e7fafe;border-color:#cff4fc;color:#0dcaf0}.ff_badge_pending{background-color:#fff9ea;border-color:#fef2d5;color:#fcbe2d}.ff_badge_failed{background-color:#ffefee;border-color:#ffdfdd;color:#ff6154}.ff_badge_visa{background-color:#e8e9ef;border-color:#dddee7;color:#192061}.ff_badge_mastercard{background-color:#ffefe6;border-color:#ffe7d9;color:#ff5f00}.ff_badge_amex{background-color:#f0f9fd;border-color:#e9f6fc;color:#6cc4ee}.ff_badge_paypal{background-color:#e6f5fc;border-color:#d9f0fa;color:#019ddd}.ff_badge_stripe{background-color:#eef0fb;border-color:#e5e9f9;color:#5469d4}.ff_badge.is-solid.ff_badge_active{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.ff_badge.is-solid.ff_badge_processing{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.ff_badge.is-solid.ff_badge_paid{background-color:#00b27f;border-color:#00b27f;color:#fff}.ff_badge.is-solid.ff_badge_pending{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.ff_badge.is-solid.ff_badge_cancelled,.ff_badge.is-solid.ff_badge_failed{background-color:#ff6154;border-color:#ff6154;color:#fff}.separator{background-color:rgba(96,98,102,.1);height:1px}.ff_choose_template_wrap .el-dialog{max-width:1280px}.ff_settings_container .notice{margin:0 0 20px}.global-search-wrapper{align-items:center;background:rgba(0,0,0,.7);display:flex;height:auto;inset:0;justify-content:center;min-height:100vh;padding:20px;position:fixed;z-index:999999999}.global-search-wrapper .global-search-container{background:#f6f6f7;border-radius:5px;overflow:auto;position:relative;width:700px}.global-search-wrapper .global-search-container input{font-size:17px;padding:3px 35px;width:100%}.global-search-wrapper .global-search-container ul.search-result li{background:#fff;border-radius:6px;box-shadow:0 1px 3px 0 #d4d9e1;color:#606266;cursor:pointer;display:block;font-size:15px;margin-left:0;margin-top:7px;padding:10px;transition:.2s}.global-search-wrapper .global-search-container ul.search-result li.active-search-link{background-color:#197efb;color:#fff;outline:0}.global-search-wrapper .global-search-container ul.search-result li:focus,.global-search-wrapper .global-search-container ul.search-result li:focus-visible{border:0;box-shadow:none;outline:0}.global-search-wrapper .global-search-container span.global-search-not-match{display:inline-block;font-size:16px;margin-top:6px}.global-search-wrapper .global-search-body{max-height:400px;min-height:200px;overflow-y:auto;padding:20px}.global-search-wrapper .search-commands{background:#fff;box-shadow:0 -1px 0 0 #efefef,0 -2px 6px 0 rgba(70,90,150,.1);color:#606266;display:flex;font-size:14px;justify-content:space-around;padding:12px}.global-search-wrapper .search-commands ul li{font-size:12px;margin-top:7px;padding:10px}.scroll{animation:down 2s ease-in-out infinite;-webkit-animation:down 2s ease-in-out infinite;cursor:pointer;height:26px;margin:0 auto;position:relative;width:60px}.scroll:before{border-bottom:2px solid #777;border-left:2px solid #777;content:"";height:16px;left:18px;position:absolute;top:24px;transform:rotate(-45deg);width:16px}.ff_chained_ajax_field{display:flex;flex:auto;gap:10px}.ff_chained_ajax_field .el-select{flex-basis:100%}@keyframes down{0%{opacity:0;-webkit-transform:translateY(-14px)}50%{opacity:1}to{opacity:0;-webkit-transform:translateY(14px)}}.ff_sidebar_toggle{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 1px 10px rgba(0,0,0,.1);color:#000;cursor:pointer;display:none;font-size:18px;height:30px;justify-content:center;position:absolute;right:-21px;top:15px;width:30px}.text-capitalize{text-transform:capitalize}.el-notification__content{text-align:left}.action-buttons .el-button+.el-button{margin-left:0}.el-box-card{box-shadow:none}.el-box-footer,.el-box-header{background-color:#edf1f6;padding:15px}.el-box-body{padding:15px}.el-form-item__force-inline.el-form-item__label{float:left;padding:11px 12px 11px 0}.el-form-item .el-form-item{margin-bottom:10px}.el-form-item__content .line{text-align:center}.el-basic-collapse{border:0;margin-bottom:15px}.el-basic-collapse .el-collapse-item__header{border:0;display:inline-block;padding-left:0}.el-basic-collapse .el-collapse-item__wrap{border:0}.el-basic-collapse .el-collapse-item__content{background-color:#fff;padding:0}.el-collapse-settings{border:0}.el-collapse-settings .el-collapse-item__header{background:#f5f5f3;border:0;border-radius:8px;font-size:16px;padding-left:20px;padding-right:10px}.el-collapse-settings .el-collapse-item__header .el-collapse-item__arrow{font-size:16px;font-weight:500}.el-collapse-settings .el-collapse-item__content{margin-top:15px;padding-bottom:0}.el-collapse-settings .el-collapse-item__arrow{line-height:48px}.el-collapse-settings .el-collapse-item__wrap{background-color:transparent;border-bottom:0;overflow:inherit}.el-popover{text-align:left}.option-fields-section--content .el-form-item__label{color:#1e1f21;font-weight:500;line-height:1;padding-bottom:10px}.option-fields-section--content .el-form-item__content{line-height:1.5;margin-bottom:5px}.option-fields-section--content .el-input-number--mini{line-height:28px}.option-fields-section--content strong{color:#1e1f21;font-weight:600}.el-dropdown-list{border:0;box-shadow:none;margin:0;max-height:280px;min-width:auto;overflow-y:scroll;padding:0;position:static;z-index:10}.el-dropdown-list .el-dropdown-menu__item{border-bottom:1px solid #f1f1f1;font-size:13px;line-height:18px;padding:4px 10px}.el-dropdown-list .el-dropdown-menu__item:last-of-type{border-bottom:0}.el-popper[x-placement^=bottom] .popper__arrow{top:-7px}.el-form-nested.el-form--label-left .el-form-item__label{float:left;padding:10px 5px 10px 0}.el-message{top:40px}.el-tabs--border-card{border-color:#ececec;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.05)}.el-tabs--border-card .el-tabs__header{background-color:transparent;border-top-left-radius:6px;border-top-right-radius:6px;padding:10px 14px}.el-tabs--border-card .el-tabs__header .el-tabs__item{border:0;border-radius:6px;font-size:13px;height:34px;line-height:34px;margin-top:0;padding-left:16px;padding-right:16px}.el-tabs--border-card .el-tabs__header .el-tabs__item:first-child{margin-left:0}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active{background-color:#d1e5fe;color:#1a7efb}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active:hover{color:#1a7efb}.el-button{align-items:center;display:inline-flex;transition:.3s}.el-button .el-loading-mask{border-radius:7px}.el-button .el-loading-mask .el-loading-spinner{margin-top:-12px}.el-button .el-loading-mask .el-loading-spinner .circular{height:24px;width:24px}.el-button span{align-items:center;display:inline-flex}.el-button-group .el-button span{display:inline-block}.el-button--block{justify-content:center;width:100%}.el-button--small .ff-icon{font-size:14px}.el-button--large{font-size:16px;padding:15px 20px}.el-button--soft.el-button--blue{background-color:#ebeef5;border-color:#ebeef5;color:#3b5998}.el-button--soft.el-button--blue:hover{background-color:#3b5998;border-color:#3b5998;color:#fff}.el-button--soft.el-button--primary{background-color:#e8f2ff;border-color:#e8f2ff;color:#1a7efb}.el-button--soft.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--soft.el-button--danger{background-color:#ffefee;border-color:#ffefee;color:#ff6154}.el-button--soft.el-button--danger:hover{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-button--soft.el-button--success{background-color:#e6ffeb;border-color:#e6ffeb;color:#00b27f}.el-button--soft.el-button--success:hover{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-button--soft.el-button--warning{background-color:#fff9ea;border-color:#fff9ea;color:#fcbe2d}.el-button--soft.el-button--warning:hover{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--soft.el-button--info{background-color:#ededed;border-color:#ededed;color:#4b4c4d}.el-button--soft.el-button--info:hover{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--soft.el-button--cyan{background-color:#e7fafe;border-color:#e7fafe;color:#0dcaf0}.el-button--soft.el-button--cyan:hover{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.el-button--soft.el-button--dark{background-color:#e9e9e9;border-color:#e9e9e9;color:#1e1f21}.el-button--soft.el-button--dark:hover{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--soft-2.el-button--primary{background-color:#d1e5fe;border-color:#d1e5fe;color:#1a7efb}.el-button--soft-2.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--icon.el-button--mini{border-radius:4px;padding:7px}.el-button--icon.el-button--small{border-radius:5px;font-size:14px;padding:8px}.el-button--icon.el-button--medium{border-radius:6px;padding:10px}.el-button--text-light{color:#606266}.el-button--info.is-plain{border-color:#ededed}.el-button--dark{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--dark:focus,.el-button--dark:hover{background-color:#3a3a40;border-color:#3a3a40;color:#fff}.el-button--primary:hover{background-color:#1565c9;border-color:#1565c9}.el-pager li{font-weight:600}.form-editor-elements:not(.el-form--label-left):not(.el-form--label-right) .el-form-item__label{line-height:1}.folded .el-dialog__wrapper{left:36px}.el-dialog__wrapper .data-lost-msg{margin-top:10px}.ff-el-banner{border:1px solid #dce0e5;display:inline-block;float:left;height:250px;padding:5px;transition:border .3s;width:200px}.ff-el-banner,.ff-el-banner-group{overflow:hidden}.ff-el-banner-group .ff-el-banner{margin-bottom:30px;margin-right:10px}.ff-el-banner+.ff-el-banner{margin-right:10px}.ff-el-banner img{display:block;height:auto;width:100%}.ff-el-banner-header{background:#909399;color:#fff;font-size:13px;font-weight:400;margin:0;padding:3px 6px;text-align:center}.ff-el-banner-inner-item{height:inherit;overflow:hidden;position:relative}.ff-el-banner:hover .ff-el-banner-text-inside{opacity:1!important;visibility:visible!important}.ff-el-banner-text-inside{display:flex;flex-direction:column;justify-content:center}.ff-el-banner-text-inside-hoverable{bottom:0;color:#fff;left:0;padding:10px;position:absolute;right:0;top:0;transition:all .3s}.ff-el-banner-text-inside .form-title{color:#fff;margin:0 0 10px}.compact td>.cell,.compact th>.cell{white-space:nowrap}.el-tooltip__popper p{margin-bottom:0}.el-dropdown-menu{left:unset;max-width:270px}.el-dropdown-link{cursor:pointer}.el-dropdown-link-lg{color:#1e1f21;font-size:24px;font-weight:600}.el-dropdown-link-lg .el-icon{font-size:20px}.el-switch--small .el-switch__core{height:16px;width:28px!important}.el-switch--small .el-switch__core:after{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core:after{margin-left:-13px}.el-switch--small .el-switch__label *{font-size:13px;font-weight:500}.el-message-box__title{color:#1e1f21;font-weight:500}.el-input-group--append{position:relative}.el-input-group--append .el-input__inner{border-bottom-right-radius:8px;border-top-right-radius:8px}.el-input-group__append,.el-input-group__prepend{background-color:#f2f2f2;border:0;border-radius:5px;display:grid;height:30px;padding:0;position:absolute;text-align:center;top:5px;width:30px}.el-input-group__append:hover,.el-input-group__prepend:hover{background-color:#e0e0e0}.el-input-group__append .el-icon-more,.el-input-group__prepend .el-icon-more{transform:rotate(90deg)}.el-input-group__append .el-button,.el-input-group__prepend .el-button{margin:0;padding:0}.el-input-group__append{right:4px}.el-input-group__prepend{left:4px}.el-table__fixed,.el-table__fixed-right{background-color:#fff}.el-table__fixed-right:before,.el-table__fixed:before{display:none}.el-radio-button__orig-radio:checked+.el-radio-button__inner{box-shadow:none}.input-with-select{align-items:center;display:flex}.input-with-select.el-input-group--append .el-input__inner{border-bottom-right-radius:0;border-top-right-radius:0}.input-with-select .el-select{background-color:#fff;border:1px solid #dadbdd;height:40px;margin:0}.input-with-select .el-select .el-input__inner{border:0}.input-with-select .el-input-group__append,.input-with-select .el-input-group__prepend{border-radius:0;flex:1;height:auto;left:0;position:inherit;top:0;width:auto}.input-with-select .el-input-group__append:hover,.input-with-select .el-input-group__prepend:hover{background-color:transparent}.input-with-select .el-input-group__prepend .el-select{border-bottom-left-radius:8px;border-right:0;border-top-left-radius:8px}.input-with-select .el-input-group__append .el-select{border-bottom-right-radius:8px;border-left:0;border-top-right-radius:8px}.chain-select-upload-button .el-input-group__append,.chain-select-upload-button .el-input-group__prepend{width:70px}.el-radio-group-dark .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1e1f21;border-color:#1e1f21}.el-radio-group-info .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;border-color:#4b4c4d}.el-table thead .cell{color:#1e1f21;font-weight:500}.el-table--border{border-radius:6px}.ff-input-s1 .el-input .el-select__caret{color:#1e1f21}.ff-input-s1 .el-input .el-icon-arrow-up:before{font-weight:600}.el-radio-button--small:first-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-radio-button--small:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-input--mini .el-input__inner{border-radius:4px}.el-input--large .el-input__inner{font-size:16px;height:48px;padding-left:20px;padding-right:20px}.el-input-number--mini{line-height:28px}.el-input-number--mini .el-input-number__decrease{border-radius:4px 0 0 4px;left:1px}.el-input-number--mini .el-input-number__increase{border-radius:0 4px 4px 0}.el-input-number__decrease,.el-input-number__increase{background-color:#f2f2f2}.el-dialog__header .title+.text{margin-top:6px}.el-dialog__header .text{margin-bottom:0}.el-dialog__header_group{align-items:center;display:flex}.el-checkbox-horizontal .el-checkbox{display:flex}.el-checkbox-horizontal .el-checkbox__input{align-self:flex-start;padding-top:3px}.el-skeleton__item{border-radius:4px}.ff-add-ons{display:block;margin-bottom:20px;overflow:hidden;position:relative;width:100%}.ff-add-on{box-sizing:border-box;float:left;margin-bottom:10px;overflow:hidden;padding-right:30px;width:33.33%}@media (max-width:768px){.ff-add-on{float:none;margin-bottom:30px;padding-right:0;width:100%}}.ff-add-on.ff-featured-addon{width:100%}.ff-add-on.ff-featured-addon a.button.button-primary{background:#1a7efb;font-size:18px;height:auto;padding:5px 20px}.ff-add-on.ff-featured-addon p.ff-add-on-active{max-width:250px;position:static}.ff-add-on.ff-featured-addon .ff-plugin_info{border-right:1px solid #dcd8d8;float:left;max-width:250px;padding-right:20px}.ff-add-on.ff-featured-addon .ff-plugin_info>img{height:auto!important;max-height:none;max-width:200px;width:100%}.ff-add-on.ff-featured-addon .ff-add-on-description{font-size:16px;margin-bottom:20px}.ff-add-on.ff-featured-addon .ff-featured_content{display:block;float:left;padding-left:20px}.ff-add-on.ff-featured-addon .ff-featured_content .ff-integration{height:auto;max-width:300px}.ff-add-on.ff-featured-addon .ff-featured_content .ff-feature-lists{float:left;margin-right:150px;text-align:left}.ff-add-on.ff-featured-addon .ff-featured_content .ff-feature-lists:last-child{margin-right:0}.ff-add-on.ff-featured-addon .ff-featured_content .ff-feature-lists ul li{font-size:17px;margin-bottom:10px}.ff-add-on.ff-featured-addon .ff-featured_content .ff-feature-lists ul li span{color:green;font-weight:700}.ff-add-on-box{background:#fff;border-radius:4px;box-shadow:0 0 5px rgba(0,0,0,.05);min-height:280px;overflow:hidden;padding:15px;position:relative}.ff-add-on-box img{max-height:100px;max-width:100px}.ff-add-on-active{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.ff-add-on-inactive{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.ff-add-on-active,.ff-add-on-inactive{bottom:15px;font-weight:700;left:15px;padding:6px;position:absolute;right:15px}.ff-add-on-description{margin-bottom:56px}.fluent_activate_now{display:none}.fluent_activation_wrapper .fluentform_label{display:inline-block;margin-right:10px;margin-top:-4px;width:270px}.fluent_activation_wrapper .fluentform_label input{background-color:#f2f2f2;width:100%}.fluent_activation_wrapper .fluentform_label input::-webkit-input-placeholder{color:#908f8f}.fluent_activation_wrapper .contact_us_line{margin-top:12px}.fluent_activation_wrapper .fluent_plugin_activated_hide{display:none!important}.license_activated_sucess{margin-bottom:16px}.license_activated_sucess h5{margin-bottom:8px}.ff_add_on_body .notice,.ff_add_on_body div.error,.ff_add_on_body div.updated{margin:0 0 10px}.add_on_modules .el-col{margin-bottom:22px}.font_downloader_wrapper{margin-left:auto;margin-right:auto;width:650px}.font_downloader_wrapper .el-button.is-loading{border:0;overflow:hidden;pointer-events:inherit}.font_downloader_wrapper .el-button.is-loading span{position:relative;z-index:1}.font_downloader_wrapper .el-button.is-loading:before{background-color:hsla(0,0%,100%,.8)}.font_downloader_wrapper .el-button.is-loading .ff_download_fonts_bar{background-color:#1a7efb;bottom:0;content:"";left:0;position:absolute;right:0;top:0;width:0}.ff_pdf_system_status li,.ff_pdf_system_status_list li{font-size:15px;margin-bottom:10px}.ff_pdf_system_status li .dashicons,.ff_pdf_system_status_list li .dashicons{color:#00b27f}.ff_addon_enabled_yes{background-color:#e8f2ff;border-color:#bad8fe}.ff_addon_enabled_yes .ff_card_footer{border-top-color:#bad8fe}.ff_download_logs{background-color:#4b4c4d;border-radius:10px;color:#fff;line-height:28px;max-height:200px;overflow:scroll;padding:10px 20px;text-align:left}@media (min-width:1281px){.ff_screen_editor .form_internal_menu_inner{flex-direction:row}.ff_screen_editor .form_internal_menu_inner .ff_menu{margin-left:0;padding-bottom:0}.ff_screen_conversational_design .ff_menu_back,.ff_screen_editor .ff_menu_back,.ff_screen_entries .ff_menu_back,.ff_screen_inventory_list .ff_menu_back,.ff_screen_msformentries .ff_menu_back,.ff_screen_settings .ff_menu_back{display:flex}.option-fields-section--content .v-row{flex-direction:row}.option-fields-section--content .v-col--50{padding-bottom:0;width:50%}.form-editor--body{padding:50px;width:65%}.form-editor--sidebar{width:35%}}@media (min-width:769px){.ff_header{align-items:center;flex-direction:row}.ff_header_group{margin-right:32px}.ff_menu{display:flex;margin-top:0}.ff_menu_toggle{display:none}.ff_form_wrap{padding-left:24px;padding-right:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_editor,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:0}}@media (min-width:1025px){.all-forms-search,.ff_entries_search_wrap{width:270px}.ff_entries_search_wrap{margin-left:auto}.all-forms-select{width:250px}.ff_layout_section_sidebar{width:280px}.ff_layout_section_container,.ff_layout_section_sidebar{padding:24px}.fluent_activation_wrapper .fluentform_label{width:470px}}@media (max-width:768px){.form_internal_menu{margin-left:-10px}.form_internal_menu ul.ff_setting_menu{float:right;padding-right:10px!important}.form_internal_menu ul.ff_setting_menu li a{padding:10px 3px!important}.form_internal_menu .ff_form_name_inner{max-width:100px}.form_internal_menu #switchScreen{margin-right:0;margin-top:14px}.ff_nav_action{float:right!important;text-align:left!important}input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{min-height:30px}.ff_form_main_nav .plugin-name{display:none}.row-actions{display:inline-block!important}.el-form .el-form-item .el-form-item__label{width:100%!important}.el-form .el-form-item .el-form-item__content{margin-left:0!important}.el-tabs__content{padding:20px 10px!important}.wpf_each_entry a{word-break:break-all}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu{top:0!important}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{display:block}.form_internal_menu_inner{background:#fff;border-radius:8px;box-shadow:0 1px 10px rgba(0,0,0,.2);display:none;flex-direction:column;padding:20px;position:absolute;right:20px;top:38px;width:300px;z-index:9999}.form_internal_menu_inner.active{display:flex}.ff_form_name{padding-bottom:10px;padding-top:10px}.ff_screen_editor .form_internal_menu_inner .ff_menu,.form_internal_menu .ff-navigation-right{margin-left:0}.ff_menu{align-items:flex-start;flex-direction:column;margin-bottom:10px}.ff_menu li{width:100%}.ff_menu li a{display:block;max-width:100%!important}.form_internal_menu .ff-navigation-right{align-items:flex-start}.ff-navigation-right{flex-direction:column}.form_internal_menu .el-button,.form_internal_menu .ff_shortcode_btn{margin-bottom:10px;margin-right:0}.form_internal_menu .ff-navigation-right .ff_more_menu{bottom:0;right:0;top:auto;transform:translateY(0)}.ff_screen_conversational_design .ff_menu,.ff_screen_editor .ff_menu,.ff_screen_entries .ff_menu,.ff_screen_inventory_list .ff_menu,.ff_screen_msformentries .ff_menu,.ff_screen_settings .ff_menu{padding-left:0;padding-right:0}.ff_tools_wrap .ff_settings_sidebar_wrap{height:100%}.ff_settings_sidebar_wrap{flex-shrink:0;left:-240px;position:absolute;transition:.3s;z-index:999}.ff_settings_sidebar_wrap.active{left:-10px}.ff_settings_sidebar_wrap.active .ff_layout_section_sidebar{box-shadow:2px 1px 10px 0 rgba(30,31,33,.1)}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle{right:-18px}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle .ff-icon:before{content:"\e919"}.ff_sidebar_toggle{display:flex}.ff_header{margin-left:-10px;position:relative}.ff_header .global-search-menu-button{position:absolute;right:60px;top:12px}.conditional-logic{flex-direction:column}.conditional-logic>*{width:100%}.el-radio-button-group{border:0}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner,.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner,.el-radio-button-group .el-radio-button__inner{border-radius:4px}}@media (max-width:425px){label.el-checkbox{display:inline-flex}.el-checkbox__label{white-space:normal}.el-checkbox__input{line-height:1.6}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{margin-right:0}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right a,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right button,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right span{font-size:10px;margin:0 3px;padding:5px 4px!important}#ff_form_entries_app .ff_nav_top .ff_nav_action,#ff_form_entries_app .ff_nav_top .ff_nav_title{margin-bottom:10px;width:100%}.form_internal_menu{margin:0 -10px;width:auto}.form_internal_menu ul.ff_setting_menu li a{font-size:11px}.ff_form_application_container{margin-top:0!important}.ff_form_main_nav .ninja-tab{font-size:12px;margin:0;padding:10px 5px}ul.el-pager{display:none!important}button.el-button.pull-right{float:left!important}.entry_header h3{clear:both;display:block;width:100%!important}.v-row .v-col--33{margin-bottom:15px;padding-right:0;width:100%!important}.v-row .v-col--33:last-child{margin-bottom:0}.option-fields-section--content{padding:15px 5px}.ff-add-confirmation-wrap .el-radio.is-bordered{margin-bottom:10px;margin-right:10px}.ff-add-confirmation-wrap .el-radio.is-bordered+.el-radio.is-bordered{margin-left:0}.ff-form-item-flex{flex-wrap:wrap;gap:10px}.ff_pagination_wrap.mt-4{margin-top:0!important}.ff_pagination{flex-wrap:wrap;margin-top:24px}.ff_pagination .el-pagination__jump{margin:10px 0 0}.ff_all_entries .ff_section_head_content{margin-top:24px}.ff_all_entries .ff_section_head_content .ff_advanced_search{right:unset}.ff_all_entries .ff_entries_details .ff_section_head .lead-title{margin-bottom:10px!important}.ff_all_entries .ff_entries_details .ff_radio_group_wrap{margin-bottom:10px;margin-top:10px}.ff_all_entries .ff_entries_details .ff_radio_group_wrap .ff_radio_group_s2{width:100%}}.el-popover{text-align:left!important;word-break:inherit!important} assets/css/fluent-forms-admin.css000064400000027321147600120010013053 0ustar00.splitpanes{display:flex;height:100%;width:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;-moz-user-select:none;user-select:none}.splitpanes__pane{height:100%;overflow:hidden;width:100%}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{cursor:col-resize;min-width:1px}.splitpanes--horizontal>.splitpanes__splitter{cursor:row-resize;min-height:1px}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;box-sizing:border-box;flex-shrink:0;position:relative}.splitpanes.default-theme .splitpanes__splitter:after,.splitpanes.default-theme .splitpanes__splitter:before{background-color:#00000026;content:"";left:50%;position:absolute;top:50%;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:after,.splitpanes.default-theme .splitpanes__splitter:hover:before{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme .splitpanes--vertical>.splitpanes__splitter,.default-theme.splitpanes--vertical>.splitpanes__splitter{border-left:1px solid #eee;margin-left:-1px;width:7px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{height:30px;transform:translateY(-50%);width:1px}.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter,.default-theme.splitpanes--horizontal>.splitpanes__splitter{border-top:1px solid #eee;height:7px;margin-top:-1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{height:1px;transform:translate(-50%);width:30px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px} .v-row{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:left;margin-right:-15px}.v-row>[class*=v-col--]{box-sizing:border-box}.v-row .v-col--auto{width:100%}.v-row .v-col--100{padding-right:15px;width:100%}.v-row .v-col--100:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--100{width:100%}.v-row .v-col--95{padding-right:15px;width:95%}.v-row .v-col--95:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--95{width:95%}.v-row .v-col--90{padding-right:15px;width:90%}.v-row .v-col--90:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--90{width:90%}.v-row .v-col--85{padding-right:15px;width:85%}.v-row .v-col--85:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--85{width:85%}.v-row .v-col--80{padding-right:15px;width:80%}.v-row .v-col--80:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--80{width:80%}.v-row .v-col--75{padding-right:15px;width:75%}.v-row .v-col--75:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--75{width:75%}.v-row .v-col--70{padding-right:15px;width:70%}.v-row .v-col--70:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--70{width:70%}.v-row .v-col--66{padding-right:15px;width:66.66666666666666%}.v-row .v-col--66:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--66{width:66.66666666666666%}.v-row .v-col--65{padding-right:15px;width:65%}.v-row .v-col--65:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--65{width:65%}.v-row .v-col--60{padding-right:15px;width:60%}.v-row .v-col--60:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--60{width:60%}.v-row .v-col--55{padding-right:15px;width:55%}.v-row .v-col--55:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--55{width:55%}.v-row .v-col--50{padding-right:15px;width:50%}.v-row .v-col--50:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--50{width:50%}.v-row .v-col--45{padding-right:15px;width:45%}.v-row .v-col--45:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--45{width:45%}.v-row .v-col--40{padding-right:15px;width:40%}.v-row .v-col--40:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--40{width:40%}.v-row .v-col--35{padding-right:15px;width:35%}.v-row .v-col--35:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--35{width:35%}.v-row .v-col--33{padding-right:15px;width:33.333333333333336%}.v-row .v-col--33:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--33{width:33.333333333333336%}.v-row .v-col--30{padding-right:15px;width:30%}.v-row .v-col--30:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--30{width:30%}.v-row .v-col--25{padding-right:15px;width:25%}.v-row .v-col--25:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--25{width:25%}.v-row .v-col--20{padding-right:15px;width:20%}.v-row .v-col--20:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--20{width:20%}.v-row .v-col--15{padding-right:15px;width:15%}.v-row .v-col--15:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--15{width:15%}.v-row .v-col--10{padding-right:15px;width:10%}.v-row .v-col--10:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--10{width:10%}.v-row .v-col--5{padding-right:15px;width:5%}.v-row .v-col--5:last-child{padding-right:0}.v-row.v-row--no-gutter .v-col--5{width:5%}.v-row .v-col--auto:last-child,.v-row .v-col--auto:last-child~.v-col--auto{width:100%/1;width:100%}.v-row.v-row--no-gutter .v-col--auto:last-child,.v-row.v-row--no-gutter .v-col--auto:last-child~.v-col--auto{width:100%/1}.v-row .v-col--auto:nth-last-child(2),.v-row .v-col--auto:nth-last-child(2)~.v-col--auto{width:100%/2;width:calc(50% - 7.5px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(2),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(2)~.v-col--auto{width:100%/2}.v-row .v-col--auto:nth-last-child(3),.v-row .v-col--auto:nth-last-child(3)~.v-col--auto{width:100%/3;width:calc(33.33333% - 10px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(3),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(3)~.v-col--auto{width:100%/3}.v-row .v-col--auto:nth-last-child(4),.v-row .v-col--auto:nth-last-child(4)~.v-col--auto{width:100%/4;width:calc(25% - 11.25px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(4),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(4)~.v-col--auto{width:100%/4}.v-row .v-col--auto:nth-last-child(5),.v-row .v-col--auto:nth-last-child(5)~.v-col--auto{width:100%/5;width:calc(20% - 12px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(5),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(5)~.v-col--auto{width:100%/5}.v-row .v-col--auto:nth-last-child(6),.v-row .v-col--auto:nth-last-child(6)~.v-col--auto{width:100%/6;width:calc(16.66667% - 12.5px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(6),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(6)~.v-col--auto{width:100%/6}.v-row .v-col--auto:nth-last-child(7),.v-row .v-col--auto:nth-last-child(7)~.v-col--auto{width:100%/7;width:calc(14.28571% - 12.85714px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(7),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(7)~.v-col--auto{width:100%/7}.v-row .v-col--auto:nth-last-child(8),.v-row .v-col--auto:nth-last-child(8)~.v-col--auto{width:100%/8;width:calc(12.5% - 13.125px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(8),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(8)~.v-col--auto{width:100%/8}.v-row .v-col--auto:nth-last-child(9),.v-row .v-col--auto:nth-last-child(9)~.v-col--auto{width:100%/9;width:calc(11.11111% - 13.33333px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(9),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(9)~.v-col--auto{width:100%/9}.v-row .v-col--auto:nth-last-child(10),.v-row .v-col--auto:nth-last-child(10)~.v-col--auto{width:100%/10;width:calc(10% - 13.5px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(10),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(10)~.v-col--auto{width:100%/10}.v-row .v-col--auto:nth-last-child(11),.v-row .v-col--auto:nth-last-child(11)~.v-col--auto{width:100%/11;width:calc(9.09091% - 13.63636px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(11),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(11)~.v-col--auto{width:100%/11}.v-row .v-col--auto:nth-last-child(12),.v-row .v-col--auto:nth-last-child(12)~.v-col--auto{width:100%/12;width:calc(8.33333% - 13.75px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(12),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(12)~.v-col--auto{width:100%/12}.v-row .v-col--auto:nth-last-child(13),.v-row .v-col--auto:nth-last-child(13)~.v-col--auto{width:100%/13;width:calc(7.69231% - 13.84615px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(13),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(13)~.v-col--auto{width:100%/13}.v-row .v-col--auto:nth-last-child(14),.v-row .v-col--auto:nth-last-child(14)~.v-col--auto{width:100%/14;width:calc(7.14286% - 13.92857px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(14),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(14)~.v-col--auto{width:100%/14}.v-row .v-col--auto:nth-last-child(15),.v-row .v-col--auto:nth-last-child(15)~.v-col--auto{width:100%/15;width:calc(6.66667% - 14px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(15),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(15)~.v-col--auto{width:100%/15}.v-row .v-col--auto:nth-last-child(16),.v-row .v-col--auto:nth-last-child(16)~.v-col--auto{width:100%/16;width:calc(6.25% - 14.0625px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(16),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(16)~.v-col--auto{width:100%/16}.v-row .v-col--auto:nth-last-child(17),.v-row .v-col--auto:nth-last-child(17)~.v-col--auto{width:100%/17;width:calc(5.88235% - 14.11765px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(17),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(17)~.v-col--auto{width:100%/17}.v-row .v-col--auto:nth-last-child(18),.v-row .v-col--auto:nth-last-child(18)~.v-col--auto{width:100%/18;width:calc(5.55556% - 14.16667px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(18),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(18)~.v-col--auto{width:100%/18}.v-row .v-col--auto:nth-last-child(19),.v-row .v-col--auto:nth-last-child(19)~.v-col--auto{width:100%/19;width:calc(5.26316% - 14.21053px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(19),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(19)~.v-col--auto{width:100%/19}.v-row .v-col--auto:nth-last-child(20),.v-row .v-col--auto:nth-last-child(20)~.v-col--auto{width:100%/20;width:calc(5% - 14.25px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(20),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(20)~.v-col--auto{width:100%/20}.v-row .v-col--auto:nth-last-child(21),.v-row .v-col--auto:nth-last-child(21)~.v-col--auto{width:100%/21;width:calc(4.7619% - 14.28571px)}.v-row.v-row--no-gutter .v-col--auto:nth-last-child(21),.v-row.v-row--no-gutter .v-col--auto:nth-last-child(21)~.v-col--auto{width:100%/21}.default-theme.splitpanes .splitpanes__splitter{border-left:none}.splitpanes.default-theme .splitpanes__pane{background-color:transparent} assets/css/fluent-forms-admin-sass-rtl.css000064400000351350147600120010014623 0ustar00/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none} @font-face{font-display:"auto";font-family:element-icons;font-style:normal;font-weight:400;src:url(../fonts/element-icons.woff?313f7dacf2076822059d2dca26dedfc6) format("woff"),url(../fonts/element-icons.ttf?4520188144a17fb24a6af28a70dae0ce) format("truetype")}[class*=" el-icon-"],[class^=el-icon-]{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:element-icons!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;vertical-align:baseline}.el-icon-ice-cream-round:before{content:"\e6a0"}.el-icon-ice-cream-square:before{content:"\e6a3"}.el-icon-lollipop:before{content:"\e6a4"}.el-icon-potato-strips:before{content:"\e6a5"}.el-icon-milk-tea:before{content:"\e6a6"}.el-icon-ice-drink:before{content:"\e6a7"}.el-icon-ice-tea:before{content:"\e6a9"}.el-icon-coffee:before{content:"\e6aa"}.el-icon-orange:before{content:"\e6ab"}.el-icon-pear:before{content:"\e6ac"}.el-icon-apple:before{content:"\e6ad"}.el-icon-cherry:before{content:"\e6ae"}.el-icon-watermelon:before{content:"\e6af"}.el-icon-grape:before{content:"\e6b0"}.el-icon-refrigerator:before{content:"\e6b1"}.el-icon-goblet-square-full:before{content:"\e6b2"}.el-icon-goblet-square:before{content:"\e6b3"}.el-icon-goblet-full:before{content:"\e6b4"}.el-icon-goblet:before{content:"\e6b5"}.el-icon-cold-drink:before{content:"\e6b6"}.el-icon-coffee-cup:before{content:"\e6b8"}.el-icon-water-cup:before{content:"\e6b9"}.el-icon-hot-water:before{content:"\e6ba"}.el-icon-ice-cream:before{content:"\e6bb"}.el-icon-dessert:before{content:"\e6bc"}.el-icon-sugar:before{content:"\e6bd"}.el-icon-tableware:before{content:"\e6be"}.el-icon-burger:before{content:"\e6bf"}.el-icon-knife-fork:before{content:"\e6c1"}.el-icon-fork-spoon:before{content:"\e6c2"}.el-icon-chicken:before{content:"\e6c3"}.el-icon-food:before{content:"\e6c4"}.el-icon-dish-1:before{content:"\e6c5"}.el-icon-dish:before{content:"\e6c6"}.el-icon-moon-night:before{content:"\e6ee"}.el-icon-moon:before{content:"\e6f0"}.el-icon-cloudy-and-sunny:before{content:"\e6f1"}.el-icon-partly-cloudy:before{content:"\e6f2"}.el-icon-cloudy:before{content:"\e6f3"}.el-icon-sunny:before{content:"\e6f6"}.el-icon-sunset:before{content:"\e6f7"}.el-icon-sunrise-1:before{content:"\e6f8"}.el-icon-sunrise:before{content:"\e6f9"}.el-icon-heavy-rain:before{content:"\e6fa"}.el-icon-lightning:before{content:"\e6fb"}.el-icon-light-rain:before{content:"\e6fc"}.el-icon-wind-power:before{content:"\e6fd"}.el-icon-baseball:before{content:"\e712"}.el-icon-soccer:before{content:"\e713"}.el-icon-football:before{content:"\e715"}.el-icon-basketball:before{content:"\e716"}.el-icon-ship:before{content:"\e73f"}.el-icon-truck:before{content:"\e740"}.el-icon-bicycle:before{content:"\e741"}.el-icon-mobile-phone:before{content:"\e6d3"}.el-icon-service:before{content:"\e6d4"}.el-icon-key:before{content:"\e6e2"}.el-icon-unlock:before{content:"\e6e4"}.el-icon-lock:before{content:"\e6e5"}.el-icon-watch:before{content:"\e6fe"}.el-icon-watch-1:before{content:"\e6ff"}.el-icon-timer:before{content:"\e702"}.el-icon-alarm-clock:before{content:"\e703"}.el-icon-map-location:before{content:"\e704"}.el-icon-delete-location:before{content:"\e705"}.el-icon-add-location:before{content:"\e706"}.el-icon-location-information:before{content:"\e707"}.el-icon-location-outline:before{content:"\e708"}.el-icon-location:before{content:"\e79e"}.el-icon-place:before{content:"\e709"}.el-icon-discover:before{content:"\e70a"}.el-icon-first-aid-kit:before{content:"\e70b"}.el-icon-trophy-1:before{content:"\e70c"}.el-icon-trophy:before{content:"\e70d"}.el-icon-medal:before{content:"\e70e"}.el-icon-medal-1:before{content:"\e70f"}.el-icon-stopwatch:before{content:"\e710"}.el-icon-mic:before{content:"\e711"}.el-icon-copy-document:before{content:"\e718"}.el-icon-full-screen:before{content:"\e719"}.el-icon-switch-button:before{content:"\e71b"}.el-icon-aim:before{content:"\e71c"}.el-icon-crop:before{content:"\e71d"}.el-icon-odometer:before{content:"\e71e"}.el-icon-time:before{content:"\e71f"}.el-icon-bangzhu:before{content:"\e724"}.el-icon-close-notification:before{content:"\e726"}.el-icon-microphone:before{content:"\e727"}.el-icon-turn-off-microphone:before{content:"\e728"}.el-icon-position:before{content:"\e729"}.el-icon-postcard:before{content:"\e72a"}.el-icon-message:before{content:"\e72b"}.el-icon-chat-line-square:before{content:"\e72d"}.el-icon-chat-dot-square:before{content:"\e72e"}.el-icon-chat-dot-round:before{content:"\e72f"}.el-icon-chat-square:before{content:"\e730"}.el-icon-chat-line-round:before{content:"\e731"}.el-icon-chat-round:before{content:"\e732"}.el-icon-set-up:before{content:"\e733"}.el-icon-turn-off:before{content:"\e734"}.el-icon-open:before{content:"\e735"}.el-icon-connection:before{content:"\e736"}.el-icon-link:before{content:"\e737"}.el-icon-cpu:before{content:"\e738"}.el-icon-thumb:before{content:"\e739"}.el-icon-female:before{content:"\e73a"}.el-icon-male:before{content:"\e73b"}.el-icon-guide:before{content:"\e73c"}.el-icon-news:before{content:"\e73e"}.el-icon-price-tag:before{content:"\e744"}.el-icon-discount:before{content:"\e745"}.el-icon-wallet:before{content:"\e747"}.el-icon-coin:before{content:"\e748"}.el-icon-money:before{content:"\e749"}.el-icon-bank-card:before{content:"\e74a"}.el-icon-box:before{content:"\e74b"}.el-icon-present:before{content:"\e74c"}.el-icon-sell:before{content:"\e6d5"}.el-icon-sold-out:before{content:"\e6d6"}.el-icon-shopping-bag-2:before{content:"\e74d"}.el-icon-shopping-bag-1:before{content:"\e74e"}.el-icon-shopping-cart-2:before{content:"\e74f"}.el-icon-shopping-cart-1:before{content:"\e750"}.el-icon-shopping-cart-full:before{content:"\e751"}.el-icon-smoking:before{content:"\e752"}.el-icon-no-smoking:before{content:"\e753"}.el-icon-house:before{content:"\e754"}.el-icon-table-lamp:before{content:"\e755"}.el-icon-school:before{content:"\e756"}.el-icon-office-building:before{content:"\e757"}.el-icon-toilet-paper:before{content:"\e758"}.el-icon-notebook-2:before{content:"\e759"}.el-icon-notebook-1:before{content:"\e75a"}.el-icon-files:before{content:"\e75b"}.el-icon-collection:before{content:"\e75c"}.el-icon-receiving:before{content:"\e75d"}.el-icon-suitcase-1:before{content:"\e760"}.el-icon-suitcase:before{content:"\e761"}.el-icon-film:before{content:"\e763"}.el-icon-collection-tag:before{content:"\e765"}.el-icon-data-analysis:before{content:"\e766"}.el-icon-pie-chart:before{content:"\e767"}.el-icon-data-board:before{content:"\e768"}.el-icon-data-line:before{content:"\e76d"}.el-icon-reading:before{content:"\e769"}.el-icon-magic-stick:before{content:"\e76a"}.el-icon-coordinate:before{content:"\e76b"}.el-icon-mouse:before{content:"\e76c"}.el-icon-brush:before{content:"\e76e"}.el-icon-headset:before{content:"\e76f"}.el-icon-umbrella:before{content:"\e770"}.el-icon-scissors:before{content:"\e771"}.el-icon-mobile:before{content:"\e773"}.el-icon-attract:before{content:"\e774"}.el-icon-monitor:before{content:"\e775"}.el-icon-search:before{content:"\e778"}.el-icon-takeaway-box:before{content:"\e77a"}.el-icon-paperclip:before{content:"\e77d"}.el-icon-printer:before{content:"\e77e"}.el-icon-document-add:before{content:"\e782"}.el-icon-document:before{content:"\e785"}.el-icon-document-checked:before{content:"\e786"}.el-icon-document-copy:before{content:"\e787"}.el-icon-document-delete:before{content:"\e788"}.el-icon-document-remove:before{content:"\e789"}.el-icon-tickets:before{content:"\e78b"}.el-icon-folder-checked:before{content:"\e77f"}.el-icon-folder-delete:before{content:"\e780"}.el-icon-folder-remove:before{content:"\e781"}.el-icon-folder-add:before{content:"\e783"}.el-icon-folder-opened:before{content:"\e784"}.el-icon-folder:before{content:"\e78a"}.el-icon-edit-outline:before{content:"\e764"}.el-icon-edit:before{content:"\e78c"}.el-icon-date:before{content:"\e78e"}.el-icon-c-scale-to-original:before{content:"\e7c6"}.el-icon-view:before{content:"\e6ce"}.el-icon-loading:before{content:"\e6cf"}.el-icon-rank:before{content:"\e6d1"}.el-icon-sort-down:before{content:"\e7c4"}.el-icon-sort-up:before{content:"\e7c5"}.el-icon-sort:before{content:"\e6d2"}.el-icon-finished:before{content:"\e6cd"}.el-icon-refresh-left:before{content:"\e6c7"}.el-icon-refresh-right:before{content:"\e6c8"}.el-icon-refresh:before{content:"\e6d0"}.el-icon-video-play:before{content:"\e7c0"}.el-icon-video-pause:before{content:"\e7c1"}.el-icon-d-arrow-right:before{content:"\e6dc"}.el-icon-d-arrow-left:before{content:"\e6dd"}.el-icon-arrow-up:before{content:"\e6e1"}.el-icon-arrow-down:before{content:"\e6df"}.el-icon-arrow-right:before{content:"\e6e0"}.el-icon-arrow-left:before{content:"\e6de"}.el-icon-top-right:before{content:"\e6e7"}.el-icon-top-left:before{content:"\e6e8"}.el-icon-top:before{content:"\e6e6"}.el-icon-bottom:before{content:"\e6eb"}.el-icon-right:before{content:"\e6e9"}.el-icon-back:before{content:"\e6ea"}.el-icon-bottom-right:before{content:"\e6ec"}.el-icon-bottom-left:before{content:"\e6ed"}.el-icon-caret-top:before{content:"\e78f"}.el-icon-caret-bottom:before{content:"\e790"}.el-icon-caret-right:before{content:"\e791"}.el-icon-caret-left:before{content:"\e792"}.el-icon-d-caret:before{content:"\e79a"}.el-icon-share:before{content:"\e793"}.el-icon-menu:before{content:"\e798"}.el-icon-s-grid:before{content:"\e7a6"}.el-icon-s-check:before{content:"\e7a7"}.el-icon-s-data:before{content:"\e7a8"}.el-icon-s-opportunity:before{content:"\e7aa"}.el-icon-s-custom:before{content:"\e7ab"}.el-icon-s-claim:before{content:"\e7ad"}.el-icon-s-finance:before{content:"\e7ae"}.el-icon-s-comment:before{content:"\e7af"}.el-icon-s-flag:before{content:"\e7b0"}.el-icon-s-marketing:before{content:"\e7b1"}.el-icon-s-shop:before{content:"\e7b4"}.el-icon-s-open:before{content:"\e7b5"}.el-icon-s-management:before{content:"\e7b6"}.el-icon-s-ticket:before{content:"\e7b7"}.el-icon-s-release:before{content:"\e7b8"}.el-icon-s-home:before{content:"\e7b9"}.el-icon-s-promotion:before{content:"\e7ba"}.el-icon-s-operation:before{content:"\e7bb"}.el-icon-s-unfold:before{content:"\e7bc"}.el-icon-s-fold:before{content:"\e7a9"}.el-icon-s-platform:before{content:"\e7bd"}.el-icon-s-order:before{content:"\e7be"}.el-icon-s-cooperation:before{content:"\e7bf"}.el-icon-bell:before{content:"\e725"}.el-icon-message-solid:before{content:"\e799"}.el-icon-video-camera:before{content:"\e772"}.el-icon-video-camera-solid:before{content:"\e796"}.el-icon-camera:before{content:"\e779"}.el-icon-camera-solid:before{content:"\e79b"}.el-icon-download:before{content:"\e77c"}.el-icon-upload2:before{content:"\e77b"}.el-icon-upload:before{content:"\e7c3"}.el-icon-picture-outline-round:before{content:"\e75f"}.el-icon-picture-outline:before{content:"\e75e"}.el-icon-picture:before{content:"\e79f"}.el-icon-close:before{content:"\e6db"}.el-icon-check:before{content:"\e6da"}.el-icon-plus:before{content:"\e6d9"}.el-icon-minus:before{content:"\e6d8"}.el-icon-help:before{content:"\e73d"}.el-icon-s-help:before{content:"\e7b3"}.el-icon-circle-close:before{content:"\e78d"}.el-icon-circle-check:before{content:"\e720"}.el-icon-circle-plus-outline:before{content:"\e723"}.el-icon-remove-outline:before{content:"\e722"}.el-icon-zoom-out:before{content:"\e776"}.el-icon-zoom-in:before{content:"\e777"}.el-icon-error:before{content:"\e79d"}.el-icon-success:before{content:"\e79c"}.el-icon-circle-plus:before{content:"\e7a0"}.el-icon-remove:before{content:"\e7a2"}.el-icon-info:before{content:"\e7a1"}.el-icon-question:before{content:"\e7a4"}.el-icon-warning-outline:before{content:"\e6c9"}.el-icon-warning:before{content:"\e7a3"}.el-icon-goods:before{content:"\e7c2"}.el-icon-s-goods:before{content:"\e7b2"}.el-icon-star-off:before{content:"\e717"}.el-icon-star-on:before{content:"\e797"}.el-icon-more-outline:before{content:"\e6cc"}.el-icon-more:before{content:"\e794"}.el-icon-phone-outline:before{content:"\e6cb"}.el-icon-phone:before{content:"\e795"}.el-icon-user:before{content:"\e6e3"}.el-icon-user-solid:before{content:"\e7a5"}.el-icon-setting:before{content:"\e6ca"}.el-icon-s-tools:before{content:"\e7ac"}.el-icon-delete:before{content:"\e6d7"}.el-icon-delete-solid:before{content:"\e7c9"}.el-icon-eleme:before{content:"\e7c7"}.el-icon-platform-eleme:before{content:"\e7ca"}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-right:5px}.el-icon--left{margin-left:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(-1turn)}} @font-face{font-family:fluentform;font-style:normal;font-weight:400;src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd);src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd?#iefix) format("embedded-opentype"),url(../fonts/fluentform.woff?31c9335ad614611f342d70917260470e) format("woff"),url(../fonts/fluentform.ttf?5fd4a17c106b6a8cae5c741ddbbe132c) format("truetype"),url(../fonts/fluentform.svg?1d0875320e0e3980ae21f2d18c21897a#fluentform) format("svg")}[data-icon]:before{content:attr(data-icon)}[class*=" icon-"]:before,[class^=icon-]:before,[data-icon]:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:fluentform!important;font-style:normal!important;font-variant:normal!important;font-weight:400!important;line-height:1;text-transform:none!important}.icon-trash-o:before{content:"\e000"}.icon-pencil:before{content:"\e001"}.icon-clone:before{content:"\e002"}.icon-arrows:before{content:"\e003"}.icon-user:before{content:"\e004"}.icon-text-width:before{content:"\e005"}.icon-unlock-alt:before{content:"\e006"}.icon-paragraph:before{content:"\e007"}.icon-columns:before{content:"\e008"}.icon-plus-circle:before{content:"\e009"}.icon-minus-circle:before{content:"\e00a"}.icon-link:before{content:"\e00b"}.icon-envelope-o:before{content:"\e00c"}.icon-caret-square-o-down:before{content:"\e00d"}.icon-list-ul:before{content:"\e00e"}.icon-dot-circle-o:before{content:"\e00f"}.icon-check-square-o:before{content:"\e010"}.icon-eye-slash:before{content:"\e011"}.icon-picture-o:before{content:"\e012"}.icon-calendar-o:before{content:"\e013"}.icon-upload:before{content:"\e014"}.icon-globe:before{content:"\e015"}.icon-pound:before{content:"\e016"}.icon-map-marker:before{content:"\e017"}.icon-credit-card:before{content:"\e018"}.icon-step-forward:before{content:"\e019"}.icon-code:before{content:"\e01a"}.icon-html5:before{content:"\e01b"}.icon-qrcode:before{content:"\e01c"}.icon-certificate:before{content:"\e01d"}.icon-star-half-o:before{content:"\e01e"}.icon-eye:before{content:"\e01f"}.icon-save:before{content:"\e020"}.icon-puzzle-piece:before{content:"\e021"}.icon-slack:before{content:"\e022"}.icon-trash:before{content:"\e023"}.icon-lock:before{content:"\e024"}.icon-chevron-down:before{content:"\e025"}.icon-chevron-up:before{content:"\e026"}.icon-chevron-right:before{content:"\e027"}.icon-chevron-left:before{content:"\e028"}.icon-circle-o:before{content:"\e029"}.icon-cog:before{content:"\e02a"}.icon-info:before{content:"\e02c"}.icon-info-circle:before{content:"\e02b"}.icon-ink-pen:before{content:"\e02d"}.icon-keyboard-o:before{content:"\e02e"} @font-face{font-family:fluentformeditors;font-style:normal;font-weight:400;src:url(../fonts/fluentformeditors.eot?695c683f9bdc8870085152aeae450705);src:url(../fonts/fluentformeditors.eot?695c683f9bdc8870085152aeae450705?#iefix) format("embedded-opentype"),url(../fonts/fluentformeditors.woff?b6a6f9b1e3cb2d1ffcae94da6c41267c) format("woff"),url(../fonts/fluentformeditors.ttf?53ded98b085397a9b532636159850690) format("truetype"),url(../fonts/fluentformeditors.svg?cba12fd827161d89bb293c99497b6f8d#fluentformeditors) format("svg")}[class*=" ff-edit-"]:before,[class^=ff-edit-]:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:fluentformeditors!important;font-style:normal!important;font-variant:normal!important;font-weight:400!important;line-height:1;text-transform:none!important}.ff-icon-lock:before{font-size:30px}.ff-edit-column-2:before{content:"\62"}.ff-edit-rating:before{content:"\63"}.ff-edit-checkable-grid:before{content:"\64"}.ff-edit-hidden-field:before{content:"\65"}.ff-edit-section-break:before{content:"\66"}.ff-edit-recaptha:before{content:"\67"}.ff-edit-html:before{content:"\68"}.ff-edit-shortcode:before{content:"\69"}.ff-edit-terms-condition:before{content:"\6a"}.ff-edit-action-hook:before{content:"\6b"}.ff-edit-step:before{content:"\6c"}.ff-edit-name:before{content:"\6d"}.ff-edit-email:before{content:"\6e"}.ff-edit-text:before{content:"\6f"}.ff-edit-mask:before{content:"\70"}.ff-edit-textarea:before{content:"\71"}.ff-edit-address:before{content:"\72"}.ff-edit-country:before{content:"\73"}.ff-edit-dropdown:before{content:"\75"}.ff-edit-radio:before{content:"\76"}.ff-edit-checkbox-1:before{content:"\77"}.ff-edit-multiple-choice:before{content:"\78"}.ff-edit-website-url:before{content:"\79"}.ff-edit-password:before{content:"\7a"}.ff-edit-date:before{content:"\41"}.ff-edit-files:before{content:"\42"}.ff-edit-images:before{content:"\43"}.ff-edit-gdpr:before{content:"\45"}.ff-edit-three-column:before{content:"\47"}.ff-edit-repeat:before{content:"\46"}.ff-edit-numeric:before{content:"\74"}.ff-edit-credit-card:before{content:"\61"}.ff-edit-keyboard-o:before{content:"\44"}.ff-edit-shopping-cart:before{content:"\48"}.ff-edit-link:before{content:"\49"}.ff-edit-ios-cart-outline:before{content:"\4a"}.ff-edit-tint:before{content:"\4b"} .mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-3{margin-top:16px!important}.mt-4{margin-top:24px!important}.mt-5{margin-top:32px!important}.mt-6{margin-top:40px!important}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.mb-3{margin-bottom:16px!important}.mb-4{margin-bottom:24px!important}.mb-5{margin-bottom:32px!important}.mb-6{margin-bottom:40px!important}.mr-1{margin-left:4px!important}.mr-2{margin-left:8px!important}.mr-3{margin-left:16px!important}.mr-4{margin-left:24px!important}.mr-5{margin-left:32px!important}.mr-6{margin-left:40px!important}.ml-1{margin-right:4px!important}.ml-2{margin-right:8px!important}.ml-3{margin-right:16px!important}.ml-4{margin-right:24px!important}.ml-5{margin-right:32px!important}.ml-6{margin-right:40px!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.mr-0{margin-left:0!important}.ml-0{margin-right:0!important}.ff_list_button_item:not(:last-child){margin-bottom:4px}.ff_list_button_item.active .ff_list_button_link{background-color:#4b4c4d;color:#fff}.ff_list_button_item.has_sub_menu .ff_list_button_link{position:relative}.ff_list_button_item.has_sub_menu .ff_list_button_link:after{content:"\e6df";font-family:element-icons;position:absolute;left:15px;transition:.3s}.ff_list_button_item.has_sub_menu.is-submenu{color:inherit;font-style:inherit;font-weight:inherit;margin-right:0}.ff_list_button_item.has_sub_menu.is-submenu .ff_list_button_link:after{transform:rotate(180deg)}.ff_list_button_link{background-color:transparent;border-radius:5px;color:#1e1f21;display:block;font-size:16px;padding:12px 18px;transition:.2s}.ff_list_button_link:hover{background-color:#f5f5f3;color:#1e1f21}.ff_list_button_small .ff_list_button_link{border-radius:6px;font-size:15px;padding:6px 14px}.ff_list_button_s1 .ff_list_button_item.active .ff_list_button_link{background-color:#f5f5f3;color:#1e1f21;font-weight:600}.ff_list_button_s1 .ff_list_button_link{color:#606266;font-size:15px}.ff_list li:not(:last-child){margin-bottom:12px}.ff_list li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list li a:hover{color:#1a7efb}.ff_list_submenu{background-color:#fff;display:none;margin-right:20px;margin-top:10px;position:relative}.ff_list_submenu:after{background-color:#e4e2df;content:"";height:100%;right:0;position:absolute;top:0;width:2px}.ff_list_submenu li{position:relative}.ff_list_submenu li:after{background-image:url(../images/curve-line.svg?ad01d82f4c085066c0a3accc820c65ac);background-repeat:no-repeat;content:"";height:10px;right:0;position:absolute;top:50%;transform:translateY(-50%);width:12px}.ff_list_submenu li:last-child:before{background-color:#fff;bottom:0;content:"";height:18px;right:0;position:absolute;width:2px;z-index:1}.ff_list_submenu li a{border-radius:6px;color:#606266;display:block;font-size:15px;margin-right:15px;max-width:197px;overflow:hidden;padding:10px;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_list_submenu li a:hover{background-color:#efefef}.ff_list_submenu li.active a{background-color:#efefef;color:#1e1f21}.ff_list_border_bottom>li{font-size:15px;position:relative}.ff_list_border_bottom>li:not(:last-child){border-bottom:1px solid #ececec;margin-bottom:12px;padding-bottom:12px}.ff_list_border_bottom>li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list_border_bottom>li a.lead-text{color:#1a7efb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_list_border_bottom>li a.lead-text.lead-url{white-space:unset;word-break:break-all}.ff_submission_info_list li{display:flex}.ff_submission_info_list .lead-title{flex-shrink:0;width:120px}.ff_submission_info_list .truncate{max-width:228px}.el-button--upload{border-style:dashed;justify-content:center;padding:24px;width:100%}.el-button--upload .el-icon{font-size:22px}.ff_file_upload_result{align-items:center;background-color:#fafafa;border:1px solid #f2f2f2;border-radius:8px;display:flex;overflow:hidden;padding:10px;position:relative}.ff_file_upload_result .el-button{position:absolute;left:10px;top:50%;transform:translateY(-50%)}.ff_file_upload_result+.ff_file_upload_result{margin-top:10px}.ff_file_upload_preview{height:44px;width:44px}.ff_file_upload_preview img{border-radius:4px;height:100%;-o-object-fit:cover;object-fit:cover;width:44px}.ff_file_upload_preview+.ff_file_upload_data{margin-right:15px}.ff_file_upload_description{color:#1e1f21;font-size:14px}.ff_file_upload_size{font-size:12px;margin-top:4px}body{background-color:#f2f2f2;color:#606266}#wpcontent{padding-right:0}#wpbody-content *{box-sizing:border-box}h1,h2,h3,h4,h5,h6{color:#1e1f21;margin:0}ol,ul{list-style:none;margin:0;padding:0}h1{font-size:24px}h2{font-size:23px}h3{font-size:22px;line-height:1.4}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}p{font-size:15px}p:last-child{margin:0}hr{border-bottom-color:#ececec;border-top:0}dd,li{margin-bottom:0}a{color:#1a7efb;font-weight:400;text-decoration:none}a:focus{box-shadow:none;outline:none}a:hover{color:#1a7efb}.notice,div.error,div.updated{margin:8px 24px 2px}.fluentform-admin-notice.notice-error{margin:8px 24px;padding:10px 20px}.fluentform-admin-notice.notice-error h3{font-size:18px;margin:10px 0}.ff_form_wrap_area .fluentform-admin-notice{margin:8px 0}.ff_backdrop{background:rgba(0,0,0,.5);bottom:0;right:0;position:fixed;left:0;top:0;z-index:999999999}.w-100{width:100%!important}.ff-mw-100{max-width:100%!important}.h-100{height:100%!important}.ff_form_wrap{padding:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{-webkit-appearance:none;background-color:#fff;border-color:#dadbdd;border-radius:7px;box-shadow:none;color:#606266;padding:0 15px}input[type=color]:focus,input[type=color]:hover,input[type=date]:focus,input[type=date]:hover,input[type=datetime-local]:focus,input[type=datetime-local]:hover,input[type=datetime]:focus,input[type=datetime]:hover,input[type=email]:focus,input[type=email]:hover,input[type=month]:focus,input[type=month]:hover,input[type=number]:focus,input[type=number]:hover,input[type=password]:focus,input[type=password]:hover,input[type=search]:focus,input[type=search]:hover,input[type=tel]:focus,input[type=tel]:hover,input[type=text]:focus,input[type=text]:hover,input[type=time]:focus,input[type=time]:hover,input[type=url]:focus,input[type=url]:hover,input[type=week]:focus,input[type=week]:hover,textarea:focus,textarea:hover{border-color:#1a7efb!important}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{box-shadow:none}input[type=number]{padding-left:0}input[type=checkbox]:disabled{opacity:0}.ff-select{-webkit-appearance:none!important;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat left 14px top 55%!important;background-blend-mode:hard-light;background-size:16px 16px!important;border:1px solid #dadbdd!important;border-radius:7px!important;box-sizing:border-box!important;color:#606266!important;display:inline-block!important;height:40px!important;line-height:40px!important;max-width:inherit!important;outline:0!important;outline:none!important;padding:0 20px 0 29px!important;text-overflow:ellipsis;transition:border-color .2s cubic-bezier(.645,.045,.355,1)!important}.ff-select:focus{box-shadow:none!important;outline:none!important}.ff-select-block{display:block;width:100%}.ff-select-small{background-position-x:38px!important;border-radius:5px!important;height:32px!important;line-height:32px!important;padding-right:10px!important;padding-left:24px!important}.ff-select-small.condition-field,.ff-select-small.condition-operator,.ff-select-small.condition-value{background-position-x:10%!important}.ff_filter_selected{background-color:#e8f2ff;border-color:#bad8fe;color:#1a7efb}p{margin-bottom:10px;margin-top:0}.icon{display:inline-block;font:normal normal normal 14px/1 ultimateform}.el-input--prefix .el-input__inner{padding-right:38px}.el-input__prefix{right:12px}.ff-icon+span,span+.ff-icon{margin-right:6px}.d-flex{display:flex}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.text-primary{color:#1a7efb!important}.text-secondary{color:#606266!important}.text-danger{color:#ff6154!important}.text-success{color:#00b27f!important}.text-warning{color:#fcbe2d!important}.text-dark{color:#1e1f21!important}.flex-grow-1{flex:1}.mr15{margin-left:15px}.mb15{margin-bottom:15px}.pull-left{float:right!important}.pull-right{float:left!important}.text-left{text-align:right}.text-center{text-align:center}.el-icon-clickable{cursor:pointer}.help-text{font-size:.9em;font-style:italic;margin:0}.fs-17{font-size:17px!important}.fs-15{font-size:15px!important}.fs-14{font-size:14px!important}.fs-13{font-size:13px!important}.text-note{color:#606266;font-size:13px;font-weight:400}.ff-disabled{opacity:.5;pointer-events:none}.mx-auto{margin-right:auto;margin-left:auto}.img-thumb{border:1px solid #ececec;border-radius:8px}.lead-title{color:#1e1f21;display:block;font-size:15px;font-weight:500;transition:.2s}.lead-text{color:#606266;font-size:13px}a.lead-text{color:#1a7efb}.btn{background-image:none;border:1px solid transparent;border-radius:4px;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1.42857143;margin-bottom:0;padding:6px 12px;text-align:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.btn-primary{background-color:#337ab7;border-color:#2e6da4;color:#fff}.btn-primary:hover{background-color:#286090;border-color:#204d74;color:#fff}.btn-block{width:100%}.clearfix:after,.clearfix:before,.form-editor:after,.form-editor:before{content:" ";display:table}.clearfix:after,.form-editor:after{clear:both}.el-notification__content p{text-align:right}.label-lh-1-5 label{line-height:1.5}.ff_header{background:#fff;border-bottom:1px solid #ececec;display:flex;flex-direction:column;padding:10px 24px}.ff_header_group{align-items:center;display:flex;justify-content:space-between}.ff_header .plugin-name{height:30px}.ff_header .plugin-name img{height:100%}.ff_header .global-search-menu-button{background-color:transparent;border:0;border-radius:6px;color:rgba(60,60,60,.702);cursor:pointer;display:inline-block;font-size:15px;font-weight:400;line-height:1.6;margin:0 auto 0 0;padding:0 5px 0 0;transition:all .3s}.ff_header .global-search-menu-button .el-icon-search{font-size:16px;font-weight:600}.ff_header .global-search-menu-button .shortcut{border-radius:4px;box-shadow:0 2px 3px 0 rgba(32,33,36,.15);font-size:12px;letter-spacing:3px;padding:5px 8px;transition:all .3s}.ff_header .global-search-menu-button:hover{color:#353537}.ff_header .global-search-menu-button:hover .shortcut{border-color:#1a7efb;color:#1a7efb}.ff_header .global-search-menu-button span{margin-right:5px}.ff_row{display:flex;flex-wrap:wrap}.el-dialog{padding:24px 30px}.el-dialog__headerbtn{background-color:#fafafa;border-radius:50%;font-size:1.25rem;height:2rem;left:22px;top:18px;transition:.2s;width:2rem}.el-dialog__headerbtn .el-dialog__close{color:#1e1f21}.el-dialog__headerbtn:hover{background-color:#ececec}.el-dialog__headerbtn:hover .el-dialog__close{color:#1e1f21}.el-dialog__header{border-bottom:1px solid #ececec;padding:0 0 24px}.el-dialog__header h4{font-weight:500}.el-dialog__body,.el-dialog__footer{padding:0}.el-dialog__footer .has-separator{border-top:1px solid #ececec;padding-top:20px}.el-dialog,.el-popover{border-radius:8px}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__header{border:0;padding:0}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__body .el-row{align-content:center;align-items:center;display:flex;justify-content:center}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__headerbtn{z-index:1}.form-editor .disabled-info .el-dialog__wrapper h3{font-size:1.5em}.form-editor .disabled-info .el-dialog__wrapper p{font-size:16px}.form-editor .disabled-info .el-dialog__wrapper img{width:100%}.ff_nav_top{display:block;margin-bottom:15px;overflow:hidden;width:100%}.ff_nav_top .ff_nav_title{float:right;width:50%}.ff_nav_top .ff_nav_title h3{float:right;line-height:28px;margin:0;padding:0}.ff_nav_top .ff_nav_title .ff_nav_sub_actions{display:inline-block;margin-right:20px}.ff_nav_top .ff_nav_action{float:right;text-align:left;width:50%}.ff_nav_top .ff_search_inline{display:inline-block;text-align:left;width:200px}.ff_nav_top.ff_advanced_search{background:#fff;border-radius:5px;padding:10px 20px}.ff_global_notices{box-sizing:border-box;display:block;margin-top:20px;overflow:hidden;width:100%}.ff_global_notices .ff_global_notice{background:#fff;border:1px solid transparent;border-radius:.25rem;display:block;margin-bottom:1rem;margin-left:20px;padding:.75rem 1.25rem;position:relative}.ff_global_notices .ff_global_notice.ff_notice_error{background-color:#fff3cd;border-color:#ffeeba;color:#856404}.ff_global_notices .ff_global_notice.ff_notice_success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.el-select-dropdown.el-popper{z-index:99999999999!important}ul.ff_entry_list{list-style:disc;margin-right:20px}span.ff_new_badge{background:#ff4747;border-radius:4px;color:#fff;font-size:11px;line-height:100%;margin-right:5px;padding:0 5px 3px;vertical-align:super}label.el-checkbox,label.el-radio{display:inline-block}.el-time-spinner__list .el-time-spinner__item{margin-bottom:0!important}.ff_card_block{background:#f2f2f2;border-radius:8px;padding:20px}.ff_card_block_head{border-bottom:1px solid #e3e3e3;margin-bottom:20px;padding-bottom:15px}.ff_card_block h3{margin:0 0 15px;padding:0}.videoWrapper{height:0;padding-bottom:56.25%;position:relative}.videoWrapper iframe{height:100%;right:0;position:absolute;top:0;width:100%}.ff-left-spaced{margin-right:10px!important}.doc_video_wrapper{background:#fff;margin:0 auto;max-width:800px;padding:20px 0 0;text-align:center}.el-big-items .el-select-dropdown__wrap{max-height:350px}.ff_email_resend_inline{display:inline-block}.el-radio-group-column{display:flex;flex-direction:column}.el-radio-group-column .el-radio{margin-bottom:20px;margin-left:0}.el-checkbox-group-column{display:flex;flex-direction:column}.el-checkbox-group-column .el-checkbox{margin-bottom:14px;margin-left:0}.ff_advanced_filter_wrap{position:relative}.ff_advanced_search{background:#fff;border-radius:8px;box-shadow:0 40px 64px -12px rgba(0,0,0,.08),0 0 14px -4px rgba(0,0,0,.08),0 32px 48px -8px rgba(0,0,0,.1);margin-top:10px;padding:20px;position:absolute;left:0;top:100%;width:350px;z-index:1024}.ff_advanced_search_date_range{background-color:#ececec;border-radius:8px;padding:14px}.ff_advanced_search_date_range p{font-size:14px;font-weight:400}.ff_advanced_search_date_range .el-date-editor--daterange.el-input__inner{width:282px}.el-switch__core:after{box-shadow:0 2px 4px rgba(0,0,0,.2),inset 0 2px 2px #fff,inset 0 -1px 1px rgba(0,0,0,.1)}.row-actions .row-actions-item{display:inline-block;font-size:13px;line-height:1;padding-left:10px;position:relative}.row-actions .row-actions-item:after{background-color:#ddd;content:"";height:10px;position:absolute;left:3px;top:50%;transform:translateY(-50%);width:1px}.row-actions .row-actions-item.trash:after{display:none}.row-actions span.trash a{color:#ff6154}.ff_pagination{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);display:inline-flex;font-weight:500;max-width:100%;padding:12px 20px}.ff_pagination .el-input__inner{background:#f2f2f2;border-color:#f2f2f2;border-radius:4px!important;color:#606266}.ff_pagination .el-input__inner:focus,.ff_pagination .el-input__inner:hover{border-color:#f2f2f2!important}.ff_pagination .el-select .el-input .el-select__caret{color:#606266}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:transparent;border-radius:4px}.ff_shortcode_wrap+.ff_shortcode_wrap{margin-top:.5rem}.ff_shortcode_btn{align-items:center;background-color:#ededed;border:0;border-radius:6px;color:#353537;display:inline-flex;font-size:12px;margin:0;overflow:hidden;padding:4px 10px}.ff_shortcode_btn span{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:200px}.ff_shortcode_btn .el-icon{margin-left:1px}.ff_shortcode_btn_thin{background-color:#f2f2f2}.ff_shortcode_btn_md{font-size:15px;line-height:1.2;padding:10px 14px}.copy_btn{background-color:#e7e6e6;border-radius:4px;cursor:pointer;margin-right:auto;padding:1px 10px;transition:.2s}.copy_btn:hover{background-color:#d8d7d7}.ff_editor_html ul{list-style-type:disc;padding-right:3em}.ff_editor_html ol{list-style-type:decimal;margin-right:3em}.ff_section_block{margin-bottom:64px}.ff_section_block:last-child{margin-bottom:0}.ff_radio_list{display:flex;flex-direction:column}.ff_radio_list_item{margin-bottom:2px;width:100%}.ff_radio_list_item .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:6px!important;box-shadow:none!important;color:#606266;padding:13px 16px;text-align:right;transition:.2s;width:100%}.ff_radio_list_item .el-radio-button__inner:hover,.ff_radio_list_item.is-active .el-radio-button__inner{background-color:rgba(96,98,102,.1);color:#1e1f21}.is-sticky{position:fixed;top:40px;z-index:1020}.ff_section_desc{font-size:16px}.ff_section_head{margin-bottom:40px}.ff_section_head_between{display:flex;flex-wrap:wrap;justify-content:space-between}.ff_section_head.sm{margin-bottom:24px}.ff_section_head_content_group{align-items:center;display:flex}.ff_section_head .text{font-size:15px}.el-row{display:flex;flex-wrap:wrap}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.items_end{align-items:flex-end!important}.el-radio-button__inner{font-weight:400}.el-select-dropdown__item.selected{font-weight:500}.ff_layout_section{display:flex;min-height:550px;position:relative;width:100%}.ff_layout_section_sidebar{background-color:#fff;box-shadow:0 1px 3px rgba(30,31,33,.05);flex-shrink:0;padding:16px;vertical-align:top;width:230px}.ff_layout_section_container{flex:1;overflow-y:scroll;padding:16px}.ff_global_setting_wrap .ff_layout_section_sidebar,.ff_tools_wrap .ff_layout_section_sidebar{height:100%}.ff_global_settings_option{height:110vh;overflow-y:scroll}.ff_global_settings_option::-webkit-scrollbar{display:none}.ff_global_settings_option .el-form-item,.ff_global_settings_option .el-form-item-wrap{margin-bottom:24px}.ff_global_settings_option .el-form-item-wrap:last-child,.ff_global_settings_option .el-form-item:last-child{margin-bottom:0}.ff_global_settings_option .ff_card:not(:last-child){margin-bottom:32px}.ff_input_width{width:438px}.ff_input_full_width{width:100%}.ff_tooltip_wrap{font-size:14px;line-height:1.6;max-width:320px}.ff_tooltip_wrap h6{color:#fff}.ff-icon-gray{color:#757d8a}.el-form--label-top .el-form-item__label{line-height:1;padding-bottom:16px}.ff-form-item .el-form-item__label{align-items:center;color:#1e1f21;display:flex;font-size:15px;font-weight:500}.ff-form-item .el-form-item__label .ff-icon{margin-right:4px}.ff-form-item .el-form-item__content{line-height:1}.ff-form-item .el-icon-info,.ff-form-item .ff-icon-info-filled{font-size:13px}.ff-form-item .el-icon-info{color:#1a7efb;transform:rotate(14deg)}.el-select__tags input{background-color:transparent;border:none;line-height:2;margin-right:0;min-height:30px;padding:0 8px}.ff_alert{background-color:#e8f2ff;border-right:3px solid #1a7efb;border-radius:4px;padding:17px}.ff_alert_icon{display:inline-block;font-size:16px;margin-top:3px}.ff_alert_icon+.ff_alert_content{padding-right:10px}.ff_alert_group{display:flex}.ff_alert_sm{padding:10px}.ff_alert.success{background-color:#00b27f;border-right-color:#00b27f;color:#fff}.ff_alert.success-soft{background-color:#e6ffeb;border-right-color:#00b27f}.ff_alert.danger{background-color:#ff6154;border-right-color:#ff6154;color:#fff}.ff_alert.danger-soft{background-color:#ffefee;border-right-color:#ff6154}.ff_alert .text{font-size:14px;margin-bottom:12px;margin-top:6px}.ff_alert_between{align-items:center;display:flex;justify-content:space-between}.ff_alert_between .text{margin-bottom:0}.ff_alert_s2{border-right:0;border-radius:8px;padding:40px;text-align:center}.ff-form-item-flex{align-items:center;display:flex}.ff-form-item-flex .el-form-item__label{padding-bottom:0}.ff-form-item-flex.reverse{flex-direction:row-reverse;justify-content:flex-end}.ff-form-setting-label-width .el-form-item__label{width:390px}.el-switch input{border:0}.el-switch-lg .el-switch__core{border-radius:30px;height:24px;width:48px!important}.el-switch-lg .el-switch__core:after{height:20px;width:20px}.el-switch-lg.is-checked .el-switch__core:after{margin-right:-21px}.ff_block_title{font-weight:500}.el-form-item__label h6{font-size:15px;font-weight:500}.ff_checkbox_group_col_2{display:flex;flex-wrap:wrap}.ff_checkbox_group_col_2 .el-checkbox{line-height:1;margin-bottom:.75rem;margin-left:0;width:50%}.wp_vue_editor_wrapper{background-color:#fff;border:1px solid #dadbdd;border-radius:8px;overflow:hidden;position:relative}.wp_vue_editor_wrapper .wp-media-buttons{float:none;position:absolute;left:160px;top:10px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media{background-color:#e8f2ff;border-color:#e8f2ff;border-radius:6px;color:#1a7efb;font-weight:500;line-height:1;margin:0;min-height:30px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.wp_vue_editor_wrapper .popover-wrapper{padding:10px;position:absolute;left:0;top:0;z-index:2}.wp_vue_editor_wrapper .wp-editor-container{border:0}.wp_vue_editor_wrapper .wp-editor-tabs{float:none;padding:8px}.wp_vue_editor_wrapper .wp-switch-editor{background-color:transparent;border-color:transparent;border-radius:5px;float:none;font-size:14px;font-weight:500;height:auto;line-height:inherit;margin:0 4px 0 0;padding:7px 14px}.wp_vue_editor_wrapper .html-active .switch-html,.wp_vue_editor_wrapper .tmce-active .switch-tmce{background-color:#ededed;border-color:#dadbdd;color:#1e1f21}.wp_vue_editor_wrapper .switch-html{margin-right:0}.wp_vue_editor_wrapper .mce-top-part:before{box-shadow:none}.wp_vue_editor_wrapper .quicktags-toolbar,.wp_vue_editor_wrapper div.mce-toolbar-grp{background:#f1f1f0;border-bottom:0}.wp_vue_editor_wrapper .mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border:0;border-radius:4px;box-shadow:none}.wp_vue_editor_wrapper textarea{border:0;padding-top:15px}.wp-media-buttons .insert-media{padding-right:8px;padding-left:10px}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#1a7efb}.mce-panel.mce-menu{border-radius:8px}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:10px!important}.el-input-number__decrease{right:2px}.ff_state_box{border-radius:8px;display:block;padding:32px;text-align:center}.ff_icon_btn{align-items:center;background-color:#1a7efb;border-radius:50%;color:#fff;display:flex;font-size:28px;height:58px;justify-content:center;text-align:center;width:58px}.ff_icon_btn:focus,.ff_icon_btn:hover{color:#fff}.ff_icon_btn img{height:36px;-o-object-fit:contain;object-fit:contain}.ff_icon_btn.square{border-radius:12px}.ff_icon_btn.blue{background-color:#3b5998;color:#fff}.ff_icon_btn.blue-soft{background-color:#ebeef5;color:#3b5998}.ff_icon_btn.dark{background-color:#1e1f21;color:#fff}.ff_icon_btn.dark-soft{background-color:#e9e9e9;color:#1e1f21}.ff_icon_btn.primary-soft{background-color:#e8f2ff;color:#1a7efb}.ff_icon_btn.danger{background-color:#ff6154;color:#fff}.ff_icon_btn.danger-soft{background-color:#ffefee;color:#ff6154}.ff_icon_btn.success{background-color:#00b27f;color:#fff}.ff_icon_btn.success-soft{background-color:#e6ffeb;color:#00b27f}.ff_icon_btn.warning{background-color:#fcbe2d;color:#fff}.ff_icon_btn.warning-soft{background-color:#fff9ea;color:#fcbe2d}.ff_icon_btn.info{background-color:#4b4c4d;color:#fff}.ff_icon_btn.info-soft{background-color:#ededed;color:#4b4c4d}.ff_icon_btn.cyan{background-color:#0dcaf0;color:#fff}.ff_icon_btn.cyan-soft{background-color:#e7fafe;color:#0dcaf0}.ff_icon_btn.mini{font-size:12px;height:18px;width:18px}.ff_icon_btn.small{font-size:16px;height:27px;width:27px}.ff_icon_btn.md{font-size:26px;height:48px;width:48px}.ff_icon_btn.md img{height:28px;-o-object-fit:cover;object-fit:cover;-o-object-position:right;object-position:right;width:28px}.ff_icon_btn.lg{font-size:36px;height:72px;width:72px}.ff_btn_group{align-items:center;display:inline-flex;flex-wrap:wrap;margin:-6px}.ff_btn_group>*{margin-bottom:0;padding:6px}.ff_btn_group.sm{margin:-3px}.ff_btn_group.sm>*{padding:3px}.ff_btn_group_half{display:flex}.ff_btn_group_half>*{flex:1}.ff_btn_group_half .el-button{justify-content:center;width:100%}.file-input{background:#fff;border:1px solid #ececec;border-radius:8px;color:#606266;max-width:100%;padding:5px!important}.file-input::file-selector-button{background:#f2f2f2;border:none;border-radius:6px;color:#1e1f21;cursor:pointer;margin-left:6px;padding:6px 16px;transition:background .2s ease-in-out}.file-input::file-selector-button:hover{background:#ced0d4}.el-tag--pill{border-radius:50rem}.ff_radio_group{background-color:#f5f5f3;border-radius:8px;overflow:hidden}.ff_radio_group .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:0!important}.ff_radio_group .el-radio-button__inner:hover{color:#1e1f21}.ff_radio_group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;box-shadow:none;color:#fff}.ff_radio_group_s2{background:#fff;border:1px solid #edeae9;border-radius:8px;display:inline-flex;overflow:hidden}.ff_radio_group_s2 .el-radio-button:first-child .el-radio-button__inner{border-right:0}.ff_radio_group_s2 .el-radio-button:last-child .el-radio-button__inner{border-left:0}.ff_radio_group_s2 .el-radio-button__inner{border-color:transparent transparent transparent #edeae9}.el-input-gray .el-input__inner{background-color:#e7e6e6;border-color:#e7e6e6}.el-input-gray .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray .el-input__prefix{color:#606266}.el-input-gray-light .el-input__inner{background-color:#f5f5f3;border-color:#f5f5f3}.el-input-gray-light .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__prefix{color:#606266}.el-radio.is-bordered{margin-left:6px}.ff_media_group{align-items:center;display:flex}.ff_media_head+.ff_media_body{margin-right:16px}.ff_video_wrap{position:relative}.ff_video_wrap:after{background-color:#1e1f21;border-radius:8px;content:"";height:100%;right:0;opacity:.3;position:absolute;top:0;width:100%}.ff_video_img{border-radius:8px;display:block;width:100%}.ff_video_icon{right:50%;position:absolute;top:50%;transform:translate(50%,-50%);z-index:1}.ff-input-wrap{position:relative}.ff-input-wrap .el-icon{align-items:center;display:inline-flex;height:100%;right:0;padding-right:14px;position:absolute;top:0;z-index:2}.ff-input-wrap .el-icon+.el-input .el-input__inner,.ff-input-wrap .el-icon+input{padding-right:32px}.el-dialog-no-header .el-dialog__header{display:none}.el-radio-button-group{background-color:#fff;border:1px solid #ececec;border-radius:4px}.el-radio-button-group .el-radio-button__inner{background:transparent;border:0;padding:6px 9px}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner{border-right:0;border-radius:0 4px 4px 0}.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-radio-button-group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1a7efb;box-shadow:none}.el-color-picker__color{border-color:#d4edda;border-radius:3px}.ff_socials li{display:inline-block;margin-left:2px}.ff_socials li:last-child{margin-left:0}.ff_socials li a{background-color:#ededed;border-radius:50%;color:#606266;display:grid;height:32px;place-items:center;transition:.2s;width:32px}.ff_socials li a span{font-size:16px;height:auto;transition:0s;width:auto}.ff_socials li a:hover{background-color:#1a7efb;color:#fff}.ff-dropdown-menu .el-dropdown-menu__item{line-height:1.5;padding:6px 20px}.ff-dropdown-menu .el-dropdown-menu__item:hover{background-color:transparent}.truncate{display:block;max-width:188px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;max-width:inherit;white-space:inherit}.hover-y{transition:.3s}.hover-y:hover{transform:translateY(-2px)}.hover-zoom{transition:.3s}.hover-zoom:hover{transform:scale(1.03)}.ff_badge{align-items:center;background-color:#ededed;border:1px solid #dbdbdb;border-radius:30px;color:#4b4c4d;display:inline-flex;line-height:1.2;padding:2px 7px;text-transform:capitalize}.ff_badge.small{font-size:13px}.ff_badge_wrap{align-items:center;display:inline-flex}.ff_badge img{flex-shrink:0;height:14px;margin-left:4px}.ff_badge_active,.ff_badge_primary{background-color:#e8f2ff;border-color:#d1e5fe;color:#1a7efb}.ff_badge_paid{background-color:#e6f7f2;border-color:#ccf0e5;color:#00b27f}.ff_badge_processing{background-color:#e7fafe;border-color:#cff4fc;color:#0dcaf0}.ff_badge_pending{background-color:#fff9ea;border-color:#fef2d5;color:#fcbe2d}.ff_badge_failed{background-color:#ffefee;border-color:#ffdfdd;color:#ff6154}.ff_badge_visa{background-color:#e8e9ef;border-color:#dddee7;color:#192061}.ff_badge_mastercard{background-color:#ffefe6;border-color:#ffe7d9;color:#ff5f00}.ff_badge_amex{background-color:#f0f9fd;border-color:#e9f6fc;color:#6cc4ee}.ff_badge_paypal{background-color:#e6f5fc;border-color:#d9f0fa;color:#019ddd}.ff_badge_stripe{background-color:#eef0fb;border-color:#e5e9f9;color:#5469d4}.ff_badge.is-solid.ff_badge_active{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.ff_badge.is-solid.ff_badge_processing{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.ff_badge.is-solid.ff_badge_paid{background-color:#00b27f;border-color:#00b27f;color:#fff}.ff_badge.is-solid.ff_badge_pending{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.ff_badge.is-solid.ff_badge_cancelled,.ff_badge.is-solid.ff_badge_failed{background-color:#ff6154;border-color:#ff6154;color:#fff}.separator{background-color:rgba(96,98,102,.1);height:1px}.ff_choose_template_wrap .el-dialog{max-width:1280px}.ff_settings_container .notice{margin:0 0 20px}.global-search-wrapper{align-items:center;background:rgba(0,0,0,.7);display:flex;height:auto;inset:0;justify-content:center;min-height:100vh;padding:20px;position:fixed;z-index:999999999}.global-search-wrapper .global-search-container{background:#f6f6f7;border-radius:5px;overflow:auto;position:relative;width:700px}.global-search-wrapper .global-search-container input{font-size:17px;padding:3px 35px;width:100%}.global-search-wrapper .global-search-container ul.search-result li{background:#fff;border-radius:6px;box-shadow:0 1px 3px 0 #d4d9e1;color:#606266;cursor:pointer;display:block;font-size:15px;margin-right:0;margin-top:7px;padding:10px;transition:.2s}.global-search-wrapper .global-search-container ul.search-result li.active-search-link{background-color:#197efb;color:#fff;outline:0}.global-search-wrapper .global-search-container ul.search-result li:focus,.global-search-wrapper .global-search-container ul.search-result li:focus-visible{border:0;box-shadow:none;outline:0}.global-search-wrapper .global-search-container span.global-search-not-match{display:inline-block;font-size:16px;margin-top:6px}.global-search-wrapper .global-search-body{max-height:400px;min-height:200px;overflow-y:auto;padding:20px}.global-search-wrapper .search-commands{background:#fff;box-shadow:0 -1px 0 0 #efefef,0 -2px 6px 0 rgba(70,90,150,.1);color:#606266;display:flex;font-size:14px;justify-content:space-around;padding:12px}.global-search-wrapper .search-commands ul li{font-size:12px;margin-top:7px;padding:10px}.scroll{animation:down 2s ease-in-out infinite;-webkit-animation:down 2s ease-in-out infinite;cursor:pointer;height:26px;margin:0 auto;position:relative;width:60px}.scroll:before{border-bottom:2px solid #777;border-right:2px solid #777;content:"";height:16px;right:18px;position:absolute;top:24px;transform:rotate(45deg);width:16px}.ff_chained_ajax_field{display:flex;flex:auto;gap:10px}.ff_chained_ajax_field .el-select{flex-basis:100%}@keyframes down{0%{opacity:0;-webkit-transform:translateY(-14px)}50%{opacity:1}to{opacity:0;-webkit-transform:translateY(14px)}}.ff_sidebar_toggle{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 1px 10px rgba(0,0,0,.1);color:#000;cursor:pointer;display:none;font-size:18px;height:30px;justify-content:center;position:absolute;left:-21px;top:15px;width:30px}.text-capitalize{text-transform:capitalize}.ultimate-nav-menu{background-color:#fff;border-radius:4px}.ultimate-nav-menu>ul{margin:0}.ultimate-nav-menu>ul>li{display:inline-block;font-weight:600;margin:0}.ultimate-nav-menu>ul>li+li{margin-right:-4px}.ultimate-nav-menu>ul>li a{color:#23282d;display:block;padding:10px;text-decoration:none}.ultimate-nav-menu>ul>li a:hover{background-color:#1a7efb;color:#fff}.ultimate-nav-menu>ul>li:first-of-type a{border-radius:0 4px 4px 0}.ultimate-nav-menu>ul>li.active a{background-color:#1a7efb;color:#fff}.nav-tab-list{display:flex;flex-wrap:wrap;position:sticky;top:0;z-index:10}.nav-tab-list li{flex:1;margin-bottom:0}.nav-tab-list li.active a{background-color:#4b4c4d;color:#fff}.nav-tab-list li a{background-color:#f5f5f3;color:#1e1f21;display:block;font-weight:500;overflow:hidden;padding:12px;text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.nav-tab-list li a:focus{box-shadow:none}.toggle-fields-options{overflow:hidden}.nav-tab-items{background-color:#fff}.vddl-draggable,.vddl-list{position:relative}.vddl-dragging{opacity:1}.vddl-dragging-source{display:none}.select{min-width:200px}.new-elements .btn-element{align-items:center;background-color:#fff;border:1px solid #dfdfdf;border-radius:8px;color:#1e1f21;cursor:move;display:flex;font-size:14px;padding:12px 16px;text-align:center;transition:all .05s}.new-elements .btn-element span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.new-elements .btn-element:focus,.new-elements .btn-element:hover{background-color:#4b4c4d;color:#fff}.new-elements .btn-element:active:not([draggable=false]){box-shadow:inset 0 2px 7px -4px rgba(0,0,0,.5);transform:translateY(1px)}.new-elements .btn-element i{display:block;font-size:16px;margin-left:10px;padding-top:2px}.new-elements .btn-element[draggable=false]{cursor:pointer;opacity:.5}.mtb15{margin-bottom:15px;margin-top:15px}.text-right{text-align:left}.container,footer{margin:0 auto;max-width:980px;min-width:730px}.help-text{margin-bottom:0}.demo-content{width:100%}.vddl-list__handle div.vddl-nodrag{-webkit-touch-callout:none;align-items:center;display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vddl-list__handle input[type=radio]{margin-left:0}.vddl-list__handle .nodrag div{margin-left:6px}.vddl-list__handle .nodrag div:last-of-type{margin-left:0}.vddl-list__handle .handle{background:url(../images/handle.png?113dcab1e057b4d108fdbe088b054a5d) 50% no-repeat;background-size:20px 20px;cursor:move;height:16px;width:25px}.vddl-draggable .el-form-item{margin-bottom:5px}.tooltip-icon{color:#757d8a;margin-right:3px;vertical-align:middle!important}.tooltip-icon.el-icon-info{transform:rotate(14deg)}.option-fields-section{background:#fff;border-radius:8px;margin-bottom:12px}.option-fields-section--title{border-bottom:1px solid transparent;cursor:pointer;font-size:14px;font-weight:500;padding:12px 20px;position:relative}.option-fields-section--title:after{content:"\e6df";font-family:element-icons;font-size:16px;font-weight:600;position:absolute;left:16px;transition:.2s;vertical-align:middle}.option-fields-section--title.active{border-bottom-color:#ececec;color:#1a7efb;font-weight:600}.option-fields-section--title.active:after{transform:rotate(180deg)}.option-fields-section--icon{float:left;margin-top:3px;vertical-align:middle}.option-fields-section--content{max-height:1050vh;padding:16px}.option-fields-section--content .el-form-item{margin-bottom:14px}.slide-fade-enter-active,.slide-fade-leave-active{overflow:hidden;transition:all .2s ease-in-out}.slide-fade-enter,.slide-fade-leave-to{max-height:0!important;opacity:.2;transform:translateY(-11px)}.ff_conv_section_wrapper{align-items:center;display:flex;flex-basis:50%;flex-direction:row;flex-grow:1;justify-content:space-between}.ff_conv_section_wrapper.ff_conv_layout_default{padding:10px 0}.ff_conv_section_wrapper.ff_conv_layout_default .ff_conv_media_preview{display:none!important}.ff_conv_section_wrapper.ff_conv_layout_default .ff_conv_input{padding-right:10px;padding-left:10px;width:100%}.ff_conv_section_wrapper .ff_conv_input{display:flex;flex-direction:column-reverse;justify-content:center;padding:0 10px 0 20px;width:100%}.ff_conv_section_wrapper .ff_conv_input label.el-form-item__label{font-size:18px;margin-bottom:5px}.ff_conv_section_wrapper .ff_conv_input .help-text{font-style:normal!important;margin-bottom:8px}.ff_conv_section_wrapper .ff_conv_media_preview{width:100%}.ff_conv_section_wrapper .ff_conv_media_preview img{max-width:100%}.ff_conv_section_wrapper.ff_conv_layout_media_right .ff_conv_media_preview{text-align:center}.ff_conv_section_wrapper.ff_conv_layout_media_left{flex-direction:row-reverse}.ff_conv_section_wrapper.ff_conv_layout_media_left .ff_conv_media_preview{text-align:center}.ff_conv_section_wrapper.ff_conv_layout_media_left .ff_conv_input{padding:0 20px 0 10px;width:100%}.ff_conv_section_wrapper.ff_conv_layout_media_right_full{align-items:normal}.ff_conv_section_wrapper.ff_conv_layout_media_right_full .ff_conv_media_preview{margin:-10px 0 -10px -10px}.ff_conv_section_wrapper.ff_conv_layout_media_right_full .ff_conv_media_preview .fc_i_layout_media_right_full,.ff_conv_section_wrapper.ff_conv_layout_media_right_full .ff_conv_media_preview .fc_i_layout_media_right_full .fc_image_holder{height:100%}.ff_conv_section_wrapper.ff_conv_layout_media_right_full img{border-bottom-left-radius:8px;border-top-left-radius:8px;display:block;height:100%;margin:0 auto;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 50%;object-position:50% 50%;width:100%}.ff_conv_section_wrapper.ff_conv_layout_media_left_full{align-items:normal;flex-direction:row-reverse}.ff_conv_section_wrapper.ff_conv_layout_media_left_full .ff_conv_media_preview{margin:-10px -10px -10px 0}.ff_conv_section_wrapper.ff_conv_layout_media_left_full .ff_conv_media_preview .fc_i_layout_media_left_full,.ff_conv_section_wrapper.ff_conv_layout_media_left_full .ff_conv_media_preview .fc_i_layout_media_left_full .fc_image_holder{height:100%}.ff_conv_section_wrapper.ff_conv_layout_media_left_full .ff_conv_input{padding:0 20px 0 10px;width:100%}.ff_conv_section_wrapper.ff_conv_layout_media_left_full img{border-bottom-right-radius:8px;border-top-right-radius:8px;display:block;height:100%;margin:0 auto;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 50%;object-position:50% 50%;width:100%}.ff_conv_section{animation:expand 1s cubic-bezier(.22,1,.36,1) 0s 1 normal none running;background-color:transparent;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.08),0 2px 12px rgba(0,0,0,.06);color:#262627;cursor:pointer;height:100%;margin-bottom:20px;position:relative;width:100%}.ff_conv_section .hover-action-middle{align-items:flex-start;justify-content:flex-end}.ff_conv_section .panel__body--item{border-radius:8px}.ff_conv_section .panel__body--item.selected{background:#fff}.ff_conversion_editor{background:#fafafa}.ff_conversion_editor .form-editor--body,.ff_conversion_editor .form-editor__body-content,.ff_conversion_editor .panel__body--list{background-color:#fafafa!important}.ff_conversion_editor .ffc_btn_wrapper{align-items:center;display:flex;margin-top:20px}.ff_conversion_editor .ffc_btn_wrapper .fcc_btn_help{padding-right:15px}.ff_conversion_editor .welcome_screen.text-center .ffc_btn_wrapper{justify-content:center}.ff_conversion_editor .welcome_screen.text-right .ffc_btn_wrapper{justify-content:flex-end}.ff_conversion_editor .ff_default_submit_button_wrapper{display:block!important}.ff_conversion_editor .fcc_pro_message{background:#fef6f1;font-size:13px;margin:10px 0;padding:15px;text-align:center}.ff_conversion_editor .fcc_pro_message a{display:block;margin-top:10px}.ff_conversion_editor .ffc_raw_content{margin:0 auto;max-height:250px;max-width:60%;overflow:hidden}.subscription-field-options{background-color:#fff;border-radius:6px;display:block;margin-bottom:20px;width:100%}.subscription-field-options .plan_header{border-bottom:1px solid #ececec;color:#1e1f21;display:block;font-weight:600;overflow:hidden;padding:10px 15px}.subscription-field-options .plan_header .plan_label{float:right}.subscription-field-options .plan_header .plan_actions{float:left}.subscription-field-options .plan_body{overflow:hidden;padding:15px}.subscription-field-options .plan_footer{border-top:1px solid #ececec;padding:10px 40px;text-align:center}.subscription-field-options .plan_settings{display:block;float:right;padding-left:50px;width:50%}.el-input+.plan_msg,.plan_msg{margin-top:5px}.ff_payment_item_wrapper{margin-bottom:24px}.form-editor *{box-sizing:border-box}.form-editor .address-field-option label.el-checkbox{display:inline-block}.form-editor-main{display:flex;flex-wrap:wrap}.form-editor--body{background-color:#fff;height:100vh;overflow-y:scroll;padding:10px;width:60%}.form-editor--body::-webkit-scrollbar{-webkit-appearance:none;display:none}.form-editor--body .ff-el-form-hide_label .el-form-item__label,.form-editor--body .ff-el-form-hide_label>label{display:none}.form-editor--body .el-slider__button-wrapper{z-index:0}.form-editor--body .ff_upload_btn_editor span.ff-dropzone-preview{background:rgba(223,240,255,.13);border:1px dashed #1a7efb;border-radius:7px;color:#606266;display:block;padding:35px;text-align:center;width:100%}.form-editor .ff-el-form-bottom .el-form-item,.form-editor .ff-el-form-bottom.el-form-item{display:flex;flex-direction:column-reverse}.form-editor .ff-el-form-bottom .el-form-item__label{padding:10px 0 0}.form-editor .ff-el-form-right .el-form-item__label{padding-left:5px;text-align:left}.form-editor .ff-dynamic-editor-wrap{max-height:300px;overflow:hidden}.form-editor--sidebar{width:40%}.form-editor--sidebar-content{background-color:#f2f2f2;border-right:1px solid #ececec;height:100vh;overflow-y:scroll}.form-editor--sidebar-content::-webkit-scrollbar{-webkit-appearance:none;display:none}.form-editor--sidebar-content .nav-tab-list{background-color:#fff}.form-editor--sidebar-content .nav-tab-list li{flex:0;padding-right:10px;padding-left:10px}.form-editor--sidebar-content .nav-tab-list li a{background-color:transparent;border-bottom:2px solid transparent;color:#1e1f21;font-size:14px;padding:15px 0;text-align:right}.form-editor--sidebar-content .nav-tab-list li a:hover{color:#1a7efb}.form-editor--sidebar-content .nav-tab-list li.active a{border-bottom-color:#1a7efb;color:#1a7efb}.form-editor--sidebar-content .search-element{margin:0;padding:0 0 20px}.form-editor--sidebar .nav-tab-items{background-color:transparent;padding:20px}.form-editor--sidebar .ff_advnced_options_wrap{margin-bottom:10px;max-height:300px;overflow-y:auto}.form-editor--sidebar .ff_validation_rule_warp{border-radius:5px;margin:10px -10px;padding:10px}.form-editor--sidebar .ff_validation_rule_warp .el-input__inner{transition:all .5s}.form-editor--sidebar .ff-dynamic-warp{border-right:1px dashed #ececec;margin-bottom:10px;padding:10px 10px 0}.form-editor--sidebar .ff-dynamic-filter-groups{border:1px solid #ececec;border-radius:5px;margin-bottom:10px;padding:10px}.form-editor--sidebar .ff-dynamic-filter-condition{align-items:center;display:flex;justify-content:center;margin:10px -10px}.form-editor--sidebar .ff-dynamic-filter-condition.condition-or{margin:10px 0}.form-editor--sidebar .ff-dynamic-filter-condition span.condition-border{border:1px dashed #ececec;display:block;width:100%}.form-editor--sidebar .ff-dynamic-filter-condition span.condition-item{padding:0 20px}.form-editor--sidebar .ff_validation_rule_error_choice{border-right:1px dotted #dcdfe6;padding-right:10px}.form-editor--sidebar .ff_validation_rule_error_choice .el-form-item{margin-bottom:0}.form-editor--sidebar .ff_validation_rule_error_choice .ff_validation_rule_error_label_wrap{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.form-editor--sidebar .ff_validation_rule_error_choice .ff_validation_rule_error_label_wrap label{padding-bottom:0}.form-editor .ff-switch-sm .el-switch__label span{font-size:12px}.form-editor .ff-switch-sm .el-switch__core{height:16px;width:26px!important}.form-editor .ff-switch-sm .el-switch__core:after{height:12px;width:12px}.form-editor .ff-switch-sm.is-checked .el-switch__core:after{margin-right:-13px}.form-editor__body-content{margin:0 auto;max-width:100%}.form-editor__body-content .ff_check_photo_item{float:right;margin-bottom:10px;margin-left:10px}.form-editor__body-content .ff_check_photo_item .ff_photo_holder{background-position:50%;background-repeat:no-repeat;background-size:cover;height:120px;width:120px}div#js-form-editor--body .form-editor__body-content{background-color:#fff}body.ff_full_screen{overflow-y:hidden}body.ff_full_screen .form-editor--sidebar-content{height:calc(100vh - 56px)}body.ff_full_screen #switchScreen:before{content:"\e96b";font-weight:600}body.ff_full_screen .ff_screen_editor{background:#fff;bottom:0;color:#444;cursor:default;height:100%;right:0!important;margin:0!important;min-width:0;overflow:hidden;position:fixed;left:0!important;top:0;z-index:100099!important}body.ff_full_screen .ff_screen_editor .form_internal_menu{right:0;position:absolute;left:0;top:0;z-index:5}body.ff_full_screen div#js-form-editor--body .form-editor__body-content{padding:30px}body.ff_full_screen .form-editor--sidebar{margin-top:52.2px}.ff_screen_editor{padding:0}.styler_row{margin-bottom:10px;margin-right:-5px;margin-left:-5px;overflow:hidden;width:100%}.styler_row .el-form-item{float:right;margin-bottom:10px;padding-right:5px;padding-left:5px;width:50%}.styler_row.styler_row_3 .el-form-item{margin-left:1%;width:32%}#wp-link-wrap,.el-color-picker__panel,.el-dialog__wrapper,.el-message,.el-notification,.el-notification.right,.el-popper,.el-tooltip__popper,div.mce-inline-toolbar-grp.mce-arrow-up{z-index:9999999999!important}.ff_code_editor textarea{background:#353535!important;color:#fff!important}.el-popper.el-dropdown-list-wrapper .el-dropdown-menu{width:100%}.ff_editor_html{display:block;min-height:24px;overflow:hidden;width:100%}.ff_editor_html img.aligncenter{display:block;margin:0 auto;text-align:center}.address-field-option__settings{margin-top:10px}.address-field-option .pad-b-20{padding-bottom:20px!important}.el-form-item .ff_list_inline>div{display:-moz-inline-stack;display:inline-block;float:none!important;margin:0 0 10px 15px;width:auto!important}.el-form-item .ff_list_3col{width:100%}.el-form-item .ff_list_3col>div{display:-moz-inline-stack;display:inline-block;margin:0 0 2px;min-height:28px;padding-left:16px;vertical-align:top;width:33.3%}.el-form-item .ff_list_2col{width:100%}.el-form-item .ff_list_2col>div{display:-moz-inline-stack;display:inline-block;margin:0;min-height:28px;padding-left:16px;vertical-align:top;width:50%}.el-form-item .ff_list_4col{width:100%}.el-form-item .ff_list_4col>div{display:-moz-inline-stack;display:inline-block;margin:0;min-height:28px;padding-left:16px;vertical-align:top;width:25%}.el-form-item .ff_list_5col{width:100%}.el-form-item .ff_list_5col>div{display:-moz-inline-stack;display:inline-block;margin:0;min-height:28px;padding-left:16px;vertical-align:top;width:20%}.el-form-item .ff_list_buttons>div:not(.ff_checkable_images){-webkit-appearance:none;background:#fff;border:1px solid #dcdfe6;border-right:0;border-radius:0;box-sizing:border-box;color:#606266;cursor:pointer;display:-moz-inline-stack;display:inline-block;float:none!important;font-weight:500;line-height:1;margin:0 0 10px;outline:none;padding:6px 20px;position:relative;text-align:center;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;vertical-align:middle;white-space:nowrap;width:auto!important}.el-form-item .ff_list_buttons>div:not(.ff_checkable_images) input{margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.el-form-item .ff_list_buttons>div:not(.ff_checkable_images):first-child{border-right:1px solid #dcdfe6;border-radius:0 4px 4px 0;box-shadow:none!important}.el-form-item .ff_list_buttons>div:not(.ff_checkable_images):last-child{border-radius:4px 0 0 4px}.el-form-item .el-form-item__content .ff-el-form-captcha-img-wrapper{max-height:60px;max-width:222px}.el-form-item .el-form-item__content .ff-el-form-captcha-img-wrapper img{max-width:100%}.el-form-item .el-form-item__content .ff-el-calendar-wrapper{text-align:center}.el-form-item .el-form-item__content .ff-el-calendar-wrapper img{max-height:300px}.el-form-item .ff-group-select .el-loading-spinner{background-color:#f0f8ff;border-radius:7px}.el-form-item .ff-group-select .el-loading-spinner .el-loading-text{margin:10px 0}#wpwrap{background:#fff}#switchScreen{color:#606266;cursor:pointer;font-size:28px;vertical-align:middle}.ff_setting_menu li{opacity:.5}.ff_setting_menu li.active,.ff_setting_menu li:hover{opacity:1}.editor_play_video{align-items:center;background:#fff;border:1px solid #1e1f21;border-radius:10px;box-shadow:-2px 2px #1e1f21;color:#1e1f21;cursor:pointer;display:inline-flex;font-size:16px;right:50%;padding:12px 24px;position:absolute;top:350px;transform:translateX(50%)}.editor_play_video .el-icon{margin-left:8px}.editor_play_video:hover{background-color:#1e1f21;box-shadow:none;color:#fff}.editor_play_video:hover .el-icon{fill:#fff}.form-editor .form-editor--sidebar{position:relative}.form-editor .code{overflow-x:scroll}.form-editor .ff-user-guide{margin-top:-155px;padding-right:40px;text-align:center}.form-editor .ff-user-guide img{width:100%}.form-editor .post-form-settings label.el-form-item__label{color:#606266;font-weight:500;margin-top:8px}.form-editor .el-button--mini{padding:7px 12px}.action-btn{display:inline-flex}.action-btn i{cursor:pointer;vertical-align:middle}.ff-input-customization-wrap .option-fields-section--content .wp_vue_editor_wrapper .wp-media-buttons{left:10px}.ff-input-customization-wrap .option-fields-section--content .wp_vue_editor_wrapper .wp-switch-editor{padding:4px 12px}.chained-select-settings .uploader{height:130px;margin-top:10px;position:relative;width:100%}.chained-select-settings .el-upload--text,.chained-select-settings .el-upload-dragger{height:130px;width:100%}.chained-select-settings .el-upload-dragger .el-icon-upload{margin-top:20px}.chained-select-settings .el-upload-list,.chained-select-settings .el-upload-list .el-upload-list__item{margin:-5px 0 0}.chained-select-settings .btn-danger{color:#ff6154}.conditional-logic{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.condition-field,.condition-value{width:30%}.condition-operator{width:85px}.form-control-2{border-radius:5px;height:28px;line-height:28;padding:2px 5px;vertical-align:middle}mark{background-color:#929292!important;color:#fff!important;display:inline-block;font-size:11px;line-height:1;padding:5px}.highlighted .field-options-settings{background-color:#ffc6c6}.flexable{display:flex}.flexable .el-form-item{margin-left:5px}.flexable .el-form-item:last-of-type{margin-left:0}.address-field-option .el-form-item{margin-bottom:15px}.address-field-option .el-checkbox+.el-checkbox{margin-right:0}.address-field-option .required-checkbox{display:none;margin-left:10px}.address-field-option .required-checkbox.is-open{display:block}.address-field-option__settings{display:none;margin-top:15px}.address-field-option__settings.is-open{display:block}.el-form-item.ff_full_width_child .el-form-item__content{margin-right:0!important;width:100%}.el-select .el-input{min-width:70px}.pull-right.top-check-action>label{margin-left:10px}.pull-right.top-check-action>label:last-child{margin-left:0}.pull-right.top-check-action span.el-checkbox__label{padding-right:3px}.item_desc textarea{margin-top:5px;width:100%}.optionsToRender{margin:7px 0}.address-field-wrapper{margin-top:10px}.chained-Select-template .header{margin-bottom:5px;margin-left:5px;width:100%}.checkable-grids{border-collapse:collapse}.checkable-grids thead>tr>th{background:#f1f1f1;padding:7px 10px}.checkable-grids tbody>tr>td{padding:7px 10px}.checkable-grids tbody>tr>td:not(:first-of-type){text-align:center}.checkable-grids tbody>tr:nth-child(2n)>td{background:#f1f1f1}.checkable-grids tbody>tr:nth-child(2n-1)>td{background:#fff}.net-promoter-button{border-radius:inherit}.ff-el-net-promoter-tags{display:flex;justify-content:space-between;max-width:550px}.ff-el-net-promoter-tags p{font-size:12px;opacity:.6}.ff-el-rate{display:inline-block}.repeat-field--item{display:flex;margin-left:5px;width:calc(100% - 40px)}.repeat-field--item>div{flex-grow:1;margin:0 3px}.repeat-field--item .el-form-item__label{text-align:right}.repeat-field--item .el-select{width:100%}.repeat-field .el-form-item__content{align-items:center;display:flex}.repeat-field-actions{margin-top:26px}.repeater-item-container{display:flex}.repeater-item-container .repeat-field-actions{align-self:center}.section-break__title{font-size:18px;margin-bottom:10px;margin-top:0}.el-form-item .select{background-position:top 55% left 12px;border-color:#dadbdd;border-radius:7px;max-width:100%;min-height:40px;min-width:100%;padding-right:15px;width:100%}.ff-btn{border:1px solid transparent;border-radius:8px;display:inline-block;font-size:14px;font-weight:500;line-height:1.5;padding:10px 20px;text-align:center;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.ff-btn:focus,.ff-btn:hover{box-shadow:0 0 0 2px rgba(0,123,255,.25);outline:0;text-decoration:none}.ff-btn.disabled,.ff-btn:disabled{opacity:.65}.ff-btn-lg{border-radius:6px;font-size:18px;line-height:1.5;padding:8px 16px}.ff-btn-sm{border-radius:3px;font-size:13px;line-height:1.5;padding:4px 8px}.ff-btn-block{display:block;width:100%}.ff-btn-primary{background-color:#1a7efb;color:#fff}.ff-btn-green{background-color:#67c23a;color:#fff}.ff-btn-orange{background-color:#e6a23c;color:#fff}.ff-btn-red{background-color:#f56c6c;color:#fff}.ff-btn-gray{background-color:#909399;color:#fff}.taxonomy-template .el-form-item .select{height:35px!important;min-width:100%;width:100%}.taxonomy-template .el-form-item .el-checkbox{display:block;line-height:19px;margin:5px 0}.taxonomy-template .el-form-item .el-checkbox .el-checkbox__label{padding-right:5px}.taxonomy-template .el-form-item .el-checkbox .el-checkbox__inner{background:#fff;border:1px solid #7e8993;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);clear:both;color:#555;height:16px;margin:-4px 0 0 4px;min-width:16px;transition:border-color .05s ease-in-out;width:16px}.ff_tc{overflow:hidden}.ff_tc .el-checkbox__input{vertical-align:top}.ff_tc .el-checkbox__label{line-height:1;overflow:hidden;white-space:break-spaces;word-break:break-word}.v-row .v-col--50:last-child,.v-row.ff_items_1 .v-col--33,.v-row.ff_items_2 .v-col--33{padding-left:15px}.ff_bulk_option_groups{align-items:center;display:flex;overflow-x:auto;white-space:nowrap}.ff_bulk_option_groups li{background-color:#ededed;border-radius:30px;cursor:pointer;padding:6px 20px;transition:.2s}.ff_bulk_option_groups li:not(:last-child){margin-left:8px}.ff_bulk_option_groups li.active,.ff_bulk_option_groups li:hover{background-color:#d2d2d3;color:#1e1f21}#more-menu .el-icon-s-operation{color:#606266;font-size:25px}#more-menu .ff-icon-more-vertical{font-size:30px}.dragable-address-fields div.vddl-nodrag{align-items:flex-start}.dragable-address-fields .handle{height:24px}.button_styler_customizer{position:relative}.button_styler_customizer:after{background-color:#fff;content:"";height:10px;right:20px;position:absolute;top:-4px;transform:rotate(-134deg);width:10px}.search-element-wrap .el-input__inner{background-color:hsla(0,0%,100%,.57);border-color:#ced0d4;height:44px}.search-element-wrap .el-input__inner:focus,.search-element-wrap .el-input__inner:hover{background-color:#fff;border-color:#ced0d4!important}.search-element-wrap .el-input__inner:focus::-webkit-input-placeholder,.search-element-wrap .el-input__inner:hover::-webkit-input-placeholder{opacity:.6}.search-element-wrap .el-input__inner::-webkit-input-placeholder{color:#626261}.search-element-wrap .active .el-input__inner{background-color:#fff}.ff_conditions_warp{background:#f2f2f2;border-radius:5px;margin:0 -10px 10px;padding:10px}.option-fields-section--content .v-row{flex-direction:column}.option-fields-section--content .v-col--50{padding-bottom:6px;width:100%}.option-fields-section--content .v-row .v-col--50:last-child{padding-bottom:0}.ff-edit-history-wrap .option-fields-section--title:after{display:none}.ff-edit-history-wrap .option-fields-section--title{display:flex;justify-content:space-between}.ff-edit-history-wrap .option-fields-section--title h5{color:#1a7efb;font-size:14px}.ff-edit-history-wrap .timeline{font-size:14px;list-style:none;margin:0;max-height:70vh;overflow-y:auto}.ff-edit-history-wrap .timeline .timeline_item{border-bottom:1px solid transparent;border-top:1px solid transparent;padding:6px 42px 0 25px;position:relative}.ff-edit-history-wrap .timeline .timeline_item:first-child{margin-top:10px}.ff-edit-history-wrap .timeline .timeline_item:hover{background:#f0f8ff;border-color:#dfdfdf}.ff-edit-history-wrap .timeline .timeline_item:before{background-color:#b1bacb;border-radius:50%;content:"";height:12px;right:18px;position:absolute;top:15px;width:12px}.ff-edit-history-wrap .timeline .timeline_item:after{border-right:2px solid #e4e7ed;content:"";height:calc(100% - 10px);right:23px;position:absolute;top:27px;z-index:1}.ff-edit-history-wrap .timeline .timeline_item:after:last-child{display:none}.ff-edit-history-wrap .timeline .timeline_item .timeline_item_header{align-items:center;display:flex;justify-content:space-between}.ff-edit-history-wrap .timeline .timeline_item .details_list{border:1px solid #ececed;border-bottom:none;font-size:small;padding:7px}.ff-edit-history-wrap .timeline .timeline_item .details_list:last-child{border-bottom:1px solid #e9e0e0}.ff-edit-history-wrap .timeline .timeline_item .timeline_details.is-visible ul{background:#fff;margin-bottom:15px;max-height:160px;overflow:auto}.ff-edit-history-wrap .timeline .timeline-action{align-content:center}.ff-edit-history-wrap .timeline .timeline_content{color:#303133}.ff-edit-history-wrap .timeline .timeline_content span{font-weight:500}.ff-edit-history-wrap .timeline .timeline_date{color:#686f7a;cursor:pointer;display:block;font-size:13px;margin-bottom:10px}.ff-edit-history-wrap .timeline_details{max-height:0;opacity:0;overflow:hidden;transition:max-height .3s ease-out,opacity .3s ease-out}.ff-edit-history-wrap .timeline_details.is-visible{max-height:500px;opacity:1}.ff-edit-history-wrap .el-icon-caret-bottom{transition:transform .3s ease}.ff-edit-history-wrap .el-icon-caret-bottom.is-active{transform:rotate(-180deg)}.ff-undo-redo-container{border-left:1px solid #ececec;display:flex;gap:6px}.ff-undo-redo-container .ff-redo-button,.ff-undo-redo-container .ff-undo-button{background-color:transparent;border:none;border-radius:5px;cursor:pointer;padding:6px;transition:background-color .3s ease,opacity .3s ease}.ff-undo-redo-container .ff-redo-button svg,.ff-undo-redo-container .ff-undo-button svg{opacity:.5}.ff-undo-redo-container .ff-redo-button.active svg,.ff-undo-redo-container .ff-undo-button.active svg{opacity:1}.ff-undo-redo-container .ff-redo-button.active:hover svg,.ff-undo-redo-container .ff-undo-button.active:hover svg{opacity:.8}.ff-keyboard-shortcut-tooltip{position:relative}.ff-keyboard-shortcut-tooltip .ff-tooltip{background-color:#4b4c4d;border-radius:5px;color:#fff;font-size:12px;right:50%;opacity:0;padding:5px 10px;position:absolute;top:100%;transform:translateX(50%);transition:opacity .3s ease,visibility .3s ease;visibility:hidden;white-space:nowrap;z-index:11}.ff-keyboard-shortcut-tooltip#saveFormData .ff-tooltip{padding:6px 12px;top:135%}.ff-keyboard-shortcut-tooltip:hover .ff-tooltip{opacity:1;visibility:visible}.panel{border:1px solid #ebebeb;border-radius:8px;margin-bottom:15px;overflow:hidden}.panel__heading{background:#f5f5f5;border-bottom:1px solid #ebebeb;height:42px}.panel__heading .form-name-editable{border-radius:2px;float:right;font-size:14px;margin:8px 8px 8px 0;max-width:250px;overflow:hidden;padding:4px 8px;text-overflow:ellipsis;white-space:nowrap}.panel__heading .form-name-editable:hover{background-color:#fff;cursor:pointer}.panel__heading .copy-form-shortcode{background-color:#909399;border-radius:2px;color:#fff;cursor:pointer;float:right;margin:8px 8px 8px 0;padding:4px 8px}.panel__heading--btn{padding:3px}.panel__heading .form-inline{float:right;padding:5px}.panel__body{padding:10px 0}.panel__body p{color:#666;font-size:14px;line-height:20px}.panel__body .panel__placeholder,.panel__body--item{background:#fff;box-sizing:border-box;min-height:78px;padding:14px;width:100%}.panel__body--item.no-padding-left{padding-right:0}.panel__body--item:last-child{border-bottom:none}.panel__body--item{margin-bottom:2px;max-width:100%;position:relative}.panel__body--item.selected{background-color:rgba(30,31,33,.05);border-right:3px solid #1a7efb;border-radius:4px}.panel__body--item>.popup-search-element{bottom:-10px;right:50%;opacity:0;position:absolute;transform:translateX(50%);transition:all .3s;visibility:hidden;z-index:3}.panel__body--item.is-editor-inserter>.item-actions-wrapper,.panel__body--item.is-editor-inserter>.popup-search-element,.panel__body--item:hover>.item-actions-wrapper,.panel__body--item:hover>.popup-search-element{opacity:1;visibility:visible}.panel__body--item iframe,.panel__body--item img{max-width:100%}.panel .panel__placeholder{background:#f5f5f5}.panel.panel--info .panel__body,.panel>.panel__body{padding:15px}.el-fluid{width:100%!important}.label-block{display:inline-block;font-weight:500;line-height:1;margin-bottom:10px}.form-group{margin-bottom:15px}.form-control{background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);color:#555;display:block;font-size:14px;height:34px;line-height:1.42857143;padding:6px 12px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}textarea.form-control{height:auto}label.is-required:before{color:red;content:"* "}.el-checkbox-horizontal,.el-radio-horizontal{display:inline-block}.el-checkbox-horizontal .el-checkbox,.el-checkbox-horizontal .el-radio,.el-radio-horizontal .el-checkbox,.el-radio-horizontal .el-radio{display:block;margin-bottom:7px;margin-right:23px;white-space:normal}.el-checkbox-horizontal .el-checkbox+.el-checkbox,.el-checkbox-horizontal .el-checkbox+.el-radio,.el-checkbox-horizontal .el-radio+.el-checkbox,.el-checkbox-horizontal .el-radio+.el-radio,.el-radio-horizontal .el-checkbox+.el-checkbox,.el-radio-horizontal .el-checkbox+.el-radio,.el-radio-horizontal .el-radio+.el-checkbox,.el-radio-horizontal .el-radio+.el-radio{margin-right:23px}.el-checkbox-horizontal .el-checkbox__input,.el-checkbox-horizontal .el-radio__input,.el-radio-horizontal .el-checkbox__input,.el-radio-horizontal .el-radio__input{margin-right:-23px}.form-inline{display:inline-block}.form-inline .el-input{width:auto}.v-form-item{margin-bottom:15px}.v-form-item:last-of-type{margin-bottom:0}.v-form-item label{display:inline-block;margin-top:9px}.settings-page{background-color:#fff}.settings-body{padding:15px}.el-notification__content{text-align:right}.action-buttons .el-button+.el-button{margin-right:0}.el-box-card{box-shadow:none}.el-box-footer,.el-box-header{background-color:#edf1f6;padding:15px}.el-box-body{padding:15px}.el-form-item__force-inline.el-form-item__label{float:right;padding:11px 0 11px 12px}.el-form-item .el-form-item{margin-bottom:10px}.el-form-item__content .line{text-align:center}.el-basic-collapse{border:0;margin-bottom:15px}.el-basic-collapse .el-collapse-item__header{border:0;display:inline-block;padding-right:0}.el-basic-collapse .el-collapse-item__wrap{border:0}.el-basic-collapse .el-collapse-item__content{background-color:#fff;padding:0}.el-collapse-settings{border:0}.el-collapse-settings .el-collapse-item__header{background:#f5f5f3;border:0;border-radius:8px;font-size:16px;padding-right:20px;padding-left:10px}.el-collapse-settings .el-collapse-item__header .el-collapse-item__arrow{font-size:16px;font-weight:500}.el-collapse-settings .el-collapse-item__content{margin-top:15px;padding-bottom:0}.el-collapse-settings .el-collapse-item__arrow{line-height:48px}.el-collapse-settings .el-collapse-item__wrap{background-color:transparent;border-bottom:0;overflow:inherit}.el-popover{text-align:right}.option-fields-section--content .el-form-item__label{color:#1e1f21;font-weight:500;line-height:1;padding-bottom:10px}.option-fields-section--content .el-form-item__content{line-height:1.5;margin-bottom:5px}.option-fields-section--content .el-input-number--mini{line-height:28px}.option-fields-section--content strong{color:#1e1f21;font-weight:600}.el-dropdown-list{border:0;box-shadow:none;margin:0;max-height:280px;min-width:auto;overflow-y:scroll;padding:0;position:static;z-index:10}.el-dropdown-list .el-dropdown-menu__item{border-bottom:1px solid #f1f1f1;font-size:13px;line-height:18px;padding:4px 10px}.el-dropdown-list .el-dropdown-menu__item:last-of-type{border-bottom:0}.el-popper[x-placement^=bottom] .popper__arrow{top:-7px}.el-form-nested.el-form--label-left .el-form-item__label{float:right;padding:10px 0 10px 5px}.el-message{top:40px}.el-tabs--border-card{border-color:#ececec;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.05)}.el-tabs--border-card .el-tabs__header{background-color:transparent;border-top-right-radius:6px;border-top-left-radius:6px;padding:10px 14px}.el-tabs--border-card .el-tabs__header .el-tabs__item{border:0;border-radius:6px;font-size:13px;height:34px;line-height:34px;margin-top:0;padding-right:16px;padding-left:16px}.el-tabs--border-card .el-tabs__header .el-tabs__item:first-child{margin-right:0}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active{background-color:#d1e5fe;color:#1a7efb}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active:hover{color:#1a7efb}.el-button{align-items:center;display:inline-flex;transition:.3s}.el-button .el-loading-mask{border-radius:7px}.el-button .el-loading-mask .el-loading-spinner{margin-top:-12px}.el-button .el-loading-mask .el-loading-spinner .circular{height:24px;width:24px}.el-button span{align-items:center;display:inline-flex}.el-button-group .el-button span{display:inline-block}.el-button--block{justify-content:center;width:100%}.el-button--small .ff-icon{font-size:14px}.el-button--large{font-size:16px;padding:15px 20px}.el-button--soft.el-button--blue{background-color:#ebeef5;border-color:#ebeef5;color:#3b5998}.el-button--soft.el-button--blue:hover{background-color:#3b5998;border-color:#3b5998;color:#fff}.el-button--soft.el-button--primary{background-color:#e8f2ff;border-color:#e8f2ff;color:#1a7efb}.el-button--soft.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--soft.el-button--danger{background-color:#ffefee;border-color:#ffefee;color:#ff6154}.el-button--soft.el-button--danger:hover{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-button--soft.el-button--success{background-color:#e6ffeb;border-color:#e6ffeb;color:#00b27f}.el-button--soft.el-button--success:hover{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-button--soft.el-button--warning{background-color:#fff9ea;border-color:#fff9ea;color:#fcbe2d}.el-button--soft.el-button--warning:hover{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--soft.el-button--info{background-color:#ededed;border-color:#ededed;color:#4b4c4d}.el-button--soft.el-button--info:hover{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--soft.el-button--cyan{background-color:#e7fafe;border-color:#e7fafe;color:#0dcaf0}.el-button--soft.el-button--cyan:hover{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.el-button--soft.el-button--dark{background-color:#e9e9e9;border-color:#e9e9e9;color:#1e1f21}.el-button--soft.el-button--dark:hover{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--soft-2.el-button--primary{background-color:#d1e5fe;border-color:#d1e5fe;color:#1a7efb}.el-button--soft-2.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--icon.el-button--mini{border-radius:4px;padding:7px}.el-button--icon.el-button--small{border-radius:5px;font-size:14px;padding:8px}.el-button--icon.el-button--medium{border-radius:6px;padding:10px}.el-button--text-light{color:#606266}.el-button--info.is-plain{border-color:#ededed}.el-button--dark{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--dark:focus,.el-button--dark:hover{background-color:#3a3a40;border-color:#3a3a40;color:#fff}.el-button--primary:hover{background-color:#1565c9;border-color:#1565c9}.el-pager li{font-weight:600}.form-editor-elements:not(.el-form--label-left):not(.el-form--label-right) .el-form-item__label{line-height:1}.folded .el-dialog__wrapper{right:36px}.el-dialog__wrapper .data-lost-msg{margin-top:10px}.ff-el-banner{border:1px solid #dce0e5;display:inline-block;float:right;height:250px;padding:5px;transition:border .3s;width:200px}.ff-el-banner,.ff-el-banner-group{overflow:hidden}.ff-el-banner-group .ff-el-banner{margin-bottom:30px;margin-left:10px}.ff-el-banner+.ff-el-banner{margin-left:10px}.ff-el-banner img{display:block;height:auto;width:100%}.ff-el-banner-header{background:#909399;color:#fff;font-size:13px;font-weight:400;margin:0;padding:3px 6px;text-align:center}.ff-el-banner-inner-item{height:inherit;overflow:hidden;position:relative}.ff-el-banner:hover .ff-el-banner-text-inside{opacity:1!important;visibility:visible!important}.ff-el-banner-text-inside{display:flex;flex-direction:column;justify-content:center}.ff-el-banner-text-inside-hoverable{bottom:0;color:#fff;right:0;padding:10px;position:absolute;left:0;top:0;transition:all .3s}.ff-el-banner-text-inside .form-title{color:#fff;margin:0 0 10px}.compact td>.cell,.compact th>.cell{white-space:nowrap}.el-tooltip__popper p{margin-bottom:0}.el-dropdown-menu{right:unset;max-width:270px}.el-dropdown-link{cursor:pointer}.el-dropdown-link-lg{color:#1e1f21;font-size:24px;font-weight:600}.el-dropdown-link-lg .el-icon{font-size:20px}.el-switch--small .el-switch__core{height:16px;width:28px!important}.el-switch--small .el-switch__core:after{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core:after{margin-right:-13px}.el-switch--small .el-switch__label *{font-size:13px;font-weight:500}.el-message-box__title{color:#1e1f21;font-weight:500}.el-input-group--append{position:relative}.el-input-group--append .el-input__inner{border-bottom-left-radius:8px;border-top-left-radius:8px}.el-input-group__append,.el-input-group__prepend{background-color:#f2f2f2;border:0;border-radius:5px;display:grid;height:30px;padding:0;position:absolute;text-align:center;top:5px;width:30px}.el-input-group__append:hover,.el-input-group__prepend:hover{background-color:#e0e0e0}.el-input-group__append .el-icon-more,.el-input-group__prepend .el-icon-more{transform:rotate(-90deg)}.el-input-group__append .el-button,.el-input-group__prepend .el-button{margin:0;padding:0}.el-input-group__append{left:4px}.el-input-group__prepend{right:4px}.el-table__fixed,.el-table__fixed-right{background-color:#fff}.el-table__fixed-right:before,.el-table__fixed:before{display:none}.el-radio-button__orig-radio:checked+.el-radio-button__inner{box-shadow:none}.input-with-select{align-items:center;display:flex}.input-with-select.el-input-group--append .el-input__inner{border-bottom-left-radius:0;border-top-left-radius:0}.input-with-select .el-select{background-color:#fff;border:1px solid #dadbdd;height:40px;margin:0}.input-with-select .el-select .el-input__inner{border:0}.input-with-select .el-input-group__append,.input-with-select .el-input-group__prepend{border-radius:0;flex:1;height:auto;right:0;position:inherit;top:0;width:auto}.input-with-select .el-input-group__append:hover,.input-with-select .el-input-group__prepend:hover{background-color:transparent}.input-with-select .el-input-group__prepend .el-select{border-bottom-right-radius:8px;border-left:0;border-top-right-radius:8px}.input-with-select .el-input-group__append .el-select{border-bottom-left-radius:8px;border-right:0;border-top-left-radius:8px}.chain-select-upload-button .el-input-group__append,.chain-select-upload-button .el-input-group__prepend{width:70px}.el-radio-group-dark .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1e1f21;border-color:#1e1f21}.el-radio-group-info .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;border-color:#4b4c4d}.el-table thead .cell{color:#1e1f21;font-weight:500}.el-table--border{border-radius:6px}.ff-input-s1 .el-input .el-select__caret{color:#1e1f21}.ff-input-s1 .el-input .el-icon-arrow-up:before{font-weight:600}.el-radio-button--small:first-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button--small:last-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-input--mini .el-input__inner{border-radius:4px}.el-input--large .el-input__inner{font-size:16px;height:48px;padding-right:20px;padding-left:20px}.el-input-number--mini{line-height:28px}.el-input-number--mini .el-input-number__decrease{border-radius:0 4px 4px 0;right:1px}.el-input-number--mini .el-input-number__increase{border-radius:4px 0 0 4px}.el-input-number__decrease,.el-input-number__increase{background-color:#f2f2f2}.el-dialog__header .title+.text{margin-top:6px}.el-dialog__header .text{margin-bottom:0}.el-dialog__header_group{align-items:center;display:flex}.el-checkbox-horizontal .el-checkbox{display:flex}.el-checkbox-horizontal .el-checkbox__input{align-self:flex-start;padding-top:3px}.el-skeleton__item{border-radius:4px}.list-group{margin:0}.list-group>li.title{background:#ddd;padding:5px 10px}.list-group li{line-height:1.5;margin-bottom:6px}.list-group li>ul{padding-right:10px;padding-left:10px}.flex-container{align-items:center;display:flex}.flex-container .flex-col{flex:1 100%;padding-right:10px;padding-left:10px}.flex-container .flex-col:first-child{padding-right:0}.flex-container .flex-col:last-child{padding-left:0}.hidden-field-item{background-color:#f5f5f5;margin-bottom:10px}.form-step__wrapper.form-step__wrapper{background:#f5f5f5;border:1px solid #f0f0f0;padding:10px}.form-step__start{border-radius:3px 3px 0 0;border-radius:0 0 3px 3px;margin-bottom:10px}.step-start{margin-right:-10px;margin-left:-10px}.step-start__indicator{padding:5px 0;position:relative;text-align:center}.step-start__indicator strong{background:#f5f5f5;color:#000;font-size:14px;font-weight:600;padding:3px 10px;position:relative;z-index:2}.step-start__indicator hr{border:0;border-top:1px solid #e3e3e3;right:10px;position:absolute;left:10px;top:7px;z-index:1}.vddl-list{min-height:78px;padding-right:0}.vddl-placeholder{background:#f5f5f5;min-height:78px;width:100%}.empty-dropzone,.vddl-placeholder{border:1px dashed #ced0d4;border-radius:6px}.empty-dropzone{height:78px;margin:0 10px;position:relative;z-index:2}.empty-dropzone.vddl-dragover{border-color:transparent;height:auto}.empty-dropzone-placeholder{display:table-cell;height:inherit;text-align:center;vertical-align:middle;width:1000px}.empty-dropzone-placeholder .popup-search-element{position:relative;z-index:2}.popup-search-element{background:#4b4c4d;border-radius:50%;color:#fff;cursor:pointer;display:inline-block;font-size:16px;font-weight:700;height:26px;line-height:26px;text-align:center;width:26px}.popup-search-element:hover{background:#1a7efb}.field-option-settings .section-heading{border-bottom:1px solid #f5f5f5;font-size:15px;margin-bottom:16px;margin-top:0;padding-bottom:8px}.item-actions-wrapper{opacity:0;position:absolute;top:0;transition:all .3s;visibility:hidden;z-index:3}.item-actions{background-color:#4b4c4d;border-radius:6px;display:flex;flex-direction:row;overflow:hidden;position:absolute;left:14px;top:8px}.item-actions span{display:none}.item-actions .action-menu-item:hover{background-color:#1a7efb}.item-actions .el-icon{color:#fff;cursor:pointer;padding:10px}.context-menu-active{z-index:5}.context-menu-active span{display:block}.context-menu-active .item-actions{background-color:#2c2c2e;border:1px solid #3a3a3c;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.3);flex-direction:column;max-width:100px;min-width:220px;padding:6px 0;position:absolute;z-index:1000}.context-menu-active .action-menu-item{align-items:center;color:#e9e6e6;cursor:pointer;display:flex;padding:2px 4px;transition:background-color .2s,color .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.context-menu-active .action-menu-item .el-icon{color:#c1bfbf}.context-menu-active .action-menu-item:active{background-color:#4a4a4c}.context-menu-active .context-menu__separator{background-color:#3a3a3c;height:1px;margin:6px 0}.context-menu-active .action-menu-item-danger{color:#ff453a}.context-menu-active .action-menu-item-danger:hover{background-color:#3a2a2a}.hover-action-top-right{left:10px;top:-10px;width:38%}.hover-action-top-right .item-actions{position:inherit;left:auto;top:auto}.hover-action-middle{background-color:rgba(30,31,33,.05);border-radius:4px;height:100%;right:0;width:100%}.item-container{border:1px dashed #ced0d4;border-radius:6px;display:flex;padding:5px 10px}.item-container .splitpanes .splitpanes__pane .ff_custom_button{margin-top:23px}.item-container .col{background:rgba(255,185,0,.08);border-left:1px dashed #ced0d4;box-sizing:border-box;flex-basis:0;flex-grow:1}.item-container .col .panel__body{background:transparent}.item-container .col:last-of-type{border-left:0}.ff-el-form-left .el-form-item__label,.ff-el-form-right .el-form-item__label{float:right!important;line-height:40px;padding-bottom:0;padding-left:10px;width:120px}.ff-el-form-left .el-form-item__content,.ff-el-form-right .el-form-item__content{margin-right:120px}.ff-el-form-left .el-form-item__label{text-align:right}.ff-el-form-right .el-form-item__label{text-align:left}.ff-el-form-top .el-form-item__label{display:inline-block;float:none;line-height:1;padding-bottom:10px;text-align:right}.ff-el-form-top .el-form-item__content{margin-right:auto!important}.action-btn .icon{cursor:pointer;vertical-align:middle}.sr-only{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.editor-inserter__wrapper{height:auto;position:relative}.editor-inserter__wrapper:after{background-color:#fff;box-shadow:4px -4px 8px rgba(30,31,33,.05);content:"";height:14px;right:50%;position:absolute;top:-7px;transform:translateX(50%) rotate(-45deg);width:14px}.editor-inserter__wrapper.is-bottom:after,.editor-inserter__wrapper.is-bottom:before{border-top:none}.editor-inserter__wrapper.is-bottom:before{top:-9px}.editor-inserter__wrapper.is-bottom:after{top:-7px}.editor-inserter__wrapper.is-top:after,.editor-inserter__wrapper.is-top:before{border-bottom:none}.editor-inserter__wrapper.is-top:before{bottom:-9px}.editor-inserter__wrapper.is-top:after{bottom:-7px}.editor-inserter__contents{height:243px;overflow:scroll}.editor-inserter__content-items{display:flex;flex-wrap:wrap;padding:10px}.editor-inserter__content-item{background-color:#fff;border-radius:6px;cursor:pointer;font-size:14px;padding:15px;text-align:center;width:33.3333333333%}.editor-inserter__content-item:hover{background-color:#f5f5f3;color:#1e1f21}.editor-inserter__content-item .icon{font-size:18px;margin-bottom:4px}.editor-inserter__content-item .icon.dashicons{font-family:dashicons}.editor-inserter__content-item div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-inserter__search.editor-inserter__search{padding-bottom:5px;padding-top:5px;width:100%}.editor-inserter__tabs{padding-right:20px;padding-left:20px}.editor-inserter__tabs li:not(:last-child){margin-left:10px}.editor-inserter__tabs li a{border-radius:6px;padding:8px 6px}.search-popup-wrapper{background-color:#fff;border-radius:8px;box-shadow:0 40px 64px -12px rgba(0,0,0,.08),0 0 14px -4px rgba(0,0,0,.05),0 32px 48px -8px rgba(0,0,0,.1);position:fixed;z-index:3}.userContent{border:1px solid #ebedee;max-height:200px;overflow:scroll;padding:20px}.address-field-option{margin-bottom:10px;padding-bottom:10px;width:100%}.address-field-option .el-icon-caret-top,.address-field-option>.el-icon-caret-bottom{border-radius:3px;font-size:18px;margin-top:-2px;padding:2px 4px;transition:.2s}.address-field-option .el-icon-caret-top:hover,.address-field-option>.el-icon-caret-bottom:hover,.address-field-option>.el-icon-caret-top{background-color:#f2f2f2}.address-field-option__settings{position:relative}.address-field-option__settings:after{background-color:#f2f2f2;content:"";height:10px;right:20px;position:absolute;top:-5px;transform:rotate(-134deg);width:10px}.address-field-option__settings.is-open{background:#f2f2f2;border-radius:6px;padding:15px}.vddl-list__handle_scrollable{background:#fff;margin-bottom:10px;margin-top:5px;max-height:190px;overflow:scroll;padding:5px 10px;width:100%}.vddl-handle.handle+.address-field-option{margin-right:10px}.entry_navs a{padding:2px 5px;text-decoration:none}.entry_navs a.active{background:#20a0ff;color:#fff}.entry-multi-texts{display:flex;flex-wrap:wrap;margin-right:-7px;margin-left:-7px}.entry-multi-texts .mult-text-each{padding-right:7px;padding-left:7px;width:32%}.ff_entry_user_change{position:absolute;left:0;top:-5px}.addresss_editor{background:#eaeaea;display:flex;flex-wrap:wrap;padding:20px 20px 10px}.addresss_editor .each_address_field{line-height:1;margin-bottom:20px;padding-right:7px;padding-left:7px;width:47%}.addresss_editor .each_address_field label{color:#1e1f21;display:block;font-weight:500;margin-bottom:10px}.repeat_field_items{display:flex;flex-direction:row;flex-wrap:wrap;overflow:hidden;width:100%}.repeat_field_items .field_item{display:flex;flex-basis:100%;flex:1;flex-direction:column;padding-left:20px}.repeat_field_items .field_item.field_item_action{display:block!important;flex:0.35;padding-left:0}.ff-table,.ff_entry_table_field,table.editor_table{border-collapse:collapse;display:table;text-align:right;white-space:normal;width:100%}.ff-table td,.ff_entry_table_field td,table.editor_table td{border:1px solid #e4e4e4;padding:7px;text-align:right}.ff-table th,.ff_entry_table_field th,table.editor_table th{background:#f5f5f5;border:1px solid #e4e4e4;padding:0 7px}.ff-table .action-buttons-group,.ff_entry_table_field .action-buttons-group,table.editor_table .action-buttons-group{display:flex}.ff-payment-table tbody td{padding:15px 10px}.ff-payment-table thead th{font-size:120%;font-weight:500;padding:15px 10px}.ff-payment-table tfoot th{padding:10px}.ff-payment-table tfoot .text-right{text-align:left}.ff_list_items li{display:flex;list-style:none;overflow:hidden;padding:7px 0}.ff_list_items li .dashicons,.ff_list_items li .dashicons-before:before{line-height:inherit}.ff_list_items li:hover{background:#f7fafc}.ff_list_items li .ff_list_header{color:#1e1f21;font-weight:600;width:180px}.edit_entry_view .el-select{width:100%}.edit_entry_view .el-form-item>label{color:#1e1f21;font-weight:500}.edit_entry_view .el-form-item{margin-bottom:0;padding-bottom:14px;padding-top:14px}.edit_entry_view .el-form-item:nth-child(2n){background:#f9f7f7;padding-right:20px;padding-left:20px}.fluentform-wrapper .json_action{background-color:#ededed;border-radius:5px;color:#606266;cursor:pointer;font-size:16px;height:26px;line-height:26px;margin-left:8px;text-align:center;width:26px}.fluentform-wrapper .json_action:hover{background-color:#dbdbdb}.fluentform-wrapper .show_code{background:#2e2a2a;border:0;color:#fff;line-height:24px;min-height:500px;padding:20px;width:100%}.fluentform-wrapper .entry-details{background-color:#fff}.fluentform-wrapper .entry-details .table{border-collapse:collapse;width:100%}.fluentform-wrapper .entry-details .table tr:nth-child(2n),.fluentform-wrapper .entry-details .table tr:nth-child(odd){background-color:#fff}.fluentform-wrapper .entry-details .table tr td{padding:8px 10px}.fluentform-wrapper .entry-title{border-bottom:1px solid #fdfdfd;font-size:17px;margin:0;padding:15px}.fluentform-wrapper .entry-body,.fluentform-wrapper .entry-field,.fluentform-wrapper .entry-value{padding:6px 10px}.fluentform-wrapper .entry-footer{border-top:1px solid #ececec;margin-top:12px;padding-top:20px}.response_wrapper .response_header{background-color:#eaf2fa;border-bottom:1px solid #fff;font-weight:700;line-height:1.5;padding:7px 10px 7px 7px}.response_wrapper .response_body{border-bottom:1px solid #dfdfdf;line-height:1.8;overflow:hidden;padding:7px 40px 15px 7px}.response_wrapper .response_body *{box-sizing:border-box}.ff-table{border-collapse:collapse;text-align:right;width:100%}.ff-table thead>tr>th{background:#f1f1f1;color:#1e1f21;font-weight:500;padding:7px 10px}.ff-table tbody>tr>td{padding:7px 10px}.ff-table tbody>tr:nth-child(2n)>td{background:#f1f1f1}.ff-table tbody>tr:nth-child(2n-1)>td{background:#fff}.input-image{float:right;height:auto;margin-left:10px;max-width:100%;width:150px}.input-image img{width:100%}.input_file_ext{background:#eee;color:#a7a3a3;display:block;font-size:16px;padding:15px 10px;text-align:center;width:100%}.input_file_ext i{color:#797878;display:block;font-size:22px}.input_file a,.input_file a:hover{text-decoration:none}.entry_info_box{margin-bottom:24px}.entry_info_box_header{align-items:center;display:flex;justify-content:space-between}.entry_info_box_title{align-items:center;color:#1e1f21;display:inline-flex;font-size:17px;font-weight:600}.ff_entry_detail_wrap .ff_card{margin-bottom:24px}.ff_entry_detail_wrap .entry_submission_log_des{overflow-y:auto}.wpf_each_entry{border-bottom:1px solid #ececec;padding:12px 0}.wpf_each_entry:first-child{padding-top:0}.wpf_each_entry:last-child{border-bottom:0;padding-bottom:0}.wpf_entry_label{color:#1e1f21;font-size:14px;font-weight:500;position:relative}.wpf_entry_value{margin-top:8px;white-space:pre-line;word-break:break-all}.wpf_entry_remove{position:absolute;left:0;top:0}.entry_info_body.narrow_items{padding:0 15px 15px}.entry_info_body.narrow_items .wpf_each_entry{margin:0 -15px;padding:10px 15px}.entry_info_body.narrow_items .wpf_each_entry *{word-break:break-all}.entry_info_body.narrow_items .wpf_each_entry p{margin:5px 0}.wpf_entry_value input[type=checkbox]:disabled:checked{border:1px solid #65afd2;opacity:1!important}.wpf_entry_value input[type=checkbox]:disabled{border:1px solid #909399;opacity:1!important}a.input-image{border:1px solid #e3e8ee}a.input-image:hover{border:1px solid gray}a.input-image:hover img{opacity:.8}.show_on_hover{display:none}.el-table__row:hover .show_on_hover{display:inline-block}.show_on_hover .icon-favorite{color:#fcbe2d;font-size:18px}.show_on_hover .icon-favorite.el-icon-star-on{font-size:20px}.show_on_hover .icon-status{color:#303133;font-size:16px}.show_on_hover [class*=el-icon-],.show_on_hover [class^=el-icon-]{margin-right:2px}.inline_actions{margin-right:5px}.inline_item.inline_actions{display:inline-block}.action_button{cursor:pointer}.current_form_name button.el-button.el-button--default.el-button--mini{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:10px}.ff_email_resend_inline+.compact_input{margin-right:10px}.compact_input .el-checkbox__label{padding-right:5px}.ff_report_body{min-height:20px;width:100%}@media print{.ff_nav_action,.form_internal_menu,div#adminmenumain,div#wpadminbar{display:none}.ff_chart_switcher,.ff_print_hide{display:none!important}div#wpcontent{margin-right:0;padding-right:0}html.wp-toolbar{padding:0}.wrap.ff_form_wrap,div#wpcontent{background:#fff}.ff_report_body{right:10px;position:absolute;left:10px;top:0}.ff_form_application_container{margin-top:0!important}.all_report_items{width:100%!important}.ff-table{border-collapse:collapse;float:left;text-align:right;width:auto}}.all_report_items .entriest_chart_wrapper{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.all_report_items .ff_card{margin-bottom:24px}.report_header{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.report_header .title{color:#1e1f21;font-size:16px;font-weight:600}.report_header .ff_chart_switcher span{background:#ededed;border-radius:6px;cursor:pointer;height:30px;line-height:30px;width:30px}.report_header .ff_chart_switcher span.active_chart{background:#1a7efb;color:#fff}.report_header .ff_chart_switcher span.ff_rotate_90{transform:rotate(-90deg)}.report_body{display:flex;flex-wrap:wrap;justify-content:space-between;padding-top:30px;width:100%}.report_body .chart_data{width:50%}.report_body .ff_chart_view{max-width:380px;width:50%}ul.entry_item_list{list-style:disc;list-style-image:none;list-style-position:initial;list-style-type:disc;padding-right:30px}.star_big{display:inline-block;font-size:20px;margin-left:5px;vertical-align:middle!important}.wpf_each_entry ul{list-style:disc;padding-right:14px}.wpf_each_entry ul li:not(:last-child){margin-bottom:5px}.el-table-column--selection .cell{text-overflow:clip!important}.ff-error{background:#ff9800}.ff-error,.ff-success{color:#fff;padding:10px}.ff-success{background:#4caf50}tr.el-table__row td{padding:18px 0}.add_note_wrapper{padding:20px}.fluent_notes .fluent_note_content{background:#eaf2fa;font-size:13px;line-height:160%;padding:10px 15px}.fluent_notes .fluent_note_meta{font-size:11px;padding:5px 15px}.wpf_add_note_box button{margin-top:15px}.wpf_add_note_box{border-bottom:1px solid #ececec;display:block;margin-bottom:20px;overflow:hidden;padding-bottom:30px}span.ff_tag{background:#626261;border-radius:10px;color:#fff;font-size:10px;padding:4px 6px;text-transform:capitalize}.el-table .cell.el-tooltip{max-height:50px;overflow:hidden}.form-editor--sidebar{position:relative}.code{overflow-x:scroll}.search-element{padding:10px 20px}.ff-user-guide{margin-top:-105px;position:relative;text-align:center;z-index:1}.post-form-settings label.el-form-item__label{color:#606266;font-weight:500;margin-top:8px}.transaction_item_small{background:#f7f7f7;margin-bottom:16px}.transaction_item_heading{align-items:center;border-bottom:1px solid #d2d2d2;display:flex;justify-content:space-between;padding:14px 20px}.transaction_item_body{padding:14px 20px}.transaction_item_line{font-size:15px;margin-bottom:10px}.transaction_heading_title{display:inline-block;font-size:16px;font-weight:500}.ff_badge_status_pending{background-color:#fcbe2d}.ff_badge_status_paid{background:#00b27f;border-color:#00b27f;color:#fff}.entry_submission_log .wpf_entry_label{margin-bottom:10px}.entry_submission_log_component{font-weight:700;text-transform:capitalize}.entry_submission_log .log_status_error,.entry_submission_log .log_status_failed{background:#ff6154}.entry_submission_log .log_status_success{background:#00b27f}.ff_report_card+.ff_print_hide{margin-top:40px}.ff_as_container{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);margin-bottom:20px;padding:5px 10px}.ff_as_container .ff_rich_filters{background:#fdfdfd;border:1px solid #efefef;border-radius:4px;padding:10px}.ff_as_container .ff_rich_filters .ff_table{background:#f0f3f7;border:1px solid #dedcdc;box-shadow:none}.ff_as_container .ff_rich_filters .ff_table .filter_name{font-weight:500}.ff_as_container .ff_cond_or{border-bottom:1px dashed #d5dce1;color:gray;line-height:100%;margin:0 0 15px;padding:0;text-align:center}.ff_as_container .ff_cond_or em{background:#fff;font-size:1.2em;font-style:normal;margin:0 10px;padding:0 10px;position:relative;top:9px}@media (min-width:1281px){.ff_screen_editor .form_internal_menu_inner{flex-direction:row}.ff_screen_editor .form_internal_menu_inner .ff_menu{margin-right:0;padding-bottom:0}.ff_screen_conversational_design .ff_menu_back,.ff_screen_editor .ff_menu_back,.ff_screen_entries .ff_menu_back,.ff_screen_inventory_list .ff_menu_back,.ff_screen_msformentries .ff_menu_back,.ff_screen_settings .ff_menu_back{display:flex}.option-fields-section--content .v-row{flex-direction:row}.option-fields-section--content .v-col--50{padding-bottom:0;width:50%}.form-editor--body{padding:50px;width:65%}.form-editor--sidebar{width:35%}}@media (min-width:769px){.ff_header{align-items:center;flex-direction:row}.ff_header_group{margin-left:32px}.ff_menu{display:flex;margin-top:0}.ff_menu_toggle{display:none}.ff_form_wrap{padding-right:24px;padding-left:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_editor,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:0}}@media (min-width:1025px){.all-forms-search,.ff_entries_search_wrap{width:270px}.ff_entries_search_wrap{margin-right:auto}.all-forms-select{width:250px}.ff_layout_section_sidebar{width:280px}.ff_layout_section_container,.ff_layout_section_sidebar{padding:24px}.fluent_activation_wrapper .fluentform_label{width:470px}}@media (max-width:768px){.form_internal_menu{margin-right:-10px}.form_internal_menu ul.ff_setting_menu{float:left;padding-left:10px!important}.form_internal_menu ul.ff_setting_menu li a{padding:10px 3px!important}.form_internal_menu .ff_form_name_inner{max-width:100px}.form_internal_menu #switchScreen{margin-left:0;margin-top:14px}.ff_nav_action{float:left!important;text-align:right!important}input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{min-height:30px}.ff_form_main_nav .plugin-name{display:none}.row-actions{display:inline-block!important}.el-form .el-form-item .el-form-item__label{width:100%!important}.el-form .el-form-item .el-form-item__content{margin-right:0!important}.el-tabs__content{padding:20px 10px!important}.wpf_each_entry a{word-break:break-all}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu{top:0!important}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{display:block}.form_internal_menu_inner{background:#fff;border-radius:8px;box-shadow:0 1px 10px rgba(0,0,0,.2);display:none;flex-direction:column;padding:20px;position:absolute;left:20px;top:38px;width:300px;z-index:9999}.form_internal_menu_inner.active{display:flex}.ff_form_name{padding-bottom:10px;padding-top:10px}.ff_screen_editor .form_internal_menu_inner .ff_menu,.form_internal_menu .ff-navigation-right{margin-right:0}.ff_menu{align-items:flex-start;flex-direction:column;margin-bottom:10px}.ff_menu li{width:100%}.ff_menu li a{display:block;max-width:100%!important}.form_internal_menu .ff-navigation-right{align-items:flex-start}.ff-navigation-right{flex-direction:column}.form_internal_menu .el-button,.form_internal_menu .ff_shortcode_btn{margin-bottom:10px;margin-left:0}.form_internal_menu .ff-navigation-right .ff_more_menu{bottom:0;left:0;top:auto;transform:translateY(0)}.ff_screen_conversational_design .ff_menu,.ff_screen_editor .ff_menu,.ff_screen_entries .ff_menu,.ff_screen_inventory_list .ff_menu,.ff_screen_msformentries .ff_menu,.ff_screen_settings .ff_menu{padding-right:0;padding-left:0}.ff_tools_wrap .ff_settings_sidebar_wrap{height:100%}.ff_settings_sidebar_wrap{flex-shrink:0;right:-240px;position:absolute;transition:.3s;z-index:999}.ff_settings_sidebar_wrap.active{right:-10px}.ff_settings_sidebar_wrap.active .ff_layout_section_sidebar{box-shadow:-2px 1px 10px 0 rgba(30,31,33,.1)}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle{left:-18px}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle .ff-icon:before{content:"\e919"}.ff_sidebar_toggle{display:flex}.ff_header{margin-right:-10px;position:relative}.ff_header .global-search-menu-button{position:absolute;left:60px;top:12px}.conditional-logic{flex-direction:column}.conditional-logic>*{width:100%}.el-radio-button-group{border:0}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner,.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner,.el-radio-button-group .el-radio-button__inner{border-radius:4px}}@media (max-width:425px){label.el-checkbox{display:inline-flex}.el-checkbox__label{white-space:normal}.el-checkbox__input{line-height:1.6}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{margin-left:0}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right a,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right button,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right span{font-size:10px;margin:0 3px;padding:5px 4px!important}#ff_form_entries_app .ff_nav_top .ff_nav_action,#ff_form_entries_app .ff_nav_top .ff_nav_title{margin-bottom:10px;width:100%}.form_internal_menu{margin:0 -10px;width:auto}.form_internal_menu ul.ff_setting_menu li a{font-size:11px}.ff_form_application_container{margin-top:0!important}.ff_form_main_nav .ninja-tab{font-size:12px;margin:0;padding:10px 5px}ul.el-pager{display:none!important}button.el-button.pull-right{float:right!important}.entry_header h3{clear:both;display:block;width:100%!important}.v-row .v-col--33{margin-bottom:15px;padding-left:0;width:100%!important}.v-row .v-col--33:last-child{margin-bottom:0}.option-fields-section--content{padding:15px 5px}.ff-add-confirmation-wrap .el-radio.is-bordered{margin-bottom:10px;margin-left:10px}.ff-add-confirmation-wrap .el-radio.is-bordered+.el-radio.is-bordered{margin-right:0}.ff-form-item-flex{flex-wrap:wrap;gap:10px}.ff_pagination_wrap.mt-4{margin-top:0!important}.ff_pagination{flex-wrap:wrap;margin-top:24px}.ff_pagination .el-pagination__jump{margin:10px 0 0}.ff_all_entries .ff_section_head_content{margin-top:24px}.ff_all_entries .ff_section_head_content .ff_advanced_search{left:unset}.ff_all_entries .ff_entries_details .ff_section_head .lead-title{margin-bottom:10px!important}.ff_all_entries .ff_entries_details .ff_radio_group_wrap{margin-bottom:10px;margin-top:10px}.ff_all_entries .ff_entries_details .ff_radio_group_wrap .ff_radio_group_s2{width:100%}}.el-popover{text-align:right!important;word-break:inherit!important} assets/css/conversational_design.css000064400000006373147600120010013730 0ustar00.browser-frame{border-radius:10px;box-shadow:0 0 3px #e6ecef;max-width:100%;overflow:hidden}.browser-controls{align-items:center;background:#e6ecef;color:#bec4c6;display:flex;height:50px;justify-content:space-around}.window-controls{flex:0 0 60px;margin:0 2%}.window-controls span{background:#ff8585;border-radius:50px;display:inline-block;height:15px;width:15px}.window-controls span.minimise{background:#ffd071}.window-controls span.maximise{background:#74ed94}.page-controls{flex:0 0 70px;margin-right:2%}.page-controls span{display:inline-block;font-size:13px;height:20px;line-height:11px;padding-top:5px;text-align:center;width:30px}.url-bar{color:#889396;flex-grow:1;font-family:monospace;margin-right:2%;overflow:hidden;padding:5px 5px 0 10px}.white-container{background:#fff;border-radius:3px;height:25px}.bar-warning{background:#fa6b05;color:#fff}.bar-warning a{color:#fee;font-size:120%}.browser-frame.ffc_browser_mobile{margin:0 auto;max-width:375px}.ff_tab{border-bottom:1px solid #ececec;display:flex}.ff_tab_item:not(:last-child){margin-right:30px}.ff_tab_item.active .ff_tab_link{color:#1a7efb}.ff_tab_item.active .ff_tab_link:after{width:100%}.ff_tab_link{color:#1e1f21;display:block;font-size:16px;font-weight:500;padding-bottom:16px;position:relative}.ff_tab_link:after{background-color:#1a7efb;bottom:-1px;content:"";height:2px;left:0;position:absolute;transition:.2s;width:0}.ff_tab_center .ff_tab_item{flex:1;text-align:center}.fcc_conversational_design{align-items:stretch;display:flex;flex-direction:row;justify-content:flex-start;min-height:80vh;padding:30px}.ffc_design_sidebar{background-color:#fff;border-radius:8px;flex-shrink:0;width:350px}.ffc_design_container{padding:0 0 24px 24px;width:100%}.ffc_design_elements .el-form-item{align-items:center;display:flex;justify-content:space-between}.ffc_design_elements .el-form-item:after,.ffc_design_elements .el-form-item:before{display:none}.ffc_design_elements .el-form-item__label{float:none;line-height:inherit;padding-right:0}.ffc_design_elements .el-form-item__content{line-height:inherit}.ffc_design_elements .el-form-item__content:after,.ffc_design_elements .el-form-item__content:before{display:none}.ffc_design_elements .el-form-item.fcc_label_top{flex-direction:column}.ffc_design_elements .el-form-item.fcc_label_top .el-form-item__label{padding-bottom:15px;width:100%}.ffc_design_elements .el-form-item.fcc_label_top .el-form-item__content{width:100%}.ffc_design_elements .el-select{margin-bottom:10px;width:100%}.ffc_design_elements .ff_file_upload_wrap{margin-bottom:15px}.ffc_sidebar_header{padding-bottom:24px}.ffc_sidebar_body .el-form-item{margin-bottom:10px}.ffc_sidebar_body .ffc_design_submit{margin-top:35px;text-align:center}.ffc_meta_settings{max-width:900px}.ffc_meta_settings_form h5{border-bottom:1px solid #ececec;margin-bottom:30px;margin-top:40px;padding-bottom:20px}.ffc_sharing_settings .ff_card{margin-bottom:24px}div#ff_conversation_form_design_app{display:block;overflow:hidden}#fcc_iframe_holder{border-bottom-left-radius:8px;border-bottom-right-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.08),0 2px 12px rgba(0,0,0,.06)}#fcc_iframe_holder iframe{border-radius:8px}.fcc_pro_message{background:#fef6f1;font-size:13px;margin:10px 0;padding:15px;text-align:center}.fcc_pro_message a{display:block;margin-top:10px} assets/css/element-ui-css-rtl.css000064400000677626147600120010013020 0ustar00@font-face{font-display:"auto";font-family:element-icons;font-style:normal;font-weight:400;src:url(../fonts/element-icons.woff?313f7dacf2076822059d2dca26dedfc6) format("woff"),url(../fonts/element-icons.ttf?4520188144a17fb24a6af28a70dae0ce) format("truetype")}[class*=" el-icon-"],[class^=el-icon-]{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:element-icons!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;vertical-align:baseline}.el-icon-ice-cream-round:before{content:"\e6a0"}.el-icon-ice-cream-square:before{content:"\e6a3"}.el-icon-lollipop:before{content:"\e6a4"}.el-icon-potato-strips:before{content:"\e6a5"}.el-icon-milk-tea:before{content:"\e6a6"}.el-icon-ice-drink:before{content:"\e6a7"}.el-icon-ice-tea:before{content:"\e6a9"}.el-icon-coffee:before{content:"\e6aa"}.el-icon-orange:before{content:"\e6ab"}.el-icon-pear:before{content:"\e6ac"}.el-icon-apple:before{content:"\e6ad"}.el-icon-cherry:before{content:"\e6ae"}.el-icon-watermelon:before{content:"\e6af"}.el-icon-grape:before{content:"\e6b0"}.el-icon-refrigerator:before{content:"\e6b1"}.el-icon-goblet-square-full:before{content:"\e6b2"}.el-icon-goblet-square:before{content:"\e6b3"}.el-icon-goblet-full:before{content:"\e6b4"}.el-icon-goblet:before{content:"\e6b5"}.el-icon-cold-drink:before{content:"\e6b6"}.el-icon-coffee-cup:before{content:"\e6b8"}.el-icon-water-cup:before{content:"\e6b9"}.el-icon-hot-water:before{content:"\e6ba"}.el-icon-ice-cream:before{content:"\e6bb"}.el-icon-dessert:before{content:"\e6bc"}.el-icon-sugar:before{content:"\e6bd"}.el-icon-tableware:before{content:"\e6be"}.el-icon-burger:before{content:"\e6bf"}.el-icon-knife-fork:before{content:"\e6c1"}.el-icon-fork-spoon:before{content:"\e6c2"}.el-icon-chicken:before{content:"\e6c3"}.el-icon-food:before{content:"\e6c4"}.el-icon-dish-1:before{content:"\e6c5"}.el-icon-dish:before{content:"\e6c6"}.el-icon-moon-night:before{content:"\e6ee"}.el-icon-moon:before{content:"\e6f0"}.el-icon-cloudy-and-sunny:before{content:"\e6f1"}.el-icon-partly-cloudy:before{content:"\e6f2"}.el-icon-cloudy:before{content:"\e6f3"}.el-icon-sunny:before{content:"\e6f6"}.el-icon-sunset:before{content:"\e6f7"}.el-icon-sunrise-1:before{content:"\e6f8"}.el-icon-sunrise:before{content:"\e6f9"}.el-icon-heavy-rain:before{content:"\e6fa"}.el-icon-lightning:before{content:"\e6fb"}.el-icon-light-rain:before{content:"\e6fc"}.el-icon-wind-power:before{content:"\e6fd"}.el-icon-baseball:before{content:"\e712"}.el-icon-soccer:before{content:"\e713"}.el-icon-football:before{content:"\e715"}.el-icon-basketball:before{content:"\e716"}.el-icon-ship:before{content:"\e73f"}.el-icon-truck:before{content:"\e740"}.el-icon-bicycle:before{content:"\e741"}.el-icon-mobile-phone:before{content:"\e6d3"}.el-icon-service:before{content:"\e6d4"}.el-icon-key:before{content:"\e6e2"}.el-icon-unlock:before{content:"\e6e4"}.el-icon-lock:before{content:"\e6e5"}.el-icon-watch:before{content:"\e6fe"}.el-icon-watch-1:before{content:"\e6ff"}.el-icon-timer:before{content:"\e702"}.el-icon-alarm-clock:before{content:"\e703"}.el-icon-map-location:before{content:"\e704"}.el-icon-delete-location:before{content:"\e705"}.el-icon-add-location:before{content:"\e706"}.el-icon-location-information:before{content:"\e707"}.el-icon-location-outline:before{content:"\e708"}.el-icon-location:before{content:"\e79e"}.el-icon-place:before{content:"\e709"}.el-icon-discover:before{content:"\e70a"}.el-icon-first-aid-kit:before{content:"\e70b"}.el-icon-trophy-1:before{content:"\e70c"}.el-icon-trophy:before{content:"\e70d"}.el-icon-medal:before{content:"\e70e"}.el-icon-medal-1:before{content:"\e70f"}.el-icon-stopwatch:before{content:"\e710"}.el-icon-mic:before{content:"\e711"}.el-icon-copy-document:before{content:"\e718"}.el-icon-full-screen:before{content:"\e719"}.el-icon-switch-button:before{content:"\e71b"}.el-icon-aim:before{content:"\e71c"}.el-icon-crop:before{content:"\e71d"}.el-icon-odometer:before{content:"\e71e"}.el-icon-time:before{content:"\e71f"}.el-icon-bangzhu:before{content:"\e724"}.el-icon-close-notification:before{content:"\e726"}.el-icon-microphone:before{content:"\e727"}.el-icon-turn-off-microphone:before{content:"\e728"}.el-icon-position:before{content:"\e729"}.el-icon-postcard:before{content:"\e72a"}.el-icon-message:before{content:"\e72b"}.el-icon-chat-line-square:before{content:"\e72d"}.el-icon-chat-dot-square:before{content:"\e72e"}.el-icon-chat-dot-round:before{content:"\e72f"}.el-icon-chat-square:before{content:"\e730"}.el-icon-chat-line-round:before{content:"\e731"}.el-icon-chat-round:before{content:"\e732"}.el-icon-set-up:before{content:"\e733"}.el-icon-turn-off:before{content:"\e734"}.el-icon-open:before{content:"\e735"}.el-icon-connection:before{content:"\e736"}.el-icon-link:before{content:"\e737"}.el-icon-cpu:before{content:"\e738"}.el-icon-thumb:before{content:"\e739"}.el-icon-female:before{content:"\e73a"}.el-icon-male:before{content:"\e73b"}.el-icon-guide:before{content:"\e73c"}.el-icon-news:before{content:"\e73e"}.el-icon-price-tag:before{content:"\e744"}.el-icon-discount:before{content:"\e745"}.el-icon-wallet:before{content:"\e747"}.el-icon-coin:before{content:"\e748"}.el-icon-money:before{content:"\e749"}.el-icon-bank-card:before{content:"\e74a"}.el-icon-box:before{content:"\e74b"}.el-icon-present:before{content:"\e74c"}.el-icon-sell:before{content:"\e6d5"}.el-icon-sold-out:before{content:"\e6d6"}.el-icon-shopping-bag-2:before{content:"\e74d"}.el-icon-shopping-bag-1:before{content:"\e74e"}.el-icon-shopping-cart-2:before{content:"\e74f"}.el-icon-shopping-cart-1:before{content:"\e750"}.el-icon-shopping-cart-full:before{content:"\e751"}.el-icon-smoking:before{content:"\e752"}.el-icon-no-smoking:before{content:"\e753"}.el-icon-house:before{content:"\e754"}.el-icon-table-lamp:before{content:"\e755"}.el-icon-school:before{content:"\e756"}.el-icon-office-building:before{content:"\e757"}.el-icon-toilet-paper:before{content:"\e758"}.el-icon-notebook-2:before{content:"\e759"}.el-icon-notebook-1:before{content:"\e75a"}.el-icon-files:before{content:"\e75b"}.el-icon-collection:before{content:"\e75c"}.el-icon-receiving:before{content:"\e75d"}.el-icon-suitcase-1:before{content:"\e760"}.el-icon-suitcase:before{content:"\e761"}.el-icon-film:before{content:"\e763"}.el-icon-collection-tag:before{content:"\e765"}.el-icon-data-analysis:before{content:"\e766"}.el-icon-pie-chart:before{content:"\e767"}.el-icon-data-board:before{content:"\e768"}.el-icon-data-line:before{content:"\e76d"}.el-icon-reading:before{content:"\e769"}.el-icon-magic-stick:before{content:"\e76a"}.el-icon-coordinate:before{content:"\e76b"}.el-icon-mouse:before{content:"\e76c"}.el-icon-brush:before{content:"\e76e"}.el-icon-headset:before{content:"\e76f"}.el-icon-umbrella:before{content:"\e770"}.el-icon-scissors:before{content:"\e771"}.el-icon-mobile:before{content:"\e773"}.el-icon-attract:before{content:"\e774"}.el-icon-monitor:before{content:"\e775"}.el-icon-search:before{content:"\e778"}.el-icon-takeaway-box:before{content:"\e77a"}.el-icon-paperclip:before{content:"\e77d"}.el-icon-printer:before{content:"\e77e"}.el-icon-document-add:before{content:"\e782"}.el-icon-document:before{content:"\e785"}.el-icon-document-checked:before{content:"\e786"}.el-icon-document-copy:before{content:"\e787"}.el-icon-document-delete:before{content:"\e788"}.el-icon-document-remove:before{content:"\e789"}.el-icon-tickets:before{content:"\e78b"}.el-icon-folder-checked:before{content:"\e77f"}.el-icon-folder-delete:before{content:"\e780"}.el-icon-folder-remove:before{content:"\e781"}.el-icon-folder-add:before{content:"\e783"}.el-icon-folder-opened:before{content:"\e784"}.el-icon-folder:before{content:"\e78a"}.el-icon-edit-outline:before{content:"\e764"}.el-icon-edit:before{content:"\e78c"}.el-icon-date:before{content:"\e78e"}.el-icon-c-scale-to-original:before{content:"\e7c6"}.el-icon-view:before{content:"\e6ce"}.el-icon-loading:before{content:"\e6cf"}.el-icon-rank:before{content:"\e6d1"}.el-icon-sort-down:before{content:"\e7c4"}.el-icon-sort-up:before{content:"\e7c5"}.el-icon-sort:before{content:"\e6d2"}.el-icon-finished:before{content:"\e6cd"}.el-icon-refresh-left:before{content:"\e6c7"}.el-icon-refresh-right:before{content:"\e6c8"}.el-icon-refresh:before{content:"\e6d0"}.el-icon-video-play:before{content:"\e7c0"}.el-icon-video-pause:before{content:"\e7c1"}.el-icon-d-arrow-right:before{content:"\e6dc"}.el-icon-d-arrow-left:before{content:"\e6dd"}.el-icon-arrow-up:before{content:"\e6e1"}.el-icon-arrow-down:before{content:"\e6df"}.el-icon-arrow-right:before{content:"\e6e0"}.el-icon-arrow-left:before{content:"\e6de"}.el-icon-top-right:before{content:"\e6e7"}.el-icon-top-left:before{content:"\e6e8"}.el-icon-top:before{content:"\e6e6"}.el-icon-bottom:before{content:"\e6eb"}.el-icon-right:before{content:"\e6e9"}.el-icon-back:before{content:"\e6ea"}.el-icon-bottom-right:before{content:"\e6ec"}.el-icon-bottom-left:before{content:"\e6ed"}.el-icon-caret-top:before{content:"\e78f"}.el-icon-caret-bottom:before{content:"\e790"}.el-icon-caret-right:before{content:"\e791"}.el-icon-caret-left:before{content:"\e792"}.el-icon-d-caret:before{content:"\e79a"}.el-icon-share:before{content:"\e793"}.el-icon-menu:before{content:"\e798"}.el-icon-s-grid:before{content:"\e7a6"}.el-icon-s-check:before{content:"\e7a7"}.el-icon-s-data:before{content:"\e7a8"}.el-icon-s-opportunity:before{content:"\e7aa"}.el-icon-s-custom:before{content:"\e7ab"}.el-icon-s-claim:before{content:"\e7ad"}.el-icon-s-finance:before{content:"\e7ae"}.el-icon-s-comment:before{content:"\e7af"}.el-icon-s-flag:before{content:"\e7b0"}.el-icon-s-marketing:before{content:"\e7b1"}.el-icon-s-shop:before{content:"\e7b4"}.el-icon-s-open:before{content:"\e7b5"}.el-icon-s-management:before{content:"\e7b6"}.el-icon-s-ticket:before{content:"\e7b7"}.el-icon-s-release:before{content:"\e7b8"}.el-icon-s-home:before{content:"\e7b9"}.el-icon-s-promotion:before{content:"\e7ba"}.el-icon-s-operation:before{content:"\e7bb"}.el-icon-s-unfold:before{content:"\e7bc"}.el-icon-s-fold:before{content:"\e7a9"}.el-icon-s-platform:before{content:"\e7bd"}.el-icon-s-order:before{content:"\e7be"}.el-icon-s-cooperation:before{content:"\e7bf"}.el-icon-bell:before{content:"\e725"}.el-icon-message-solid:before{content:"\e799"}.el-icon-video-camera:before{content:"\e772"}.el-icon-video-camera-solid:before{content:"\e796"}.el-icon-camera:before{content:"\e779"}.el-icon-camera-solid:before{content:"\e79b"}.el-icon-download:before{content:"\e77c"}.el-icon-upload2:before{content:"\e77b"}.el-icon-upload:before{content:"\e7c3"}.el-icon-picture-outline-round:before{content:"\e75f"}.el-icon-picture-outline:before{content:"\e75e"}.el-icon-picture:before{content:"\e79f"}.el-icon-close:before{content:"\e6db"}.el-icon-check:before{content:"\e6da"}.el-icon-plus:before{content:"\e6d9"}.el-icon-minus:before{content:"\e6d8"}.el-icon-help:before{content:"\e73d"}.el-icon-s-help:before{content:"\e7b3"}.el-icon-circle-close:before{content:"\e78d"}.el-icon-circle-check:before{content:"\e720"}.el-icon-circle-plus-outline:before{content:"\e723"}.el-icon-remove-outline:before{content:"\e722"}.el-icon-zoom-out:before{content:"\e776"}.el-icon-zoom-in:before{content:"\e777"}.el-icon-error:before{content:"\e79d"}.el-icon-success:before{content:"\e79c"}.el-icon-circle-plus:before{content:"\e7a0"}.el-icon-remove:before{content:"\e7a2"}.el-icon-info:before{content:"\e7a1"}.el-icon-question:before{content:"\e7a4"}.el-icon-warning-outline:before{content:"\e6c9"}.el-icon-warning:before{content:"\e7a3"}.el-icon-goods:before{content:"\e7c2"}.el-icon-s-goods:before{content:"\e7b2"}.el-icon-star-off:before{content:"\e717"}.el-icon-star-on:before{content:"\e797"}.el-icon-more-outline:before{content:"\e6cc"}.el-icon-more:before{content:"\e794"}.el-icon-phone-outline:before{content:"\e6cb"}.el-icon-phone:before{content:"\e795"}.el-icon-user:before{content:"\e6e3"}.el-icon-user-solid:before{content:"\e7a5"}.el-icon-setting:before{content:"\e6ca"}.el-icon-s-tools:before{content:"\e7ac"}.el-icon-delete:before{content:"\e6d7"}.el-icon-delete-solid:before{content:"\e7c9"}.el-icon-eleme:before{content:"\e7c7"}.el-icon-platform-eleme:before{content:"\e7ca"}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-right:5px}.el-icon--left{margin-left:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(-1turn)}} @font-face{font-display:"auto";font-family:element-icons;font-style:normal;font-weight:400;src:url(../fonts/vendor/element-ui/packages/theme-chalk/src/element-icons.woff?313f7dacf2076822059d2dca26dedfc6) format("woff"),url(../fonts/vendor/element-ui/packages/theme-chalk/src/element-icons.ttf?4520188144a17fb24a6af28a70dae0ce) format("truetype")}[class*=" el-icon-"],[class^=el-icon-]{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:element-icons!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;vertical-align:baseline}.el-icon-ice-cream-round:before{content:"\e6a0"}.el-icon-ice-cream-square:before{content:"\e6a3"}.el-icon-lollipop:before{content:"\e6a4"}.el-icon-potato-strips:before{content:"\e6a5"}.el-icon-milk-tea:before{content:"\e6a6"}.el-icon-ice-drink:before{content:"\e6a7"}.el-icon-ice-tea:before{content:"\e6a9"}.el-icon-coffee:before{content:"\e6aa"}.el-icon-orange:before{content:"\e6ab"}.el-icon-pear:before{content:"\e6ac"}.el-icon-apple:before{content:"\e6ad"}.el-icon-cherry:before{content:"\e6ae"}.el-icon-watermelon:before{content:"\e6af"}.el-icon-grape:before{content:"\e6b0"}.el-icon-refrigerator:before{content:"\e6b1"}.el-icon-goblet-square-full:before{content:"\e6b2"}.el-icon-goblet-square:before{content:"\e6b3"}.el-icon-goblet-full:before{content:"\e6b4"}.el-icon-goblet:before{content:"\e6b5"}.el-icon-cold-drink:before{content:"\e6b6"}.el-icon-coffee-cup:before{content:"\e6b8"}.el-icon-water-cup:before{content:"\e6b9"}.el-icon-hot-water:before{content:"\e6ba"}.el-icon-ice-cream:before{content:"\e6bb"}.el-icon-dessert:before{content:"\e6bc"}.el-icon-sugar:before{content:"\e6bd"}.el-icon-tableware:before{content:"\e6be"}.el-icon-burger:before{content:"\e6bf"}.el-icon-knife-fork:before{content:"\e6c1"}.el-icon-fork-spoon:before{content:"\e6c2"}.el-icon-chicken:before{content:"\e6c3"}.el-icon-food:before{content:"\e6c4"}.el-icon-dish-1:before{content:"\e6c5"}.el-icon-dish:before{content:"\e6c6"}.el-icon-moon-night:before{content:"\e6ee"}.el-icon-moon:before{content:"\e6f0"}.el-icon-cloudy-and-sunny:before{content:"\e6f1"}.el-icon-partly-cloudy:before{content:"\e6f2"}.el-icon-cloudy:before{content:"\e6f3"}.el-icon-sunny:before{content:"\e6f6"}.el-icon-sunset:before{content:"\e6f7"}.el-icon-sunrise-1:before{content:"\e6f8"}.el-icon-sunrise:before{content:"\e6f9"}.el-icon-heavy-rain:before{content:"\e6fa"}.el-icon-lightning:before{content:"\e6fb"}.el-icon-light-rain:before{content:"\e6fc"}.el-icon-wind-power:before{content:"\e6fd"}.el-icon-baseball:before{content:"\e712"}.el-icon-soccer:before{content:"\e713"}.el-icon-football:before{content:"\e715"}.el-icon-basketball:before{content:"\e716"}.el-icon-ship:before{content:"\e73f"}.el-icon-truck:before{content:"\e740"}.el-icon-bicycle:before{content:"\e741"}.el-icon-mobile-phone:before{content:"\e6d3"}.el-icon-service:before{content:"\e6d4"}.el-icon-key:before{content:"\e6e2"}.el-icon-unlock:before{content:"\e6e4"}.el-icon-lock:before{content:"\e6e5"}.el-icon-watch:before{content:"\e6fe"}.el-icon-watch-1:before{content:"\e6ff"}.el-icon-timer:before{content:"\e702"}.el-icon-alarm-clock:before{content:"\e703"}.el-icon-map-location:before{content:"\e704"}.el-icon-delete-location:before{content:"\e705"}.el-icon-add-location:before{content:"\e706"}.el-icon-location-information:before{content:"\e707"}.el-icon-location-outline:before{content:"\e708"}.el-icon-location:before{content:"\e79e"}.el-icon-place:before{content:"\e709"}.el-icon-discover:before{content:"\e70a"}.el-icon-first-aid-kit:before{content:"\e70b"}.el-icon-trophy-1:before{content:"\e70c"}.el-icon-trophy:before{content:"\e70d"}.el-icon-medal:before{content:"\e70e"}.el-icon-medal-1:before{content:"\e70f"}.el-icon-stopwatch:before{content:"\e710"}.el-icon-mic:before{content:"\e711"}.el-icon-copy-document:before{content:"\e718"}.el-icon-full-screen:before{content:"\e719"}.el-icon-switch-button:before{content:"\e71b"}.el-icon-aim:before{content:"\e71c"}.el-icon-crop:before{content:"\e71d"}.el-icon-odometer:before{content:"\e71e"}.el-icon-time:before{content:"\e71f"}.el-icon-bangzhu:before{content:"\e724"}.el-icon-close-notification:before{content:"\e726"}.el-icon-microphone:before{content:"\e727"}.el-icon-turn-off-microphone:before{content:"\e728"}.el-icon-position:before{content:"\e729"}.el-icon-postcard:before{content:"\e72a"}.el-icon-message:before{content:"\e72b"}.el-icon-chat-line-square:before{content:"\e72d"}.el-icon-chat-dot-square:before{content:"\e72e"}.el-icon-chat-dot-round:before{content:"\e72f"}.el-icon-chat-square:before{content:"\e730"}.el-icon-chat-line-round:before{content:"\e731"}.el-icon-chat-round:before{content:"\e732"}.el-icon-set-up:before{content:"\e733"}.el-icon-turn-off:before{content:"\e734"}.el-icon-open:before{content:"\e735"}.el-icon-connection:before{content:"\e736"}.el-icon-link:before{content:"\e737"}.el-icon-cpu:before{content:"\e738"}.el-icon-thumb:before{content:"\e739"}.el-icon-female:before{content:"\e73a"}.el-icon-male:before{content:"\e73b"}.el-icon-guide:before{content:"\e73c"}.el-icon-news:before{content:"\e73e"}.el-icon-price-tag:before{content:"\e744"}.el-icon-discount:before{content:"\e745"}.el-icon-wallet:before{content:"\e747"}.el-icon-coin:before{content:"\e748"}.el-icon-money:before{content:"\e749"}.el-icon-bank-card:before{content:"\e74a"}.el-icon-box:before{content:"\e74b"}.el-icon-present:before{content:"\e74c"}.el-icon-sell:before{content:"\e6d5"}.el-icon-sold-out:before{content:"\e6d6"}.el-icon-shopping-bag-2:before{content:"\e74d"}.el-icon-shopping-bag-1:before{content:"\e74e"}.el-icon-shopping-cart-2:before{content:"\e74f"}.el-icon-shopping-cart-1:before{content:"\e750"}.el-icon-shopping-cart-full:before{content:"\e751"}.el-icon-smoking:before{content:"\e752"}.el-icon-no-smoking:before{content:"\e753"}.el-icon-house:before{content:"\e754"}.el-icon-table-lamp:before{content:"\e755"}.el-icon-school:before{content:"\e756"}.el-icon-office-building:before{content:"\e757"}.el-icon-toilet-paper:before{content:"\e758"}.el-icon-notebook-2:before{content:"\e759"}.el-icon-notebook-1:before{content:"\e75a"}.el-icon-files:before{content:"\e75b"}.el-icon-collection:before{content:"\e75c"}.el-icon-receiving:before{content:"\e75d"}.el-icon-suitcase-1:before{content:"\e760"}.el-icon-suitcase:before{content:"\e761"}.el-icon-film:before{content:"\e763"}.el-icon-collection-tag:before{content:"\e765"}.el-icon-data-analysis:before{content:"\e766"}.el-icon-pie-chart:before{content:"\e767"}.el-icon-data-board:before{content:"\e768"}.el-icon-data-line:before{content:"\e76d"}.el-icon-reading:before{content:"\e769"}.el-icon-magic-stick:before{content:"\e76a"}.el-icon-coordinate:before{content:"\e76b"}.el-icon-mouse:before{content:"\e76c"}.el-icon-brush:before{content:"\e76e"}.el-icon-headset:before{content:"\e76f"}.el-icon-umbrella:before{content:"\e770"}.el-icon-scissors:before{content:"\e771"}.el-icon-mobile:before{content:"\e773"}.el-icon-attract:before{content:"\e774"}.el-icon-monitor:before{content:"\e775"}.el-icon-search:before{content:"\e778"}.el-icon-takeaway-box:before{content:"\e77a"}.el-icon-paperclip:before{content:"\e77d"}.el-icon-printer:before{content:"\e77e"}.el-icon-document-add:before{content:"\e782"}.el-icon-document:before{content:"\e785"}.el-icon-document-checked:before{content:"\e786"}.el-icon-document-copy:before{content:"\e787"}.el-icon-document-delete:before{content:"\e788"}.el-icon-document-remove:before{content:"\e789"}.el-icon-tickets:before{content:"\e78b"}.el-icon-folder-checked:before{content:"\e77f"}.el-icon-folder-delete:before{content:"\e780"}.el-icon-folder-remove:before{content:"\e781"}.el-icon-folder-add:before{content:"\e783"}.el-icon-folder-opened:before{content:"\e784"}.el-icon-folder:before{content:"\e78a"}.el-icon-edit-outline:before{content:"\e764"}.el-icon-edit:before{content:"\e78c"}.el-icon-date:before{content:"\e78e"}.el-icon-c-scale-to-original:before{content:"\e7c6"}.el-icon-view:before{content:"\e6ce"}.el-icon-loading:before{content:"\e6cf"}.el-icon-rank:before{content:"\e6d1"}.el-icon-sort-down:before{content:"\e7c4"}.el-icon-sort-up:before{content:"\e7c5"}.el-icon-sort:before{content:"\e6d2"}.el-icon-finished:before{content:"\e6cd"}.el-icon-refresh-left:before{content:"\e6c7"}.el-icon-refresh-right:before{content:"\e6c8"}.el-icon-refresh:before{content:"\e6d0"}.el-icon-video-play:before{content:"\e7c0"}.el-icon-video-pause:before{content:"\e7c1"}.el-icon-d-arrow-right:before{content:"\e6dc"}.el-icon-d-arrow-left:before{content:"\e6dd"}.el-icon-arrow-up:before{content:"\e6e1"}.el-icon-arrow-down:before{content:"\e6df"}.el-icon-arrow-right:before{content:"\e6e0"}.el-icon-arrow-left:before{content:"\e6de"}.el-icon-top-right:before{content:"\e6e7"}.el-icon-top-left:before{content:"\e6e8"}.el-icon-top:before{content:"\e6e6"}.el-icon-bottom:before{content:"\e6eb"}.el-icon-right:before{content:"\e6e9"}.el-icon-back:before{content:"\e6ea"}.el-icon-bottom-right:before{content:"\e6ec"}.el-icon-bottom-left:before{content:"\e6ed"}.el-icon-caret-top:before{content:"\e78f"}.el-icon-caret-bottom:before{content:"\e790"}.el-icon-caret-right:before{content:"\e791"}.el-icon-caret-left:before{content:"\e792"}.el-icon-d-caret:before{content:"\e79a"}.el-icon-share:before{content:"\e793"}.el-icon-menu:before{content:"\e798"}.el-icon-s-grid:before{content:"\e7a6"}.el-icon-s-check:before{content:"\e7a7"}.el-icon-s-data:before{content:"\e7a8"}.el-icon-s-opportunity:before{content:"\e7aa"}.el-icon-s-custom:before{content:"\e7ab"}.el-icon-s-claim:before{content:"\e7ad"}.el-icon-s-finance:before{content:"\e7ae"}.el-icon-s-comment:before{content:"\e7af"}.el-icon-s-flag:before{content:"\e7b0"}.el-icon-s-marketing:before{content:"\e7b1"}.el-icon-s-shop:before{content:"\e7b4"}.el-icon-s-open:before{content:"\e7b5"}.el-icon-s-management:before{content:"\e7b6"}.el-icon-s-ticket:before{content:"\e7b7"}.el-icon-s-release:before{content:"\e7b8"}.el-icon-s-home:before{content:"\e7b9"}.el-icon-s-promotion:before{content:"\e7ba"}.el-icon-s-operation:before{content:"\e7bb"}.el-icon-s-unfold:before{content:"\e7bc"}.el-icon-s-fold:before{content:"\e7a9"}.el-icon-s-platform:before{content:"\e7bd"}.el-icon-s-order:before{content:"\e7be"}.el-icon-s-cooperation:before{content:"\e7bf"}.el-icon-bell:before{content:"\e725"}.el-icon-message-solid:before{content:"\e799"}.el-icon-video-camera:before{content:"\e772"}.el-icon-video-camera-solid:before{content:"\e796"}.el-icon-camera:before{content:"\e779"}.el-icon-camera-solid:before{content:"\e79b"}.el-icon-download:before{content:"\e77c"}.el-icon-upload2:before{content:"\e77b"}.el-icon-upload:before{content:"\e7c3"}.el-icon-picture-outline-round:before{content:"\e75f"}.el-icon-picture-outline:before{content:"\e75e"}.el-icon-picture:before{content:"\e79f"}.el-icon-close:before{content:"\e6db"}.el-icon-check:before{content:"\e6da"}.el-icon-plus:before{content:"\e6d9"}.el-icon-minus:before{content:"\e6d8"}.el-icon-help:before{content:"\e73d"}.el-icon-s-help:before{content:"\e7b3"}.el-icon-circle-close:before{content:"\e78d"}.el-icon-circle-check:before{content:"\e720"}.el-icon-circle-plus-outline:before{content:"\e723"}.el-icon-remove-outline:before{content:"\e722"}.el-icon-zoom-out:before{content:"\e776"}.el-icon-zoom-in:before{content:"\e777"}.el-icon-error:before{content:"\e79d"}.el-icon-success:before{content:"\e79c"}.el-icon-circle-plus:before{content:"\e7a0"}.el-icon-remove:before{content:"\e7a2"}.el-icon-info:before{content:"\e7a1"}.el-icon-question:before{content:"\e7a4"}.el-icon-warning-outline:before{content:"\e6c9"}.el-icon-warning:before{content:"\e7a3"}.el-icon-goods:before{content:"\e7c2"}.el-icon-s-goods:before{content:"\e7b2"}.el-icon-star-off:before{content:"\e717"}.el-icon-star-on:before{content:"\e797"}.el-icon-more-outline:before{content:"\e6cc"}.el-icon-more:before{content:"\e794"}.el-icon-phone-outline:before{content:"\e6cb"}.el-icon-phone:before{content:"\e795"}.el-icon-user:before{content:"\e6e3"}.el-icon-user-solid:before{content:"\e7a5"}.el-icon-setting:before{content:"\e6ca"}.el-icon-s-tools:before{content:"\e7ac"}.el-icon-delete:before{content:"\e6d7"}.el-icon-delete-solid:before{content:"\e7c9"}.el-icon-eleme:before{content:"\e7c7"}.el-icon-platform-eleme:before{content:"\e7ca"}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-right:5px}.el-icon--left{margin-left:5px}@keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.el-pagination{color:#303133;font-weight:700;padding:2px 5px;white-space:nowrap}.el-pagination:after,.el-pagination:before{content:"";display:table}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){box-sizing:border-box;display:inline-block;font-size:13px;height:28px;line-height:28px;min-width:35.5px;vertical-align:top}.el-pagination .el-input__inner{-moz-appearance:textfield;line-height:normal;text-align:center}.el-pagination .el-input__suffix{left:0;transform:scale(.8)}.el-pagination .el-select .el-input{margin:0 5px;width:100px}.el-pagination .el-select .el-input .el-input__inner{border-radius:3px;padding-left:25px}.el-pagination button{background:transparent;border:none;padding:0 6px}.el-pagination button:focus{outline:none}.el-pagination button:hover{color:#1a7efb}.el-pagination button:disabled{background-color:#fff;color:#afb3ba;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat;background-color:#fff;background-size:16px;color:#303133;cursor:pointer;margin:0}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-left:12px}.el-pagination .btn-next{padding-right:12px}.el-pagination .el-pager li.disabled{color:#afb3ba;cursor:not-allowed}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;height:22px;line-height:22px;min-width:22px}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{color:#606266;font-weight:400;margin:0 0 0 10px}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-right:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#1a7efb}.el-pagination__total{color:#606266;font-weight:400;margin-left:10px}.el-pagination__jump{color:#606266;font-weight:400;margin-right:24px}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:left}.el-pagination__editor{border-radius:3px;box-sizing:border-box;height:28px;line-height:18px;margin:0 2px;padding:0 2px;text-align:center}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:#ededed;border-radius:2px;color:#606266;margin:0 5px;min-width:30px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .el-pager li.disabled{color:#afb3ba}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev:disabled{color:#afb3ba}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#1a7efb}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#1a7efb;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager{display:inline-block;font-size:0;list-style:none;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:top}.el-pager .more:before{line-height:30px}.el-pager li{background:#fff;box-sizing:border-box;cursor:pointer;display:inline-block;font-size:13px;height:28px;line-height:28px;margin:0;min-width:35.5px;padding:0 4px;text-align:center;vertical-align:top}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{color:#303133;line-height:28px}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#afb3ba}.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pager li.active+li{border-right:0}.el-pager li:hover{color:#1a7efb}.el-pager li.active{color:#1a7efb;cursor:default}.el-dialog{background:#fff;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;margin:0 auto 50px;position:relative;width:50%}.el-dialog.is-fullscreen{height:100%;margin-bottom:0;margin-top:0;overflow:auto;width:100%}.el-dialog__wrapper{bottom:0;right:0;margin:0;overflow:auto;position:fixed;left:0;top:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:16px;outline:none;padding:0;position:absolute;left:20px;top:20px}.el-dialog__headerbtn .el-dialog__close{color:#4b4c4d}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#1a7efb}.el-dialog__title{color:#303133;font-size:18px;line-height:24px}.el-dialog__body{color:#606266;font-size:14px;padding:30px 20px;word-break:break-all}.el-dialog__footer{box-sizing:border-box;padding:10px 20px 20px;text-align:left}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{padding:25px 25px 30px;text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{animation:dialog-fade-in .3s}.dialog-fade-leave-active{animation:dialog-fade-out .3s}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.el-autocomplete{display:inline-block;position:relative}.el-autocomplete-suggestion{background-color:#fff;border:1px solid #e4e7ed;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0}.el-autocomplete-suggestion__wrap{box-sizing:border-box;max-height:280px;padding:10px 0}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{color:#606266;cursor:pointer;font-size:14px;line-height:34px;list-style:none;margin:0;overflow:hidden;padding:0 20px;text-overflow:ellipsis;white-space:nowrap}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{border-top:1px solid #000;margin-top:6px}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{color:#999;font-size:20px;height:100px;line-height:100px;text-align:center}.el-autocomplete-suggestion.is-loading li:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{color:#606266;display:inline-block;font-size:14px;position:relative}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{border-right:none;padding-right:5px;padding-left:5px;position:relative}.el-dropdown .el-dropdown__caret-button:before{background:hsla(0,0%,100%,.5);bottom:5px;content:"";display:block;right:0;position:absolute;top:5px;width:1px}.el-dropdown .el-dropdown__caret-button.el-button--default:before{background:hsla(220,4%,86%,.5)}.el-dropdown .el-dropdown__caret-button:hover:not(.is-disabled):before{bottom:0;top:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-right:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown [disabled]{color:#bbb;cursor:not-allowed}.el-dropdown-menu{background-color:#fff;border:1px solid #ebeef5;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);right:0;margin:5px 0;padding:10px 0;position:absolute;top:0;z-index:10}.el-dropdown-menu__item{color:#606266;cursor:pointer;font-size:14px;line-height:36px;list-style:none;margin:0;outline:none;padding:0 20px}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#e8f2ff;color:#4898fc}.el-dropdown-menu__item i{margin-left:5px}.el-dropdown-menu__item--divided{border-top:1px solid #ebeef5;margin-top:6px;position:relative}.el-dropdown-menu__item--divided:before{background-color:#fff;content:"";display:block;height:6px;margin:0 -20px}.el-dropdown-menu__item.is-disabled{color:#bbb;cursor:default;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{font-size:14px;line-height:30px;padding:0 17px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{font-size:13px;line-height:27px;padding:0 15px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{font-size:12px;line-height:24px;padding:0 10px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{background-color:#fff;border-left:1px solid #e6e6e6;list-style:none;margin:0;padding-right:0;position:relative}.el-menu:after,.el-menu:before{content:"";display:table}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-left:none}.el-menu--horizontal>.el-menu-item{border-bottom:2px solid transparent;color:#909399;float:right;height:60px;line-height:60px;margin:0}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-submenu{float:right}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:none}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #1a7efb;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{border-bottom:2px solid transparent;color:#909399;height:60px;line-height:60px}.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{margin-right:8px;margin-top:-3px;position:static;vertical-align:middle}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;color:#909399;float:none;height:36px;line-height:36px;padding:0 10px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{color:#303133;outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #1a7efb;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;text-align:center;vertical-align:middle;width:24px}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{display:inline-block;height:0;overflow:hidden;visibility:hidden;width:0}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{border:1px solid #e4e7ed;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);right:100%;margin-right:5px;position:absolute;top:0;z-index:10}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu--popup{border:none;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);min-width:200px;padding:5px 0;z-index:100}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-right:5px;margin-left:5px}.el-menu-item{box-sizing:border-box;color:#303133;cursor:pointer;font-size:14px;height:56px;line-height:56px;list-style:none;padding:0 20px;position:relative;transition:border-color .3s,background-color .3s,color .3s;white-space:nowrap}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{background-color:#e8f2ff;outline:none}.el-menu-item.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-menu-item [class^=el-icon-]{font-size:18px;margin-left:5px;text-align:center;vertical-align:middle;width:24px}.el-menu-item.is-active{color:#1a7efb}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-right:0}.el-submenu__title{box-sizing:border-box;color:#303133;cursor:pointer;font-size:14px;height:56px;line-height:56px;list-style:none;padding:0 20px;position:relative;transition:border-color .3s,background-color .3s,color .3s;white-space:nowrap}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{background-color:#e8f2ff;outline:none}.el-submenu__title.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-submenu__title:hover{background-color:#e8f2ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;min-width:200px;padding:0 45px}.el-submenu__icon-arrow{font-size:12px;margin-top:-7px;position:absolute;left:20px;top:50%;transition:transform .3s}.el-submenu.is-active .el-submenu__title{border-bottom-color:#1a7efb}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotate(-180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{background:none!important;cursor:not-allowed;opacity:.25}.el-submenu [class^=el-icon-]{font-size:18px;margin-left:5px;text-align:center;vertical-align:middle;width:24px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{color:#909399;font-size:12px;line-height:normal;padding:7px 20px 7px 0}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{opacity:0;transition:.2s}.el-radio-group{display:inline-block;font-size:0;line-height:1;vertical-align:middle}.el-radio-button,.el-radio-button__inner{display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:#fff;border:1px solid #dadbdd;border-right:0;border-radius:0;box-sizing:border-box;color:#606266;cursor:pointer;font-size:14px;font-weight:500;line-height:1;margin:0;padding:12px 20px;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#1a7efb}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-right:5px}.el-radio-button:first-child .el-radio-button__inner{border-right:1px solid #dadbdd;border-radius:0 7px 7px 0;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1a7efb;border-color:#1a7efb;box-shadow:1px 0 0 0 #1a7efb;color:#fff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{background-color:#fff;background-image:none;border-color:#ebeef5;box-shadow:none;color:#afb3ba;cursor:not-allowed}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:7px 0 0 7px}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:7px}.el-radio-button--medium .el-radio-button__inner{border-radius:0;font-size:14px;padding:10px 20px}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:13px;padding:8px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:8px 11px}.el-radio-button--mini .el-radio-button__inner{border-radius:0;font-size:12px;padding:7px 15px}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){box-shadow:0 0 2px 2px #1a7efb}.el-switch{align-items:center;display:inline-flex;font-size:14px;height:20px;line-height:20px;position:relative;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{color:#303133;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;height:20px;transition:.2s;vertical-align:middle}.el-switch__label.is-active{color:#1a7efb}.el-switch__label--left{margin-left:10px}.el-switch__label--right{margin-right:10px}.el-switch__label *{display:inline-block;font-size:14px;line-height:1}.el-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.el-switch__core{background:#edeae9;border:1px solid #edeae9;border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-block;height:20px;margin:0;outline:none;position:relative;transition:border-color .3s,background-color .3s;vertical-align:middle;width:40px}.el-switch__core:after{background-color:#fff;border-radius:100%;content:"";height:16px;right:1px;position:absolute;top:1px;transition:all .3s;width:16px}.el-switch.is-checked .el-switch__core{background-color:#00b27f;border-color:#00b27f}.el-switch.is-checked .el-switch__core:after{right:100%;margin-right:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{right:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{left:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{background-color:#fff;border:1px solid #e4e7ed;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0;position:absolute;z-index:1001}.el-select-dropdown.is-multiple .el-select-dropdown__item{padding-left:40px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{background-color:#fff;color:#1a7efb}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e6da";font-family:element-icons;font-size:12px;font-weight:700;position:absolute;left:20px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{color:#999;font-size:14px;margin:0;padding:10px 0;text-align:center}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:6px 0}.el-select-dropdown__item{box-sizing:border-box;color:#606266;cursor:pointer;font-size:14px;height:34px;line-height:34px;overflow:hidden;padding:0 20px;position:relative;text-overflow:ellipsis;white-space:nowrap}.el-select-dropdown__item.is-disabled{color:#afb3ba;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#1a7efb;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{list-style:none;margin:0;padding:0;position:relative}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{background:#e4e7ed;bottom:12px;content:"";display:block;height:1px;right:20px;position:absolute;left:20px}.el-select-group__title{color:#4b4c4d;font-size:12px;line-height:30px;padding-right:20px}.el-select-group .el-select-dropdown__item{padding-right:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#afb3ba}.el-select .el-input__inner{cursor:pointer;padding-left:35px}.el-select .el-input__inner:focus{border-color:#1a7efb}.el-select .el-input .el-select__caret{color:#afb3ba;cursor:pointer;font-size:14px;transform:rotate(-180deg);transition:transform .3s}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(0deg)}.el-select .el-input .el-select__caret.is-show-close{border-radius:100%;color:#afb3ba;font-size:14px;text-align:center;transform:rotate(-180deg);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-select .el-input.is-focus .el-input__inner{border-color:#1a7efb}.el-select>.el-input{display:block}.el-select__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;color:#666;font-size:14px;height:28px;margin-right:15px;outline:none;padding:0}.el-select__input.is-mini{height:14px}.el-select__close{color:#afb3ba;cursor:pointer;font-size:14px;line-height:18px;position:absolute;left:25px;top:8px;z-index:1000}.el-select__close:hover{color:#909399}.el-select__tags{align-items:center;display:flex;flex-wrap:wrap;line-height:normal;position:absolute;top:50%;transform:translateY(-50%);white-space:normal;z-index:1}.el-select__tags-text{overflow:hidden;text-overflow:ellipsis}.el-select .el-tag{align-items:center;background-color:#f0f2f5;border-color:transparent;box-sizing:border-box;display:flex;margin:2px 6px 2px 0;max-width:100%}.el-select .el-tag__close.el-icon-close{background-color:#afb3ba;color:#fff;flex-shrink:0;top:0}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-select .el-tag__close.el-icon-close:before{display:block;transform:translateY(.5px)}.el-table{background-color:#fff;box-sizing:border-box;color:#606266;flex:1;font-size:14px;max-width:100%;overflow:hidden;position:relative;width:100%}.el-table__empty-block{align-items:center;display:flex;justify-content:center;min-height:60px;text-align:center;width:100%}.el-table__empty-text{color:#909399;line-height:60px;width:50%}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{color:#666;cursor:pointer;font-size:12px;height:20px;position:relative;transition:transform .2s ease-in-out}.el-table__expand-icon--expanded{transform:rotate(-90deg)}.el-table__expand-icon>.el-icon{right:50%;margin-right:-5px;margin-top:-5px;position:absolute;top:50%}.el-table__expanded-cell{background-color:#fff}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-left:0}.el-table--fit .el-table__cell.gutter{border-left-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th.el-table__cell{background:#f5f7fa}.el-table .el-table__cell{box-sizing:border-box;min-width:0;padding:12px 0;position:relative;text-align:right;text-overflow:ellipsis;vertical-align:middle}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:left}.el-table .el-table__cell.gutter{border-bottom-width:0;border-left-width:0;padding:0;width:15px}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table--medium .el-table__cell{padding:10px 0}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:8px 0}.el-table--mini{font-size:12px}.el-table--mini .el-table__cell{padding:6px 0}.el-table tr{background-color:#fff}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:1px solid #ececec}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:#fff;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table th.el-table__cell>.cell{box-sizing:border-box;display:inline-block;padding-right:10px;padding-left:10px;position:relative;vertical-align:middle;width:100%}.el-table th.el-table__cell>.cell.highlight{color:#1a7efb}.el-table th.el-table__cell.required>div:before{background:#ff4d51;border-radius:50%;content:"";display:inline-block;height:8px;margin-left:5px;vertical-align:middle;width:8px}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table .cell{box-sizing:border-box;line-height:23px;overflow:hidden;padding-right:10px;padding-left:10px;text-overflow:ellipsis;white-space:normal;word-break:break-all}.el-table .cell.el-tooltip{min-width:50px;white-space:nowrap}.el-table--border,.el-table--group{border:1px solid #ececec}.el-table--border:after,.el-table--group:after,.el-table:before{background-color:#ececec;content:"";position:absolute;z-index:1}.el-table--border:after,.el-table--group:after{height:100%;left:0;top:0;width:1px}.el-table:before{bottom:0;height:1px;right:0;width:100%}.el-table--border{border-bottom:none;border-left:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border .el-table__cell{border-left:1px solid #ececec}.el-table--border .el-table__cell:first-child .cell{padding-right:10px}.el-table--border th.el-table__cell,.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:1px solid #ececec}.el-table--hidden{visibility:hidden}.el-table__fixed,.el-table__fixed-right{box-shadow:0 0 10px rgba(0,0,0,.12);right:0;overflow-x:hidden;overflow-y:hidden;position:absolute;top:0}.el-table__fixed-right:before,.el-table__fixed:before{background-color:#ebeef5;bottom:0;content:"";height:1px;right:0;position:absolute;width:100%;z-index:4}.el-table__fixed-right-patch{background-color:#fff;border-bottom:1px solid #ececec;position:absolute;left:0;top:-1px}.el-table__fixed-right{right:auto;left:0;top:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{right:auto;left:0}.el-table__fixed-header-wrapper{right:0;position:absolute;top:0;z-index:3}.el-table__fixed-footer-wrapper{bottom:0;right:0;position:absolute;z-index:3}.el-table__fixed-footer-wrapper tbody td.el-table__cell{background-color:#f5f7fa;border-top:1px solid #ececec;color:#606266}.el-table__fixed-body-wrapper{right:0;overflow:hidden;position:absolute;top:37px;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td.el-table__cell{border-top:1px solid #ececec}.el-table__body,.el-table__footer,.el-table__header{border-collapse:separate;table-layout:fixed}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-right:1px solid #ececec}.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-left:1px solid #ececec}.el-table .caret-wrapper{align-items:center;cursor:pointer;display:inline-flex;flex-direction:column;height:34px;overflow:initial;position:relative;vertical-align:middle;width:24px}.el-table .sort-caret{border:5px solid transparent;height:0;right:7px;position:absolute;width:0}.el-table .sort-caret.ascending{border-bottom-color:#afb3ba;top:5px}.el-table .sort-caret.descending{border-top-color:#afb3ba;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#1a7efb}.el-table .descending .sort-caret.descending{border-top-color:#1a7efb}.el-table .hidden-columns{position:absolute;visibility:hidden;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell,.el-table--striped .el-table__body tr.el-table__row--striped.selection-row td.el-table__cell{background-color:#e8f2ff}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.selection-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row.selection-row>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:#f5f7fa}.el-table__body tr.current-row>td.el-table__cell,.el-table__body tr.selection-row>td.el-table__cell{background-color:#e8f2ff}.el-table__column-resize-proxy{border-right:1px solid #ececec;bottom:0;right:200px;position:absolute;top:0;width:0;z-index:10}.el-table__column-filter-trigger{cursor:pointer;display:inline-block;line-height:34px}.el-table__column-filter-trigger i{color:#4b4c4d;font-size:12px;transform:scale(.75)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;height:20px;line-height:20px;margin-left:3px;text-align:center;width:20px}.el-table-column--selection .cell{padding-right:14px;padding-left:14px}.el-table-filter{background-color:#fff;border:1px solid #ebeef5;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-table-filter__list{list-style:none;margin:0;min-width:100px;padding:5px 0}.el-table-filter__list-item{cursor:pointer;font-size:14px;line-height:36px;padding:0 10px}.el-table-filter__list-item:hover{background-color:#e8f2ff;color:#4898fc}.el-table-filter__list-item.is-active{background-color:#1a7efb;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:transparent;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-table-filter__bottom button:hover{color:#1a7efb}.el-table-filter__bottom button:focus{outline:none}.el-table-filter__bottom button.is-disabled{color:#afb3ba;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-bottom:8px;margin-right:5px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#f2f6fc}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table.is-week-mode .el-date-table__row.current div{background-color:#f2f6fc}.el-date-table td{box-sizing:border-box;cursor:pointer;height:30px;padding:4px 0;position:relative;text-align:center;width:32px}.el-date-table td div{box-sizing:border-box;height:30px;padding:3px 0}.el-date-table td span{border-radius:50%;display:block;height:24px;right:50%;line-height:24px;margin:0 auto;position:absolute;transform:translateX(50%);width:24px}.el-date-table td.next-month,.el-date-table td.prev-month{color:#afb3ba}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#1a7efb;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#1a7efb}.el-date-table td.in-range div,.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-date-table td.current:not(.disabled) span{background-color:#1a7efb;color:#fff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#1a7efb}.el-date-table td.start-date div{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table td.end-date div{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table td.disabled div{background-color:#f5f7fa;color:#afb3ba;cursor:not-allowed;opacity:1}.el-date-table td.selected div{background-color:#f2f6fc;border-radius:15px;margin-right:5px;margin-left:5px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#1a7efb;border-radius:15px;color:#fff}.el-date-table td.week{color:#606266;font-size:80%}.el-date-table th{border-bottom:1px solid #ebeef5;color:#606266;font-weight:400;padding:5px}.el-month-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-month-table td{cursor:pointer;padding:8px 0;text-align:center}.el-month-table td div{box-sizing:border-box;height:48px;padding:6px 0}.el-month-table td.today .cell{color:#1a7efb;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;color:#afb3ba;cursor:not-allowed}.el-month-table td.disabled .cell:hover{color:#afb3ba}.el-month-table td .cell{border-radius:18px;color:#606266;display:block;height:36px;line-height:36px;margin:0 auto;width:60px}.el-month-table td .cell:hover{color:#1a7efb}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{background-color:#1a7efb;color:#fff}.el-month-table td.start-date div{border-bottom-right-radius:24px;border-top-right-radius:24px}.el-month-table td.end-date div{border-bottom-left-radius:24px;border-top-left-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#1a7efb}.el-year-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{cursor:pointer;padding:20px 3px;text-align:center}.el-year-table td.today .cell{color:#1a7efb;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;color:#afb3ba;cursor:not-allowed}.el-year-table td.disabled .cell:hover{color:#afb3ba}.el-year-table td .cell{color:#606266;display:block;height:32px;line-height:32px;margin:0 auto;width:48px}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#1a7efb}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{height:28px;position:relative;text-align:center}.el-date-range-picker__header [class*=arrow-left]{float:right}.el-date-range-picker__header [class*=arrow-right]{float:left}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-left:50px}.el-date-range-picker__content{box-sizing:border-box;float:right;margin:0;padding:16px;width:50%}.el-date-range-picker__content.is-left{border-left:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-right:50px;margin-left:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:left}.el-date-range-picker__time-header{border-bottom:1px solid #e4e4e4;box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-range-picker__time-header>.el-icon-arrow-right{color:#303133;display:table-cell;font-size:20px;vertical-align:middle}.el-date-range-picker__time-picker-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-range-picker__time-picker-wrap .el-picker-panel{background:#fff;position:absolute;left:0;top:13px;z-index:1}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-picker__time-header{border-bottom:1px solid #e4e4e4;box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{border-bottom:1px solid #ebeef5;margin-bottom:0;padding-bottom:12px}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{color:#606266;cursor:pointer;font-size:16px;font-weight:500;line-height:22px;padding:0 5px;text-align:center}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#1a7efb}.el-date-picker__prev-btn{float:right}.el-date-picker__next-btn{float:left}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{cursor:pointer;float:right;line-height:30px;margin-right:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{margin:0;max-height:200px}.time-select-item{font-size:14px;line-height:20px;padding:8px 10px}.time-select-item.selected:not(.disabled){color:#1a7efb;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;cursor:pointer;font-weight:700}.el-date-editor{display:inline-block;position:relative;text-align:right}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{color:#afb3ba;float:right;font-size:14px;line-height:32px;margin-right:-5px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;color:#606266;display:inline-block;font-size:14px;height:100%;margin:0;outline:none;padding:0;text-align:center;width:39%}.el-date-editor .el-range-input::-moz-placeholder{color:#afb3ba}.el-date-editor .el-range-input::placeholder{color:#afb3ba}.el-date-editor .el-range-separator{color:#303133;display:inline-block;font-size:14px;height:100%;line-height:32px;margin:0;padding:0 5px;text-align:center;width:5%}.el-date-editor .el-range__close-icon{color:#afb3ba;display:inline-block;float:left;font-size:14px;line-height:32px;width:25px}.el-range-editor.el-input__inner{align-items:center;display:inline-flex;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#1a7efb}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{font-size:14px;line-height:28px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{font-size:13px;line-height:24px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{font-size:12px;line-height:20px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#afb3ba;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#afb3ba;cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:#afb3ba}.el-range-editor.is-disabled input::placeholder{color:#afb3ba}.el-range-editor.is-disabled .el-range-separator{color:#afb3ba}.el-picker-panel{background:#fff;border:1px solid #e4e7ed;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);color:#606266;line-height:30px;margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{clear:both;content:"";display:table}.el-picker-panel__content{margin:15px;position:relative}.el-picker-panel__footer{background-color:#fff;border-top:1px solid #e4e4e4;font-size:0;padding:4px;position:relative;text-align:left}.el-picker-panel__shortcut{background-color:transparent;border:0;color:#606266;cursor:pointer;display:block;font-size:14px;line-height:28px;outline:none;padding-right:12px;text-align:right;width:100%}.el-picker-panel__shortcut:hover{color:#1a7efb}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#1a7efb}.el-picker-panel__btn{background-color:transparent;border:1px solid #dcdcdc;border-radius:2px;color:#333;cursor:pointer;font-size:12px;line-height:24px;outline:none;padding:0 20px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{background:transparent;border:0;color:#303133;cursor:pointer;font-size:12px;margin-top:8px;outline:none}.el-picker-panel__icon-btn:hover{color:#1a7efb}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{background-color:#fff;border-left:1px solid #e4e4e4;bottom:0;box-sizing:border-box;overflow:auto;padding-top:6px;position:absolute;top:0;width:110px}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-right:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{display:inline-block;max-height:190px;overflow:auto;position:relative;vertical-align:top;width:50%}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;overflow:hidden;text-align:center}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{color:#909399;cursor:pointer;font-size:12px;height:30px;right:0;line-height:30px;position:absolute;text-align:center;width:100%;z-index:1}.el-time-spinner__arrow:hover{color:#1a7efb}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__list{list-style:none;margin:0}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;height:80px;width:100%}.el-time-spinner__item{color:#606266;font-size:12px;height:32px;line-height:32px}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#afb3ba;cursor:not-allowed}.el-time-panel{background-color:#fff;border:1px solid #e4e7ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:content-box;right:0;margin:5px 0;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:180px;z-index:1000}.el-time-panel__content{font-size:0;overflow:hidden;position:relative}.el-time-panel__content:after,.el-time-panel__content:before{border-bottom:1px solid #e4e7ed;border-top:1px solid #e4e7ed;box-sizing:border-box;content:"";height:32px;right:0;margin-top:-15px;padding-top:6px;position:absolute;left:0;text-align:right;top:50%;z-index:-1}.el-time-panel__content:after{right:50%;margin-right:12%;margin-left:12%}.el-time-panel__content:before{margin-right:12%;margin-left:12%;padding-right:50%}.el-time-panel__content.has-seconds:after{right:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-right:33.3333333333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;box-sizing:border-box;height:36px;line-height:25px;padding:4px;text-align:left}.el-time-panel__btn{background-color:transparent;border:none;color:#303133;cursor:pointer;font-size:12px;line-height:28px;margin:0 5px;outline:none;padding:0 5px}.el-time-panel__btn.confirm{color:#1a7efb;font-weight:800}.el-time-range-picker{overflow:visible;width:354px}.el-time-range-picker__content{padding:10px;position:relative;text-align:center}.el-time-range-picker__cell{box-sizing:border-box;display:inline-block;margin:0;padding:4px 7px 7px;width:50%}.el-time-range-picker__header{font-size:14px;margin-bottom:5px;text-align:center}.el-time-range-picker__body{border:1px solid #e4e7ed;border-radius:2px}.el-popover{background:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);color:#606266;font-size:14px;line-height:1.4;min-width:150px;padding:12px;position:absolute;text-align:justify;word-break:break-all;z-index:2000}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.v-modal-enter{animation:v-modal-in .2s ease}.v-modal-leave{animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:#000;height:100%;right:0;opacity:.5;position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-message-box{backface-visibility:hidden;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);display:inline-block;font-size:18px;overflow:hidden;padding-bottom:10px;text-align:right;vertical-align:middle;width:420px}.el-message-box__wrapper{bottom:0;right:0;position:fixed;left:0;text-align:center;top:0}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.el-message-box__header{padding:15px 15px 10px;position:relative}.el-message-box__title{color:#303133;font-size:18px;line-height:1;margin-bottom:0;padding-right:0}.el-message-box__headerbtn{background:transparent;border:none;cursor:pointer;font-size:16px;outline:none;padding:0;position:absolute;left:15px;top:15px}.el-message-box__headerbtn .el-message-box__close{color:#4b4c4d}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#1a7efb}.el-message-box__content{color:#606266;font-size:14px;padding:10px 15px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#ff6154}.el-message-box__status{font-size:24px!important;position:absolute;top:50%;transform:translateY(-50%)}.el-message-box__status:before{padding-right:1px}.el-message-box__status+.el-message-box__message{padding-right:36px;padding-left:12px}.el-message-box__status.el-icon-success{color:#00b27f}.el-message-box__status.el-icon-info{color:#4b4c4d}.el-message-box__status.el-icon-warning{color:#fcbe2d}.el-message-box__status.el-icon-error{color:#ff6154}.el-message-box__message{margin:0}.el-message-box__message p{line-height:24px;margin:0}.el-message-box__errormsg{color:#ff6154;font-size:12px;margin-top:2px;min-height:18px}.el-message-box__btns{padding:5px 15px 0;text-align:left}.el-message-box__btns button:nth-child(2){margin-right:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{align-items:center;display:flex;justify-content:center;position:relative}.el-message-box--center .el-message-box__status{padding-left:5px;position:relative;text-align:center;top:auto;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-right:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-right:27px;padding-left:27px}.msgbox-fade-enter-active{animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{animation:msgbox-fade-out .3s}@keyframes msgbox-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes msgbox-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{content:"";display:table}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{color:#afb3ba;font-weight:700;margin:0 9px}.el-breadcrumb__separator[class*=icon]{font-weight:400;margin:0 6px}.el-breadcrumb__item{float:right}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{color:#303133;font-weight:700;text-decoration:none;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#1a7efb;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{color:#606266;cursor:text;font-weight:400}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:right}.el-form--label-top .el-form-item__label{display:inline-block;float:none;padding:0 0 10px;text-align:right}.el-form--inline .el-form-item{display:inline-block;margin-left:10px;vertical-align:top}.el-form--inline .el-form-item__label{display:inline-block;float:none}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{content:"";display:table}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini.el-form-item{margin-bottom:18px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:right}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{box-sizing:border-box;color:#606266;float:right;font-size:14px;line-height:40px;padding:0 0 0 12px;text-align:left;vertical-align:middle}.el-form-item__content{font-size:14px;line-height:40px;position:relative}.el-form-item__content:after,.el-form-item__content:before{content:"";display:table}.el-form-item__content:after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#ff6154;font-size:12px;right:0;line-height:1;padding-top:4px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;right:auto;margin-right:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{color:#ff6154;content:"*";margin-left:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#ff6154}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#ff6154}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{margin:0 0 15px;padding:0;position:relative}.el-tabs__active-bar{background-color:#1a7efb;bottom:0;height:2px;right:0;list-style:none;position:absolute;transition:transform .3s cubic-bezier(.645,.045,.355,1);z-index:1}.el-tabs__new-tab{border:1px solid #d3dce6;border-radius:3px;color:#d3dce6;cursor:pointer;float:left;font-size:12px;height:18px;line-height:18px;margin:12px 10px 9px 0;text-align:center;transition:all .15s;width:18px}.el-tabs__new-tab .el-icon-plus{transform:scale(.8)}.el-tabs__new-tab:hover{color:#1a7efb}.el-tabs__nav-wrap{margin-bottom:-1px;overflow:hidden;position:relative}.el-tabs__nav-wrap:after{background-color:#e4e7ed;bottom:0;content:"";height:2px;right:0;position:absolute;width:100%;z-index:1}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{color:#909399;cursor:pointer;font-size:12px;line-height:44px;position:absolute}.el-tabs__nav-next{left:0}.el-tabs__nav-prev{right:0}.el-tabs__nav{float:right;position:relative;transition:transform .3s;white-space:nowrap;z-index:2}.el-tabs__nav.is-stretch{display:flex;min-width:100%}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{box-sizing:border-box;color:#303133;display:inline-block;font-size:14px;font-weight:500;height:40px;line-height:40px;list-style:none;padding:0 20px;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus.is-active.is-focus:not(:active){border-radius:3px;box-shadow:inset 0 0 2px 2px #1a7efb}.el-tabs__item .el-icon-close{border-radius:50%;margin-right:5px;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1)}.el-tabs__item .el-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .el-icon-close:hover{background-color:#afb3ba;color:#fff}.el-tabs__item.is-active{color:#1a7efb}.el-tabs__item:hover{color:#1a7efb;cursor:pointer}.el-tabs__item.is-disabled{color:#afb3ba;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{font-size:12px;height:14px;line-height:15px;overflow:hidden;position:relative;left:-2px;top:-1px;transform-origin:0% 50%;vertical-align:middle;width:0}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-right:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-right:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-right:13px;padding-left:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-right:20px;padding-left:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close{width:14px}.el-tabs--border-card{background:#fff;border:1px solid #dadbdd;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:1px solid transparent;color:#909399;margin-top:-1px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-right:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:#fff;border-right-color:#dadbdd;border-left-color:#dadbdd;color:#1a7efb}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#1a7efb}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#afb3ba}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-right:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-right:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-left:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-right:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-left:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dadbdd}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-bottom:0;margin-top:-1px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{bottom:auto;height:auto;top:0;width:2px}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{cursor:pointer;height:30px;line-height:30px;text-align:center;width:100%}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(-90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{right:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{bottom:auto;height:100%;top:0;width:2px}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:right;margin-bottom:0;margin-left:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-left:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{right:auto;left:0}.el-tabs--left .el-tabs__item.is-left{text-align:left}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border:1px solid #e4e7ed;border-bottom:none;border-right:none;text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:none;border-left:1px solid #fff;border-top:1px solid #e4e7ed}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid #e4e7ed;border-radius:0 4px 4px 0;border-left:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-left:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:left;margin-bottom:0;margin-right:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-right:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{right:0;left:auto}.el-tabs--right .el-tabs__active-bar.is-right{right:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:none;border-right:1px solid #fff;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid #e4e7ed;border-right:none;border-radius:4px 0 0 4px}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-right:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter .3s}.slideInRight-leave{animation:slideInRight-leave .3s;right:0;position:absolute;left:0}.slideInLeft-enter{animation:slideInLeft-enter .3s}.slideInLeft-leave{animation:slideInLeft-leave .3s;right:0;position:absolute;left:0}@keyframes slideInRight-enter{0%{opacity:0;transform:translateX(-100%);transform-origin:100% 0}to{opacity:1;transform:translateX(0);transform-origin:100% 0}}@keyframes slideInRight-leave{0%{opacity:1;transform:translateX(0);transform-origin:100% 0}to{opacity:0;transform:translateX(-100%);transform-origin:100% 0}}@keyframes slideInLeft-enter{0%{opacity:0;transform:translateX(100%);transform-origin:100% 0}to{opacity:1;transform:translateX(0);transform-origin:100% 0}}@keyframes slideInLeft-leave{0%{opacity:1;transform:translateX(0);transform-origin:100% 0}to{opacity:0;transform:translateX(100%);transform-origin:100% 0}}.el-tree{background:#fff;color:#606266;cursor:default;position:relative}.el-tree__empty-block{height:100%;min-height:60px;position:relative;text-align:center;width:100%}.el-tree__empty-text{color:#909399;font-size:14px;right:50%;position:absolute;top:50%;transform:translate(50%,-50%)}.el-tree__drop-indicator{background-color:#1a7efb;height:1px;right:0;position:absolute;left:0}.el-tree-node{outline:none;white-space:nowrap}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#1a7efb;color:#fff}.el-tree-node__content{align-items:center;cursor:pointer;display:flex;height:26px}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-left:8px}.el-tree-node__content:hover{background-color:#f5f7fa}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{color:#afb3ba;cursor:pointer;font-size:12px;transform:rotate(0deg);transition:transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(-90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{color:#afb3ba;font-size:14px;margin-left:8px}.el-tree-node>.el-tree-node__children{background-color:transparent;overflow:hidden}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#edf5ff}.el-alert{align-items:center;background-color:#fff;border-radius:7px;box-sizing:border-box;display:flex;margin:0;opacity:1;overflow:hidden;padding:8px 16px;position:relative;transition:opacity .2s;width:100%}.el-alert.is-light .el-alert__closebtn{color:#afb3ba}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{justify-content:center}.el-alert--success.is-light{background-color:#e6ffeb;color:#00b27f}.el-alert--success.is-light .el-alert__description{color:#00b27f}.el-alert--success.is-dark{background-color:#00b27f;color:#fff}.el-alert--info.is-light{background-color:#ededed;color:#4b4c4d}.el-alert--info.is-dark{background-color:#4b4c4d;color:#fff}.el-alert--info .el-alert__description{color:#4b4c4d}.el-alert--warning.is-light{background-color:#fff9ea;color:#fcbe2d}.el-alert--warning.is-light .el-alert__description{color:#fcbe2d}.el-alert--warning.is-dark{background-color:#fcbe2d;color:#fff}.el-alert--error.is-light{background-color:#ffefee;color:#ff6154}.el-alert--error.is-light .el-alert__description{color:#ff6154}.el-alert--error.is-dark{background-color:#ff6154;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{cursor:pointer;font-size:12px;opacity:1;position:absolute;left:15px;top:12px}.el-alert__closebtn.is-customed{font-size:13px;font-style:normal;top:9px}.el-alert-fade-enter,.el-alert-fade-leave-active{opacity:0}.el-notification{background-color:#fff;border:1px solid #ebeef5;border-radius:8px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;display:flex;overflow:hidden;padding:14px 13px 14px 26px;position:fixed;transition:opacity .3s,transform .3s,right .3s,left .3s,top .4s,bottom .3s;width:330px}.el-notification.right{left:16px}.el-notification.left{right:16px}.el-notification__group{margin-right:13px;margin-left:8px}.el-notification__title{color:#303133;font-size:16px;font-weight:700;margin:0}.el-notification__content{color:#606266;font-size:14px;line-height:21px;margin:6px 0 0;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{font-size:24px;height:24px;width:24px}.el-notification__closeBtn{color:#909399;cursor:pointer;font-size:16px;position:absolute;left:15px;top:18px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#00b27f}.el-notification .el-icon-error{color:#ff6154}.el-notification .el-icon-info{color:#4b4c4d}.el-notification .el-icon-warning{color:#fcbe2d}.el-notification-fade-enter.right{left:0;transform:translateX(-100%)}.el-notification-fade-enter.left{right:0;transform:translateX(100%)}.el-notification-fade-leave-active{opacity:0}.el-input-number{display:inline-block;line-height:38px;position:relative;width:180px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-right:50px;padding-left:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px;height:auto;position:absolute;text-align:center;top:1px;width:40px;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#1a7efb}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#1a7efb}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#afb3ba;cursor:not-allowed}.el-input-number__increase{border-right:1px solid #dadbdd;border-radius:7px 0 0 7px;left:1px}.el-input-number__decrease{border-radius:0 7px 7px 0;border-left:1px solid #dadbdd;right:1px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{line-height:34px;width:200px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{font-size:14px;width:36px}.el-input-number--medium .el-input__inner{padding-right:43px;padding-left:43px}.el-input-number--small{line-height:30px;width:130px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{font-size:13px;width:32px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number--small .el-input__inner{padding-right:39px;padding-left:39px}.el-input-number--mini{line-height:26px;width:130px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{font-size:12px;width:28px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-right:35px;padding-left:35px}.el-input-number.is-without-controls .el-input__inner{padding-right:15px;padding-left:15px}.el-input-number.is-controls-right .el-input__inner{padding-right:15px;padding-left:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-bottom:1px solid #dadbdd;border-radius:7px 0 0 0}.el-input-number.is-controls-right .el-input-number__decrease{border-right:1px solid #dadbdd;border-radius:0 0 0 7px;border-left:none;bottom:1px;right:auto;left:1px;top:auto}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{word-wrap:break-word;border-radius:4px;font-size:12px;line-height:1.2;min-width:10px;padding:10px;position:absolute;z-index:2000}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{border-color:transparent;border-style:solid;display:block;height:0;position:absolute;width:0}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{border-width:5px;content:" "}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{border-bottom-width:0;border-top-color:#303133;bottom:-6px}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{border-bottom-width:0;border-top-color:#303133;bottom:1px;margin-right:-5px}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133;border-top-width:0;top:-6px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#303133;border-top-width:0;margin-right:-5px;top:1px}.el-tooltip__popper[x-placement^=right]{margin-right:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{border-right-width:0;border-left-color:#303133;right:-6px}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{border-right-width:0;border-left-color:#303133;bottom:-5px;right:1px}.el-tooltip__popper[x-placement^=left]{margin-left:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{border-right-color:#303133;border-left-width:0;left:-6px}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{border-right-color:#303133;border-left-width:0;bottom:-5px;margin-right:-5px;left:1px}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-right-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-left-color:#fff}.el-slider:after,.el-slider:before{content:"";display:table}.el-slider:after{clear:both}.el-slider__runway{background-color:#e4e7ed;border-radius:3px;cursor:pointer;height:6px;margin:16px 0;position:relative;vertical-align:middle;width:100%}.el-slider__runway.show-input{margin-left:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#afb3ba}.el-slider__runway.disabled .el-slider__button{border-color:#afb3ba}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__input{float:left;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{background-color:#1a7efb;border-bottom-right-radius:3px;border-top-right-radius:3px;height:6px;position:absolute}.el-slider__button-wrapper{background-color:transparent;height:36px;line-height:normal;position:absolute;text-align:center;top:-15px;transform:translateX(50%);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:36px;z-index:1001}.el-slider__button-wrapper:after{content:"";height:100%}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{display:inline-block;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{background-color:#fff;border:2px solid #1a7efb;border-radius:50%;height:16px;transition:.2s;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:16px}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{background-color:#fff;border-radius:100%;height:6px;position:absolute;transform:translateX(50%);width:6px}.el-slider__marks{height:100%;right:12px;top:0;width:18px}.el-slider__marks-text{color:#4b4c4d;font-size:14px;margin-top:15px;position:absolute;transform:translateX(50%)}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{height:100%;margin:0 16px;width:6px}.el-slider.is-vertical .el-slider__bar{border-radius:0 0 3px 3px;height:auto;width:6px}.el-slider.is-vertical .el-slider__button-wrapper{right:-15px;top:auto;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{bottom:22px;float:none;margin-top:15px;overflow:visible;position:absolute;width:36px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{padding-right:5px;padding-left:5px;text-align:center}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{border:1px solid #dadbdd;box-sizing:border-box;line-height:20px;margin-top:-1px;top:32px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{border-bottom-right-radius:7px;left:18px;width:18px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{border-bottom-left-radius:7px;width:19px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-right-radius:0;border-bottom-left-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#afb3ba}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#1a7efb}.el-slider.is-vertical .el-slider__marks-text{right:15px;margin-top:0;transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:hsla(0,0%,100%,.9);bottom:0;right:0;margin:0;position:absolute;left:0;top:0;transition:opacity .3s;z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{margin-top:-21px;position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:#1a7efb;font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;height:42px;width:42px}.el-loading-spinner .path{stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#1a7efb;stroke-linecap:round;animation:loading-dash 1.5s ease-in-out infinite}.el-loading-spinner i{color:#1a7efb}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@keyframes loading-rotate{to{transform:rotate(-1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{box-sizing:border-box;position:relative}.el-row:after,.el-row:before{content:"";display:table}.el-row:after{clear:both}.el-row--flex{display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{justify-content:center}.el-row--flex.is-justify-end{justify-content:flex-end}.el-row--flex.is-justify-space-between{justify-content:space-between}.el-row--flex.is-justify-space-around{justify-content:space-around}.el-row--flex.is-align-top{align-items:flex-start}.el-row--flex.is-align-middle{align-items:center}.el-row--flex.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box;float:right}.el-col-0{display:none;width:0}.el-col-offset-0{margin-right:0}.el-col-pull-0{position:relative;left:0}.el-col-push-0{right:0;position:relative}.el-col-1{width:4.1666666667%}.el-col-offset-1{margin-right:4.1666666667%}.el-col-pull-1{position:relative;left:4.1666666667%}.el-col-push-1{right:4.1666666667%;position:relative}.el-col-2{width:8.3333333333%}.el-col-offset-2{margin-right:8.3333333333%}.el-col-pull-2{position:relative;left:8.3333333333%}.el-col-push-2{right:8.3333333333%;position:relative}.el-col-3{width:12.5%}.el-col-offset-3{margin-right:12.5%}.el-col-pull-3{position:relative;left:12.5%}.el-col-push-3{right:12.5%;position:relative}.el-col-4{width:16.6666666667%}.el-col-offset-4{margin-right:16.6666666667%}.el-col-pull-4{position:relative;left:16.6666666667%}.el-col-push-4{right:16.6666666667%;position:relative}.el-col-5{width:20.8333333333%}.el-col-offset-5{margin-right:20.8333333333%}.el-col-pull-5{position:relative;left:20.8333333333%}.el-col-push-5{right:20.8333333333%;position:relative}.el-col-6{width:25%}.el-col-offset-6{margin-right:25%}.el-col-pull-6{position:relative;left:25%}.el-col-push-6{right:25%;position:relative}.el-col-7{width:29.1666666667%}.el-col-offset-7{margin-right:29.1666666667%}.el-col-pull-7{position:relative;left:29.1666666667%}.el-col-push-7{right:29.1666666667%;position:relative}.el-col-8{width:33.3333333333%}.el-col-offset-8{margin-right:33.3333333333%}.el-col-pull-8{position:relative;left:33.3333333333%}.el-col-push-8{right:33.3333333333%;position:relative}.el-col-9{width:37.5%}.el-col-offset-9{margin-right:37.5%}.el-col-pull-9{position:relative;left:37.5%}.el-col-push-9{right:37.5%;position:relative}.el-col-10{width:41.6666666667%}.el-col-offset-10{margin-right:41.6666666667%}.el-col-pull-10{position:relative;left:41.6666666667%}.el-col-push-10{right:41.6666666667%;position:relative}.el-col-11{width:45.8333333333%}.el-col-offset-11{margin-right:45.8333333333%}.el-col-pull-11{position:relative;left:45.8333333333%}.el-col-push-11{right:45.8333333333%;position:relative}.el-col-12{width:50%}.el-col-offset-12{margin-right:50%}.el-col-pull-12{position:relative;left:50%}.el-col-push-12{right:50%;position:relative}.el-col-13{width:54.1666666667%}.el-col-offset-13{margin-right:54.1666666667%}.el-col-pull-13{position:relative;left:54.1666666667%}.el-col-push-13{right:54.1666666667%;position:relative}.el-col-14{width:58.3333333333%}.el-col-offset-14{margin-right:58.3333333333%}.el-col-pull-14{position:relative;left:58.3333333333%}.el-col-push-14{right:58.3333333333%;position:relative}.el-col-15{width:62.5%}.el-col-offset-15{margin-right:62.5%}.el-col-pull-15{position:relative;left:62.5%}.el-col-push-15{right:62.5%;position:relative}.el-col-16{width:66.6666666667%}.el-col-offset-16{margin-right:66.6666666667%}.el-col-pull-16{position:relative;left:66.6666666667%}.el-col-push-16{right:66.6666666667%;position:relative}.el-col-17{width:70.8333333333%}.el-col-offset-17{margin-right:70.8333333333%}.el-col-pull-17{position:relative;left:70.8333333333%}.el-col-push-17{right:70.8333333333%;position:relative}.el-col-18{width:75%}.el-col-offset-18{margin-right:75%}.el-col-pull-18{position:relative;left:75%}.el-col-push-18{right:75%;position:relative}.el-col-19{width:79.1666666667%}.el-col-offset-19{margin-right:79.1666666667%}.el-col-pull-19{position:relative;left:79.1666666667%}.el-col-push-19{right:79.1666666667%;position:relative}.el-col-20{width:83.3333333333%}.el-col-offset-20{margin-right:83.3333333333%}.el-col-pull-20{position:relative;left:83.3333333333%}.el-col-push-20{right:83.3333333333%;position:relative}.el-col-21{width:87.5%}.el-col-offset-21{margin-right:87.5%}.el-col-pull-21{position:relative;left:87.5%}.el-col-push-21{right:87.5%;position:relative}.el-col-22{width:91.6666666667%}.el-col-offset-22{margin-right:91.6666666667%}.el-col-pull-22{position:relative;left:91.6666666667%}.el-col-push-22{right:91.6666666667%;position:relative}.el-col-23{width:95.8333333333%}.el-col-offset-23{margin-right:95.8333333333%}.el-col-pull-23{position:relative;left:95.8333333333%}.el-col-push-23{right:95.8333333333%;position:relative}.el-col-24{width:100%}.el-col-offset-24{margin-right:100%}.el-col-pull-24{position:relative;left:100%}.el-col-push-24{right:100%;position:relative}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-right:0}.el-col-xs-pull-0{position:relative;left:0}.el-col-xs-push-0{right:0;position:relative}.el-col-xs-1{width:4.1666666667%}.el-col-xs-offset-1{margin-right:4.1666666667%}.el-col-xs-pull-1{position:relative;left:4.1666666667%}.el-col-xs-push-1{right:4.1666666667%;position:relative}.el-col-xs-2{width:8.3333333333%}.el-col-xs-offset-2{margin-right:8.3333333333%}.el-col-xs-pull-2{position:relative;left:8.3333333333%}.el-col-xs-push-2{right:8.3333333333%;position:relative}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-right:12.5%}.el-col-xs-pull-3{position:relative;left:12.5%}.el-col-xs-push-3{right:12.5%;position:relative}.el-col-xs-4{width:16.6666666667%}.el-col-xs-offset-4{margin-right:16.6666666667%}.el-col-xs-pull-4{position:relative;left:16.6666666667%}.el-col-xs-push-4{right:16.6666666667%;position:relative}.el-col-xs-5{width:20.8333333333%}.el-col-xs-offset-5{margin-right:20.8333333333%}.el-col-xs-pull-5{position:relative;left:20.8333333333%}.el-col-xs-push-5{right:20.8333333333%;position:relative}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-right:25%}.el-col-xs-pull-6{position:relative;left:25%}.el-col-xs-push-6{right:25%;position:relative}.el-col-xs-7{width:29.1666666667%}.el-col-xs-offset-7{margin-right:29.1666666667%}.el-col-xs-pull-7{position:relative;left:29.1666666667%}.el-col-xs-push-7{right:29.1666666667%;position:relative}.el-col-xs-8{width:33.3333333333%}.el-col-xs-offset-8{margin-right:33.3333333333%}.el-col-xs-pull-8{position:relative;left:33.3333333333%}.el-col-xs-push-8{right:33.3333333333%;position:relative}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-right:37.5%}.el-col-xs-pull-9{position:relative;left:37.5%}.el-col-xs-push-9{right:37.5%;position:relative}.el-col-xs-10{width:41.6666666667%}.el-col-xs-offset-10{margin-right:41.6666666667%}.el-col-xs-pull-10{position:relative;left:41.6666666667%}.el-col-xs-push-10{right:41.6666666667%;position:relative}.el-col-xs-11{width:45.8333333333%}.el-col-xs-offset-11{margin-right:45.8333333333%}.el-col-xs-pull-11{position:relative;left:45.8333333333%}.el-col-xs-push-11{right:45.8333333333%;position:relative}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-right:50%}.el-col-xs-pull-12{position:relative;left:50%}.el-col-xs-push-12{right:50%;position:relative}.el-col-xs-13{width:54.1666666667%}.el-col-xs-offset-13{margin-right:54.1666666667%}.el-col-xs-pull-13{position:relative;left:54.1666666667%}.el-col-xs-push-13{right:54.1666666667%;position:relative}.el-col-xs-14{width:58.3333333333%}.el-col-xs-offset-14{margin-right:58.3333333333%}.el-col-xs-pull-14{position:relative;left:58.3333333333%}.el-col-xs-push-14{right:58.3333333333%;position:relative}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-right:62.5%}.el-col-xs-pull-15{position:relative;left:62.5%}.el-col-xs-push-15{right:62.5%;position:relative}.el-col-xs-16{width:66.6666666667%}.el-col-xs-offset-16{margin-right:66.6666666667%}.el-col-xs-pull-16{position:relative;left:66.6666666667%}.el-col-xs-push-16{right:66.6666666667%;position:relative}.el-col-xs-17{width:70.8333333333%}.el-col-xs-offset-17{margin-right:70.8333333333%}.el-col-xs-pull-17{position:relative;left:70.8333333333%}.el-col-xs-push-17{right:70.8333333333%;position:relative}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-right:75%}.el-col-xs-pull-18{position:relative;left:75%}.el-col-xs-push-18{right:75%;position:relative}.el-col-xs-19{width:79.1666666667%}.el-col-xs-offset-19{margin-right:79.1666666667%}.el-col-xs-pull-19{position:relative;left:79.1666666667%}.el-col-xs-push-19{right:79.1666666667%;position:relative}.el-col-xs-20{width:83.3333333333%}.el-col-xs-offset-20{margin-right:83.3333333333%}.el-col-xs-pull-20{position:relative;left:83.3333333333%}.el-col-xs-push-20{right:83.3333333333%;position:relative}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-right:87.5%}.el-col-xs-pull-21{position:relative;left:87.5%}.el-col-xs-push-21{right:87.5%;position:relative}.el-col-xs-22{width:91.6666666667%}.el-col-xs-offset-22{margin-right:91.6666666667%}.el-col-xs-pull-22{position:relative;left:91.6666666667%}.el-col-xs-push-22{right:91.6666666667%;position:relative}.el-col-xs-23{width:95.8333333333%}.el-col-xs-offset-23{margin-right:95.8333333333%}.el-col-xs-pull-23{position:relative;left:95.8333333333%}.el-col-xs-push-23{right:95.8333333333%;position:relative}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-right:100%}.el-col-xs-pull-24{position:relative;left:100%}.el-col-xs-push-24{right:100%;position:relative}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-right:0}.el-col-sm-pull-0{position:relative;left:0}.el-col-sm-push-0{right:0;position:relative}.el-col-sm-1{width:4.1666666667%}.el-col-sm-offset-1{margin-right:4.1666666667%}.el-col-sm-pull-1{position:relative;left:4.1666666667%}.el-col-sm-push-1{right:4.1666666667%;position:relative}.el-col-sm-2{width:8.3333333333%}.el-col-sm-offset-2{margin-right:8.3333333333%}.el-col-sm-pull-2{position:relative;left:8.3333333333%}.el-col-sm-push-2{right:8.3333333333%;position:relative}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-right:12.5%}.el-col-sm-pull-3{position:relative;left:12.5%}.el-col-sm-push-3{right:12.5%;position:relative}.el-col-sm-4{width:16.6666666667%}.el-col-sm-offset-4{margin-right:16.6666666667%}.el-col-sm-pull-4{position:relative;left:16.6666666667%}.el-col-sm-push-4{right:16.6666666667%;position:relative}.el-col-sm-5{width:20.8333333333%}.el-col-sm-offset-5{margin-right:20.8333333333%}.el-col-sm-pull-5{position:relative;left:20.8333333333%}.el-col-sm-push-5{right:20.8333333333%;position:relative}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-right:25%}.el-col-sm-pull-6{position:relative;left:25%}.el-col-sm-push-6{right:25%;position:relative}.el-col-sm-7{width:29.1666666667%}.el-col-sm-offset-7{margin-right:29.1666666667%}.el-col-sm-pull-7{position:relative;left:29.1666666667%}.el-col-sm-push-7{right:29.1666666667%;position:relative}.el-col-sm-8{width:33.3333333333%}.el-col-sm-offset-8{margin-right:33.3333333333%}.el-col-sm-pull-8{position:relative;left:33.3333333333%}.el-col-sm-push-8{right:33.3333333333%;position:relative}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-right:37.5%}.el-col-sm-pull-9{position:relative;left:37.5%}.el-col-sm-push-9{right:37.5%;position:relative}.el-col-sm-10{width:41.6666666667%}.el-col-sm-offset-10{margin-right:41.6666666667%}.el-col-sm-pull-10{position:relative;left:41.6666666667%}.el-col-sm-push-10{right:41.6666666667%;position:relative}.el-col-sm-11{width:45.8333333333%}.el-col-sm-offset-11{margin-right:45.8333333333%}.el-col-sm-pull-11{position:relative;left:45.8333333333%}.el-col-sm-push-11{right:45.8333333333%;position:relative}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-right:50%}.el-col-sm-pull-12{position:relative;left:50%}.el-col-sm-push-12{right:50%;position:relative}.el-col-sm-13{width:54.1666666667%}.el-col-sm-offset-13{margin-right:54.1666666667%}.el-col-sm-pull-13{position:relative;left:54.1666666667%}.el-col-sm-push-13{right:54.1666666667%;position:relative}.el-col-sm-14{width:58.3333333333%}.el-col-sm-offset-14{margin-right:58.3333333333%}.el-col-sm-pull-14{position:relative;left:58.3333333333%}.el-col-sm-push-14{right:58.3333333333%;position:relative}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-right:62.5%}.el-col-sm-pull-15{position:relative;left:62.5%}.el-col-sm-push-15{right:62.5%;position:relative}.el-col-sm-16{width:66.6666666667%}.el-col-sm-offset-16{margin-right:66.6666666667%}.el-col-sm-pull-16{position:relative;left:66.6666666667%}.el-col-sm-push-16{right:66.6666666667%;position:relative}.el-col-sm-17{width:70.8333333333%}.el-col-sm-offset-17{margin-right:70.8333333333%}.el-col-sm-pull-17{position:relative;left:70.8333333333%}.el-col-sm-push-17{right:70.8333333333%;position:relative}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-right:75%}.el-col-sm-pull-18{position:relative;left:75%}.el-col-sm-push-18{right:75%;position:relative}.el-col-sm-19{width:79.1666666667%}.el-col-sm-offset-19{margin-right:79.1666666667%}.el-col-sm-pull-19{position:relative;left:79.1666666667%}.el-col-sm-push-19{right:79.1666666667%;position:relative}.el-col-sm-20{width:83.3333333333%}.el-col-sm-offset-20{margin-right:83.3333333333%}.el-col-sm-pull-20{position:relative;left:83.3333333333%}.el-col-sm-push-20{right:83.3333333333%;position:relative}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-right:87.5%}.el-col-sm-pull-21{position:relative;left:87.5%}.el-col-sm-push-21{right:87.5%;position:relative}.el-col-sm-22{width:91.6666666667%}.el-col-sm-offset-22{margin-right:91.6666666667%}.el-col-sm-pull-22{position:relative;left:91.6666666667%}.el-col-sm-push-22{right:91.6666666667%;position:relative}.el-col-sm-23{width:95.8333333333%}.el-col-sm-offset-23{margin-right:95.8333333333%}.el-col-sm-pull-23{position:relative;left:95.8333333333%}.el-col-sm-push-23{right:95.8333333333%;position:relative}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-right:100%}.el-col-sm-pull-24{position:relative;left:100%}.el-col-sm-push-24{right:100%;position:relative}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-right:0}.el-col-md-pull-0{position:relative;left:0}.el-col-md-push-0{right:0;position:relative}.el-col-md-1{width:4.1666666667%}.el-col-md-offset-1{margin-right:4.1666666667%}.el-col-md-pull-1{position:relative;left:4.1666666667%}.el-col-md-push-1{right:4.1666666667%;position:relative}.el-col-md-2{width:8.3333333333%}.el-col-md-offset-2{margin-right:8.3333333333%}.el-col-md-pull-2{position:relative;left:8.3333333333%}.el-col-md-push-2{right:8.3333333333%;position:relative}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-right:12.5%}.el-col-md-pull-3{position:relative;left:12.5%}.el-col-md-push-3{right:12.5%;position:relative}.el-col-md-4{width:16.6666666667%}.el-col-md-offset-4{margin-right:16.6666666667%}.el-col-md-pull-4{position:relative;left:16.6666666667%}.el-col-md-push-4{right:16.6666666667%;position:relative}.el-col-md-5{width:20.8333333333%}.el-col-md-offset-5{margin-right:20.8333333333%}.el-col-md-pull-5{position:relative;left:20.8333333333%}.el-col-md-push-5{right:20.8333333333%;position:relative}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-right:25%}.el-col-md-pull-6{position:relative;left:25%}.el-col-md-push-6{right:25%;position:relative}.el-col-md-7{width:29.1666666667%}.el-col-md-offset-7{margin-right:29.1666666667%}.el-col-md-pull-7{position:relative;left:29.1666666667%}.el-col-md-push-7{right:29.1666666667%;position:relative}.el-col-md-8{width:33.3333333333%}.el-col-md-offset-8{margin-right:33.3333333333%}.el-col-md-pull-8{position:relative;left:33.3333333333%}.el-col-md-push-8{right:33.3333333333%;position:relative}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-right:37.5%}.el-col-md-pull-9{position:relative;left:37.5%}.el-col-md-push-9{right:37.5%;position:relative}.el-col-md-10{width:41.6666666667%}.el-col-md-offset-10{margin-right:41.6666666667%}.el-col-md-pull-10{position:relative;left:41.6666666667%}.el-col-md-push-10{right:41.6666666667%;position:relative}.el-col-md-11{width:45.8333333333%}.el-col-md-offset-11{margin-right:45.8333333333%}.el-col-md-pull-11{position:relative;left:45.8333333333%}.el-col-md-push-11{right:45.8333333333%;position:relative}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-right:50%}.el-col-md-pull-12{position:relative;left:50%}.el-col-md-push-12{right:50%;position:relative}.el-col-md-13{width:54.1666666667%}.el-col-md-offset-13{margin-right:54.1666666667%}.el-col-md-pull-13{position:relative;left:54.1666666667%}.el-col-md-push-13{right:54.1666666667%;position:relative}.el-col-md-14{width:58.3333333333%}.el-col-md-offset-14{margin-right:58.3333333333%}.el-col-md-pull-14{position:relative;left:58.3333333333%}.el-col-md-push-14{right:58.3333333333%;position:relative}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-right:62.5%}.el-col-md-pull-15{position:relative;left:62.5%}.el-col-md-push-15{right:62.5%;position:relative}.el-col-md-16{width:66.6666666667%}.el-col-md-offset-16{margin-right:66.6666666667%}.el-col-md-pull-16{position:relative;left:66.6666666667%}.el-col-md-push-16{right:66.6666666667%;position:relative}.el-col-md-17{width:70.8333333333%}.el-col-md-offset-17{margin-right:70.8333333333%}.el-col-md-pull-17{position:relative;left:70.8333333333%}.el-col-md-push-17{right:70.8333333333%;position:relative}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-right:75%}.el-col-md-pull-18{position:relative;left:75%}.el-col-md-push-18{right:75%;position:relative}.el-col-md-19{width:79.1666666667%}.el-col-md-offset-19{margin-right:79.1666666667%}.el-col-md-pull-19{position:relative;left:79.1666666667%}.el-col-md-push-19{right:79.1666666667%;position:relative}.el-col-md-20{width:83.3333333333%}.el-col-md-offset-20{margin-right:83.3333333333%}.el-col-md-pull-20{position:relative;left:83.3333333333%}.el-col-md-push-20{right:83.3333333333%;position:relative}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-right:87.5%}.el-col-md-pull-21{position:relative;left:87.5%}.el-col-md-push-21{right:87.5%;position:relative}.el-col-md-22{width:91.6666666667%}.el-col-md-offset-22{margin-right:91.6666666667%}.el-col-md-pull-22{position:relative;left:91.6666666667%}.el-col-md-push-22{right:91.6666666667%;position:relative}.el-col-md-23{width:95.8333333333%}.el-col-md-offset-23{margin-right:95.8333333333%}.el-col-md-pull-23{position:relative;left:95.8333333333%}.el-col-md-push-23{right:95.8333333333%;position:relative}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-right:100%}.el-col-md-pull-24{position:relative;left:100%}.el-col-md-push-24{right:100%;position:relative}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-right:0}.el-col-lg-pull-0{position:relative;left:0}.el-col-lg-push-0{right:0;position:relative}.el-col-lg-1{width:4.1666666667%}.el-col-lg-offset-1{margin-right:4.1666666667%}.el-col-lg-pull-1{position:relative;left:4.1666666667%}.el-col-lg-push-1{right:4.1666666667%;position:relative}.el-col-lg-2{width:8.3333333333%}.el-col-lg-offset-2{margin-right:8.3333333333%}.el-col-lg-pull-2{position:relative;left:8.3333333333%}.el-col-lg-push-2{right:8.3333333333%;position:relative}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-right:12.5%}.el-col-lg-pull-3{position:relative;left:12.5%}.el-col-lg-push-3{right:12.5%;position:relative}.el-col-lg-4{width:16.6666666667%}.el-col-lg-offset-4{margin-right:16.6666666667%}.el-col-lg-pull-4{position:relative;left:16.6666666667%}.el-col-lg-push-4{right:16.6666666667%;position:relative}.el-col-lg-5{width:20.8333333333%}.el-col-lg-offset-5{margin-right:20.8333333333%}.el-col-lg-pull-5{position:relative;left:20.8333333333%}.el-col-lg-push-5{right:20.8333333333%;position:relative}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-right:25%}.el-col-lg-pull-6{position:relative;left:25%}.el-col-lg-push-6{right:25%;position:relative}.el-col-lg-7{width:29.1666666667%}.el-col-lg-offset-7{margin-right:29.1666666667%}.el-col-lg-pull-7{position:relative;left:29.1666666667%}.el-col-lg-push-7{right:29.1666666667%;position:relative}.el-col-lg-8{width:33.3333333333%}.el-col-lg-offset-8{margin-right:33.3333333333%}.el-col-lg-pull-8{position:relative;left:33.3333333333%}.el-col-lg-push-8{right:33.3333333333%;position:relative}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-right:37.5%}.el-col-lg-pull-9{position:relative;left:37.5%}.el-col-lg-push-9{right:37.5%;position:relative}.el-col-lg-10{width:41.6666666667%}.el-col-lg-offset-10{margin-right:41.6666666667%}.el-col-lg-pull-10{position:relative;left:41.6666666667%}.el-col-lg-push-10{right:41.6666666667%;position:relative}.el-col-lg-11{width:45.8333333333%}.el-col-lg-offset-11{margin-right:45.8333333333%}.el-col-lg-pull-11{position:relative;left:45.8333333333%}.el-col-lg-push-11{right:45.8333333333%;position:relative}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-right:50%}.el-col-lg-pull-12{position:relative;left:50%}.el-col-lg-push-12{right:50%;position:relative}.el-col-lg-13{width:54.1666666667%}.el-col-lg-offset-13{margin-right:54.1666666667%}.el-col-lg-pull-13{position:relative;left:54.1666666667%}.el-col-lg-push-13{right:54.1666666667%;position:relative}.el-col-lg-14{width:58.3333333333%}.el-col-lg-offset-14{margin-right:58.3333333333%}.el-col-lg-pull-14{position:relative;left:58.3333333333%}.el-col-lg-push-14{right:58.3333333333%;position:relative}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-right:62.5%}.el-col-lg-pull-15{position:relative;left:62.5%}.el-col-lg-push-15{right:62.5%;position:relative}.el-col-lg-16{width:66.6666666667%}.el-col-lg-offset-16{margin-right:66.6666666667%}.el-col-lg-pull-16{position:relative;left:66.6666666667%}.el-col-lg-push-16{right:66.6666666667%;position:relative}.el-col-lg-17{width:70.8333333333%}.el-col-lg-offset-17{margin-right:70.8333333333%}.el-col-lg-pull-17{position:relative;left:70.8333333333%}.el-col-lg-push-17{right:70.8333333333%;position:relative}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-right:75%}.el-col-lg-pull-18{position:relative;left:75%}.el-col-lg-push-18{right:75%;position:relative}.el-col-lg-19{width:79.1666666667%}.el-col-lg-offset-19{margin-right:79.1666666667%}.el-col-lg-pull-19{position:relative;left:79.1666666667%}.el-col-lg-push-19{right:79.1666666667%;position:relative}.el-col-lg-20{width:83.3333333333%}.el-col-lg-offset-20{margin-right:83.3333333333%}.el-col-lg-pull-20{position:relative;left:83.3333333333%}.el-col-lg-push-20{right:83.3333333333%;position:relative}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-right:87.5%}.el-col-lg-pull-21{position:relative;left:87.5%}.el-col-lg-push-21{right:87.5%;position:relative}.el-col-lg-22{width:91.6666666667%}.el-col-lg-offset-22{margin-right:91.6666666667%}.el-col-lg-pull-22{position:relative;left:91.6666666667%}.el-col-lg-push-22{right:91.6666666667%;position:relative}.el-col-lg-23{width:95.8333333333%}.el-col-lg-offset-23{margin-right:95.8333333333%}.el-col-lg-pull-23{position:relative;left:95.8333333333%}.el-col-lg-push-23{right:95.8333333333%;position:relative}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-right:100%}.el-col-lg-pull-24{position:relative;left:100%}.el-col-lg-push-24{right:100%;position:relative}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-right:0}.el-col-xl-pull-0{position:relative;left:0}.el-col-xl-push-0{right:0;position:relative}.el-col-xl-1{width:4.1666666667%}.el-col-xl-offset-1{margin-right:4.1666666667%}.el-col-xl-pull-1{position:relative;left:4.1666666667%}.el-col-xl-push-1{right:4.1666666667%;position:relative}.el-col-xl-2{width:8.3333333333%}.el-col-xl-offset-2{margin-right:8.3333333333%}.el-col-xl-pull-2{position:relative;left:8.3333333333%}.el-col-xl-push-2{right:8.3333333333%;position:relative}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-right:12.5%}.el-col-xl-pull-3{position:relative;left:12.5%}.el-col-xl-push-3{right:12.5%;position:relative}.el-col-xl-4{width:16.6666666667%}.el-col-xl-offset-4{margin-right:16.6666666667%}.el-col-xl-pull-4{position:relative;left:16.6666666667%}.el-col-xl-push-4{right:16.6666666667%;position:relative}.el-col-xl-5{width:20.8333333333%}.el-col-xl-offset-5{margin-right:20.8333333333%}.el-col-xl-pull-5{position:relative;left:20.8333333333%}.el-col-xl-push-5{right:20.8333333333%;position:relative}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-right:25%}.el-col-xl-pull-6{position:relative;left:25%}.el-col-xl-push-6{right:25%;position:relative}.el-col-xl-7{width:29.1666666667%}.el-col-xl-offset-7{margin-right:29.1666666667%}.el-col-xl-pull-7{position:relative;left:29.1666666667%}.el-col-xl-push-7{right:29.1666666667%;position:relative}.el-col-xl-8{width:33.3333333333%}.el-col-xl-offset-8{margin-right:33.3333333333%}.el-col-xl-pull-8{position:relative;left:33.3333333333%}.el-col-xl-push-8{right:33.3333333333%;position:relative}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-right:37.5%}.el-col-xl-pull-9{position:relative;left:37.5%}.el-col-xl-push-9{right:37.5%;position:relative}.el-col-xl-10{width:41.6666666667%}.el-col-xl-offset-10{margin-right:41.6666666667%}.el-col-xl-pull-10{position:relative;left:41.6666666667%}.el-col-xl-push-10{right:41.6666666667%;position:relative}.el-col-xl-11{width:45.8333333333%}.el-col-xl-offset-11{margin-right:45.8333333333%}.el-col-xl-pull-11{position:relative;left:45.8333333333%}.el-col-xl-push-11{right:45.8333333333%;position:relative}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-right:50%}.el-col-xl-pull-12{position:relative;left:50%}.el-col-xl-push-12{right:50%;position:relative}.el-col-xl-13{width:54.1666666667%}.el-col-xl-offset-13{margin-right:54.1666666667%}.el-col-xl-pull-13{position:relative;left:54.1666666667%}.el-col-xl-push-13{right:54.1666666667%;position:relative}.el-col-xl-14{width:58.3333333333%}.el-col-xl-offset-14{margin-right:58.3333333333%}.el-col-xl-pull-14{position:relative;left:58.3333333333%}.el-col-xl-push-14{right:58.3333333333%;position:relative}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-right:62.5%}.el-col-xl-pull-15{position:relative;left:62.5%}.el-col-xl-push-15{right:62.5%;position:relative}.el-col-xl-16{width:66.6666666667%}.el-col-xl-offset-16{margin-right:66.6666666667%}.el-col-xl-pull-16{position:relative;left:66.6666666667%}.el-col-xl-push-16{right:66.6666666667%;position:relative}.el-col-xl-17{width:70.8333333333%}.el-col-xl-offset-17{margin-right:70.8333333333%}.el-col-xl-pull-17{position:relative;left:70.8333333333%}.el-col-xl-push-17{right:70.8333333333%;position:relative}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-right:75%}.el-col-xl-pull-18{position:relative;left:75%}.el-col-xl-push-18{right:75%;position:relative}.el-col-xl-19{width:79.1666666667%}.el-col-xl-offset-19{margin-right:79.1666666667%}.el-col-xl-pull-19{position:relative;left:79.1666666667%}.el-col-xl-push-19{right:79.1666666667%;position:relative}.el-col-xl-20{width:83.3333333333%}.el-col-xl-offset-20{margin-right:83.3333333333%}.el-col-xl-pull-20{position:relative;left:83.3333333333%}.el-col-xl-push-20{right:83.3333333333%;position:relative}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-right:87.5%}.el-col-xl-pull-21{position:relative;left:87.5%}.el-col-xl-push-21{right:87.5%;position:relative}.el-col-xl-22{width:91.6666666667%}.el-col-xl-offset-22{margin-right:91.6666666667%}.el-col-xl-pull-22{position:relative;left:91.6666666667%}.el-col-xl-push-22{right:91.6666666667%;position:relative}.el-col-xl-23{width:95.8333333333%}.el-col-xl-offset-23{margin-right:95.8333333333%}.el-col-xl-pull-23{position:relative;left:95.8333333333%}.el-col-xl-push-23{right:95.8333333333%;position:relative}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-right:100%}.el-col-xl-pull-24{position:relative;left:100%}.el-col-xl-push-24{right:100%;position:relative}}.el-upload{cursor:pointer;display:inline-block;outline:none;text-align:center}.el-upload__input{display:none}.el-upload__tip{color:#606266;font-size:12px;margin-top:7px}.el-upload iframe{filter:alpha(opacity=0);right:0;opacity:0;position:absolute;top:0;z-index:-1}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;box-sizing:border-box;cursor:pointer;height:148px;line-height:146px;vertical-align:top;width:148px}.el-upload--picture-card i{color:#8c939d;font-size:28px}.el-upload--picture-card:hover,.el-upload:focus{border-color:#1a7efb;color:#1a7efb}.el-upload:focus .el-upload-dragger{border-color:#1a7efb}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;box-sizing:border-box;cursor:pointer;height:180px;overflow:hidden;position:relative;text-align:center;width:360px}.el-upload-dragger .el-icon-upload{color:#afb3ba;font-size:67px;line-height:50px;margin:40px 0 16px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dadbdd;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#1a7efb;font-style:normal}.el-upload-dragger:hover{border-color:#1a7efb}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #1a7efb}.el-upload-list{list-style:none;margin:0;padding:0}.el-upload-list__item{border-radius:4px;box-sizing:border-box;color:#606266;font-size:14px;line-height:1.8;margin-top:5px;position:relative;transition:all .5s cubic-bezier(.55,0,.1,1);width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;left:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-left:0;padding-left:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#00b27f}.el-upload-list__item .el-icon-close{color:#606266;cursor:pointer;display:none;opacity:.75;position:absolute;left:5px;top:5px}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{color:#1a7efb;cursor:pointer;display:none;font-size:12px;opacity:1;position:absolute;left:5px;top:5px}.el-upload-list__item:hover{background-color:#f5f7fa}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#1a7efb;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-left:40px;overflow:hidden;padding-right:4px;text-overflow:ellipsis;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{color:#909399;height:100%;line-height:inherit;margin-left:7px}.el-upload-list__item-status-label{display:none;line-height:inherit;position:absolute;left:5px;top:0}.el-upload-list__item-delete{color:#606266;display:none;font-size:12px;position:absolute;left:10px;top:0}.el-upload-list__item-delete:hover{color:#1a7efb}.el-upload-list--picture-card{display:inline;margin:0;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;display:inline-block;height:148px;margin:0 0 8px 8px;overflow:hidden;width:148px}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{height:100%;width:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:#13ce66;box-shadow:0 0 1pc 1px rgba(0,0,0,.2);height:24px;position:absolute;left:-15px;text-align:center;top:-6px;transform:rotate(-45deg);width:40px}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{background-color:rgba(0,0,0,.5);color:#fff;cursor:default;font-size:20px;height:100%;right:0;opacity:0;position:absolute;text-align:center;top:0;transition:opacity .3s;width:100%}.el-upload-list--picture-card .el-upload-list__item-actions:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-right:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{color:inherit;font-size:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{bottom:auto;right:50%;top:50%;transform:translate(50%,-50%);width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;height:92px;margin-top:10px;overflow:hidden;padding:10px 90px 10px 10px;z-index:0}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:transparent;box-shadow:none;left:-12px;top:-2px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{background-color:#fff;display:inline-block;float:right;height:70px;margin-right:-80px;position:relative;vertical-align:middle;width:70px;z-index:1}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;right:9px;line-height:1;position:absolute;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{background:#13ce66;box-shadow:0 1px 1px #ccc;height:26px;position:absolute;left:-17px;text-align:center;top:-7px;transform:rotate(-45deg);width:46px}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{cursor:default;height:100%;right:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:10}.el-upload-cover:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;height:100%;width:100%}.el-upload-cover__label{background:#13ce66;box-shadow:0 0 1pc 1px rgba(0,0,0,.2);height:24px;position:absolute;left:-15px;text-align:center;top:-6px;transform:rotate(-45deg);width:40px}.el-upload-cover__label i{color:#fff;font-size:12px;margin-top:11px;transform:rotate(45deg)}.el-upload-cover__progress{display:inline-block;position:static;vertical-align:middle;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{height:100%;right:0;position:absolute;top:0;width:100%}.el-upload-cover__interact{background-color:rgba(0,0,0,.72);bottom:0;height:100%;right:0;position:absolute;text-align:center;width:100%}.el-upload-cover__interact .btn{color:#fff;cursor:pointer;display:inline-block;font-size:14px;margin-top:60px;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);vertical-align:middle}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-right:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{background-color:#fff;bottom:0;color:#303133;font-size:14px;font-weight:400;height:36px;right:0;line-height:36px;margin:0;overflow:hidden;padding:0 10px;position:absolute;text-align:right;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{line-height:1;position:relative}.el-progress__text{color:#606266;display:inline-block;font-size:14px;line-height:1;margin-right:10px;vertical-align:middle}.el-progress__text i{display:block;vertical-align:middle}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{right:0;margin:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{display:inline-block;vertical-align:middle}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{display:block;margin-left:0;padding-left:0}.el-progress--text-inside .el-progress-bar{margin-left:0;padding-left:0}.el-progress.is-success .el-progress-bar__inner{background-color:#00b27f}.el-progress.is-success .el-progress__text{color:#00b27f}.el-progress.is-warning .el-progress-bar__inner{background-color:#fcbe2d}.el-progress.is-warning .el-progress__text{color:#fcbe2d}.el-progress.is-exception .el-progress-bar__inner{background-color:#ff6154}.el-progress.is-exception .el-progress__text{color:#ff6154}.el-progress-bar{box-sizing:border-box;display:inline-block;margin-left:-55px;padding-left:50px;vertical-align:middle;width:100%}.el-progress-bar__outer{background-color:#ebeef5;border-radius:100px;height:6px;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{background-color:#1a7efb;border-radius:100px;height:100%;right:0;line-height:1;position:absolute;text-align:left;top:0;transition:width .6s ease;white-space:nowrap}.el-progress-bar__inner:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__innerText{color:#fff;display:inline-block;font-size:12px;margin:0 5px;vertical-align:middle}@keyframes progress{0%{background-position:100% 0}to{background-position:32px 0}}.el-time-spinner{white-space:nowrap;width:100%}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{animation:rotate 2s linear infinite;height:50px;width:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(-1turn)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{align-items:center;background-color:#edf2fc;border:1px solid #ebeef5;border-radius:7px;box-sizing:border-box;display:flex;right:50%;min-width:380px;overflow:hidden;padding:15px 20px 15px 15px;position:fixed;top:20px;transform:translateX(50%);transition:opacity .3s,transform .4s,top .4s}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-left:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#4b4c4d}.el-message--success{background-color:#e6ffeb;border-color:#ccf0e5}.el-message--success .el-message__content{color:#00b27f}.el-message--warning{background-color:#fff9ea;border-color:#fef2d5}.el-message--warning .el-message__content{color:#fcbe2d}.el-message--error{background-color:#ffefee;border-color:#ffdfdd}.el-message--error .el-message__content{color:#ff6154}.el-message__icon{margin-left:10px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message__closeBtn{color:#afb3ba;cursor:pointer;font-size:16px;position:absolute;left:15px;top:50%;transform:translateY(-50%)}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#00b27f}.el-message .el-icon-error{color:#ff6154}.el-message .el-icon-info{color:#4b4c4d}.el-message .el-icon-warning{color:#fcbe2d}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;transform:translate(50%,-100%)}.el-badge{display:inline-block;position:relative;vertical-align:middle}.el-badge__content{background-color:#ff6154;border:1px solid #fff;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap}.el-badge__content.is-fixed{position:absolute;left:10px;top:0;transform:translateY(-50%) translateX(-100%)}.el-badge__content.is-fixed.is-dot{left:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;left:0;width:8px}.el-badge__content--primary{background-color:#1a7efb}.el-badge__content--success{background-color:#00b27f}.el-badge__content--warning{background-color:#fcbe2d}.el-badge__content--info{background-color:#4b4c4d}.el-badge__content--danger{background-color:#ff6154}.el-card{background-color:#fff;border:1px solid #ebeef5;border-radius:4px;color:#303133;overflow:hidden;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{border-bottom:1px solid #ebeef5;box-sizing:border-box;padding:18px 20px}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon,.el-rate__item{display:inline-block;position:relative}.el-rate__icon{color:#afb3ba;font-size:18px;margin-left:6px;transition:.3s}.el-rate__icon.hover{transform:scale(1.15)}.el-rate__decimal,.el-rate__icon .path2{right:0;position:absolute;top:0}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:flex}.el-steps--simple{background:#f5f7fa;border-radius:4px;padding:13px 8%}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{flex-flow:column;height:100%}.el-step{flex-shrink:1;position:relative}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-grow:0;flex-shrink:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-left:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{border-color:#303133;color:#303133}.el-step__head.is-wait{border-color:#afb3ba;color:#afb3ba}.el-step__head.is-success{border-color:#00b27f;color:#00b27f}.el-step__head.is-error{border-color:#ff6154;color:#ff6154}.el-step__head.is-finish{border-color:#1a7efb;color:#1a7efb}.el-step__icon{align-items:center;background:#fff;box-sizing:border-box;display:inline-flex;font-size:14px;height:24px;justify-content:center;position:relative;transition:.15s ease-out;width:24px;z-index:1}.el-step__icon.is-text{border:2px solid;border-color:inherit;border-radius:50%}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{color:inherit;display:inline-block;font-weight:700;line-height:1;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{background-color:#afb3ba;border-color:inherit;position:absolute}.el-step__line-inner{border:1px solid;border-color:inherit;box-sizing:border-box;display:block;height:0;transition:.15s ease-out;width:0}.el-step__main{text-align:right;white-space:normal}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{color:#303133;font-weight:700}.el-step__title.is-wait{color:#afb3ba}.el-step__title.is-success{color:#00b27f}.el-step__title.is-error{color:#ff6154}.el-step__title.is-finish{color:#1a7efb}.el-step__description{font-size:12px;font-weight:400;line-height:20px;margin-top:-5px;padding-left:10%}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#afb3ba}.el-step__description.is-success{color:#00b27f}.el-step__description.is-error{color:#ff6154}.el-step__description.is-finish{color:#1a7efb}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;right:0;left:0;top:11px}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{flex-grow:1;padding-right:10px}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{bottom:0;right:11px;top:0;width:2px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-right:20%;padding-left:20%}.el-step.is-center .el-step__line{right:50%;left:-50%}.el-step.is-simple{align-items:center;display:flex}.el-step.is-simple .el-step__head{font-size:0;padding-left:10px;width:auto}.el-step.is-simple .el-step__icon{background:transparent;font-size:12px;height:16px;width:16px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{align-items:stretch;display:flex;flex-grow:1;position:relative}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{align-items:center;display:flex;flex-grow:1;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{background:#afb3ba;content:"";display:inline-block;height:15px;position:absolute;width:1px}.el-step.is-simple .el-step__arrow:before{transform:rotate(45deg) translateY(-4px);transform-origin:100% 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(-45deg) translateY(4px);transform-origin:0% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{height:300px;position:relative}.el-carousel__arrow{background-color:rgba(31,45,61,.11);border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:12px;height:36px;margin:0;outline:none;padding:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);transition:.3s;width:36px;z-index:10}.el-carousel__arrow--left{right:16px}.el-carousel__arrow--right{left:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{list-style:none;margin:0;padding:0;position:absolute;z-index:2}.el-carousel__indicators--horizontal{bottom:0;right:50%;transform:translateX(50%)}.el-carousel__indicators--vertical{left:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;position:static;text-align:center;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#afb3ba;opacity:.24}.el-carousel__indicators--labels{right:0;left:0;text-align:center;transform:none}.el-carousel__indicators--labels .el-carousel__button{font-size:12px;height:auto;padding:2px 18px;width:auto}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{height:15px;width:2px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{background-color:#fff;border:none;cursor:pointer;display:block;height:2px;margin:0;opacity:.48;outline:none;padding:0;transition:.3s;width:30px}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{opacity:0;transform:translateY(-50%) translateX(10px)}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{opacity:0;transform:translateY(-50%) translateX(-10px)}.el-carousel__item{display:inline-block;height:100%;right:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{background-color:#fff;height:100%;right:0;opacity:.24;position:absolute;top:0;transition:.2s;width:100%}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1)}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1)}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top right;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1)}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{transition:width .3s ease-in-out,padding-right .3s ease-in-out,padding-left .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-bottom:1px solid #ebeef5;border-top:1px solid #ebeef5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{align-items:center;background-color:#fff;border-bottom:1px solid #ebeef5;color:#303133;cursor:pointer;display:flex;font-size:13px;font-weight:500;height:48px;line-height:48px;outline:none;transition:border-bottom-color .3s}.el-collapse-item__arrow{font-weight:300;margin:0 auto 0 8px;transition:transform .3s}.el-collapse-item__arrow.is-active{transform:rotate(-90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#1a7efb}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{background-color:#fff;border-bottom:1px solid #ebeef5;box-sizing:border-box;overflow:hidden;will-change:height}.el-collapse-item__content{color:#303133;font-size:13px;line-height:1.7692307692;padding-bottom:25px}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{border-color:transparent;border-style:solid;display:block;height:0;position:absolute;width:0}.el-popper .popper__arrow{border-width:6px;filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{border-width:6px;content:" "}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{border-bottom-width:0;border-top-color:#ebeef5;bottom:-6px;right:50%;margin-left:3px}.el-popper[x-placement^=top] .popper__arrow:after{border-bottom-width:0;border-top-color:#fff;bottom:1px;margin-right:-6px}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{border-bottom-color:#ebeef5;border-top-width:0;right:50%;margin-left:3px;top:-6px}.el-popper[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff;border-top-width:0;margin-right:-6px;top:1px}.el-popper[x-placement^=right]{margin-right:12px}.el-popper[x-placement^=right] .popper__arrow{border-right-width:0;border-left-color:#ebeef5;right:-6px;margin-bottom:3px;top:50%}.el-popper[x-placement^=right] .popper__arrow:after{border-right-width:0;border-left-color:#fff;bottom:-6px;right:1px}.el-popper[x-placement^=left]{margin-left:12px}.el-popper[x-placement^=left] .popper__arrow{border-right-color:#ebeef5;border-left-width:0;margin-bottom:3px;left:-6px;top:50%}.el-popper[x-placement^=left] .popper__arrow:after{border-right-color:#fff;border-left-width:0;bottom:-6px;margin-right:-6px;left:1px}.el-tag{background-color:#e8f2ff;border:1px solid #d1e5fe;border-radius:4px;box-sizing:border-box;color:#1a7efb;display:inline-block;font-size:12px;height:32px;line-height:30px;padding:0 10px;white-space:nowrap}.el-tag.is-hit{border-color:#1a7efb}.el-tag .el-tag__close{color:#1a7efb}.el-tag .el-tag__close:hover{background-color:#1a7efb;color:#fff}.el-tag.el-tag--info{background-color:#ededed;border-color:#dbdbdb;color:#4b4c4d}.el-tag.el-tag--info.is-hit{border-color:#4b4c4d}.el-tag.el-tag--info .el-tag__close{color:#4b4c4d}.el-tag.el-tag--info .el-tag__close:hover{background-color:#4b4c4d;color:#fff}.el-tag.el-tag--success{background-color:#e6f7f2;border-color:#ccf0e5;color:#00b27f}.el-tag.el-tag--success.is-hit{border-color:#00b27f}.el-tag.el-tag--success .el-tag__close{color:#00b27f}.el-tag.el-tag--success .el-tag__close:hover{background-color:#00b27f;color:#fff}.el-tag.el-tag--warning{background-color:#fff9ea;border-color:#fef2d5;color:#fcbe2d}.el-tag.el-tag--warning.is-hit{border-color:#fcbe2d}.el-tag.el-tag--warning .el-tag__close{color:#fcbe2d}.el-tag.el-tag--warning .el-tag__close:hover{background-color:#fcbe2d;color:#fff}.el-tag.el-tag--danger{background-color:#ffefee;border-color:#ffdfdd;color:#ff6154}.el-tag.el-tag--danger.is-hit{border-color:#ff6154}.el-tag.el-tag--danger .el-tag__close{color:#ff6154}.el-tag.el-tag--danger .el-tag__close:hover{background-color:#ff6154;color:#fff}.el-tag .el-icon-close{border-radius:50%;cursor:pointer;font-size:12px;height:16px;line-height:16px;position:relative;left:-5px;text-align:center;top:-1px;vertical-align:middle;width:16px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#1a7efb;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#1a7efb}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{background-color:#4898fc;color:#fff}.el-tag--dark.el-tag--info{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#4b4c4d}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{background-color:#6f7071;color:#fff}.el-tag--dark.el-tag--success{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#00b27f}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{background-color:#33c199;color:#fff}.el-tag--dark.el-tag--warning{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#fcbe2d}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{background-color:#fdcb57;color:#fff}.el-tag--dark.el-tag--danger{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#ff6154}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{background-color:#ff8176;color:#fff}.el-tag--plain{background-color:#fff;border-color:#a3cbfd;color:#1a7efb}.el-tag--plain.is-hit{border-color:#1a7efb}.el-tag--plain .el-tag__close{color:#1a7efb}.el-tag--plain .el-tag__close:hover{background-color:#1a7efb;color:#fff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#b7b7b8;color:#4b4c4d}.el-tag--plain.el-tag--info.is-hit{border-color:#4b4c4d}.el-tag--plain.el-tag--info .el-tag__close{color:#4b4c4d}.el-tag--plain.el-tag--info .el-tag__close:hover{background-color:#4b4c4d;color:#fff}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#99e0cc;color:#00b27f}.el-tag--plain.el-tag--success.is-hit{border-color:#00b27f}.el-tag--plain.el-tag--success .el-tag__close{color:#00b27f}.el-tag--plain.el-tag--success .el-tag__close:hover{background-color:#00b27f;color:#fff}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#fee5ab;color:#fcbe2d}.el-tag--plain.el-tag--warning.is-hit{border-color:#fcbe2d}.el-tag--plain.el-tag--warning .el-tag__close{color:#fcbe2d}.el-tag--plain.el-tag--warning .el-tag__close:hover{background-color:#fcbe2d;color:#fff}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#ffc0bb;color:#ff6154}.el-tag--plain.el-tag--danger.is-hit{border-color:#ff6154}.el-tag--plain.el-tag--danger .el-tag__close{color:#ff6154}.el-tag--plain.el-tag--danger .el-tag__close:hover{background-color:#ff6154;color:#fff}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;line-height:22px;padding:0 8px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;line-height:19px;padding:0 5px}.el-tag--mini .el-icon-close{margin-right:-3px;transform:scale(.7)}.el-cascader{display:inline-block;font-size:14px;line-height:40px;position:relative}.el-cascader:not(.is-disabled):hover .el-input__inner{border-color:#afb3ba;cursor:pointer}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-input__inner:focus{border-color:#1a7efb}.el-cascader .el-input .el-icon-arrow-down{font-size:14px;transition:transform .3s}.el-cascader .el-input .el-icon-arrow-down.is-reverse{transform:rotate(-180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader .el-input.is-focus .el-input__inner{border-color:#1a7efb}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{color:#afb3ba;z-index:2}.el-cascader__dropdown{background:#fff;border:1px solid #e4e7ed;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);font-size:14px;margin:5px 0}.el-cascader__tags{box-sizing:border-box;display:flex;flex-wrap:wrap;right:0;line-height:normal;position:absolute;left:30px;text-align:right;top:50%;transform:translateY(-50%)}.el-cascader__tags .el-tag{align-items:center;background:#f0f2f5;display:inline-flex;margin:2px 6px 2px 0;max-width:100%;text-overflow:ellipsis}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{background-color:#afb3ba;color:#fff;flex:none}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:7px}.el-cascader__suggestion-list{color:#606266;font-size:14px;margin:0;max-height:204px;padding:6px 0;text-align:center}.el-cascader__suggestion-item{align-items:center;cursor:pointer;display:flex;height:34px;justify-content:space-between;outline:none;padding:0 15px;text-align:right}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#1a7efb;font-weight:700}.el-cascader__suggestion-item>span{margin-left:10px}.el-cascader__empty-text{color:#afb3ba;margin:10px 0}.el-cascader__search-input{border:none;box-sizing:border-box;color:#606266;flex:1;height:24px;margin:2px 15px 2px 0;min-width:60px;outline:none;padding:0}.el-cascader__search-input::-moz-placeholder{color:#afb3ba}.el-cascader__search-input::placeholder{color:#afb3ba}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{border-radius:4px;cursor:pointer;height:20px;margin:0 8px 8px 0;width:20px}.el-color-predefine__color-selector:nth-child(10n+1){margin-right:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px #1a7efb}.el-color-predefine__color-selector>div{border-radius:3px;display:flex;height:100%}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{background-color:red;box-sizing:border-box;height:12px;padding:0 2px;position:relative;width:280px}.el-color-hue-slider__bar{background:linear-gradient(-90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%;position:relative}.el-color-hue-slider__thumb{background:#fff;border:1px solid #f0f0f0;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);box-sizing:border-box;cursor:pointer;height:100%;right:0;position:absolute;top:0;width:4px;z-index:1}.el-color-hue-slider.is-vertical{height:180px;padding:2px 0;width:12px}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(-180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{height:4px;right:0;top:0;width:100%}.el-color-svpanel{height:180px;position:relative;width:280px}.el-color-svpanel__black,.el-color-svpanel__white{bottom:0;right:0;position:absolute;left:0;top:0}.el-color-svpanel__white{background:linear-gradient(-90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);cursor:head;height:4px;transform:translate(2px,-2px);width:4px}.el-color-alpha-slider{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);box-sizing:border-box;height:12px;position:relative;width:280px}.el-color-alpha-slider__bar{background:linear-gradient(-90deg,hsla(0,0%,100%,0) 0,#fff);height:100%;position:relative}.el-color-alpha-slider__thumb{background:#fff;border:1px solid #f0f0f0;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);box-sizing:border-box;cursor:pointer;height:100%;right:0;position:absolute;top:0;width:4px;z-index:1}.el-color-alpha-slider.is-vertical{height:180px;width:20px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(-180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{height:4px;right:0;top:0;width:100%}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{clear:both;content:"";display:table}.el-color-dropdown__btns{margin-top:6px;text-align:left}.el-color-dropdown__value{color:#000;float:right;font-size:12px;line-height:26px;width:160px}.el-color-dropdown__btn{background-color:transparent;border:1px solid #dcdcdc;border-radius:2px;color:#333;cursor:pointer;font-size:12px;line-height:24px;outline:none;padding:0 20px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{border-color:#1a7efb;color:#1a7efb}.el-color-dropdown__link-btn{color:#1a7efb;cursor:pointer;font-size:12px;padding:15px;text-decoration:none}.el-color-dropdown__link-btn:hover{color:tint(#1a7efb,20%)}.el-color-picker{display:inline-block;height:40px;line-height:normal;position:relative}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:translate3d(50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{transform:translate3d(50%,-50%,0) scale(.8)}.el-color-picker__mask{background-color:hsla(0,0%,100%,.7);border-radius:4px;cursor:not-allowed;height:38px;right:1px;position:absolute;top:1px;width:38px;z-index:1}.el-color-picker__trigger{border:1px solid #e6e6e6;border-radius:4px;box-sizing:border-box;cursor:pointer;display:inline-block;font-size:0;height:40px;padding:4px;position:relative;width:40px}.el-color-picker__color{border:1px solid #999;border-radius:4px;box-sizing:border-box;display:block;height:100%;position:relative;text-align:center;width:100%}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{bottom:0;right:0;position:absolute;left:0;top:0}.el-color-picker__empty{color:#999}.el-color-picker__empty,.el-color-picker__icon{font-size:12px;right:50%;position:absolute;top:50%;transform:translate3d(50%,-50%,0)}.el-color-picker__icon{color:#fff;display:inline-block;text-align:center;width:100%}.el-color-picker__panel{background-color:#fff;border:1px solid #ebeef5;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:content-box;padding:6px;position:absolute;z-index:10}.el-textarea{display:inline-block;font-size:14px;position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{background-color:#fff;background-image:none;border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;color:#606266;display:block;font-size:inherit;line-height:1.5;padding:5px 15px;resize:vertical;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-textarea__inner::-moz-placeholder{color:#afb3ba}.el-textarea__inner::placeholder{color:#afb3ba}.el-textarea__inner:hover{border-color:#afb3ba}.el-textarea__inner:focus{border-color:#1a7efb;outline:none}.el-textarea .el-input__count{background:#fff;bottom:5px;color:#4b4c4d;font-size:12px;position:absolute;left:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#afb3ba;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#afb3ba}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#afb3ba}.el-textarea.is-exceed .el-textarea__inner{border-color:#ff6154}.el-textarea.is-exceed .el-input__count{color:#ff6154}.el-input{display:inline-block;font-size:14px;position:relative;width:100%}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:#b4bccc;border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#afb3ba;cursor:pointer;font-size:14px;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{align-items:center;color:#4b4c4d;display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:#fff;display:inline-block;line-height:normal;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:none;padding:0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__inner::-ms-reveal{display:none}.el-input__inner::-moz-placeholder{color:#afb3ba}.el-input__inner::placeholder{color:#afb3ba}.el-input__inner:hover{border-color:#afb3ba}.el-input__inner:focus{border-color:#1a7efb;outline:none}.el-input__suffix{color:#afb3ba;height:100%;pointer-events:none;position:absolute;left:5px;text-align:center;top:0;transition:all .3s}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{color:#afb3ba;right:5px;position:absolute;top:0}.el-input__icon,.el-input__prefix{height:100%;text-align:center;transition:all .3s}.el-input__icon{line-height:40px;width:25px}.el-input__icon:after{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__inner{border-color:#1a7efb;outline:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#afb3ba;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#afb3ba}.el-input.is-disabled .el-input__inner::placeholder{color:#afb3ba}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#ff6154}.el-input.is-exceed .el-input__suffix .el-input__count{color:#ff6154}.el-input--suffix .el-input__inner{padding-left:30px}.el-input--prefix .el-input__inner{padding-right:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{border-collapse:separate;border-spacing:0;display:inline-table;line-height:normal;width:100%}.el-input-group>.el-input__inner{display:table-cell;vertical-align:middle}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;border:1px solid #dadbdd;border-radius:7px;color:#4b4c4d;display:table-cell;padding:0 20px;position:relative;vertical-align:middle;white-space:nowrap;width:1px}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{background-color:transparent;border-color:transparent;border-bottom:0;border-top:0;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-left-radius:0;border-left:0;border-top-left-radius:0}.el-input-group__append{border-right:0}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input-group--append .el-input__inner{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;height:0;width:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;padding:0 30px;vertical-align:middle}.el-transfer__button{background-color:#1a7efb;border-radius:50%;color:#fff;display:block;font-size:0;margin:0 auto;padding:10px}.el-transfer__button.is-with-texts{border-radius:7px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{background-color:#f5f7fa;border:1px solid #dadbdd;color:#afb3ba}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button [class*=el-icon-]+span{margin-right:0}.el-transfer-panel{background:#fff;border:1px solid #ebeef5;border-radius:7px;box-sizing:border-box;display:inline-block;max-height:100%;overflow:hidden;position:relative;vertical-align:middle;width:200px}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{box-sizing:border-box;height:246px;list-style:none;margin:0;overflow:auto;padding:6px 0}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{display:block!important;height:30px;line-height:30px;padding-right:15px}.el-transfer-panel__item+.el-transfer-panel__item{margin-right:0}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#1a7efb}.el-transfer-panel__item.el-checkbox .el-checkbox__label{box-sizing:border-box;display:block;line-height:30px;overflow:hidden;padding-right:24px;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{box-sizing:border-box;display:block;margin:15px;text-align:center;width:auto}.el-transfer-panel__filter .el-input__inner{border-radius:16px;box-sizing:border-box;display:inline-block;font-size:12px;height:32px;padding-right:30px;padding-left:10px;width:100%}.el-transfer-panel__filter .el-input__icon{margin-right:5px}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{background:#f5f7fa;border-bottom:1px solid #ebeef5;box-sizing:border-box;color:#000;height:40px;line-height:40px;margin:0;padding-right:15px}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{color:#303133;font-size:16px;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{color:#909399;font-size:12px;font-weight:400;position:absolute;left:15px}.el-transfer-panel .el-transfer-panel__footer{background:#fff;border-top:1px solid #ebeef5;bottom:0;height:40px;right:0;margin:0;padding:0;position:absolute;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{color:#606266;padding-right:20px}.el-transfer-panel .el-transfer-panel__empty{color:#909399;height:30px;line-height:30px;margin:0;padding:6px 15px 0;text-align:center}.el-transfer-panel .el-checkbox__label{padding-right:8px}.el-transfer-panel .el-checkbox__inner{border-radius:3px;height:14px;width:14px}.el-transfer-panel .el-checkbox__inner:after{height:6px;right:4px;width:3px}.el-container{box-sizing:border-box;display:flex;flex:1;flex-basis:auto;flex-direction:row;min-width:0}.el-container.is-vertical{flex-direction:column}.el-header{padding:0 20px}.el-aside,.el-header{box-sizing:border-box;flex-shrink:0}.el-aside,.el-main{overflow:auto}.el-main{display:block;flex:1;flex-basis:auto;padding:20px}.el-footer,.el-main{box-sizing:border-box}.el-footer{flex-shrink:0;padding:0 20px}.el-timeline{font-size:14px;list-style:none;margin:0}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{padding-bottom:20px;position:relative}.el-timeline-item__wrapper{padding-right:28px;position:relative;top:-3px}.el-timeline-item__tail{border-right:2px solid #e4e7ed;height:100%;right:4px;position:absolute}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{align-items:center;background-color:#e4e7ed;border-radius:50%;display:flex;justify-content:center;position:absolute}.el-timeline-item__node--normal{height:12px;right:-1px;width:12px}.el-timeline-item__node--large{height:14px;right:-2px;width:14px}.el-timeline-item__node--primary{background-color:#1a7efb}.el-timeline-item__node--success{background-color:#00b27f}.el-timeline-item__node--warning{background-color:#fcbe2d}.el-timeline-item__node--danger{background-color:#ff6154}.el-timeline-item__node--info{background-color:#4b4c4d}.el-timeline-item__dot{align-items:center;display:flex;justify-content:center;position:absolute}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;font-size:13px;line-height:1}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{align-items:center;cursor:pointer;display:inline-flex;flex-direction:row;font-size:14px;font-weight:500;justify-content:center;outline:none;padding:0;position:relative;text-decoration:none;vertical-align:middle}.el-link.is-underline:hover:after{border-bottom:1px solid #1a7efb;bottom:0;content:"";height:0;right:0;position:absolute;left:0}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-right:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#1a7efb}.el-link.el-link--default:after{border-color:#1a7efb}.el-link.el-link--default.is-disabled{color:#afb3ba}.el-link.el-link--primary{color:#1a7efb}.el-link.el-link--primary:hover{color:#4898fc}.el-link.el-link--primary:after{border-color:#1a7efb}.el-link.el-link--primary.is-disabled{color:#8dbffd}.el-link.el-link--primary.is-underline:hover:after{border-color:#1a7efb}.el-link.el-link--danger{color:#ff6154}.el-link.el-link--danger:hover{color:#ff8176}.el-link.el-link--danger:after{border-color:#ff6154}.el-link.el-link--danger.is-disabled{color:#ffb0aa}.el-link.el-link--danger.is-underline:hover:after{border-color:#ff6154}.el-link.el-link--success{color:#00b27f}.el-link.el-link--success:hover{color:#33c199}.el-link.el-link--success:after{border-color:#00b27f}.el-link.el-link--success.is-disabled{color:#80d9bf}.el-link.el-link--success.is-underline:hover:after{border-color:#00b27f}.el-link.el-link--warning{color:#fcbe2d}.el-link.el-link--warning:hover{color:#fdcb57}.el-link.el-link--warning:after{border-color:#fcbe2d}.el-link.el-link--warning.is-disabled{color:#fedf96}.el-link.el-link--warning.is-underline:hover:after{border-color:#fcbe2d}.el-link.el-link--info{color:#4b4c4d}.el-link.el-link--info:hover{color:#6f7071}.el-link.el-link--info:after{border-color:#4b4c4d}.el-link.el-link--info.is-disabled{color:#a5a6a6}.el-link.el-link--info.is-underline:hover:after{border-color:#4b4c4d}.el-divider{background-color:#dadbdd;position:relative}.el-divider--horizontal{display:block;height:1px;margin:24px 0;width:100%}.el-divider--vertical{display:inline-block;height:1em;margin:0 8px;position:relative;vertical-align:middle;width:1px}.el-divider__text{background-color:#fff;color:#303133;font-size:14px;font-weight:500;padding:0 20px;position:absolute}.el-divider__text.is-left{right:20px;transform:translateY(-50%)}.el-divider__text.is-center{right:50%;transform:translateX(50%) translateY(-50%)}.el-divider__text.is-right{left:20px;transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{height:100%;width:100%}.el-image{display:inline-block;overflow:hidden;position:relative}.el-image__inner{vertical-align:top}.el-image__inner--center{display:block;right:50%;position:relative;top:50%;transform:translate(50%,-50%)}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-image__error{align-items:center;color:#afb3ba;display:flex;font-size:14px;justify-content:center;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{bottom:0;right:0;position:fixed;left:0;top:0}.el-image-viewer__btn{align-items:center;border-radius:50%;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;opacity:.8;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1}.el-image-viewer__close{background-color:#606266;color:#fff;font-size:24px;height:40px;left:40px;top:40px;width:40px}.el-image-viewer__canvas{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.el-image-viewer__actions{background-color:#606266;border-color:#fff;border-radius:22px;bottom:30px;height:44px;right:50%;padding:0 23px;transform:translateX(50%);width:282px}.el-image-viewer__actions__inner{align-items:center;color:#fff;cursor:default;display:flex;font-size:23px;height:100%;justify-content:space-around;text-align:justify;width:100%}.el-image-viewer__prev{right:40px}.el-image-viewer__next,.el-image-viewer__prev{background-color:#606266;border-color:#fff;color:#fff;font-size:24px;height:44px;top:50%;transform:translateY(-50%);width:44px}.el-image-viewer__next{left:40px;text-indent:2px}.el-image-viewer__mask{background:#000;height:100%;right:0;opacity:.5;position:absolute;top:0;width:100%}.viewer-fade-enter-active{animation:viewer-fade-in .3s}.viewer-fade-leave-active{animation:viewer-fade-out .3s}@keyframes viewer-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.el-button{-webkit-appearance:none;background:#fff;border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;color:#606266;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1;margin:0;outline:none;padding:12px 20px;text-align:center;transition:.1s;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;white-space:nowrap}.el-button+.el-button{margin-right:10px}.el-button.is-round{padding:12px 20px}.el-button:focus,.el-button:hover{background-color:#e8f2ff;border-color:#bad8fe;color:#1a7efb}.el-button:active{border-color:#1771e2;color:#1771e2;outline:none}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-right:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#1a7efb;color:#1a7efb}.el-button.is-plain:active{background:#fff;outline:none}.el-button.is-active,.el-button.is-plain:active{border-color:#1771e2;color:#1771e2}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{background-color:#fff;background-image:none;border-color:#ebeef5;color:#afb3ba;cursor:not-allowed}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#afb3ba}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:hsla(0,0%,100%,.35);border-radius:inherit;bottom:-1px;content:"";right:-1px;pointer-events:none;position:absolute;left:-1px;top:-1px}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--primary:focus,.el-button--primary:hover{background:#4898fc;border-color:#4898fc;color:#fff}.el-button--primary:active{outline:none}.el-button--primary.is-active,.el-button--primary:active{background:#1771e2;border-color:#1771e2;color:#fff}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{background-color:#8dbffd;border-color:#8dbffd;color:#fff}.el-button--primary.is-plain{background:#e8f2ff;border-color:#a3cbfd;color:#1a7efb}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--primary.is-plain:active{background:#1771e2;border-color:#1771e2;color:#fff;outline:none}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{background-color:#e8f2ff;border-color:#d1e5fe;color:#76b2fd}.el-button--success{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-button--success:focus,.el-button--success:hover{background:#33c199;border-color:#33c199;color:#fff}.el-button--success:active{outline:none}.el-button--success.is-active,.el-button--success:active{background:#00a072;border-color:#00a072;color:#fff}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{background-color:#80d9bf;border-color:#80d9bf;color:#fff}.el-button--success.is-plain{background:#e6f7f2;border-color:#99e0cc;color:#00b27f}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#00b27f;border-color:#00b27f;color:#fff}.el-button--success.is-plain:active{background:#00a072;border-color:#00a072;color:#fff;outline:none}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{background-color:#e6f7f2;border-color:#ccf0e5;color:#66d1b2}.el-button--warning{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--warning:focus,.el-button--warning:hover{background:#fdcb57;border-color:#fdcb57;color:#fff}.el-button--warning:active{outline:none}.el-button--warning.is-active,.el-button--warning:active{background:#e3ab29;border-color:#e3ab29;color:#fff}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{background-color:#fedf96;border-color:#fedf96;color:#fff}.el-button--warning.is-plain{background:#fff9ea;border-color:#fee5ab;color:#fcbe2d}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--warning.is-plain:active{background:#e3ab29;border-color:#e3ab29;color:#fff;outline:none}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{background-color:#fff9ea;border-color:#fef2d5;color:#fdd881}.el-button--danger{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-button--danger:focus,.el-button--danger:hover{background:#ff8176;border-color:#ff8176;color:#fff}.el-button--danger:active{outline:none}.el-button--danger.is-active,.el-button--danger:active{background:#e6574c;border-color:#e6574c;color:#fff}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{background-color:#ffb0aa;border-color:#ffb0aa;color:#fff}.el-button--danger.is-plain{background:#ffefee;border-color:#ffc0bb;color:#ff6154}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#ff6154;border-color:#ff6154;color:#fff}.el-button--danger.is-plain:active{background:#e6574c;border-color:#e6574c;color:#fff;outline:none}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{background-color:#ffefee;border-color:#ffdfdd;color:#ffa098}.el-button--info{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--info:focus,.el-button--info:hover{background:#6f7071;border-color:#6f7071;color:#fff}.el-button--info:active{outline:none}.el-button--info.is-active,.el-button--info:active{background:#444445;border-color:#444445;color:#fff}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{background-color:#a5a6a6;border-color:#a5a6a6;color:#fff}.el-button--info.is-plain{background:#ededed;border-color:#b7b7b8;color:#4b4c4d}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--info.is-plain:active{background:#444445;border-color:#444445;color:#fff;outline:none}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{background-color:#ededed;border-color:#dbdbdb;color:#939494}.el-button--medium{border-radius:7px;font-size:14px;padding:10px 20px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small{border-radius:6px;font-size:13px;padding:8px 11px}.el-button--small.is-round{padding:8px 11px}.el-button--small.is-circle{padding:8px}.el-button--mini{border-radius:6px;font-size:12px;padding:7px 15px}.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{background:transparent;border-color:transparent;color:#1a7efb;padding-right:0;padding-left:0}.el-button--text:focus,.el-button--text:hover{background-color:transparent;border-color:transparent;color:#4898fc}.el-button--text:active{background-color:transparent;color:#1771e2}.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{content:"";display:table}.el-button-group:after{clear:both}.el-button-group>.el-button{float:right;position:relative}.el-button-group>.el-button+.el-button{margin-right:0}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.el-button-group>.el-button:last-child{border-bottom-right-radius:0;border-top-right-radius:0}.el-button-group>.el-button:first-child:last-child{border-bottom-right-radius:7px;border-bottom-left-radius:7px;border-top-right-radius:7px;border-top-left-radius:7px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-left:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:not(.is-disabled):active,.el-button-group>.el-button:not(.is-disabled):focus,.el-button-group>.el-button:not(.is-disabled):hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-bottom-right-radius:0;border-right-color:hsla(0,0%,100%,.5);border-top-right-radius:0}.el-button-group .el-button--primary:first-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-right-color:hsla(0,0%,100%,.5);border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-right-color:hsla(0,0%,100%,.5);border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-right-color:hsla(0,0%,100%,.5);border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-right-color:hsla(0,0%,100%,.5);border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-right-color:hsla(0,0%,100%,.5);border-left-color:hsla(0,0%,100%,.5)}.el-calendar{background-color:#fff}.el-calendar__header{border-bottom:1px solid #ececec;display:flex;justify-content:space-between;padding:12px 20px}.el-calendar__title{align-self:center;color:#000}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{color:#606266;font-weight:400;padding:12px 0}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#afb3ba}.el-calendar-table td{border-bottom:1px solid #ececec;border-left:1px solid #ececec;transition:background-color .2s ease;vertical-align:top}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table td.is-today{color:#1a7efb}.el-calendar-table tr:first-child td{border-top:1px solid #ececec}.el-calendar-table tr td:first-child{border-right:1px solid #ececec}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;height:85px;padding:8px}.el-calendar-table .el-calendar-day:hover{background-color:#f2f8fe;cursor:pointer}.el-backtop{align-items:center;background-color:#fff;border-radius:50%;box-shadow:0 0 6px rgba(0,0,0,.12);color:#1a7efb;cursor:pointer;display:flex;font-size:20px;height:40px;justify-content:center;position:fixed;width:40px;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{display:flex;line-height:24px}.el-page-header__left{cursor:pointer;display:flex;margin-left:40px;position:relative}.el-page-header__left:after{background-color:#dadbdd;content:"";height:16px;position:absolute;left:-20px;top:50%;transform:translateY(-50%);width:1px}.el-page-header__left .el-icon-back{align-self:center;font-size:18px;margin-left:6px}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{color:#303133;font-size:18px}.el-checkbox{color:#606266;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;margin-left:30px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-checkbox.is-bordered{border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;height:40px;line-height:normal;padding:9px 10px 9px 20px}.el-checkbox.is-bordered.is-checked{border-color:#1a7efb}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-right:10px}.el-checkbox.is-bordered.el-checkbox--medium{border-radius:7px;height:36px;padding:7px 10px 7px 20px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{font-size:14px;line-height:17px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:6px;height:32px;padding:5px 10px 5px 15px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:13px;line-height:15px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{border-radius:6px;height:28px;padding:3px 10px 3px 15px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{font-size:12px;line-height:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;display:inline-block;line-height:1;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dadbdd;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{border-color:#afb3ba;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dadbdd}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#afb3ba}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dadbdd}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#afb3ba;border-color:#afb3ba}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#afb3ba;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:#1a7efb;border-color:#1a7efb}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(-45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#1a7efb}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#1a7efb}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#1a7efb;border-color:#1a7efb}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{background-color:#fff;content:"";display:block;height:2px;right:0;position:absolute;left:0;top:5px;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{background-color:#fff;border:1px solid #868686;border-radius:4px;box-sizing:border-box;display:inline-block;height:14px;position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);width:14px;z-index:1}.el-checkbox__inner:hover{border-color:#1a7efb}.el-checkbox__inner:after{border:1px solid #fff;border-right:0;border-top:0;box-sizing:content-box;content:"";height:7px;right:4px;position:absolute;top:1px;transform:rotate(-45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.el-checkbox__original{height:0;margin:0;opacity:0;outline:none;position:absolute;width:0;z-index:-1}.el-checkbox__label{display:inline-block;font-size:14px;line-height:19px;padding-right:10px}.el-checkbox:last-of-type{margin-left:0}.el-checkbox-button,.el-checkbox-button__inner{display:inline-block;position:relative}.el-checkbox-button__inner{-webkit-appearance:none;background:#fff;border:1px solid #dadbdd;border-right:0;border-radius:0;box-sizing:border-box;color:#606266;cursor:pointer;font-size:14px;font-weight:500;line-height:1;margin:0;outline:none;padding:12px 20px;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;vertical-align:middle;white-space:nowrap}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#1a7efb}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-right:5px}.el-checkbox-button__original{margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{background-color:#1a7efb;border-color:#1a7efb;box-shadow:1px 0 0 0 #76b2fd;color:#fff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-right-color:#1a7efb}.el-checkbox-button.is-disabled .el-checkbox-button__inner{background-color:#fff;background-image:none;border-color:#ebeef5;box-shadow:none;color:#afb3ba;cursor:not-allowed}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-right-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-right:1px solid #dadbdd;border-radius:0 7px 7px 0;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#1a7efb}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:7px 0 0 7px}.el-checkbox-button--medium .el-checkbox-button__inner{border-radius:0;font-size:14px;padding:10px 20px}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{border-radius:0;font-size:13px;padding:8px 11px}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:8px 11px}.el-checkbox-button--mini .el-checkbox-button__inner{border-radius:0;font-size:12px;padding:7px 15px}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio{color:#606266;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1;margin-left:30px;outline:none;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;white-space:nowrap}.el-radio.is-bordered{border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;height:40px;padding:12px 10px 0 20px}.el-radio.is-bordered.is-checked{border-color:#1a7efb}.el-radio.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-radio.is-bordered+.el-radio.is-bordered{margin-right:10px}.el-radio--medium.is-bordered{border-radius:7px;height:36px;padding:10px 10px 0 20px}.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{border-radius:6px;height:32px;padding:8px 10px 0 15px}.el-radio--small.is-bordered .el-radio__label{font-size:13px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{border-radius:6px;height:28px;padding:6px 10px 0 15px}.el-radio--mini.is-bordered .el-radio__label{font-size:12px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-left:0}.el-radio__input{cursor:pointer;display:inline-block;line-height:1;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-radio__input.is-disabled .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed;cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{background-color:#f5f7fa;cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#afb3ba}.el-radio__input.is-disabled+span.el-radio__label{color:#afb3ba;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{background:#1a7efb;border-color:#1a7efb}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#1a7efb}.el-radio__input.is-focus .el-radio__inner{border-color:#1a7efb}.el-radio__inner{background-color:#fff;border:1px solid #dadbdd;border-radius:100%;box-sizing:border-box;cursor:pointer;display:inline-block;height:14px;position:relative;width:14px}.el-radio__inner:hover{border-color:#1a7efb}.el-radio__inner:after{background-color:#fff;border-radius:100%;content:"";height:4px;right:50%;position:absolute;top:50%;transform:translate(50%,-50%) scale(0);transition:transform .15s ease-in;width:4px}.el-radio__original{bottom:0;right:0;margin:0;opacity:0;outline:none;position:absolute;left:0;top:0;z-index:-1}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px #1a7efb}.el-radio__label{font-size:14px;padding-right:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;transition:opacity .34s ease-out}.el-scrollbar__wrap{height:100%;overflow:scroll}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{height:0;width:0}.el-scrollbar__thumb{background-color:hsla(220,4%,58%,.3);border-radius:inherit;cursor:pointer;display:block;height:0;position:relative;transition:background-color .3s;width:0}.el-scrollbar__thumb:hover{background-color:hsla(220,4%,58%,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;opacity:0;position:absolute;left:2px;transition:opacity .12s ease-out;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;right:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{border-radius:7px;display:flex;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #e4e7ed;border-radius:7px}.el-cascader-menu{border-left:1px solid #e4e7ed;box-sizing:border-box;color:#606266;min-width:180px}.el-cascader-menu:last-child{border-left:none}.el-cascader-menu:last-child .el-cascader-node{padding-left:20px}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{box-sizing:border-box;list-style:none;margin:0;min-height:100%;padding:6px 0;position:relative}.el-cascader-menu__hover-zone{height:100%;right:0;pointer-events:none;position:absolute;top:0;width:100%}.el-cascader-menu__empty-text{color:#afb3ba;right:50%;position:absolute;text-align:center;top:50%;transform:translate(50%,-50%)}.el-cascader-node{align-items:center;display:flex;height:34px;line-height:34px;outline:none;padding:0 20px 0 30px;position:relative}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#1a7efb;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#afb3ba;cursor:not-allowed}.el-cascader-node__prefix{right:10px;position:absolute}.el-cascader-node__postfix{position:absolute;left:10px}.el-cascader-node__label{flex:1;overflow:hidden;padding:0 10px;text-overflow:ellipsis;white-space:nowrap}.el-cascader-node>.el-radio{margin-left:0}.el-cascader-node>.el-radio .el-radio__label{padding-right:0}.el-avatar{background:#c0c4cc;box-sizing:border-box;color:#fff;display:inline-block;font-size:14px;height:40px;line-height:40px;overflow:hidden;text-align:center;width:40px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:7px}.el-avatar--icon{font-size:18px}.el-avatar--large{height:40px;line-height:40px;width:40px}.el-avatar--medium{height:36px;line-height:36px;width:36px}.el-avatar--small{height:28px;line-height:28px;width:28px}@keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rtl-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rtl-drawer-out{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes ltr-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes ltr-drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes ttb-drawer-in{0%{transform:translateY(-100%)}to{transform:translate(0)}}@keyframes ttb-drawer-out{0%{transform:translate(0)}to{transform:translateY(-100%)}}@keyframes btt-drawer-in{0%{transform:translateY(100%)}to{transform:translate(0)}}@keyframes btt-drawer-out{0%{transform:translate(0)}to{transform:translateY(100%)}}.el-drawer{background-color:#fff;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-sizing:border-box;display:flex;flex-direction:column;outline:0;overflow:hidden;position:absolute}.el-drawer.rtl{animation:rtl-drawer-out .3s}.el-drawer__open .el-drawer.rtl{animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{animation:ltr-drawer-out .3s}.el-drawer__open .el-drawer.ltr{animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{animation:ttb-drawer-out .3s}.el-drawer__open .el-drawer.ttb{animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{animation:btt-drawer-out .3s}.el-drawer__open .el-drawer.btt{animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{bottom:0;right:0;margin:0;overflow:hidden;position:fixed;left:0;top:0}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:20px 20px 0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{flex:1;font-size:1rem;line-height:inherit;margin:0}.el-drawer__close-btn{background-color:transparent;border:none;color:inherit;cursor:pointer;font-size:20px}.el-drawer__body{flex:1;overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{bottom:0;height:100%;top:0}.el-drawer.btt,.el-drawer.ttb{right:0;left:0;width:100%}.el-drawer.ltr{right:0}.el-drawer.rtl{left:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer__container{bottom:0;height:100%;right:0;position:relative;left:0;top:0;width:100%}.el-drawer-fade-enter-active{animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-statistic{font-feature-settings:"tnum";box-sizing:border-box;color:#000;font-variant:tabular-nums;list-style:none;margin:0;padding:0;text-align:center;width:100%}.el-statistic .head{color:#606266;font-size:13px;margin-bottom:4px}.el-statistic .con{align-items:center;color:#303133;display:flex;font-family:Sans-serif;justify-content:center}.el-statistic .con .number{font-size:20px;padding:0 4px}.el-statistic .con span{display:inline-block;line-height:100%;margin:0}.el-popconfirm__main{align-items:center;display:flex}.el-popconfirm__icon{margin-left:5px}.el-popconfirm__action{margin:0;text-align:left}@keyframes el-skeleton-loading{0%{background-position:0% 50%}to{background-position:100% 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{background:#f2f2f2;height:16px;margin-top:16px}.el-skeleton.is-animated .el-skeleton__item{animation:el-skeleton-loading 1.4s ease infinite;background:linear-gradient(-90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%}.el-skeleton__item{background:#f2f2f2;border-radius:7px;display:inline-block;height:16px;width:100%}.el-skeleton__circle{border-radius:50%;height:36px;line-height:36px;width:36px}.el-skeleton__circle--lg{height:40px;line-height:40px;width:40px}.el-skeleton__circle--md{height:28px;line-height:28px;width:28px}.el-skeleton__button{border-radius:4px;height:40px;width:64px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{height:13px;width:100%}.el-skeleton__caption{height:12px}.el-skeleton__h1{height:20px}.el-skeleton__h3{height:18px}.el-skeleton__h5{height:16px}.el-skeleton__image{align-items:center;border-radius:0;display:flex;justify-content:center;width:unset}.el-skeleton__image svg{fill:#dcdde0;height:22%;width:22%}.el-empty{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:40px 0;text-align:center}.el-empty__image{width:160px}.el-empty__image img{height:100%;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:top;width:100%}.el-empty__image svg{fill:#dcdde0;height:100%;vertical-align:top;width:100%}.el-empty__description{margin-top:20px}.el-empty__description p{color:#909399;font-size:14px;margin:0}.el-empty__bottom{margin-top:20px}.el-descriptions{box-sizing:border-box;color:#303133;font-size:14px}.el-descriptions__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.el-descriptions__title{font-size:16px;font-weight:700}.el-descriptions__body{background-color:#fff;color:#606266}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;table-layout:fixed;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell{box-sizing:border-box;font-weight:400;line-height:1.5;text-align:right}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-left{text-align:right}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-right{text-align:left}.el-descriptions .is-bordered{table-layout:auto}.el-descriptions .is-bordered .el-descriptions-item__cell{border:1px solid #ebeef5;padding:12px 10px}.el-descriptions :not(.is-bordered) .el-descriptions-item__cell{padding-bottom:12px}.el-descriptions--medium.is-bordered .el-descriptions-item__cell{padding:10px}.el-descriptions--medium:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:10px}.el-descriptions--small{font-size:12px}.el-descriptions--small.is-bordered .el-descriptions-item__cell{padding:8px 10px}.el-descriptions--small:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:8px}.el-descriptions--mini{font-size:12px}.el-descriptions--mini.is-bordered .el-descriptions-item__cell{padding:6px 10px}.el-descriptions--mini:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:6px}.el-descriptions-item{vertical-align:top}.el-descriptions-item__container{display:flex}.el-descriptions-item__container .el-descriptions-item__content,.el-descriptions-item__container .el-descriptions-item__label{align-items:baseline;display:inline-flex}.el-descriptions-item__container .el-descriptions-item__content{flex:1}.el-descriptions-item__label.has-colon:after{content:":";position:relative;top:-.5px}.el-descriptions-item__label.is-bordered-label{background:#fafafa;color:#909399;font-weight:700}.el-descriptions-item__label:not(.is-bordered-label){margin-left:10px}.el-descriptions-item__content{overflow-wrap:break-word;word-break:break-word}.el-result{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:40px 30px;text-align:center}.el-result__icon svg{height:64px;width:64px}.el-result__title{margin-top:20px}.el-result__title p{color:#303133;font-size:20px;line-height:1.3;margin:0}.el-result__subtitle{margin-top:10px}.el-result__subtitle p{color:#606266;font-size:14px;line-height:1.3;margin:0}.el-result__extra{margin-top:30px}.el-result .icon-success{fill:#00b27f}.el-result .icon-error{fill:#ff6154}.el-result .icon-info{fill:#4b4c4d}.el-result .icon-warning{fill:#fcbe2d}.el-dropdown-list-wrapper{padding:0}.el-dropdown-list-wrapper .group-title{background-color:#4b4c4d;color:#fff;display:block;padding:5px 10px}.remove-btn{cursor:pointer}.el-text-danger{color:#ff6154}.ff_condition_icon{color:#9ca1a7;position:absolute;left:8px;top:8px;z-index:1}.ff_conv_section>.ff_condition_icon,.item-container>.ff_condition_icon{left:17px;top:12px;z-index:2}.search-element{margin:10px 0;padding:0}.ff_filter_wrapper{margin-bottom:20px;overflow:hidden;width:100%}.ff_inline{display:inline-block}.ff_forms_table .el-loading-mask{z-index:100}.copy{cursor:context-menu}.fluent_form_intro{align-items:center;display:flex;text-align:center}.fluent_form_intro_video iframe{border-radius:8px;height:292px;width:100%}.wpns_preview_mce .el-form-item{margin-bottom:20px!important}.wpns_button_preview{border:1px solid #dde6ed!important;border-radius:.3rem!important;display:flex;flex-direction:column!important;height:100%!important;text-align:center}.wpns_button_preview .preview_header{background-color:#f2f5f9!important;color:#53657a!important;padding:6px 0}.wpns_button_preview .preview_body{align-items:center!important;height:100%;padding:150px 0}.ff_photo_small .wpf_photo_holder{background:gray;border-radius:3px;color:#fff;cursor:pointer;position:relative;text-align:center;width:64px}.ff_photo_small .wpf_photo_holder:hover img{display:none}.ff_photo_horizontal .wpf_photo_holder{border-radius:3px;color:#fff;cursor:pointer;position:relative;text-align:right}.ff_photo_horizontal .wpf_photo_holder img{display:inline-block;width:64px}.ff_photo_horizontal .wpf_photo_holder .photo_widget_btn{color:#000;display:inline-block;vertical-align:top}.ff_photo_horizontal .wpf_photo_holder .photo_widget_btn span{font-size:40px}.photo_widget_btn_clear{color:#ff6154;display:none;right:0;position:absolute;top:0}.wpf_photo_holder:hover .photo_widget_btn_clear{display:block}.wp_vue_editor{min-height:100px;width:100%}.wp_vue_editor_wrapper{position:relative}.wp_vue_editor_wrapper .popover-wrapper{position:absolute;left:0;top:0;z-index:2}.wp_vue_editor_wrapper .popover-wrapper-plaintext{right:auto;left:0;top:-32px}.wp_vue_editor_wrapper .wp-editor-tabs{float:right}.mce-wpns_editor_btn button{border:1px solid gray;border-radius:3px;font-size:14px!important;margin-top:-1px;padding:3px 8px!important}.mce-wpns_editor_btn:hover{border:1px solid transparent!important}.wp-core-ui .button,.wp-core-ui .button-secondary{border-color:gray;color:#595959}.is-error .el-input__inner{border-color:#ff6154}.el-form-item__error{position:relative!important}.el-form-item__error p{margin-bottom:0;margin-top:0}.el-dropdown-list-wrapper.el-popover{z-index:9999999999999!important}.input-textarea-value .icon{top:-18px}.el_pop_data_group{background:#fff;border-radius:8px;display:flex;overflow:hidden;padding:12px}.el_pop_data_headings{background-color:#f2f2f2;border-radius:8px;padding:12px;width:175px}.el_pop_data_headings ul{margin:10px 0;padding:0}.el_pop_data_headings ul li.active_item_selected{background:#f5f5f5;border-right:2px solid #6c757d;color:#6c757d}.el_pop_data_body{margin-right:20px;max-height:388px;overflow:auto;width:280px}.input-textarea-value{position:relative}.input-textarea-value .icon{background-color:#f2f2f2;border-radius:4px;cursor:pointer;display:inline-block;display:grid;height:26px;place-items:center;position:absolute;left:0;top:-30px;width:26px}.input-textarea-value .icon:hover{background-color:#e0e0e0} .el-dropdown-menu[data-v-7a97a5a6]{z-index:9999!important} assets/css/settings_global_rtl.css000064400000272071147600120010013411 0ustar00@font-face{font-display:block;font-family:fluentform;font-style:normal;font-weight:400;src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd);src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd) format("embedded-opentype"),url(../fonts/fluentform.ttf?5fd4a17c106b6a8cae5c741ddbbe132c) format("truetype"),url(../fonts/fluentform.woff?31c9335ad614611f342d70917260470e) format("woff"),url(../fonts/fluentform.svg?1d0875320e0e3980ae21f2d18c21897a) format("svg")}[class*=" ff-icon-"],[class^=ff-icon-]{speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:fluentform!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.ff-icon-tablet:before{content:"\e96f"}.ff-icon-mobile:before{content:"\e970"}.ff-icon-monitor:before{content:"\e971"}.ff-icon-fullscreen-out:before{content:"\e96b"}.ff-icon-menu:before{content:"\e96a"}.ff-icon-play:before{content:"\e969"}.ff-icon-bug:before{content:"\e925"}.ff-icon-star-line:before{content:"\e94e"}.ff-icon-heart-clock:before{content:"\e966"}.ff-icon-microphone:before{content:"\e967"}.ff-icon-handshake:before{content:"\e968"}.ff-icon-ink-pen:before{content:"\e91e"}.ff-icon-arrow-left:before{content:"\e919"}.ff-icon-user-filled:before{content:"\e902"}.ff-icon-payment:before{content:"\e900"}.ff-icon-play-circle-filled:before{content:"\e901"}.ff-icon-promotion:before{content:"\e903"}.ff-icon-share-filled:before{content:"\e904"}.ff-icon-warning-filled:before{content:"\e905"}.ff-icon-more-vertical:before{content:"\e906"}.ff-icon-gift:before{content:"\e907"}.ff-icon-cursor:before{content:"\e908"}.ff-icon-hash:before{content:"\e909"}.ff-icon-photo:before{content:"\e90a"}.ff-icon-italic-light:before{content:"\e90b"}.ff-icon-keyboard:before{content:"\e90c"}.ff-icon-layers:before{content:"\e90d"}.ff-icon-left-align:before{content:"\e90e"}.ff-icon-light-10:before{content:"\e90f"}.ff-icon-map-pin:before{content:"\e910"}.ff-icon-lock:before{content:"\e911"}.ff-icon-email:before{content:"\e912"}.ff-icon-paragraph:before{content:"\e913"}.ff-icon-user:before{content:"\e914"}.ff-icon-phone-outgoing:before{content:"\e915"}.ff-icon-play-circle:before{content:"\e916"}.ff-icon-puzzle:before{content:"\e917"}.ff-icon-redo:before{content:"\e918"}.ff-icon-repeat:before{content:"\e91a"}.ff-icon-right-align:before{content:"\e91b"}.ff-icon-rocket-filled:before{content:"\e91c"}.ff-icon-setting:before{content:"\e91d"}.ff-icon-light-26:before{content:"\e91f"}.ff-icon-trash:before{content:"\e920"}.ff-icon-underline-alt:before{content:"\e921"}.ff-icon-undo:before{content:"\e922"}.ff-icon-upload-alt:before{content:"\e923"}.ff-icon-web-development:before{content:"\e924"}.ff-icon-underline:before{content:"\e926"}.ff-icon-italic:before{content:"\e927"}.ff-icon-filter-alt:before{content:"\e928"}.ff-icon-files:before{content:"\e929"}.ff-icon-file-add:before{content:"\e92a"}.ff-icon-fullscreen:before{content:"\e92b"}.ff-icon-donut-chart:before{content:"\e92c"}.ff-icon-dollar:before{content:"\e92d"}.ff-icon-document-light:before{content:"\e92e"}.ff-icon-document:before{content:"\e92f"}.ff-icon-document-alt:before{content:"\e930"}.ff-icon-design:before{content:"\e931"}.ff-icon-copy-filled:before{content:"\e932"}.ff-icon-copy:before{content:"\e933"}.ff-icon-code-alt:before{content:"\e934"}.ff-icon-code:before{content:"\e935"}.ff-icon-close-circle-filled:before{content:"\e936"}.ff-icon-chevron-double-left:before{content:"\e937"}.ff-icon-check:before{content:"\e938"}.ff-icon-center-align:before{content:"\e939"}.ff-icon-calendar:before{content:"\e93a"}.ff-icon-bookmark:before{content:"\e93b"}.ff-icon-bold:before{content:"\e93c"}.ff-icon-bold-light:before{content:"\e93d"}.ff-icon-bank:before{content:"\e93e"}.ff-icon-arrow-right:before{content:"\e93f"}.ff-icon-plus-filled:before{content:"\e940"}.ff-icon-plus:before{content:"\e941"}.ff-icon-checkmark-square:before{content:"\e942"}.ff-icon-download:before{content:"\e943"}.ff-icon-sort-circle-down:before{content:"\e944"}.ff-icon-eye-off:before{content:"\e945"}.ff-icon-eye:before{content:"\e946"}.ff-icon-flag:before{content:"\e947"}.ff-icon-link:before{content:"\e948"}.ff-icon-list:before{content:"\e949"}.ff-icon-move:before{content:"\e94a"}.ff-icon-plus-alt:before{content:"\e94b"}.ff-icon-radio-button-on:before{content:"\e94c"}.ff-icon-search:before{content:"\e94d"}.ff-icon-star:before{content:"\e94f"}.ff-icon-sort-down-alt:before{content:"\e950"}.ff-icon-close:before{content:"\e951"}.ff-icon-expand:before{content:"\e952"}.ff-icon-eye-filled:before{content:"\e953"}.ff-icon-info-filled:before{content:"\e954"}.ff-icon-keypad:before{content:"\e955"}.ff-icon-more-horizontal:before{content:"\e956"}.ff-icon-setting-filled:before{content:"\e957"}.ff-icon-strikethrough:before{content:"\e958"}.ff-icon-text:before{content:"\e959"}.ff-icon-decrease-edit:before{content:"\e95a"}.ff-icon-sort-down:before{content:"\e95b"}.ff-icon-increase-edit:before{content:"\e95c"}.ff-icon-list-ordered:before{content:"\e95d"}.ff-icon-quote-left:before{content:"\e95e"}.ff-icon-slider-horizontal:before{content:"\e95f"}.ff-icon-text-alt:before{content:"\e960"}.ff-icon-upload:before{content:"\e961"}.ff-icon-edit:before{content:"\e962"}.ff-icon-filter:before{content:"\e963"}.ff-icon-refresh:before{content:"\e964"}.ff-icon-task:before{content:"\e965"}.ff-icon-sort:before{content:"\e96c"}.ff-icon-captcha:before{content:"\e96d"}.ff-icon-clear:before{content:"\e96e"} .ff_menu{align-items:center;display:none;flex-wrap:wrap;margin-top:22px}.ff_menu_active{display:flex;justify-content:center}.ff_menu_link{background-color:transparent;border-radius:6px;color:#353537;display:inline-block;font-size:15px;font-weight:500;line-height:1.6;overflow:hidden;padding:4px 14px;text-decoration:none;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_menu_link:focus{border:0;box-shadow:none;outline:none}.ff_menu_link:hover{color:#1a7efb}.ff_menu_link_buy{background-color:#1a7efb;color:#fff;margin-right:12px}.ff_menu_link_buy:hover{color:#fff}.ff_menu.conversion_form_editor .ff_menu_link,.ff_menu.partial_entries_form_editor .ff_menu_link{max-width:140px}.ff_menu .active .ff_menu_link{background-color:#e8f2ff;color:#1a7efb}.ff_menu_toggle{cursor:pointer;font-size:26px;margin-right:auto}.ff_menu_toggle:hover{color:#1a7efb}.ff_menu_back .el-icon-arrow-left{font-weight:700;position:relative;transition:all .3s;width:18px}.ff_menu_back .el-icon-arrow-left:after{background-color:#353537;background-color:#1a7efb;content:"";height:1.3px;position:absolute;left:-.6px;top:50%;transform:translateY(-52%);transition:all .3s;width:0}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left{color:#1a7efb;transform:translateX(2.4px)}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left:after{font-weight:700;width:13px}.mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-3{margin-top:16px!important}.mt-4{margin-top:24px!important}.mt-5{margin-top:32px!important}.mt-6{margin-top:40px!important}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.mb-3{margin-bottom:16px!important}.mb-4{margin-bottom:24px!important}.mb-5{margin-bottom:32px!important}.mb-6{margin-bottom:40px!important}.mr-1{margin-left:4px!important}.mr-2{margin-left:8px!important}.mr-3{margin-left:16px!important}.mr-4{margin-left:24px!important}.mr-5{margin-left:32px!important}.mr-6{margin-left:40px!important}.ml-1{margin-right:4px!important}.ml-2{margin-right:8px!important}.ml-3{margin-right:16px!important}.ml-4{margin-right:24px!important}.ml-5{margin-right:32px!important}.ml-6{margin-right:40px!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.mr-0{margin-left:0!important}.ml-0{margin-right:0!important}.ff_list_button_item:not(:last-child){margin-bottom:4px}.ff_list_button_item.active .ff_list_button_link{background-color:#4b4c4d;color:#fff}.ff_list_button_item.has_sub_menu .ff_list_button_link{position:relative}.ff_list_button_item.has_sub_menu .ff_list_button_link:after{content:"\e6df";font-family:element-icons;position:absolute;left:15px;transition:.3s}.ff_list_button_item.has_sub_menu.is-submenu{color:inherit;font-style:inherit;font-weight:inherit;margin-right:0}.ff_list_button_item.has_sub_menu.is-submenu .ff_list_button_link:after{transform:rotate(180deg)}.ff_list_button_link{background-color:transparent;border-radius:5px;color:#1e1f21;display:block;font-size:16px;padding:12px 18px;transition:.2s}.ff_list_button_link:hover{background-color:#f5f5f3;color:#1e1f21}.ff_list_button_small .ff_list_button_link{border-radius:6px;font-size:15px;padding:6px 14px}.ff_list_button_s1 .ff_list_button_item.active .ff_list_button_link{background-color:#f5f5f3;color:#1e1f21;font-weight:600}.ff_list_button_s1 .ff_list_button_link{color:#606266;font-size:15px}.ff_list li:not(:last-child){margin-bottom:12px}.ff_list li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list li a:hover{color:#1a7efb}.ff_list_submenu{background-color:#fff;display:none;margin-right:20px;margin-top:10px;position:relative}.ff_list_submenu:after{background-color:#e4e2df;content:"";height:100%;right:0;position:absolute;top:0;width:2px}.ff_list_submenu li{position:relative}.ff_list_submenu li:after{background-image:url(../images/curve-line.svg?ad01d82f4c085066c0a3accc820c65ac);background-repeat:no-repeat;content:"";height:10px;right:0;position:absolute;top:50%;transform:translateY(-50%);width:12px}.ff_list_submenu li:last-child:before{background-color:#fff;bottom:0;content:"";height:18px;right:0;position:absolute;width:2px;z-index:1}.ff_list_submenu li a{border-radius:6px;color:#606266;display:block;font-size:15px;margin-right:15px;max-width:197px;overflow:hidden;padding:10px;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_list_submenu li a:hover{background-color:#efefef}.ff_list_submenu li.active a{background-color:#efefef;color:#1e1f21}.ff_list_border_bottom>li{font-size:15px;position:relative}.ff_list_border_bottom>li:not(:last-child){border-bottom:1px solid #ececec;margin-bottom:12px;padding-bottom:12px}.ff_list_border_bottom>li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list_border_bottom>li a.lead-text{color:#1a7efb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_list_border_bottom>li a.lead-text.lead-url{white-space:unset;word-break:break-all}.ff_submission_info_list li{display:flex}.ff_submission_info_list .lead-title{flex-shrink:0;width:120px}.ff_submission_info_list .truncate{max-width:228px}.el-button--upload{border-style:dashed;justify-content:center;padding:24px;width:100%}.el-button--upload .el-icon{font-size:22px}.ff_file_upload_result{align-items:center;background-color:#fafafa;border:1px solid #f2f2f2;border-radius:8px;display:flex;overflow:hidden;padding:10px;position:relative}.ff_file_upload_result .el-button{position:absolute;left:10px;top:50%;transform:translateY(-50%)}.ff_file_upload_result+.ff_file_upload_result{margin-top:10px}.ff_file_upload_preview{height:44px;width:44px}.ff_file_upload_preview img{border-radius:4px;height:100%;-o-object-fit:cover;object-fit:cover;width:44px}.ff_file_upload_preview+.ff_file_upload_data{margin-right:15px}.ff_file_upload_description{color:#1e1f21;font-size:14px}.ff_file_upload_size{font-size:12px;margin-top:4px}body{background-color:#f2f2f2;color:#606266}#wpcontent{padding-right:0}#wpbody-content *{box-sizing:border-box}h1,h2,h3,h4,h5,h6{color:#1e1f21;margin:0}ol,ul{list-style:none;margin:0;padding:0}h1{font-size:24px}h2{font-size:23px}h3{font-size:22px;line-height:1.4}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}p{font-size:15px}p:last-child{margin:0}hr{border-bottom-color:#ececec;border-top:0}dd,li{margin-bottom:0}a{color:#1a7efb;font-weight:400;text-decoration:none}a:focus{box-shadow:none;outline:none}a:hover{color:#1a7efb}.notice,div.error,div.updated{margin:8px 24px 2px}.fluentform-admin-notice.notice-error{margin:8px 24px;padding:10px 20px}.fluentform-admin-notice.notice-error h3{font-size:18px;margin:10px 0}.ff_form_wrap_area .fluentform-admin-notice{margin:8px 0}.ff_backdrop{background:rgba(0,0,0,.5);bottom:0;right:0;position:fixed;left:0;top:0;z-index:999999999}.w-100{width:100%!important}.ff-mw-100{max-width:100%!important}.h-100{height:100%!important}.ff_form_wrap{padding:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{-webkit-appearance:none;background-color:#fff;border-color:#dadbdd;border-radius:7px;box-shadow:none;color:#606266;padding:0 15px}input[type=color]:focus,input[type=color]:hover,input[type=date]:focus,input[type=date]:hover,input[type=datetime-local]:focus,input[type=datetime-local]:hover,input[type=datetime]:focus,input[type=datetime]:hover,input[type=email]:focus,input[type=email]:hover,input[type=month]:focus,input[type=month]:hover,input[type=number]:focus,input[type=number]:hover,input[type=password]:focus,input[type=password]:hover,input[type=search]:focus,input[type=search]:hover,input[type=tel]:focus,input[type=tel]:hover,input[type=text]:focus,input[type=text]:hover,input[type=time]:focus,input[type=time]:hover,input[type=url]:focus,input[type=url]:hover,input[type=week]:focus,input[type=week]:hover,textarea:focus,textarea:hover{border-color:#1a7efb!important}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{box-shadow:none}input[type=number]{padding-left:0}input[type=checkbox]:disabled{opacity:0}.ff-select{-webkit-appearance:none!important;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat left 14px top 55%!important;background-blend-mode:hard-light;background-size:16px 16px!important;border:1px solid #dadbdd!important;border-radius:7px!important;box-sizing:border-box!important;color:#606266!important;display:inline-block!important;height:40px!important;line-height:40px!important;max-width:inherit!important;outline:0!important;outline:none!important;padding:0 20px 0 29px!important;text-overflow:ellipsis;transition:border-color .2s cubic-bezier(.645,.045,.355,1)!important}.ff-select:focus{box-shadow:none!important;outline:none!important}.ff-select-block{display:block;width:100%}.ff-select-small{background-position-x:38px!important;border-radius:5px!important;height:32px!important;line-height:32px!important;padding-right:10px!important;padding-left:24px!important}.ff-select-small.condition-field,.ff-select-small.condition-operator,.ff-select-small.condition-value{background-position-x:10%!important}.ff_filter_selected{background-color:#e8f2ff;border-color:#bad8fe;color:#1a7efb}p{margin-bottom:10px;margin-top:0}.icon{display:inline-block;font:normal normal normal 14px/1 ultimateform}.el-input--prefix .el-input__inner{padding-right:38px}.el-input__prefix{right:12px}.ff-icon+span,span+.ff-icon{margin-right:6px}.d-flex{display:flex}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.text-primary{color:#1a7efb!important}.text-secondary{color:#606266!important}.text-danger{color:#ff6154!important}.text-success{color:#00b27f!important}.text-warning{color:#fcbe2d!important}.text-dark{color:#1e1f21!important}.flex-grow-1{flex:1}.text-left{text-align:right}.text-right{text-align:left}.text-center{text-align:center}.el-icon-clickable{cursor:pointer}.fs-17{font-size:17px!important}.fs-15{font-size:15px!important}.fs-14{font-size:14px!important}.fs-13{font-size:13px!important}.text-note{color:#606266;font-size:13px;font-weight:400}.ff-disabled{opacity:.5;pointer-events:none}.mx-auto{margin-right:auto;margin-left:auto}.img-thumb{border:1px solid #ececec;border-radius:8px}.lead-title{color:#1e1f21;display:block;font-size:15px;font-weight:500;transition:.2s}.lead-text{color:#606266;font-size:13px}a.lead-text{color:#1a7efb}.btn{background-image:none;border:1px solid transparent;border-radius:4px;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1.42857143;margin-bottom:0;padding:6px 12px;text-align:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.btn-primary{background-color:#337ab7;border-color:#2e6da4;color:#fff}.btn-primary:hover{background-color:#286090;border-color:#204d74;color:#fff}.btn-block{width:100%}.el-notification__content p{text-align:right}.label-lh-1-5 label{line-height:1.5}.ff_header{background:#fff;border-bottom:1px solid #ececec;display:flex;flex-direction:column;padding:10px 24px}.ff_header_group{align-items:center;display:flex;justify-content:space-between}.ff_header .plugin-name{height:30px}.ff_header .plugin-name img{height:100%}.ff_header .global-search-menu-button{background-color:transparent;border:0;border-radius:6px;color:rgba(60,60,60,.702);cursor:pointer;display:inline-block;font-size:15px;font-weight:400;line-height:1.6;margin:0 auto 0 0;padding:0 5px 0 0;transition:all .3s}.ff_header .global-search-menu-button .el-icon-search{font-size:16px;font-weight:600}.ff_header .global-search-menu-button .shortcut{border-radius:4px;box-shadow:0 2px 3px 0 rgba(32,33,36,.15);font-size:12px;letter-spacing:3px;padding:5px 8px;transition:all .3s}.ff_header .global-search-menu-button:hover{color:#353537}.ff_header .global-search-menu-button:hover .shortcut{border-color:#1a7efb;color:#1a7efb}.ff_header .global-search-menu-button span{margin-right:5px}.ff_row{display:flex;flex-wrap:wrap}.el-dialog{padding:24px 30px}.el-dialog__headerbtn{background-color:#fafafa;border-radius:50%;font-size:1.25rem;height:2rem;left:22px;top:18px;transition:.2s;width:2rem}.el-dialog__headerbtn .el-dialog__close{color:#1e1f21}.el-dialog__headerbtn:hover{background-color:#ececec}.el-dialog__headerbtn:hover .el-dialog__close{color:#1e1f21}.el-dialog__header{border-bottom:1px solid #ececec;padding:0 0 24px}.el-dialog__header h4{font-weight:500}.el-dialog__body,.el-dialog__footer{padding:0}.el-dialog__footer .has-separator{border-top:1px solid #ececec;padding-top:20px}.el-dialog,.el-popover{border-radius:8px}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__header{border:0;padding:0}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__body .el-row{align-content:center;align-items:center;display:flex;justify-content:center}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__headerbtn{z-index:1}.form-editor .disabled-info .el-dialog__wrapper h3{font-size:1.5em}.form-editor .disabled-info .el-dialog__wrapper p{font-size:16px}.form-editor .disabled-info .el-dialog__wrapper img{width:100%}.ff_nav_top{display:block;margin-bottom:15px;overflow:hidden;width:100%}.ff_nav_top .ff_nav_title{float:right;width:50%}.ff_nav_top .ff_nav_title h3{float:right;line-height:28px;margin:0;padding:0}.ff_nav_top .ff_nav_title .ff_nav_sub_actions{display:inline-block;margin-right:20px}.ff_nav_top .ff_nav_action{float:right;text-align:left;width:50%}.ff_nav_top .ff_search_inline{display:inline-block;text-align:left;width:200px}.ff_global_notices{box-sizing:border-box;display:block;margin-top:20px;overflow:hidden;width:100%}.ff_global_notices .ff_global_notice{background:#fff;border:1px solid transparent;border-radius:.25rem;display:block;margin-bottom:1rem;margin-left:20px;padding:.75rem 1.25rem;position:relative}.ff_global_notices .ff_global_notice.ff_notice_error{background-color:#fff3cd;border-color:#ffeeba;color:#856404}.ff_global_notices .ff_global_notice.ff_notice_success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.el-select-dropdown.el-popper{z-index:99999999999!important}ul.ff_entry_list{list-style:disc;margin-right:20px}span.ff_new_badge{background:#ff4747;border-radius:4px;color:#fff;font-size:11px;line-height:100%;margin-right:5px;padding:0 5px 3px;vertical-align:super}label.el-checkbox,label.el-radio{display:inline-block}.el-time-spinner__list .el-time-spinner__item{margin-bottom:0!important}.ff_card_block{background:#f2f2f2;border-radius:8px;padding:20px}.ff_card_block_head{border-bottom:1px solid #e3e3e3;margin-bottom:20px;padding-bottom:15px}.ff_card_block h3{margin:0 0 15px;padding:0}.videoWrapper{height:0;padding-bottom:56.25%;position:relative}.videoWrapper iframe{height:100%;right:0;position:absolute;top:0;width:100%}.ff-left-spaced{margin-right:10px!important}.doc_video_wrapper{background:#fff;margin:0 auto;max-width:800px;padding:20px 0 0;text-align:center}.el-big-items .el-select-dropdown__wrap{max-height:350px}.ff_email_resend_inline{display:inline-block}.el-radio-group-column{display:flex;flex-direction:column}.el-radio-group-column .el-radio{margin-bottom:20px;margin-left:0}.el-checkbox-group-column{display:flex;flex-direction:column}.el-checkbox-group-column .el-checkbox{margin-bottom:14px;margin-left:0}.ff_advanced_filter_wrap{position:relative}.ff_advanced_search{background:#fff;border-radius:8px;box-shadow:0 40px 64px -12px rgba(0,0,0,.08),0 0 14px -4px rgba(0,0,0,.08),0 32px 48px -8px rgba(0,0,0,.1);margin-top:10px;padding:20px;position:absolute;left:0;top:100%;width:350px;z-index:1024}.ff_advanced_search_date_range{background-color:#ececec;border-radius:8px;padding:14px}.ff_advanced_search_date_range p{font-size:14px;font-weight:400}.ff_advanced_search_date_range .el-date-editor--daterange.el-input__inner{width:282px}.el-switch__core:after{box-shadow:0 2px 4px rgba(0,0,0,.2),inset 0 2px 2px #fff,inset 0 -1px 1px rgba(0,0,0,.1)}.row-actions .row-actions-item{display:inline-block;font-size:13px;line-height:1;padding-left:10px;position:relative}.row-actions .row-actions-item:after{background-color:#ddd;content:"";height:10px;position:absolute;left:3px;top:50%;transform:translateY(-50%);width:1px}.row-actions .row-actions-item.trash:after{display:none}.row-actions span.trash a{color:#ff6154}.ff_pagination{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);display:inline-flex;font-weight:500;max-width:100%;padding:12px 20px}.ff_pagination .el-input__inner{background:#f2f2f2;border-color:#f2f2f2;border-radius:4px!important;color:#606266}.ff_pagination .el-input__inner:focus,.ff_pagination .el-input__inner:hover{border-color:#f2f2f2!important}.ff_pagination .el-select .el-input .el-select__caret{color:#606266}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:transparent;border-radius:4px}.ff_shortcode_wrap+.ff_shortcode_wrap{margin-top:.5rem}.ff_shortcode_btn{align-items:center;background-color:#ededed;border:0;border-radius:6px;color:#353537;display:inline-flex;font-size:12px;margin:0;overflow:hidden;padding:4px 10px}.ff_shortcode_btn span{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:200px}.ff_shortcode_btn .el-icon{margin-left:1px}.ff_shortcode_btn_thin{background-color:#f2f2f2}.ff_shortcode_btn_md{font-size:15px;line-height:1.2;padding:10px 14px}.copy_btn{background-color:#e7e6e6;border-radius:4px;cursor:pointer;margin-right:auto;padding:1px 10px;transition:.2s}.copy_btn:hover{background-color:#d8d7d7}.ff_editor_html ul{list-style-type:disc;padding-right:3em}.ff_editor_html ol{list-style-type:decimal;margin-right:3em}.ff_section_block{margin-bottom:64px}.ff_section_block:last-child{margin-bottom:0}.ff_radio_list{display:flex;flex-direction:column}.ff_radio_list_item{margin-bottom:2px;width:100%}.ff_radio_list_item .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:6px!important;box-shadow:none!important;color:#606266;padding:13px 16px;text-align:right;transition:.2s;width:100%}.ff_radio_list_item .el-radio-button__inner:hover,.ff_radio_list_item.is-active .el-radio-button__inner{background-color:rgba(96,98,102,.1);color:#1e1f21}.is-sticky{position:fixed;top:40px;z-index:1020}.ff_section_desc{font-size:16px}.ff_section_head{margin-bottom:40px}.ff_section_head_between{display:flex;flex-wrap:wrap;justify-content:space-between}.ff_section_head.sm{margin-bottom:24px}.ff_section_head_content_group{align-items:center;display:flex}.ff_section_head .text{font-size:15px}.el-row{display:flex;flex-wrap:wrap}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.items_end{align-items:flex-end!important}.el-radio-button__inner{font-weight:400}.el-select-dropdown__item.selected{font-weight:500}.ff_layout_section{display:flex;min-height:550px;position:relative;width:100%}.ff_layout_section_sidebar{background-color:#fff;box-shadow:0 1px 3px rgba(30,31,33,.05);flex-shrink:0;padding:16px;vertical-align:top;width:230px}.ff_layout_section_container{flex:1;overflow-y:scroll;padding:16px}.ff_global_setting_wrap .ff_layout_section_sidebar,.ff_tools_wrap .ff_layout_section_sidebar{height:100%}.ff_global_settings_option{height:110vh;overflow-y:scroll}.ff_global_settings_option::-webkit-scrollbar{display:none}.ff_global_settings_option .el-form-item,.ff_global_settings_option .el-form-item-wrap{margin-bottom:24px}.ff_global_settings_option .el-form-item-wrap:last-child,.ff_global_settings_option .el-form-item:last-child{margin-bottom:0}.ff_global_settings_option .ff_card:not(:last-child){margin-bottom:32px}.ff_input_width{width:438px}.ff_input_full_width{width:100%}.ff_tooltip_wrap{font-size:14px;line-height:1.6;max-width:320px}.ff_tooltip_wrap h6{color:#fff}.ff-icon-gray{color:#757d8a}.el-form--label-top .el-form-item__label{line-height:1;padding-bottom:16px}.ff-form-item .el-form-item__label{align-items:center;color:#1e1f21;display:flex;font-size:15px;font-weight:500}.ff-form-item .el-form-item__label .ff-icon{margin-right:4px}.ff-form-item .el-form-item__content{line-height:1}.ff-form-item .el-icon-info,.ff-form-item .ff-icon-info-filled{font-size:13px}.ff-form-item .el-icon-info{color:#1a7efb;transform:rotate(14deg)}.el-select__tags input{background-color:transparent;border:none;line-height:2;margin-right:0;min-height:30px;padding:0 8px}.ff_alert{background-color:#e8f2ff;border-right:3px solid #1a7efb;border-radius:4px;padding:17px}.ff_alert_icon{display:inline-block;font-size:16px;margin-top:3px}.ff_alert_icon+.ff_alert_content{padding-right:10px}.ff_alert_group{display:flex}.ff_alert_sm{padding:10px}.ff_alert.success{background-color:#00b27f;border-right-color:#00b27f;color:#fff}.ff_alert.success-soft{background-color:#e6ffeb;border-right-color:#00b27f}.ff_alert.danger{background-color:#ff6154;border-right-color:#ff6154;color:#fff}.ff_alert.danger-soft{background-color:#ffefee;border-right-color:#ff6154}.ff_alert .text{font-size:14px;margin-bottom:12px;margin-top:6px}.ff_alert_between{align-items:center;display:flex;justify-content:space-between}.ff_alert_between .text{margin-bottom:0}.ff_alert_s2{border-right:0;border-radius:8px;padding:40px;text-align:center}.ff-form-item-flex{align-items:center;display:flex}.ff-form-item-flex .el-form-item__label{padding-bottom:0}.ff-form-item-flex.reverse{flex-direction:row-reverse;justify-content:flex-end}.ff-form-setting-label-width .el-form-item__label{width:390px}.el-switch input{border:0}.el-switch-lg .el-switch__core{border-radius:30px;height:24px;width:48px!important}.el-switch-lg .el-switch__core:after{height:20px;width:20px}.el-switch-lg.is-checked .el-switch__core:after{margin-right:-21px}.ff_block_title{font-weight:500}.el-form-item__label h6{font-size:15px;font-weight:500}.ff_checkbox_group_col_2{display:flex;flex-wrap:wrap}.ff_checkbox_group_col_2 .el-checkbox{line-height:1;margin-bottom:.75rem;margin-left:0;width:50%}.wp_vue_editor_wrapper{background-color:#fff;border:1px solid #dadbdd;border-radius:8px;overflow:hidden;position:relative}.wp_vue_editor_wrapper .wp-media-buttons{float:none;position:absolute;left:160px;top:10px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media{background-color:#e8f2ff;border-color:#e8f2ff;border-radius:6px;color:#1a7efb;font-weight:500;line-height:1;margin:0;min-height:30px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.wp_vue_editor_wrapper .popover-wrapper{padding:10px;position:absolute;left:0;top:0;z-index:2}.wp_vue_editor_wrapper .wp-editor-container{border:0}.wp_vue_editor_wrapper .wp-editor-tabs{float:none;padding:8px}.wp_vue_editor_wrapper .wp-switch-editor{background-color:transparent;border-color:transparent;border-radius:5px;float:none;font-size:14px;font-weight:500;height:auto;line-height:inherit;margin:0 4px 0 0;padding:7px 14px}.wp_vue_editor_wrapper .html-active .switch-html,.wp_vue_editor_wrapper .tmce-active .switch-tmce{background-color:#ededed;border-color:#dadbdd;color:#1e1f21}.wp_vue_editor_wrapper .switch-html{margin-right:0}.wp_vue_editor_wrapper .mce-top-part:before{box-shadow:none}.wp_vue_editor_wrapper .quicktags-toolbar,.wp_vue_editor_wrapper div.mce-toolbar-grp{background:#f1f1f0;border-bottom:0}.wp_vue_editor_wrapper .mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border:0;border-radius:4px;box-shadow:none}.wp_vue_editor_wrapper textarea{border:0;padding-top:15px}.wp-media-buttons .insert-media{padding-right:8px;padding-left:10px}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#1a7efb}.mce-panel.mce-menu{border-radius:8px}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:10px!important}.el-input-number__decrease{right:2px}.ff_state_box{border-radius:8px;display:block;padding:32px;text-align:center}.ff_icon_btn{align-items:center;background-color:#1a7efb;border-radius:50%;color:#fff;display:flex;font-size:28px;height:58px;justify-content:center;text-align:center;width:58px}.ff_icon_btn:focus,.ff_icon_btn:hover{color:#fff}.ff_icon_btn img{height:36px;-o-object-fit:contain;object-fit:contain}.ff_icon_btn.square{border-radius:12px}.ff_icon_btn.blue{background-color:#3b5998;color:#fff}.ff_icon_btn.blue-soft{background-color:#ebeef5;color:#3b5998}.ff_icon_btn.dark{background-color:#1e1f21;color:#fff}.ff_icon_btn.dark-soft{background-color:#e9e9e9;color:#1e1f21}.ff_icon_btn.primary-soft{background-color:#e8f2ff;color:#1a7efb}.ff_icon_btn.danger{background-color:#ff6154;color:#fff}.ff_icon_btn.danger-soft{background-color:#ffefee;color:#ff6154}.ff_icon_btn.success{background-color:#00b27f;color:#fff}.ff_icon_btn.success-soft{background-color:#e6ffeb;color:#00b27f}.ff_icon_btn.warning{background-color:#fcbe2d;color:#fff}.ff_icon_btn.warning-soft{background-color:#fff9ea;color:#fcbe2d}.ff_icon_btn.info{background-color:#4b4c4d;color:#fff}.ff_icon_btn.info-soft{background-color:#ededed;color:#4b4c4d}.ff_icon_btn.cyan{background-color:#0dcaf0;color:#fff}.ff_icon_btn.cyan-soft{background-color:#e7fafe;color:#0dcaf0}.ff_icon_btn.mini{font-size:12px;height:18px;width:18px}.ff_icon_btn.small{font-size:16px;height:27px;width:27px}.ff_icon_btn.md{font-size:26px;height:48px;width:48px}.ff_icon_btn.md img{height:28px;-o-object-fit:cover;object-fit:cover;-o-object-position:right;object-position:right;width:28px}.ff_icon_btn.lg{font-size:36px;height:72px;width:72px}.ff_btn_group{align-items:center;display:inline-flex;flex-wrap:wrap;margin:-6px}.ff_btn_group>*{margin-bottom:0;padding:6px}.ff_btn_group.sm{margin:-3px}.ff_btn_group.sm>*{padding:3px}.ff_btn_group_half{display:flex}.ff_btn_group_half>*{flex:1}.ff_btn_group_half .el-button{justify-content:center;width:100%}.file-input{background:#fff;border:1px solid #ececec;border-radius:8px;color:#606266;max-width:100%;padding:5px!important}.file-input::file-selector-button{background:#f2f2f2;border:none;border-radius:6px;color:#1e1f21;cursor:pointer;margin-left:6px;padding:6px 16px;transition:background .2s ease-in-out}.file-input::file-selector-button:hover{background:#ced0d4}.el-tag--pill{border-radius:50rem}.ff_radio_group{background-color:#f5f5f3;border-radius:8px;overflow:hidden}.ff_radio_group .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:0!important}.ff_radio_group .el-radio-button__inner:hover{color:#1e1f21}.ff_radio_group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;box-shadow:none;color:#fff}.ff_radio_group_s2{background:#fff;border:1px solid #edeae9;border-radius:8px;display:inline-flex;overflow:hidden}.ff_radio_group_s2 .el-radio-button:first-child .el-radio-button__inner{border-right:0}.ff_radio_group_s2 .el-radio-button:last-child .el-radio-button__inner{border-left:0}.ff_radio_group_s2 .el-radio-button__inner{border-color:transparent transparent transparent #edeae9}.el-input-gray .el-input__inner{background-color:#e7e6e6;border-color:#e7e6e6}.el-input-gray .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray .el-input__prefix{color:#606266}.el-input-gray-light .el-input__inner{background-color:#f5f5f3;border-color:#f5f5f3}.el-input-gray-light .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__prefix{color:#606266}.el-radio.is-bordered{margin-left:6px}.ff_media_group{align-items:center;display:flex}.ff_media_head+.ff_media_body{margin-right:16px}.ff_video_wrap{position:relative}.ff_video_wrap:after{background-color:#1e1f21;border-radius:8px;content:"";height:100%;right:0;opacity:.3;position:absolute;top:0;width:100%}.ff_video_img{border-radius:8px;display:block;width:100%}.ff_video_icon{right:50%;position:absolute;top:50%;transform:translate(50%,-50%);z-index:1}.ff-input-wrap{position:relative}.ff-input-wrap .el-icon{align-items:center;display:inline-flex;height:100%;right:0;padding-right:14px;position:absolute;top:0;z-index:2}.ff-input-wrap .el-icon+.el-input .el-input__inner,.ff-input-wrap .el-icon+input{padding-right:32px}.el-dialog-no-header .el-dialog__header{display:none}.el-radio-button-group{background-color:#fff;border:1px solid #ececec;border-radius:4px}.el-radio-button-group .el-radio-button__inner{background:transparent;border:0;padding:6px 9px}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner{border-right:0;border-radius:0 4px 4px 0}.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-radio-button-group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1a7efb;box-shadow:none}.el-color-picker__color{border-color:#d4edda;border-radius:3px}.ff_socials li{display:inline-block;margin-left:2px}.ff_socials li:last-child{margin-left:0}.ff_socials li a{background-color:#ededed;border-radius:50%;color:#606266;display:grid;height:32px;place-items:center;transition:.2s;width:32px}.ff_socials li a span{font-size:16px;height:auto;transition:0s;width:auto}.ff_socials li a:hover{background-color:#1a7efb;color:#fff}.ff-dropdown-menu .el-dropdown-menu__item{line-height:1.5;padding:6px 20px}.ff-dropdown-menu .el-dropdown-menu__item:hover{background-color:transparent}.truncate{display:block;max-width:188px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;max-width:inherit;white-space:inherit}.hover-y{transition:.3s}.hover-y:hover{transform:translateY(-2px)}.hover-zoom{transition:.3s}.hover-zoom:hover{transform:scale(1.03)}.ff_badge{align-items:center;background-color:#ededed;border:1px solid #dbdbdb;border-radius:30px;color:#4b4c4d;display:inline-flex;line-height:1.2;padding:2px 7px;text-transform:capitalize}.ff_badge.small{font-size:13px}.ff_badge_wrap{align-items:center;display:inline-flex}.ff_badge img{flex-shrink:0;height:14px;margin-left:4px}.ff_badge_active,.ff_badge_primary{background-color:#e8f2ff;border-color:#d1e5fe;color:#1a7efb}.ff_badge_paid{background-color:#e6f7f2;border-color:#ccf0e5;color:#00b27f}.ff_badge_processing{background-color:#e7fafe;border-color:#cff4fc;color:#0dcaf0}.ff_badge_pending{background-color:#fff9ea;border-color:#fef2d5;color:#fcbe2d}.ff_badge_failed{background-color:#ffefee;border-color:#ffdfdd;color:#ff6154}.ff_badge_visa{background-color:#e8e9ef;border-color:#dddee7;color:#192061}.ff_badge_mastercard{background-color:#ffefe6;border-color:#ffe7d9;color:#ff5f00}.ff_badge_amex{background-color:#f0f9fd;border-color:#e9f6fc;color:#6cc4ee}.ff_badge_paypal{background-color:#e6f5fc;border-color:#d9f0fa;color:#019ddd}.ff_badge_stripe{background-color:#eef0fb;border-color:#e5e9f9;color:#5469d4}.ff_badge.is-solid.ff_badge_active{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.ff_badge.is-solid.ff_badge_processing{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.ff_badge.is-solid.ff_badge_paid{background-color:#00b27f;border-color:#00b27f;color:#fff}.ff_badge.is-solid.ff_badge_pending{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.ff_badge.is-solid.ff_badge_cancelled,.ff_badge.is-solid.ff_badge_failed{background-color:#ff6154;border-color:#ff6154;color:#fff}.separator{background-color:rgba(96,98,102,.1);height:1px}.ff_choose_template_wrap .el-dialog{max-width:1280px}.ff_settings_container .notice{margin:0 0 20px}.global-search-wrapper{align-items:center;background:rgba(0,0,0,.7);display:flex;height:auto;inset:0;justify-content:center;min-height:100vh;padding:20px;position:fixed;z-index:999999999}.global-search-wrapper .global-search-container{background:#f6f6f7;border-radius:5px;overflow:auto;position:relative;width:700px}.global-search-wrapper .global-search-container input{font-size:17px;padding:3px 35px;width:100%}.global-search-wrapper .global-search-container ul.search-result li{background:#fff;border-radius:6px;box-shadow:0 1px 3px 0 #d4d9e1;color:#606266;cursor:pointer;display:block;font-size:15px;margin-right:0;margin-top:7px;padding:10px;transition:.2s}.global-search-wrapper .global-search-container ul.search-result li.active-search-link{background-color:#197efb;color:#fff;outline:0}.global-search-wrapper .global-search-container ul.search-result li:focus,.global-search-wrapper .global-search-container ul.search-result li:focus-visible{border:0;box-shadow:none;outline:0}.global-search-wrapper .global-search-container span.global-search-not-match{display:inline-block;font-size:16px;margin-top:6px}.global-search-wrapper .global-search-body{max-height:400px;min-height:200px;overflow-y:auto;padding:20px}.global-search-wrapper .search-commands{background:#fff;box-shadow:0 -1px 0 0 #efefef,0 -2px 6px 0 rgba(70,90,150,.1);color:#606266;display:flex;font-size:14px;justify-content:space-around;padding:12px}.global-search-wrapper .search-commands ul li{font-size:12px;margin-top:7px;padding:10px}.scroll{animation:down 2s ease-in-out infinite;-webkit-animation:down 2s ease-in-out infinite;cursor:pointer;height:26px;margin:0 auto;position:relative;width:60px}.scroll:before{border-bottom:2px solid #777;border-right:2px solid #777;content:"";height:16px;right:18px;position:absolute;top:24px;transform:rotate(45deg);width:16px}.ff_chained_ajax_field{display:flex;flex:auto;gap:10px}.ff_chained_ajax_field .el-select{flex-basis:100%}@keyframes down{0%{opacity:0;-webkit-transform:translateY(-14px)}50%{opacity:1}to{opacity:0;-webkit-transform:translateY(14px)}}.ff_sidebar_toggle{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 1px 10px rgba(0,0,0,.1);color:#000;cursor:pointer;display:none;font-size:18px;height:30px;justify-content:center;position:absolute;left:-21px;top:15px;width:30px}.text-capitalize{text-transform:capitalize}.ff_card{background-color:#fff;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 3px 0 hsla(0,0%,51%,.1);padding:24px}.ff_card.primary{background-color:#1a7efb}.ff_card_pro{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;padding-right:54px;padding-left:40px}.ff_card_pro h3{color:#fff;font-size:28px;line-height:1.3;max-width:400px}.ff_card.highlight-border{border-color:#1a7efb}.ff_card .ff_pagination{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_shadow_lg{box-shadow:0 14px 16px -2px hsla(0,0%,51%,.1)}.ff_card .text{font-size:15px;line-height:1.6}.ff_card_alert{border-right:3px solid #ff6154;border-radius:4px}.ff_card_head{border-bottom:1px solid #ececec;margin-bottom:26px;padding-bottom:16px}.ff_card_head .text{margin-top:10px}.ff_card_head_group{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.ff_card_head_group .el-tooltip{font-size:15px}.ff_card_form_action{border-color:#ececec;cursor:pointer;height:100%}.ff_card_form_action .ff_card_text{word-break:break-word}.ff_card_img img{width:100%}.ff_card_s2{border:1px solid #e4e4e4;box-shadow:none;display:flex;flex-direction:column;padding:0;transition:.3s}.ff_card_s2 .ff_card_body{padding:20px}.ff_card_s2 .ff_card_footer{border-top:1px solid #e4e4e4;margin-top:auto;padding:14px 20px}.ff_card_s2:hover{box-shadow:0 22px 16px hsla(0,0%,51%,.12)}.ff_card_footer_group{align-items:center;display:flex;justify-content:space-between}.ff_card .ff-table-container{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_border{border:1px solid #ececec;box-shadow:none}.ff_table{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);padding:10px 24px}.ff_table .el-table__row td:first-child{vertical-align:top}.ff_table .el-table__empty-block,.ff_table table{width:100%!important}.ff_table .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell,.ff_table .el-table__body tr.el-table__row--striped td.el-table__cell,.ff_table .el-table__body tr.hover-row>td.el-table__cell,.ff_table th.el-table__cell,.ff_table tr{background-color:transparent!important}.ff_table .el-table--border:after,.ff_table .el-table--group:after,.ff_table .el-table:before{display:none}.ff_table thead{color:#1e1f21}.ff_table thead .el-table__cell,.ff_table thead th{padding-bottom:8px;padding-top:0}.ff_table .cell,.ff_table th.el-table__cell>.cell{font-weight:600;padding-right:0;padding-left:0}.ff_table .sort-caret{border-width:4px}.ff_table .sort-caret.ascending{top:7px}.ff_table .sort-caret.descending{bottom:8px}.ff_table .cell strong{color:#1e1f21;font-weight:500}.ff_table td.el-table__cell,.ff_table th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff_table tbody tr:last-child td.el-table__cell,.ff_table tbody tr:last-child th.el-table__cell.is-leaf{border-bottom-width:0}.ff_table tbody .cell{font-weight:400}.ff_table_s2 .el-table__body tr.el-table__row--striped td.el-table__cell,.ff_table_s2 th.el-table__cell,.ff_table_s2 tr,.ff_table_s2.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:transparent}.ff_table_s2 .el-table__empty-block,.ff_table_s2 table{width:100%!important}.ff_table_s2 thead{color:#1e1f21}.ff_table_s2 thead th.el-table__cell{background-color:#f8f8f8;border-bottom:0!important}.ff_table_s2 thead th.el-table__cell .cell{font-weight:500}.ff_table_s2 thead tr th:first-child{border-bottom-right-radius:8px;border-top-right-radius:8px}.ff_table_s2 thead tr th:first-child .cell{padding-right:20px}.ff_table_s2 thead tr th:last-child{border-bottom-left-radius:8px;border-top-left-radius:8px}.ff_table_s2 tbody tr td:first-child .cell{padding-right:20px}.ff_table_s2 td.el-table__cell,.ff_table_s2 th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff-table-container{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);padding:10px 24px}.ff-table-container .el-table__row td:first-child{vertical-align:top}.ff-table-container .el-table{background-color:transparent}.ff-table-container .el-table__empty-block,.ff-table-container table{width:100%!important}.ff-table-container .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell,.ff-table-container .el-table__body tr.el-table__row--striped td.el-table__cell,.ff-table-container .el-table__body tr.hover-row>td.el-table__cell,.ff-table-container .el-table__body tr:hover td.el-table__cell,.ff-table-container th.el-table__cell,.ff-table-container tr{background-color:transparent}.ff-table-container .el-table--border:after,.ff-table-container .el-table--group:after,.ff-table-container .el-table:before{display:none}.ff-table-container thead{color:#1e1f21}.ff-table-container thead .el-table__cell,.ff-table-container thead th{padding-bottom:8px;padding-top:0}.ff-table-container .cell,.ff-table-container th.el-table__cell>.cell{font-weight:600;padding-right:0;padding-left:1px}.ff-table-container .sort-caret{border-width:3px}.ff-table-container .sort-caret.ascending{top:9px}.ff-table-container .sort-caret.descending{bottom:11px}.ff-table-container .cell strong{color:#1e1f21;font-weight:500}.ff-table-container td.el-table__cell,.ff-table-container th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff-table-container tbody tr:last-child td.el-table__cell,.ff-table-container tbody tr:last-child th.el-table__cell.is-leaf{border-bottom-width:0}.ff-table-container tbody .cell{font-weight:400}.ff-table-container_s2 .el-table__body tr.el-table__row--striped td.el-table__cell,.ff-table-container_s2 th.el-table__cell,.ff-table-container_s2 tr,.ff-table-container_s2.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:transparent}.ff-table-container_s2 thead{color:#1e1f21}.ff-table-container_s2 thead th.el-table__cell{background-color:#f8f8f8;border-bottom:0!important}.ff-table-container_s2 thead th.el-table__cell .cell{font-weight:500}.ff-table-container_s2 thead tr th:first-child{border-bottom-right-radius:8px;border-top-right-radius:8px}.ff-table-container_s2 thead tr th:first-child .cell{padding-right:20px}.ff-table-container_s2 thead tr th:last-child{border-bottom-left-radius:8px;border-top-left-radius:8px}.ff-table-container_s2 tbody tr td:first-child .cell{padding-right:20px}.ff-table-container_s2 td.el-table__cell,.ff-table-container_s2 th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff_tab{border-bottom:1px solid #ececec;display:flex}.ff_tab_item:not(:last-child){margin-left:30px}.ff_tab_item.active .ff_tab_link{color:#1a7efb}.ff_tab_item.active .ff_tab_link:after{width:100%}.ff_tab_link{color:#1e1f21;display:block;font-size:16px;font-weight:500;padding-bottom:16px;position:relative}.ff_tab_link:after{background-color:#1a7efb;bottom:-1px;content:"";height:2px;right:0;position:absolute;transition:.2s;width:0}.ff_tab_center .ff_tab_item{flex:1;text-align:center}.el-notification__content{text-align:right}.action-buttons .el-button+.el-button{margin-right:0}.el-box-card{box-shadow:none}.el-box-footer,.el-box-header{background-color:#edf1f6;padding:15px}.el-box-body{padding:15px}.el-form-item__force-inline.el-form-item__label{float:right;padding:11px 0 11px 12px}.el-form-item .el-form-item{margin-bottom:10px}.el-form-item__content .line{text-align:center}.el-basic-collapse{border:0;margin-bottom:15px}.el-basic-collapse .el-collapse-item__header{border:0;display:inline-block;padding-right:0}.el-basic-collapse .el-collapse-item__wrap{border:0}.el-basic-collapse .el-collapse-item__content{background-color:#fff;padding:0}.el-collapse-settings{border:0}.el-collapse-settings .el-collapse-item__header{background:#f5f5f3;border:0;border-radius:8px;font-size:16px;padding-right:20px;padding-left:10px}.el-collapse-settings .el-collapse-item__header .el-collapse-item__arrow{font-size:16px;font-weight:500}.el-collapse-settings .el-collapse-item__content{margin-top:15px;padding-bottom:0}.el-collapse-settings .el-collapse-item__arrow{line-height:48px}.el-collapse-settings .el-collapse-item__wrap{background-color:transparent;border-bottom:0;overflow:inherit}.el-popover{text-align:right}.option-fields-section--content .el-form-item__label{color:#1e1f21;font-weight:500;line-height:1;padding-bottom:10px}.option-fields-section--content .el-form-item__content{line-height:1.5;margin-bottom:5px}.option-fields-section--content .el-input-number--mini{line-height:28px}.option-fields-section--content strong{color:#1e1f21;font-weight:600}.el-dropdown-list{border:0;box-shadow:none;margin:0;max-height:280px;min-width:auto;overflow-y:scroll;padding:0;position:static;z-index:10}.el-dropdown-list .el-dropdown-menu__item{border-bottom:1px solid #f1f1f1;font-size:13px;line-height:18px;padding:4px 10px}.el-dropdown-list .el-dropdown-menu__item:last-of-type{border-bottom:0}.el-popper[x-placement^=bottom] .popper__arrow{top:-7px}.el-form-nested.el-form--label-left .el-form-item__label{float:right;padding:10px 0 10px 5px}.el-message{top:40px}.el-tabs--border-card{border-color:#ececec;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.05)}.el-tabs--border-card .el-tabs__header{background-color:transparent;border-top-right-radius:6px;border-top-left-radius:6px;padding:10px 14px}.el-tabs--border-card .el-tabs__header .el-tabs__item{border:0;border-radius:6px;font-size:13px;height:34px;line-height:34px;margin-top:0;padding-right:16px;padding-left:16px}.el-tabs--border-card .el-tabs__header .el-tabs__item:first-child{margin-right:0}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active{background-color:#d1e5fe;color:#1a7efb}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active:hover{color:#1a7efb}.el-button{align-items:center;display:inline-flex;transition:.3s}.el-button .el-loading-mask{border-radius:7px}.el-button .el-loading-mask .el-loading-spinner{margin-top:-12px}.el-button .el-loading-mask .el-loading-spinner .circular{height:24px;width:24px}.el-button span{align-items:center;display:inline-flex}.el-button-group .el-button span{display:inline-block}.el-button--block{justify-content:center;width:100%}.el-button--small .ff-icon{font-size:14px}.el-button--large{font-size:16px;padding:15px 20px}.el-button--soft.el-button--blue{background-color:#ebeef5;border-color:#ebeef5;color:#3b5998}.el-button--soft.el-button--blue:hover{background-color:#3b5998;border-color:#3b5998;color:#fff}.el-button--soft.el-button--primary{background-color:#e8f2ff;border-color:#e8f2ff;color:#1a7efb}.el-button--soft.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--soft.el-button--danger{background-color:#ffefee;border-color:#ffefee;color:#ff6154}.el-button--soft.el-button--danger:hover{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-button--soft.el-button--success{background-color:#e6ffeb;border-color:#e6ffeb;color:#00b27f}.el-button--soft.el-button--success:hover{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-button--soft.el-button--warning{background-color:#fff9ea;border-color:#fff9ea;color:#fcbe2d}.el-button--soft.el-button--warning:hover{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--soft.el-button--info{background-color:#ededed;border-color:#ededed;color:#4b4c4d}.el-button--soft.el-button--info:hover{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--soft.el-button--cyan{background-color:#e7fafe;border-color:#e7fafe;color:#0dcaf0}.el-button--soft.el-button--cyan:hover{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.el-button--soft.el-button--dark{background-color:#e9e9e9;border-color:#e9e9e9;color:#1e1f21}.el-button--soft.el-button--dark:hover{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--soft-2.el-button--primary{background-color:#d1e5fe;border-color:#d1e5fe;color:#1a7efb}.el-button--soft-2.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--icon.el-button--mini{border-radius:4px;padding:7px}.el-button--icon.el-button--small{border-radius:5px;font-size:14px;padding:8px}.el-button--icon.el-button--medium{border-radius:6px;padding:10px}.el-button--text-light{color:#606266}.el-button--info.is-plain{border-color:#ededed}.el-button--dark{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--dark:focus,.el-button--dark:hover{background-color:#3a3a40;border-color:#3a3a40;color:#fff}.el-button--primary:hover{background-color:#1565c9;border-color:#1565c9}.el-pager li{font-weight:600}.form-editor-elements:not(.el-form--label-left):not(.el-form--label-right) .el-form-item__label{line-height:1}.folded .el-dialog__wrapper{right:36px}.el-dialog__wrapper .data-lost-msg{margin-top:10px}.ff-el-banner{border:1px solid #dce0e5;display:inline-block;float:right;height:250px;padding:5px;transition:border .3s;width:200px}.ff-el-banner,.ff-el-banner-group{overflow:hidden}.ff-el-banner-group .ff-el-banner{margin-bottom:30px;margin-left:10px}.ff-el-banner+.ff-el-banner{margin-left:10px}.ff-el-banner img{display:block;height:auto;width:100%}.ff-el-banner-header{background:#909399;color:#fff;font-size:13px;font-weight:400;margin:0;padding:3px 6px;text-align:center}.ff-el-banner-inner-item{height:inherit;overflow:hidden;position:relative}.ff-el-banner:hover .ff-el-banner-text-inside{opacity:1!important;visibility:visible!important}.ff-el-banner-text-inside{display:flex;flex-direction:column;justify-content:center}.ff-el-banner-text-inside-hoverable{bottom:0;color:#fff;right:0;padding:10px;position:absolute;left:0;top:0;transition:all .3s}.ff-el-banner-text-inside .form-title{color:#fff;margin:0 0 10px}.compact td>.cell,.compact th>.cell{white-space:nowrap}.el-tooltip__popper p{margin-bottom:0}.el-dropdown-menu{right:unset;max-width:270px}.el-dropdown-link{cursor:pointer}.el-dropdown-link-lg{color:#1e1f21;font-size:24px;font-weight:600}.el-dropdown-link-lg .el-icon{font-size:20px}.el-switch--small .el-switch__core{height:16px;width:28px!important}.el-switch--small .el-switch__core:after{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core:after{margin-right:-13px}.el-switch--small .el-switch__label *{font-size:13px;font-weight:500}.el-message-box__title{color:#1e1f21;font-weight:500}.el-input-group--append{position:relative}.el-input-group--append .el-input__inner{border-bottom-left-radius:8px;border-top-left-radius:8px}.el-input-group__append,.el-input-group__prepend{background-color:#f2f2f2;border:0;border-radius:5px;display:grid;height:30px;padding:0;position:absolute;text-align:center;top:5px;width:30px}.el-input-group__append:hover,.el-input-group__prepend:hover{background-color:#e0e0e0}.el-input-group__append .el-icon-more,.el-input-group__prepend .el-icon-more{transform:rotate(-90deg)}.el-input-group__append .el-button,.el-input-group__prepend .el-button{margin:0;padding:0}.el-input-group__append{left:4px}.el-input-group__prepend{right:4px}.el-table__fixed,.el-table__fixed-right{background-color:#fff}.el-table__fixed-right:before,.el-table__fixed:before{display:none}.el-radio-button__orig-radio:checked+.el-radio-button__inner{box-shadow:none}.input-with-select{align-items:center;display:flex}.input-with-select.el-input-group--append .el-input__inner{border-bottom-left-radius:0;border-top-left-radius:0}.input-with-select .el-select{background-color:#fff;border:1px solid #dadbdd;height:40px;margin:0}.input-with-select .el-select .el-input__inner{border:0}.input-with-select .el-input-group__append,.input-with-select .el-input-group__prepend{border-radius:0;flex:1;height:auto;right:0;position:inherit;top:0;width:auto}.input-with-select .el-input-group__append:hover,.input-with-select .el-input-group__prepend:hover{background-color:transparent}.input-with-select .el-input-group__prepend .el-select{border-bottom-right-radius:8px;border-left:0;border-top-right-radius:8px}.input-with-select .el-input-group__append .el-select{border-bottom-left-radius:8px;border-right:0;border-top-left-radius:8px}.chain-select-upload-button .el-input-group__append,.chain-select-upload-button .el-input-group__prepend{width:70px}.el-radio-group-dark .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1e1f21;border-color:#1e1f21}.el-radio-group-info .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;border-color:#4b4c4d}.el-table thead .cell{color:#1e1f21;font-weight:500}.el-table--border{border-radius:6px}.ff-input-s1 .el-input .el-select__caret{color:#1e1f21}.ff-input-s1 .el-input .el-icon-arrow-up:before{font-weight:600}.el-radio-button--small:first-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button--small:last-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-input--mini .el-input__inner{border-radius:4px}.el-input--large .el-input__inner{font-size:16px;height:48px;padding-right:20px;padding-left:20px}.el-input-number--mini{line-height:28px}.el-input-number--mini .el-input-number__decrease{border-radius:0 4px 4px 0;right:1px}.el-input-number--mini .el-input-number__increase{border-radius:4px 0 0 4px}.el-input-number__decrease,.el-input-number__increase{background-color:#f2f2f2}.el-dialog__header .title+.text{margin-top:6px}.el-dialog__header .text{margin-bottom:0}.el-dialog__header_group{align-items:center;display:flex}.el-checkbox-horizontal .el-checkbox{display:flex}.el-checkbox-horizontal .el-checkbox__input{align-self:flex-start;padding-top:3px}.el-skeleton__item{border-radius:4px}.ff_subscription_data{display:flex;justify-content:space-between}.ff_subscription_data_item_title{color:#1e1f21;font-size:16px;font-weight:500;margin-bottom:6px}.ff_subscription_data_item .ff_sub_id,.ff_subscription_data_item_name{font-size:13px}.ff_subscription_data_item_payment{align-items:center;display:flex;font-size:15px;margin-bottom:20px}.ff_subscription_data_item_payment .ff_badge{margin-right:5px}.ff_subscription_data_item_payment .ff_badge i{margin-left:2px}.ff_subscription_data_item_total{color:#1e1f21;font-weight:500;margin-bottom:4px}.ff_payment_detail_data .wpf_entry_transaction:not(:first-child){margin-top:20px}.ff_payment_detail_data_payment{align-items:center;display:flex;font-size:15px;margin-bottom:10px}.ff_payment_detail_data_payment .ff_badge{margin-right:5px}.ff_payment_detail_data_payment .ff_badge i{margin-left:2px}.entry_navs a{padding:2px 5px;text-decoration:none}.entry_navs a.active{background:#20a0ff;color:#fff}.entry-multi-texts{display:flex;flex-wrap:wrap;margin-right:-7px;margin-left:-7px}.entry-multi-texts .mult-text-each{padding-right:7px;padding-left:7px;width:32%}.ff_entry_user_change{position:absolute;left:0;top:-5px}.addresss_editor{background:#eaeaea;display:flex;flex-wrap:wrap;padding:20px 20px 10px}.addresss_editor .each_address_field{line-height:1;margin-bottom:20px;padding-right:7px;padding-left:7px;width:47%}.addresss_editor .each_address_field label{color:#1e1f21;display:block;font-weight:500;margin-bottom:10px}.repeat_field_items{display:flex;flex-direction:row;flex-wrap:wrap;overflow:hidden;width:100%}.repeat_field_items .field_item{display:flex;flex-basis:100%;flex:1;flex-direction:column;padding-left:20px}.repeat_field_items .field_item.field_item_action{display:block!important;flex:0.35;padding-left:0}.ff-table,.ff_entry_table_field,table.editor_table{border-collapse:collapse;display:table;text-align:right;white-space:normal;width:100%}.ff-table td,.ff_entry_table_field td,table.editor_table td{border:1px solid #e4e4e4;padding:7px;text-align:right}.ff-table th,.ff_entry_table_field th,table.editor_table th{background:#f5f5f5;border:1px solid #e4e4e4;padding:0 7px}.ff-table .action-buttons-group,.ff_entry_table_field .action-buttons-group,table.editor_table .action-buttons-group{display:flex}.ff-payment-table tbody td{padding:15px 10px}.ff-payment-table thead th{font-size:120%;font-weight:500;padding:15px 10px}.ff-payment-table tfoot th{padding:10px}.ff-payment-table tfoot .text-right{text-align:left}.ff_list_items li{display:flex;list-style:none;overflow:hidden;padding:7px 0}.ff_list_items li .dashicons,.ff_list_items li .dashicons-before:before{line-height:inherit}.ff_list_items li:hover{background:#f7fafc}.ff_list_items li .ff_list_header{color:#1e1f21;font-weight:600;width:180px}.edit_entry_view .el-select{width:100%}.edit_entry_view .el-form-item>label{color:#1e1f21;font-weight:500}.edit_entry_view .el-form-item{margin-bottom:0;padding-bottom:14px;padding-top:14px}.edit_entry_view .el-form-item:nth-child(2n){background:#f9f7f7;padding-right:20px;padding-left:20px}.fluentform-wrapper .json_action{background-color:#ededed;border-radius:5px;color:#606266;cursor:pointer;font-size:16px;height:26px;line-height:26px;margin-left:8px;text-align:center;width:26px}.fluentform-wrapper .json_action:hover{background-color:#dbdbdb}.fluentform-wrapper .show_code{background:#2e2a2a;border:0;color:#fff;line-height:24px;min-height:500px;padding:20px;width:100%}.fluentform-wrapper .entry-details{background-color:#fff}.fluentform-wrapper .entry-details .table{border-collapse:collapse;width:100%}.fluentform-wrapper .entry-details .table tr:nth-child(2n),.fluentform-wrapper .entry-details .table tr:nth-child(odd){background-color:#fff}.fluentform-wrapper .entry-details .table tr td{padding:8px 10px}.fluentform-wrapper .entry-title{border-bottom:1px solid #fdfdfd;font-size:17px;margin:0;padding:15px}.fluentform-wrapper .entry-body,.fluentform-wrapper .entry-field,.fluentform-wrapper .entry-value{padding:6px 10px}.fluentform-wrapper .entry-footer{border-top:1px solid #ececec;margin-top:12px;padding-top:20px}.response_wrapper .response_header{background-color:#eaf2fa;border-bottom:1px solid #fff;font-weight:700;line-height:1.5;padding:7px 10px 7px 7px}.response_wrapper .response_body{border-bottom:1px solid #dfdfdf;line-height:1.8;overflow:hidden;padding:7px 40px 15px 7px}.response_wrapper .response_body *{box-sizing:border-box}.ff-table{border-collapse:collapse;text-align:right;width:100%}.ff-table thead>tr>th{background:#f1f1f1;color:#1e1f21;font-weight:500;padding:7px 10px}.ff-table tbody>tr>td{padding:7px 10px}.ff-table tbody>tr:nth-child(2n)>td{background:#f1f1f1}.ff-table tbody>tr:nth-child(2n-1)>td{background:#fff}.input-image{float:right;height:auto;margin-left:10px;max-width:100%;width:150px}.input-image img{width:100%}.input_file_ext{background:#eee;color:#a7a3a3;display:block;font-size:16px;padding:15px 10px;text-align:center;width:100%}.input_file_ext i{color:#797878;display:block;font-size:22px}.input_file a,.input_file a:hover{text-decoration:none}.entry_info_box{margin-bottom:24px}.entry_info_box_header{align-items:center;display:flex;justify-content:space-between}.entry_info_box_title{align-items:center;color:#1e1f21;display:inline-flex;font-size:17px;font-weight:600}.ff_entry_detail_wrap .ff_card{margin-bottom:24px}.ff_entry_detail_wrap .entry_submission_log_des{overflow-y:auto}.wpf_each_entry{border-bottom:1px solid #ececec;padding:12px 0}.wpf_each_entry:first-child{padding-top:0}.wpf_each_entry:last-child{border-bottom:0;padding-bottom:0}.wpf_entry_label{color:#1e1f21;font-size:14px;font-weight:500;position:relative}.wpf_entry_value{margin-top:8px;white-space:pre-line;word-break:break-all}.wpf_entry_remove{position:absolute;left:0;top:0}.entry_info_body.narrow_items{padding:0 15px 15px}.entry_info_body.narrow_items .wpf_each_entry{margin:0 -15px;padding:10px 15px}.entry_info_body.narrow_items .wpf_each_entry *{word-break:break-all}.entry_info_body.narrow_items .wpf_each_entry p{margin:5px 0}.wpf_entry_value input[type=checkbox]:disabled:checked{border:1px solid #65afd2;opacity:1!important}.wpf_entry_value input[type=checkbox]:disabled{border:1px solid #909399;opacity:1!important}a.input-image{border:1px solid #e3e8ee}a.input-image:hover{border:1px solid gray}a.input-image:hover img{opacity:.8}.show_on_hover{display:none}.el-table__row:hover .show_on_hover{display:inline-block}.show_on_hover .icon-favorite{color:#fcbe2d;font-size:18px}.show_on_hover .icon-favorite.el-icon-star-on{font-size:20px}.show_on_hover .icon-status{color:#303133;font-size:16px}.show_on_hover [class*=el-icon-],.show_on_hover [class^=el-icon-]{margin-right:2px}.inline_actions{margin-right:5px}.inline_item.inline_actions{display:inline-block}.action_button{cursor:pointer}.current_form_name button.el-button.el-button--default.el-button--mini{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:10px}.ff_email_resend_inline+.compact_input{margin-right:10px}.compact_input .el-checkbox__label{padding-right:5px}.ff_report_body{min-height:20px;width:100%}@media print{.ff_nav_action,.form_internal_menu,div#adminmenumain,div#wpadminbar{display:none}.ff_chart_switcher,.ff_print_hide{display:none!important}div#wpcontent{margin-right:0;padding-right:0}html.wp-toolbar{padding:0}.wrap.ff_form_wrap,div#wpcontent{background:#fff}.ff_report_body{right:10px;position:absolute;left:10px;top:0}.ff_form_application_container{margin-top:0!important}.all_report_items{width:100%!important}.ff-table{border-collapse:collapse;float:left;text-align:right;width:auto}}.all_report_items .entriest_chart_wrapper{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.all_report_items .ff_card{margin-bottom:24px}.report_header{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.report_header .title{color:#1e1f21;font-size:16px;font-weight:600}.report_header .ff_chart_switcher span{background:#ededed;border-radius:6px;cursor:pointer;height:30px;line-height:30px;width:30px}.report_header .ff_chart_switcher span.active_chart{background:#1a7efb;color:#fff}.report_header .ff_chart_switcher span.ff_rotate_90{transform:rotate(-90deg)}.report_body{display:flex;flex-wrap:wrap;justify-content:space-between;padding-top:30px;width:100%}.report_body .chart_data{width:50%}.report_body .ff_chart_view{max-width:380px;width:50%}ul.entry_item_list{list-style:disc;list-style-image:none;list-style-position:initial;list-style-type:disc;padding-right:30px}.star_big{display:inline-block;font-size:20px;margin-left:5px;vertical-align:middle!important}.wpf_each_entry ul{list-style:disc;padding-right:14px}.wpf_each_entry ul li:not(:last-child){margin-bottom:5px}.el-table-column--selection .cell{text-overflow:clip!important}.ff-error{background:#ff9800}.ff-error,.ff-success{color:#fff;padding:10px}.ff-success{background:#4caf50}tr.el-table__row td{padding:18px 0}.add_note_wrapper{padding:20px}.fluent_notes .fluent_note_content{background:#eaf2fa;font-size:13px;line-height:160%;padding:10px 15px}.fluent_notes .fluent_note_meta{font-size:11px;padding:5px 15px}.wpf_add_note_box button{margin-top:15px}.wpf_add_note_box{border-bottom:1px solid #ececec;display:block;margin-bottom:20px;overflow:hidden;padding-bottom:30px}span.ff_tag{background:#626261;border-radius:10px;color:#fff;font-size:10px;padding:4px 6px;text-transform:capitalize}.el-table .cell.el-tooltip{max-height:50px;overflow:hidden}.form-editor--sidebar{position:relative}.code{overflow-x:scroll}.search-element{padding:10px 20px}.ff-user-guide{margin-top:-105px;position:relative;text-align:center;z-index:1}.post-form-settings label.el-form-item__label{color:#606266;font-weight:500;margin-top:8px}.transaction_item_small{background:#f7f7f7;margin-bottom:16px}.transaction_item_heading{align-items:center;border-bottom:1px solid #d2d2d2;display:flex;justify-content:space-between;padding:14px 20px}.transaction_item_body{padding:14px 20px}.transaction_item_line{font-size:15px;margin-bottom:10px}.transaction_heading_title{display:inline-block;font-size:16px;font-weight:500}.ff_badge_status_pending{background-color:#fcbe2d}.ff_badge_status_paid{background:#00b27f;border-color:#00b27f;color:#fff}.entry_submission_log .wpf_entry_label{margin-bottom:10px}.entry_submission_log_component{font-weight:700;text-transform:capitalize}.entry_submission_log .log_status_error,.entry_submission_log .log_status_failed{background:#ff6154}.entry_submission_log .log_status_success{background:#00b27f}.ff_report_card+.ff_print_hide{margin-top:40px}.ff_as_container{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);margin-bottom:20px;padding:5px 10px}.ff_as_container .ff_rich_filters{background:#fdfdfd;border:1px solid #efefef;border-radius:4px;padding:10px}.ff_as_container .ff_rich_filters .ff_table{background:#f0f3f7;border:1px solid #dedcdc;box-shadow:none}.ff_as_container .ff_rich_filters .ff_table .filter_name{font-weight:500}.ff_as_container .ff_cond_or{border-bottom:1px dashed #d5dce1;color:gray;line-height:100%;margin:0 0 15px;padding:0;text-align:center}.ff_as_container .ff_cond_or em{background:#fff;font-size:1.2em;font-style:normal;margin:0 10px;padding:0 10px;position:relative;top:9px}.browser-frame{border-radius:10px;box-shadow:0 0 3px #e6ecef;max-width:100%;overflow:hidden}.browser-controls{align-items:center;background:#e6ecef;color:#bec4c6;display:flex;height:50px;justify-content:space-around}.window-controls{flex:0 0 60px;margin:0 2%}.window-controls span{background:#ff8585;border-radius:50px;display:inline-block;height:15px;width:15px}.window-controls span.minimise{background:#ffd071}.window-controls span.maximise{background:#74ed94}.page-controls{flex:0 0 70px;margin-left:2%}.page-controls span{display:inline-block;font-size:13px;height:20px;line-height:11px;padding-top:5px;text-align:center;width:30px}.url-bar{color:#889396;flex-grow:1;font-family:monospace;margin-left:2%;overflow:hidden;padding:5px 10px 0 5px}.white-container{background:#fff;border-radius:3px;height:25px}.bar-warning{background:#fa6b05;color:#fff}.bar-warning a{color:#fee;font-size:120%}.browser-frame.ffc_browser_mobile{margin:0 auto;max-width:375px}.clearfix:after,.clearfix:before,.form-editor:after,.form-editor:before{content:" ";display:table}.clearfix:after,.form-editor:after{clear:both}.mr15{margin-left:15px}.mb15{margin-bottom:15px}.mb0{margin-bottom:0}.pull-left{float:right!important}.icon-clickable{cursor:pointer}.help-text{font-size:.9em;font-style:italic;margin:0}.form_internal_menu{background:#fff;border-bottom:1px solid #ececec;display:flex;padding-right:20px;padding-left:20px;position:relative}.form_internal_menu .ff_menu_toggle{padding-top:4px}.form_internal_menu_inner{display:flex;width:100%}.form_internal_menu .ff_setting_menu{display:inline-block;list-style:none;margin:0;padding:0}.form_internal_menu .ff_setting_menu li{display:inline-block;list-style:none;margin-bottom:0}.form_internal_menu .ff_setting_menu li a{color:#24282e;display:block;font-weight:700;padding:19px 15px;text-decoration:none}.form_internal_menu .ff_setting_menu li.active a{box-shadow:inset 0 -2px #1a7efb;color:#1a7efb;margin-bottom:-2px}.form_internal_menu .ff-navigation-right{align-items:center;display:flex;margin-right:auto;padding-bottom:3px;position:relative}.form_internal_menu .ff-navigation-right .ff_more_menu{position:absolute;left:-12px;top:48%;transform:translateY(-50%)}.form_internal_menu .el-button,.form_internal_menu .ff_shortcode_btn{margin-left:10px}.form_internal_menu #switchScreen{margin-left:20px}.wp-admin.folded .ff_form_wrap{right:56px}.ff_screen_entries .ff_form_application_container,.ff_screen_inventory_list .ff_form_application_container,.ff_screen_msformentries .ff_form_application_container{padding:24px}.ff_partial-entries_action_wrap{justify-content:flex-end}.ff_partial-entries_action_wrap .partial_entries_search_wrap{margin-left:16px;width:270px}.conditional-items{border-right:2px solid #ececec;padding-right:18px;padding-left:1px}.ff_screen_conversational_design .ff-navigation-right,.ff_screen_entries .ff-navigation-right,.ff_screen_msformentries .ff-navigation-right,.ff_screen_settings .ff-navigation-right{padding-left:0}.ff_screen_conversational_design .ff-navigation-right .el-button,.ff_screen_entries .ff-navigation-right .el-button,.ff_screen_msformentries .ff-navigation-right .el-button,.ff_screen_settings .ff-navigation-right .el-button{margin-left:0}.settings_app .el-form-item,.settings_app .el-form-item-wrap{margin-bottom:24px}.settings_app .el-form-item-wrap:last-child,.settings_app .el-form-item:last-child{margin-bottom:0}.settings_app .ff_card:not(:last-child){margin-bottom:28px}.settings_app .el-row .el-col{margin-bottom:24px}.ff_settings_form{height:90vh;overflow-y:scroll}.ff_settings_form::-webkit-scrollbar{display:none}.ff_settings_notifications .el-form-item__content{line-height:inherit}.slide-down-enter-active{max-height:100vh;transition:all .8s}.slide-down-leave-active{max-height:100vh;transition:all .3s}.slide-down-enter,.slide-down-leave-to{max-height:0}.fade-enter-active,.fade-leave-active{transition:opacity .25s ease-out}.fade-enter,.fade-leave-to{opacity:0}.flip-enter-active{transition:all .2s cubic-bezier(.55,.085,.68,.53)}.flip-leave-active{transition:all .25s cubic-bezier(.25,.46,.45,.94)}.flip-enter,.flip-leave-to{opacity:0;transform:scaleY(0) translateZ(0)}.el-tooltip__popper h3{margin:0 0 5px}.el-date-editor .el-range-separator{width:22px}.ff_form_group .el-date-editor--datetimerange{width:100%}.ff_nav_top.ff_advanced_search{background:#fff;border-radius:5px;padding:10px 20px}.general_integration_logo{height:28px;-o-object-fit:cover;object-fit:cover;-o-object-position:right;object-position:right;width:28px}.general_integration_name{font-size:16px}.integration_success_state{background:#f1f1f1;padding:30px;text-align:center}.integration_success_state p{font-size:18px}.integration_instraction{background-color:#fcf6ed;border-right:4px solid #fcbe2d;border-radius:4px;box-shadow:0 2px 3px 0 hsla(0,0%,51%,.1);margin-bottom:25px;padding:15px 20px}.integration_instraction h4{font-size:16px;line-height:1.4}.integration_instraction h4:not(:last-child){margin-bottom:12px}.integration_instraction li{font-size:15px;line-height:24px}.integration_instraction li:not(:last-child){margin-bottom:4px}.ff_global_settings_option .el-row{margin-bottom:-24px}.ff_global_settings_option .el-row .el-col{margin-bottom:24px}.ff_pdf_form_wrap{display:flex;flex-wrap:wrap;margin-bottom:-30px;margin-right:-12px;margin-left:-12px}.ff_field_manager{margin-bottom:30px;padding-right:12px;padding-left:12px;width:50%}.ff_field_manager .el-select,.ff_full_width_feed .ff_field_manager{width:100%}.ff_feed_editor .el-tabs--border-card{background-color:transparent;box-shadow:none}.ff_top_50{margin-top:50px}.ff_top_25{margin-top:25px}.ff_conversational_page_items{margin-top:30px}.ff_items_inline .el-select .el-input{width:100%}.ff_items_inline .el-input,.ff_items_inline .el-select{display:inline-block;width:49%}.el-table .warning-row{background:oldlace}.el-table .warning-row td{background:oldlace!important}.wpf_each_filter{padding-left:20px}.wpf_each_filter>label{display:block;width:100%}.wpf_each_filter>.el-select{width:100%!important}.ff_reguest_field_table tbody td{padding-bottom:4px}.action-btns{align-items:center;display:inline-flex}.action-btns i{cursor:pointer}.action-btns i:not(:last-child){margin-left:4px}.ff_inline .el-input{display:inline-block;width:auto}.ff_routing_fields{margin-bottom:30px}table.ff_routing_table{border:0;border-collapse:collapse;border-spacing:0;width:100%}table.ff_routing_table tr td{border:0;padding:12px 3px}table.ff_routing_table tr{border:1px solid rgba(232,232,236,.439);border-right:0;border-left:0}.promo_section{border-top:1px solid #bdbdbd;margin-top:30px;padding:20px;text-align:center}.promo_section p{font-size:20px}.promo_section a{font-size:20px!important;height:40px!important;padding:6px 20px!important}.ff-feature-lists ul li{font-size:18px;line-height:27px}.ff-feature-lists ul li span{font-size:20px;margin-top:4px}.ff_landing_page_items{margin-top:30px}.inline-form-field{margin-top:15px}.el-collapse-item{margin-bottom:1px}.ff_each_template{margin-bottom:20px}.ff_each_template .ff_card{border:1px solid #ddd;cursor:pointer;padding:10px;text-align:center}.ff_each_template .ff_card .ff_template_label{font-weight:700}.ff_each_template .ff_card:hover{border:2px solid #1a7efb;opacity:.8}.ff_each_template img{max-width:100%}.post_feed .no-mapping-alert{background-color:#f2f2f2;border-radius:5px;margin-bottom:20px;padding:10px;text-align:center}.ff_post_feed_wrap .meta_fields_mapping{margin-top:20px}.ff_post_feed_wrap .feed_name{color:#606266;font-weight:400}.meta_fields_mapping_head,.post_fields_mapping_head{align-items:center;border-bottom:1px solid #ececec;display:flex;justify-content:space-between;margin-bottom:14px;padding-bottom:14px}.meta_fields_mapping_head.no_border,.post_fields_mapping_head.no_border{border-bottom:0;margin-bottom:0}.post_feeds .green{color:#00b27f}.post_feeds .red{color:#ff6154}.post-settings .mt15{margin-top:15px}.el-fluid,.el-fluid table{width:100%!important}.action-add-field-select{width:calc(100% - 46px)}.content-ellipsis .cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content-ellipsis .page a{text-decoration:none}.el-form-item__error{position:relative!important}.el-form-item__error p{margin-bottom:0;margin-top:0}.pull-right{float:left!important}.ninja_custom_css_editor{border-radius:6px;height:auto;min-height:350px}.ninja_css_errors .ace_gutter-cell.ace_warning{display:none}.ff-vddl-col_options_wrap .vddl-column-list{align-items:center;display:flex;margin-bottom:14px}.ff-vddl-col_options_wrap .handle{background:url(../images/handle.png?113dcab1e057b4d108fdbe088b054a5d) 50% no-repeat;background-size:20px 20px;cursor:move;height:20px;margin-left:10px;width:25px}.post_meta_plugins_mappings{background:#fffaf3;border-radius:8px;padding:20px}.ff_landing{align-items:stretch;display:flex;flex-direction:row;justify-content:flex-start;margin-top:30px}.ff_landing .wp_vue_editor_wrapper .wp-media-buttons{left:10px}.ff_landing .ff_landing_sidebar{width:310px}.ff_landing .ff_landing_sidebar .ffc_sidebar_body{height:600px;overflow:hidden scroll;padding-left:10px;padding-top:30px}.ff_landing .ff_landing_sidebar .ffc_sidebar_body .ffc_sidebar_body .ffc_design_submit{margin-top:30px;text-align:center}.ff_landing .ffc_design_container{margin-right:auto;margin-top:-44px;width:calc(100% - 340px)}.ff_landing .ffc_design_elements .fcc_eq_line .el-form-item__label{line-height:120%}.ff_landing .ffc_design_elements .el-form-item.fcc_label_top .el-form-item__label{display:block;float:none;line-height:100%;width:100%!important}.ff_landing .ffc_design_elements .el-form-item.fcc_label_top .el-form-item__content{display:block;margin-right:0!important;width:100%}.ff_type_settings{width:100%}.ff_type_settings .ff-type-control{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.ff_type_settings .ff-type-control .ff-control-title,.ff_type_settings .ff-type-control .ff-type-value{color:#1e1f21;display:inline-block;font-size:13px;font-weight:500}.ff_type_settings .ff-type-control.ff-type-full{flex-direction:column}.ff_type_settings .ff-type-control.ff-type-full .ff-control-title{margin-bottom:8px}.ff_type_settings .ff-type-control.ff-type-full .ff-control-title,.ff_type_settings .ff-type-control.ff-type-full .ff-type-value{width:100%}ul.fcc_inline_social{margin:20px 0;padding:0}ul.fcc_inline_social li{display:inline-block;margin-left:10px}ul.fcc_inline_social li a{text-decoration:none}.ffc_sharing_settings .el-row .el-col{margin-bottom:0}.fcc_card{background:#fff;border:1px solid #ececec;border-radius:8px;margin-bottom:24px;padding:20px}.copy_share.fc_copy_success i:before{content:"\e6da"}.ff_smtp_suggest{background:#ededed;border-radius:8px;display:block;padding:40px 30px 30px;position:relative;text-align:center}.ff_smtp_suggest p{font-size:14px;margin-bottom:16px}.ff_smtp_suggest .ff_smtp_close{cursor:pointer;font-size:17px;font-weight:600;height:22px;line-height:22px;position:absolute;left:10px;top:10px;width:22px}.ff_managers_settings h2{margin:10px 0}.ff_managers_settings .ff_manager_settings_header{align-items:center;display:flex}.ff_managers_settings .ff_manager_settings_nav{display:block;margin-bottom:15px;width:100%}.ff_managers_settings .ff_manager_settings_nav ul{border-bottom:1px solid #e4e7ec;list-style:none;margin:0;padding:0}.ff_managers_settings .ff_manager_settings_nav ul li{border-bottom:3px solid transparent;cursor:pointer;display:inline-block;margin:0;padding:0 20px 15px}.ff_managers_settings .ff_manager_settings_nav ul li.ff_active{border-bottom-color:#1a7efb;color:#1a7efb;font-weight:700}.ff_managers_settings .el-tag{margin-left:10px}.ff_managers_form p{margin-top:5px}.ff-quiz-settings-wrapper .quiz-field{align-items:center;display:flex;margin-bottom:15px}.ff-quiz-settings-wrapper .quiz-field-setting{display:flex;flex-direction:column;padding-left:10px}.ff-quiz-settings-wrapper .quiz-questions>div .quiz-field-container{border:1px solid #efefef;border-bottom:none;padding:10px}.ff-quiz-settings-wrapper .quiz-questions>div>div:last-child .quiz-field-container{border-bottom:1px solid #efefef}.ff_tips,.ff_tips_error,.ff_tips_warning{background-color:#ecf8ff;border-right:5px solid #50bfff;border-radius:4px;margin:20px 0;padding:8px 16px}.ff_tips_warning{background-color:#faecd8;border-right-color:#e6a23c}.ff_tips_error{background:#fde2e2;border-right-color:#f56c6c}.ff_tips *,.ff_tips_error *,.ff_tips_warning *{margin:0}.ff_iconed_radios>label{border:1px solid #ececec;border-radius:4px;color:#606266;margin-left:12px;padding:6px}.ff_iconed_radios>label span.el-radio__input{display:none}.ff_iconed_radios>label .el-radio__label{padding-right:0}.ff_iconed_radios>label i{font-size:26px;height:auto;width:auto}.ff_iconed_radios>label.is-checked{background:#1a7efb;border-color:#1a7efb}.ff_iconed_radios>label.is-checked i{color:#fff;display:block}.landing-page-settings{min-height:100px}.landing-page-settings .ff_iconed_radios>label{margin-left:10px}body.ff_full_screen{overflow:hidden}body.ff_full_screen .el-tooltip__popper{z-index:1000999!important}body.ff_full_screen .ff-landing-layout-box-shadow-popover{right:35px!important;z-index:1000999!important}body.ff_full_screen .el-color-dropdown{z-index:1000999!important}body.ff_full_screen .ff_settings_container{background:#fff;bottom:0;color:#444;cursor:default;height:100%;right:0!important;margin:0!important;min-width:0;overflow:hidden;position:fixed;left:0!important;top:0;z-index:100099!important}body.ff_full_screen .ff_settings_container .ff-landing-page-settings .ff_card{box-shadow:none;padding:0}body.ff_full_screen .ff_settings_container .ff_landing{max-height:calc(95vh - 120px);overflow:hidden scroll}body.ff_full_screen .ff_settings_container .ff_landing .ffc_design_container{margin-top:0}.ff_form_name{align-items:center;border-left:1px solid #ececec;color:#353537;display:flex;font-size:15px;font-weight:500;max-width:110px;padding-right:10px;padding-left:10px;position:relative}.ff_form_name .el-icon-edit{right:10px;position:absolute}.ff_form_name_inner{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_screen_conversational_design .ff_menu,.ff_screen_editor .ff_menu,.ff_screen_entries .ff_menu,.ff_screen_inventory_list .ff_menu,.ff_screen_msformentries .ff_menu,.ff_screen_settings .ff_menu{display:flex;margin-top:0;padding-right:10px;padding-left:10px}.ff_screen_conversational_design .ff_menu_back,.ff_screen_editor .ff_menu_back,.ff_screen_entries .ff_menu_back,.ff_screen_inventory_list .ff_menu_back,.ff_screen_msformentries .ff_menu_back,.ff_screen_settings .ff_menu_back{align-items:center;border-left:1px solid #ececec;display:none;padding-left:10px}.ff_screen_conversational_design .ff_menu_back .el-icon,.ff_screen_editor .ff_menu_back .el-icon,.ff_screen_entries .ff_menu_back .el-icon,.ff_screen_inventory_list .ff_menu_back .el-icon,.ff_screen_msformentries .ff_menu_back .el-icon,.ff_screen_settings .ff_menu_back .el-icon{font-weight:700}.ff_screen_conversational_design .ff_menu_back .ff_menu_link,.ff_screen_editor .ff_menu_back .ff_menu_link,.ff_screen_entries .ff_menu_back .ff_menu_link,.ff_screen_inventory_list .ff_menu_back .ff_menu_link,.ff_screen_msformentries .ff_menu_back .ff_menu_link,.ff_screen_settings .ff_menu_back .ff_menu_link{color:#353537;padding:0}.ff_screen_conversational_design .ff-navigation-right,.ff_screen_editor .ff-navigation-right,.ff_screen_entries .ff-navigation-right,.ff_screen_inventory_list .ff-navigation-right,.ff_screen_msformentries .ff-navigation-right,.ff_screen_settings .ff-navigation-right{display:flex}.ff-navigation-right .el-button{padding:9px 14px}.ff-navigation-right .ff_shortcode_btn_md{cursor:pointer;font-size:14px;max-width:70px;padding-bottom:9px;padding-top:9px;transition:all .5s ease}.ff-navigation-right .ff_shortcode_btn:hover{background:#4b4c4d;color:#fff;max-width:220px}.more_menu{padding:0}.more_menu .ff-icon-more-vertical{font-size:24px}.form_internal_menu_inner{padding:10px 10px 6px}.ff_screen_editor .ff_form_name{padding-right:30px}.ff_screen_editor .form_internal_menu_inner{flex-direction:column}.ff_screen_editor .form_internal_menu_inner .ff_menu{margin-right:auto;padding-bottom:5px}.ff_merge_fields .el-form-item,.ff_merge_fields .el-form-item:last-child{margin-bottom:0}.ff_merge_fields .el-form-item__label{padding-bottom:0}.ff_field_routing .ff_routing_fields{margin-bottom:10px;margin-top:16px}.ff_field_routing .el-select+.el-checkbox{margin-right:10px}.ff_chained_filter{display:flex}.ff_chained_filter .el-select+.el-select{margin-right:20px}.ff_payment_mode_wrap{background-color:#fff;border-radius:8px;padding:24px}.ff_payment_mode_wrap h4{font-size:18px;font-weight:500;margin-bottom:15px}.el-tabs__nav-wrap:after{height:1px}.el-tabs__item{color:#606266;font-weight:500;height:auto;line-height:inherit;padding-bottom:15px;padding-right:15px;padding-left:15px}.ff_between_wrap,.ff_migrator_navigation_header{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.ff-quiz-settings-wrapper .ff_field_manager{padding-right:0;padding-left:0;width:auto}.ff-quiz-settings-wrapper .ff_field_manager:last-child{margin-bottom:0}.ff_payment_badge{border:1px solid #b1b1b1;border-radius:30px;display:inline-block;font-size:12px;font-weight:500;line-height:1;padding:4px 8px}span+.ff_payment_badge{margin-right:5px}.fluent_activate_now{display:none}.fluent_activation_wrapper .fluentform_label{display:inline-block;margin-left:10px;margin-top:-4px;width:270px}.fluent_activation_wrapper .fluentform_label input{background-color:#f2f2f2;width:100%}.fluent_activation_wrapper .fluentform_label input::-webkit-input-placeholder{color:#908f8f}.fluent_activation_wrapper .contact_us_line{margin-top:12px}.fluent_activation_wrapper .fluent_plugin_activated_hide{display:none}.license_activated_sucess{margin-bottom:16px}.license_activated_sucess h5{margin-bottom:8px}.ff-repeater-setting .field-options-settings{padding-top:8px}.ff-repeater-setting .address-field-option{padding-bottom:0}.ff-repeater-setting-label{color:#1e1f21;font-size:14px}.ff-repeater-header{align-items:center;display:flex;justify-content:space-between}.ff-repeater-title{color:#1a7efb;font-size:14px;font-weight:500}.ff-repeater-action,.ff-repeater-action .repeater-toggle{align-items:center;display:inline-flex}.ff-repeater-action .repeater-toggle{cursor:pointer;font-size:18px;height:18px;width:18px}.ff-input-yes-no-checkbox-wrap:not(:last-child){margin-bottom:16px}.ff-input-yes-no-checkbox-wrap .el-checkbox__label{align-items:center;display:inline-flex}.ff-input-yes-no-checkbox-wrap .checkbox-label{display:inline-block;max-width:310px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-tooltip__popper{max-width:300px;z-index:99999999999!important}.ff_inventory_list .list_container{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);padding:20px 24px}.ff_inventory_list .el-table__footer-wrapper tbody td.el-table__cell{background-color:#e8f2ff}.ff_2_col_items * label{display:inline-block;margin:0 0 10px;width:50%}.global-overlay{background:rgba(0,0,0,.612);display:none;height:100%;right:0;position:fixed;top:0;width:100%;z-index:10}.global-overlay.active{display:block}.ff_chained_filter .el-row .wpf_each_filter{margin-bottom:18px}.ff_chained_filter .el-row .wpf_each_filter label{margin-bottom:10px}@media (min-width:1281px){.ff_screen_editor .form_internal_menu_inner{flex-direction:row}.ff_screen_editor .form_internal_menu_inner .ff_menu{margin-right:0;padding-bottom:0}.ff_screen_conversational_design .ff_menu_back,.ff_screen_editor .ff_menu_back,.ff_screen_entries .ff_menu_back,.ff_screen_inventory_list .ff_menu_back,.ff_screen_msformentries .ff_menu_back,.ff_screen_settings .ff_menu_back{display:flex}.option-fields-section--content .v-row{flex-direction:row}.option-fields-section--content .v-col--50{padding-bottom:0;width:50%}.form-editor--body{padding:50px;width:65%}.form-editor--sidebar{width:35%}}@media (min-width:769px){.ff_header{align-items:center;flex-direction:row}.ff_header_group{margin-left:32px}.ff_menu{display:flex;margin-top:0}.ff_menu_toggle{display:none}.ff_form_wrap{padding-right:24px;padding-left:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_editor,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:0}}@media (min-width:1025px){.all-forms-search,.ff_entries_search_wrap{width:270px}.ff_entries_search_wrap{margin-right:auto}.all-forms-select{width:250px}.ff_layout_section_sidebar{width:280px}.ff_layout_section_container,.ff_layout_section_sidebar{padding:24px}.fluent_activation_wrapper .fluentform_label{width:470px}}@media (max-width:768px){.form_internal_menu{margin-right:-10px}.form_internal_menu ul.ff_setting_menu{float:left;padding-left:10px!important}.form_internal_menu ul.ff_setting_menu li a{padding:10px 3px!important}.form_internal_menu .ff_form_name_inner{max-width:100px}.form_internal_menu #switchScreen{margin-left:0;margin-top:14px}.ff_nav_action{float:left!important;text-align:right!important}input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{min-height:30px}.ff_form_main_nav .plugin-name{display:none}.row-actions{display:inline-block!important}.el-form .el-form-item .el-form-item__label{width:100%!important}.el-form .el-form-item .el-form-item__content{margin-right:0!important}.el-tabs__content{padding:20px 10px!important}.wpf_each_entry a{word-break:break-all}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu{top:0!important}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{display:block}.form_internal_menu_inner{background:#fff;border-radius:8px;box-shadow:0 1px 10px rgba(0,0,0,.2);display:none;flex-direction:column;padding:20px;position:absolute;left:20px;top:38px;width:300px;z-index:9999}.form_internal_menu_inner.active{display:flex}.ff_form_name{padding-bottom:10px;padding-top:10px}.ff_screen_editor .form_internal_menu_inner .ff_menu,.form_internal_menu .ff-navigation-right{margin-right:0}.ff_menu{align-items:flex-start;flex-direction:column;margin-bottom:10px}.ff_menu li{width:100%}.ff_menu li a{display:block;max-width:100%!important}.form_internal_menu .ff-navigation-right{align-items:flex-start}.ff-navigation-right{flex-direction:column}.form_internal_menu .el-button,.form_internal_menu .ff_shortcode_btn{margin-bottom:10px;margin-left:0}.form_internal_menu .ff-navigation-right .ff_more_menu{bottom:0;left:0;top:auto;transform:translateY(0)}.ff_screen_conversational_design .ff_menu,.ff_screen_editor .ff_menu,.ff_screen_entries .ff_menu,.ff_screen_inventory_list .ff_menu,.ff_screen_msformentries .ff_menu,.ff_screen_settings .ff_menu{padding-right:0;padding-left:0}.ff_tools_wrap .ff_settings_sidebar_wrap{height:100%}.ff_settings_sidebar_wrap{flex-shrink:0;right:-240px;position:absolute;transition:.3s;z-index:999}.ff_settings_sidebar_wrap.active{right:-10px}.ff_settings_sidebar_wrap.active .ff_layout_section_sidebar{box-shadow:-2px 1px 10px 0 rgba(30,31,33,.1)}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle{left:-18px}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle .ff-icon:before{content:"\e919"}.ff_sidebar_toggle{display:flex}.ff_header{margin-right:-10px;position:relative}.ff_header .global-search-menu-button{position:absolute;left:60px;top:12px}.conditional-logic{flex-direction:column}.conditional-logic>*{width:100%}.el-radio-button-group{border:0}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner,.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner,.el-radio-button-group .el-radio-button__inner{border-radius:4px}}@media (max-width:425px){label.el-checkbox{display:inline-flex}.el-checkbox__label{white-space:normal}.el-checkbox__input{line-height:1.6}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{margin-left:0}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right a,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right button,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right span{font-size:10px;margin:0 3px;padding:5px 4px!important}#ff_form_entries_app .ff_nav_top .ff_nav_action,#ff_form_entries_app .ff_nav_top .ff_nav_title{margin-bottom:10px;width:100%}.form_internal_menu{margin:0 -10px;width:auto}.form_internal_menu ul.ff_setting_menu li a{font-size:11px}.ff_form_application_container{margin-top:0!important}.ff_form_main_nav .ninja-tab{font-size:12px;margin:0;padding:10px 5px}ul.el-pager{display:none!important}button.el-button.pull-right{float:right!important}.entry_header h3{clear:both;display:block;width:100%!important}.v-row .v-col--33{margin-bottom:15px;padding-left:0;width:100%!important}.v-row .v-col--33:last-child{margin-bottom:0}.option-fields-section--content{padding:15px 5px}.ff-add-confirmation-wrap .el-radio.is-bordered{margin-bottom:10px;margin-left:10px}.ff-add-confirmation-wrap .el-radio.is-bordered+.el-radio.is-bordered{margin-right:0}.ff-form-item-flex{flex-wrap:wrap;gap:10px}.ff_pagination_wrap.mt-4{margin-top:0!important}.ff_pagination{flex-wrap:wrap;margin-top:24px}.ff_pagination .el-pagination__jump{margin:10px 0 0}.ff_all_entries .ff_section_head_content{margin-top:24px}.ff_all_entries .ff_section_head_content .ff_advanced_search{left:unset}.ff_all_entries .ff_entries_details .ff_section_head .lead-title{margin-bottom:10px!important}.ff_all_entries .ff_entries_details .ff_radio_group_wrap{margin-bottom:10px;margin-top:10px}.ff_all_entries .ff_entries_details .ff_radio_group_wrap .ff_radio_group_s2{width:100%}}.el-popover{text-align:right!important;word-break:inherit!important} assets/css/fluentform-public-default.css000064400000006677147600120010014436 0ustar00:root{--fluentform-primary:#1a7efb;--fluentform-secondary:#606266;--fluentform-danger:#f56c6c;--fluentform-border-color:#dadbdd;--fluentform-border-radius:7px}.ff-default .ff_btn_style{border:1px solid transparent;border-radius:7px;cursor:pointer;display:inline-block;font-size:16px;font-weight:500;line-height:1.5;padding:8px 20px;position:relative;text-align:center;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.ff-default .ff_btn_style:focus,.ff-default .ff_btn_style:hover{opacity:.8;outline:0;text-decoration:none}.ff-default .ff-btn-primary:not(.ff_btn_no_style){background-color:#007bff;border-color:#007bff;color:#fff}.ff-default .ff-btn-primary:not(.ff_btn_no_style):focus,.ff-default .ff-btn-primary:not(.ff_btn_no_style):hover{background-color:#0069d9;border-color:#0062cc;color:#fff}.ff-default .ff-btn-secondary:not(.ff_btn_no_style){background-color:#606266;border-color:#606266;color:#fff}.ff-default .ff-btn-secondary:not(.ff_btn_no_style):focus,.ff-default .ff-btn-secondary:not(.ff_btn_no_style):hover{background-color:#727b84;border-color:#6c757d;color:#fff}.ff-default .ff-btn-lg{border-radius:6px;font-size:18px;line-height:1.5;padding:8px 16px}.ff-default .ff-btn-sm{border-radius:3px;font-size:13px;line-height:1.5;padding:4px 8px}.ff-default .ff-el-form-control{background-clip:padding-box;background-image:none;border:1px solid var(--fluentform-border-color);border-radius:var(--fluentform-border-radius);color:var(--fluentform-secondary);font-family:-apple-system,"system-ui",Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1;margin-bottom:0;max-width:100%;padding:11px 15px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.ff-default .ff-el-form-control:focus{background-color:#fff;border-color:var(--fluentform-primary);color:var(--fluentform-secondary);outline:none}.ff-default .ff-el-form-check label.ff-el-form-check-label{cursor:pointer;margin-bottom:7px}.ff-default .ff-el-form-check label.ff-el-form-check-label>span:after,.ff-default .ff-el-form-check label.ff-el-form-check-label>span:before{content:none}.ff-default .ff-el-form-check:last-child label.ff-el-form-check-label{margin-bottom:0}.ff-default textarea{min-height:90px}select.ff-el-form-control:not([size]):not([multiple]){height:42px}.elementor-editor-active .ff-form-loading .ff-step-container .fluentform-step:first-child{height:auto}.ff-upload-preview.ff_uploading{opacity:.8}@keyframes ff_move{0%{background-position:0 0}to{background-position:50px 50px}}.ff_uploading .ff-el-progress .ff-el-progress-bar{animation:ff_move 2s linear infinite;background-image:linear-gradient(-45deg,hsla(0,0%,100%,.2) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.2) 0,hsla(0,0%,100%,.2) 75%,transparent 0,transparent);background-size:50px 50px;border-bottom-left-radius:20px;border-bottom-right-radius:8px;border-top-left-radius:20px;border-top-right-radius:8px;bottom:0;content:"";left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:1}.ff_payment_summary{overflow-x:scroll}.pac-container{z-index:99999!important}.ff-support-sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.ff-default{font-family:inherit}.ff-default .ff-el-input--label label{display:inline-block;font-weight:500;line-height:inherit;margin-bottom:0} assets/css/preview.css000064400000657144147600120010011041 0ustar00@font-face{font-display:"auto";font-family:element-icons;font-style:normal;font-weight:400;src:url(../fonts/vendor/element-ui/packages/theme-chalk/src/element-icons.woff?313f7dacf2076822059d2dca26dedfc6) format("woff"),url(../fonts/vendor/element-ui/packages/theme-chalk/src/element-icons.ttf?4520188144a17fb24a6af28a70dae0ce) format("truetype")}[class*=" el-icon-"],[class^=el-icon-]{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:element-icons!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;vertical-align:baseline}.el-icon-ice-cream-round:before{content:"\e6a0"}.el-icon-ice-cream-square:before{content:"\e6a3"}.el-icon-lollipop:before{content:"\e6a4"}.el-icon-potato-strips:before{content:"\e6a5"}.el-icon-milk-tea:before{content:"\e6a6"}.el-icon-ice-drink:before{content:"\e6a7"}.el-icon-ice-tea:before{content:"\e6a9"}.el-icon-coffee:before{content:"\e6aa"}.el-icon-orange:before{content:"\e6ab"}.el-icon-pear:before{content:"\e6ac"}.el-icon-apple:before{content:"\e6ad"}.el-icon-cherry:before{content:"\e6ae"}.el-icon-watermelon:before{content:"\e6af"}.el-icon-grape:before{content:"\e6b0"}.el-icon-refrigerator:before{content:"\e6b1"}.el-icon-goblet-square-full:before{content:"\e6b2"}.el-icon-goblet-square:before{content:"\e6b3"}.el-icon-goblet-full:before{content:"\e6b4"}.el-icon-goblet:before{content:"\e6b5"}.el-icon-cold-drink:before{content:"\e6b6"}.el-icon-coffee-cup:before{content:"\e6b8"}.el-icon-water-cup:before{content:"\e6b9"}.el-icon-hot-water:before{content:"\e6ba"}.el-icon-ice-cream:before{content:"\e6bb"}.el-icon-dessert:before{content:"\e6bc"}.el-icon-sugar:before{content:"\e6bd"}.el-icon-tableware:before{content:"\e6be"}.el-icon-burger:before{content:"\e6bf"}.el-icon-knife-fork:before{content:"\e6c1"}.el-icon-fork-spoon:before{content:"\e6c2"}.el-icon-chicken:before{content:"\e6c3"}.el-icon-food:before{content:"\e6c4"}.el-icon-dish-1:before{content:"\e6c5"}.el-icon-dish:before{content:"\e6c6"}.el-icon-moon-night:before{content:"\e6ee"}.el-icon-moon:before{content:"\e6f0"}.el-icon-cloudy-and-sunny:before{content:"\e6f1"}.el-icon-partly-cloudy:before{content:"\e6f2"}.el-icon-cloudy:before{content:"\e6f3"}.el-icon-sunny:before{content:"\e6f6"}.el-icon-sunset:before{content:"\e6f7"}.el-icon-sunrise-1:before{content:"\e6f8"}.el-icon-sunrise:before{content:"\e6f9"}.el-icon-heavy-rain:before{content:"\e6fa"}.el-icon-lightning:before{content:"\e6fb"}.el-icon-light-rain:before{content:"\e6fc"}.el-icon-wind-power:before{content:"\e6fd"}.el-icon-baseball:before{content:"\e712"}.el-icon-soccer:before{content:"\e713"}.el-icon-football:before{content:"\e715"}.el-icon-basketball:before{content:"\e716"}.el-icon-ship:before{content:"\e73f"}.el-icon-truck:before{content:"\e740"}.el-icon-bicycle:before{content:"\e741"}.el-icon-mobile-phone:before{content:"\e6d3"}.el-icon-service:before{content:"\e6d4"}.el-icon-key:before{content:"\e6e2"}.el-icon-unlock:before{content:"\e6e4"}.el-icon-lock:before{content:"\e6e5"}.el-icon-watch:before{content:"\e6fe"}.el-icon-watch-1:before{content:"\e6ff"}.el-icon-timer:before{content:"\e702"}.el-icon-alarm-clock:before{content:"\e703"}.el-icon-map-location:before{content:"\e704"}.el-icon-delete-location:before{content:"\e705"}.el-icon-add-location:before{content:"\e706"}.el-icon-location-information:before{content:"\e707"}.el-icon-location-outline:before{content:"\e708"}.el-icon-location:before{content:"\e79e"}.el-icon-place:before{content:"\e709"}.el-icon-discover:before{content:"\e70a"}.el-icon-first-aid-kit:before{content:"\e70b"}.el-icon-trophy-1:before{content:"\e70c"}.el-icon-trophy:before{content:"\e70d"}.el-icon-medal:before{content:"\e70e"}.el-icon-medal-1:before{content:"\e70f"}.el-icon-stopwatch:before{content:"\e710"}.el-icon-mic:before{content:"\e711"}.el-icon-copy-document:before{content:"\e718"}.el-icon-full-screen:before{content:"\e719"}.el-icon-switch-button:before{content:"\e71b"}.el-icon-aim:before{content:"\e71c"}.el-icon-crop:before{content:"\e71d"}.el-icon-odometer:before{content:"\e71e"}.el-icon-time:before{content:"\e71f"}.el-icon-bangzhu:before{content:"\e724"}.el-icon-close-notification:before{content:"\e726"}.el-icon-microphone:before{content:"\e727"}.el-icon-turn-off-microphone:before{content:"\e728"}.el-icon-position:before{content:"\e729"}.el-icon-postcard:before{content:"\e72a"}.el-icon-message:before{content:"\e72b"}.el-icon-chat-line-square:before{content:"\e72d"}.el-icon-chat-dot-square:before{content:"\e72e"}.el-icon-chat-dot-round:before{content:"\e72f"}.el-icon-chat-square:before{content:"\e730"}.el-icon-chat-line-round:before{content:"\e731"}.el-icon-chat-round:before{content:"\e732"}.el-icon-set-up:before{content:"\e733"}.el-icon-turn-off:before{content:"\e734"}.el-icon-open:before{content:"\e735"}.el-icon-connection:before{content:"\e736"}.el-icon-link:before{content:"\e737"}.el-icon-cpu:before{content:"\e738"}.el-icon-thumb:before{content:"\e739"}.el-icon-female:before{content:"\e73a"}.el-icon-male:before{content:"\e73b"}.el-icon-guide:before{content:"\e73c"}.el-icon-news:before{content:"\e73e"}.el-icon-price-tag:before{content:"\e744"}.el-icon-discount:before{content:"\e745"}.el-icon-wallet:before{content:"\e747"}.el-icon-coin:before{content:"\e748"}.el-icon-money:before{content:"\e749"}.el-icon-bank-card:before{content:"\e74a"}.el-icon-box:before{content:"\e74b"}.el-icon-present:before{content:"\e74c"}.el-icon-sell:before{content:"\e6d5"}.el-icon-sold-out:before{content:"\e6d6"}.el-icon-shopping-bag-2:before{content:"\e74d"}.el-icon-shopping-bag-1:before{content:"\e74e"}.el-icon-shopping-cart-2:before{content:"\e74f"}.el-icon-shopping-cart-1:before{content:"\e750"}.el-icon-shopping-cart-full:before{content:"\e751"}.el-icon-smoking:before{content:"\e752"}.el-icon-no-smoking:before{content:"\e753"}.el-icon-house:before{content:"\e754"}.el-icon-table-lamp:before{content:"\e755"}.el-icon-school:before{content:"\e756"}.el-icon-office-building:before{content:"\e757"}.el-icon-toilet-paper:before{content:"\e758"}.el-icon-notebook-2:before{content:"\e759"}.el-icon-notebook-1:before{content:"\e75a"}.el-icon-files:before{content:"\e75b"}.el-icon-collection:before{content:"\e75c"}.el-icon-receiving:before{content:"\e75d"}.el-icon-suitcase-1:before{content:"\e760"}.el-icon-suitcase:before{content:"\e761"}.el-icon-film:before{content:"\e763"}.el-icon-collection-tag:before{content:"\e765"}.el-icon-data-analysis:before{content:"\e766"}.el-icon-pie-chart:before{content:"\e767"}.el-icon-data-board:before{content:"\e768"}.el-icon-data-line:before{content:"\e76d"}.el-icon-reading:before{content:"\e769"}.el-icon-magic-stick:before{content:"\e76a"}.el-icon-coordinate:before{content:"\e76b"}.el-icon-mouse:before{content:"\e76c"}.el-icon-brush:before{content:"\e76e"}.el-icon-headset:before{content:"\e76f"}.el-icon-umbrella:before{content:"\e770"}.el-icon-scissors:before{content:"\e771"}.el-icon-mobile:before{content:"\e773"}.el-icon-attract:before{content:"\e774"}.el-icon-monitor:before{content:"\e775"}.el-icon-search:before{content:"\e778"}.el-icon-takeaway-box:before{content:"\e77a"}.el-icon-paperclip:before{content:"\e77d"}.el-icon-printer:before{content:"\e77e"}.el-icon-document-add:before{content:"\e782"}.el-icon-document:before{content:"\e785"}.el-icon-document-checked:before{content:"\e786"}.el-icon-document-copy:before{content:"\e787"}.el-icon-document-delete:before{content:"\e788"}.el-icon-document-remove:before{content:"\e789"}.el-icon-tickets:before{content:"\e78b"}.el-icon-folder-checked:before{content:"\e77f"}.el-icon-folder-delete:before{content:"\e780"}.el-icon-folder-remove:before{content:"\e781"}.el-icon-folder-add:before{content:"\e783"}.el-icon-folder-opened:before{content:"\e784"}.el-icon-folder:before{content:"\e78a"}.el-icon-edit-outline:before{content:"\e764"}.el-icon-edit:before{content:"\e78c"}.el-icon-date:before{content:"\e78e"}.el-icon-c-scale-to-original:before{content:"\e7c6"}.el-icon-view:before{content:"\e6ce"}.el-icon-loading:before{content:"\e6cf"}.el-icon-rank:before{content:"\e6d1"}.el-icon-sort-down:before{content:"\e7c4"}.el-icon-sort-up:before{content:"\e7c5"}.el-icon-sort:before{content:"\e6d2"}.el-icon-finished:before{content:"\e6cd"}.el-icon-refresh-left:before{content:"\e6c7"}.el-icon-refresh-right:before{content:"\e6c8"}.el-icon-refresh:before{content:"\e6d0"}.el-icon-video-play:before{content:"\e7c0"}.el-icon-video-pause:before{content:"\e7c1"}.el-icon-d-arrow-right:before{content:"\e6dc"}.el-icon-d-arrow-left:before{content:"\e6dd"}.el-icon-arrow-up:before{content:"\e6e1"}.el-icon-arrow-down:before{content:"\e6df"}.el-icon-arrow-right:before{content:"\e6e0"}.el-icon-arrow-left:before{content:"\e6de"}.el-icon-top-right:before{content:"\e6e7"}.el-icon-top-left:before{content:"\e6e8"}.el-icon-top:before{content:"\e6e6"}.el-icon-bottom:before{content:"\e6eb"}.el-icon-right:before{content:"\e6e9"}.el-icon-back:before{content:"\e6ea"}.el-icon-bottom-right:before{content:"\e6ec"}.el-icon-bottom-left:before{content:"\e6ed"}.el-icon-caret-top:before{content:"\e78f"}.el-icon-caret-bottom:before{content:"\e790"}.el-icon-caret-right:before{content:"\e791"}.el-icon-caret-left:before{content:"\e792"}.el-icon-d-caret:before{content:"\e79a"}.el-icon-share:before{content:"\e793"}.el-icon-menu:before{content:"\e798"}.el-icon-s-grid:before{content:"\e7a6"}.el-icon-s-check:before{content:"\e7a7"}.el-icon-s-data:before{content:"\e7a8"}.el-icon-s-opportunity:before{content:"\e7aa"}.el-icon-s-custom:before{content:"\e7ab"}.el-icon-s-claim:before{content:"\e7ad"}.el-icon-s-finance:before{content:"\e7ae"}.el-icon-s-comment:before{content:"\e7af"}.el-icon-s-flag:before{content:"\e7b0"}.el-icon-s-marketing:before{content:"\e7b1"}.el-icon-s-shop:before{content:"\e7b4"}.el-icon-s-open:before{content:"\e7b5"}.el-icon-s-management:before{content:"\e7b6"}.el-icon-s-ticket:before{content:"\e7b7"}.el-icon-s-release:before{content:"\e7b8"}.el-icon-s-home:before{content:"\e7b9"}.el-icon-s-promotion:before{content:"\e7ba"}.el-icon-s-operation:before{content:"\e7bb"}.el-icon-s-unfold:before{content:"\e7bc"}.el-icon-s-fold:before{content:"\e7a9"}.el-icon-s-platform:before{content:"\e7bd"}.el-icon-s-order:before{content:"\e7be"}.el-icon-s-cooperation:before{content:"\e7bf"}.el-icon-bell:before{content:"\e725"}.el-icon-message-solid:before{content:"\e799"}.el-icon-video-camera:before{content:"\e772"}.el-icon-video-camera-solid:before{content:"\e796"}.el-icon-camera:before{content:"\e779"}.el-icon-camera-solid:before{content:"\e79b"}.el-icon-download:before{content:"\e77c"}.el-icon-upload2:before{content:"\e77b"}.el-icon-upload:before{content:"\e7c3"}.el-icon-picture-outline-round:before{content:"\e75f"}.el-icon-picture-outline:before{content:"\e75e"}.el-icon-picture:before{content:"\e79f"}.el-icon-close:before{content:"\e6db"}.el-icon-check:before{content:"\e6da"}.el-icon-plus:before{content:"\e6d9"}.el-icon-minus:before{content:"\e6d8"}.el-icon-help:before{content:"\e73d"}.el-icon-s-help:before{content:"\e7b3"}.el-icon-circle-close:before{content:"\e78d"}.el-icon-circle-check:before{content:"\e720"}.el-icon-circle-plus-outline:before{content:"\e723"}.el-icon-remove-outline:before{content:"\e722"}.el-icon-zoom-out:before{content:"\e776"}.el-icon-zoom-in:before{content:"\e777"}.el-icon-error:before{content:"\e79d"}.el-icon-success:before{content:"\e79c"}.el-icon-circle-plus:before{content:"\e7a0"}.el-icon-remove:before{content:"\e7a2"}.el-icon-info:before{content:"\e7a1"}.el-icon-question:before{content:"\e7a4"}.el-icon-warning-outline:before{content:"\e6c9"}.el-icon-warning:before{content:"\e7a3"}.el-icon-goods:before{content:"\e7c2"}.el-icon-s-goods:before{content:"\e7b2"}.el-icon-star-off:before{content:"\e717"}.el-icon-star-on:before{content:"\e797"}.el-icon-more-outline:before{content:"\e6cc"}.el-icon-more:before{content:"\e794"}.el-icon-phone-outline:before{content:"\e6cb"}.el-icon-phone:before{content:"\e795"}.el-icon-user:before{content:"\e6e3"}.el-icon-user-solid:before{content:"\e7a5"}.el-icon-setting:before{content:"\e6ca"}.el-icon-s-tools:before{content:"\e7ac"}.el-icon-delete:before{content:"\e6d7"}.el-icon-delete-solid:before{content:"\e7c9"}.el-icon-eleme:before{content:"\e7c7"}.el-icon-platform-eleme:before{content:"\e7ca"}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-pagination{color:#303133;font-weight:700;padding:2px 5px;white-space:nowrap}.el-pagination:after,.el-pagination:before{content:"";display:table}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){box-sizing:border-box;display:inline-block;font-size:13px;height:28px;line-height:28px;min-width:35.5px;vertical-align:top}.el-pagination .el-input__inner{-moz-appearance:textfield;line-height:normal;text-align:center}.el-pagination .el-input__suffix{right:0;transform:scale(.8)}.el-pagination .el-select .el-input{margin:0 5px;width:100px}.el-pagination .el-select .el-input .el-input__inner{border-radius:3px;padding-right:25px}.el-pagination button{background:transparent;border:none;padding:0 6px}.el-pagination button:focus{outline:none}.el-pagination button:hover{color:#1a7efb}.el-pagination button:disabled{background-color:#fff;color:#afb3ba;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat;background-color:#fff;background-size:16px;color:#303133;cursor:pointer;margin:0}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#afb3ba;cursor:not-allowed}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;height:22px;line-height:22px;min-width:22px}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{color:#606266;font-weight:400;margin:0 10px 0 0}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#1a7efb}.el-pagination__total{color:#606266;font-weight:400;margin-right:10px}.el-pagination__jump{color:#606266;font-weight:400;margin-left:24px}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{border-radius:3px;box-sizing:border-box;height:28px;line-height:18px;margin:0 2px;padding:0 2px;text-align:center}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:#ededed;border-radius:2px;color:#606266;margin:0 5px;min-width:30px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .el-pager li.disabled{color:#afb3ba}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev:disabled{color:#afb3ba}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#1a7efb}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#1a7efb;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager{display:inline-block;font-size:0;list-style:none;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:top}.el-pager .more:before{line-height:30px}.el-pager li{background:#fff;box-sizing:border-box;cursor:pointer;display:inline-block;font-size:13px;height:28px;line-height:28px;margin:0;min-width:35.5px;padding:0 4px;text-align:center;vertical-align:top}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{color:#303133;line-height:28px}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#afb3ba}.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#1a7efb}.el-pager li.active{color:#1a7efb;cursor:default}.el-dialog{background:#fff;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;margin:0 auto 50px;position:relative;width:50%}.el-dialog.is-fullscreen{height:100%;margin-bottom:0;margin-top:0;overflow:auto;width:100%}.el-dialog__wrapper{bottom:0;left:0;margin:0;overflow:auto;position:fixed;right:0;top:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:16px;outline:none;padding:0;position:absolute;right:20px;top:20px}.el-dialog__headerbtn .el-dialog__close{color:#4b4c4d}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#1a7efb}.el-dialog__title{color:#303133;font-size:18px;line-height:24px}.el-dialog__body{color:#606266;font-size:14px;padding:30px 20px;word-break:break-all}.el-dialog__footer{box-sizing:border-box;padding:10px 20px 20px;text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{padding:25px 25px 30px;text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{animation:dialog-fade-in .3s}.dialog-fade-leave-active{animation:dialog-fade-out .3s}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.el-autocomplete{display:inline-block;position:relative}.el-autocomplete-suggestion{background-color:#fff;border:1px solid #e4e7ed;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0}.el-autocomplete-suggestion__wrap{box-sizing:border-box;max-height:280px;padding:10px 0}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{color:#606266;cursor:pointer;font-size:14px;line-height:34px;list-style:none;margin:0;overflow:hidden;padding:0 20px;text-overflow:ellipsis;white-space:nowrap}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{border-top:1px solid #000;margin-top:6px}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{color:#999;font-size:20px;height:100px;line-height:100px;text-align:center}.el-autocomplete-suggestion.is-loading li:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{color:#606266;display:inline-block;font-size:14px;position:relative}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{border-left:none;padding-left:5px;padding-right:5px;position:relative}.el-dropdown .el-dropdown__caret-button:before{background:hsla(0,0%,100%,.5);bottom:5px;content:"";display:block;left:0;position:absolute;top:5px;width:1px}.el-dropdown .el-dropdown__caret-button.el-button--default:before{background:hsla(220,4%,86%,.5)}.el-dropdown .el-dropdown__caret-button:hover:not(.is-disabled):before{bottom:0;top:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown [disabled]{color:#bbb;cursor:not-allowed}.el-dropdown-menu{background-color:#fff;border:1px solid #ebeef5;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);left:0;margin:5px 0;padding:10px 0;position:absolute;top:0;z-index:10}.el-dropdown-menu__item{color:#606266;cursor:pointer;font-size:14px;line-height:36px;list-style:none;margin:0;outline:none;padding:0 20px}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#e8f2ff;color:#4898fc}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{border-top:1px solid #ebeef5;margin-top:6px;position:relative}.el-dropdown-menu__item--divided:before{background-color:#fff;content:"";display:block;height:6px;margin:0 -20px}.el-dropdown-menu__item.is-disabled{color:#bbb;cursor:default;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{font-size:14px;line-height:30px;padding:0 17px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{font-size:13px;line-height:27px;padding:0 15px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{font-size:12px;line-height:24px;padding:0 10px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{background-color:#fff;border-right:1px solid #e6e6e6;list-style:none;margin:0;padding-left:0;position:relative}.el-menu:after,.el-menu:before{content:"";display:table}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{border-bottom:2px solid transparent;color:#909399;float:left;height:60px;line-height:60px;margin:0}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:none}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #1a7efb;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{border-bottom:2px solid transparent;color:#909399;height:60px;line-height:60px}.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{margin-left:8px;margin-top:-3px;position:static;vertical-align:middle}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;color:#909399;float:none;height:36px;line-height:36px;padding:0 10px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{color:#303133;outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #1a7efb;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;text-align:center;vertical-align:middle;width:24px}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{display:inline-block;height:0;overflow:hidden;visibility:hidden;width:0}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{border:1px solid #e4e7ed;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);left:100%;margin-left:5px;position:absolute;top:0;z-index:10}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu--popup{border:none;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);min-width:200px;padding:5px 0;z-index:100}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{box-sizing:border-box;color:#303133;cursor:pointer;font-size:14px;height:56px;line-height:56px;list-style:none;padding:0 20px;position:relative;transition:border-color .3s,background-color .3s,color .3s;white-space:nowrap}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{background-color:#e8f2ff;outline:none}.el-menu-item.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-menu-item [class^=el-icon-]{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:24px}.el-menu-item.is-active{color:#1a7efb}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{box-sizing:border-box;color:#303133;cursor:pointer;font-size:14px;height:56px;line-height:56px;list-style:none;padding:0 20px;position:relative;transition:border-color .3s,background-color .3s,color .3s;white-space:nowrap}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{background-color:#e8f2ff;outline:none}.el-submenu__title.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-submenu__title:hover{background-color:#e8f2ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;min-width:200px;padding:0 45px}.el-submenu__icon-arrow{font-size:12px;margin-top:-7px;position:absolute;right:20px;top:50%;transition:transform .3s}.el-submenu.is-active .el-submenu__title{border-bottom-color:#1a7efb}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{background:none!important;cursor:not-allowed;opacity:.25}.el-submenu [class^=el-icon-]{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:24px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{color:#909399;font-size:12px;line-height:normal;padding:7px 0 7px 20px}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{opacity:0;transition:.2s}.el-radio-group{display:inline-block;font-size:0;line-height:1;vertical-align:middle}.el-radio-button,.el-radio-button__inner{display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:#fff;border:1px solid #dadbdd;border-left:0;border-radius:0;box-sizing:border-box;color:#606266;cursor:pointer;font-size:14px;font-weight:500;line-height:1;margin:0;padding:12px 20px;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#1a7efb}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dadbdd;border-radius:7px 0 0 7px;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1a7efb;border-color:#1a7efb;box-shadow:-1px 0 0 0 #1a7efb;color:#fff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{background-color:#fff;background-image:none;border-color:#ebeef5;box-shadow:none;color:#afb3ba;cursor:not-allowed}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 7px 7px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:7px}.el-radio-button--medium .el-radio-button__inner{border-radius:0;font-size:14px;padding:10px 20px}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:13px;padding:8px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:8px 11px}.el-radio-button--mini .el-radio-button__inner{border-radius:0;font-size:12px;padding:7px 15px}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){box-shadow:0 0 2px 2px #1a7efb}.el-switch{align-items:center;display:inline-flex;font-size:14px;height:20px;line-height:20px;position:relative;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{color:#303133;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;height:20px;transition:.2s;vertical-align:middle}.el-switch__label.is-active{color:#1a7efb}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{display:inline-block;font-size:14px;line-height:1}.el-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.el-switch__core{background:#edeae9;border:1px solid #edeae9;border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-block;height:20px;margin:0;outline:none;position:relative;transition:border-color .3s,background-color .3s;vertical-align:middle;width:40px}.el-switch__core:after{background-color:#fff;border-radius:100%;content:"";height:16px;left:1px;position:absolute;top:1px;transition:all .3s;width:16px}.el-switch.is-checked .el-switch__core{background-color:#00b27f;border-color:#00b27f}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{background-color:#fff;border:1px solid #e4e7ed;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0;position:absolute;z-index:1001}.el-select-dropdown.is-multiple .el-select-dropdown__item{padding-right:40px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{background-color:#fff;color:#1a7efb}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e6da";font-family:element-icons;font-size:12px;font-weight:700;position:absolute;right:20px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{color:#999;font-size:14px;margin:0;padding:10px 0;text-align:center}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:6px 0}.el-select-dropdown__item{box-sizing:border-box;color:#606266;cursor:pointer;font-size:14px;height:34px;line-height:34px;overflow:hidden;padding:0 20px;position:relative;text-overflow:ellipsis;white-space:nowrap}.el-select-dropdown__item.is-disabled{color:#afb3ba;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#1a7efb;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{list-style:none;margin:0;padding:0;position:relative}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{background:#e4e7ed;bottom:12px;content:"";display:block;height:1px;left:20px;position:absolute;right:20px}.el-select-group__title{color:#4b4c4d;font-size:12px;line-height:30px;padding-left:20px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#afb3ba}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#1a7efb}.el-select .el-input .el-select__caret{color:#afb3ba;cursor:pointer;font-size:14px;transform:rotate(180deg);transition:transform .3s}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(0deg)}.el-select .el-input .el-select__caret.is-show-close{border-radius:100%;color:#afb3ba;font-size:14px;text-align:center;transform:rotate(180deg);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-select .el-input.is-focus .el-input__inner{border-color:#1a7efb}.el-select>.el-input{display:block}.el-select__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;color:#666;font-size:14px;height:28px;margin-left:15px;outline:none;padding:0}.el-select__input.is-mini{height:14px}.el-select__close{color:#afb3ba;cursor:pointer;font-size:14px;line-height:18px;position:absolute;right:25px;top:8px;z-index:1000}.el-select__close:hover{color:#909399}.el-select__tags{align-items:center;display:flex;flex-wrap:wrap;line-height:normal;position:absolute;top:50%;transform:translateY(-50%);white-space:normal;z-index:1}.el-select__tags-text{overflow:hidden;text-overflow:ellipsis}.el-select .el-tag{align-items:center;background-color:#f0f2f5;border-color:transparent;box-sizing:border-box;display:flex;margin:2px 0 2px 6px;max-width:100%}.el-select .el-tag__close.el-icon-close{background-color:#afb3ba;color:#fff;flex-shrink:0;top:0}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-select .el-tag__close.el-icon-close:before{display:block;transform:translateY(.5px)}.el-table{background-color:#fff;box-sizing:border-box;color:#606266;flex:1;font-size:14px;max-width:100%;overflow:hidden;position:relative;width:100%}.el-table__empty-block{align-items:center;display:flex;justify-content:center;min-height:60px;text-align:center;width:100%}.el-table__empty-text{color:#909399;line-height:60px;width:50%}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{color:#666;cursor:pointer;font-size:12px;height:20px;position:relative;transition:transform .2s ease-in-out}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{left:50%;margin-left:-5px;margin-top:-5px;position:absolute;top:50%}.el-table__expanded-cell{background-color:#fff}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-right:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th.el-table__cell{background:#f5f7fa}.el-table .el-table__cell{box-sizing:border-box;min-width:0;padding:12px 0;position:relative;text-align:left;text-overflow:ellipsis;vertical-align:middle}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{border-bottom-width:0;border-right-width:0;padding:0;width:15px}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table--medium .el-table__cell{padding:10px 0}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:8px 0}.el-table--mini{font-size:12px}.el-table--mini .el-table__cell{padding:6px 0}.el-table tr{background-color:#fff}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:1px solid #ececec}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:#fff;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table th.el-table__cell>.cell{box-sizing:border-box;display:inline-block;padding-left:10px;padding-right:10px;position:relative;vertical-align:middle;width:100%}.el-table th.el-table__cell>.cell.highlight{color:#1a7efb}.el-table th.el-table__cell.required>div:before{background:#ff4d51;border-radius:50%;content:"";display:inline-block;height:8px;margin-right:5px;vertical-align:middle;width:8px}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table .cell{box-sizing:border-box;line-height:23px;overflow:hidden;padding-left:10px;padding-right:10px;text-overflow:ellipsis;white-space:normal;word-break:break-all}.el-table .cell.el-tooltip{min-width:50px;white-space:nowrap}.el-table--border,.el-table--group{border:1px solid #ececec}.el-table--border:after,.el-table--group:after,.el-table:before{background-color:#ececec;content:"";position:absolute;z-index:1}.el-table--border:after,.el-table--group:after{height:100%;right:0;top:0;width:1px}.el-table:before{bottom:0;height:1px;left:0;width:100%}.el-table--border{border-bottom:none;border-right:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border .el-table__cell{border-right:1px solid #ececec}.el-table--border .el-table__cell:first-child .cell{padding-left:10px}.el-table--border th.el-table__cell,.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:1px solid #ececec}.el-table--hidden{visibility:hidden}.el-table__fixed,.el-table__fixed-right{box-shadow:0 0 10px rgba(0,0,0,.12);left:0;overflow-x:hidden;overflow-y:hidden;position:absolute;top:0}.el-table__fixed-right:before,.el-table__fixed:before{background-color:#ebeef5;bottom:0;content:"";height:1px;left:0;position:absolute;width:100%;z-index:4}.el-table__fixed-right-patch{background-color:#fff;border-bottom:1px solid #ececec;position:absolute;right:0;top:-1px}.el-table__fixed-right{left:auto;right:0;top:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{left:0;position:absolute;top:0;z-index:3}.el-table__fixed-footer-wrapper{bottom:0;left:0;position:absolute;z-index:3}.el-table__fixed-footer-wrapper tbody td.el-table__cell{background-color:#f5f7fa;border-top:1px solid #ececec;color:#606266}.el-table__fixed-body-wrapper{left:0;overflow:hidden;position:absolute;top:37px;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td.el-table__cell{border-top:1px solid #ececec}.el-table__body,.el-table__footer,.el-table__header{border-collapse:separate;table-layout:fixed}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ececec}.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ececec}.el-table .caret-wrapper{align-items:center;cursor:pointer;display:inline-flex;flex-direction:column;height:34px;overflow:initial;position:relative;vertical-align:middle;width:24px}.el-table .sort-caret{border:5px solid transparent;height:0;left:7px;position:absolute;width:0}.el-table .sort-caret.ascending{border-bottom-color:#afb3ba;top:5px}.el-table .sort-caret.descending{border-top-color:#afb3ba;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#1a7efb}.el-table .descending .sort-caret.descending{border-top-color:#1a7efb}.el-table .hidden-columns{position:absolute;visibility:hidden;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell,.el-table--striped .el-table__body tr.el-table__row--striped.selection-row td.el-table__cell{background-color:#e8f2ff}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.selection-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row.selection-row>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:#f5f7fa}.el-table__body tr.current-row>td.el-table__cell,.el-table__body tr.selection-row>td.el-table__cell{background-color:#e8f2ff}.el-table__column-resize-proxy{border-left:1px solid #ececec;bottom:0;left:200px;position:absolute;top:0;width:0;z-index:10}.el-table__column-filter-trigger{cursor:pointer;display:inline-block;line-height:34px}.el-table__column-filter-trigger i{color:#4b4c4d;font-size:12px;transform:scale(.75)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;height:20px;line-height:20px;margin-right:3px;text-align:center;width:20px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{background-color:#fff;border:1px solid #ebeef5;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-table-filter__list{list-style:none;margin:0;min-width:100px;padding:5px 0}.el-table-filter__list-item{cursor:pointer;font-size:14px;line-height:36px;padding:0 10px}.el-table-filter__list-item:hover{background-color:#e8f2ff;color:#4898fc}.el-table-filter__list-item.is-active{background-color:#1a7efb;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:transparent;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-table-filter__bottom button:hover{color:#1a7efb}.el-table-filter__bottom button:focus{outline:none}.el-table-filter__bottom button.is-disabled{color:#afb3ba;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-bottom:8px;margin-left:5px;margin-right:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#f2f6fc}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table.is-week-mode .el-date-table__row.current div{background-color:#f2f6fc}.el-date-table td{box-sizing:border-box;cursor:pointer;height:30px;padding:4px 0;position:relative;text-align:center;width:32px}.el-date-table td div{box-sizing:border-box;height:30px;padding:3px 0}.el-date-table td span{border-radius:50%;display:block;height:24px;left:50%;line-height:24px;margin:0 auto;position:absolute;transform:translateX(-50%);width:24px}.el-date-table td.next-month,.el-date-table td.prev-month{color:#afb3ba}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#1a7efb;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#1a7efb}.el-date-table td.in-range div,.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-date-table td.current:not(.disabled) span{background-color:#1a7efb;color:#fff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#1a7efb}.el-date-table td.start-date div{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table td.end-date div{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table td.disabled div{background-color:#f5f7fa;color:#afb3ba;cursor:not-allowed;opacity:1}.el-date-table td.selected div{background-color:#f2f6fc;border-radius:15px;margin-left:5px;margin-right:5px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#1a7efb;border-radius:15px;color:#fff}.el-date-table td.week{color:#606266;font-size:80%}.el-date-table th{border-bottom:1px solid #ebeef5;color:#606266;font-weight:400;padding:5px}.el-month-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-month-table td{cursor:pointer;padding:8px 0;text-align:center}.el-month-table td div{box-sizing:border-box;height:48px;padding:6px 0}.el-month-table td.today .cell{color:#1a7efb;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;color:#afb3ba;cursor:not-allowed}.el-month-table td.disabled .cell:hover{color:#afb3ba}.el-month-table td .cell{border-radius:18px;color:#606266;display:block;height:36px;line-height:36px;margin:0 auto;width:60px}.el-month-table td .cell:hover{color:#1a7efb}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{background-color:#1a7efb;color:#fff}.el-month-table td.start-date div{border-bottom-left-radius:24px;border-top-left-radius:24px}.el-month-table td.end-date div{border-bottom-right-radius:24px;border-top-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#1a7efb}.el-year-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{cursor:pointer;padding:20px 3px;text-align:center}.el-year-table td.today .cell{color:#1a7efb;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;color:#afb3ba;cursor:not-allowed}.el-year-table td.disabled .cell:hover{color:#afb3ba}.el-year-table td .cell{color:#606266;display:block;height:32px;line-height:32px;margin:0 auto;width:48px}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#1a7efb}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{height:28px;position:relative;text-align:center}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{box-sizing:border-box;float:left;margin:0;padding:16px;width:50%}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{border-bottom:1px solid #e4e4e4;box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-range-picker__time-header>.el-icon-arrow-right{color:#303133;display:table-cell;font-size:20px;vertical-align:middle}.el-date-range-picker__time-picker-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-range-picker__time-picker-wrap .el-picker-panel{background:#fff;position:absolute;right:0;top:13px;z-index:1}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-picker__time-header{border-bottom:1px solid #e4e4e4;box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{border-bottom:1px solid #ebeef5;margin-bottom:0;padding-bottom:12px}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{color:#606266;cursor:pointer;font-size:16px;font-weight:500;line-height:22px;padding:0 5px;text-align:center}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#1a7efb}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{cursor:pointer;float:left;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{margin:0;max-height:200px}.time-select-item{font-size:14px;line-height:20px;padding:8px 10px}.time-select-item.selected:not(.disabled){color:#1a7efb;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;cursor:pointer;font-weight:700}.el-date-editor{display:inline-block;position:relative;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{color:#afb3ba;float:left;font-size:14px;line-height:32px;margin-left:-5px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;color:#606266;display:inline-block;font-size:14px;height:100%;margin:0;outline:none;padding:0;text-align:center;width:39%}.el-date-editor .el-range-input::-moz-placeholder{color:#afb3ba}.el-date-editor .el-range-input::placeholder{color:#afb3ba}.el-date-editor .el-range-separator{color:#303133;display:inline-block;font-size:14px;height:100%;line-height:32px;margin:0;padding:0 5px;text-align:center;width:5%}.el-date-editor .el-range__close-icon{color:#afb3ba;display:inline-block;float:right;font-size:14px;line-height:32px;width:25px}.el-range-editor.el-input__inner{align-items:center;display:inline-flex;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#1a7efb}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{font-size:14px;line-height:28px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{font-size:13px;line-height:24px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{font-size:12px;line-height:20px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#afb3ba;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#afb3ba;cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:#afb3ba}.el-range-editor.is-disabled input::placeholder{color:#afb3ba}.el-range-editor.is-disabled .el-range-separator{color:#afb3ba}.el-picker-panel{background:#fff;border:1px solid #e4e7ed;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);color:#606266;line-height:30px;margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{clear:both;content:"";display:table}.el-picker-panel__content{margin:15px;position:relative}.el-picker-panel__footer{background-color:#fff;border-top:1px solid #e4e4e4;font-size:0;padding:4px;position:relative;text-align:right}.el-picker-panel__shortcut{background-color:transparent;border:0;color:#606266;cursor:pointer;display:block;font-size:14px;line-height:28px;outline:none;padding-left:12px;text-align:left;width:100%}.el-picker-panel__shortcut:hover{color:#1a7efb}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#1a7efb}.el-picker-panel__btn{background-color:transparent;border:1px solid #dcdcdc;border-radius:2px;color:#333;cursor:pointer;font-size:12px;line-height:24px;outline:none;padding:0 20px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{background:transparent;border:0;color:#303133;cursor:pointer;font-size:12px;margin-top:8px;outline:none}.el-picker-panel__icon-btn:hover{color:#1a7efb}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{background-color:#fff;border-right:1px solid #e4e4e4;bottom:0;box-sizing:border-box;overflow:auto;padding-top:6px;position:absolute;top:0;width:110px}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{display:inline-block;max-height:190px;overflow:auto;position:relative;vertical-align:top;width:50%}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;overflow:hidden;text-align:center}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{color:#909399;cursor:pointer;font-size:12px;height:30px;left:0;line-height:30px;position:absolute;text-align:center;width:100%;z-index:1}.el-time-spinner__arrow:hover{color:#1a7efb}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__list{list-style:none;margin:0}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;height:80px;width:100%}.el-time-spinner__item{color:#606266;font-size:12px;height:32px;line-height:32px}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#afb3ba;cursor:not-allowed}.el-time-panel{background-color:#fff;border:1px solid #e4e7ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:content-box;left:0;margin:5px 0;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:180px;z-index:1000}.el-time-panel__content{font-size:0;overflow:hidden;position:relative}.el-time-panel__content:after,.el-time-panel__content:before{border-bottom:1px solid #e4e7ed;border-top:1px solid #e4e7ed;box-sizing:border-box;content:"";height:32px;left:0;margin-top:-15px;padding-top:6px;position:absolute;right:0;text-align:left;top:50%;z-index:-1}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{margin-left:12%;margin-right:12%;padding-left:50%}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;box-sizing:border-box;height:36px;line-height:25px;padding:4px;text-align:right}.el-time-panel__btn{background-color:transparent;border:none;color:#303133;cursor:pointer;font-size:12px;line-height:28px;margin:0 5px;outline:none;padding:0 5px}.el-time-panel__btn.confirm{color:#1a7efb;font-weight:800}.el-time-range-picker{overflow:visible;width:354px}.el-time-range-picker__content{padding:10px;position:relative;text-align:center}.el-time-range-picker__cell{box-sizing:border-box;display:inline-block;margin:0;padding:4px 7px 7px;width:50%}.el-time-range-picker__header{font-size:14px;margin-bottom:5px;text-align:center}.el-time-range-picker__body{border:1px solid #e4e7ed;border-radius:2px}.el-popover{background:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);color:#606266;font-size:14px;line-height:1.4;min-width:150px;padding:12px;position:absolute;text-align:justify;word-break:break-all;z-index:2000}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.v-modal-enter{animation:v-modal-in .2s ease}.v-modal-leave{animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:#000;height:100%;left:0;opacity:.5;position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-message-box{backface-visibility:hidden;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);display:inline-block;font-size:18px;overflow:hidden;padding-bottom:10px;text-align:left;vertical-align:middle;width:420px}.el-message-box__wrapper{bottom:0;left:0;position:fixed;right:0;text-align:center;top:0}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.el-message-box__header{padding:15px 15px 10px;position:relative}.el-message-box__title{color:#303133;font-size:18px;line-height:1;margin-bottom:0;padding-left:0}.el-message-box__headerbtn{background:transparent;border:none;cursor:pointer;font-size:16px;outline:none;padding:0;position:absolute;right:15px;top:15px}.el-message-box__headerbtn .el-message-box__close{color:#4b4c4d}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#1a7efb}.el-message-box__content{color:#606266;font-size:14px;padding:10px 15px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#ff6154}.el-message-box__status{font-size:24px!important;position:absolute;top:50%;transform:translateY(-50%)}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#00b27f}.el-message-box__status.el-icon-info{color:#4b4c4d}.el-message-box__status.el-icon-warning{color:#fcbe2d}.el-message-box__status.el-icon-error{color:#ff6154}.el-message-box__message{margin:0}.el-message-box__message p{line-height:24px;margin:0}.el-message-box__errormsg{color:#ff6154;font-size:12px;margin-top:2px;min-height:18px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{align-items:center;display:flex;justify-content:center;position:relative}.el-message-box--center .el-message-box__status{padding-right:5px;position:relative;text-align:center;top:auto;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{animation:msgbox-fade-out .3s}@keyframes msgbox-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes msgbox-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{content:"";display:table}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{color:#afb3ba;font-weight:700;margin:0 9px}.el-breadcrumb__separator[class*=icon]{font-weight:400;margin:0 6px}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{color:#303133;font-weight:700;text-decoration:none;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#1a7efb;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{color:#606266;cursor:text;font-weight:400}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{display:inline-block;float:none;padding:0 0 10px;text-align:left}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{display:inline-block;float:none}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{content:"";display:table}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini.el-form-item{margin-bottom:18px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{box-sizing:border-box;color:#606266;float:left;font-size:14px;line-height:40px;padding:0 12px 0 0;text-align:right;vertical-align:middle}.el-form-item__content{font-size:14px;line-height:40px;position:relative}.el-form-item__content:after,.el-form-item__content:before{content:"";display:table}.el-form-item__content:after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#ff6154;font-size:12px;left:0;line-height:1;padding-top:4px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{color:#ff6154;content:"*";margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#ff6154}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#ff6154}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{margin:0 0 15px;padding:0;position:relative}.el-tabs__active-bar{background-color:#1a7efb;bottom:0;height:2px;left:0;list-style:none;position:absolute;transition:transform .3s cubic-bezier(.645,.045,.355,1);z-index:1}.el-tabs__new-tab{border:1px solid #d3dce6;border-radius:3px;color:#d3dce6;cursor:pointer;float:right;font-size:12px;height:18px;line-height:18px;margin:12px 0 9px 10px;text-align:center;transition:all .15s;width:18px}.el-tabs__new-tab .el-icon-plus{transform:scale(.8)}.el-tabs__new-tab:hover{color:#1a7efb}.el-tabs__nav-wrap{margin-bottom:-1px;overflow:hidden;position:relative}.el-tabs__nav-wrap:after{background-color:#e4e7ed;bottom:0;content:"";height:2px;left:0;position:absolute;width:100%;z-index:1}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{color:#909399;cursor:pointer;font-size:12px;line-height:44px;position:absolute}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{float:left;position:relative;transition:transform .3s;white-space:nowrap;z-index:2}.el-tabs__nav.is-stretch{display:flex;min-width:100%}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{box-sizing:border-box;color:#303133;display:inline-block;font-size:14px;font-weight:500;height:40px;line-height:40px;list-style:none;padding:0 20px;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus.is-active.is-focus:not(:active){border-radius:3px;box-shadow:inset 0 0 2px 2px #1a7efb}.el-tabs__item .el-icon-close{border-radius:50%;margin-left:5px;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1)}.el-tabs__item .el-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .el-icon-close:hover{background-color:#afb3ba;color:#fff}.el-tabs__item.is-active{color:#1a7efb}.el-tabs__item:hover{color:#1a7efb;cursor:pointer}.el-tabs__item.is-disabled{color:#afb3ba;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{font-size:12px;height:14px;line-height:15px;overflow:hidden;position:relative;right:-2px;top:-1px;transform-origin:100% 50%;vertical-align:middle;width:0}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close{width:14px}.el-tabs--border-card{background:#fff;border:1px solid #dadbdd;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:1px solid transparent;color:#909399;margin-top:-1px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:#fff;border-left-color:#dadbdd;border-right-color:#dadbdd;color:#1a7efb}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#1a7efb}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#afb3ba}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dadbdd}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-bottom:0;margin-top:-1px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{bottom:auto;height:auto;top:0;width:2px}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{cursor:pointer;height:30px;line-height:30px;text-align:center;width:100%}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{bottom:auto;height:100%;top:0;width:2px}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border:1px solid #e4e7ed;border-bottom:none;border-left:none;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:none;border-right:1px solid #fff;border-top:1px solid #e4e7ed}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid #e4e7ed;border-radius:4px 0 0 4px;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:none;border-left:1px solid #fff;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid #e4e7ed;border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter .3s}.slideInRight-leave{animation:slideInRight-leave .3s;left:0;position:absolute;right:0}.slideInLeft-enter{animation:slideInLeft-enter .3s}.slideInLeft-leave{animation:slideInLeft-leave .3s;left:0;position:absolute;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform:translateX(100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInRight-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(100%);transform-origin:0 0}}@keyframes slideInLeft-enter{0%{opacity:0;transform:translateX(-100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInLeft-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(-100%);transform-origin:0 0}}.el-tree{background:#fff;color:#606266;cursor:default;position:relative}.el-tree__empty-block{height:100%;min-height:60px;position:relative;text-align:center;width:100%}.el-tree__empty-text{color:#909399;font-size:14px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.el-tree__drop-indicator{background-color:#1a7efb;height:1px;left:0;position:absolute;right:0}.el-tree-node{outline:none;white-space:nowrap}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#1a7efb;color:#fff}.el-tree-node__content{align-items:center;cursor:pointer;display:flex;height:26px}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#f5f7fa}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{color:#afb3ba;cursor:pointer;font-size:12px;transform:rotate(0deg);transition:transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{color:#afb3ba;font-size:14px;margin-right:8px}.el-tree-node>.el-tree-node__children{background-color:transparent;overflow:hidden}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#edf5ff}.el-alert{align-items:center;background-color:#fff;border-radius:7px;box-sizing:border-box;display:flex;margin:0;opacity:1;overflow:hidden;padding:8px 16px;position:relative;transition:opacity .2s;width:100%}.el-alert.is-light .el-alert__closebtn{color:#afb3ba}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{justify-content:center}.el-alert--success.is-light{background-color:#e6ffeb;color:#00b27f}.el-alert--success.is-light .el-alert__description{color:#00b27f}.el-alert--success.is-dark{background-color:#00b27f;color:#fff}.el-alert--info.is-light{background-color:#ededed;color:#4b4c4d}.el-alert--info.is-dark{background-color:#4b4c4d;color:#fff}.el-alert--info .el-alert__description{color:#4b4c4d}.el-alert--warning.is-light{background-color:#fff9ea;color:#fcbe2d}.el-alert--warning.is-light .el-alert__description{color:#fcbe2d}.el-alert--warning.is-dark{background-color:#fcbe2d;color:#fff}.el-alert--error.is-light{background-color:#ffefee;color:#ff6154}.el-alert--error.is-light .el-alert__description{color:#ff6154}.el-alert--error.is-dark{background-color:#ff6154;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{cursor:pointer;font-size:12px;opacity:1;position:absolute;right:15px;top:12px}.el-alert__closebtn.is-customed{font-size:13px;font-style:normal;top:9px}.el-alert-fade-enter,.el-alert-fade-leave-active{opacity:0}.el-notification{background-color:#fff;border:1px solid #ebeef5;border-radius:8px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;display:flex;overflow:hidden;padding:14px 26px 14px 13px;position:fixed;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;width:330px}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{color:#303133;font-size:16px;font-weight:700;margin:0}.el-notification__content{color:#606266;font-size:14px;line-height:21px;margin:6px 0 0;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{font-size:24px;height:24px;width:24px}.el-notification__closeBtn{color:#909399;cursor:pointer;font-size:16px;position:absolute;right:15px;top:18px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#00b27f}.el-notification .el-icon-error{color:#ff6154}.el-notification .el-icon-info{color:#4b4c4d}.el-notification .el-icon-warning{color:#fcbe2d}.el-notification-fade-enter.right{right:0;transform:translateX(100%)}.el-notification-fade-enter.left{left:0;transform:translateX(-100%)}.el-notification-fade-leave-active{opacity:0}.el-input-number{display:inline-block;line-height:38px;position:relative;width:180px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px;height:auto;position:absolute;text-align:center;top:1px;width:40px;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#1a7efb}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#1a7efb}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#afb3ba;cursor:not-allowed}.el-input-number__increase{border-left:1px solid #dadbdd;border-radius:0 7px 7px 0;right:1px}.el-input-number__decrease{border-radius:7px 0 0 7px;border-right:1px solid #dadbdd;left:1px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{line-height:34px;width:200px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{font-size:14px;width:36px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{line-height:30px;width:130px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{font-size:13px;width:32px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{line-height:26px;width:130px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{font-size:12px;width:28px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-bottom:1px solid #dadbdd;border-radius:0 7px 0 0}.el-input-number.is-controls-right .el-input-number__decrease{border-left:1px solid #dadbdd;border-radius:0 0 7px 0;border-right:none;bottom:1px;left:auto;right:1px;top:auto}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{word-wrap:break-word;border-radius:4px;font-size:12px;line-height:1.2;min-width:10px;padding:10px;position:absolute;z-index:2000}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{border-color:transparent;border-style:solid;display:block;height:0;position:absolute;width:0}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{border-width:5px;content:" "}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{border-bottom-width:0;border-top-color:#303133;bottom:-6px}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{border-bottom-width:0;border-top-color:#303133;bottom:1px;margin-left:-5px}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133;border-top-width:0;top:-6px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#303133;border-top-width:0;margin-left:-5px;top:1px}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{border-left-width:0;border-right-color:#303133;left:-6px}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{border-left-width:0;border-right-color:#303133;bottom:-5px;left:1px}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{border-left-color:#303133;border-right-width:0;right:-6px}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{border-left-color:#303133;border-right-width:0;bottom:-5px;margin-left:-5px;right:1px}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-slider:after,.el-slider:before{content:"";display:table}.el-slider:after{clear:both}.el-slider__runway{background-color:#e4e7ed;border-radius:3px;cursor:pointer;height:6px;margin:16px 0;position:relative;vertical-align:middle;width:100%}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#afb3ba}.el-slider__runway.disabled .el-slider__button{border-color:#afb3ba}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{background-color:#1a7efb;border-bottom-left-radius:3px;border-top-left-radius:3px;height:6px;position:absolute}.el-slider__button-wrapper{background-color:transparent;height:36px;line-height:normal;position:absolute;text-align:center;top:-15px;transform:translateX(-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:36px;z-index:1001}.el-slider__button-wrapper:after{content:"";height:100%}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{display:inline-block;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{background-color:#fff;border:2px solid #1a7efb;border-radius:50%;height:16px;transition:.2s;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:16px}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{background-color:#fff;border-radius:100%;height:6px;position:absolute;transform:translateX(-50%);width:6px}.el-slider__marks{height:100%;left:12px;top:0;width:18px}.el-slider__marks-text{color:#4b4c4d;font-size:14px;margin-top:15px;position:absolute;transform:translateX(-50%)}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{height:100%;margin:0 16px;width:6px}.el-slider.is-vertical .el-slider__bar{border-radius:0 0 3px 3px;height:auto;width:6px}.el-slider.is-vertical .el-slider__button-wrapper{left:-15px;top:auto;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{bottom:22px;float:none;margin-top:15px;overflow:visible;position:absolute;width:36px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{padding-left:5px;padding-right:5px;text-align:center}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{border:1px solid #dadbdd;box-sizing:border-box;line-height:20px;margin-top:-1px;top:32px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{border-bottom-left-radius:7px;right:18px;width:18px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{border-bottom-right-radius:7px;width:19px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#afb3ba}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#1a7efb}.el-slider.is-vertical .el-slider__marks-text{left:15px;margin-top:0;transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:hsla(0,0%,100%,.9);bottom:0;left:0;margin:0;position:absolute;right:0;top:0;transition:opacity .3s;z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{margin-top:-21px;position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:#1a7efb;font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;height:42px;width:42px}.el-loading-spinner .path{stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#1a7efb;stroke-linecap:round;animation:loading-dash 1.5s ease-in-out infinite}.el-loading-spinner i{color:#1a7efb}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{box-sizing:border-box;position:relative}.el-row:after,.el-row:before{content:"";display:table}.el-row:after{clear:both}.el-row--flex{display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{justify-content:center}.el-row--flex.is-justify-end{justify-content:flex-end}.el-row--flex.is-justify-space-between{justify-content:space-between}.el-row--flex.is-justify-space-around{justify-content:space-around}.el-row--flex.is-align-top{align-items:flex-start}.el-row--flex.is-align-middle{align-items:center}.el-row--flex.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box;float:left}.el-col-0{display:none;width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{left:0;position:relative}.el-col-1{width:4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{left:4.1666666667%;position:relative}.el-col-2{width:8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{left:8.3333333333%;position:relative}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{left:12.5%;position:relative}.el-col-4{width:16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{left:16.6666666667%;position:relative}.el-col-5{width:20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{left:20.8333333333%;position:relative}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{left:25%;position:relative}.el-col-7{width:29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{left:29.1666666667%;position:relative}.el-col-8{width:33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{left:33.3333333333%;position:relative}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{left:37.5%;position:relative}.el-col-10{width:41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{left:41.6666666667%;position:relative}.el-col-11{width:45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{left:45.8333333333%;position:relative}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%;position:relative}.el-col-13{width:54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{left:54.1666666667%;position:relative}.el-col-14{width:58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{left:58.3333333333%;position:relative}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{left:62.5%;position:relative}.el-col-16{width:66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{left:66.6666666667%;position:relative}.el-col-17{width:70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{left:70.8333333333%;position:relative}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{left:75%;position:relative}.el-col-19{width:79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{left:79.1666666667%;position:relative}.el-col-20{width:83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{left:83.3333333333%;position:relative}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{left:87.5%;position:relative}.el-col-22{width:91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{left:91.6666666667%;position:relative}.el-col-23{width:95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{left:95.8333333333%;position:relative}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{left:100%;position:relative}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{left:0;position:relative}.el-col-xs-1{width:4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{left:4.1666666667%;position:relative}.el-col-xs-2{width:8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{left:8.3333333333%;position:relative}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{left:12.5%;position:relative}.el-col-xs-4{width:16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{left:16.6666666667%;position:relative}.el-col-xs-5{width:20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{left:20.8333333333%;position:relative}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{left:25%;position:relative}.el-col-xs-7{width:29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{left:29.1666666667%;position:relative}.el-col-xs-8{width:33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{left:33.3333333333%;position:relative}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{left:37.5%;position:relative}.el-col-xs-10{width:41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{left:41.6666666667%;position:relative}.el-col-xs-11{width:45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{left:45.8333333333%;position:relative}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{left:50%;position:relative}.el-col-xs-13{width:54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{left:54.1666666667%;position:relative}.el-col-xs-14{width:58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{left:58.3333333333%;position:relative}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{left:62.5%;position:relative}.el-col-xs-16{width:66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{left:66.6666666667%;position:relative}.el-col-xs-17{width:70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{left:70.8333333333%;position:relative}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{left:75%;position:relative}.el-col-xs-19{width:79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{left:79.1666666667%;position:relative}.el-col-xs-20{width:83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{left:83.3333333333%;position:relative}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{left:87.5%;position:relative}.el-col-xs-22{width:91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{left:91.6666666667%;position:relative}.el-col-xs-23{width:95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{left:95.8333333333%;position:relative}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{left:100%;position:relative}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{left:0;position:relative}.el-col-sm-1{width:4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{left:4.1666666667%;position:relative}.el-col-sm-2{width:8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{left:8.3333333333%;position:relative}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{left:12.5%;position:relative}.el-col-sm-4{width:16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{left:16.6666666667%;position:relative}.el-col-sm-5{width:20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{left:20.8333333333%;position:relative}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{left:25%;position:relative}.el-col-sm-7{width:29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{left:29.1666666667%;position:relative}.el-col-sm-8{width:33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{left:33.3333333333%;position:relative}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{left:37.5%;position:relative}.el-col-sm-10{width:41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{left:41.6666666667%;position:relative}.el-col-sm-11{width:45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{left:45.8333333333%;position:relative}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{left:50%;position:relative}.el-col-sm-13{width:54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{left:54.1666666667%;position:relative}.el-col-sm-14{width:58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{left:58.3333333333%;position:relative}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{left:62.5%;position:relative}.el-col-sm-16{width:66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{left:66.6666666667%;position:relative}.el-col-sm-17{width:70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{left:70.8333333333%;position:relative}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{left:75%;position:relative}.el-col-sm-19{width:79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{left:79.1666666667%;position:relative}.el-col-sm-20{width:83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{left:83.3333333333%;position:relative}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{left:87.5%;position:relative}.el-col-sm-22{width:91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{left:91.6666666667%;position:relative}.el-col-sm-23{width:95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{left:95.8333333333%;position:relative}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{left:100%;position:relative}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{left:0;position:relative}.el-col-md-1{width:4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{left:4.1666666667%;position:relative}.el-col-md-2{width:8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{left:8.3333333333%;position:relative}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{left:12.5%;position:relative}.el-col-md-4{width:16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{left:16.6666666667%;position:relative}.el-col-md-5{width:20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{left:20.8333333333%;position:relative}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{left:25%;position:relative}.el-col-md-7{width:29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{left:29.1666666667%;position:relative}.el-col-md-8{width:33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{left:33.3333333333%;position:relative}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{left:37.5%;position:relative}.el-col-md-10{width:41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{left:41.6666666667%;position:relative}.el-col-md-11{width:45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{left:45.8333333333%;position:relative}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{left:50%;position:relative}.el-col-md-13{width:54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{left:54.1666666667%;position:relative}.el-col-md-14{width:58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{left:58.3333333333%;position:relative}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{left:62.5%;position:relative}.el-col-md-16{width:66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{left:66.6666666667%;position:relative}.el-col-md-17{width:70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{left:70.8333333333%;position:relative}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{left:75%;position:relative}.el-col-md-19{width:79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{left:79.1666666667%;position:relative}.el-col-md-20{width:83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{left:83.3333333333%;position:relative}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{left:87.5%;position:relative}.el-col-md-22{width:91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{left:91.6666666667%;position:relative}.el-col-md-23{width:95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{left:95.8333333333%;position:relative}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{left:100%;position:relative}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{left:0;position:relative}.el-col-lg-1{width:4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{left:4.1666666667%;position:relative}.el-col-lg-2{width:8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{left:8.3333333333%;position:relative}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{left:12.5%;position:relative}.el-col-lg-4{width:16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{left:16.6666666667%;position:relative}.el-col-lg-5{width:20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{left:20.8333333333%;position:relative}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{left:25%;position:relative}.el-col-lg-7{width:29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{left:29.1666666667%;position:relative}.el-col-lg-8{width:33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{left:33.3333333333%;position:relative}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{left:37.5%;position:relative}.el-col-lg-10{width:41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{left:41.6666666667%;position:relative}.el-col-lg-11{width:45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{left:45.8333333333%;position:relative}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{left:50%;position:relative}.el-col-lg-13{width:54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{left:54.1666666667%;position:relative}.el-col-lg-14{width:58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{left:58.3333333333%;position:relative}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{left:62.5%;position:relative}.el-col-lg-16{width:66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{left:66.6666666667%;position:relative}.el-col-lg-17{width:70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{left:70.8333333333%;position:relative}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{left:75%;position:relative}.el-col-lg-19{width:79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{left:79.1666666667%;position:relative}.el-col-lg-20{width:83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{left:83.3333333333%;position:relative}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{left:87.5%;position:relative}.el-col-lg-22{width:91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{left:91.6666666667%;position:relative}.el-col-lg-23{width:95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{left:95.8333333333%;position:relative}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{left:100%;position:relative}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{left:0;position:relative}.el-col-xl-1{width:4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{left:4.1666666667%;position:relative}.el-col-xl-2{width:8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{left:8.3333333333%;position:relative}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{left:12.5%;position:relative}.el-col-xl-4{width:16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{left:16.6666666667%;position:relative}.el-col-xl-5{width:20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{left:20.8333333333%;position:relative}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{left:25%;position:relative}.el-col-xl-7{width:29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{left:29.1666666667%;position:relative}.el-col-xl-8{width:33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{left:33.3333333333%;position:relative}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{left:37.5%;position:relative}.el-col-xl-10{width:41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{left:41.6666666667%;position:relative}.el-col-xl-11{width:45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{left:45.8333333333%;position:relative}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{left:50%;position:relative}.el-col-xl-13{width:54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{left:54.1666666667%;position:relative}.el-col-xl-14{width:58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{left:58.3333333333%;position:relative}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{left:62.5%;position:relative}.el-col-xl-16{width:66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{left:66.6666666667%;position:relative}.el-col-xl-17{width:70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{left:70.8333333333%;position:relative}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{left:75%;position:relative}.el-col-xl-19{width:79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{left:79.1666666667%;position:relative}.el-col-xl-20{width:83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{left:83.3333333333%;position:relative}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{left:87.5%;position:relative}.el-col-xl-22{width:91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{left:91.6666666667%;position:relative}.el-col-xl-23{width:95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{left:95.8333333333%;position:relative}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{left:100%;position:relative}}.el-upload{cursor:pointer;display:inline-block;outline:none;text-align:center}.el-upload__input{display:none}.el-upload__tip{color:#606266;font-size:12px;margin-top:7px}.el-upload iframe{filter:alpha(opacity=0);left:0;opacity:0;position:absolute;top:0;z-index:-1}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;box-sizing:border-box;cursor:pointer;height:148px;line-height:146px;vertical-align:top;width:148px}.el-upload--picture-card i{color:#8c939d;font-size:28px}.el-upload--picture-card:hover,.el-upload:focus{border-color:#1a7efb;color:#1a7efb}.el-upload:focus .el-upload-dragger{border-color:#1a7efb}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;box-sizing:border-box;cursor:pointer;height:180px;overflow:hidden;position:relative;text-align:center;width:360px}.el-upload-dragger .el-icon-upload{color:#afb3ba;font-size:67px;line-height:50px;margin:40px 0 16px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dadbdd;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#1a7efb;font-style:normal}.el-upload-dragger:hover{border-color:#1a7efb}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #1a7efb}.el-upload-list{list-style:none;margin:0;padding:0}.el-upload-list__item{border-radius:4px;box-sizing:border-box;color:#606266;font-size:14px;line-height:1.8;margin-top:5px;position:relative;transition:all .5s cubic-bezier(.55,0,.1,1);width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#00b27f}.el-upload-list__item .el-icon-close{color:#606266;cursor:pointer;display:none;opacity:.75;position:absolute;right:5px;top:5px}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{color:#1a7efb;cursor:pointer;display:none;font-size:12px;opacity:1;position:absolute;right:5px;top:5px}.el-upload-list__item:hover{background-color:#f5f7fa}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#1a7efb;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{color:#909399;height:100%;line-height:inherit;margin-right:7px}.el-upload-list__item-status-label{display:none;line-height:inherit;position:absolute;right:5px;top:0}.el-upload-list__item-delete{color:#606266;display:none;font-size:12px;position:absolute;right:10px;top:0}.el-upload-list__item-delete:hover{color:#1a7efb}.el-upload-list--picture-card{display:inline;margin:0;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;display:inline-block;height:148px;margin:0 8px 8px 0;overflow:hidden;width:148px}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{height:100%;width:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:#13ce66;box-shadow:0 0 1pc 1px rgba(0,0,0,.2);height:24px;position:absolute;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{background-color:rgba(0,0,0,.5);color:#fff;cursor:default;font-size:20px;height:100%;left:0;opacity:0;position:absolute;text-align:center;top:0;transition:opacity .3s;width:100%}.el-upload-list--picture-card .el-upload-list__item-actions:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{color:inherit;font-size:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;height:92px;margin-top:10px;overflow:hidden;padding:10px 10px 10px 90px;z-index:0}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:transparent;box-shadow:none;right:-12px;top:-2px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{background-color:#fff;display:inline-block;float:left;height:70px;margin-left:-80px;position:relative;vertical-align:middle;width:70px;z-index:1}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;left:9px;line-height:1;position:absolute;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{background:#13ce66;box-shadow:0 1px 1px #ccc;height:26px;position:absolute;right:-17px;text-align:center;top:-7px;transform:rotate(45deg);width:46px}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{cursor:default;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:10}.el-upload-cover:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;height:100%;width:100%}.el-upload-cover__label{background:#13ce66;box-shadow:0 0 1pc 1px rgba(0,0,0,.2);height:24px;position:absolute;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-cover__label i{color:#fff;font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-cover__progress{display:inline-block;position:static;vertical-align:middle;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{height:100%;left:0;position:absolute;top:0;width:100%}.el-upload-cover__interact{background-color:rgba(0,0,0,.72);bottom:0;height:100%;left:0;position:absolute;text-align:center;width:100%}.el-upload-cover__interact .btn{color:#fff;cursor:pointer;display:inline-block;font-size:14px;margin-top:60px;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);vertical-align:middle}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{background-color:#fff;bottom:0;color:#303133;font-size:14px;font-weight:400;height:36px;left:0;line-height:36px;margin:0;overflow:hidden;padding:0 10px;position:absolute;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{line-height:1;position:relative}.el-progress__text{color:#606266;display:inline-block;font-size:14px;line-height:1;margin-left:10px;vertical-align:middle}.el-progress__text i{display:block;vertical-align:middle}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{left:0;margin:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{display:inline-block;vertical-align:middle}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{display:block;margin-right:0;padding-right:0}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#00b27f}.el-progress.is-success .el-progress__text{color:#00b27f}.el-progress.is-warning .el-progress-bar__inner{background-color:#fcbe2d}.el-progress.is-warning .el-progress__text{color:#fcbe2d}.el-progress.is-exception .el-progress-bar__inner{background-color:#ff6154}.el-progress.is-exception .el-progress__text{color:#ff6154}.el-progress-bar{box-sizing:border-box;display:inline-block;margin-right:-55px;padding-right:50px;vertical-align:middle;width:100%}.el-progress-bar__outer{background-color:#ebeef5;border-radius:100px;height:6px;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{background-color:#1a7efb;border-radius:100px;height:100%;left:0;line-height:1;position:absolute;text-align:right;top:0;transition:width .6s ease;white-space:nowrap}.el-progress-bar__inner:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__innerText{color:#fff;display:inline-block;font-size:12px;margin:0 5px;vertical-align:middle}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-time-spinner{white-space:nowrap;width:100%}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{animation:rotate 2s linear infinite;height:50px;width:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(1turn)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{align-items:center;background-color:#edf2fc;border:1px solid #ebeef5;border-radius:7px;box-sizing:border-box;display:flex;left:50%;min-width:380px;overflow:hidden;padding:15px 15px 15px 20px;position:fixed;top:20px;transform:translateX(-50%);transition:opacity .3s,transform .4s,top .4s}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#4b4c4d}.el-message--success{background-color:#e6ffeb;border-color:#ccf0e5}.el-message--success .el-message__content{color:#00b27f}.el-message--warning{background-color:#fff9ea;border-color:#fef2d5}.el-message--warning .el-message__content{color:#fcbe2d}.el-message--error{background-color:#ffefee;border-color:#ffdfdd}.el-message--error .el-message__content{color:#ff6154}.el-message__icon{margin-right:10px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message__closeBtn{color:#afb3ba;cursor:pointer;font-size:16px;position:absolute;right:15px;top:50%;transform:translateY(-50%)}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#00b27f}.el-message .el-icon-error{color:#ff6154}.el-message .el-icon-info{color:#4b4c4d}.el-message .el-icon-warning{color:#fcbe2d}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;transform:translate(-50%,-100%)}.el-badge{display:inline-block;position:relative;vertical-align:middle}.el-badge__content{background-color:#ff6154;border:1px solid #fff;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:10px;top:0;transform:translateY(-50%) translateX(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content--primary{background-color:#1a7efb}.el-badge__content--success{background-color:#00b27f}.el-badge__content--warning{background-color:#fcbe2d}.el-badge__content--info{background-color:#4b4c4d}.el-badge__content--danger{background-color:#ff6154}.el-card{background-color:#fff;border:1px solid #ebeef5;border-radius:4px;color:#303133;overflow:hidden;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{border-bottom:1px solid #ebeef5;box-sizing:border-box;padding:18px 20px}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon,.el-rate__item{display:inline-block;position:relative}.el-rate__icon{color:#afb3ba;font-size:18px;margin-right:6px;transition:.3s}.el-rate__icon.hover{transform:scale(1.15)}.el-rate__decimal,.el-rate__icon .path2{left:0;position:absolute;top:0}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:flex}.el-steps--simple{background:#f5f7fa;border-radius:4px;padding:13px 8%}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{flex-flow:column;height:100%}.el-step{flex-shrink:1;position:relative}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-grow:0;flex-shrink:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{border-color:#303133;color:#303133}.el-step__head.is-wait{border-color:#afb3ba;color:#afb3ba}.el-step__head.is-success{border-color:#00b27f;color:#00b27f}.el-step__head.is-error{border-color:#ff6154;color:#ff6154}.el-step__head.is-finish{border-color:#1a7efb;color:#1a7efb}.el-step__icon{align-items:center;background:#fff;box-sizing:border-box;display:inline-flex;font-size:14px;height:24px;justify-content:center;position:relative;transition:.15s ease-out;width:24px;z-index:1}.el-step__icon.is-text{border:2px solid;border-color:inherit;border-radius:50%}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{color:inherit;display:inline-block;font-weight:700;line-height:1;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{background-color:#afb3ba;border-color:inherit;position:absolute}.el-step__line-inner{border:1px solid;border-color:inherit;box-sizing:border-box;display:block;height:0;transition:.15s ease-out;width:0}.el-step__main{text-align:left;white-space:normal}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{color:#303133;font-weight:700}.el-step__title.is-wait{color:#afb3ba}.el-step__title.is-success{color:#00b27f}.el-step__title.is-error{color:#ff6154}.el-step__title.is-finish{color:#1a7efb}.el-step__description{font-size:12px;font-weight:400;line-height:20px;margin-top:-5px;padding-right:10%}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#afb3ba}.el-step__description.is-success{color:#00b27f}.el-step__description.is-error{color:#ff6154}.el-step__description.is-finish{color:#1a7efb}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;left:0;right:0;top:11px}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{flex-grow:1;padding-left:10px}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{bottom:0;left:11px;top:0;width:2px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{align-items:center;display:flex}.el-step.is-simple .el-step__head{font-size:0;padding-right:10px;width:auto}.el-step.is-simple .el-step__icon{background:transparent;font-size:12px;height:16px;width:16px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{align-items:stretch;display:flex;flex-grow:1;position:relative}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{align-items:center;display:flex;flex-grow:1;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{background:#afb3ba;content:"";display:inline-block;height:15px;position:absolute;width:1px}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{height:300px;position:relative}.el-carousel__arrow{background-color:rgba(31,45,61,.11);border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:12px;height:36px;margin:0;outline:none;padding:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);transition:.3s;width:36px;z-index:10}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{list-style:none;margin:0;padding:0;position:absolute;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;position:static;text-align:center;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#afb3ba;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;text-align:center;transform:none}.el-carousel__indicators--labels .el-carousel__button{font-size:12px;height:auto;padding:2px 18px;width:auto}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{height:15px;width:2px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{background-color:#fff;border:none;cursor:pointer;display:block;height:2px;margin:0;opacity:.48;outline:none;padding:0;transition:.3s;width:30px}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{opacity:0;transform:translateY(-50%) translateX(-10px)}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{opacity:0;transform:translateY(-50%) translateX(10px)}.el-carousel__item{display:inline-block;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{background-color:#fff;height:100%;left:0;opacity:.24;position:absolute;top:0;transition:.2s;width:100%}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1)}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1)}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1)}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-bottom:1px solid #ebeef5;border-top:1px solid #ebeef5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{align-items:center;background-color:#fff;border-bottom:1px solid #ebeef5;color:#303133;cursor:pointer;display:flex;font-size:13px;font-weight:500;height:48px;line-height:48px;outline:none;transition:border-bottom-color .3s}.el-collapse-item__arrow{font-weight:300;margin:0 8px 0 auto;transition:transform .3s}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#1a7efb}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{background-color:#fff;border-bottom:1px solid #ebeef5;box-sizing:border-box;overflow:hidden;will-change:height}.el-collapse-item__content{color:#303133;font-size:13px;line-height:1.7692307692;padding-bottom:25px}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{border-color:transparent;border-style:solid;display:block;height:0;position:absolute;width:0}.el-popper .popper__arrow{border-width:6px;filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{border-width:6px;content:" "}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{border-bottom-width:0;border-top-color:#ebeef5;bottom:-6px;left:50%;margin-right:3px}.el-popper[x-placement^=top] .popper__arrow:after{border-bottom-width:0;border-top-color:#fff;bottom:1px;margin-left:-6px}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{border-bottom-color:#ebeef5;border-top-width:0;left:50%;margin-right:3px;top:-6px}.el-popper[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff;border-top-width:0;margin-left:-6px;top:1px}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{border-left-width:0;border-right-color:#ebeef5;left:-6px;margin-bottom:3px;top:50%}.el-popper[x-placement^=right] .popper__arrow:after{border-left-width:0;border-right-color:#fff;bottom:-6px;left:1px}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{border-left-color:#ebeef5;border-right-width:0;margin-bottom:3px;right:-6px;top:50%}.el-popper[x-placement^=left] .popper__arrow:after{border-left-color:#fff;border-right-width:0;bottom:-6px;margin-left:-6px;right:1px}.el-tag{background-color:#e8f2ff;border:1px solid #d1e5fe;border-radius:4px;box-sizing:border-box;color:#1a7efb;display:inline-block;font-size:12px;height:32px;line-height:30px;padding:0 10px;white-space:nowrap}.el-tag.is-hit{border-color:#1a7efb}.el-tag .el-tag__close{color:#1a7efb}.el-tag .el-tag__close:hover{background-color:#1a7efb;color:#fff}.el-tag.el-tag--info{background-color:#ededed;border-color:#dbdbdb;color:#4b4c4d}.el-tag.el-tag--info.is-hit{border-color:#4b4c4d}.el-tag.el-tag--info .el-tag__close{color:#4b4c4d}.el-tag.el-tag--info .el-tag__close:hover{background-color:#4b4c4d;color:#fff}.el-tag.el-tag--success{background-color:#e6f7f2;border-color:#ccf0e5;color:#00b27f}.el-tag.el-tag--success.is-hit{border-color:#00b27f}.el-tag.el-tag--success .el-tag__close{color:#00b27f}.el-tag.el-tag--success .el-tag__close:hover{background-color:#00b27f;color:#fff}.el-tag.el-tag--warning{background-color:#fff9ea;border-color:#fef2d5;color:#fcbe2d}.el-tag.el-tag--warning.is-hit{border-color:#fcbe2d}.el-tag.el-tag--warning .el-tag__close{color:#fcbe2d}.el-tag.el-tag--warning .el-tag__close:hover{background-color:#fcbe2d;color:#fff}.el-tag.el-tag--danger{background-color:#ffefee;border-color:#ffdfdd;color:#ff6154}.el-tag.el-tag--danger.is-hit{border-color:#ff6154}.el-tag.el-tag--danger .el-tag__close{color:#ff6154}.el-tag.el-tag--danger .el-tag__close:hover{background-color:#ff6154;color:#fff}.el-tag .el-icon-close{border-radius:50%;cursor:pointer;font-size:12px;height:16px;line-height:16px;position:relative;right:-5px;text-align:center;top:-1px;vertical-align:middle;width:16px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#1a7efb;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#1a7efb}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{background-color:#4898fc;color:#fff}.el-tag--dark.el-tag--info{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#4b4c4d}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{background-color:#6f7071;color:#fff}.el-tag--dark.el-tag--success{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#00b27f}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{background-color:#33c199;color:#fff}.el-tag--dark.el-tag--warning{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#fcbe2d}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{background-color:#fdcb57;color:#fff}.el-tag--dark.el-tag--danger{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#ff6154}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{background-color:#ff8176;color:#fff}.el-tag--plain{background-color:#fff;border-color:#a3cbfd;color:#1a7efb}.el-tag--plain.is-hit{border-color:#1a7efb}.el-tag--plain .el-tag__close{color:#1a7efb}.el-tag--plain .el-tag__close:hover{background-color:#1a7efb;color:#fff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#b7b7b8;color:#4b4c4d}.el-tag--plain.el-tag--info.is-hit{border-color:#4b4c4d}.el-tag--plain.el-tag--info .el-tag__close{color:#4b4c4d}.el-tag--plain.el-tag--info .el-tag__close:hover{background-color:#4b4c4d;color:#fff}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#99e0cc;color:#00b27f}.el-tag--plain.el-tag--success.is-hit{border-color:#00b27f}.el-tag--plain.el-tag--success .el-tag__close{color:#00b27f}.el-tag--plain.el-tag--success .el-tag__close:hover{background-color:#00b27f;color:#fff}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#fee5ab;color:#fcbe2d}.el-tag--plain.el-tag--warning.is-hit{border-color:#fcbe2d}.el-tag--plain.el-tag--warning .el-tag__close{color:#fcbe2d}.el-tag--plain.el-tag--warning .el-tag__close:hover{background-color:#fcbe2d;color:#fff}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#ffc0bb;color:#ff6154}.el-tag--plain.el-tag--danger.is-hit{border-color:#ff6154}.el-tag--plain.el-tag--danger .el-tag__close{color:#ff6154}.el-tag--plain.el-tag--danger .el-tag__close:hover{background-color:#ff6154;color:#fff}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;line-height:22px;padding:0 8px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;line-height:19px;padding:0 5px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}.el-cascader{display:inline-block;font-size:14px;line-height:40px;position:relative}.el-cascader:not(.is-disabled):hover .el-input__inner{border-color:#afb3ba;cursor:pointer}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-input__inner:focus{border-color:#1a7efb}.el-cascader .el-input .el-icon-arrow-down{font-size:14px;transition:transform .3s}.el-cascader .el-input .el-icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader .el-input.is-focus .el-input__inner{border-color:#1a7efb}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{color:#afb3ba;z-index:2}.el-cascader__dropdown{background:#fff;border:1px solid #e4e7ed;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);font-size:14px;margin:5px 0}.el-cascader__tags{box-sizing:border-box;display:flex;flex-wrap:wrap;left:0;line-height:normal;position:absolute;right:30px;text-align:left;top:50%;transform:translateY(-50%)}.el-cascader__tags .el-tag{align-items:center;background:#f0f2f5;display:inline-flex;margin:2px 0 2px 6px;max-width:100%;text-overflow:ellipsis}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{background-color:#afb3ba;color:#fff;flex:none}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:7px}.el-cascader__suggestion-list{color:#606266;font-size:14px;margin:0;max-height:204px;padding:6px 0;text-align:center}.el-cascader__suggestion-item{align-items:center;cursor:pointer;display:flex;height:34px;justify-content:space-between;outline:none;padding:0 15px;text-align:left}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#1a7efb;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{color:#afb3ba;margin:10px 0}.el-cascader__search-input{border:none;box-sizing:border-box;color:#606266;flex:1;height:24px;margin:2px 0 2px 15px;min-width:60px;outline:none;padding:0}.el-cascader__search-input::-moz-placeholder{color:#afb3ba}.el-cascader__search-input::placeholder{color:#afb3ba}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{border-radius:4px;cursor:pointer;height:20px;margin:0 0 8px 8px;width:20px}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px #1a7efb}.el-color-predefine__color-selector>div{border-radius:3px;display:flex;height:100%}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{background-color:red;box-sizing:border-box;height:12px;padding:0 2px;position:relative;width:280px}.el-color-hue-slider__bar{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%;position:relative}.el-color-hue-slider__thumb{background:#fff;border:1px solid #f0f0f0;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);box-sizing:border-box;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:4px;z-index:1}.el-color-hue-slider.is-vertical{height:180px;padding:2px 0;width:12px}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{height:4px;left:0;top:0;width:100%}.el-color-svpanel{height:180px;position:relative;width:280px}.el-color-svpanel__black,.el-color-svpanel__white{bottom:0;left:0;position:absolute;right:0;top:0}.el-color-svpanel__white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);cursor:head;height:4px;transform:translate(-2px,-2px);width:4px}.el-color-alpha-slider{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);box-sizing:border-box;height:12px;position:relative;width:280px}.el-color-alpha-slider__bar{background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%;position:relative}.el-color-alpha-slider__thumb{background:#fff;border:1px solid #f0f0f0;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);box-sizing:border-box;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:4px;z-index:1}.el-color-alpha-slider.is-vertical{height:180px;width:20px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{height:4px;left:0;top:0;width:100%}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{clear:both;content:"";display:table}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{color:#000;float:left;font-size:12px;line-height:26px;width:160px}.el-color-dropdown__btn{background-color:transparent;border:1px solid #dcdcdc;border-radius:2px;color:#333;cursor:pointer;font-size:12px;line-height:24px;outline:none;padding:0 20px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{border-color:#1a7efb;color:#1a7efb}.el-color-dropdown__link-btn{color:#1a7efb;cursor:pointer;font-size:12px;padding:15px;text-decoration:none}.el-color-dropdown__link-btn:hover{color:tint(#1a7efb,20%)}.el-color-picker{display:inline-block;height:40px;line-height:normal;position:relative}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{background-color:hsla(0,0%,100%,.7);border-radius:4px;cursor:not-allowed;height:38px;left:1px;position:absolute;top:1px;width:38px;z-index:1}.el-color-picker__trigger{border:1px solid #e6e6e6;border-radius:4px;box-sizing:border-box;cursor:pointer;display:inline-block;font-size:0;height:40px;padding:4px;position:relative;width:40px}.el-color-picker__color{border:1px solid #999;border-radius:4px;box-sizing:border-box;display:block;height:100%;position:relative;text-align:center;width:100%}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{bottom:0;left:0;position:absolute;right:0;top:0}.el-color-picker__empty{color:#999}.el-color-picker__empty,.el-color-picker__icon{font-size:12px;left:50%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{color:#fff;display:inline-block;text-align:center;width:100%}.el-color-picker__panel{background-color:#fff;border:1px solid #ebeef5;border-radius:7px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:content-box;padding:6px;position:absolute;z-index:10}.el-textarea{display:inline-block;font-size:14px;position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{background-color:#fff;background-image:none;border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;color:#606266;display:block;font-size:inherit;line-height:1.5;padding:5px 15px;resize:vertical;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-textarea__inner::-moz-placeholder{color:#afb3ba}.el-textarea__inner::placeholder{color:#afb3ba}.el-textarea__inner:hover{border-color:#afb3ba}.el-textarea__inner:focus{border-color:#1a7efb;outline:none}.el-textarea .el-input__count{background:#fff;bottom:5px;color:#4b4c4d;font-size:12px;position:absolute;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#afb3ba;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#afb3ba}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#afb3ba}.el-textarea.is-exceed .el-textarea__inner{border-color:#ff6154}.el-textarea.is-exceed .el-input__count{color:#ff6154}.el-input{display:inline-block;font-size:14px;position:relative;width:100%}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:#b4bccc;border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#afb3ba;cursor:pointer;font-size:14px;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{align-items:center;color:#4b4c4d;display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:#fff;display:inline-block;line-height:normal;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:none;padding:0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__inner::-ms-reveal{display:none}.el-input__inner::-moz-placeholder{color:#afb3ba}.el-input__inner::placeholder{color:#afb3ba}.el-input__inner:hover{border-color:#afb3ba}.el-input__inner:focus{border-color:#1a7efb;outline:none}.el-input__suffix{color:#afb3ba;height:100%;pointer-events:none;position:absolute;right:5px;text-align:center;top:0;transition:all .3s}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{color:#afb3ba;left:5px;position:absolute;top:0}.el-input__icon,.el-input__prefix{height:100%;text-align:center;transition:all .3s}.el-input__icon{line-height:40px;width:25px}.el-input__icon:after{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__inner{border-color:#1a7efb;outline:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#afb3ba;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#afb3ba}.el-input.is-disabled .el-input__inner::placeholder{color:#afb3ba}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#ff6154}.el-input.is-exceed .el-input__suffix .el-input__count{color:#ff6154}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{border-collapse:separate;border-spacing:0;display:inline-table;line-height:normal;width:100%}.el-input-group>.el-input__inner{display:table-cell;vertical-align:middle}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;border:1px solid #dadbdd;border-radius:7px;color:#4b4c4d;display:table-cell;padding:0 20px;position:relative;vertical-align:middle;white-space:nowrap;width:1px}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{background-color:transparent;border-color:transparent;border-bottom:0;border-top:0;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.el-input-group__append{border-left:0}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input-group--append .el-input__inner{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;height:0;width:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;padding:0 30px;vertical-align:middle}.el-transfer__button{background-color:#1a7efb;border-radius:50%;color:#fff;display:block;font-size:0;margin:0 auto;padding:10px}.el-transfer__button.is-with-texts{border-radius:7px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{background-color:#f5f7fa;border:1px solid #dadbdd;color:#afb3ba}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer-panel{background:#fff;border:1px solid #ebeef5;border-radius:7px;box-sizing:border-box;display:inline-block;max-height:100%;overflow:hidden;position:relative;vertical-align:middle;width:200px}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{box-sizing:border-box;height:246px;list-style:none;margin:0;overflow:auto;padding:6px 0}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{display:block!important;height:30px;line-height:30px;padding-left:15px}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#1a7efb}.el-transfer-panel__item.el-checkbox .el-checkbox__label{box-sizing:border-box;display:block;line-height:30px;overflow:hidden;padding-left:24px;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{box-sizing:border-box;display:block;margin:15px;text-align:center;width:auto}.el-transfer-panel__filter .el-input__inner{border-radius:16px;box-sizing:border-box;display:inline-block;font-size:12px;height:32px;padding-left:30px;padding-right:10px;width:100%}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{background:#f5f7fa;border-bottom:1px solid #ebeef5;box-sizing:border-box;color:#000;height:40px;line-height:40px;margin:0;padding-left:15px}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{color:#303133;font-size:16px;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{color:#909399;font-size:12px;font-weight:400;position:absolute;right:15px}.el-transfer-panel .el-transfer-panel__footer{background:#fff;border-top:1px solid #ebeef5;bottom:0;height:40px;left:0;margin:0;padding:0;position:absolute;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{color:#606266;padding-left:20px}.el-transfer-panel .el-transfer-panel__empty{color:#909399;height:30px;line-height:30px;margin:0;padding:6px 15px 0;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{border-radius:3px;height:14px;width:14px}.el-transfer-panel .el-checkbox__inner:after{height:6px;left:4px;width:3px}.el-container{box-sizing:border-box;display:flex;flex:1;flex-basis:auto;flex-direction:row;min-width:0}.el-container.is-vertical{flex-direction:column}.el-header{padding:0 20px}.el-aside,.el-header{box-sizing:border-box;flex-shrink:0}.el-aside,.el-main{overflow:auto}.el-main{display:block;flex:1;flex-basis:auto;padding:20px}.el-footer,.el-main{box-sizing:border-box}.el-footer{flex-shrink:0;padding:0 20px}.el-timeline{font-size:14px;list-style:none;margin:0}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{padding-bottom:20px;position:relative}.el-timeline-item__wrapper{padding-left:28px;position:relative;top:-3px}.el-timeline-item__tail{border-left:2px solid #e4e7ed;height:100%;left:4px;position:absolute}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{align-items:center;background-color:#e4e7ed;border-radius:50%;display:flex;justify-content:center;position:absolute}.el-timeline-item__node--normal{height:12px;left:-1px;width:12px}.el-timeline-item__node--large{height:14px;left:-2px;width:14px}.el-timeline-item__node--primary{background-color:#1a7efb}.el-timeline-item__node--success{background-color:#00b27f}.el-timeline-item__node--warning{background-color:#fcbe2d}.el-timeline-item__node--danger{background-color:#ff6154}.el-timeline-item__node--info{background-color:#4b4c4d}.el-timeline-item__dot{align-items:center;display:flex;justify-content:center;position:absolute}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;font-size:13px;line-height:1}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{align-items:center;cursor:pointer;display:inline-flex;flex-direction:row;font-size:14px;font-weight:500;justify-content:center;outline:none;padding:0;position:relative;text-decoration:none;vertical-align:middle}.el-link.is-underline:hover:after{border-bottom:1px solid #1a7efb;bottom:0;content:"";height:0;left:0;position:absolute;right:0}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#1a7efb}.el-link.el-link--default:after{border-color:#1a7efb}.el-link.el-link--default.is-disabled{color:#afb3ba}.el-link.el-link--primary{color:#1a7efb}.el-link.el-link--primary:hover{color:#4898fc}.el-link.el-link--primary:after{border-color:#1a7efb}.el-link.el-link--primary.is-disabled{color:#8dbffd}.el-link.el-link--primary.is-underline:hover:after{border-color:#1a7efb}.el-link.el-link--danger{color:#ff6154}.el-link.el-link--danger:hover{color:#ff8176}.el-link.el-link--danger:after{border-color:#ff6154}.el-link.el-link--danger.is-disabled{color:#ffb0aa}.el-link.el-link--danger.is-underline:hover:after{border-color:#ff6154}.el-link.el-link--success{color:#00b27f}.el-link.el-link--success:hover{color:#33c199}.el-link.el-link--success:after{border-color:#00b27f}.el-link.el-link--success.is-disabled{color:#80d9bf}.el-link.el-link--success.is-underline:hover:after{border-color:#00b27f}.el-link.el-link--warning{color:#fcbe2d}.el-link.el-link--warning:hover{color:#fdcb57}.el-link.el-link--warning:after{border-color:#fcbe2d}.el-link.el-link--warning.is-disabled{color:#fedf96}.el-link.el-link--warning.is-underline:hover:after{border-color:#fcbe2d}.el-link.el-link--info{color:#4b4c4d}.el-link.el-link--info:hover{color:#6f7071}.el-link.el-link--info:after{border-color:#4b4c4d}.el-link.el-link--info.is-disabled{color:#a5a6a6}.el-link.el-link--info.is-underline:hover:after{border-color:#4b4c4d}.el-divider{background-color:#dadbdd;position:relative}.el-divider--horizontal{display:block;height:1px;margin:24px 0;width:100%}.el-divider--vertical{display:inline-block;height:1em;margin:0 8px;position:relative;vertical-align:middle;width:1px}.el-divider__text{background-color:#fff;color:#303133;font-size:14px;font-weight:500;padding:0 20px;position:absolute}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{height:100%;width:100%}.el-image{display:inline-block;overflow:hidden;position:relative}.el-image__inner{vertical-align:top}.el-image__inner--center{display:block;left:50%;position:relative;top:50%;transform:translate(-50%,-50%)}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-image__error{align-items:center;color:#afb3ba;display:flex;font-size:14px;justify-content:center;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{bottom:0;left:0;position:fixed;right:0;top:0}.el-image-viewer__btn{align-items:center;border-radius:50%;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;opacity:.8;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1}.el-image-viewer__close{background-color:#606266;color:#fff;font-size:24px;height:40px;right:40px;top:40px;width:40px}.el-image-viewer__canvas{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.el-image-viewer__actions{background-color:#606266;border-color:#fff;border-radius:22px;bottom:30px;height:44px;left:50%;padding:0 23px;transform:translateX(-50%);width:282px}.el-image-viewer__actions__inner{align-items:center;color:#fff;cursor:default;display:flex;font-size:23px;height:100%;justify-content:space-around;text-align:justify;width:100%}.el-image-viewer__prev{left:40px}.el-image-viewer__next,.el-image-viewer__prev{background-color:#606266;border-color:#fff;color:#fff;font-size:24px;height:44px;top:50%;transform:translateY(-50%);width:44px}.el-image-viewer__next{right:40px;text-indent:2px}.el-image-viewer__mask{background:#000;height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%}.viewer-fade-enter-active{animation:viewer-fade-in .3s}.viewer-fade-leave-active{animation:viewer-fade-out .3s}@keyframes viewer-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.el-button{-webkit-appearance:none;background:#fff;border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;color:#606266;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1;margin:0;outline:none;padding:12px 20px;text-align:center;transition:.1s;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;white-space:nowrap}.el-button+.el-button{margin-left:10px}.el-button.is-round{padding:12px 20px}.el-button:focus,.el-button:hover{background-color:#e8f2ff;border-color:#bad8fe;color:#1a7efb}.el-button:active{border-color:#1771e2;color:#1771e2;outline:none}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#1a7efb;color:#1a7efb}.el-button.is-plain:active{background:#fff;outline:none}.el-button.is-active,.el-button.is-plain:active{border-color:#1771e2;color:#1771e2}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{background-color:#fff;background-image:none;border-color:#ebeef5;color:#afb3ba;cursor:not-allowed}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#afb3ba}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:hsla(0,0%,100%,.35);border-radius:inherit;bottom:-1px;content:"";left:-1px;pointer-events:none;position:absolute;right:-1px;top:-1px}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--primary:focus,.el-button--primary:hover{background:#4898fc;border-color:#4898fc;color:#fff}.el-button--primary:active{outline:none}.el-button--primary.is-active,.el-button--primary:active{background:#1771e2;border-color:#1771e2;color:#fff}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{background-color:#8dbffd;border-color:#8dbffd;color:#fff}.el-button--primary.is-plain{background:#e8f2ff;border-color:#a3cbfd;color:#1a7efb}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--primary.is-plain:active{background:#1771e2;border-color:#1771e2;color:#fff;outline:none}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{background-color:#e8f2ff;border-color:#d1e5fe;color:#76b2fd}.el-button--success{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-button--success:focus,.el-button--success:hover{background:#33c199;border-color:#33c199;color:#fff}.el-button--success:active{outline:none}.el-button--success.is-active,.el-button--success:active{background:#00a072;border-color:#00a072;color:#fff}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{background-color:#80d9bf;border-color:#80d9bf;color:#fff}.el-button--success.is-plain{background:#e6f7f2;border-color:#99e0cc;color:#00b27f}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#00b27f;border-color:#00b27f;color:#fff}.el-button--success.is-plain:active{background:#00a072;border-color:#00a072;color:#fff;outline:none}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{background-color:#e6f7f2;border-color:#ccf0e5;color:#66d1b2}.el-button--warning{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--warning:focus,.el-button--warning:hover{background:#fdcb57;border-color:#fdcb57;color:#fff}.el-button--warning:active{outline:none}.el-button--warning.is-active,.el-button--warning:active{background:#e3ab29;border-color:#e3ab29;color:#fff}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{background-color:#fedf96;border-color:#fedf96;color:#fff}.el-button--warning.is-plain{background:#fff9ea;border-color:#fee5ab;color:#fcbe2d}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--warning.is-plain:active{background:#e3ab29;border-color:#e3ab29;color:#fff;outline:none}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{background-color:#fff9ea;border-color:#fef2d5;color:#fdd881}.el-button--danger{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-button--danger:focus,.el-button--danger:hover{background:#ff8176;border-color:#ff8176;color:#fff}.el-button--danger:active{outline:none}.el-button--danger.is-active,.el-button--danger:active{background:#e6574c;border-color:#e6574c;color:#fff}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{background-color:#ffb0aa;border-color:#ffb0aa;color:#fff}.el-button--danger.is-plain{background:#ffefee;border-color:#ffc0bb;color:#ff6154}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#ff6154;border-color:#ff6154;color:#fff}.el-button--danger.is-plain:active{background:#e6574c;border-color:#e6574c;color:#fff;outline:none}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{background-color:#ffefee;border-color:#ffdfdd;color:#ffa098}.el-button--info{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--info:focus,.el-button--info:hover{background:#6f7071;border-color:#6f7071;color:#fff}.el-button--info:active{outline:none}.el-button--info.is-active,.el-button--info:active{background:#444445;border-color:#444445;color:#fff}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{background-color:#a5a6a6;border-color:#a5a6a6;color:#fff}.el-button--info.is-plain{background:#ededed;border-color:#b7b7b8;color:#4b4c4d}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--info.is-plain:active{background:#444445;border-color:#444445;color:#fff;outline:none}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{background-color:#ededed;border-color:#dbdbdb;color:#939494}.el-button--medium{border-radius:7px;font-size:14px;padding:10px 20px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small{border-radius:6px;font-size:13px;padding:8px 11px}.el-button--small.is-round{padding:8px 11px}.el-button--small.is-circle{padding:8px}.el-button--mini{border-radius:6px;font-size:12px;padding:7px 15px}.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{background:transparent;border-color:transparent;color:#1a7efb;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{background-color:transparent;border-color:transparent;color:#4898fc}.el-button--text:active{background-color:transparent;color:#1771e2}.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{content:"";display:table}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.el-button-group>.el-button:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-bottom-left-radius:7px;border-bottom-right-radius:7px;border-top-left-radius:7px;border-top-right-radius:7px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:not(.is-disabled):active,.el-button-group>.el-button:not(.is-disabled):focus,.el-button-group>.el-button:not(.is-disabled):hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-bottom-left-radius:0;border-left-color:hsla(0,0%,100%,.5);border-top-left-radius:0}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-calendar{background-color:#fff}.el-calendar__header{border-bottom:1px solid #ececec;display:flex;justify-content:space-between;padding:12px 20px}.el-calendar__title{align-self:center;color:#000}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{color:#606266;font-weight:400;padding:12px 0}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#afb3ba}.el-calendar-table td{border-bottom:1px solid #ececec;border-right:1px solid #ececec;transition:background-color .2s ease;vertical-align:top}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table td.is-today{color:#1a7efb}.el-calendar-table tr:first-child td{border-top:1px solid #ececec}.el-calendar-table tr td:first-child{border-left:1px solid #ececec}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;height:85px;padding:8px}.el-calendar-table .el-calendar-day:hover{background-color:#f2f8fe;cursor:pointer}.el-backtop{align-items:center;background-color:#fff;border-radius:50%;box-shadow:0 0 6px rgba(0,0,0,.12);color:#1a7efb;cursor:pointer;display:flex;font-size:20px;height:40px;justify-content:center;position:fixed;width:40px;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{display:flex;line-height:24px}.el-page-header__left{cursor:pointer;display:flex;margin-right:40px;position:relative}.el-page-header__left:after{background-color:#dadbdd;content:"";height:16px;position:absolute;right:-20px;top:50%;transform:translateY(-50%);width:1px}.el-page-header__left .el-icon-back{align-self:center;font-size:18px;margin-right:6px}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{color:#303133;font-size:18px}.el-checkbox{color:#606266;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;margin-right:30px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-checkbox.is-bordered{border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;height:40px;line-height:normal;padding:9px 20px 9px 10px}.el-checkbox.is-bordered.is-checked{border-color:#1a7efb}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{border-radius:7px;height:36px;padding:7px 20px 7px 10px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{font-size:14px;line-height:17px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:6px;height:32px;padding:5px 15px 5px 10px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:13px;line-height:15px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{border-radius:6px;height:28px;padding:3px 15px 3px 10px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{font-size:12px;line-height:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;display:inline-block;line-height:1;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dadbdd;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{border-color:#afb3ba;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dadbdd}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#afb3ba}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dadbdd}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#afb3ba;border-color:#afb3ba}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#afb3ba;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:#1a7efb;border-color:#1a7efb}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#1a7efb}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#1a7efb}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#1a7efb;border-color:#1a7efb}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{background-color:#fff;content:"";display:block;height:2px;left:0;position:absolute;right:0;top:5px;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{background-color:#fff;border:1px solid #868686;border-radius:4px;box-sizing:border-box;display:inline-block;height:14px;position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);width:14px;z-index:1}.el-checkbox__inner:hover{border-color:#1a7efb}.el-checkbox__inner:after{border:1px solid #fff;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.el-checkbox__original{height:0;margin:0;opacity:0;outline:none;position:absolute;width:0;z-index:-1}.el-checkbox__label{display:inline-block;font-size:14px;line-height:19px;padding-left:10px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button,.el-checkbox-button__inner{display:inline-block;position:relative}.el-checkbox-button__inner{-webkit-appearance:none;background:#fff;border:1px solid #dadbdd;border-left:0;border-radius:0;box-sizing:border-box;color:#606266;cursor:pointer;font-size:14px;font-weight:500;line-height:1;margin:0;outline:none;padding:12px 20px;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;vertical-align:middle;white-space:nowrap}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#1a7efb}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{background-color:#1a7efb;border-color:#1a7efb;box-shadow:-1px 0 0 0 #76b2fd;color:#fff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#1a7efb}.el-checkbox-button.is-disabled .el-checkbox-button__inner{background-color:#fff;background-image:none;border-color:#ebeef5;box-shadow:none;color:#afb3ba;cursor:not-allowed}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dadbdd;border-radius:7px 0 0 7px;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#1a7efb}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 7px 7px 0}.el-checkbox-button--medium .el-checkbox-button__inner{border-radius:0;font-size:14px;padding:10px 20px}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{border-radius:0;font-size:13px;padding:8px 11px}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:8px 11px}.el-checkbox-button--mini .el-checkbox-button__inner{border-radius:0;font-size:12px;padding:7px 15px}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio{color:#606266;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1;margin-right:30px;outline:none;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;white-space:nowrap}.el-radio.is-bordered{border:1px solid #dadbdd;border-radius:7px;box-sizing:border-box;height:40px;padding:12px 20px 0 10px}.el-radio.is-bordered.is-checked{border-color:#1a7efb}.el-radio.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{border-radius:7px;height:36px;padding:10px 20px 0 10px}.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{border-radius:6px;height:32px;padding:8px 15px 0 10px}.el-radio--small.is-bordered .el-radio__label{font-size:13px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{border-radius:6px;height:28px;padding:6px 15px 0 10px}.el-radio--mini.is-bordered .el-radio__label{font-size:12px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;display:inline-block;line-height:1;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-radio__input.is-disabled .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed;cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{background-color:#f5f7fa;cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#afb3ba}.el-radio__input.is-disabled+span.el-radio__label{color:#afb3ba;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{background:#1a7efb;border-color:#1a7efb}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#1a7efb}.el-radio__input.is-focus .el-radio__inner{border-color:#1a7efb}.el-radio__inner{background-color:#fff;border:1px solid #dadbdd;border-radius:100%;box-sizing:border-box;cursor:pointer;display:inline-block;height:14px;position:relative;width:14px}.el-radio__inner:hover{border-color:#1a7efb}.el-radio__inner:after{background-color:#fff;border-radius:100%;content:"";height:4px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in;width:4px}.el-radio__original{bottom:0;left:0;margin:0;opacity:0;outline:none;position:absolute;right:0;top:0;z-index:-1}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px #1a7efb}.el-radio__label{font-size:14px;padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;transition:opacity .34s ease-out}.el-scrollbar__wrap{height:100%;overflow:scroll}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{height:0;width:0}.el-scrollbar__thumb{background-color:hsla(220,4%,58%,.3);border-radius:inherit;cursor:pointer;display:block;height:0;position:relative;transition:background-color .3s;width:0}.el-scrollbar__thumb:hover{background-color:hsla(220,4%,58%,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;opacity:0;position:absolute;right:2px;transition:opacity .12s ease-out;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{border-radius:7px;display:flex;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #e4e7ed;border-radius:7px}.el-cascader-menu{border-right:1px solid #e4e7ed;box-sizing:border-box;color:#606266;min-width:180px}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{box-sizing:border-box;list-style:none;margin:0;min-height:100%;padding:6px 0;position:relative}.el-cascader-menu__hover-zone{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.el-cascader-menu__empty-text{color:#afb3ba;left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.el-cascader-node{align-items:center;display:flex;height:34px;line-height:34px;outline:none;padding:0 30px 0 20px;position:relative}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#1a7efb;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#afb3ba;cursor:not-allowed}.el-cascader-node__prefix{left:10px;position:absolute}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;overflow:hidden;padding:0 10px;text-overflow:ellipsis;white-space:nowrap}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{background:#c0c4cc;box-sizing:border-box;color:#fff;display:inline-block;font-size:14px;height:40px;line-height:40px;overflow:hidden;text-align:center;width:40px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:7px}.el-avatar--icon{font-size:18px}.el-avatar--large{height:40px;line-height:40px;width:40px}.el-avatar--medium{height:36px;line-height:36px;width:36px}.el-avatar--small{height:28px;line-height:28px;width:28px}@keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rtl-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rtl-drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes ltr-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes ltr-drawer-out{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes ttb-drawer-in{0%{transform:translateY(-100%)}to{transform:translate(0)}}@keyframes ttb-drawer-out{0%{transform:translate(0)}to{transform:translateY(-100%)}}@keyframes btt-drawer-in{0%{transform:translateY(100%)}to{transform:translate(0)}}@keyframes btt-drawer-out{0%{transform:translate(0)}to{transform:translateY(100%)}}.el-drawer{background-color:#fff;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-sizing:border-box;display:flex;flex-direction:column;outline:0;overflow:hidden;position:absolute}.el-drawer.rtl{animation:rtl-drawer-out .3s}.el-drawer__open .el-drawer.rtl{animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{animation:ltr-drawer-out .3s}.el-drawer__open .el-drawer.ltr{animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{animation:ttb-drawer-out .3s}.el-drawer__open .el-drawer.ttb{animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{animation:btt-drawer-out .3s}.el-drawer__open .el-drawer.btt{animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{bottom:0;left:0;margin:0;overflow:hidden;position:fixed;right:0;top:0}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:20px 20px 0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{flex:1;font-size:1rem;line-height:inherit;margin:0}.el-drawer__close-btn{background-color:transparent;border:none;color:inherit;cursor:pointer;font-size:20px}.el-drawer__body{flex:1;overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{bottom:0;height:100%;top:0}.el-drawer.btt,.el-drawer.ttb{left:0;right:0;width:100%}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer__container{bottom:0;height:100%;left:0;position:relative;right:0;top:0;width:100%}.el-drawer-fade-enter-active{animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-statistic{font-feature-settings:"tnum";box-sizing:border-box;color:#000;font-variant:tabular-nums;list-style:none;margin:0;padding:0;text-align:center;width:100%}.el-statistic .head{color:#606266;font-size:13px;margin-bottom:4px}.el-statistic .con{align-items:center;color:#303133;display:flex;font-family:Sans-serif;justify-content:center}.el-statistic .con .number{font-size:20px;padding:0 4px}.el-statistic .con span{display:inline-block;line-height:100%;margin:0}.el-popconfirm__main{align-items:center;display:flex}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{margin:0;text-align:right}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{background:#f2f2f2;height:16px;margin-top:16px}.el-skeleton.is-animated .el-skeleton__item{animation:el-skeleton-loading 1.4s ease infinite;background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%}.el-skeleton__item{background:#f2f2f2;border-radius:7px;display:inline-block;height:16px;width:100%}.el-skeleton__circle{border-radius:50%;height:36px;line-height:36px;width:36px}.el-skeleton__circle--lg{height:40px;line-height:40px;width:40px}.el-skeleton__circle--md{height:28px;line-height:28px;width:28px}.el-skeleton__button{border-radius:4px;height:40px;width:64px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{height:13px;width:100%}.el-skeleton__caption{height:12px}.el-skeleton__h1{height:20px}.el-skeleton__h3{height:18px}.el-skeleton__h5{height:16px}.el-skeleton__image{align-items:center;border-radius:0;display:flex;justify-content:center;width:unset}.el-skeleton__image svg{fill:#dcdde0;height:22%;width:22%}.el-empty{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:40px 0;text-align:center}.el-empty__image{width:160px}.el-empty__image img{height:100%;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:top;width:100%}.el-empty__image svg{fill:#dcdde0;height:100%;vertical-align:top;width:100%}.el-empty__description{margin-top:20px}.el-empty__description p{color:#909399;font-size:14px;margin:0}.el-empty__bottom{margin-top:20px}.el-descriptions{box-sizing:border-box;color:#303133;font-size:14px}.el-descriptions__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.el-descriptions__title{font-size:16px;font-weight:700}.el-descriptions__body{background-color:#fff;color:#606266}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;table-layout:fixed;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell{box-sizing:border-box;font-weight:400;line-height:1.5;text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-right{text-align:right}.el-descriptions .is-bordered{table-layout:auto}.el-descriptions .is-bordered .el-descriptions-item__cell{border:1px solid #ebeef5;padding:12px 10px}.el-descriptions :not(.is-bordered) .el-descriptions-item__cell{padding-bottom:12px}.el-descriptions--medium.is-bordered .el-descriptions-item__cell{padding:10px}.el-descriptions--medium:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:10px}.el-descriptions--small{font-size:12px}.el-descriptions--small.is-bordered .el-descriptions-item__cell{padding:8px 10px}.el-descriptions--small:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:8px}.el-descriptions--mini{font-size:12px}.el-descriptions--mini.is-bordered .el-descriptions-item__cell{padding:6px 10px}.el-descriptions--mini:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:6px}.el-descriptions-item{vertical-align:top}.el-descriptions-item__container{display:flex}.el-descriptions-item__container .el-descriptions-item__content,.el-descriptions-item__container .el-descriptions-item__label{align-items:baseline;display:inline-flex}.el-descriptions-item__container .el-descriptions-item__content{flex:1}.el-descriptions-item__label.has-colon:after{content:":";position:relative;top:-.5px}.el-descriptions-item__label.is-bordered-label{background:#fafafa;color:#909399;font-weight:700}.el-descriptions-item__label:not(.is-bordered-label){margin-right:10px}.el-descriptions-item__content{overflow-wrap:break-word;word-break:break-word}.el-result{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:40px 30px;text-align:center}.el-result__icon svg{height:64px;width:64px}.el-result__title{margin-top:20px}.el-result__title p{color:#303133;font-size:20px;line-height:1.3;margin:0}.el-result__subtitle{margin-top:10px}.el-result__subtitle p{color:#606266;font-size:14px;line-height:1.3;margin:0}.el-result__extra{margin-top:30px}.el-result .icon-success{fill:#00b27f}.el-result .icon-error{fill:#ff6154}.el-result .icon-info{fill:#4b4c4d}.el-result .icon-warning{fill:#fcbe2d}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#f2f2f2}ol,ul{list-style:none;margin:0;padding:0}.el-button{text-decoration:none}.ff_form_name{border-right:1px solid #ececec;font-size:15px;max-width:160px;padding-bottom:14px;padding-right:20px;padding-top:14px;text-overflow:ellipsis;white-space:nowrap}#ff_preview_top,.ff_form_name{overflow:hidden}#ff_form_styler .el-tabs--top.el-tabs--border-card{max-height:100vh;overflow-y:auto}.ff_form_preview{max-height:85vh;overflow-y:auto}.ff_preview_menu{align-items:center;display:flex;list-style:none;margin:0;padding:0}.ff_preview_menu_link{background-color:transparent;border-radius:6px;color:#1e1f21;display:inline-block;font-size:15px;font-weight:500;line-height:1.6;padding:8px 16px;text-decoration:none;transition:.2s}.ff_preview_menu_link:focus{outline:none}.ff_preview_menu_link:hover{color:#1a7efb}.ff_preview_only_label_wrap{margin-left:auto}.ff_preview_only_label_wrap label{align-items:center;background:#ededed;border-radius:6px;cursor:pointer;display:inline-flex;font-size:15px;line-height:1;padding:10px 14px}#ff_preview_only{height:16px;margin-right:10px;width:16px}#ff_preview_only:checked{background-color:#1a7efb}.ff_preview_action{background-color:#ededed;border:0;border-radius:6px;color:#1e1f21;cursor:copy;display:block;font-size:15px;line-height:1;margin:0 0 0 12px;max-width:188px;overflow:hidden;padding:10px 14px;text-overflow:ellipsis;white-space:nowrap}#copy{cursor:context-menu}#ff_preview_header{align-items:center;background:#fff;border-bottom:1px solid #ececec;display:flex;padding-left:20px;padding-right:20px}.ff_preview_text{background:#673ab7;border-radius:10px;color:#fff;display:block;display:none;font-family:sans-serif;font-size:13px;font-weight:700;left:-59px;padding:4px 20px;position:absolute;text-align:center;top:20px;transform:rotate(-45deg);width:193px;z-index:99999999}.ff_preview_body{background:#f2f2f2;display:flex;justify-content:space-between;padding-left:30px;padding-right:30px;position:relative;width:100%}.ff_form_preview{padding:20px}.ff_form_preview_wrapper{background:#fff;border-radius:10px;box-shadow:0 1px 3px rgba(30,31,33,.08);margin:30px auto;min-height:71vh;width:768px}.ff_form_preview_wrapper.monitor{width:100%}.ff_form_preview_wrapper.mobile{width:375px}.ff_form_preview_wrapper.tablet{width:768px}.ff_form_preview_header{align-items:center;background-color:#f8f9fa;border-top-left-radius:10px;border-top-right-radius:10px;display:flex;justify-content:space-between;padding:10px 20px}.ff_form_preview_header .dot{border-radius:100%;display:inline-block;height:13px;width:13px}.ff_form_preview_header .dot:not(:last-child){margin-right:4px}.ff_form_preview_header .dot-red{background-color:#f26c6f}.ff_form_preview_header .dot-yellow{background-color:#ffc554}.ff_form_preview_header .dot-success{background-color:#00b27f;font-weight:600}.ff_form_styler_wrapper{background:#fff;border-left:1px solid #e4e7ed;flex-shrink:0;margin-left:30px;margin-right:-30px;width:380px}.ff_device_control{cursor:pointer;display:inline-block;position:relative;text-align:center;width:24px}.ff_device_control_wrap{display:none}.ff_device_control:hover .ff_tooltip{opacity:1;visibility:visible}.ff_device_control.active svg{fill:#1a7efb}.ff_device_control svg{fill:#626261;height:20px;width:20px}.ff_tooltip{word-wrap:normal;background-color:#4b4c4d;border-radius:6px;color:#fff;font-size:12px;font-weight:500;left:-50%;line-height:1;opacity:0;padding:5px 8px;position:absolute;top:-120%;transition:.3s;visibility:hidden;word-break:normal}@media (min-width:1280px){.ff_device_control_wrap{display:block}}.ff_preview_only .ff_form_preview_wrapper{max-height:100%;width:78%}@media (max-width:767px){.ff_preview_only .ff_form_preview_wrapper{width:100%}}.ff_preview_only .ff_form_styler_wrapper{display:none}.ff_notice{background-color:#fff;border-top:1px solid #e4e7ed;color:#727272;font-size:14px;padding:20px}.ff_notice .el-icon{color:#909399;font-size:20px;margin-right:10px;margin-top:5px}.ff_notice_inner{display:flex;margin:0 auto;max-width:890px;width:auto}.ff_styler_promo{height:81vh;overflow-y:scroll;padding:20px}.ff_styler_promo h5{border-bottom:1px solid #ececec;font-weight:500;margin-bottom:15px;margin-top:20px;padding-bottom:10px;text-transform:capitalize}.ff_promo_header{border-bottom:1px solid #ececec;font-weight:600;line-height:1;margin-bottom:20px;padding-bottom:16px}.ff_promo_body p{font-size:16px}.ff_promo_body p a{color:#1a7efb;text-decoration:none}.ff_feature_list{list-style:none;margin:0;padding:0}.ff_feature_list li{color:#626262;font-size:15px;margin-bottom:10px}.ff_feature_list li .el-icon{color:#00b27f;font-weight:600;margin-right:6px}.ff_addons{display:flex;flex-wrap:wrap;padding:10px}.ff_addons li{border:1px solid #e4e7ed;border-radius:8px;display:grid;margin:5px;padding:13px 18px;place-items:center;text-align:center;width:45%}.ff_addons li img{margin:0 auto;max-height:40px;max-width:100%}@media (max-width:425px){.ff_form_styler_wrapper{display:none}#ff_preview_top .ff_preview_body .ff_form_preview_wrapper{float:none;height:100%;max-height:100%!important;width:97%}#ff_preview_top #ff_preview_header label,.ff_preview_action{display:none!important}#ff_preview_top .ff_preview_body{margin-top:80px}}.ff_each_style .el-tabs--border-card>.el-tabs__content{padding:14px 0 0}.ff_each_style .el-tabs--border-card>.el-tabs__header{padding-left:0!important;padding-right:0!important}.ff_each_style .el-tabs--border-card>.el-tabs__header .el-tabs__item{margin-right:0!important}.preview-form-style-template-wrap{border-bottom:1px solid #ececec;padding:20px}.preview-form-style-template-head{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:20px}.preview-form-style-template-head h5{font-size:18px;font-weight:600;margin-bottom:0;text-transform:capitalize}.preview-form-style-template-selector .el-select{width:100%}.global-search-wrapper{align-items:center;background:rgba(0,0,0,.7);display:flex;height:auto;inset:0;justify-content:center;min-height:100vh;padding:20px;position:fixed;z-index:999999999}.global-search-wrapper .global-search-container{background:#f6f6f7;border-radius:5px;overflow:auto;position:relative;width:700px}.global-search-wrapper .global-search-container input{font-size:17px;padding:3px 35px;width:100%}.global-search-wrapper .global-search-container ul.search-result li{background:#fff;border-radius:6px;box-shadow:0 1px 3px 0 #d4d9e1;color:#606266;cursor:pointer;display:block;font-size:15px;margin-left:0;margin-top:7px;padding:10px;transition:.2s}.global-search-wrapper .global-search-container ul.search-result li.active-search-link{background-color:#197efb;color:#fff;outline:0}.global-search-wrapper .global-search-container ul.search-result li:focus,.global-search-wrapper .global-search-container ul.search-result li:focus-visible{border:0;box-shadow:none;outline:0}.global-search-wrapper .global-search-container span.global-search-not-match{display:inline-block;font-size:16px;margin-top:6px}.global-search-wrapper .global-search-body{max-height:400px;min-height:200px;overflow-y:auto;padding:20px}.global-search-wrapper .search-commands{background:#fff;box-shadow:0 -1px 0 0 #efefef,0 -2px 6px 0 rgba(70,90,150,.1);color:#606266;display:flex;font-size:14px;justify-content:space-around;padding:12px}.global-search-wrapper .search-commands ul li{font-size:12px;margin-top:7px;padding:10px}.global-search-wrapper .global-search-container input{background-color:#fff;border:1px solid #dadbdd;border-radius:7px;box-shadow:none;color:#606266;padding:9px 35px}.global-search-wrapper .global-search-container input:focus{border-color:#1a7efb!important;outline:none} assets/css/fluent-forms-elementor-widget.css000064400000007535147600120010015243 0ustar00.fluentform-widget-wrapper.hide-fluent-form-labels .ff-el-input--label{display:none!important}.fluentform-widget-wrapper.hide-error-message .ff-el-is-error .text-danger{display:none}.fluentform-widget-wrapper.fluentform-widget-align-left{margin:0 auto 0 0}.fluentform-widget-wrapper.fluentform-widget-align-center{float:none;margin:0 auto}.fluentform-widget-wrapper.fluentform-widget-align-right{margin:0 0 0 auto}.fluentform-widget-custom-radio-checkbox input[type=checkbox],.fluentform-widget-custom-radio-checkbox input[type=radio]{background:#ddd;height:15px;min-width:1px;outline:none;padding:3px;width:15px}.fluentform-widget-custom-radio-checkbox input[type=checkbox]:after,.fluentform-widget-custom-radio-checkbox input[type=radio]:after{border:0 solid transparent;content:"";display:block;height:100%;margin:0;padding:0;width:100%}.fluentform-widget-custom-radio-checkbox input[type=checkbox]:checked:after,.fluentform-widget-custom-radio-checkbox input[type=radio]:checked:after{background:#999;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:12px}.fluentform-widget-custom-radio-checkbox input[type=radio],.fluentform-widget-custom-radio-checkbox input[type=radio]:after{border-radius:50%}.fluentform-widget-wrapper .frm-fluent-form .ff-step-header{margin-bottom:0}.ff-el-progress-bar{align-items:center;display:flex;height:100%;justify-content:flex-end}.fluent-form-widget-step-header-yes .ff-step-header .ff-el-progress-status,.fluent-form-widget-step-progressbar-yes .ff-el-progress{display:block}.fluent-form-widget-step-header-yes .frm-fluent-form .ff-step-header,.fluent-form-widget-step-progressbar-yes .frm-fluent-form .ff-step-header{margin-bottom:20px}.fluentform-widget-section-break-content-left .ff-el-group.ff-el-section-break{text-align:left}.fluentform-widget-section-break-content-center .ff-el-group.ff-el-section-break{text-align:center}.fluentform-widget-section-break-content-right .ff-el-group.ff-el-section-break{text-align:right}.fluentform-widget-submit-button-full-width .ff-btn-submit{display:block;width:100%}.fluentform-widget-submit-button-center .ff-el-group .ff-btn-submit,.fluentform-widget-submit-button-center .ff-el-group.ff-text-left .ff-btn-submit,.fluentform-widget-submit-button-center .ff-el-group.ff-text-right .ff-btn-submit{align-items:center;display:flex;justify-content:center;margin:0 auto}.fluentform-widget-submit-button-right .ff-el-group .ff-btn-submit,.fluentform-widget-submit-button-right .ff-el-group.ff-text-left .ff-btn-submit,.fluentform-widget-submit-button-right .ff-el-group.ff-text-right .ff-btn-submit{float:right}.fluentform-widget-submit-button-left .ff-el-group .ff-btn-submit,.fluentform-widget-submit-button-left .ff-el-group.ff-text-left .ff-btn-submit,.fluentform-widget-submit-button-left .ff-el-group.ff-text-right .ff-btn-submit{float:left}.fluentform-widget-wrapper.hide-placeholder input::-webkit-input-placeholder,.fluentform-widget-wrapper.hide-placeholder textarea::-webkit-input-placeholder{opacity:0;visibility:hidden}.fluentform-widget-wrapper.hide-placeholder input:-moz-placeholder,.fluentform-widget-wrapper.hide-placeholder input::-moz-placeholder,.fluentform-widget-wrapper.hide-placeholder textarea:-moz-placeholder,.fluentform-widget-wrapper.hide-placeholder textarea::-moz-placeholder{opacity:0;visibility:hidden}.fluentform-widget-wrapper.hide-placeholder input:-ms-input-placeholder,.fluentform-widget-wrapper.hide-placeholder textarea:-ms-input-placeholder{opacity:0;visibility:hidden}.fluentform-widget-wrapper.hide-placeholder input::-ms-input-placeholder,.fluentform-widget-wrapper.hide-placeholder textarea::-ms-input-placeholder{opacity:0;visibility:hidden}.lity{z-index:9999!important} assets/css/fluent-forms-public.css000064400000071556147600120010013252 0ustar00.fluentform *{box-sizing:border-box}.fluentform .clearfix:after,.fluentform .clearfix:before,.fluentform .ff-el-group:after,.fluentform .ff-el-group:before,.fluentform .ff-el-repeat .ff-el-input--content:after,.fluentform .ff-el-repeat .ff-el-input--content:before,.fluentform .ff-step-body:after,.fluentform .ff-step-body:before{content:" ";display:table}.fluentform .clearfix:after,.fluentform .ff-el-group:after,.fluentform .ff-el-repeat .ff-el-input--content:after,.fluentform .ff-step-body:after{clear:both}@media (min-width:768px){.frm-fluent-form .ff-t-container{display:flex;gap:15px;width:100%}.frm-fluent-form .ff-t-container.ff_cond_v{display:flex!important}.frm-fluent-form .ff-t-container.mobile{display:block!important}.frm-fluent-form .ff-t-cell{display:flex;flex-direction:column;vertical-align:inherit;width:100%}.frm-fluent-form .ff-t-cell:first-of-type{padding-left:0}.frm-fluent-form .ff-t-cell:last-of-type{flex-grow:1;padding-right:0}.frm-fluent-form .ff-t-cell .ff_submit_btn_wrapper_custom{align-items:flex-end;display:flex;margin:auto 0 0}.frm-fluent-form .ff-t-cell .ff_submit_btn_wrapper_custom.ff-text-center{justify-content:center}.frm-fluent-form .ff-t-cell .ff_submit_btn_wrapper_custom.ff-text-right{justify-content:flex-end}.frm-fluent-form .ff-t-cell .ff_submit_btn_wrapper_custom button{margin-bottom:20px}}@media (max-width:768px){.ff-t-cell{margin-left:0!important}}.fluentform .ff-el-group{margin-bottom:20px}.fluentform .ff-el-group.ff-el-form-top .ff-el-input--label{display:block;float:none;text-align:left}.fluentform .ff-el-group.ff-el-form-top .ff-el-input--content{margin-bottom:0;margin-left:auto}@media (min-width:481px){.fluentform .ff-el-group.ff-el-form-left .ff-el-input--label{text-align:left}.fluentform .ff-el-group.ff-el-form-right .ff-el-input--label{text-align:right}}.fluentform .ff-el-input--label{display:inline-block;margin-bottom:5px;position:relative}.fluentform .ff-el-input--label.ff-el-is-required.asterisk-left label:before{color:var(--fluentform-danger);content:"* ";margin-right:3px}.fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label:after{color:var(--fluentform-danger);content:" *";margin-left:3px}.fluentform .ff-el-form-control{display:block;width:100%}.fluentform .ff-el-ratings{--fill-inactive:#d4d4d4;--fill-active:#ffb100;display:inline-block;line-height:40px}.fluentform .ff-el-ratings input[type=radio]{display:none;height:0!important;visibility:hidden!important;width:0!important}.fluentform .ff-el-ratings svg{fill:var(--fill-inactive);height:22px;transition:all .3s;vertical-align:middle;width:22px}.fluentform .ff-el-ratings svg.scale{transition:all .15s}.fluentform .ff-el-ratings label{display:inherit;margin-right:3px}.fluentform .ff-el-ratings label.active svg{fill:#ffb100;fill:var(--fill-active)}.fluentform .ff-el-ratings label:hover{cursor:pointer}.fluentform .ff-el-ratings label:hover svg{transform:scale(1.1)}.fluentform .ff-el-ratings label:hover svg.scalling{transform:scale(1.2)}.fluentform .ff-el-repeat .ff-el-form-control{margin-bottom:10px;width:100%}.fluentform .ff-el-repeat .ff-t-cell{padding:0 10px;width:100%}.fluentform .ff-el-repeat .ff-t-cell:first-child{padding-left:0}.fluentform .ff-el-repeat .ff-t-cell:last-child{padding-right:0}.fluentform .ff-el-repeat .ff-t-container{display:flex}.fluentform .ff-el-repeat-buttons-list span{cursor:pointer}@media (min-width:481px){.fluentform .ff-el-form-left .ff-el-input--label,.fluentform .ff-el-form-right .ff-el-input--label{float:left;margin-bottom:0;padding:10px 15px 0 0;width:180px}.fluentform .ff-el-form-left .ff-el-input--content,.fluentform .ff-el-form-right .ff-el-input--content{margin-left:180px}.fluentform .ff-el-form-left .ff-t-container .ff-el-input--label,.fluentform .ff-el-form-right .ff-t-container .ff-el-input--label{float:none;margin-bottom:5px;width:auto}.fluentform .ff-el-form-left .ff-t-container .ff-el-input--content,.fluentform .ff-el-form-right .ff-t-container .ff-el-input--content{margin-left:auto}}.fluentform .ff-el-form-right .ff-el-input--label{text-align:right}.fluentform .ff-el-is-error .text-danger{font-size:12px;margin-top:4px}.fluentform .ff-el-is-error .ff-el-form-check-label,.fluentform .ff-el-is-error .ff-el-form-check-label a{color:var(--fluentform-danger)}.fluentform .ff-el-is-error .ff-el-form-control{border-color:var(--fluentform-danger)}.fluentform .ff-el-tooltip{cursor:pointer;display:inline-block;margin-left:2px;position:relative;vertical-align:middle;z-index:2}.fluentform .ff-el-tooltip:hover{color:#000}.fluentform .ff-el-tooltip svg{fill:var(--fluentform-primary)}.fluentform .ff-el-help-message{color:var(--fluentform-secondary);font-size:12px;font-style:italic;margin-top:5px}.fluentform .ff-el-help-message.ff_ahm{margin-bottom:5px;margin-top:-3px}.fluentform .ff-el-progress{background-color:#e9ecef;border-radius:.25rem;font-size:.75rem;height:1.3rem;line-height:1.2rem;overflow:hidden}.fluentform .ff-el-progress-bar{background-color:var(--fluentform-primary);color:#fff;height:inherit;text-align:right;transition:width .3s;width:0}.fluentform .ff-el-progress-bar span{display:inline-block;padding:0 5px 0 0}.fluentform .ff-el-progress-status{font-size:.9rem;margin-bottom:5px}.fluentform .ff-el-progress-title{border-bottom:2px solid #000;display:inline-block;font-weight:600;list-style-type:none;margin:8px 0 0;padding-left:15px;padding-right:15px}.fluentform .ff-el-progress-title li{display:none}.fluentform .ff-float-right{float:right}.fluentform .ff-chat-gpt-loader-svg{border:1px solid #ced4da;box-shadow:0 1px 5px rgba(0,0,0,.1);margin-top:10px;padding:15px;position:relative}.fluentform .ff-hidden{display:none!important}.fluentform .ff-step-t-container{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.fluentform .ff-step-t-container .ff-t-cell{width:auto}.fluentform .ff-step-t-container.ff-inner_submit_container .ff-el-group{margin-bottom:0}.fluentform .ff-step-container{overflow:hidden}.fluentform .ff-step-header{margin-bottom:20px}.fluentform .ff-step-titles{counter-reset:step;display:table;margin:0 0 20px;overflow:hidden;padding:0;position:relative;table-layout:fixed;text-align:center;width:100%}.fluentform .ff-step-titles-navs{cursor:pointer}.fluentform .ff-step-titles li{color:#333;display:table-cell;font-size:12px;list-style-type:none;padding:0 10px;position:relative;vertical-align:top;width:auto}.fluentform .ff-step-titles li.ff_active,.fluentform .ff-step-titles li.ff_completed{color:#007bff}.fluentform .ff-step-titles li.ff_active:before,.fluentform .ff-step-titles li.ff_completed:before{background:#007bff;border:1px solid transparent;color:#fff}.fluentform .ff-step-titles li.ff_active:after,.fluentform .ff-step-titles li.ff_completed:after{background:#007bff}.fluentform .ff-step-titles li.ff_active:after{right:0}.fluentform .ff-step-titles li:before{background:#fff;border:1px solid;border-radius:3px;color:#333;content:counter(step);counter-increment:step;display:block;font-size:10px;line-height:20px;margin:0 auto 5px;position:relative;vertical-align:top;width:20px;z-index:10}.fluentform .ff-step-titles li:after{background:#000;content:"";height:2px;left:-50%;position:absolute;top:9px;width:100%;z-index:1}.fluentform .ff-step-titles li:first-child{padding-left:0}.fluentform .ff-step-titles li:first-child:after{left:50%}.fluentform .ff-step-titles li:last-child{padding-right:0}.fluentform .ff-step-titles li:last-child:after{left:-50%}.fluentform .ff-step-body{left:0;margin-bottom:15px;position:relative;top:0}.fluentform .ff-upload-progress{margin:10px 0}.fluentform .ff-upload-progress-inline{border-radius:3px;height:6px;margin:4px 0;position:relative}.fluentform .ff-upload-preview{border:1px solid #ced4da;border-radius:3px;margin-top:5px}.fluentform .ff-upload-preview:first-child{margin-top:0}.fluentform .ff-upload-preview-img{background-position:50%;background-repeat:no-repeat;background-size:cover;height:70px;width:70px}.fluentform .ff-upload-container-small-column-image{display:flex;flex-wrap:wrap-reverse;justify-content:center;text-align:center}.fluentform .ff-upload-details,.fluentform .ff-upload-preview{zoom:1;overflow:hidden}.fluentform .ff-upload-details,.fluentform .ff-upload-thumb{display:table-cell;vertical-align:middle}.fluentform .ff-upload-thumb{background-color:#eee}.fluentform .ff-upload-details{border-left:1px solid #ebeef0;padding:0 10px;position:relative;width:10000px}.fluentform .ff-upload-details .ff-inline-block,.fluentform .ff-upload-details .ff-upload-error{font-size:11px}.fluentform .ff-upload-remove{box-shadow:none!important;color:var(--fluentform-danger);cursor:pointer;font-size:16px;line-height:1;padding:0 4px;position:absolute;right:0;top:3px}.fluentform .ff-upload-remove:hover{color:var(--fluentform-danger);text-shadow:1px 1px 1px #000!important}.fluentform .ff-upload-filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fluentform .ff-table{margin-bottom:0}.fluentform .ff-checkable-grids{border:1px solid #f1f1f1;border-collapse:collapse}.fluentform .ff-checkable-grids thead>tr>th{background:#f1f1f1;border:0;padding:7px 5px;text-align:center}.fluentform .ff-checkable-grids tbody>tr>td{border:0;padding:7px 5px}.fluentform .ff-checkable-grids tbody>tr>td:not(:first-of-type){text-align:center}.fluentform .ff-checkable-grids tbody>tr:nth-child(2n)>td{background:#f1f1f1}.fluentform .ff-checkable-grids tbody>tr:nth-child(2n-1)>td{background:#fff}.fluentform .ff-screen-reader-element{clip:rect(0,0,0,0)!important;word-wrap:normal!important;border:0!important;height:1px!important;margin:0!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important}.fluentform .ff_upload_btn.ff-btn{background:#6f757e;border-color:#6f757e;color:#fff;cursor:pointer;display:inline-block;padding:10px 20px}.fluentform .ff_upload_btn.ff-btn:hover{background-color:#91959b;outline:none}.fluentform .ff_upload_btn.ff-btn:focus-visible{background-color:#91959b;outline:none}.fluentform .ff-el-tc{border:none;border-collapse:collapse;display:table;width:100%}.fluentform .ff-el-tc label.ff_tc_label{display:table-row}.fluentform .ff-el-tc label.ff_tc_label>span{padding-top:8px!important;width:20px}.fluentform .ff-el-tc label.ff_tc_label>div,.fluentform .ff-el-tc label.ff_tc_label>span{display:table-cell}.fluentform .ff-saved-state-input .ff_input-group-text{background-color:#1a7efb;border-color:#1a7efb;margin-left:-1px}.fluentform .ff-saved-state-input .ff_input-group-text:hover{background-color:#4898fc;border-color:#4898fc;opacity:1}.fluentform .ff-saved-state-input .ff_input-group-text img{width:28px}.fluentform .ff-saved-state-link input{text-overflow:ellipsis}.fluentform .ff-hide-group{display:none}.fluentform .ff_t_c{margin:0;padding:0 5px 0 0}.fluentform .ff_t_c p{margin:0;padding:0}.fluentform .force-hide{border:0;display:block;height:0;margin:0;opacity:0;padding:0;visibility:hidden}.fluentform input[type=checkbox],.fluentform input[type=radio]{display:inline-block;margin:0}.fluentform input[type=checkbox]{-webkit-appearance:checkbox}.fluentform input[type=radio]{-webkit-appearance:radio}.fluentform .text-danger{color:var(--fluentform-danger)}.fluentform .iti{width:100%}.fluentform .iti__selected-flag{background:rgba(0,0,0,.1);border-bottom-left-radius:6px;border-top-left-radius:6px}.fluentform .ff_gdpr_field{margin-right:5px}.fluentform form.ff-form-has-steps .ff-btn-submit{visibility:hidden}.fluentform form.ff-form-has-steps .ff_submit_btn_wrapper{text-align:right}.fluentform textarea{max-width:100%}.fluentform .ff-el-form-check{margin-bottom:5px}.fluentform .ff-el-form-check span.ff_span{margin-left:6px}.fluentform .ff-el-form-check-label .ff-el-form-check-input{position:relative;top:-2px;vertical-align:middle}.fluentform .ff-inline-block{display:inline-block}.fluentform .ff-inline-block+.ff-inline-block{margin-left:10px}.fluentform .ff-text-left{text-align:left}.fluentform .ff-text-center{text-align:center}.fluentform .ff-text-right{text-align:right}.fluentform .ff-el-form-control:focus~.ff-el-help-message{display:block!important}.fluentform .ff-el-form-control::-moz-placeholder{color:#868e96;opacity:1}.fluentform .ff-el-form-control::placeholder{color:#868e96;opacity:1}.fluentform .ff-el-form-control:disabled,.fluentform .ff-el-form-control[readonly]:not(.flatpickr-input){background-color:#e9ecef;opacity:1}.fluentform-step{float:left;height:1px;overflow-x:hidden;padding:3px}.fluentform-step.active{height:auto}.fluentform-step .ff_summary_container{font-size:14px;margin-top:10px}.step-nav .next{float:right}.fluentform .has-conditions{display:none}.ff-message-success{border:1px solid #ced4da;box-shadow:0 1px 5px rgba(0,0,0,.1);margin-top:10px;padding:15px;position:relative}.ff-errors-in-stack{display:none;margin-top:15px}.ff-errors-in-stack .error{font-size:14px;line-height:1.7}.ff-errors-in-stack .error-clear{cursor:pointer;margin-left:5px;padding:0 5px}.ff-chat-reply-container div p{border-radius:6px;margin-top:12px;padding:20px 16px}.ff-chat-reply-container div .skeleton{animation:skeleton-loading 2s linear infinite alternate;padding:24px}@keyframes skeleton-loading{0%{background-color:#e3e6e8}to{background-color:#f0f3f5}}.ff-el-chat-container{position:relative}.ff-el-chat-container textarea{outline:none;position:relative;resize:none}.ff-el-chat-container .ff_btn_chat_style{background:transparent;border:none;position:absolute;right:10px;top:38%}.ff-el-chat-container .ff_btn_chat_style svg:hover{cursor:pointer;opacity:.8;outline:0;text-decoration:none;transition:all .4s}.iti-mobile .iti--container{z-index:9999}.grecaptcha-badge{visibility:hidden}.fluentform .hidden_field{display:none!important}.fluentform .ff_force_hide{display:none!important;visibility:hidden!important}.fluentform .ff_scrolled_text{background:#e9ebed;height:200px;overflow:scroll;padding:10px 15px}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check{display:-moz-inline-stack;display:inline-block;float:none!important;margin:0 0 10px;position:relative;width:auto!important}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label{margin:0}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label:focus-within span{background-color:#b3d4fc}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check input{margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label>span{-webkit-appearance:none;background:#fff;border:1px solid #dcdfe6;border-left:0;border-radius:0;box-sizing:border-box;color:#606266;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1;margin:0;outline:none;padding:12px 20px;position:relative;text-align:center;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;vertical-align:middle;white-space:nowrap}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label>span:hover{color:#1a7efb}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check.ff-el-image-holder{border:1px solid #dcdfe5;overflow:hidden}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check.ff-el-image-holder span{border:none!important;border-radius:0!important;margin-left:-1px;width:100%}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check.ff-el-image-holder.ff_item_selected{border-color:#1a7efb}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check:first-child label>span{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check:last-child label>span{border-radius:0 4px 4px 0}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check.ff_item_selected label>span{background-color:#1a7efb;border-color:#1a7efb;box-shadow:-1px 0 0 0 #8cc5ff;color:#fff}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check.ff_item_selected:first-child label>span{border-left-color:#1a7efb}@media only screen and (max-width:768px){.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check{display:block;width:100%}.fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label>span{border:1px solid!important;border-radius:4px!important;box-shadow:none!important;display:block;width:100%}}.fluentform div.ff-el-form-hide_label>.ff-el-input--label{display:none;visibility:hidden}.fluentform .ff_file_upload_holder{margin-bottom:0}.fluentform .ff-dropzone .ff_upload_btn.ff-btn{background:rgba(223,240,255,.13);border:1px dashed var(--fluentform-primary);border-radius:var(--fluentform-border-radius);color:var(--fluentform-secondary);display:block;padding:35px;text-align:center;transition:all .2s ease;width:100%}.fluentform .ff-dropzone .ff_upload_btn.ff-btn:hover{background:rgba(223,240,255,.49)}.fluentform .ff-dropzone .ff-uploaded-list{margin-top:10px}.fluentform .ff_center{text-align:center}.fluentform .ff_right{text-align:right}.fluentform .ff_left{text-align:left}.fluentform .ff-form-inline .ff-t-container,.fluentform .ff-form-inline>.ff-el-group,.fluentform .ff-form-inline>.ff-name-field-wrapper{display:inline-block;margin-right:10px;vertical-align:top}.fluentform .ff-form-inline .ff-t-container .ff-t-cell .ff-el-input--label,.fluentform .ff-form-inline .ff-t-container>.ff-el-input--label,.fluentform .ff-form-inline>.ff-el-group .ff-t-cell .ff-el-input--label,.fluentform .ff-form-inline>.ff-el-group>.ff-el-input--label,.fluentform .ff-form-inline>.ff-name-field-wrapper .ff-t-cell .ff-el-input--label,.fluentform .ff-form-inline>.ff-name-field-wrapper>.ff-el-input--label{display:none}.fluentform .ff-form-inline .ff-t-container .ff-el-input--content,.fluentform .ff-form-inline>.ff-el-group .ff-el-input--content,.fluentform .ff-form-inline>.ff-name-field-wrapper .ff-el-input--content{margin-left:0}.fluentform .ff-form-inline .ff-t-container:last-child,.fluentform .ff-form-inline>.ff-el-group:last-child,.fluentform .ff-form-inline>.ff-name-field-wrapper:last-child{margin-right:0}.fluentform .ff-t-container .ff-name-title{width:40%}.fluentform .ff_hide_label .ff-el-input--label{display:none}.fluentform .field-value{white-space:pre-line}.fluentform .ff-el-group .ff-read-only{background-color:#e9ecef!important;opacity:1;pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.fluentform .ff-el-group .ff-read-only:focus{outline:none}.fluentform label.ff-el-image-input-src{background-position:50%;background-repeat:no-repeat;background-size:cover;cursor:pointer;display:block;height:200px;width:200px}.fluentform .ff-el-image-holder{float:left;margin-bottom:20px;margin-right:20px;width:200px}.fluentform .ff-el-image-holder .ff-el-form-check-label{padding-left:1px}.fluentform .ff_el_checkable_photo_holders{display:block;margin-bottom:-20px;overflow:hidden}.fluentform .select2-container{width:100%!important}.fluentform .select2-container .select2-selection__rendered li{margin:0}.fluentform .select2-container .select2-search--inline>input{height:calc(2.25rem + 2px);line-height:1.5;margin-top:0;padding:.375rem 1.75rem .375rem .75rem}.fluentform .ff-el-form-bottom{display:flex;flex-direction:column-reverse}.fluentform .ff-el-form-bottom .ff-el-input--label{margin-bottom:0;margin-top:5px}.fluentform .mce-tinymce.mce-container.mce-panel{border:1px solid #ced4da}.fluentform .ff_input-group{align-items:stretch;display:flex;flex-wrap:wrap;position:relative;width:100%}.fluentform .ff_input-group>.ff-el-form-control:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;display:inline-block;width:auto}.fluentform .ff_input-group>.ff-el-form-control:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fluentform .ff_input-group .ff-el-form-control{flex:1 1 auto;margin-bottom:0;position:relative;width:1%}.fluentform .ff_input-group-prepend{margin-right:-1px}.fluentform .input-group-append{margin-left:-1px}.fluentform .ff_input-group-append,.fluentform .ff_input-group-prepend{display:flex}.fluentform .ff_input-group>.ff_input-group-prepend>.ff_input-group-text{border-bottom-right-radius:0;border-top-right-radius:0}.fluentform .ff_input-group>.ff_input-group-append>.ff_input-group-text{border-bottom-left-radius:0;border-top-left-radius:0}.fluentform .ff_input-group-text{align-items:center;background-color:#e9ecef;border-radius:.25rem;color:#495057;display:flex;font-size:1rem;font-weight:400;line-height:1.5;margin-bottom:0;padding:.375rem .75rem;text-align:center;white-space:nowrap}.fluentform .ff_coupon_wrapper .ff_input-group-append{cursor:pointer}.fluentform .ff_coupon_wrapper .ff_input-group-append:hover .ff_input-group-text{background:#e3e8ed}.fluentform ul.ff_coupon_responses{list-style:none;margin:0;padding:0}.fluentform ul.ff_coupon_responses li{padding-top:5px}.fluentform ul.ff_coupon_responses span.error-clear{color:#ff5050;font-weight:700;margin-right:10px}.fluentform ul.ff_coupon_responses .ff_error{color:#f56c6c;cursor:pointer}.fluentform ul.ff_coupon_responses .ff_success{color:#28a745}.fluentform .ff-btn.disabled{opacity:.65}.fluentform .ff-btn.ff-working{position:relative;transition:all .3s ease}.fluentform .ff-btn.ff-working:after{animation:ff-progress-anim 4s 0s infinite;background:hsla(0,0%,100%,.4);bottom:0;content:"";height:5px;left:0;position:absolute;right:0}.fluentform .ff-btn-block{display:block;width:100%}.fluentform .ff-btn-block+.ff-el-btn-block{margin-top:8px}.fluentform .ff_submitting{pointer-events:none}@keyframes ff-progress-anim{0%{width:0}5%{width:0}10%{width:15%}30%{width:40%}50%{width:55%}80%{width:100%}95%{width:100%}to{width:0}}.ff_modal_container{background:#fff;max-height:90vh!important;max-width:900px;overflow:auto;padding:30px}@media only screen and (min-width:1000px){.ff_modal_container{width:900px}}.select2-results__option{margin:0}.fluentform span.select2.select2-container:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #495057;content:"";position:absolute;right:10px;top:50%;transform:translateY(-50%)}.ff_pointer{cursor:pointer}.ff_net_table{border:0;border-collapse:separate;border-spacing:0;line-height:1.4;margin:0;padding:0;table-layout:fixed;width:100%}.ff_net_table th{border:none;font-size:13px;font-weight:400;padding:8px 0;text-align:center;vertical-align:bottom}.ff_net_table th .ff_not-likely{float:left;text-align:left}.ff_net_table th .ff_extremely-likely{float:right;text-align:right}.ff_net_table tbody tr{background:none;border:0}.ff_net_table tbody tr td{background-color:#fff;border:1px solid #ddd;border-left:0;padding:0;text-align:center;vertical-align:middle}.ff_net_table tbody tr td input[type=radio]:checked+label{background-color:#4caf50;color:#fff}.ff_net_table tbody tr td:first-of-type{border-left:1px solid #ddd;border-radius:5px 0 0 5px}.ff_net_table tbody tr td:last-child{border-radius:0 5px 5px 0}.ff_net_table tbody tr td label{border:0;color:#444;cursor:pointer;display:block;font-size:16px;font-weight:700;height:40px;line-height:40px;margin:0;position:relative;width:100%}.ff_net_table tbody tr td label:after{border:0;content:"";height:100%;left:0;position:absolute;top:0;width:100%}.ff_net_table tbody tr td label:hover:after{border:2px solid #4caf50}.ff-el-pop-content{background-color:#000;border-radius:3px;box-shadow:0 5px 10px rgba(0,0,0,.2);color:#fff;font-size:11px;line-height:1.2;padding:10px;position:absolute;text-align:center;transform-origin:center bottom;z-index:9999}.ff-checkable-grids.mobile{border:0}.ff-checkable-grids.mobile tbody tr{padding-top:0!important}.ff-checkable-grids.mobile tbody tr:nth-child(2n)>td{background:transparent}.ff-checkable-grids.mobile tbody td{padding-left:10px!important;text-align:left!important}.ff-checkable-grids.mobile tbody td.ff_grid_header{background-color:#eee!important;margin:0}.ff-checkable-grids.mobile tbody td:after{content:attr(data-label);display:inline-block;letter-spacing:.5pt;padding-left:10px;white-space:nowrap}span.ff-el-rating-text{line-height:100%;padding-left:5px;vertical-align:bottom}table.ff_repeater_table{background:transparent!important;border:0;border-collapse:collapse;border-spacing:0;margin:0 0 5px;padding:0;table-layout:auto!important;vertical-align:middle;width:100%}table.ff_repeater_table th{font-size:90%;padding:0;text-align:left}table.ff_repeater_table th,table.ff_repeater_table tr{background:transparent!important;border:0;padding-top:5px}table.ff_repeater_table td{background:transparent!important;border:0;max-width:100%;padding:0 15px 15px 0;text-align:left;width:282px}table.ff_repeater_table tbody tr:only-child td .repeat-minus{visibility:hidden}table.ff_repeater_table .ff-el-group{margin:0;padding:0}table.ff_repeater_table .repeat_btn{padding-right:0;vertical-align:middle;width:30px}table.ff_repeater_table .repeat_btn span.ff-icon{cursor:pointer;margin-right:10px}table.ff_repeater_table .repeat_btn span.ff-icon.icon-minus-circle{margin-right:0}table.ff_repeater_table.repeat-maxed .repeat_btn .repeat-plus{visibility:hidden}.ff-repeater-container{display:flex;flex-direction:column}.ff-repeater-container .repeat_btn{align-self:center;display:flex}.ff-repeater-container .ff_repeater_cont_row,.ff-repeater-container .ff_repeater_header{display:flex;flex-wrap:nowrap}.ff-repeater-container .ff_repeater_cont_row:only-child .repeat-minus{visibility:hidden}.ff-repeater-container .ff_repeater_cell,.ff-repeater-container .ff_repeater_header_item{box-sizing:border-box;padding:0 15px 0 0;text-align:left}.ff-repeater-container .ff-el-repeat-buttons-list{display:flex;margin-top:34%}.ff_repeater_table.mobile tbody td{display:block;padding:10px;width:100%}.ff_repeater_table.mobile tbody td .ff-el-group{margin-top:6px}.ff_repeater_table.mobile tbody td:before{clear:both;content:attr(data-label);display:block;font-size:.875em;letter-spacing:.5pt;white-space:nowrap}.ff-el-section-break .ff-el-section-title{font-weight:600;margin-bottom:5px}.ff-el-section-break hr{background-color:#dadbdd;border:none;height:1px;margin-bottom:10px}table.ff_flexible_table.ff-checkable-grids{width:100%}.ff_flexible_table.mobile thead{left:-9999px;position:absolute;top:-9999px}.ff_flexible_table.mobile tbody td{display:block;padding:10px;width:100%}.ff_flexible_table.mobile tbody tr{background:#fff;border-bottom:1px solid #ced4da;border-top:1px solid #ced4da;border-color:#ced4da;border-style:solid;border-width:2px 1px 4px;display:block;margin:16px 0 10px;position:relative}@media only screen and (min-width:641px){.fluentform .ff-el-group.ff_list_3col .ff-el-form-check{display:-moz-inline-stack;display:inline-block;margin:0 0 2px;min-height:28px;padding-right:16px;vertical-align:top;width:33.3%}.fluentform .ff-el-group.ff_list_2col .ff-el-form-check{display:-moz-inline-stack;display:inline-block;margin:0;min-height:28px;padding-right:16px;vertical-align:top;width:50%}.fluentform .ff-el-group.ff_list_4col .ff-el-form-check{display:-moz-inline-stack;display:inline-block;margin:0;min-height:28px;padding-right:16px;vertical-align:top;width:25%}.fluentform .ff-el-group.ff_list_5col .ff-el-form-check{display:-moz-inline-stack;display:inline-block;margin:0;min-height:28px;padding-right:16px;vertical-align:top;width:20%}.fluentform .ff-el-group.ff_list_inline .ff-el-form-check{display:-moz-inline-stack;display:inline-block;float:none!important;margin:0 15px 10px 0;width:auto!important}}@media (max-width:767px){table.ff_flexible_table,table.ff_flexible_table.ff-checkable-grids{border:0}table.ff_flexible_table.ff-checkable-grids tbody tr{padding-top:0!important}table.ff_flexible_table.ff-checkable-grids tbody tr td.ff_grid_header{background-color:#eee!important;margin:0;text-align:center}table.ff_flexible_table.ff-checkable-grids tbody tr td{text-align:left!important}table.ff_flexible_table.ff-checkable-grids tbody tr td:before{content:none!important}table.ff_flexible_table.ff-checkable-grids tbody tr td:after{content:attr(data-label);display:inline-block;letter-spacing:.5pt;padding-left:10px;white-space:nowrap}table.ff_flexible_table.ff-checkable-grids tbody tr:nth-child(2n)>td{background:transparent}table.ff_flexible_table thead{left:-9999px;position:absolute;top:-9999px}table.ff_flexible_table tbody tr{background:#fff;border-bottom:1px solid #ced4da;border-top:1px solid #ced4da;border-color:#ced4da;border-style:solid;border-width:2px 1px 4px;display:block;margin:16px 0 10px;padding-top:12px!important;position:relative}table.ff_flexible_table tbody tr td{display:block;margin-left:8px;margin-right:8px;padding:5px}table.ff_flexible_table tbody tr td:before{clear:both;content:attr(data-label);display:block;font-size:.875em;letter-spacing:.5pt;white-space:nowrap}table.ff_flexible_table tbody tr td.repeat_btn{background-color:#eee;margin-left:0;padding:10px!important;width:100%!important}table.ff_flexible_table tbody tr td.repeat_btn .ff-el-repeat-buttons-list{float:none;width:100%}}@media only screen and (max-width:768px){.lity-container{width:96%}.fluentform .ff-t-container .ff-name-title{width:100%}.ff_repeater_cont_row{background:#fff;border-bottom:1px solid #ced4da;border-top:1px solid #ced4da;border-color:#ced4da;border-style:solid;border-width:2px 1px 4px;display:flex;flex-direction:column;margin:16px 0 10px;padding-top:12px}.ff_repeater_cont_row .ff_repeater_cell{display:block;margin-left:8px;margin-right:8px;padding:5px}.ff_repeater_cont_row .ff-t-cell{flex-basis:100%!important;max-width:100%;width:100%}.ff_repeater_cont_row .ff_repeater_body[role=rowgroup]{display:flex;flex-direction:column}.ff-repeater-container .ff-el-repeat-buttons-list{margin-top:-28px}.ff-el-repeat-buttons-list{margin-top:0}} assets/css/fluent-all-forms-rtl.css000064400000202734147600120010013335 0ustar00@font-face{font-display:block;font-family:fluentform;font-style:normal;font-weight:400;src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd);src:url(../fonts/fluentform.eot?139537697ddd09683b8f132e4179c0cd) format("embedded-opentype"),url(../fonts/fluentform.ttf?5fd4a17c106b6a8cae5c741ddbbe132c) format("truetype"),url(../fonts/fluentform.woff?31c9335ad614611f342d70917260470e) format("woff"),url(../fonts/fluentform.svg?1d0875320e0e3980ae21f2d18c21897a) format("svg")}[class*=" ff-icon-"],[class^=ff-icon-]{speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:fluentform!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.ff-icon-tablet:before{content:"\e96f"}.ff-icon-mobile:before{content:"\e970"}.ff-icon-monitor:before{content:"\e971"}.ff-icon-fullscreen-out:before{content:"\e96b"}.ff-icon-menu:before{content:"\e96a"}.ff-icon-play:before{content:"\e969"}.ff-icon-bug:before{content:"\e925"}.ff-icon-star-line:before{content:"\e94e"}.ff-icon-heart-clock:before{content:"\e966"}.ff-icon-microphone:before{content:"\e967"}.ff-icon-handshake:before{content:"\e968"}.ff-icon-ink-pen:before{content:"\e91e"}.ff-icon-arrow-left:before{content:"\e919"}.ff-icon-user-filled:before{content:"\e902"}.ff-icon-payment:before{content:"\e900"}.ff-icon-play-circle-filled:before{content:"\e901"}.ff-icon-promotion:before{content:"\e903"}.ff-icon-share-filled:before{content:"\e904"}.ff-icon-warning-filled:before{content:"\e905"}.ff-icon-more-vertical:before{content:"\e906"}.ff-icon-gift:before{content:"\e907"}.ff-icon-cursor:before{content:"\e908"}.ff-icon-hash:before{content:"\e909"}.ff-icon-photo:before{content:"\e90a"}.ff-icon-italic-light:before{content:"\e90b"}.ff-icon-keyboard:before{content:"\e90c"}.ff-icon-layers:before{content:"\e90d"}.ff-icon-left-align:before{content:"\e90e"}.ff-icon-light-10:before{content:"\e90f"}.ff-icon-map-pin:before{content:"\e910"}.ff-icon-lock:before{content:"\e911"}.ff-icon-email:before{content:"\e912"}.ff-icon-paragraph:before{content:"\e913"}.ff-icon-user:before{content:"\e914"}.ff-icon-phone-outgoing:before{content:"\e915"}.ff-icon-play-circle:before{content:"\e916"}.ff-icon-puzzle:before{content:"\e917"}.ff-icon-redo:before{content:"\e918"}.ff-icon-repeat:before{content:"\e91a"}.ff-icon-right-align:before{content:"\e91b"}.ff-icon-rocket-filled:before{content:"\e91c"}.ff-icon-setting:before{content:"\e91d"}.ff-icon-light-26:before{content:"\e91f"}.ff-icon-trash:before{content:"\e920"}.ff-icon-underline-alt:before{content:"\e921"}.ff-icon-undo:before{content:"\e922"}.ff-icon-upload-alt:before{content:"\e923"}.ff-icon-web-development:before{content:"\e924"}.ff-icon-underline:before{content:"\e926"}.ff-icon-italic:before{content:"\e927"}.ff-icon-filter-alt:before{content:"\e928"}.ff-icon-files:before{content:"\e929"}.ff-icon-file-add:before{content:"\e92a"}.ff-icon-fullscreen:before{content:"\e92b"}.ff-icon-donut-chart:before{content:"\e92c"}.ff-icon-dollar:before{content:"\e92d"}.ff-icon-document-light:before{content:"\e92e"}.ff-icon-document:before{content:"\e92f"}.ff-icon-document-alt:before{content:"\e930"}.ff-icon-design:before{content:"\e931"}.ff-icon-copy-filled:before{content:"\e932"}.ff-icon-copy:before{content:"\e933"}.ff-icon-code-alt:before{content:"\e934"}.ff-icon-code:before{content:"\e935"}.ff-icon-close-circle-filled:before{content:"\e936"}.ff-icon-chevron-double-left:before{content:"\e937"}.ff-icon-check:before{content:"\e938"}.ff-icon-center-align:before{content:"\e939"}.ff-icon-calendar:before{content:"\e93a"}.ff-icon-bookmark:before{content:"\e93b"}.ff-icon-bold:before{content:"\e93c"}.ff-icon-bold-light:before{content:"\e93d"}.ff-icon-bank:before{content:"\e93e"}.ff-icon-arrow-right:before{content:"\e93f"}.ff-icon-plus-filled:before{content:"\e940"}.ff-icon-plus:before{content:"\e941"}.ff-icon-checkmark-square:before{content:"\e942"}.ff-icon-download:before{content:"\e943"}.ff-icon-sort-circle-down:before{content:"\e944"}.ff-icon-eye-off:before{content:"\e945"}.ff-icon-eye:before{content:"\e946"}.ff-icon-flag:before{content:"\e947"}.ff-icon-link:before{content:"\e948"}.ff-icon-list:before{content:"\e949"}.ff-icon-move:before{content:"\e94a"}.ff-icon-plus-alt:before{content:"\e94b"}.ff-icon-radio-button-on:before{content:"\e94c"}.ff-icon-search:before{content:"\e94d"}.ff-icon-star:before{content:"\e94f"}.ff-icon-sort-down-alt:before{content:"\e950"}.ff-icon-close:before{content:"\e951"}.ff-icon-expand:before{content:"\e952"}.ff-icon-eye-filled:before{content:"\e953"}.ff-icon-info-filled:before{content:"\e954"}.ff-icon-keypad:before{content:"\e955"}.ff-icon-more-horizontal:before{content:"\e956"}.ff-icon-setting-filled:before{content:"\e957"}.ff-icon-strikethrough:before{content:"\e958"}.ff-icon-text:before{content:"\e959"}.ff-icon-decrease-edit:before{content:"\e95a"}.ff-icon-sort-down:before{content:"\e95b"}.ff-icon-increase-edit:before{content:"\e95c"}.ff-icon-list-ordered:before{content:"\e95d"}.ff-icon-quote-left:before{content:"\e95e"}.ff-icon-slider-horizontal:before{content:"\e95f"}.ff-icon-text-alt:before{content:"\e960"}.ff-icon-upload:before{content:"\e961"}.ff-icon-edit:before{content:"\e962"}.ff-icon-filter:before{content:"\e963"}.ff-icon-refresh:before{content:"\e964"}.ff-icon-task:before{content:"\e965"}.ff-icon-sort:before{content:"\e96c"}.ff-icon-captcha:before{content:"\e96d"}.ff-icon-clear:before{content:"\e96e"} .mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-3{margin-top:16px!important}.mt-4{margin-top:24px!important}.mt-5{margin-top:32px!important}.mt-6{margin-top:40px!important}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.mb-3{margin-bottom:16px!important}.mb-4{margin-bottom:24px!important}.mb-5{margin-bottom:32px!important}.mb-6{margin-bottom:40px!important}.mr-1{margin-left:4px!important}.mr-2{margin-left:8px!important}.mr-3{margin-left:16px!important}.mr-4{margin-left:24px!important}.mr-5{margin-left:32px!important}.mr-6{margin-left:40px!important}.ml-1{margin-right:4px!important}.ml-2{margin-right:8px!important}.ml-3{margin-right:16px!important}.ml-4{margin-right:24px!important}.ml-5{margin-right:32px!important}.ml-6{margin-right:40px!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.mr-0{margin-left:0!important}.ml-0{margin-right:0!important}.ff_list_button_item:not(:last-child){margin-bottom:4px}.ff_list_button_item.active .ff_list_button_link{background-color:#4b4c4d;color:#fff}.ff_list_button_item.has_sub_menu .ff_list_button_link{position:relative}.ff_list_button_item.has_sub_menu .ff_list_button_link:after{content:"\e6df";font-family:element-icons;position:absolute;left:15px;transition:.3s}.ff_list_button_item.has_sub_menu.is-submenu{color:inherit;font-style:inherit;font-weight:inherit;margin-right:0}.ff_list_button_item.has_sub_menu.is-submenu .ff_list_button_link:after{transform:rotate(180deg)}.ff_list_button_link{background-color:transparent;border-radius:5px;color:#1e1f21;display:block;font-size:16px;padding:12px 18px;transition:.2s}.ff_list_button_link:hover{background-color:#f5f5f3;color:#1e1f21}.ff_list_button_small .ff_list_button_link{border-radius:6px;font-size:15px;padding:6px 14px}.ff_list_button_s1 .ff_list_button_item.active .ff_list_button_link{background-color:#f5f5f3;color:#1e1f21;font-weight:600}.ff_list_button_s1 .ff_list_button_link{color:#606266;font-size:15px}.ff_list li:not(:last-child){margin-bottom:12px}.ff_list li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list li a:hover{color:#1a7efb}.ff_list_submenu{background-color:#fff;display:none;margin-right:20px;margin-top:10px;position:relative}.ff_list_submenu:after{background-color:#e4e2df;content:"";height:100%;right:0;position:absolute;top:0;width:2px}.ff_list_submenu li{position:relative}.ff_list_submenu li:after{background-image:url(../images/curve-line.svg?ad01d82f4c085066c0a3accc820c65ac);background-repeat:no-repeat;content:"";height:10px;right:0;position:absolute;top:50%;transform:translateY(-50%);width:12px}.ff_list_submenu li:last-child:before{background-color:#fff;bottom:0;content:"";height:18px;right:0;position:absolute;width:2px;z-index:1}.ff_list_submenu li a{border-radius:6px;color:#606266;display:block;font-size:15px;margin-right:15px;max-width:197px;overflow:hidden;padding:10px;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_list_submenu li a:hover{background-color:#efefef}.ff_list_submenu li.active a{background-color:#efefef;color:#1e1f21}.ff_list_border_bottom>li{font-size:15px;position:relative}.ff_list_border_bottom>li:not(:last-child){border-bottom:1px solid #ececec;margin-bottom:12px;padding-bottom:12px}.ff_list_border_bottom>li a{color:#1e1f21;display:block;font-size:15px;transition:.2s}.ff_list_border_bottom>li a.lead-text{color:#1a7efb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff_list_border_bottom>li a.lead-text.lead-url{white-space:unset;word-break:break-all}.ff_submission_info_list li{display:flex}.ff_submission_info_list .lead-title{flex-shrink:0;width:120px}.ff_submission_info_list .truncate{max-width:228px}.el-button--upload{border-style:dashed;justify-content:center;padding:24px;width:100%}.el-button--upload .el-icon{font-size:22px}.ff_file_upload_result{align-items:center;background-color:#fafafa;border:1px solid #f2f2f2;border-radius:8px;display:flex;overflow:hidden;padding:10px;position:relative}.ff_file_upload_result .el-button{position:absolute;left:10px;top:50%;transform:translateY(-50%)}.ff_file_upload_result+.ff_file_upload_result{margin-top:10px}.ff_file_upload_preview{height:44px;width:44px}.ff_file_upload_preview img{border-radius:4px;height:100%;-o-object-fit:cover;object-fit:cover;width:44px}.ff_file_upload_preview+.ff_file_upload_data{margin-right:15px}.ff_file_upload_description{color:#1e1f21;font-size:14px}.ff_file_upload_size{font-size:12px;margin-top:4px}body{background-color:#f2f2f2;color:#606266}#wpcontent{padding-right:0}#wpbody-content *{box-sizing:border-box}h1,h2,h3,h4,h5,h6{color:#1e1f21;margin:0}ol,ul{list-style:none;margin:0;padding:0}h1{font-size:24px}h2{font-size:23px}h3{font-size:22px;line-height:1.4}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}p{font-size:15px}p:last-child{margin:0}hr{border-bottom-color:#ececec;border-top:0}dd,li{margin-bottom:0}a{color:#1a7efb;font-weight:400;text-decoration:none}a:focus{box-shadow:none;outline:none}a:hover{color:#1a7efb}.notice,div.error,div.updated{margin:8px 24px 2px}.fluentform-admin-notice.notice-error{margin:8px 24px;padding:10px 20px}.fluentform-admin-notice.notice-error h3{font-size:18px;margin:10px 0}.ff_form_wrap_area .fluentform-admin-notice{margin:8px 0}.ff_backdrop{background:rgba(0,0,0,.5);bottom:0;right:0;position:fixed;left:0;top:0;z-index:999999999}.w-100{width:100%!important}.ff-mw-100{max-width:100%!important}.h-100{height:100%!important}.ff_form_wrap{padding:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{-webkit-appearance:none;background-color:#fff;border-color:#dadbdd;border-radius:7px;box-shadow:none;color:#606266;padding:0 15px}input[type=color]:focus,input[type=color]:hover,input[type=date]:focus,input[type=date]:hover,input[type=datetime-local]:focus,input[type=datetime-local]:hover,input[type=datetime]:focus,input[type=datetime]:hover,input[type=email]:focus,input[type=email]:hover,input[type=month]:focus,input[type=month]:hover,input[type=number]:focus,input[type=number]:hover,input[type=password]:focus,input[type=password]:hover,input[type=search]:focus,input[type=search]:hover,input[type=tel]:focus,input[type=tel]:hover,input[type=text]:focus,input[type=text]:hover,input[type=time]:focus,input[type=time]:hover,input[type=url]:focus,input[type=url]:hover,input[type=week]:focus,input[type=week]:hover,textarea:focus,textarea:hover{border-color:#1a7efb!important}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{box-shadow:none}input[type=number]{padding-left:0}input[type=checkbox]:disabled{opacity:0}.ff-select{-webkit-appearance:none!important;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat left 14px top 55%!important;background-blend-mode:hard-light;background-size:16px 16px!important;border:1px solid #dadbdd!important;border-radius:7px!important;box-sizing:border-box!important;color:#606266!important;display:inline-block!important;height:40px!important;line-height:40px!important;max-width:inherit!important;outline:0!important;outline:none!important;padding:0 20px 0 29px!important;text-overflow:ellipsis;transition:border-color .2s cubic-bezier(.645,.045,.355,1)!important}.ff-select:focus{box-shadow:none!important;outline:none!important}.ff-select-block{display:block;width:100%}.ff-select-small{background-position-x:38px!important;border-radius:5px!important;height:32px!important;line-height:32px!important;padding-right:10px!important;padding-left:24px!important}.ff-select-small.condition-field,.ff-select-small.condition-operator,.ff-select-small.condition-value{background-position-x:10%!important}.ff_filter_selected{background-color:#e8f2ff;border-color:#bad8fe;color:#1a7efb}p{margin-bottom:10px;margin-top:0}.icon{display:inline-block;font:normal normal normal 14px/1 ultimateform}.el-input--prefix .el-input__inner{padding-right:38px}.el-input__prefix{right:12px}.ff-icon+span,span+.ff-icon{margin-right:6px}.d-flex{display:flex}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.text-primary{color:#1a7efb!important}.text-secondary{color:#606266!important}.text-danger{color:#ff6154!important}.text-success{color:#00b27f!important}.text-warning{color:#fcbe2d!important}.text-dark{color:#1e1f21!important}.flex-grow-1{flex:1}.mr15{margin-left:15px}.mb15{margin-bottom:15px}.pull-left{float:right!important}.pull-right{float:left!important}.text-left{text-align:right}.text-right{text-align:left}.text-center{text-align:center}.el-icon-clickable{cursor:pointer}.help-text{font-size:.9em;font-style:italic;margin:0}.fs-17{font-size:17px!important}.fs-15{font-size:15px!important}.fs-14{font-size:14px!important}.fs-13{font-size:13px!important}.text-note{color:#606266;font-size:13px;font-weight:400}.ff-disabled{opacity:.5;pointer-events:none}.mx-auto{margin-right:auto;margin-left:auto}.img-thumb{border:1px solid #ececec;border-radius:8px}.lead-title{color:#1e1f21;display:block;font-size:15px;font-weight:500;transition:.2s}.lead-text{color:#606266;font-size:13px}a.lead-text{color:#1a7efb}.btn{background-image:none;border:1px solid transparent;border-radius:4px;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;line-height:1.42857143;margin-bottom:0;padding:6px 12px;text-align:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.btn-primary{background-color:#337ab7;border-color:#2e6da4;color:#fff}.btn-primary:hover{background-color:#286090;border-color:#204d74;color:#fff}.btn-block{width:100%}.clearfix:after,.clearfix:before,.form-editor:after,.form-editor:before{content:" ";display:table}.clearfix:after,.form-editor:after{clear:both}.el-notification__content p{text-align:right}.label-lh-1-5 label{line-height:1.5}.ff_header{background:#fff;border-bottom:1px solid #ececec;display:flex;flex-direction:column;padding:10px 24px}.ff_header_group{align-items:center;display:flex;justify-content:space-between}.ff_header .plugin-name{height:30px}.ff_header .plugin-name img{height:100%}.ff_header .global-search-menu-button{background-color:transparent;border:0;border-radius:6px;color:rgba(60,60,60,.702);cursor:pointer;display:inline-block;font-size:15px;font-weight:400;line-height:1.6;margin:0 auto 0 0;padding:0 5px 0 0;transition:all .3s}.ff_header .global-search-menu-button .el-icon-search{font-size:16px;font-weight:600}.ff_header .global-search-menu-button .shortcut{border-radius:4px;box-shadow:0 2px 3px 0 rgba(32,33,36,.15);font-size:12px;letter-spacing:3px;padding:5px 8px;transition:all .3s}.ff_header .global-search-menu-button:hover{color:#353537}.ff_header .global-search-menu-button:hover .shortcut{border-color:#1a7efb;color:#1a7efb}.ff_header .global-search-menu-button span{margin-right:5px}.ff_row{display:flex;flex-wrap:wrap}.el-dialog{padding:24px 30px}.el-dialog__headerbtn{background-color:#fafafa;border-radius:50%;font-size:1.25rem;height:2rem;left:22px;top:18px;transition:.2s;width:2rem}.el-dialog__headerbtn .el-dialog__close{color:#1e1f21}.el-dialog__headerbtn:hover{background-color:#ececec}.el-dialog__headerbtn:hover .el-dialog__close{color:#1e1f21}.el-dialog__header{border-bottom:1px solid #ececec;padding:0 0 24px}.el-dialog__header h4{font-weight:500}.el-dialog__body,.el-dialog__footer{padding:0}.el-dialog__footer .has-separator{border-top:1px solid #ececec;padding-top:20px}.el-dialog,.el-popover{border-radius:8px}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__header{border:0;padding:0}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__body .el-row{align-content:center;align-items:center;display:flex;justify-content:center}.form-editor .disabled-info .el-dialog__wrapper .el-dialog__headerbtn{z-index:1}.form-editor .disabled-info .el-dialog__wrapper h3{font-size:1.5em}.form-editor .disabled-info .el-dialog__wrapper p{font-size:16px}.form-editor .disabled-info .el-dialog__wrapper img{width:100%}.ff_nav_top{display:block;margin-bottom:15px;overflow:hidden;width:100%}.ff_nav_top .ff_nav_title{float:right;width:50%}.ff_nav_top .ff_nav_title h3{float:right;line-height:28px;margin:0;padding:0}.ff_nav_top .ff_nav_title .ff_nav_sub_actions{display:inline-block;margin-right:20px}.ff_nav_top .ff_nav_action{float:right;text-align:left;width:50%}.ff_nav_top .ff_search_inline{display:inline-block;text-align:left;width:200px}.ff_nav_top.ff_advanced_search{background:#fff;border-radius:5px;padding:10px 20px}.ff_global_notices{box-sizing:border-box;display:block;margin-top:20px;overflow:hidden;width:100%}.ff_global_notices .ff_global_notice{background:#fff;border:1px solid transparent;border-radius:.25rem;display:block;margin-bottom:1rem;margin-left:20px;padding:.75rem 1.25rem;position:relative}.ff_global_notices .ff_global_notice.ff_notice_error{background-color:#fff3cd;border-color:#ffeeba;color:#856404}.ff_global_notices .ff_global_notice.ff_notice_success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.el-select-dropdown.el-popper{z-index:99999999999!important}ul.ff_entry_list{list-style:disc;margin-right:20px}span.ff_new_badge{background:#ff4747;border-radius:4px;color:#fff;font-size:11px;line-height:100%;margin-right:5px;padding:0 5px 3px;vertical-align:super}label.el-checkbox,label.el-radio{display:inline-block}.el-time-spinner__list .el-time-spinner__item{margin-bottom:0!important}.ff_card_block{background:#f2f2f2;border-radius:8px;padding:20px}.ff_card_block_head{border-bottom:1px solid #e3e3e3;margin-bottom:20px;padding-bottom:15px}.ff_card_block h3{margin:0 0 15px;padding:0}.videoWrapper{height:0;padding-bottom:56.25%;position:relative}.videoWrapper iframe{height:100%;right:0;position:absolute;top:0;width:100%}.ff-left-spaced{margin-right:10px!important}.doc_video_wrapper{background:#fff;margin:0 auto;max-width:800px;padding:20px 0 0;text-align:center}.el-big-items .el-select-dropdown__wrap{max-height:350px}.ff_email_resend_inline{display:inline-block}.el-radio-group-column{display:flex;flex-direction:column}.el-radio-group-column .el-radio{margin-bottom:20px;margin-left:0}.el-checkbox-group-column{display:flex;flex-direction:column}.el-checkbox-group-column .el-checkbox{margin-bottom:14px;margin-left:0}.ff_advanced_filter_wrap{position:relative}.ff_advanced_search{background:#fff;border-radius:8px;box-shadow:0 40px 64px -12px rgba(0,0,0,.08),0 0 14px -4px rgba(0,0,0,.08),0 32px 48px -8px rgba(0,0,0,.1);margin-top:10px;padding:20px;position:absolute;left:0;top:100%;width:350px;z-index:1024}.ff_advanced_search_date_range{background-color:#ececec;border-radius:8px;padding:14px}.ff_advanced_search_date_range p{font-size:14px;font-weight:400}.ff_advanced_search_date_range .el-date-editor--daterange.el-input__inner{width:282px}.el-switch__core:after{box-shadow:0 2px 4px rgba(0,0,0,.2),inset 0 2px 2px #fff,inset 0 -1px 1px rgba(0,0,0,.1)}.row-actions .row-actions-item{display:inline-block;font-size:13px;line-height:1;padding-left:10px;position:relative}.row-actions .row-actions-item:after{background-color:#ddd;content:"";height:10px;position:absolute;left:3px;top:50%;transform:translateY(-50%);width:1px}.row-actions .row-actions-item.trash:after{display:none}.row-actions span.trash a{color:#ff6154}.ff_pagination{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);display:inline-flex;font-weight:500;max-width:100%;padding:12px 20px}.ff_pagination .el-input__inner{background:#f2f2f2;border-color:#f2f2f2;border-radius:4px!important;color:#606266}.ff_pagination .el-input__inner:focus,.ff_pagination .el-input__inner:hover{border-color:#f2f2f2!important}.ff_pagination .el-select .el-input .el-select__caret{color:#606266}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:transparent;border-radius:4px}.ff_shortcode_wrap+.ff_shortcode_wrap{margin-top:.5rem}.ff_shortcode_btn{align-items:center;background-color:#ededed;border:0;border-radius:6px;color:#353537;display:inline-flex;font-size:12px;margin:0;overflow:hidden;padding:4px 10px}.ff_shortcode_btn span{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:200px}.ff_shortcode_btn .el-icon{margin-left:1px}.ff_shortcode_btn_thin{background-color:#f2f2f2}.ff_shortcode_btn_md{font-size:15px;line-height:1.2;padding:10px 14px}.copy_btn{background-color:#e7e6e6;border-radius:4px;cursor:pointer;margin-right:auto;padding:1px 10px;transition:.2s}.copy_btn:hover{background-color:#d8d7d7}.ff_editor_html ul{list-style-type:disc;padding-right:3em}.ff_editor_html ol{list-style-type:decimal;margin-right:3em}.ff_section_block{margin-bottom:64px}.ff_section_block:last-child{margin-bottom:0}.ff_radio_list{display:flex;flex-direction:column}.ff_radio_list_item{margin-bottom:2px;width:100%}.ff_radio_list_item .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:6px!important;box-shadow:none!important;color:#606266;padding:13px 16px;text-align:right;transition:.2s;width:100%}.ff_radio_list_item .el-radio-button__inner:hover,.ff_radio_list_item.is-active .el-radio-button__inner{background-color:rgba(96,98,102,.1);color:#1e1f21}.is-sticky{position:fixed;top:40px;z-index:1020}.ff_section_desc{font-size:16px}.ff_section_head{margin-bottom:40px}.ff_section_head_between{display:flex;flex-wrap:wrap;justify-content:space-between}.ff_section_head.sm{margin-bottom:24px}.ff_section_head_content_group{align-items:center;display:flex}.ff_section_head .text{font-size:15px}.el-row{display:flex;flex-wrap:wrap}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.items_end{align-items:flex-end!important}.el-radio-button__inner{font-weight:400}.el-select-dropdown__item.selected{font-weight:500}.ff_layout_section{display:flex;min-height:550px;position:relative;width:100%}.ff_layout_section_sidebar{background-color:#fff;box-shadow:0 1px 3px rgba(30,31,33,.05);flex-shrink:0;padding:16px;vertical-align:top;width:230px}.ff_layout_section_container{flex:1;overflow-y:scroll;padding:16px}.ff_global_setting_wrap .ff_layout_section_sidebar,.ff_tools_wrap .ff_layout_section_sidebar{height:100%}.ff_global_settings_option{height:110vh;overflow-y:scroll}.ff_global_settings_option::-webkit-scrollbar{display:none}.ff_global_settings_option .el-form-item,.ff_global_settings_option .el-form-item-wrap{margin-bottom:24px}.ff_global_settings_option .el-form-item-wrap:last-child,.ff_global_settings_option .el-form-item:last-child{margin-bottom:0}.ff_global_settings_option .ff_card:not(:last-child){margin-bottom:32px}.ff_input_width{width:438px}.ff_input_full_width{width:100%}.ff_tooltip_wrap{font-size:14px;line-height:1.6;max-width:320px}.ff_tooltip_wrap h6{color:#fff}.ff-icon-gray{color:#757d8a}.el-form--label-top .el-form-item__label{line-height:1;padding-bottom:16px}.ff-form-item .el-form-item__label{align-items:center;color:#1e1f21;display:flex;font-size:15px;font-weight:500}.ff-form-item .el-form-item__label .ff-icon{margin-right:4px}.ff-form-item .el-form-item__content{line-height:1}.ff-form-item .el-icon-info,.ff-form-item .ff-icon-info-filled{font-size:13px}.ff-form-item .el-icon-info{color:#1a7efb;transform:rotate(14deg)}.el-select__tags input{background-color:transparent;border:none;line-height:2;margin-right:0;min-height:30px;padding:0 8px}.ff_alert{background-color:#e8f2ff;border-right:3px solid #1a7efb;border-radius:4px;padding:17px}.ff_alert_icon{display:inline-block;font-size:16px;margin-top:3px}.ff_alert_icon+.ff_alert_content{padding-right:10px}.ff_alert_group{display:flex}.ff_alert_sm{padding:10px}.ff_alert.success{background-color:#00b27f;border-right-color:#00b27f;color:#fff}.ff_alert.success-soft{background-color:#e6ffeb;border-right-color:#00b27f}.ff_alert.danger{background-color:#ff6154;border-right-color:#ff6154;color:#fff}.ff_alert.danger-soft{background-color:#ffefee;border-right-color:#ff6154}.ff_alert .text{font-size:14px;margin-bottom:12px;margin-top:6px}.ff_alert_between{align-items:center;display:flex;justify-content:space-between}.ff_alert_between .text{margin-bottom:0}.ff_alert_s2{border-right:0;border-radius:8px;padding:40px;text-align:center}.ff-form-item-flex{align-items:center;display:flex}.ff-form-item-flex .el-form-item__label{padding-bottom:0}.ff-form-item-flex.reverse{flex-direction:row-reverse;justify-content:flex-end}.ff-form-setting-label-width .el-form-item__label{width:390px}.el-switch input{border:0}.el-switch-lg .el-switch__core{border-radius:30px;height:24px;width:48px!important}.el-switch-lg .el-switch__core:after{height:20px;width:20px}.el-switch-lg.is-checked .el-switch__core:after{margin-right:-21px}.ff_block_title{font-weight:500}.el-form-item__label h6{font-size:15px;font-weight:500}.ff_checkbox_group_col_2{display:flex;flex-wrap:wrap}.ff_checkbox_group_col_2 .el-checkbox{line-height:1;margin-bottom:.75rem;margin-left:0;width:50%}.wp_vue_editor_wrapper{background-color:#fff;border:1px solid #dadbdd;border-radius:8px;overflow:hidden;position:relative}.wp_vue_editor_wrapper .wp-media-buttons{float:none;position:absolute;left:160px;top:10px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media{background-color:#e8f2ff;border-color:#e8f2ff;border-radius:6px;color:#1a7efb;font-weight:500;line-height:1;margin:0;min-height:30px}.wp_vue_editor_wrapper .wp-media-buttons .insert-media:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.wp_vue_editor_wrapper .popover-wrapper{padding:10px;position:absolute;left:0;top:0;z-index:2}.wp_vue_editor_wrapper .wp-editor-container{border:0}.wp_vue_editor_wrapper .wp-editor-tabs{float:none;padding:8px}.wp_vue_editor_wrapper .wp-switch-editor{background-color:transparent;border-color:transparent;border-radius:5px;float:none;font-size:14px;font-weight:500;height:auto;line-height:inherit;margin:0 4px 0 0;padding:7px 14px}.wp_vue_editor_wrapper .html-active .switch-html,.wp_vue_editor_wrapper .tmce-active .switch-tmce{background-color:#ededed;border-color:#dadbdd;color:#1e1f21}.wp_vue_editor_wrapper .switch-html{margin-right:0}.wp_vue_editor_wrapper .mce-top-part:before{box-shadow:none}.wp_vue_editor_wrapper .quicktags-toolbar,.wp_vue_editor_wrapper div.mce-toolbar-grp{background:#f1f1f0;border-bottom:0}.wp_vue_editor_wrapper .mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border:0;border-radius:4px;box-shadow:none}.wp_vue_editor_wrapper textarea{border:0;padding-top:15px}.wp-media-buttons .insert-media{padding-right:8px;padding-left:10px}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#1a7efb}.mce-panel.mce-menu{border-radius:8px}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:10px!important}.el-input-number__decrease{right:2px}.ff_state_box{border-radius:8px;display:block;padding:32px;text-align:center}.ff_icon_btn{align-items:center;background-color:#1a7efb;border-radius:50%;color:#fff;display:flex;font-size:28px;height:58px;justify-content:center;text-align:center;width:58px}.ff_icon_btn:focus,.ff_icon_btn:hover{color:#fff}.ff_icon_btn img{height:36px;-o-object-fit:contain;object-fit:contain}.ff_icon_btn.square{border-radius:12px}.ff_icon_btn.blue{background-color:#3b5998;color:#fff}.ff_icon_btn.blue-soft{background-color:#ebeef5;color:#3b5998}.ff_icon_btn.dark{background-color:#1e1f21;color:#fff}.ff_icon_btn.dark-soft{background-color:#e9e9e9;color:#1e1f21}.ff_icon_btn.primary-soft{background-color:#e8f2ff;color:#1a7efb}.ff_icon_btn.danger{background-color:#ff6154;color:#fff}.ff_icon_btn.danger-soft{background-color:#ffefee;color:#ff6154}.ff_icon_btn.success{background-color:#00b27f;color:#fff}.ff_icon_btn.success-soft{background-color:#e6ffeb;color:#00b27f}.ff_icon_btn.warning{background-color:#fcbe2d;color:#fff}.ff_icon_btn.warning-soft{background-color:#fff9ea;color:#fcbe2d}.ff_icon_btn.info{background-color:#4b4c4d;color:#fff}.ff_icon_btn.info-soft{background-color:#ededed;color:#4b4c4d}.ff_icon_btn.cyan{background-color:#0dcaf0;color:#fff}.ff_icon_btn.cyan-soft{background-color:#e7fafe;color:#0dcaf0}.ff_icon_btn.mini{font-size:12px;height:18px;width:18px}.ff_icon_btn.small{font-size:16px;height:27px;width:27px}.ff_icon_btn.md{font-size:26px;height:48px;width:48px}.ff_icon_btn.md img{height:28px;-o-object-fit:cover;object-fit:cover;-o-object-position:right;object-position:right;width:28px}.ff_icon_btn.lg{font-size:36px;height:72px;width:72px}.ff_btn_group{align-items:center;display:inline-flex;flex-wrap:wrap;margin:-6px}.ff_btn_group>*{margin-bottom:0;padding:6px}.ff_btn_group.sm{margin:-3px}.ff_btn_group.sm>*{padding:3px}.ff_btn_group_half{display:flex}.ff_btn_group_half>*{flex:1}.ff_btn_group_half .el-button{justify-content:center;width:100%}.file-input{background:#fff;border:1px solid #ececec;border-radius:8px;color:#606266;max-width:100%;padding:5px!important}.file-input::file-selector-button{background:#f2f2f2;border:none;border-radius:6px;color:#1e1f21;cursor:pointer;margin-left:6px;padding:6px 16px;transition:background .2s ease-in-out}.file-input::file-selector-button:hover{background:#ced0d4}.el-tag--pill{border-radius:50rem}.ff_radio_group{background-color:#f5f5f3;border-radius:8px;overflow:hidden}.ff_radio_group .el-radio-button__inner{background-color:transparent;border:0!important;border-radius:0!important}.ff_radio_group .el-radio-button__inner:hover{color:#1e1f21}.ff_radio_group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;box-shadow:none;color:#fff}.ff_radio_group_s2{background:#fff;border:1px solid #edeae9;border-radius:8px;display:inline-flex;overflow:hidden}.ff_radio_group_s2 .el-radio-button:first-child .el-radio-button__inner{border-right:0}.ff_radio_group_s2 .el-radio-button:last-child .el-radio-button__inner{border-left:0}.ff_radio_group_s2 .el-radio-button__inner{border-color:transparent transparent transparent #edeae9}.el-input-gray .el-input__inner{background-color:#e7e6e6;border-color:#e7e6e6}.el-input-gray .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray .el-input__prefix{color:#606266}.el-input-gray-light .el-input__inner{background-color:#f5f5f3;border-color:#f5f5f3}.el-input-gray-light .el-input__inner::-moz-placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner::placeholder{color:#606266;opacity:1}.el-input-gray-light .el-input__inner:-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__inner::-ms-input-placeholder{color:#606266}.el-input-gray-light .el-input__prefix{color:#606266}.el-radio.is-bordered{margin-left:6px}.ff_media_group{align-items:center;display:flex}.ff_media_head+.ff_media_body{margin-right:16px}.ff_video_wrap{position:relative}.ff_video_wrap:after{background-color:#1e1f21;border-radius:8px;content:"";height:100%;right:0;opacity:.3;position:absolute;top:0;width:100%}.ff_video_img{border-radius:8px;display:block;width:100%}.ff_video_icon{right:50%;position:absolute;top:50%;transform:translate(50%,-50%);z-index:1}.ff-input-wrap{position:relative}.ff-input-wrap .el-icon{align-items:center;display:inline-flex;height:100%;right:0;padding-right:14px;position:absolute;top:0;z-index:2}.ff-input-wrap .el-icon+.el-input .el-input__inner,.ff-input-wrap .el-icon+input{padding-right:32px}.el-dialog-no-header .el-dialog__header{display:none}.el-radio-button-group{background-color:#fff;border:1px solid #ececec;border-radius:4px}.el-radio-button-group .el-radio-button__inner{background:transparent;border:0;padding:6px 9px}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner{border-right:0;border-radius:0 4px 4px 0}.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-radio-button-group .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1a7efb;box-shadow:none}.el-color-picker__color{border-color:#d4edda;border-radius:3px}.ff_socials li{display:inline-block;margin-left:2px}.ff_socials li:last-child{margin-left:0}.ff_socials li a{background-color:#ededed;border-radius:50%;color:#606266;display:grid;height:32px;place-items:center;transition:.2s;width:32px}.ff_socials li a span{font-size:16px;height:auto;transition:0s;width:auto}.ff_socials li a:hover{background-color:#1a7efb;color:#fff}.ff-dropdown-menu .el-dropdown-menu__item{line-height:1.5;padding:6px 20px}.ff-dropdown-menu .el-dropdown-menu__item:hover{background-color:transparent}.truncate{display:block;max-width:188px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;max-width:inherit;white-space:inherit}.hover-y{transition:.3s}.hover-y:hover{transform:translateY(-2px)}.hover-zoom{transition:.3s}.hover-zoom:hover{transform:scale(1.03)}.ff_badge{align-items:center;background-color:#ededed;border:1px solid #dbdbdb;border-radius:30px;color:#4b4c4d;display:inline-flex;line-height:1.2;padding:2px 7px;text-transform:capitalize}.ff_badge.small{font-size:13px}.ff_badge_wrap{align-items:center;display:inline-flex}.ff_badge img{flex-shrink:0;height:14px;margin-left:4px}.ff_badge_active,.ff_badge_primary{background-color:#e8f2ff;border-color:#d1e5fe;color:#1a7efb}.ff_badge_paid{background-color:#e6f7f2;border-color:#ccf0e5;color:#00b27f}.ff_badge_processing{background-color:#e7fafe;border-color:#cff4fc;color:#0dcaf0}.ff_badge_pending{background-color:#fff9ea;border-color:#fef2d5;color:#fcbe2d}.ff_badge_failed{background-color:#ffefee;border-color:#ffdfdd;color:#ff6154}.ff_badge_visa{background-color:#e8e9ef;border-color:#dddee7;color:#192061}.ff_badge_mastercard{background-color:#ffefe6;border-color:#ffe7d9;color:#ff5f00}.ff_badge_amex{background-color:#f0f9fd;border-color:#e9f6fc;color:#6cc4ee}.ff_badge_paypal{background-color:#e6f5fc;border-color:#d9f0fa;color:#019ddd}.ff_badge_stripe{background-color:#eef0fb;border-color:#e5e9f9;color:#5469d4}.ff_badge.is-solid.ff_badge_active{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.ff_badge.is-solid.ff_badge_processing{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.ff_badge.is-solid.ff_badge_paid{background-color:#00b27f;border-color:#00b27f;color:#fff}.ff_badge.is-solid.ff_badge_pending{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.ff_badge.is-solid.ff_badge_cancelled,.ff_badge.is-solid.ff_badge_failed{background-color:#ff6154;border-color:#ff6154;color:#fff}.separator{background-color:rgba(96,98,102,.1);height:1px}.ff_choose_template_wrap .el-dialog{max-width:1280px}.ff_settings_container .notice{margin:0 0 20px}.global-search-wrapper{align-items:center;background:rgba(0,0,0,.7);display:flex;height:auto;inset:0;justify-content:center;min-height:100vh;padding:20px;position:fixed;z-index:999999999}.global-search-wrapper .global-search-container{background:#f6f6f7;border-radius:5px;overflow:auto;position:relative;width:700px}.global-search-wrapper .global-search-container input{font-size:17px;padding:3px 35px;width:100%}.global-search-wrapper .global-search-container ul.search-result li{background:#fff;border-radius:6px;box-shadow:0 1px 3px 0 #d4d9e1;color:#606266;cursor:pointer;display:block;font-size:15px;margin-right:0;margin-top:7px;padding:10px;transition:.2s}.global-search-wrapper .global-search-container ul.search-result li.active-search-link{background-color:#197efb;color:#fff;outline:0}.global-search-wrapper .global-search-container ul.search-result li:focus,.global-search-wrapper .global-search-container ul.search-result li:focus-visible{border:0;box-shadow:none;outline:0}.global-search-wrapper .global-search-container span.global-search-not-match{display:inline-block;font-size:16px;margin-top:6px}.global-search-wrapper .global-search-body{max-height:400px;min-height:200px;overflow-y:auto;padding:20px}.global-search-wrapper .search-commands{background:#fff;box-shadow:0 -1px 0 0 #efefef,0 -2px 6px 0 rgba(70,90,150,.1);color:#606266;display:flex;font-size:14px;justify-content:space-around;padding:12px}.global-search-wrapper .search-commands ul li{font-size:12px;margin-top:7px;padding:10px}.scroll{animation:down 2s ease-in-out infinite;-webkit-animation:down 2s ease-in-out infinite;cursor:pointer;height:26px;margin:0 auto;position:relative;width:60px}.scroll:before{border-bottom:2px solid #777;border-right:2px solid #777;content:"";height:16px;right:18px;position:absolute;top:24px;transform:rotate(45deg);width:16px}.ff_chained_ajax_field{display:flex;flex:auto;gap:10px}.ff_chained_ajax_field .el-select{flex-basis:100%}@keyframes down{0%{opacity:0;-webkit-transform:translateY(-14px)}50%{opacity:1}to{opacity:0;-webkit-transform:translateY(14px)}}.ff_sidebar_toggle{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 1px 10px rgba(0,0,0,.1);color:#000;cursor:pointer;display:none;font-size:18px;height:30px;justify-content:center;position:absolute;left:-21px;top:15px;width:30px}.text-capitalize{text-transform:capitalize}.ff_menu{align-items:center;display:none;flex-wrap:wrap;margin-top:22px}.ff_menu_active{display:flex;justify-content:center}.ff_menu_link{background-color:transparent;border-radius:6px;color:#353537;display:inline-block;font-size:15px;font-weight:500;line-height:1.6;overflow:hidden;padding:4px 14px;text-decoration:none;text-overflow:ellipsis;transition:.2s;white-space:nowrap}.ff_menu_link:focus{border:0;box-shadow:none;outline:none}.ff_menu_link:hover{color:#1a7efb}.ff_menu_link_buy{background-color:#1a7efb;color:#fff;margin-right:12px}.ff_menu_link_buy:hover{color:#fff}.ff_menu.conversion_form_editor .ff_menu_link,.ff_menu.partial_entries_form_editor .ff_menu_link{max-width:140px}.ff_menu .active .ff_menu_link{background-color:#e8f2ff;color:#1a7efb}.ff_menu_toggle{cursor:pointer;font-size:26px;margin-right:auto}.ff_menu_toggle:hover{color:#1a7efb}.ff_menu_back .el-icon-arrow-left{font-weight:700;position:relative;transition:all .3s;width:18px}.ff_menu_back .el-icon-arrow-left:after{background-color:#353537;background-color:#1a7efb;content:"";height:1.3px;position:absolute;left:-.6px;top:50%;transform:translateY(-52%);transition:all .3s;width:0}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left{color:#1a7efb;transform:translateX(2.4px)}.ff_menu_back .ff_menu_link:hover .el-icon-arrow-left:after{font-weight:700;width:13px}.ff_table{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);padding:10px 24px}.ff_table .el-table__row td:first-child{vertical-align:top}.ff_table .el-table__empty-block,.ff_table table{width:100%!important}.ff_table .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell,.ff_table .el-table__body tr.el-table__row--striped td.el-table__cell,.ff_table .el-table__body tr.hover-row>td.el-table__cell,.ff_table th.el-table__cell,.ff_table tr{background-color:transparent!important}.ff_table .el-table--border:after,.ff_table .el-table--group:after,.ff_table .el-table:before{display:none}.ff_table thead{color:#1e1f21}.ff_table thead .el-table__cell,.ff_table thead th{padding-bottom:8px;padding-top:0}.ff_table .cell,.ff_table th.el-table__cell>.cell{font-weight:600;padding-right:0;padding-left:0}.ff_table .sort-caret{border-width:4px}.ff_table .sort-caret.ascending{top:7px}.ff_table .sort-caret.descending{bottom:8px}.ff_table .cell strong{color:#1e1f21;font-weight:500}.ff_table td.el-table__cell,.ff_table th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff_table tbody tr:last-child td.el-table__cell,.ff_table tbody tr:last-child th.el-table__cell.is-leaf{border-bottom-width:0}.ff_table tbody .cell{font-weight:400}.ff_table_s2 .el-table__body tr.el-table__row--striped td.el-table__cell,.ff_table_s2 th.el-table__cell,.ff_table_s2 tr,.ff_table_s2.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:transparent}.ff_table_s2 .el-table__empty-block,.ff_table_s2 table{width:100%!important}.ff_table_s2 thead{color:#1e1f21}.ff_table_s2 thead th.el-table__cell{background-color:#f8f8f8;border-bottom:0!important}.ff_table_s2 thead th.el-table__cell .cell{font-weight:500}.ff_table_s2 thead tr th:first-child{border-bottom-right-radius:8px;border-top-right-radius:8px}.ff_table_s2 thead tr th:first-child .cell{padding-right:20px}.ff_table_s2 thead tr th:last-child{border-bottom-left-radius:8px;border-top-left-radius:8px}.ff_table_s2 tbody tr td:first-child .cell{padding-right:20px}.ff_table_s2 td.el-table__cell,.ff_table_s2 th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff-table-container{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(30,31,33,.08);padding:10px 24px}.ff-table-container .el-table__row td:first-child{vertical-align:top}.ff-table-container .el-table{background-color:transparent}.ff-table-container .el-table__empty-block,.ff-table-container table{width:100%!important}.ff-table-container .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell,.ff-table-container .el-table__body tr.el-table__row--striped td.el-table__cell,.ff-table-container .el-table__body tr.hover-row>td.el-table__cell,.ff-table-container .el-table__body tr:hover td.el-table__cell,.ff-table-container th.el-table__cell,.ff-table-container tr{background-color:transparent}.ff-table-container .el-table--border:after,.ff-table-container .el-table--group:after,.ff-table-container .el-table:before{display:none}.ff-table-container thead{color:#1e1f21}.ff-table-container thead .el-table__cell,.ff-table-container thead th{padding-bottom:8px;padding-top:0}.ff-table-container .cell,.ff-table-container th.el-table__cell>.cell{font-weight:600;padding-right:0;padding-left:1px}.ff-table-container .sort-caret{border-width:3px}.ff-table-container .sort-caret.ascending{top:9px}.ff-table-container .sort-caret.descending{bottom:11px}.ff-table-container .cell strong{color:#1e1f21;font-weight:500}.ff-table-container td.el-table__cell,.ff-table-container th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff-table-container tbody tr:last-child td.el-table__cell,.ff-table-container tbody tr:last-child th.el-table__cell.is-leaf{border-bottom-width:0}.ff-table-container tbody .cell{font-weight:400}.ff-table-container_s2 .el-table__body tr.el-table__row--striped td.el-table__cell,.ff-table-container_s2 th.el-table__cell,.ff-table-container_s2 tr,.ff-table-container_s2.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:transparent}.ff-table-container_s2 thead{color:#1e1f21}.ff-table-container_s2 thead th.el-table__cell{background-color:#f8f8f8;border-bottom:0!important}.ff-table-container_s2 thead th.el-table__cell .cell{font-weight:500}.ff-table-container_s2 thead tr th:first-child{border-bottom-right-radius:8px;border-top-right-radius:8px}.ff-table-container_s2 thead tr th:first-child .cell{padding-right:20px}.ff-table-container_s2 thead tr th:last-child{border-bottom-left-radius:8px;border-top-left-radius:8px}.ff-table-container_s2 tbody tr td:first-child .cell{padding-right:20px}.ff-table-container_s2 td.el-table__cell,.ff-table-container_s2 th.el-table__cell.is-leaf{border-bottom-color:#ececec}.ff_card{background-color:#fff;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 3px 0 hsla(0,0%,51%,.1);padding:24px}.ff_card.primary{background-color:#1a7efb}.ff_card_pro{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;padding-right:54px;padding-left:40px}.ff_card_pro h3{color:#fff;font-size:28px;line-height:1.3;max-width:400px}.ff_card.highlight-border{border-color:#1a7efb}.ff_card .ff_pagination{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_shadow_lg{box-shadow:0 14px 16px -2px hsla(0,0%,51%,.1)}.ff_card .text{font-size:15px;line-height:1.6}.ff_card_alert{border-right:3px solid #ff6154;border-radius:4px}.ff_card_head{border-bottom:1px solid #ececec;margin-bottom:26px;padding-bottom:16px}.ff_card_head .text{margin-top:10px}.ff_card_head_group{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.ff_card_head_group .el-tooltip{font-size:15px}.ff_card_form_action{border-color:#ececec;cursor:pointer;height:100%}.ff_card_form_action .ff_card_text{word-break:break-word}.ff_card_img img{width:100%}.ff_card_s2{border:1px solid #e4e4e4;box-shadow:none;display:flex;flex-direction:column;padding:0;transition:.3s}.ff_card_s2 .ff_card_body{padding:20px}.ff_card_s2 .ff_card_footer{border-top:1px solid #e4e4e4;margin-top:auto;padding:14px 20px}.ff_card_s2:hover{box-shadow:0 22px 16px hsla(0,0%,51%,.12)}.ff_card_footer_group{align-items:center;display:flex;justify-content:space-between}.ff_card .ff-table-container{background-color:transparent;border-radius:0;box-shadow:none;padding:0}.ff_card_border{border:1px solid #ececec;box-shadow:none}.ff_predefined_options{display:flex}.ff_predefined_sidebar{flex-shrink:0;margin-left:30px;width:240px}.ff_predefined_main{margin-right:auto;width:calc(100% - 240px)}.ff_predefined_main .form_item_group{display:flex}.ff_predefined_main .ff_form_group_title{border-bottom:1px solid #ececec;font-size:15px;margin-bottom:24px;padding-bottom:14px;text-transform:uppercase}.ff_predefined_main .ff_predefined_form_wrap{height:500px;overflow-y:scroll}.ff_predefined_form_wrap{position:relative}.slide-down-enter-active{max-height:100vh;transition:all .8s}.slide-down-leave-active{max-height:100vh;transition:all .3s}.slide-down-enter,.slide-down-leave-to{max-height:0}.el-notification__content{text-align:right}.action-buttons .el-button+.el-button{margin-right:0}.el-box-card{box-shadow:none}.el-box-footer,.el-box-header{background-color:#edf1f6;padding:15px}.el-box-body{padding:15px}.el-form-item__force-inline.el-form-item__label{float:right;padding:11px 0 11px 12px}.el-form-item .el-form-item{margin-bottom:10px}.el-form-item__content .line{text-align:center}.el-basic-collapse{border:0;margin-bottom:15px}.el-basic-collapse .el-collapse-item__header{border:0;display:inline-block;padding-right:0}.el-basic-collapse .el-collapse-item__wrap{border:0}.el-basic-collapse .el-collapse-item__content{background-color:#fff;padding:0}.el-collapse-settings{border:0}.el-collapse-settings .el-collapse-item__header{background:#f5f5f3;border:0;border-radius:8px;font-size:16px;padding-right:20px;padding-left:10px}.el-collapse-settings .el-collapse-item__header .el-collapse-item__arrow{font-size:16px;font-weight:500}.el-collapse-settings .el-collapse-item__content{margin-top:15px;padding-bottom:0}.el-collapse-settings .el-collapse-item__arrow{line-height:48px}.el-collapse-settings .el-collapse-item__wrap{background-color:transparent;border-bottom:0;overflow:inherit}.el-popover{text-align:right}.option-fields-section--content .el-form-item__label{color:#1e1f21;font-weight:500;line-height:1;padding-bottom:10px}.option-fields-section--content .el-form-item__content{line-height:1.5;margin-bottom:5px}.option-fields-section--content .el-input-number--mini{line-height:28px}.option-fields-section--content strong{color:#1e1f21;font-weight:600}.el-dropdown-list{border:0;box-shadow:none;margin:0;max-height:280px;min-width:auto;overflow-y:scroll;padding:0;position:static;z-index:10}.el-dropdown-list .el-dropdown-menu__item{border-bottom:1px solid #f1f1f1;font-size:13px;line-height:18px;padding:4px 10px}.el-dropdown-list .el-dropdown-menu__item:last-of-type{border-bottom:0}.el-popper[x-placement^=bottom] .popper__arrow{top:-7px}.el-form-nested.el-form--label-left .el-form-item__label{float:right;padding:10px 0 10px 5px}.el-message{top:40px}.el-tabs--border-card{border-color:#ececec;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.05)}.el-tabs--border-card .el-tabs__header{background-color:transparent;border-top-right-radius:6px;border-top-left-radius:6px;padding:10px 14px}.el-tabs--border-card .el-tabs__header .el-tabs__item{border:0;border-radius:6px;font-size:13px;height:34px;line-height:34px;margin-top:0;padding-right:16px;padding-left:16px}.el-tabs--border-card .el-tabs__header .el-tabs__item:first-child{margin-right:0}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active{background-color:#d1e5fe;color:#1a7efb}.el-tabs--border-card .el-tabs__header .el-tabs__item.is-active:hover{color:#1a7efb}.el-button{align-items:center;display:inline-flex;transition:.3s}.el-button .el-loading-mask{border-radius:7px}.el-button .el-loading-mask .el-loading-spinner{margin-top:-12px}.el-button .el-loading-mask .el-loading-spinner .circular{height:24px;width:24px}.el-button span{align-items:center;display:inline-flex}.el-button-group .el-button span{display:inline-block}.el-button--block{justify-content:center;width:100%}.el-button--small .ff-icon{font-size:14px}.el-button--large{font-size:16px;padding:15px 20px}.el-button--soft.el-button--blue{background-color:#ebeef5;border-color:#ebeef5;color:#3b5998}.el-button--soft.el-button--blue:hover{background-color:#3b5998;border-color:#3b5998;color:#fff}.el-button--soft.el-button--primary{background-color:#e8f2ff;border-color:#e8f2ff;color:#1a7efb}.el-button--soft.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--soft.el-button--danger{background-color:#ffefee;border-color:#ffefee;color:#ff6154}.el-button--soft.el-button--danger:hover{background-color:#ff6154;border-color:#ff6154;color:#fff}.el-button--soft.el-button--success{background-color:#e6ffeb;border-color:#e6ffeb;color:#00b27f}.el-button--soft.el-button--success:hover{background-color:#00b27f;border-color:#00b27f;color:#fff}.el-button--soft.el-button--warning{background-color:#fff9ea;border-color:#fff9ea;color:#fcbe2d}.el-button--soft.el-button--warning:hover{background-color:#fcbe2d;border-color:#fcbe2d;color:#fff}.el-button--soft.el-button--info{background-color:#ededed;border-color:#ededed;color:#4b4c4d}.el-button--soft.el-button--info:hover{background-color:#4b4c4d;border-color:#4b4c4d;color:#fff}.el-button--soft.el-button--cyan{background-color:#e7fafe;border-color:#e7fafe;color:#0dcaf0}.el-button--soft.el-button--cyan:hover{background-color:#0dcaf0;border-color:#0dcaf0;color:#fff}.el-button--soft.el-button--dark{background-color:#e9e9e9;border-color:#e9e9e9;color:#1e1f21}.el-button--soft.el-button--dark:hover{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--soft-2.el-button--primary{background-color:#d1e5fe;border-color:#d1e5fe;color:#1a7efb}.el-button--soft-2.el-button--primary:hover{background-color:#1a7efb;border-color:#1a7efb;color:#fff}.el-button--icon.el-button--mini{border-radius:4px;padding:7px}.el-button--icon.el-button--small{border-radius:5px;font-size:14px;padding:8px}.el-button--icon.el-button--medium{border-radius:6px;padding:10px}.el-button--text-light{color:#606266}.el-button--info.is-plain{border-color:#ededed}.el-button--dark{background-color:#1e1f21;border-color:#1e1f21;color:#fff}.el-button--dark:focus,.el-button--dark:hover{background-color:#3a3a40;border-color:#3a3a40;color:#fff}.el-button--primary:hover{background-color:#1565c9;border-color:#1565c9}.el-pager li{font-weight:600}.form-editor-elements:not(.el-form--label-left):not(.el-form--label-right) .el-form-item__label{line-height:1}.folded .el-dialog__wrapper{right:36px}.el-dialog__wrapper .data-lost-msg{margin-top:10px}.ff-el-banner{border:1px solid #dce0e5;display:inline-block;float:right;height:250px;padding:5px;transition:border .3s;width:200px}.ff-el-banner,.ff-el-banner-group{overflow:hidden}.ff-el-banner-group .ff-el-banner{margin-bottom:30px;margin-left:10px}.ff-el-banner+.ff-el-banner{margin-left:10px}.ff-el-banner img{display:block;height:auto;width:100%}.ff-el-banner-header{background:#909399;color:#fff;font-size:13px;font-weight:400;margin:0;padding:3px 6px;text-align:center}.ff-el-banner-inner-item{height:inherit;overflow:hidden;position:relative}.ff-el-banner:hover .ff-el-banner-text-inside{opacity:1!important;visibility:visible!important}.ff-el-banner-text-inside{display:flex;flex-direction:column;justify-content:center}.ff-el-banner-text-inside-hoverable{bottom:0;color:#fff;right:0;padding:10px;position:absolute;left:0;top:0;transition:all .3s}.ff-el-banner-text-inside .form-title{color:#fff;margin:0 0 10px}.compact td>.cell,.compact th>.cell{white-space:nowrap}.el-tooltip__popper p{margin-bottom:0}.el-dropdown-menu{right:unset;max-width:270px}.el-dropdown-link{cursor:pointer}.el-dropdown-link-lg{color:#1e1f21;font-size:24px;font-weight:600}.el-dropdown-link-lg .el-icon{font-size:20px}.el-switch--small .el-switch__core{height:16px;width:28px!important}.el-switch--small .el-switch__core:after{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core:after{margin-right:-13px}.el-switch--small .el-switch__label *{font-size:13px;font-weight:500}.el-message-box__title{color:#1e1f21;font-weight:500}.el-input-group--append{position:relative}.el-input-group--append .el-input__inner{border-bottom-left-radius:8px;border-top-left-radius:8px}.el-input-group__append,.el-input-group__prepend{background-color:#f2f2f2;border:0;border-radius:5px;display:grid;height:30px;padding:0;position:absolute;text-align:center;top:5px;width:30px}.el-input-group__append:hover,.el-input-group__prepend:hover{background-color:#e0e0e0}.el-input-group__append .el-icon-more,.el-input-group__prepend .el-icon-more{transform:rotate(-90deg)}.el-input-group__append .el-button,.el-input-group__prepend .el-button{margin:0;padding:0}.el-input-group__append{left:4px}.el-input-group__prepend{right:4px}.el-table__fixed,.el-table__fixed-right{background-color:#fff}.el-table__fixed-right:before,.el-table__fixed:before{display:none}.el-radio-button__orig-radio:checked+.el-radio-button__inner{box-shadow:none}.input-with-select{align-items:center;display:flex}.input-with-select.el-input-group--append .el-input__inner{border-bottom-left-radius:0;border-top-left-radius:0}.input-with-select .el-select{background-color:#fff;border:1px solid #dadbdd;height:40px;margin:0}.input-with-select .el-select .el-input__inner{border:0}.input-with-select .el-input-group__append,.input-with-select .el-input-group__prepend{border-radius:0;flex:1;height:auto;right:0;position:inherit;top:0;width:auto}.input-with-select .el-input-group__append:hover,.input-with-select .el-input-group__prepend:hover{background-color:transparent}.input-with-select .el-input-group__prepend .el-select{border-bottom-right-radius:8px;border-left:0;border-top-right-radius:8px}.input-with-select .el-input-group__append .el-select{border-bottom-left-radius:8px;border-right:0;border-top-left-radius:8px}.chain-select-upload-button .el-input-group__append,.chain-select-upload-button .el-input-group__prepend{width:70px}.el-radio-group-dark .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#1e1f21;border-color:#1e1f21}.el-radio-group-info .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#4b4c4d;border-color:#4b4c4d}.el-table thead .cell{color:#1e1f21;font-weight:500}.el-table--border{border-radius:6px}.ff-input-s1 .el-input .el-select__caret{color:#1e1f21}.ff-input-s1 .el-input .el-icon-arrow-up:before{font-weight:600}.el-radio-button--small:first-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button--small:last-child .el-radio-button__inner{border-radius:4px 0 0 4px}.el-input--mini .el-input__inner{border-radius:4px}.el-input--large .el-input__inner{font-size:16px;height:48px;padding-right:20px;padding-left:20px}.el-input-number--mini{line-height:28px}.el-input-number--mini .el-input-number__decrease{border-radius:0 4px 4px 0;right:1px}.el-input-number--mini .el-input-number__increase{border-radius:4px 0 0 4px}.el-input-number__decrease,.el-input-number__increase{background-color:#f2f2f2}.el-dialog__header .title+.text{margin-top:6px}.el-dialog__header .text{margin-bottom:0}.el-dialog__header_group{align-items:center;display:flex}.el-checkbox-horizontal .el-checkbox{display:flex}.el-checkbox-horizontal .el-checkbox__input{align-self:flex-start;padding-top:3px}.el-skeleton__item{border-radius:4px}@media (min-width:1281px){.ff_screen_editor .form_internal_menu_inner{flex-direction:row}.ff_screen_editor .form_internal_menu_inner .ff_menu{margin-right:0;padding-bottom:0}.ff_screen_conversational_design .ff_menu_back,.ff_screen_editor .ff_menu_back,.ff_screen_entries .ff_menu_back,.ff_screen_inventory_list .ff_menu_back,.ff_screen_msformentries .ff_menu_back,.ff_screen_settings .ff_menu_back{display:flex}.option-fields-section--content .v-row{flex-direction:row}.option-fields-section--content .v-col--50{padding-bottom:0;width:50%}.form-editor--body{padding:50px;width:65%}.form-editor--sidebar{width:35%}}@media (min-width:769px){.ff_header{align-items:center;flex-direction:row}.ff_header_group{margin-left:32px}.ff_menu{display:flex;margin-top:0}.ff_menu_toggle{display:none}.ff_form_wrap{padding-right:24px;padding-left:24px}.ff_global_setting_wrap,.ff_screen_conversational_design,.ff_screen_editor,.ff_screen_entries,.ff_screen_inventory_list,.ff_screen_msformentries,.ff_screen_settings,.ff_tools_wrap{padding:0}.ff_form_editor_entries_actions .ff_section_head_content{margin-bottom:0}}@media (min-width:1025px){.all-forms-search,.ff_entries_search_wrap{width:270px}.ff_entries_search_wrap{margin-right:auto}.all-forms-select{width:250px}.ff_layout_section_sidebar{width:280px}.ff_layout_section_container,.ff_layout_section_sidebar{padding:24px}.fluent_activation_wrapper .fluentform_label{width:470px}}@media (max-width:768px){.form_internal_menu{margin-right:-10px}.form_internal_menu ul.ff_setting_menu{float:left;padding-left:10px!important}.form_internal_menu ul.ff_setting_menu li a{padding:10px 3px!important}.form_internal_menu .ff_form_name_inner{max-width:100px}.form_internal_menu #switchScreen{margin-left:0;margin-top:14px}.ff_nav_action{float:left!important;text-align:right!important}input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{min-height:30px}.ff_form_main_nav .plugin-name{display:none}.row-actions{display:inline-block!important}.el-form .el-form-item .el-form-item__label{width:100%!important}.el-form .el-form-item .el-form-item__content{margin-right:0!important}.el-tabs__content{padding:20px 10px!important}.wpf_each_entry a{word-break:break-all}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu{top:0!important}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{display:block}.form_internal_menu_inner{background:#fff;border-radius:8px;box-shadow:0 1px 10px rgba(0,0,0,.2);display:none;flex-direction:column;padding:20px;position:absolute;left:20px;top:38px;width:300px;z-index:9999}.form_internal_menu_inner.active{display:flex}.ff_form_name{padding-bottom:10px;padding-top:10px}.ff_screen_editor .form_internal_menu_inner .ff_menu,.form_internal_menu .ff-navigation-right{margin-right:0}.ff_menu{align-items:flex-start;flex-direction:column;margin-bottom:10px}.ff_menu li{width:100%}.ff_menu li a{display:block;max-width:100%!important}.form_internal_menu .ff-navigation-right{align-items:flex-start}.ff-navigation-right{flex-direction:column}.form_internal_menu .el-button,.form_internal_menu .ff_shortcode_btn{margin-bottom:10px;margin-left:0}.form_internal_menu .ff-navigation-right .ff_more_menu{bottom:0;left:0;top:auto;transform:translateY(0)}.ff_screen_conversational_design .ff_menu,.ff_screen_editor .ff_menu,.ff_screen_entries .ff_menu,.ff_screen_inventory_list .ff_menu,.ff_screen_msformentries .ff_menu,.ff_screen_settings .ff_menu{padding-right:0;padding-left:0}.ff_tools_wrap .ff_settings_sidebar_wrap{height:100%}.ff_settings_sidebar_wrap{flex-shrink:0;right:-240px;position:absolute;transition:.3s;z-index:999}.ff_settings_sidebar_wrap.active{right:-10px}.ff_settings_sidebar_wrap.active .ff_layout_section_sidebar{box-shadow:-2px 1px 10px 0 rgba(30,31,33,.1)}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle{left:-18px}.ff_settings_sidebar_wrap.active .ff_sidebar_toggle .ff-icon:before{content:"\e919"}.ff_sidebar_toggle{display:flex}.ff_header{margin-right:-10px;position:relative}.ff_header .global-search-menu-button{position:absolute;left:60px;top:12px}.conditional-logic{flex-direction:column}.conditional-logic>*{width:100%}.el-radio-button-group{border:0}.el-radio-button-group .el-radio-button:first-child .el-radio-button__inner,.el-radio-button-group .el-radio-button:last-child .el-radio-button__inner,.el-radio-button-group .el-radio-button__inner{border-radius:4px}}@media (max-width:425px){label.el-checkbox{display:inline-flex}.el-checkbox__label{white-space:normal}.el-checkbox__input{line-height:1.6}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right{margin-left:0}.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right a,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right button,.wrap.ff_form_wrap.ff_screen_editor .form_internal_menu .ff-navigation-right span{font-size:10px;margin:0 3px;padding:5px 4px!important}#ff_form_entries_app .ff_nav_top .ff_nav_action,#ff_form_entries_app .ff_nav_top .ff_nav_title{margin-bottom:10px;width:100%}.form_internal_menu{margin:0 -10px;width:auto}.form_internal_menu ul.ff_setting_menu li a{font-size:11px}.ff_form_application_container{margin-top:0!important}.ff_form_main_nav .ninja-tab{font-size:12px;margin:0;padding:10px 5px}ul.el-pager{display:none!important}button.el-button.pull-right{float:right!important}.entry_header h3{clear:both;display:block;width:100%!important}.v-row .v-col--33{margin-bottom:15px;padding-left:0;width:100%!important}.v-row .v-col--33:last-child{margin-bottom:0}.option-fields-section--content{padding:15px 5px}.ff-add-confirmation-wrap .el-radio.is-bordered{margin-bottom:10px;margin-left:10px}.ff-add-confirmation-wrap .el-radio.is-bordered+.el-radio.is-bordered{margin-right:0}.ff-form-item-flex{flex-wrap:wrap;gap:10px}.ff_pagination_wrap.mt-4{margin-top:0!important}.ff_pagination{flex-wrap:wrap;margin-top:24px}.ff_pagination .el-pagination__jump{margin:10px 0 0}.ff_all_entries .ff_section_head_content{margin-top:24px}.ff_all_entries .ff_section_head_content .ff_advanced_search{left:unset}.ff_all_entries .ff_entries_details .ff_section_head .lead-title{margin-bottom:10px!important}.ff_all_entries .ff_entries_details .ff_radio_group_wrap{margin-bottom:10px;margin-top:10px}.ff_all_entries .ff_entries_details .ff_radio_group_wrap .ff_radio_group_s2{width:100%}}.el-popover{text-align:right!important;word-break:inherit!important}.mtb10{margin-bottom:10px;margin-top:10px}.ff-el-banner-text-inside{cursor:pointer}.el-notification.right{z-index:9999999999!important}small{font-size:13px;font-weight:400;margin-right:15px}.classic_shortcode{margin-bottom:7px}.form-locations{margin-top:5px}.form-locations .ff_inline_list{display:inline-flex}.form-locations .ff_inline_list li{margin:0 5px}.ff_form_group{margin-bottom:32px}.ff_form_item_group{display:flex;flex-wrap:wrap;margin-right:-12px;margin-left:-12px}.ff_form_item_col{margin-bottom:24px;padding-right:12px;padding-left:12px;width:25%}.ff_form_card{background-color:#fff;border:1px solid #edeae9;border-radius:8px;height:258px;position:relative}.ff_form_card img{border-radius:inherit;display:block;height:100%;width:100%}.ff_form_card:hover .ff_form_card_overlap{opacity:1;visibility:visible}.ff_form_card_overlap{align-items:center;background:linear-gradient(-180deg,rgba(10,16,26,.08),rgba(27,29,32,.851) 69.85%,#1e1f21 85.67%);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:flex-end;right:0;opacity:0;padding:24px;position:absolute;text-align:center;top:0;transition:.3s;visibility:hidden;width:100%}.ff_form_card_overlap p{color:#fff;padding-top:32px;word-break:break-word}.import-forms-section .ff_card{background-color:#f2f2f2;box-shadow:none}.ff_all_forms .inactive_form{opacity:.6}.ff_forms_table .el-table__row:hover .row-actions{opacity:1;position:relative}.ff_forms_table .el-table__row:hover .row-actions-item a{cursor:pointer}.ff_forms_table .row-actions{right:0;opacity:0;transition:all .2s}.ff_forms_table .row-actions .el-loading-spinner .circular{height:17px;margin-top:14px;width:17px}.ff_form_remove_confirm_class,.ff_form_remove_confirm_class:focus{background-color:#ff6154;border-color:#ff6154;color:#fff}.ff_form_remove_confirm_class:hover{background:#ff8176;border-color:#ff8176;color:#fff} assets/fonts/vendor/element-ui/lib/theme-chalk/element-icons.woff000064400000067050147600120010021114 0ustar00wOFFn( ڔGSUB3BOS/2<DV=IcmapT*8 ҩglyfY+Bheadbp/6"hheab$hmtxbddlocab44}`maxpe  1namee,JaÌpostfx sxc`d``bca`tq a``a cNfz"P ʱi f#Oxc`da`tB3f0b```b`ef \S-x~C sCP$W Nxu]R`ˠ vw3(%H#vw9& &֋u]wP%zޢG}x-xEzy5?ĤKcyV>;f쑽O.%V>g@ 1;Ŋ!;e왽o.>/}NlBOgGaV~5]WN^cm}'uG}61MhJ3ӂb Zӆ=kk+zlFlYw6e39؂lVl6lvlN.K7{{^A!aQ1KC_xNDq's rsgrgsrsrs rsWrWs rs7r7s rswrwsry@1!#>>3> n/oNXOg~W~w`URSjڥN[:ƥIiZEiYZ5JҦ-S/5kT?oSLO1ЪAV%E *Ab $Eb$ObU#M,1ʪWM11DcM61M;1M@L21ٔ SBSMYAL3tS~3LIB4e 1˔.lSsLC5e1ϔB|S LD,4eȔVbSnKL F0/)LL|lJgSN̔'09d'Ҕė'2>oL]@|kj;S?KMMA,3u=L=B,75 -O!V LKд ȍLشMLldӊ 75 r3Ӳ 6imL´@-BniZ%V}BnmZ*6BnkZ/vCnoZ4mChZ9NClZ>. D0!iL mJ䮦DfO%EaT䞦uEeYަEc^侦FgceF`h䁦FdmGbr䡦UGfwᦥGa|䑦GeځѦEHcچ䱦H1Ei9Ǚ6$yiM'v%yiaL[<ɴ:ɓM<ŴDSM<ʹNM;<ôX3Mە<˴bɳM{<ǴlsM<ϴvM M[ȴɋMĴKM̴M;´+MۚʴɫM{ƴkMδMM[ɴɛMŴ[MʹM;ô;M۟twe@kLyn 0]䃦[|tU ӥA>j9L!0]$dmB>iRȧL 9tM7 9t͐Mw 9tOnr!r"Gn"r:"G$rb"kաo VΟhIVƪ*'[:Z:[:gZ:Rul+UϱRu\+UϳRu|+J TJKax `[Օ0}Wk-[bIv+eIvω:!C$@Bh%Jô`H˰B,[(˴R:Pv:_i;tX$'}ng zDB/ lo2u7`4I&zfOh{r]H?'4X^utu퇚;ח|tc̞ l>h5ۏ[Y,19HY}}[?/i>ټQ , 35AIVa;5 ,( uBd3D,5\^Zsh"H5Hr A|Plv;"D ٕY"g ɶǂnrd۳q|_q|ͭ.&.4 R mv`2$5P1$?@jm"4=AnUηg,ʹFۼC -6P趏"d p^V貑qKq'll6p'? #JF|ɰ{<1'Z8;i@CCM3|{ft?ٶgc_nu:ەq-z Ą0Sea{^4@$D &M<\aơYlAl HɬnF6W4Ҷ ]6FW3^/zp䓿s LD! Ce3B"tY) >{u;dX]'X}ơ>"f P'_:_:oL`.(,-MfUMD<*N.랐>ҥ5,@Х~]^[,fMZ #X(oito9Ioއ`շRO^͟%j&N եuiI 9af\a x>@4^90j9~服ߋw \ d. _**Nݛۮcl]p^ao+-ͣyv}{o\~ l[-_߬qhdAh4̧y2a·R ;(H(nJ̥ 49(\)DL"F$pInvGw8CI]ɡo3cG6cM%f́>gh4mQclv}yv.Gl40W!E䋑5V?t#mg.G*s.͸uΣ#@Wsnsr&EHH'6.3N>iYaq,(! e"QD F2j b>_"L̠?Jlm2 Ww7ZH?־:ɴI&xz'j$ 츆}]xG;[8;$O:5 Q5hj kLksn5 j!Wh2}-޲DJV0NK&#}P1ָ|$1(QAǩq~'ɲ u~B!?~Wպc BTu/=ݻ ,:Eidvco0J߹ݷ9ݫ‰s64\g} Ťt}zGKnuevYRuӇ6Q.Ahj'pաb4D*_.QȬs2еEh4Z@:YTF)aVWػq.|KX'(]TzׄdꮕDnx0 \+C {K!>aNdstT$A[!6 J%+AAKiTJL>)zd)C4Ey&!W:@rba ΉL<Y )BA,8@5Dh1rQ_1H mcy_6gF#f`/4ލ ^zBNfLAnq@J9Nd#@@|4hcE(2ܐs;ogO|6{yh!$V& IC4 :/,G Eqºur#z"5GIȸoYGZLo:Pm6Ӿnj+t`q5%Jv8h}B r}i]<2CC ;@ f0%x#2e@@,8`JFMݳ˖,_>*}4k ;V[,ŧd~k,}UQ p]Z~:B-Mwaݖ-u?Fr~}n\R&qc z~p[)iFckpH sY}lej$=C Ab&X1K$?xR)ޣ Dclfkн[zY~MFwil7Wt:!os!/z걃 ghL&vfmX4ݐ8'V6{4ߥݍcF!<- \':.. ԃIqE=BGETL≡$8/ߕJsLK%m"n!}i|}KQQW/ _892s]×kf{-ݿ Vr??Z`d3U(ϵU-iGχ;(i_"߶||Esݴ([nrɟgV]@Y'$a`Eir%qAt O9hD"4l0(  0p{Ζ]Gbʇ?e[>\>pȏ7l2E}iי4Z1< {ˎ/Xf+EΊ=k-ouq/-F4";lnidJ3v7-OLByY?!jf}#F|p Q R榨n=xt.AQKeryF[k&-zE.$ɞ%yoHd25+N3K0󈡱C)dFSEooI˙?|U6GQ'uNH-j(0#0]Hxw&WuGJt?>vY7;\O?L\±t?&`kk0>$߁r*/$PpH<ʰmnC_eV 0`ظ掯m; 0{ =$0dVZ1ڪs*\ RǐFp`&k޻ +]'!|JGl]2_s,wv={)+Gݗ\gE;@\CӪF..m}k KrGa26^;g \T\(vQwj3\E]9dP |Y*hEtYYv>(  yt(v#{:}7{MGmx~+Ϣ^ؘ8H&`za []o6^ohMLy!Bx mSܛ5Ž򍮡!e,2F x6.@v ^Q \XuN=ָ"45ZӢk;ʊ>\-h6}:H]韬zӗM~tbա[: A0&dVTE#Q*L)񑟷֘t/g?ҋi7Lam_`d']%a0&@=Fh/F^{!f{@`*텇?p_h~ o(IP9?`i43Cfa̜y4u.fL5yRS)(^':1ȕir(p.2Zچ -n{ѓMQKa亪˵@R^57 @_ |;kI(:G` {炅AI5׍zztA=FGf3xA< xIfO(oeihĸn=:(D`{&9$U>`BѠRJ(JpV4?`BKy TЋk%<ᘗ^_} gyT1}pMgdK:HX]=Rq^1ߓ/>s/1o߾:|b̔Y+0U$UKֺvS丗=B鑽cˢ}U_}BTe易;@_Zcɘcro΃tk7fx=}$oGD!s{opxh?uoಥA"Y/,¡\ZLuyT$J:}[,#dـ_nZ+|Wq`,LU{*vx7EC73j'_+Ni^vni0hE"ƔM,@KqE<|1^p"Y#&H\ANEZBD PfA9j]dhDVhie08ȐC hi2! ph(6So G d$3A-}Tq0rsKD!Gh!4_Y'N q$\@AsnGG蟙^@GGD̀!dlf'f[7&,?jrSHz40ߎ0@yfƕ0p RHr2t;\47LdLVr- oBeE9(݂Ym7Pr]J{Y>sʱlDZB ڡdhbE4}MC@p&T= uWڛƢJSh.r2#X%3 " p MM'K@Q+' ŋ̌]1\gjUFߢJX~;u:R4i*;vZ/پAy *ޝ`Jb)-Gz2 IWB4eZD~_5#!Eq4PQ_T~.i:PwsEPLc3]a7> @_s@_$d:$U% @qtY 7o !y@|!nnrAhUol DcaM޺5k+tۛ׃K&9y2gR7xAU#g\qkBau>,#0b:QL:wSLFq] fdm.0L 9/G**"]y|.yV73fPb0Vge&0UTW)6<4bwf(d `;Z?I'HA9s"^30Oh,Ab 3N @:KQ!qNV]# OxG_U~b!=FE(1y!ꡪ'yC+H9B/E:q˪ڵͳ|ҹfccƄ c˶C|^(=`rx"GYR o?ymI{d{X,'8cqnApw +>ơ7ۂK|uR9 s'/O TcHќ :ܿ_W\Ӈ_Kw'zugm3#K_ޭ3MR|xy۱gu?!\~W|᳈#; 2Pnxߵ-X7v4v9oi|S7?Lnص--:%Wl#wݱ^,9{/jW[ 4di Q-:K`;Ԣ$3Hs Y2 Ev^iN.:``6:&k6^LţG0;fM=b:k(iv_:x N[#K[ӰB~i~|M ۄk{*@#SSa gMT]pL׹T]d&vW-hfXV)siG ]*N)s#}N&zA2(S@:7Fă$1QE8m+H7m_cXY!LLƳ[yͪUkoeK,*40>G ,VFtH\zͺ.f<\L;yÔ tsvD #Y¦*\bTo#0)b3w6YڇWuYrYw{׎=֬)|%hNu сCmF9[)/Yrɗa޵~rMDs16`BǑZe3 rJ#;IEl_Gɚ& cݦc>3xfl7d-Jܶ%1l߱`N ,$-uu'h3lOM 3qy}eK~j :L0ƥ lEQ+IwwFrJbgw}sI lJ*"+Q["ŭ:VQ  俐:wcOMIdu}$n#v71U*ӹ8P~Ի3 '#>3it[YnDx䦓BQ m )yx&˃Ū/ ŢRlGmZuXzQ.\1k޽Q=Ir(k8\3< oҏkG{!Sv2HzjֽR*jxXqV!?m@c3ځB~wZή4)K dUK,Q Y E *8)uڣgĆJQYIi!άVIYpYҸh9W@r&'eח ϋX=BP0WX^{d(FĒD]^,xb(#jVK6_q }3b={O=%m[R l;֣=g[[f-fh+0@xٚ"(ojF zO&JU soM9"rKIvx(Ol~H&8_7KH[(*=~ '\$YTߢz̖r^SWTRU9  Ԃ {s-\gT,6z6N dl(\y>yjvt&O9@N 8_ծqSX 2jEϹE3?85vO+kkZ/*Yvh@N'[Otӓ"ٹv-zKMlu ;-Cî22T[*jc|[k#&GM6 Ѹ£.mGm;^Tt{9VRz>YqJpE+/@ TY{RGS'ZHV E e^֗N}A0%PU3k&ho\gzo"rpř84.\=l7@2&Qi U)"QFst[g=K6Y"K3CvKsqȘ֬@%^|Z"_{%\(5sLtFj}b-Jn(t#5ai)YbDa.B$M&_ꋄ{,?^uaѐ2#K4ݼ'ҜKLQa,7hJtY^n_o9ꎅxօb^NJf=jQ{U53M*3!C^/[\ vsL'/Kf:GI=5Gqk&knɲNN<,+` ӆԆ: K,2Ub=d׬$zPDqٚ-4 ]&logu{T3# y>ӚȨUkbzbm!DNC&)#Z BFy'Ų9Q+LG\ևS&ߒԹ A"EA8czD ?%a,@^pE"M/pMdMl\w%BAeFW, m*.Zkf>0M7<_>qCҠ# /Z؂EMcg5E42^p1O !s!(nѡ2hg>0Yyʇ^> wّ}K@F.](>sӚ!DX]l:;Ug]1&?AnjbYۼo oxp߂F|RFr}w$s]=tt ;;SʏN~(rye~j\8d󳄵@os `I]i x!"a/h*|f&B".!bx/U&:Dkzwp`59uοuv4,|coeoW}h֍o4F_K!]elIQco.:4Kj]8]Ӈo#wu,N 7jNt.IFbbio5Gۢ{[lfxBtFoyD#Nqbu:g>H&w<^;a!t|=o^4# 6WXҜOó悁a5\\0v EnH~OǜCs,Mx9sq?AL. (j8UN(T(ˏ0j{8%(r Q:Y'k'tIDp63ƫ4=[-s+ʡtb;W^yw\y;g뮯/elңp Z>FVgٯ&|lOjkp!|QRŸY~*DxJPĝTqܹe+--;Y엚-IKW}8%<,胃ԖDeʙD|\>&gDi[gc4~5<ùLMY;_Iun]ˢ10\Բf@Ԫbj}Ujh}:5@ 2XѸZTp񃛦9T5.wk:LZh-eoh"p&(i*j>ZNW3vo%kb8%ɬ$6`oj(xjz(rOLkE= {egk&AɖM`3”>UNAH/$/khC )P,"B-P.H  Z;r%_\f8q)v?0A ySz1O|c"e[۳6~u`3-$IΈݩwt٣\lvSZgΒ#pCBUء}1F—(l”p*3|_,Ā V3vz:h,m>N8sRH]Er׉ajCRq,] zd\ʪluc 4<唕&vv;K#2!)=v^TNRj 5ޯPҕ J1|7I!fl KWm8/ Y~c4G=N$l AIPVhwutvߥ_g NpO|dN+)>2bN0]m[[朁ϮwǧwDdJ1ۛ erk)dBe}GWYY+xʬ)p,bQXP%hadU rithӇq˂qG5$%m!?~.|riOQ&*[=Umeru(nYcE+8\/(uZϑ#Gio=R_ | .2`L> *P洽M6Vx=e^eg֢A^A;:˃XEgt]ځL`?ɯ\Xŷ{m5ڦ߾o)[W6֦{λ^^o[3)AR.fQ [OoLej)ߨОP𓤎K\S>:Jlp/LpvD2}3̎B*`j+)mMNbBpŏdq|'?Cs0t;7.7C^ޜnS!05POss/@ ?m=P >i_?pO00 bIDy@pEC1Rj8TMW=9!EYh[t>?wP\st5EN~Ld1WO$ }T-:ǖ G+DZʓNٹaoCjl>ǿ ~?믱_ݎSp=nj/hJ*םщ)2BB$`sav*d! p)"\@{X8ˏwDT ާThj%_ntA'|oISfGl7ڻY -qT~^;F0~md5 Z#[URjm{s:oAۚS_V_j>ղ"W.jdg9sd67yP%GhUZ_ pd&&I|Pn3\q(w9K/hYA6oA/awh?9cv WF,vT/If>OrOo T(A6`xd"9e?he$тR(7.X@c7J&=l5ZhQ srL$\xHp`+VKOк\ok&ݨֿ_02gA)'u7IxA"5Lw/pP`5J?]fEtCy Oձ1Ůp<Md꫏Ehǒ&x͑ͳDq5$T]G\v.76w:4}f7:?2:DlF6x%iY.?&IzUoЮ"pwa GToa(cʑt6犸"d ؐ(z予CY%fq.`傘z~ v}hpv3u W6y韶s4^FCI) úyy7#D9 KT\rRa#j!'ԛTj%h& s#ZClkB0 @f+Rk(ǦiTc0(Dywn vf';QiL&#tpw͋j4QL)rl8|3A==Wڈ_7Ta)=O|Y 4M!h{p픋u"A!<-Er=@]yPϟ!2A#@`ްCƕ5ݏW%Q}P&j<1 CL%)55sd =U*6ʠxr ;WI2Ϗ%y Bt}+:|LyC +W@(*mt 4ƶ^M[cָ|Ճ#m*(CŅEG!;@"vVa{p 4(7a`oIu;FZ(mL: FRZ^K*r_ڨT.hG4~))pwUf&$-v?k0*,h^jYQZ"s&Ă`tZJ4F ͮir-MiצMsLfMXh::#P5B>|D9!LZ۱mb4"Y ]3OOq`FdiEf?' ɻN&>OMoX&\R(4((Sz#Y?0Jf tƐyM:)e*Ř(8z"^\ P hQ;2j /Ry\^R٪?]4Ū`Tl+ebϡ0j%~(x`34o0$154pBi9R;⎍$GQч \ (#(&1hE2q8_ EUXy!E 'Y2.IᶣVR p( [ʷ9}JX:EfGSM-+KV(=X%aKERP&t]V\O s^A{EcM9>NyV, X]Rb$ԋ&\Յ'kxҘCOxs<)Y;J{SVئ-kczi( p] knGBA$-g焀#L5$6ƔUڑ@:K`P<G OI կb'Ώ dGN xB~,7Ĩ&2?D#h_!BfmrXAFM*>za {*-+(%Ŕ$Qİ۷Vy)y/= .qꒄQ@7Cag} V,%r,TkVąq؎)LI66nT5az1%hPA-S` Q@ðcfI;҄bE|^L9nq,f* Aޅ)—(ld?P*bTZEsJEPq,RZvO`97!ĘLV@?[-P|VcDHr)"}t'_?'`HY-(=w3iQwd6@⊹bSQKWdB]"8PH) }gՐ8SuMgmdO w>Nz$I5(V/h`0Ih[F%hVeSn M{t?H8r墌htS*7_.qoD$+Ӣ-/]QzA70^fUU#:3=ER,(閿/]wI벭Ycsy uB+[ĈbhH$ÓDjEwOQ<.|T>,JwwDޞSfu tDK>j41d$;\rD魁P34ݽb҃;6-V1μq0 4{ީ_r`~睆-XLtb <JO&Ic%pIGS6h俊3lEd NfCC8Y5N}q$tpYنTŸO̩o4|qk¯™I%1XU1|ld[<0 Y-6yfnQ,Q"pk_4W/ ~]9Z90 PRXU6V1wJRׅ{1I:!bx4MB~H1bw?o>.8p"SETD)6$*7ю1!)‚ n=3">)yl*)r_S|d=75%KG&w@F2Tϒ77Iu[dISٟGbEfy0̴(rpN~s#@p _mbS9M \'AZ+sbɘ1U[`[a$0JE/~]c@ 6JsǫVh0z,MY cuBP^!J#0vHG$z!~\oGBO=kN6;_x75qp?~eĭ_ 텮ܛ+T#|Elc,d.,OH$Usdks0-j0O4}"I\zC2x@uްȽP`D|Ld_sik[HT"Yz0CitVh.]WnX==؜X_^?`NK~V*W- _k .(ӣ=" @]\,uBoCd6?%@4 /?/0"&P"w5AYeL=1%dk8C9^;Đ^ gwo̅*a'8Y ̢tj)*aU+5ZQ/L $YL&K]s;%;k/w"1Ci~O"^ZR?ΛxrʴElWSq8%  N<7(d)UiBXmq  9}ǦCN}ey 3L|#8Qe[70 Cق1&?~%H . %$E" .x.`ڕ|'I(A"3yllO/MbPnߡODvM[4Ff_ZQrwJxm{R~]u[ aFG|Y}}d6H# ~q[{DUl{}*7%B39D JW"F=` ̣¼5`7/e cWV#e ?9ʗŢE%w|8ys A䢡zB[w>0l2\!J pm|P t2 &BI҃2M帪=ƐB.hFa84(qlqLk%(UM$}Vz̉R^[%SBU ,}x/Ȉ~\N{+~P՘n UX$㔸p6sJfqO!/} 6n!Z-1wCjlCX熱Tx,A}>hY>rtr)[|*o'=(0NS&W7̎HDx2d̅<) #3 =O5=_]Vh3.6HjǍxG{jh6a]ktMY->W o!\9O ltj߫/NQ/($->" H{ɧҝ)i{KӣOv,ҡѠPv5nR3z7}j0 zl #j(3Z+4+BE] .6>eB_O_Ryj8< C_"&=ٕ^u`Z$o=fR-2F1S.ހAcJ3@Y5$*1c(J.RPX 66+ 7Ο)C?#\7 #sxKЇ5yúH|N/~)xiM4lc6j%=GYg͋YZ\uΐ5ε[SB .ԵROP<*3ݽLtM&zf[D%X޾fN?L7l'SG""M񡏕X^~  Qh/:`ju 񶱳'Հ򷢳TH$$LJUU@q'2\Fkb3cF1 x-P|nn?trENa{UKyI4WBUN۸IF99ZOTl&q>lk/ҵ, 5ë;8kWa%k7/ ] g_@bbfQ*?; Z+$wJ %B`c@'/{_n?e)h;δ#-H% WٝN]tBY>+ X=L3Ş1I DDI1|8S?N_]Gwfno/w{'9\.5I/O7ZZKir}C_V/•X(}P(h%(J4"iIňXmݻ!ݙٿ3}G|;s$f!15*K0~'ռAzs\g QZ"xvYwZ aQ&8MVc]^m'TV{/׷sh&B::r'%Ud 3iJ :;:?~7)G|v<-2/ ËIvs=67}c5_1=k~ؑ%_W{\_R%(_MyAjjiF rZiq7c9F#qF9},֋. :tZÚ)7 ̈gS#7pZvV:k֑ޖAwցR1/@Q{e[-پ98!8N+EF#؎c^o/>9w!UkEhͣKKkټ$t6o~?mB3<RHFi=g#>Ǐ+̮M{tϓ^ƕM~`k' &" /#[*Jl|fYH ^5+ ƻ1o"N%|q`G _j/HA }]>wZSC@*ogkߏ=LYpPʿ]/Ga= tukiZ-/в趠GK/~m qW{NIZ Y'Z N5>C--0{=_m&D􉋔^٠dB={?E70ʟd_WYJG3.y1d?-cXkcb7UT&5dtt+ىaE8 6,5 Yzܻkвw^0^SM¬ f0 }d=;8ML~Ϗ4!E!uTU^\#N1~0~͸Γ_mZ7sfA(GRi>S+ȼE% r,@\U>c29:l=փ ;xsS;53Zә黼XFDxR39_elߓFѱο<:Fl$.=g'>ĔBf<uƳ.HcxW8TF9e&̐ ( 0ZS(``DLxOqiJ: J.L3R(n H8*!vL!a7ksG ]caNJݧ+cOS"+F$uLr뒹;d=KhIYgv1\K#Q^(cDbcswD e~^䉋U6u&'0"߉xc`d``L6_Y@mL $ 6} Jxc`d``n@0JG!xca```ţxba;en.FnZh<,lh 4 B  v @  ZP dX V2Fd6ZB2bHxd^L\lP Z !!h!" "##r#$$$%&&&&'^''(d())\))*.**+V+,N,~,-*--.P../$/00t01$12L223d34H45556P6778,8z89699::z:;;,;x;<<<<=@=r=>>n>?6??@8@j@AA>A~ABBBCLCCD^DDE2EEF&F`FGG0GXGHHXHHIIZIIIJ:JlJJK K:KL:LHLVLdLrLLM"MMNNTNhNNO2OvOOPNPzPQQ6QvQQQRRBRRRSS0SZSSST Tx];N@)JHAreD)Spuz)%p :~;53;3 vb]f'n{/F#'a p>^=\UA~n߅[6n%ܡ-#=nF1nf9n[V5nv=;N3n`#L!qwPDGa``s'{>/x !x(x$G1x, x"')x*x&g9x.x!^%x)^x%^W5x-^ x#ބ7-x+ކx'ޅw=x/އ >#(>$>O3,> "/+*&o;.!~')~%~_7-~#?/+'?F 608H4ݠA `' SSӂ7kLʷxsaZ* YzP+ˬʌղ6i)Yf,q\BJj"Z0.ḐBEwάХ(TM4E_IޙQ!lޒs;qKw*ֈn{yƛTs{I.F0ݱI}5shEdb*=^\f= EJվЃfLLRl/n9+: ,%OG̈0sSV.m̄'ScΨW\ -oJQٞPj`ҹ>j(%&eT$Wu"Rs*A_T[Zdʡ垫uMpDU0cK;wm+gbvH'˙)ưSf3w'~!W+Zz=^ԟ{]{2*OWLU lMdM9Ǣd#42TuX T֑ %#N=hI#lȕ\^t(d9Rg$5aejLU];\IvDvof͎9wYOLf*ں1+XYdžO*gCUArM`#fّr/q@]hܧZr l_4Tr"CRZE.JvA,#`Hө+TrG CdiJ"sBIG1ӄP$H) KClsEQ%`q V3nJSqdq YQ1ͧq{oL9[d.MHQdN#*AVԇUf9^`:~Z:N\5[c$n.,ЊktYp"B5^)CHCovZOnKa(_4-#;<'Ŷ*$[yuOo&넲dY`,t/CF]n*cMXWAr5aLC]2PAh!i *]vMz&+F m9`EtSUGU+!BsWkU*Eϟ>t](uËZKv4Т$#jMkYgD⩦ޥ8)r2+y꣹;{iCassets/fonts/vendor/element-ui/lib/theme-chalk/element-icons.ttf000064400000155224147600120010020751 0ustar00 0GSUB8BOS/2=I|Vcmap8 ҩ8*glyf+Bhead"6hhea$hmtxddloca}`d4maxp1 nameÌ$aposts͈ \i?-_< 罆罆  ,DFLTliga2PfEd@\,, "  +AEa"-DGc""*DR 24h0  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      0  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ ` a b c defghijklmnopqrst u""v##w$$x%%y&&z''{((|))}**~++--..//00112233445566778899::;;<<==>>??@@AADDEEGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aaccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~     n.FnZh<,lh 4 B  v @  ZP dX V2Fd6ZB2bHxd^L\lP Z !!h!" "##r#$$$%&&&&'^''(d())\))*.**+V+,N,~,-*--.P../$/00t01$12L223d34H45556P6778,8z89699::z:;;,;x;<<<<=@=r=>>n>?6??@8@j@AA>A~ABBBCLCCD^DDE2EEF&F`FGG0GXGHHXHHIIZIIIJ:JlJJK K:KL:LHLVLdLrLLM"MMNNTNhNNO2OvOOPNPzPQQ6QvQQQRRBRRRSS0SZSSST T7!+2656R6@)66)@)66)@@@)66)6))66)@)6H+>F&>>53./676&'&>#.'&.?&676'&'75* ;?'@ZDDZ~^^OUW73#5>65>6+"&'#5&/#"!76&+'4&";'54&"3#23!26?`e@p% <4$`$4< %.I: !".I: /(4v4K  K@%c  @ d  '"++"D' %5 &$ %%5 &$ */ / p f  f#.:@5>732+"!!.'.>7!7.7>?%!264&#!"6)@'6/&($x$(&/6'4(P\mR@7G< )6 2N9!!E9N2GSSr A@5 OpX =A37!#33.3732+!.'#"&46;>75>732+"!!@Da@tG@9#p#9@G_6)0 VhaDr8_')6#'7;?CG>7!.'.'5467!.'!!!26=4&#!"3#;+3#3#vv &&!1#r#1!&&bYY0@@@@@@@@@@|ss 2!@!3 u 3!@!2 Vhh@@@@@@|@#',032+#!"&'#"&?>;'463!27!!'!!7 1' < '1  ;G 7b K%%   " ^^@@@@@ @ ")07CL%>7'>7!%.'.'67%!677&'&'.'>7>4&" 74&/.'67676.'>?>#1A,.||., F[ #,   AX 6=Ɩ=6 u}  F1g T.]].T g3HM3(aBN(m@zz@m(NPhC6\63#&/."&'&7>766767>.?.#>7>76'.&X $97HX5"'#6P.J&9#tE/   H  15Z4/9@)%6--5'(3$P 77M: B^x(  @Gn k>G (=  9w  80fS)A61n H>@4@L6767#"&463!2+&'&67&'&'#.'&6>7.'%>7.'*$Mu9$6XzgWWLR"(;SEYg Z[yntDZZDDZZDZZDDZZiI=S;S39sXY ZTV!#:TAWxWZYqwZZZDDZZDDZ>ZDDZZDDZ'7''7''7'73'.'&67,=57.8a jo"w[U||K`(7.86>,woj a`K||U@3<ENW`i>".7.7.>>75#"&46;2+>4&">4&">4&">4&"7>4&"7>4&" 1"gg5L8&?'XlX'?&8L5gg"1@@ )66R66)66R66)66R66)66R66)66R66)66R66,*]nK#LC)4hEEh4)CL#Kn]*,C6R66R66R66R66R66R66R66R66R66R66R66R6@@ #'+!4&#!"3!265!!.'>3#3#@ )66)@)66I@@@@ `6)@)66))6``D@'E7671>25!>7&'.#&#'"&.75463!232#!"&46; 5>'':$)E }{v| 1(%9#)G{@{``q g|r_ccD@&32#!"&46;.75463!2>'5! ``{@{7}}cc,rrA@ &!4'!!>32#!"&46;.'47!%N)YY``}@@@vJ`Vhh~`~A@$32#!"&46;.'47!>74'! ``}@@cmm%N)~`~/mmvJ`I)9D'32#!"&46;5&=4673'&>!>3>.&/# ;^.Ro7`` HB `Rb1 P1T &\[ J00@>moUޫ S  {:E l .`X),?  k)32'#.'463!2>7.!2#!"&463>75Y47[5Ym6II*.lRRl4]f[0Vim``I66IRllR@ #-%!!>3#!.'463!232675.#$$A@(77(@I6@6I@  `$$;6))66II6x^#0=JV!5!;2>=%!#".=462"&=46"&'5>%"&'5>!2#!"&46"5D&f&D5"mf4]H'{ 1VD3&D66D&3m&I]44DffffB #.>7>3"'3!.'!.' %>.kOXXw7D " AP88PXO98Od: XvU (@OjVksX^;8GG88GGxs139GJ: /@'/7>J=4>>76#5.%3&67."6."!36.">7!!2#!"&461= uLLu =1ę@ UrU M%,%%,%~  9*IXXI*9 0aaֹ'F7CC7F'((((}}G1:BHNT"&/&/.>?'.467>27>!767!2?'&"76&?"&&.4."# m.4.#"  n=UZ3iv3vۏ  #'f(m #".4.m  "#=ZGvv a L$,0%>7!.'463!2!.'#76#%6!5@MBM@[dd[$$Z $    @-NN-?;ll;A$$ $ ќ@@>-4?"!26=4!./.=4675>7.'!3!26?  #5 00 5#ۣ=@)  )@ @; 1@. !! .@1 ڞk k@@'-9462>=462"&5.'5462%3&'&"&53#F99F#M@@; 1:V = V:1vZR`@':F462>=462"&5.'5462.'>7"&5>7.'#F99F#FYlRRlYF 3KK33KK: 1:V = V:1ammajTTjjTTjD%0;F%7.'./.>7&676/676.6.?>.^ B &GS; )7 &KOPFR OFO6,V9aw;QD%'"8 %'"9 #PK& 7)  :SG& NGN REQQ#CQ6!.'5&&673>73.'3."36.#"6!3!265%!>7!_@2iY' ",6))6, [@ZDDZ@__~6R6E $5 $anL``YD!> Ac6,E+)66)+E+DZZD__)66)90 &O `zz !)5>7!&!2#!"&467!.'5."H66H~@.٣$6$m36IH724響 $$  ,5#"&463!2+!&>!.'!2#!"&46``^v1 1v٣$@AAV]]VH )32#.=462>.'3>7.'&!]Vkj{٣@n]^W 2M%-0t٣e&#+ )5462#.46;.>73.'>76 ]NcbVp@٣zjk2 R#46nl٣t/.%@  -.'>>7.'7"&4622"&546٣((/@٣٣٬( @LXd3#'''7.'#367'76'&'#37?7'76?35#'./7.'>>7.q+$ VV.++FF++# VV.++FFC -::-"n!&DC !n"-::-"n!&DC !____DZZDDZZ@K>!C6KK KK=!C6KK ' ;@;"-8++0";@; ;@;".7++3";M____>ZDDZZDDZ@!)1?>/.76&/&?75#.'5#.O   F# !lDQi.Q[hnm@lR@l! #F   h[.iQ4@mRl@  )5>>7."&46%.'>264&%.'>264&0??00??0(d0??00??0(<0??00??0(?00??00??((A?00??00??((A?00??00??(('3%6/.>%"&46;2#"&463!2#"&463!2# % R  @@K!  #/&'6>7..'>>7.  ))⪪))____DZZDDZZ44* FF FF5____>ZDDZZDDZ@ &3@MZg2"&=462"&=46%+"&46;2+"&46;262"/&462"/&4"&4?62"&4?62}       E  @/  E     2   ;%'.'367#"&4673"&532#.'5>2>#.'&Wjj{@m^^E] ] Wkjz@m^^eN$-0te%$,J % 2N$-0te%$,3G/&4?6!.?62/!'&462"&4?!76"/&462* # ` ` # *#) % `  `  *#)  ` `  )* # `  `  )`)# `  ` #)&* $ ` `  ))  `  `  )) # ` `  *&@)462&'&471624>1"/"&5   )    )     :`` #,7!>75%!.'!.'>7!'"&462$$@$@$ )66))66)((`$$`@ $$6))66))6(G8?F#"&46;>7#"&546;2.'6;2+.67>7%.'>`23 G7\``>b rr  Cd#19Ɩ6II6I66IdsWZmE:@ppMu"ǼI66I6II@+4J32#'#"&=!"&=#!!"&7>;5>75.''"&=.?62 @ff3Y9 lRRl@I66III#  #` à````@@ VrrV;NN;JJ # # @+4J32#'#"&=!"&=#!!"&7>;5>75.'6"/&>5462 @ff3Y9 lRRl@I66I$  #I` à````@@ VrrV;NN;$ $ # JA#'4A#"&463!5463!2!2+#!"&55#!!"&54623"&5462@@@```@@@@@ !264&#!"` 462!2#!"&5!"&463``` %'& 6." $   #  7'&"?264/76.  #  $  $  $ D#62"&47 &4'62"&47 &4  K  8  K  8    @@     @@ D!62 "'&4762 "'&47  8  K  8   U  U U   264' 64&"a K  8    @@ t4 &"2764&"@ U  U+8  K  2764'&"U 8  K   U  Ut2 27 27564'&"  @@  (   P   e A+46;2+32+&'&6>7.' h }fhiRllRRllh gh sffdlRRllRRl@ 3>7.'.'>75.'!"&=>7!"&RllRRllRmmm6)@)6ZDDZlRRllRRlBmmmm`)66)``DZZD`L,?"3!2654&#%!!.'>2"&=46.!!5>76@@)66))66IvEEV``q]\%@6))66))6'A@ gG@&^VW@,5>"3!2654&#%!!.'>2"&=4675.'!5>@@)66))66IlRRlm@6))66))6@RllR@@mmL!"&5"&4762"'<     Y    A!"&463!2"&562"&47b   @   !!264&#!"265&"264'@    @   a!"3!2764'&"S           !2#!"&46"'&4762          @%4&"'&"2764&"       Z~  2  A%"3!2654&"264'&"`   `7    !%!2#!"&5462"&4762@    )    L #/?>7&3&&76$%3!21#!"514!2#!"&46321+.5146qfbv ?9oq!e`2  @ w>P]?gdMjX@  4 67.77'.'&7J3;Gtߩ> p&w+ d M͍/@O>tl d ⨨+w@!2)&'&67>%!676&'&.>.Vj j>~knkgi3#O`ok8=~#aw]++jjva(-ڄAll$!Oa sOPdK9TUJ7>Bpo)!%!&'&67>%!676&'&Vj j>~knkgi3#O`o@jjva(-ڄAll$!Oa sOPd*/.!2>5.'!.'&67>76! h_ 'IQ jKp*K; W8]qtd maVW =DQ?' tKJ^ ;K*InQ`s~cdTk[ @ $1=JWdq~%>7.'.'>72"&=462"&=4662/&462"/&4%46;2+"&%46;2+"&&4?62"&4?62"RllRRllRmmmm  . #- (  -  . g@@@@ -  .  .  - lRRllRRlBmmmm@@@@} -# .  .  -   .  - (  -  . @ !-&76 #6&'&"3!21#!"5143!21#!"514S([vxxv[(C)HghigH)  @   @  VTTVzNLLNz@ @ &3?K7!2#!"&463!21#!"514'>7#.'2"&=46.?6262/&4 @  @ `Ɩ@zz  D # D   D # D  Ɩzz@``  D # D D # D  &2>7!2#!"&467>7#.'2"&=46.?6262/&4 @ÌAqq D # D   D # D `pp ``  D # D D # D D*7DQ^/.!>76&!".5>7>762"&=4632"&=4632"&=4632"&=46# g_ )APcKLj Vlp1WD$nX}VU \s"]";CO?( _BKc`LLsm$DX0ZRjYOb````````D(=%.'>7>765>7./..?623.? a}nX}VU _s{`FXVF# g_ )APZ $ ee@aZRjYOa`A gGHh";CO?( _BGaH    D*.26:>/.!>76&!".5>7>763#73#3#73#73## g_ )APcKLj Vlp1WD$nX}VU \sb@@@@`@@@@`@@]";CO?( _BKc`LLsm$DX0ZRjYOb@@@ @@@@@ ",312#1"5475''#53%7>=4&/ @@i&00&@c  c@ @ `86&&68 )   @@ $%19A%>7.'.'>72"&=46;21+"5145##5!353!5mmmm @@@mmmmC  @@ '09BKT]fo%>7.'.'>75##5!353!5"&462"&462'"&462"&462%.762.76''&4>7'&>2mmmm(@@@@#  $  $  # mmmmC=L $  # $# # @ $%.>!>7.'.'>72"&'746#264&"#5#"&463!2#٣٣@$6$$6$_@`C٣٣|$$6$$E %6CO%>7.'.'>7%"&7%26'32+"&=462%&>&!6.6٣80 $80 $Z Sn1/;+ .C Ro1/;, @C٣٣C SS S1nS / ,;/1nS / ,;@ *26.'>5>7%>4&".'>7!5!!)! zzƖ$$6$$6II66II$ffoLzzY勋9@Ɩ$6$$6$AI66II66I@@a@ "#/!3!21#!"514.'>5>73!21#!"514  @  zzƖ  zzY勋9@Ɩ a@ ">!3!21#!"514.'>5>732+"&=#"&46;5462  @  zzƖ```` zzY勋9@Ɩ```a@ "+7!3!21#!"514.'>5>7%>4&".'>7  @  zzƖ)66R66)DZZDDZZ zzY勋9@Ɩ6R66R6AZDDZZDDZa@ *.'>5>7%>4&".'>7 zzƖ)66R66)DZZDDZZzzY勋9@Ɩ6R66R6AZDDZZDDZ@ $>>7.'.'>7'2"&546>7.'5.'>RllRRllRmmmmrWhhWr٣lRRllRRlBmmmm=A1??1AQ5DZZD5Q@ #!>7.'.'>7&7>76٣٣J J ٣٣DJ K @;?O!>7.'%!!.'>32+"&=#"&46;5462!5%!2#!"&=46$$$$6II66II````@$@$$$@I6@6II66I``` @@@ @&,59EQ>7%!2.'4637#27674&#'3"'&'&63#!2#!"&467!2#!"&46@lRRl`mm] "_A:s^ !`@:m@@RllR@mm r! @: @r! @: @3<FP!5.'#"&/&>;5463!232+32#!"&463!>7326?6&+5#"3Ot! 2 - YY . 2 !tO`lRRlB .YY. fM%#``#&Mf @RllR   @@ #(4!>7.'.'>7#63277!#67!2&"&6mmmmH #@%)'u')%6::mmmmC=  ``{@@ ").3?!>7.'.'>733#535#5#63277!#67!2&"&6mmmm@@@@ #@%)'u')%6::mmmmC@@@`  ``{@ !>7.'.'>7&76٣٣;@8z(@٣٣DnNFXn@@`%3>75#"&46;5#"&46;5#"&46;5.'!32+32+32+32#!"&46;5#.'>7!$``````$$``````$@`6II66II6$ `` $$ `` $@I66II6@6IA '77&76  ' 76'& 7&'.6&'6&'.&Ãf]w2wppwwpq#+>@N_LI ^IG#)" (<=MCfppw2wppw8N@>+#- IL)#GI^M=<(!@#Y%7>7%6.&76$762///.?'&>7'&>7'&462 Eu?r_E@s_E DtH8V0h^V2f  - # .-- $ --- # - $ - # .-- $ ---   GvDE_r??F^q>rGuD 0]e4V^2H  - # --- $ --. # - $ - # --- $ --.  @ %+17>EKQW.'>7'>7.'67&%'6777'&'7'6767&%&'7%6&''6&'7٣٢(!/m"2!* ## .m,' !"', !"2!)y)!2.. ##J ! 'Y ! ,@;٣٣p.#9':7*8%1?? 8  ? \7*8%/0%8*?2? 88 ? A&.;G%>7..'>&67&''67.'76&'%>. '&76  3;8;X?-K20\-0UHf8]uU?)[&W;~8;@DC##Bu]8Mf0;%6/76&/&"7.?'.>?>2/+rr,'!& c "(" c &!'Ɣx%%8 %ݜ''  ''% i@'7%!.'>7!>7!>7.'%!!.'>I6@6II6$$$$$$$@6II6@6II@6II66I@$@$$$@$$$@I6@6II66I .=3+"&51#4623213"&=#"&467#.46;5462@@@ @@&>76&'5.'&6%312#1"54`nc}}cn!ߘ  F;yyyy;F= @ @ $1>K!>7.'.'>72"&=462"&=46%46;2+"&%46;2+"&٣٣n@٣٣D[@!%!2#!"&5462"&5!"&463!2@@`@@ -<E!>7.'.'>7>7"&5.'"&.>?>>.٣٣mmz!@D$ 3$=#   ٣٣DmmfC?9G-  @ $%1!>7.'.'>72"&5463!21#!"514٣٣  ٣٣D @ (!>7.'.'>762"/&462٣٣+    ٣٣DR   @ #!2#!"&46>7.'.'>7`@٣٣`٣٣D@ #/!2#!"&46462"&>7.'.'>7`@ ٣٣@٣٣D@ #/49>C!>7.'.'>7'>7.'.'>77&'6'7/7٣٣RllRRllRmmm----٣٣DlRRllRRlBmmmm----@'-#5>!.'!>3!21#!"5143"&$$mm @ $6$@$@@$A@mm@ $$@-3??!&'732#!#"&46;>75>2.3"&%".762@.`7`r$6$2W#.6X$6$    @@@@6/%S-@u$$ 1%.<$:Q$$@    @@ E>7.'.'>5.'54623>7546232+"&4636II66II6RllRRll2z_@_z@I66II66IAlRRllRRl@z  __  z@`@$GUa.5>75.'>=7"'7;>7546232+"&46;5"&'.=462".762-lRRl@I66IO?5@3Ze.e.7@@_z@@.TS%&    0.@#RllR,@l6II6.I $8 9@y4X4e."_  z@@C)c6  +K    (.676.'?(,   1+O7  ()56B"3!2654&#%!!.'>"&463!21#!"5143!21#!"514@)66)@)66I$$6$$[   @6))66))6$6$$6$  !)!>7%!!.'>"&'326?$$$I66I$#KTKU282$$@$6II6$?"" +,8?!>7.'!&'>7!3!21#!"51453!21#!"514r$$$#I6@6II6 @ @ E[$$$v }6II6`6I  '09%!>7.'!7&'>7!"&4623"&462!"&462$$$#I6@6II6,,j,$$$v }6II6`6I-,,,,,, $0<H?3>7.'&?.5>7"'".4>323".4>32!".4>32R`٣$#\:(,mbj(- *ːː4f-5y@0=  ,  ,  , %!>7.'!7&'>7!$$$#I6@6II6$$$v }6II6`6I $%12>?3>7.'&?.5>7"'3!21#!"51473!21#!"514R`٣$#\:(,mb @  (- *ːː4f-5y@00  $?3>7.'&?.5>7&'RfѬ$!Z8(*x\(, (ȔǕ8h,5|B.  (45AJVWc!>7.'%!!.'>>4&".'>773!21#!"514>4&".'>7%3!21#!"514$$@$$@6II66II$$6$$6II66II  $$6$$6II66IIJ  $$$@$@I66II6@6I$6$$6$AI66II66I `$6$$6$AI66II66I  (4!>7.'%!!.'>2>4.#.'>7Jllllll11.>>.MggMMggllllIO3:3>..>JgMMggMMg (4!>7.'%!!.'>2>4.#.'>7Jllllll22.>>.MggMMggllllIO3:3>..>JgMMggMMg!C#!>754&'5!.'5>753>75.'!.'5>7!6II6@6I"9FlRRllR@6II66I":ElR@RllR@I66II6#:F`@RllRRl@I66II6#:Fb>RllRRl#''7>'&'7>'&6?6?'.[8 .2;[-ZOEA KZOEA KZ.[8 .2;[----[;2. 8[.ZK AEOZK AEOZ-[;2. 8[<--@(1:CLU^gpy!>7.'%!!.'>72#54632#546!2#546"&=33"&=3!"&=346;#"&546;#"&46;#"&%+5325+532+532@$$$$6II66II@@@@@@$$$$@I66II66I@@@@@@C>'.3!4&/.=.4>2!"&/.>76$= %$!=E=! )1$5 ,e)$ $ A"> 1!$T#<$$<# > B+$+-%  @@ $%1>7.'.'>7'312#1"543!21#!"514mmmm @ mmmmC=   %&26%>7.'.'>7;21+"514;12#1"=4'__`_xwxj(%(/`__`9wxwx(%(@#(:?Q#53+"&=335'53#5##546;2!5%!2#!"/&4?6!5!7!"3!2?64/&@@@@@@]GG#R cc G#Q dd  `PP@ p  p P@ p  p @ &3LX%'"&'3267>54&'.#">2%7.46767>54&'.#"26.'>7["PVP"[4EG~`,/0+[.4EG~3["PXO!>,/0+[F #!@"+L#!?H?c[[[,/0X4EG~3[!OZO!,/0+[.4EG~3["PXO! ?$+L#!?$+L@'3!!>73!.'>7>7.'.'>7$$$@I66II66II66II6RllRRll@$$$6II66II66II66IAlRRllRRl/ %/!2!.'&63!>77'!!7!>?LdBBdLV摑N C,^,C =?KK? J~ '#BO@@c*22*c$07;DM7#"&5463!232+".7#".7>2367!!3'#7'#>4&">4&"!@ 6\#GRG##GRG#>J>-M 6B"--D--"--D--` *I--I**I--Ij""'h`A ``-D--D--D--D-  $0<M]a%>7.'.'>7'3!21#!"514>7.'.'>7"&46;2&'"&46;2&/'6II66II6RllRRllR @ 6II66II6RllRRll `Z @%9*@*@I66II66IAlRRllRRl I66II66IAlRRllRRl  h 0 0`[".!'&"7#!"&547%62>4&".'>7@,z  %X,$$6$$6II66IIBB2 q e$6$$6$AI66II66I`[ &27!'&"!5#!"&547%62>4&".'>7@,@  %X,$$6$$6II66II> q e$6$$6$AI66II66I@)2#5!!3!"&5463!2!%!2#!"&546.462@@@@n$$6$$`@ @@$6$$6$ /;G>7&'7.'467>7&'7.'46.'>7'>7.'ŗ"쯯#ŗ"쯯#}쯯쯗ŗ;;"@^^@";>#c{{c#>;"@^^@";>#c{{c#>{cc{{cc{>^@@^^@@^!%IU^!#532#!"&'&'.=!!#!"&'&'.546767>3!2.'>7'>4&"  R @@ R   DZZDDZZD)66R66@   @    _ZDDZZDDZ>6R66R6#GKOS4&'&'.#!"3!26767>5#!"&'&'.546767>3!2!!!!!!   8 @ **** **8**  <    x**  **x** *&@@@@@#/!'%!2#!"&54?6!!%3'#'3+"&5=l  22@(@ T @88@` @&/;DP!!5!!)!!!!#!"&53!21#!"514!>4&".'>77>4&".'>7 `  `@@ @ `$$6$$6II66II$$6$$6II66II@@@` $6$$6$AI66II66I?$6$$6$AI66II66I@%!%!2#!"&5465.'#5>7`@I66I@lRRl@@@6II6RllR@(/3+5!#"&=#!%>732#!"&546;!.'!! lRRl@I66I@``@@RllR6II @@)-.462.462"&46;2!2#!"&'!!(,(\ "_` @ {R (((( @  f$-!2#!!2#!#"&46!.462.462`7p ````(,(@ @@@ ((((@)-06.462.462"&46;2!2#!"&'!!%'762!(,(\ "_` @ {Ro\\+<8 (((( @  f@nn@#!5%!2#!"&=463#3#'3#3#`@@@@@@@@@@@@@@@ "&*.#3#"&=463!35732#!735''3#'3#3#8@PxHh..@@@@@@@@@xH.."7!62#!"&54`  ` @ % {@  !-1!3!21#!"514 !%!2#!"&7>312#1"=4#3#@ @ c`cM qPqr @@ @@   @$-159!%!2#!"&546!!3#!5.'7!5>'3#3#3#@r@I66IRlln@@@`@6II6lRRl` ``` @#'+/?!%!2#!"&546!!!!!!%3#3#!!3'!2#!"&546`@n@@@@@@@@@@@@@ "+!!467#!>73>7.'.462SRl-__mA]]AA]$$6$$lR Dthzzm}aa}}6R66R6@$%12>##!%!2#!"&546;21+"514;21+"514;21+"514`@``@. @@ @$%12>?K!%!2#!"&5463#;21+"514;21+"514;21+"514;21+"514`@@@ @@@ @!%!2#!"&5467!!7!!@N@`@@@@@(-87!!7!2#!>!5%!!.'>75%!/&'$@`@ I&P$0??``@#ll#`$`:6I!(`@$?00?aMM@ VV +!!7!!3!53!#!5#!!#!"&5476 @`\R  @@@Xg  4!%!2#!"&5463121#1"514'>67/& @@@@2O}  2O| @@@@@@' e (d @ $8>7.'.'>3121#1"514'7>6?/&٣٣@@@@.D  *A  ٣٣D@@@@ .b0b@ +/?!5.'!3!!3>7#!!.'>7!5%!!.'5>$$$@@@$6II66II$$$$@$$$$@I6@6II66IA@@@$@$$@$@ #'7!5.'!!>7!!.'>7!5%!!.'5>$$$$@6II66II$$$$@$$$$@I6@6II66IA@@@$@$$@$ 7!%!2#!"&54653!33#3#3##!#5#535#535#5 @@@@@@`@@@`@@@"3462#!"&5463!2#!!76. &?6762@@`5D $  iLME # qOi L@@762%!2/&"&'46B@#  #E@  !.;H%#'##7#"&5#"&463!2+#!!2"&=4672"&=4672"&=46oJooJo@@   @@@@@f >73'.'>!.'56! ՙ@)_bC!3# rr+||+t@@!65555&#77#&Y@@ 3#3#53!5377''7@@@@Z----Y-=---@`@@@@-----=---@ !-3#!.'!7!!5>>7.'.'>7@@$$?6II6RllRRllRmmm@$$eI6@@6IlRRllRRlBmmmm@@#GHTh";26767>54&'&'.#'32+"&'&'.546767>312#1"=47"&=4&+"&46;22  2222  22>@/ /@>>@/ /@h @``)6 2222  2222 @ /@>>@/ /@>>@/ `@6)!0%#"&5#"&463!2++#'##!!%"&4?76'g@@oJooJH  }m %    ^#b .;!3!53>74767!733##!"&=#.'3!&767#7!$$=n% FI66I}}  `'$$G9QOFF@`@@6II6ED.)980@'3?5.'62.'>7.'54>2."267%2675."٣D<"I66II66I"7!..'@$6$@I66I:А$$6IIv4!*6B&'&6767&>>'.7>'>&'&>.kJ==c189p!["o981c=>Z >;;k#4  4#k;;> Z>V)  8V*4.BJ.5*KA%!7'#!"&5463!2%3#@``@Ȱ@0(@@+4!>7.'%!!.'>!2#!"&46.462$$$$6II66II$$6$$$$$$@I66II66I$6$$6$+5#.'#3#>75#5!.'!>@lRRl@٣I66I@RllR@@@٣6II/%32#!"&46;5!.'>7!!>7.' @6II66II6$$$$I66II66I@$$$$D*%"/$'&76$>7.'!2#!"&46}  }wrw|D{WƖ}  }m{D|wrwƖƖ|D:%"/$'&76$>7.'546232+"&=#"&463}  }wrw|D{WƖv```}  }m{D|wrwƖƖ|````D%"/$'&76$>7.'}  }wrw|D{WƖƑ}  }m{D|wrwƖƖ@!-9!!'!#37>3!232#!"&546>7.'.'>7 . 1 .DZZDDZZD___@@]]ZDDZZDDZB____@!-!!!5!#!"&5#"&5463!2#32+"&46@ @ @@@  7!2#!"&46#' @@-==.@B>-=- 7!2#!"&46%7 73@.-@@-=-E,62"'&472764'&"7.67Z<;88OOKK.h88<;=%%(f' $ &-23$ 88<;KKOO.i;<88=(f'&& $ &- $41@+/CGKO%#"&'&'.546767>;5!32+!!5!34.#!"!5!3#73#   EE   @@ v @@@@@ \     @E  @@@@"!!!'!#!"&546533##5#5@ @N@@@@@@@"!!!'!#!"&546!!3#!!@ @@@@@@@@'!!!!#!"&5467'7&`@L.-@@@@--@&*.!%!2#!"&546%+53!#5463!2!!!!@n`@@@@@@@@@@@@`@@@"'!!!!#!"&546'77''&`@C[.Z[-ZZ-[Z.@@@@Z.[[.Z[-ZZ-@'!!!!#!"&546!!&`@@@@@@@@!%!2#!"&546!!3#!!`@@@@@@@!!'%!!2#!"&5467'7f --@ --#!!'%!!2#!"&546'77''f [.ZZ.[[.ZZ.@@Z.[[.ZZ.[[.!!'%!!2#!"&546!!f @@`@#!!'%!!2#!"&546533##5#5f @@@`@@ $!!5!'#7>3!"&5463!!232n`|2: N9 `p@@ `@ !!'%!!2#!"&546f @U 7'77' 1!5!!f9h1Gpp@.^pbpgN@@@%1'&46276/"&47>7.'.'>7[  ZZ# [[ #ZZ  ٣٣Z  [[ #ZZ# [[  ٣٣D@7CO[gs!#"&=!"&=#!!546232#!"&546;546232+"&4632+"&46732+"&4632+"&46732+"&4632+"&46 @@@@@@@@@@@@   @   `@@ !@@ @@@  >.7%.>%&>&[X!"S`7JO3&JM.&ZY5M^#i(.W],L2i"%.'>%.'>0??00??0??00??0??00???00??00??00??00??00??00??>/.76&/&l   A ! l! A  #/<E7'#!"&5463!2!5>7.72>5."4>2.7264&"ZDDZZDDZ>-2.6R6"7&>23#I66IF:p $ r:@6II6@!v  u!  !! @ &2!>7.'#'.#!"2>4.#.'>7$$$$t. .551AA1mmm$$$$]]M7<7A11Ammmm@ .'>'&"276.c    +@c   + @ &.'>'&"2?>/764&"h  hh  hh* hh  @{h  hh  hh *hh  ` &>7>7.'>4&".'>7p;KTŗTK;p$$6$$WttWWtt VAUZ[UAV$6%%6$sWWttWWs)3"&5463!2#%'&"!&"2>5."`@E    -2.6R6@E " %,,)66@ '.'>#";26=3264&+54&"  @k  @ 4.'>264&"46''&76&'7>>""3""%5 X#S5 W#2D@44 =  (9, =  '8@ .'>3!264&#!""t@E @ !.'>"2676&>4&""",@&&,,@ *.'>>4&"3>76&'&>,B` A??t AAI' 6@E,, !RAAl/:)"7.'!"&=>7!#____`ZDDZ@___A`DZZD`  #!!3#!5!53!5!3###53#5@@@@@@3!>735.>25!p6II63&'bb'&I66I&tyHHyt6@@ !3!3!3 @@ !!!!!!@I"53!54&'.7>76>75C=#ODhO~EgXu@@@ P2A&%B?ch$fqey@~ !>7.'>7uuvXXvvXXvo*؍*XvvXXvv@)3#'''7&'#5367'767.'>>mm>77VV77>mm>77VV7slRRllRRl@UU@_`__`_@UU@_`__`RllRRll`  3!3!'5!@x.=-? @.=-`` 3!!#.4673!0??0  d?00? ((!.462.462.46237!000`000000w@!!#3 ``` 3!7''."26$00((Gf*f*u(  !!35#35#%#>7#.'@@@@@@@lRRl@I66I @RllR6II#.'55>7!3.'>7 U=ӝ=U U=ӝ=U =U ݝ U==U ݝ U="%3!53!7"&'"&'"&'"&'47!@@6R66R66R66R6=@ )66))66))66))66) @%"&'5#.'!%!`6R6`6II6)66)I66I 73!#3#@```` %!5>7.'5!35!!5#356II6@@6II6@@@I66II66I` 7''773!3!%5!----- @ ----( @@`` !!!@% @@BM@@a/o/%>2!!"&'!5>23#"&'!5>2!!"&'#5 1>1 E 1>1  1>1 1>1 ; 1>1 ; 1>1 ##@##@ ##@##@ ##@##@ !!!!!!@ࠀ %533!5'!@@@@@@`  3!3!!5!!5!5!@`@@` @@@`` 5!3!5!!!5!@@@@ *.'>>7.'?'7.54>٣s  @٣٣F2 L @ $%1.'>>7.'312#1"54;12#1"54٣# @٣٣   @!55>732#!"&7>;!5.'#!#"&=!"&5@lRRl 99 I66I@f33f`VrrV @ ;NN;V```%53'3#5.'>7>7' fw\XX\wf f^ WjjW ^f@'&>54&"@ # )  : $  265264'.     )'4AN[2#!"&5463%!3!2>54."2654&!"2654&26=4&"26=4&-"##"Z,"",Z,"",    "##"=",,"",,"  -   - <        }-=6&/&6?>'&'.76$'&6&/&67,&[ EK^-<@a*  [T? $.T>* 7 0Aa]-<  T>&#1GA#0=5463!2!2#!"&463!35#"&5!#%2654&"32654&"`@```@`@@@<L!!.'>767>/.&'&6767%6'5'&$?>/.0??0`0??t7IPw  %U85'RB= 4 PU>( @?0`0??00?Oxs7J  4'RU:)1 % r7(> +#* 1< +C n *       V &] Created by iconfont elementRegularelementelementVersion 1.0elementGenerated by svg2ttf from Fontello project.http://fontello.com Created by iconfont elementRegularelementelementVersion 1.0elementGenerated by svg2ttf from Fontello project.http://fontello.com       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     ice-cream-roundice-cream-squarelollipop potato-stripsmilk-tea ice-drinkice-teacoffeeorangepearapplecherry watermelongrape refrigeratorgoblet-square-full goblet-square goblet-fullgoblet cold-drink coffee-cup water-cup hot-water ice-creamdessertsugar tablewareburger knife-fork fork-spoonchickenfooddish-1dish refresh-left refresh-rightwarning-outlinesetting phone-outline more-outlinefinishedviewloadingrefreshranksort mobile-phoneservicesellsold-outdeleteminuspluscheckclose d-arrow-right d-arrow-left arrow-left arrow-down arrow-rightarrow-upkeyuserunlocklocktop top-righttop-leftrightbackbottom bottom-right bottom-left moon-nightmooncloudy-and-sunny partly-cloudycloudysunnysunset sunrise-1sunrise heavy-rain lightning light-rain wind-powerwatchwatch-1timer alarm-clock map-locationdelete-location add-locationlocation-informationlocation-outlineplacediscover first-aid-kittrophy-1trophymedalmedal-1 stopwatchmicbaseballsoccerfootball basketballstar-off copy-document full-screen switch-buttonaimcropodometertime circle-checkremove-outlinecircle-plus-outlinebangzhubellclose-notification microphoneturn-off-microphonepositionpostcardmessagechat-line-squarechat-dot-squarechat-dot-round chat-squarechat-line-round chat-roundset-upturn-offopen connectionlinkcputhumbfemalemaleguidehelpnewsshiptruckbicycle price-tagdiscountwalletcoinmoney bank-cardboxpresentshopping-bag-2shopping-bag-1shopping-cart-2shopping-cart-1shopping-cart-fullsmoking no-smokinghouse table-lampschooloffice-building toilet-paper notebook-2 notebook-1files collection receivingpicture-outlinepicture-outline-round suitcase-1suitcasefilm edit-outlinecollection-tag data-analysis pie-chart data-boardreading magic-stick coordinatemouse data-linebrushheadsetumbrellascissors video-cameramobileattractmonitorzoom-outzoom-insearchcamera takeaway-boxupload2download paperclipprinter document-adddocumentdocument-checked document-copydocument-deletedocument-removeticketsfolder-checked folder-delete folder-remove folder-add folder-openedfolderedit circle-closedate caret-top caret-bottom caret-right caret-leftsharemorephonevideo-camera-solidstar-onmenu message-solidd-caret camera-solidsuccesserrorlocationpicture circle-plusinforemovewarningquestion user-solids-grids-checks-datas-fold s-opportunitys-customs-toolss-claim s-finance s-comments-flag s-marketings-goodss-helps-shops-open s-managements-ticket s-releases-home s-promotion s-operations-unfold s-platforms-order s-cooperation video-play video-pausegoodsupload sort-downsort-upc-scale-to-originaleleme delete-solidplatform-elemeassets/fonts/vendor/element-ui/packages/theme-chalk/src/element-icons.woff000064400000067050147600120010022713 0ustar00wOFFn( ڔGSUB3BOS/2<DV=IcmapT*8 ҩglyfY+Bheadbp/6"hheab$hmtxbddlocab44}`maxpe  1namee,JaÌpostfx sxc`d``bca`tq a``a cNfz"P ʱi f#Oxc`da`tB3f0b```b`ef \S-x~C sCP$W Nxu]R`ˠ vw3(%H#vw9& &֋u]wP%zޢG}x-xEzy5?ĤKcyV>;f쑽O.%V>g@ 1;Ŋ!;e왽o.>/}NlBOgGaV~5]WN^cm}'uG}61MhJ3ӂb Zӆ=kk+zlFlYw6e39؂lVl6lvlN.K7{{^A!aQ1KC_xNDq's rsgrgsrsrs rsWrWs rs7r7s rswrwsry@1!#>>3> n/oNXOg~W~w`URSjڥN[:ƥIiZEiYZ5JҦ-S/5kT?oSLO1ЪAV%E *Ab $Eb$ObU#M,1ʪWM11DcM61M;1M@L21ٔ SBSMYAL3tS~3LIB4e 1˔.lSsLC5e1ϔB|S LD,4eȔVbSnKL F0/)LL|lJgSN̔'09d'Ҕė'2>oL]@|kj;S?KMMA,3u=L=B,75 -O!V LKд ȍLشMLldӊ 75 r3Ӳ 6imL´@-BniZ%V}BnmZ*6BnkZ/vCnoZ4mChZ9NClZ>. D0!iL mJ䮦DfO%EaT䞦uEeYަEc^侦FgceF`h䁦FdmGbr䡦UGfwᦥGa|䑦GeځѦEHcچ䱦H1Ei9Ǚ6$yiM'v%yiaL[<ɴ:ɓM<ŴDSM<ʹNM;<ôX3Mە<˴bɳM{<ǴlsM<ϴvM M[ȴɋMĴKM̴M;´+MۚʴɫM{ƴkMδMM[ɴɛMŴ[MʹM;ô;M۟twe@kLyn 0]䃦[|tU ӥA>j9L!0]$dmB>iRȧL 9tM7 9t͐Mw 9tOnr!r"Gn"r:"G$rb"kաo VΟhIVƪ*'[:Z:[:gZ:Rul+UϱRu\+UϳRu|+J TJKax `[Օ0}Wk-[bIv+eIvω:!C$@Bh%Jô`H˰B,[(˴R:Pv:_i;tX$'}ng zDB/ lo2u7`4I&zfOh{r]H?'4X^utu퇚;ח|tc̞ l>h5ۏ[Y,19HY}}[?/i>ټQ , 35AIVa;5 ,( uBd3D,5\^Zsh"H5Hr A|Plv;"D ٕY"g ɶǂnrd۳q|_q|ͭ.&.4 R mv`2$5P1$?@jm"4=AnUηg,ʹFۼC -6P趏"d p^V貑qKq'll6p'? #JF|ɰ{<1'Z8;i@CCM3|{ft?ٶgc_nu:ەq-z Ą0Sea{^4@$D &M<\aơYlAl HɬnF6W4Ҷ ]6FW3^/zp䓿s LD! Ce3B"tY) >{u;dX]'X}ơ>"f P'_:_:oL`.(,-MfUMD<*N.랐>ҥ5,@Х~]^[,fMZ #X(oito9Ioއ`շRO^͟%j&N եuiI 9af\a x>@4^90j9~服ߋw \ d. _**Nݛۮcl]p^ao+-ͣyv}{o\~ l[-_߬qhdAh4̧y2a·R ;(H(nJ̥ 49(\)DL"F$pInvGw8CI]ɡo3cG6cM%f́>gh4mQclv}yv.Gl40W!E䋑5V?t#mg.G*s.͸uΣ#@Wsnsr&EHH'6.3N>iYaq,(! e"QD F2j b>_"L̠?Jlm2 Ww7ZH?־:ɴI&xz'j$ 츆}]xG;[8;$O:5 Q5hj kLksn5 j!Wh2}-޲DJV0NK&#}P1ָ|$1(QAǩq~'ɲ u~B!?~Wպc BTu/=ݻ ,:Eidvco0J߹ݷ9ݫ‰s64\g} Ťt}zGKnuevYRuӇ6Q.Ahj'pաb4D*_.QȬs2еEh4Z@:YTF)aVWػq.|KX'(]TzׄdꮕDnx0 \+C {K!>aNdstT$A[!6 J%+AAKiTJL>)zd)C4Ey&!W:@rba ΉL<Y )BA,8@5Dh1rQ_1H mcy_6gF#f`/4ލ ^zBNfLAnq@J9Nd#@@|4hcE(2ܐs;ogO|6{yh!$V& IC4 :/,G Eqºur#z"5GIȸoYGZLo:Pm6Ӿnj+t`q5%Jv8h}B r}i]<2CC ;@ f0%x#2e@@,8`JFMݳ˖,_>*}4k ;V[,ŧd~k,}UQ p]Z~:B-Mwaݖ-u?Fr~}n\R&qc z~p[)iFckpH sY}lej$=C Ab&X1K$?xR)ޣ Dclfkн[zY~MFwil7Wt:!os!/z걃 ghL&vfmX4ݐ8'V6{4ߥݍcF!<- \':.. ԃIqE=BGETL≡$8/ߕJsLK%m"n!}i|}KQQW/ _892s]×kf{-ݿ Vr??Z`d3U(ϵU-iGχ;(i_"߶||Esݴ([nrɟgV]@Y'$a`Eir%qAt O9hD"4l0(  0p{Ζ]Gbʇ?e[>\>pȏ7l2E}iי4Z1< {ˎ/Xf+EΊ=k-ouq/-F4";lnidJ3v7-OLByY?!jf}#F|p Q R榨n=xt.AQKeryF[k&-zE.$ɞ%yoHd25+N3K0󈡱C)dFSEooI˙?|U6GQ'uNH-j(0#0]Hxw&WuGJt?>vY7;\O?L\±t?&`kk0>$߁r*/$PpH<ʰmnC_eV 0`ظ掯m; 0{ =$0dVZ1ڪs*\ RǐFp`&k޻ +]'!|JGl]2_s,wv={)+Gݗ\gE;@\CӪF..m}k KrGa26^;g \T\(vQwj3\E]9dP |Y*hEtYYv>(  yt(v#{:}7{MGmx~+Ϣ^ؘ8H&`za []o6^ohMLy!Bx mSܛ5Ž򍮡!e,2F x6.@v ^Q \XuN=ָ"45ZӢk;ʊ>\-h6}:H]韬zӗM~tbա[: A0&dVTE#Q*L)񑟷֘t/g?ҋi7Lam_`d']%a0&@=Fh/F^{!f{@`*텇?p_h~ o(IP9?`i43Cfa̜y4u.fL5yRS)(^':1ȕir(p.2Zچ -n{ѓMQKa亪˵@R^57 @_ |;kI(:G` {炅AI5׍zztA=FGf3xA< xIfO(oeihĸn=:(D`{&9$U>`BѠRJ(JpV4?`BKy TЋk%<ᘗ^_} gyT1}pMgdK:HX]=Rq^1ߓ/>s/1o߾:|b̔Y+0U$UKֺvS丗=B鑽cˢ}U_}BTe易;@_Zcɘcro΃tk7fx=}$oGD!s{opxh?uoಥA"Y/,¡\ZLuyT$J:}[,#dـ_nZ+|Wq`,LU{*vx7EC73j'_+Ni^vni0hE"ƔM,@KqE<|1^p"Y#&H\ANEZBD PfA9j]dhDVhie08ȐC hi2! ph(6So G d$3A-}Tq0rsKD!Gh!4_Y'N q$\@AsnGG蟙^@GGD̀!dlf'f[7&,?jrSHz40ߎ0@yfƕ0p RHr2t;\47LdLVr- oBeE9(݂Ym7Pr]J{Y>sʱlDZB ڡdhbE4}MC@p&T= uWڛƢJSh.r2#X%3 " p MM'K@Q+' ŋ̌]1\gjUFߢJX~;u:R4i*;vZ/پAy *ޝ`Jb)-Gz2 IWB4eZD~_5#!Eq4PQ_T~.i:PwsEPLc3]a7> @_s@_$d:$U% @qtY 7o !y@|!nnrAhUol DcaM޺5k+tۛ׃K&9y2gR7xAU#g\qkBau>,#0b:QL:wSLFq] fdm.0L 9/G**"]y|.yV73fPb0Vge&0UTW)6<4bwf(d `;Z?I'HA9s"^30Oh,Ab 3N @:KQ!qNV]# OxG_U~b!=FE(1y!ꡪ'yC+H9B/E:q˪ڵͳ|ҹfccƄ c˶C|^(=`rx"GYR o?ymI{d{X,'8cqnApw +>ơ7ۂK|uR9 s'/O TcHќ :ܿ_W\Ӈ_Kw'zugm3#K_ޭ3MR|xy۱gu?!\~W|᳈#; 2Pnxߵ-X7v4v9oi|S7?Lnص--:%Wl#wݱ^,9{/jW[ 4di Q-:K`;Ԣ$3Hs Y2 Ev^iN.:``6:&k6^LţG0;fM=b:k(iv_:x N[#K[ӰB~i~|M ۄk{*@#SSa gMT]pL׹T]d&vW-hfXV)siG ]*N)s#}N&zA2(S@:7Fă$1QE8m+H7m_cXY!LLƳ[yͪUkoeK,*40>G ,VFtH\zͺ.f<\L;yÔ tsvD #Y¦*\bTo#0)b3w6YڇWuYrYw{׎=֬)|%hNu сCmF9[)/Yrɗa޵~rMDs16`BǑZe3 rJ#;IEl_Gɚ& cݦc>3xfl7d-Jܶ%1l߱`N ,$-uu'h3lOM 3qy}eK~j :L0ƥ lEQ+IwwFrJbgw}sI lJ*"+Q["ŭ:VQ  俐:wcOMIdu}$n#v71U*ӹ8P~Ի3 '#>3it[YnDx䦓BQ m )yx&˃Ū/ ŢRlGmZuXzQ.\1k޽Q=Ir(k8\3< oҏkG{!Sv2HzjֽR*jxXqV!?m@c3ځB~wZή4)K dUK,Q Y E *8)uڣgĆJQYIi!άVIYpYҸh9W@r&'eח ϋX=BP0WX^{d(FĒD]^,xb(#jVK6_q }3b={O=%m[R l;֣=g[[f-fh+0@xٚ"(ojF zO&JU soM9"rKIvx(Ol~H&8_7KH[(*=~ '\$YTߢz̖r^SWTRU9  Ԃ {s-\gT,6z6N dl(\y>yjvt&O9@N 8_ծqSX 2jEϹE3?85vO+kkZ/*Yvh@N'[Otӓ"ٹv-zKMlu ;-Cî22T[*jc|[k#&GM6 Ѹ£.mGm;^Tt{9VRz>YqJpE+/@ TY{RGS'ZHV E e^֗N}A0%PU3k&ho\gzo"rpř84.\=l7@2&Qi U)"QFst[g=K6Y"K3CvKsqȘ֬@%^|Z"_{%\(5sLtFj}b-Jn(t#5ai)YbDa.B$M&_ꋄ{,?^uaѐ2#K4ݼ'ҜKLQa,7hJtY^n_o9ꎅxօb^NJf=jQ{U53M*3!C^/[\ vsL'/Kf:GI=5Gqk&knɲNN<,+` ӆԆ: K,2Ub=d׬$zPDqٚ-4 ]&logu{T3# y>ӚȨUkbzbm!DNC&)#Z BFy'Ų9Q+LG\ևS&ߒԹ A"EA8czD ?%a,@^pE"M/pMdMl\w%BAeFW, m*.Zkf>0M7<_>qCҠ# /Z؂EMcg5E42^p1O !s!(nѡ2hg>0Yyʇ^> wّ}K@F.](>sӚ!DX]l:;Ug]1&?AnjbYۼo oxp߂F|RFr}w$s]=tt ;;SʏN~(rye~j\8d󳄵@os `I]i x!"a/h*|f&B".!bx/U&:Dkzwp`59uοuv4,|coeoW}h֍o4F_K!]elIQco.:4Kj]8]Ӈo#wu,N 7jNt.IFbbio5Gۢ{[lfxBtFoyD#Nqbu:g>H&w<^;a!t|=o^4# 6WXҜOó悁a5\\0v EnH~OǜCs,Mx9sq?AL. (j8UN(T(ˏ0j{8%(r Q:Y'k'tIDp63ƫ4=[-s+ʡtb;W^yw\y;g뮯/elңp Z>FVgٯ&|lOjkp!|QRŸY~*DxJPĝTqܹe+--;Y엚-IKW}8%<,胃ԖDeʙD|\>&gDi[gc4~5<ùLMY;_Iun]ˢ10\Բf@Ԫbj}Ujh}:5@ 2XѸZTp񃛦9T5.wk:LZh-eoh"p&(i*j>ZNW3vo%kb8%ɬ$6`oj(xjz(rOLkE= {egk&AɖM`3”>UNAH/$/khC )P,"B-P.H  Z;r%_\f8q)v?0A ySz1O|c"e[۳6~u`3-$IΈݩwt٣\lvSZgΒ#pCBUء}1F—(l”p*3|_,Ā V3vz:h,m>N8sRH]Er׉ajCRq,] zd\ʪluc 4<唕&vv;K#2!)=v^TNRj 5ޯPҕ J1|7I!fl KWm8/ Y~c4G=N$l AIPVhwutvߥ_g NpO|dN+)>2bN0]m[[朁ϮwǧwDdJ1ۛ erk)dBe}GWYY+xʬ)p,bQXP%hadU rithӇq˂qG5$%m!?~.|riOQ&*[=Umeru(nYcE+8\/(uZϑ#Gio=R_ | .2`L> *P洽M6Vx=e^eg֢A^A;:˃XEgt]ځL`?ɯ\Xŷ{m5ڦ߾o)[W6֦{λ^^o[3)AR.fQ [OoLej)ߨОP𓤎K\S>:Jlp/LpvD2}3̎B*`j+)mMNbBpŏdq|'?Cs0t;7.7C^ޜnS!05POss/@ ?m=P >i_?pO00 bIDy@pEC1Rj8TMW=9!EYh[t>?wP\st5EN~Ld1WO$ }T-:ǖ G+DZʓNٹaoCjl>ǿ ~?믱_ݎSp=nj/hJ*םщ)2BB$`sav*d! p)"\@{X8ˏwDT ާThj%_ntA'|oISfGl7ڻY -qT~^;F0~md5 Z#[URjm{s:oAۚS_V_j>ղ"W.jdg9sd67yP%GhUZ_ pd&&I|Pn3\q(w9K/hYA6oA/awh?9cv WF,vT/If>OrOo T(A6`xd"9e?he$тR(7.X@c7J&=l5ZhQ srL$\xHp`+VKOк\ok&ݨֿ_02gA)'u7IxA"5Lw/pP`5J?]fEtCy Oձ1Ůp<Md꫏Ehǒ&x͑ͳDq5$T]G\v.76w:4}f7:?2:DlF6x%iY.?&IzUoЮ"pwa GToa(cʑt6犸"d ؐ(z予CY%fq.`傘z~ v}hpv3u W6y韶s4^FCI) úyy7#D9 KT\rRa#j!'ԛTj%h& s#ZClkB0 @f+Rk(ǦiTc0(Dywn vf';QiL&#tpw͋j4QL)rl8|3A==Wڈ_7Ta)=O|Y 4M!h{p픋u"A!<-Er=@]yPϟ!2A#@`ްCƕ5ݏW%Q}P&j<1 CL%)55sd =U*6ʠxr ;WI2Ϗ%y Bt}+:|LyC +W@(*mt 4ƶ^M[cָ|Ճ#m*(CŅEG!;@"vVa{p 4(7a`oIu;FZ(mL: FRZ^K*r_ڨT.hG4~))pwUf&$-v?k0*,h^jYQZ"s&Ă`tZJ4F ͮir-MiצMsLfMXh::#P5B>|D9!LZ۱mb4"Y ]3OOq`FdiEf?' ɻN&>OMoX&\R(4((Sz#Y?0Jf tƐyM:)e*Ř(8z"^\ P hQ;2j /Ry\^R٪?]4Ū`Tl+ebϡ0j%~(x`34o0$154pBi9R;⎍$GQч \ (#(&1hE2q8_ EUXy!E 'Y2.IᶣVR p( [ʷ9}JX:EfGSM-+KV(=X%aKERP&t]V\O s^A{EcM9>NyV, X]Rb$ԋ&\Յ'kxҘCOxs<)Y;J{SVئ-kczi( p] knGBA$-g焀#L5$6ƔUڑ@:K`P<G OI կb'Ώ dGN xB~,7Ĩ&2?D#h_!BfmrXAFM*>za {*-+(%Ŕ$Qİ۷Vy)y/= .qꒄQ@7Cag} V,%r,TkVąq؎)LI66nT5az1%hPA-S` Q@ðcfI;҄bE|^L9nq,f* Aޅ)—(ld?P*bTZEsJEPq,RZvO`97!ĘLV@?[-P|VcDHr)"}t'_?'`HY-(=w3iQwd6@⊹bSQKWdB]"8PH) }gՐ8SuMgmdO w>Nz$I5(V/h`0Ih[F%hVeSn M{t?H8r墌htS*7_.qoD$+Ӣ-/]QzA70^fUU#:3=ER,(閿/]wI벭Ycsy uB+[ĈbhH$ÓDjEwOQ<.|T>,JwwDޞSfu tDK>j41d$;\rD魁P34ݽb҃;6-V1μq0 4{ީ_r`~睆-XLtb <JO&Ic%pIGS6h俊3lEd NfCC8Y5N}q$tpYنTŸO̩o4|qk¯™I%1XU1|ld[<0 Y-6yfnQ,Q"pk_4W/ ~]9Z90 PRXU6V1wJRׅ{1I:!bx4MB~H1bw?o>.8p"SETD)6$*7ю1!)‚ n=3">)yl*)r_S|d=75%KG&w@F2Tϒ77Iu[dISٟGbEfy0̴(rpN~s#@p _mbS9M \'AZ+sbɘ1U[`[a$0JE/~]c@ 6JsǫVh0z,MY cuBP^!J#0vHG$z!~\oGBO=kN6;_x75qp?~eĭ_ 텮ܛ+T#|Elc,d.,OH$Usdks0-j0O4}"I\zC2x@uްȽP`D|Ld_sik[HT"Yz0CitVh.]WnX==؜X_^?`NK~V*W- _k .(ӣ=" @]\,uBoCd6?%@4 /?/0"&P"w5AYeL=1%dk8C9^;Đ^ gwo̅*a'8Y ̢tj)*aU+5ZQ/L $YL&K]s;%;k/w"1Ci~O"^ZR?ΛxrʴElWSq8%  N<7(d)UiBXmq  9}ǦCN}ey 3L|#8Qe[70 Cق1&?~%H . %$E" .x.`ڕ|'I(A"3yllO/MbPnߡODvM[4Ff_ZQrwJxm{R~]u[ aFG|Y}}d6H# ~q[{DUl{}*7%B39D JW"F=` ̣¼5`7/e cWV#e ?9ʗŢE%w|8ys A䢡zB[w>0l2\!J pm|P t2 &BI҃2M帪=ƐB.hFa84(qlqLk%(UM$}Vz̉R^[%SBU ,}x/Ȉ~\N{+~P՘n UX$㔸p6sJfqO!/} 6n!Z-1wCjlCX熱Tx,A}>hY>rtr)[|*o'=(0NS&W7̎HDx2d̅<) #3 =O5=_]Vh3.6HjǍxG{jh6a]ktMY->W o!\9O ltj߫/NQ/($->" H{ɧҝ)i{KӣOv,ҡѠPv5nR3z7}j0 zl #j(3Z+4+BE] .6>eB_O_Ryj8< C_"&=ٕ^u`Z$o=fR-2F1S.ހAcJ3@Y5$*1c(J.RPX 66+ 7Ο)C?#\7 #sxKЇ5yúH|N/~)xiM4lc6j%=GYg͋YZ\uΐ5ε[SB .ԵROP<*3ݽLtM&zf[D%X޾fN?L7l'SG""M񡏕X^~  Qh/:`ju 񶱳'Հ򷢳TH$$LJUU@q'2\Fkb3cF1 x-P|nn?trENa{UKyI4WBUN۸IF99ZOTl&q>lk/ҵ, 5ë;8kWa%k7/ ] g_@bbfQ*?; Z+$wJ %B`c@'/{_n?e)h;δ#-H% WٝN]tBY>+ X=L3Ş1I DDI1|8S?N_]Gwfno/w{'9\.5I/O7ZZKir}C_V/•X(}P(h%(J4"iIňXmݻ!ݙٿ3}G|;s$f!15*K0~'ռAzs\g QZ"xvYwZ aQ&8MVc]^m'TV{/׷sh&B::r'%Ud 3iJ :;:?~7)G|v<-2/ ËIvs=67}c5_1=k~ؑ%_W{\_R%(_MyAjjiF rZiq7c9F#qF9},֋. :tZÚ)7 ̈gS#7pZvV:k֑ޖAwցR1/@Q{e[-پ98!8N+EF#؎c^o/>9w!UkEhͣKKkټ$t6o~?mB3<RHFi=g#>Ǐ+̮M{tϓ^ƕM~`k' &" /#[*Jl|fYH ^5+ ƻ1o"N%|q`G _j/HA }]>wZSC@*ogkߏ=LYpPʿ]/Ga= tukiZ-/в趠GK/~m qW{NIZ Y'Z N5>C--0{=_m&D􉋔^٠dB={?E70ʟd_WYJG3.y1d?-cXkcb7UT&5dtt+ىaE8 6,5 Yzܻkвw^0^SM¬ f0 }d=;8ML~Ϗ4!E!uTU^\#N1~0~͸Γ_mZ7sfA(GRi>S+ȼE% r,@\U>c29:l=փ ;xsS;53Zә黼XFDxR39_elߓFѱο<:Fl$.=g'>ĔBf<uƳ.HcxW8TF9e&̐ ( 0ZS(``DLxOqiJ: J.L3R(n H8*!vL!a7ksG ]caNJݧ+cOS"+F$uLr뒹;d=KhIYgv1\K#Q^(cDbcswD e~^䉋U6u&'0"߉xc`d``L6_Y@mL $ 6} Jxc`d``n@0JG!xca```ţxba;en.FnZh<,lh 4 B  v @  ZP dX V2Fd6ZB2bHxd^L\lP Z !!h!" "##r#$$$%&&&&'^''(d())\))*.**+V+,N,~,-*--.P../$/00t01$12L223d34H45556P6778,8z89699::z:;;,;x;<<<<=@=r=>>n>?6??@8@j@AA>A~ABBBCLCCD^DDE2EEF&F`FGG0GXGHHXHHIIZIIIJ:JlJJK K:KL:LHLVLdLrLLM"MMNNTNhNNO2OvOOPNPzPQQ6QvQQQRRBRRRSS0SZSSST Tx];N@)JHAreD)Spuz)%p :~;53;3 vb]f'n{/F#'a p>^=\UA~n߅[6n%ܡ-#=nF1nf9n[V5nv=;N3n`#L!qwPDGa``s'{>/x !x(x$G1x, x"')x*x&g9x.x!^%x)^x%^W5x-^ x#ބ7-x+ކx'ޅw=x/އ >#(>$>O3,> "/+*&o;.!~')~%~_7-~#?/+'?F 608H4ݠA `' SSӂ7kLʷxsaZ* YzP+ˬʌղ6i)Yf,q\BJj"Z0.ḐBEwάХ(TM4E_IޙQ!lޒs;qKw*ֈn{yƛTs{I.F0ݱI}5shEdb*=^\f= EJվЃfLLRl/n9+: ,%OG̈0sSV.m̄'ScΨW\ -oJQٞPj`ҹ>j(%&eT$Wu"Rs*A_T[Zdʡ垫uMpDU0cK;wm+gbvH'˙)ưSf3w'~!W+Zz=^ԟ{]{2*OWLU lMdM9Ǣd#42TuX T֑ %#N=hI#lȕ\^t(d9Rg$5aejLU];\IvDvof͎9wYOLf*ں1+XYdžO*gCUArM`#fّr/q@]hܧZr l_4Tr"CRZE.JvA,#`Hө+TrG CdiJ"sBIG1ӄP$H) KClsEQ%`q V3nJSqdq YQ1ͧq{oL9[d.MHQdN#*AVԇUf9^`:~Z:N\5[c$n.,ЊktYp"B5^)CHCovZOnKa(_4-#;<'Ŷ*$[yuOo&넲dY`,t/CF]n*cMXWAr5aLC]2PAh!i *]vMz&+F m9`EtSUGU+!BsWkU*Eϟ>t](uËZKv4Т$#jMkYgD⩦ޥ8)r2+y꣹;{iCassets/fonts/vendor/element-ui/packages/theme-chalk/src/element-icons.ttf000064400000155224147600120010022550 0ustar00 0GSUB8BOS/2=I|Vcmap8 ҩ8*glyf+Bhead"6hhea$hmtxddloca}`d4maxp1 nameÌ$aposts͈ \i?-_< 罆罆  ,DFLTliga2PfEd@\,, "  +AEa"-DGc""*DR 24h0  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      0  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ ` a b c defghijklmnopqrst u""v##w$$x%%y&&z''{((|))}**~++--..//00112233445566778899::;;<<==>>??@@AADDEEGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aaccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~     n.FnZh<,lh 4 B  v @  ZP dX V2Fd6ZB2bHxd^L\lP Z !!h!" "##r#$$$%&&&&'^''(d())\))*.**+V+,N,~,-*--.P../$/00t01$12L223d34H45556P6778,8z89699::z:;;,;x;<<<<=@=r=>>n>?6??@8@j@AA>A~ABBBCLCCD^DDE2EEF&F`FGG0GXGHHXHHIIZIIIJ:JlJJK K:KL:LHLVLdLrLLM"MMNNTNhNNO2OvOOPNPzPQQ6QvQQQRRBRRRSS0SZSSST T7!+2656R6@)66)@)66)@@@)66)6))66)@)6H+>F&>>53./676&'&>#.'&.?&676'&'75* ;?'@ZDDZ~^^OUW73#5>65>6+"&'#5&/#"!76&+'4&";'54&"3#23!26?`e@p% <4$`$4< %.I: !".I: /(4v4K  K@%c  @ d  '"++"D' %5 &$ %%5 &$ */ / p f  f#.:@5>732+"!!.'.>7!7.7>?%!264&#!"6)@'6/&($x$(&/6'4(P\mR@7G< )6 2N9!!E9N2GSSr A@5 OpX =A37!#33.3732+!.'#"&46;>75>732+"!!@Da@tG@9#p#9@G_6)0 VhaDr8_')6#'7;?CG>7!.'.'5467!.'!!!26=4&#!"3#;+3#3#vv &&!1#r#1!&&bYY0@@@@@@@@@@|ss 2!@!3 u 3!@!2 Vhh@@@@@@|@#',032+#!"&'#"&?>;'463!27!!'!!7 1' < '1  ;G 7b K%%   " ^^@@@@@ @ ")07CL%>7'>7!%.'.'67%!677&'&'.'>7>4&" 74&/.'67676.'>?>#1A,.||., F[ #,   AX 6=Ɩ=6 u}  F1g T.]].T g3HM3(aBN(m@zz@m(NPhC6\63#&/."&'&7>766767>.?.#>7>76'.&X $97HX5"'#6P.J&9#tE/   H  15Z4/9@)%6--5'(3$P 77M: B^x(  @Gn k>G (=  9w  80fS)A61n H>@4@L6767#"&463!2+&'&67&'&'#.'&6>7.'%>7.'*$Mu9$6XzgWWLR"(;SEYg Z[yntDZZDDZZDZZDDZZiI=S;S39sXY ZTV!#:TAWxWZYqwZZZDDZZDDZ>ZDDZZDDZ'7''7''7'73'.'&67,=57.8a jo"w[U||K`(7.86>,woj a`K||U@3<ENW`i>".7.7.>>75#"&46;2+>4&">4&">4&">4&"7>4&"7>4&" 1"gg5L8&?'XlX'?&8L5gg"1@@ )66R66)66R66)66R66)66R66)66R66)66R66,*]nK#LC)4hEEh4)CL#Kn]*,C6R66R66R66R66R66R66R66R66R66R66R66R6@@ #'+!4&#!"3!265!!.'>3#3#@ )66)@)66I@@@@ `6)@)66))6``D@'E7671>25!>7&'.#&#'"&.75463!232#!"&46; 5>'':$)E }{v| 1(%9#)G{@{``q g|r_ccD@&32#!"&46;.75463!2>'5! ``{@{7}}cc,rrA@ &!4'!!>32#!"&46;.'47!%N)YY``}@@@vJ`Vhh~`~A@$32#!"&46;.'47!>74'! ``}@@cmm%N)~`~/mmvJ`I)9D'32#!"&46;5&=4673'&>!>3>.&/# ;^.Ro7`` HB `Rb1 P1T &\[ J00@>moUޫ S  {:E l .`X),?  k)32'#.'463!2>7.!2#!"&463>75Y47[5Ym6II*.lRRl4]f[0Vim``I66IRllR@ #-%!!>3#!.'463!232675.#$$A@(77(@I6@6I@  `$$;6))66II6x^#0=JV!5!;2>=%!#".=462"&=46"&'5>%"&'5>!2#!"&46"5D&f&D5"mf4]H'{ 1VD3&D66D&3m&I]44DffffB #.>7>3"'3!.'!.' %>.kOXXw7D " AP88PXO98Od: XvU (@OjVksX^;8GG88GGxs139GJ: /@'/7>J=4>>76#5.%3&67."6."!36.">7!!2#!"&461= uLLu =1ę@ UrU M%,%%,%~  9*IXXI*9 0aaֹ'F7CC7F'((((}}G1:BHNT"&/&/.>?'.467>27>!767!2?'&"76&?"&&.4."# m.4.#"  n=UZ3iv3vۏ  #'f(m #".4.m  "#=ZGvv a L$,0%>7!.'463!2!.'#76#%6!5@MBM@[dd[$$Z $    @-NN-?;ll;A$$ $ ќ@@>-4?"!26=4!./.=4675>7.'!3!26?  #5 00 5#ۣ=@)  )@ @; 1@. !! .@1 ڞk k@@'-9462>=462"&5.'5462%3&'&"&53#F99F#M@@; 1:V = V:1vZR`@':F462>=462"&5.'5462.'>7"&5>7.'#F99F#FYlRRlYF 3KK33KK: 1:V = V:1ammajTTjjTTjD%0;F%7.'./.>7&676/676.6.?>.^ B &GS; )7 &KOPFR OFO6,V9aw;QD%'"8 %'"9 #PK& 7)  :SG& NGN REQQ#CQ6!.'5&&673>73.'3."36.#"6!3!265%!>7!_@2iY' ",6))6, [@ZDDZ@__~6R6E $5 $anL``YD!> Ac6,E+)66)+E+DZZD__)66)90 &O `zz !)5>7!&!2#!"&467!.'5."H66H~@.٣$6$m36IH724響 $$  ,5#"&463!2+!&>!.'!2#!"&46``^v1 1v٣$@AAV]]VH )32#.=462>.'3>7.'&!]Vkj{٣@n]^W 2M%-0t٣e&#+ )5462#.46;.>73.'>76 ]NcbVp@٣zjk2 R#46nl٣t/.%@  -.'>>7.'7"&4622"&546٣((/@٣٣٬( @LXd3#'''7.'#367'76'&'#37?7'76?35#'./7.'>>7.q+$ VV.++FF++# VV.++FFC -::-"n!&DC !n"-::-"n!&DC !____DZZDDZZ@K>!C6KK KK=!C6KK ' ;@;"-8++0";@; ;@;".7++3";M____>ZDDZZDDZ@!)1?>/.76&/&?75#.'5#.O   F# !lDQi.Q[hnm@lR@l! #F   h[.iQ4@mRl@  )5>>7."&46%.'>264&%.'>264&0??00??0(d0??00??0(<0??00??0(?00??00??((A?00??00??((A?00??00??(('3%6/.>%"&46;2#"&463!2#"&463!2# % R  @@K!  #/&'6>7..'>>7.  ))⪪))____DZZDDZZ44* FF FF5____>ZDDZZDDZ@ &3@MZg2"&=462"&=46%+"&46;2+"&46;262"/&462"/&4"&4?62"&4?62}       E  @/  E     2   ;%'.'367#"&4673"&532#.'5>2>#.'&Wjj{@m^^E] ] Wkjz@m^^eN$-0te%$,J % 2N$-0te%$,3G/&4?6!.?62/!'&462"&4?!76"/&462* # ` ` # *#) % `  `  *#)  ` `  )* # `  `  )`)# `  ` #)&* $ ` `  ))  `  `  )) # ` `  *&@)462&'&471624>1"/"&5   )    )     :`` #,7!>75%!.'!.'>7!'"&462$$@$@$ )66))66)((`$$`@ $$6))66))6(G8?F#"&46;>7#"&546;2.'6;2+.67>7%.'>`23 G7\``>b rr  Cd#19Ɩ6II6I66IdsWZmE:@ppMu"ǼI66I6II@+4J32#'#"&=!"&=#!!"&7>;5>75.''"&=.?62 @ff3Y9 lRRl@I66III#  #` à````@@ VrrV;NN;JJ # # @+4J32#'#"&=!"&=#!!"&7>;5>75.'6"/&>5462 @ff3Y9 lRRl@I66I$  #I` à````@@ VrrV;NN;$ $ # JA#'4A#"&463!5463!2!2+#!"&55#!!"&54623"&5462@@@```@@@@@ !264&#!"` 462!2#!"&5!"&463``` %'& 6." $   #  7'&"?264/76.  #  $  $  $ D#62"&47 &4'62"&47 &4  K  8  K  8    @@     @@ D!62 "'&4762 "'&47  8  K  8   U  U U   264' 64&"a K  8    @@ t4 &"2764&"@ U  U+8  K  2764'&"U 8  K   U  Ut2 27 27564'&"  @@  (   P   e A+46;2+32+&'&6>7.' h }fhiRllRRllh gh sffdlRRllRRl@ 3>7.'.'>75.'!"&=>7!"&RllRRllRmmm6)@)6ZDDZlRRllRRlBmmmm`)66)``DZZD`L,?"3!2654&#%!!.'>2"&=46.!!5>76@@)66))66IvEEV``q]\%@6))66))6'A@ gG@&^VW@,5>"3!2654&#%!!.'>2"&=4675.'!5>@@)66))66IlRRlm@6))66))6@RllR@@mmL!"&5"&4762"'<     Y    A!"&463!2"&562"&47b   @   !!264&#!"265&"264'@    @   a!"3!2764'&"S           !2#!"&46"'&4762          @%4&"'&"2764&"       Z~  2  A%"3!2654&"264'&"`   `7    !%!2#!"&5462"&4762@    )    L #/?>7&3&&76$%3!21#!"514!2#!"&46321+.5146qfbv ?9oq!e`2  @ w>P]?gdMjX@  4 67.77'.'&7J3;Gtߩ> p&w+ d M͍/@O>tl d ⨨+w@!2)&'&67>%!676&'&.>.Vj j>~knkgi3#O`ok8=~#aw]++jjva(-ڄAll$!Oa sOPdK9TUJ7>Bpo)!%!&'&67>%!676&'&Vj j>~knkgi3#O`o@jjva(-ڄAll$!Oa sOPd*/.!2>5.'!.'&67>76! h_ 'IQ jKp*K; W8]qtd maVW =DQ?' tKJ^ ;K*InQ`s~cdTk[ @ $1=JWdq~%>7.'.'>72"&=462"&=4662/&462"/&4%46;2+"&%46;2+"&&4?62"&4?62"RllRRllRmmmm  . #- (  -  . g@@@@ -  .  .  - lRRllRRlBmmmm@@@@} -# .  .  -   .  - (  -  . @ !-&76 #6&'&"3!21#!"5143!21#!"514S([vxxv[(C)HghigH)  @   @  VTTVzNLLNz@ @ &3?K7!2#!"&463!21#!"514'>7#.'2"&=46.?6262/&4 @  @ `Ɩ@zz  D # D   D # D  Ɩzz@``  D # D D # D  &2>7!2#!"&467>7#.'2"&=46.?6262/&4 @ÌAqq D # D   D # D `pp ``  D # D D # D D*7DQ^/.!>76&!".5>7>762"&=4632"&=4632"&=4632"&=46# g_ )APcKLj Vlp1WD$nX}VU \s"]";CO?( _BKc`LLsm$DX0ZRjYOb````````D(=%.'>7>765>7./..?623.? a}nX}VU _s{`FXVF# g_ )APZ $ ee@aZRjYOa`A gGHh";CO?( _BGaH    D*.26:>/.!>76&!".5>7>763#73#3#73#73## g_ )APcKLj Vlp1WD$nX}VU \sb@@@@`@@@@`@@]";CO?( _BKc`LLsm$DX0ZRjYOb@@@ @@@@@ ",312#1"5475''#53%7>=4&/ @@i&00&@c  c@ @ `86&&68 )   @@ $%19A%>7.'.'>72"&=46;21+"5145##5!353!5mmmm @@@mmmmC  @@ '09BKT]fo%>7.'.'>75##5!353!5"&462"&462'"&462"&462%.762.76''&4>7'&>2mmmm(@@@@#  $  $  # mmmmC=L $  # $# # @ $%.>!>7.'.'>72"&'746#264&"#5#"&463!2#٣٣@$6$$6$_@`C٣٣|$$6$$E %6CO%>7.'.'>7%"&7%26'32+"&=462%&>&!6.6٣80 $80 $Z Sn1/;+ .C Ro1/;, @C٣٣C SS S1nS / ,;/1nS / ,;@ *26.'>5>7%>4&".'>7!5!!)! zzƖ$$6$$6II66II$ffoLzzY勋9@Ɩ$6$$6$AI66II66I@@a@ "#/!3!21#!"514.'>5>73!21#!"514  @  zzƖ  zzY勋9@Ɩ a@ ">!3!21#!"514.'>5>732+"&=#"&46;5462  @  zzƖ```` zzY勋9@Ɩ```a@ "+7!3!21#!"514.'>5>7%>4&".'>7  @  zzƖ)66R66)DZZDDZZ zzY勋9@Ɩ6R66R6AZDDZZDDZa@ *.'>5>7%>4&".'>7 zzƖ)66R66)DZZDDZZzzY勋9@Ɩ6R66R6AZDDZZDDZ@ $>>7.'.'>7'2"&546>7.'5.'>RllRRllRmmmmrWhhWr٣lRRllRRlBmmmm=A1??1AQ5DZZD5Q@ #!>7.'.'>7&7>76٣٣J J ٣٣DJ K @;?O!>7.'%!!.'>32+"&=#"&46;5462!5%!2#!"&=46$$$$6II66II````@$@$$$@I6@6II66I``` @@@ @&,59EQ>7%!2.'4637#27674&#'3"'&'&63#!2#!"&467!2#!"&46@lRRl`mm] "_A:s^ !`@:m@@RllR@mm r! @: @r! @: @3<FP!5.'#"&/&>;5463!232+32#!"&463!>7326?6&+5#"3Ot! 2 - YY . 2 !tO`lRRlB .YY. fM%#``#&Mf @RllR   @@ #(4!>7.'.'>7#63277!#67!2&"&6mmmmH #@%)'u')%6::mmmmC=  ``{@@ ").3?!>7.'.'>733#535#5#63277!#67!2&"&6mmmm@@@@ #@%)'u')%6::mmmmC@@@`  ``{@ !>7.'.'>7&76٣٣;@8z(@٣٣DnNFXn@@`%3>75#"&46;5#"&46;5#"&46;5.'!32+32+32+32#!"&46;5#.'>7!$``````$$``````$@`6II66II6$ `` $$ `` $@I66II6@6IA '77&76  ' 76'& 7&'.6&'6&'.&Ãf]w2wppwwpq#+>@N_LI ^IG#)" (<=MCfppw2wppw8N@>+#- IL)#GI^M=<(!@#Y%7>7%6.&76$762///.?'&>7'&>7'&462 Eu?r_E@s_E DtH8V0h^V2f  - # .-- $ --- # - $ - # .-- $ ---   GvDE_r??F^q>rGuD 0]e4V^2H  - # --- $ --. # - $ - # --- $ --.  @ %+17>EKQW.'>7'>7.'67&%'6777'&'7'6767&%&'7%6&''6&'7٣٢(!/m"2!* ## .m,' !"', !"2!)y)!2.. ##J ! 'Y ! ,@;٣٣p.#9':7*8%1?? 8  ? \7*8%/0%8*?2? 88 ? A&.;G%>7..'>&67&''67.'76&'%>. '&76  3;8;X?-K20\-0UHf8]uU?)[&W;~8;@DC##Bu]8Mf0;%6/76&/&"7.?'.>?>2/+rr,'!& c "(" c &!'Ɣx%%8 %ݜ''  ''% i@'7%!.'>7!>7!>7.'%!!.'>I6@6II6$$$$$$$@6II6@6II@6II66I@$@$$$@$$$@I6@6II66I .=3+"&51#4623213"&=#"&467#.46;5462@@@ @@&>76&'5.'&6%312#1"54`nc}}cn!ߘ  F;yyyy;F= @ @ $1>K!>7.'.'>72"&=462"&=46%46;2+"&%46;2+"&٣٣n@٣٣D[@!%!2#!"&5462"&5!"&463!2@@`@@ -<E!>7.'.'>7>7"&5.'"&.>?>>.٣٣mmz!@D$ 3$=#   ٣٣DmmfC?9G-  @ $%1!>7.'.'>72"&5463!21#!"514٣٣  ٣٣D @ (!>7.'.'>762"/&462٣٣+    ٣٣DR   @ #!2#!"&46>7.'.'>7`@٣٣`٣٣D@ #/!2#!"&46462"&>7.'.'>7`@ ٣٣@٣٣D@ #/49>C!>7.'.'>7'>7.'.'>77&'6'7/7٣٣RllRRllRmmm----٣٣DlRRllRRlBmmmm----@'-#5>!.'!>3!21#!"5143"&$$mm @ $6$@$@@$A@mm@ $$@-3??!&'732#!#"&46;>75>2.3"&%".762@.`7`r$6$2W#.6X$6$    @@@@6/%S-@u$$ 1%.<$:Q$$@    @@ E>7.'.'>5.'54623>7546232+"&4636II66II6RllRRll2z_@_z@I66II66IAlRRllRRl@z  __  z@`@$GUa.5>75.'>=7"'7;>7546232+"&46;5"&'.=462".762-lRRl@I66IO?5@3Ze.e.7@@_z@@.TS%&    0.@#RllR,@l6II6.I $8 9@y4X4e."_  z@@C)c6  +K    (.676.'?(,   1+O7  ()56B"3!2654&#%!!.'>"&463!21#!"5143!21#!"514@)66)@)66I$$6$$[   @6))66))6$6$$6$  !)!>7%!!.'>"&'326?$$$I66I$#KTKU282$$@$6II6$?"" +,8?!>7.'!&'>7!3!21#!"51453!21#!"514r$$$#I6@6II6 @ @ E[$$$v }6II6`6I  '09%!>7.'!7&'>7!"&4623"&462!"&462$$$#I6@6II6,,j,$$$v }6II6`6I-,,,,,, $0<H?3>7.'&?.5>7"'".4>323".4>32!".4>32R`٣$#\:(,mbj(- *ːː4f-5y@0=  ,  ,  , %!>7.'!7&'>7!$$$#I6@6II6$$$v }6II6`6I $%12>?3>7.'&?.5>7"'3!21#!"51473!21#!"514R`٣$#\:(,mb @  (- *ːː4f-5y@00  $?3>7.'&?.5>7&'RfѬ$!Z8(*x\(, (ȔǕ8h,5|B.  (45AJVWc!>7.'%!!.'>>4&".'>773!21#!"514>4&".'>7%3!21#!"514$$@$$@6II66II$$6$$6II66II  $$6$$6II66IIJ  $$$@$@I66II6@6I$6$$6$AI66II66I `$6$$6$AI66II66I  (4!>7.'%!!.'>2>4.#.'>7Jllllll11.>>.MggMMggllllIO3:3>..>JgMMggMMg (4!>7.'%!!.'>2>4.#.'>7Jllllll22.>>.MggMMggllllIO3:3>..>JgMMggMMg!C#!>754&'5!.'5>753>75.'!.'5>7!6II6@6I"9FlRRllR@6II66I":ElR@RllR@I66II6#:F`@RllRRl@I66II6#:Fb>RllRRl#''7>'&'7>'&6?6?'.[8 .2;[-ZOEA KZOEA KZ.[8 .2;[----[;2. 8[.ZK AEOZK AEOZ-[;2. 8[<--@(1:CLU^gpy!>7.'%!!.'>72#54632#546!2#546"&=33"&=3!"&=346;#"&546;#"&46;#"&%+5325+532+532@$$$$6II66II@@@@@@$$$$@I66II66I@@@@@@C>'.3!4&/.=.4>2!"&/.>76$= %$!=E=! )1$5 ,e)$ $ A"> 1!$T#<$$<# > B+$+-%  @@ $%1>7.'.'>7'312#1"543!21#!"514mmmm @ mmmmC=   %&26%>7.'.'>7;21+"514;12#1"=4'__`_xwxj(%(/`__`9wxwx(%(@#(:?Q#53+"&=335'53#5##546;2!5%!2#!"/&4?6!5!7!"3!2?64/&@@@@@@]GG#R cc G#Q dd  `PP@ p  p P@ p  p @ &3LX%'"&'3267>54&'.#">2%7.46767>54&'.#"26.'>7["PVP"[4EG~`,/0+[.4EG~3["PXO!>,/0+[F #!@"+L#!?H?c[[[,/0X4EG~3[!OZO!,/0+[.4EG~3["PXO! ?$+L#!?$+L@'3!!>73!.'>7>7.'.'>7$$$@I66II66II66II6RllRRll@$$$6II66II66II66IAlRRllRRl/ %/!2!.'&63!>77'!!7!>?LdBBdLV摑N C,^,C =?KK? J~ '#BO@@c*22*c$07;DM7#"&5463!232+".7#".7>2367!!3'#7'#>4&">4&"!@ 6\#GRG##GRG#>J>-M 6B"--D--"--D--` *I--I**I--Ij""'h`A ``-D--D--D--D-  $0<M]a%>7.'.'>7'3!21#!"514>7.'.'>7"&46;2&'"&46;2&/'6II66II6RllRRllR @ 6II66II6RllRRll `Z @%9*@*@I66II66IAlRRllRRl I66II66IAlRRllRRl  h 0 0`[".!'&"7#!"&547%62>4&".'>7@,z  %X,$$6$$6II66IIBB2 q e$6$$6$AI66II66I`[ &27!'&"!5#!"&547%62>4&".'>7@,@  %X,$$6$$6II66II> q e$6$$6$AI66II66I@)2#5!!3!"&5463!2!%!2#!"&546.462@@@@n$$6$$`@ @@$6$$6$ /;G>7&'7.'467>7&'7.'46.'>7'>7.'ŗ"쯯#ŗ"쯯#}쯯쯗ŗ;;"@^^@";>#c{{c#>;"@^^@";>#c{{c#>{cc{{cc{>^@@^^@@^!%IU^!#532#!"&'&'.=!!#!"&'&'.546767>3!2.'>7'>4&"  R @@ R   DZZDDZZD)66R66@   @    _ZDDZZDDZ>6R66R6#GKOS4&'&'.#!"3!26767>5#!"&'&'.546767>3!2!!!!!!   8 @ **** **8**  <    x**  **x** *&@@@@@#/!'%!2#!"&54?6!!%3'#'3+"&5=l  22@(@ T @88@` @&/;DP!!5!!)!!!!#!"&53!21#!"514!>4&".'>77>4&".'>7 `  `@@ @ `$$6$$6II66II$$6$$6II66II@@@` $6$$6$AI66II66I?$6$$6$AI66II66I@%!%!2#!"&5465.'#5>7`@I66I@lRRl@@@6II6RllR@(/3+5!#"&=#!%>732#!"&546;!.'!! lRRl@I66I@``@@RllR6II @@)-.462.462"&46;2!2#!"&'!!(,(\ "_` @ {R (((( @  f$-!2#!!2#!#"&46!.462.462`7p ````(,(@ @@@ ((((@)-06.462.462"&46;2!2#!"&'!!%'762!(,(\ "_` @ {Ro\\+<8 (((( @  f@nn@#!5%!2#!"&=463#3#'3#3#`@@@@@@@@@@@@@@@ "&*.#3#"&=463!35732#!735''3#'3#3#8@PxHh..@@@@@@@@@xH.."7!62#!"&54`  ` @ % {@  !-1!3!21#!"514 !%!2#!"&7>312#1"=4#3#@ @ c`cM qPqr @@ @@   @$-159!%!2#!"&546!!3#!5.'7!5>'3#3#3#@r@I66IRlln@@@`@6II6lRRl` ``` @#'+/?!%!2#!"&546!!!!!!%3#3#!!3'!2#!"&546`@n@@@@@@@@@@@@@ "+!!467#!>73>7.'.462SRl-__mA]]AA]$$6$$lR Dthzzm}aa}}6R66R6@$%12>##!%!2#!"&546;21+"514;21+"514;21+"514`@``@. @@ @$%12>?K!%!2#!"&5463#;21+"514;21+"514;21+"514;21+"514`@@@ @@@ @!%!2#!"&5467!!7!!@N@`@@@@@(-87!!7!2#!>!5%!!.'>75%!/&'$@`@ I&P$0??``@#ll#`$`:6I!(`@$?00?aMM@ VV +!!7!!3!53!#!5#!!#!"&5476 @`\R  @@@Xg  4!%!2#!"&5463121#1"514'>67/& @@@@2O}  2O| @@@@@@' e (d @ $8>7.'.'>3121#1"514'7>6?/&٣٣@@@@.D  *A  ٣٣D@@@@ .b0b@ +/?!5.'!3!!3>7#!!.'>7!5%!!.'5>$$$@@@$6II66II$$$$@$$$$@I6@6II66IA@@@$@$$@$@ #'7!5.'!!>7!!.'>7!5%!!.'5>$$$$@6II66II$$$$@$$$$@I6@6II66IA@@@$@$$@$ 7!%!2#!"&54653!33#3#3##!#5#535#535#5 @@@@@@`@@@`@@@"3462#!"&5463!2#!!76. &?6762@@`5D $  iLME # qOi L@@762%!2/&"&'46B@#  #E@  !.;H%#'##7#"&5#"&463!2+#!!2"&=4672"&=4672"&=46oJooJo@@   @@@@@f >73'.'>!.'56! ՙ@)_bC!3# rr+||+t@@!65555&#77#&Y@@ 3#3#53!5377''7@@@@Z----Y-=---@`@@@@-----=---@ !-3#!.'!7!!5>>7.'.'>7@@$$?6II6RllRRllRmmm@$$eI6@@6IlRRllRRlBmmmm@@#GHTh";26767>54&'&'.#'32+"&'&'.546767>312#1"=47"&=4&+"&46;22  2222  22>@/ /@>>@/ /@h @``)6 2222  2222 @ /@>>@/ /@>>@/ `@6)!0%#"&5#"&463!2++#'##!!%"&4?76'g@@oJooJH  }m %    ^#b .;!3!53>74767!733##!"&=#.'3!&767#7!$$=n% FI66I}}  `'$$G9QOFF@`@@6II6ED.)980@'3?5.'62.'>7.'54>2."267%2675."٣D<"I66II66I"7!..'@$6$@I66I:А$$6IIv4!*6B&'&6767&>>'.7>'>&'&>.kJ==c189p!["o981c=>Z >;;k#4  4#k;;> Z>V)  8V*4.BJ.5*KA%!7'#!"&5463!2%3#@``@Ȱ@0(@@+4!>7.'%!!.'>!2#!"&46.462$$$$6II66II$$6$$$$$$@I66II66I$6$$6$+5#.'#3#>75#5!.'!>@lRRl@٣I66I@RllR@@@٣6II/%32#!"&46;5!.'>7!!>7.' @6II66II6$$$$I66II66I@$$$$D*%"/$'&76$>7.'!2#!"&46}  }wrw|D{WƖ}  }m{D|wrwƖƖ|D:%"/$'&76$>7.'546232+"&=#"&463}  }wrw|D{WƖv```}  }m{D|wrwƖƖ|````D%"/$'&76$>7.'}  }wrw|D{WƖƑ}  }m{D|wrwƖƖ@!-9!!'!#37>3!232#!"&546>7.'.'>7 . 1 .DZZDDZZD___@@]]ZDDZZDDZB____@!-!!!5!#!"&5#"&5463!2#32+"&46@ @ @@@  7!2#!"&46#' @@-==.@B>-=- 7!2#!"&46%7 73@.-@@-=-E,62"'&472764'&"7.67Z<;88OOKK.h88<;=%%(f' $ &-23$ 88<;KKOO.i;<88=(f'&& $ &- $41@+/CGKO%#"&'&'.546767>;5!32+!!5!34.#!"!5!3#73#   EE   @@ v @@@@@ \     @E  @@@@"!!!'!#!"&546533##5#5@ @N@@@@@@@"!!!'!#!"&546!!3#!!@ @@@@@@@@'!!!!#!"&5467'7&`@L.-@@@@--@&*.!%!2#!"&546%+53!#5463!2!!!!@n`@@@@@@@@@@@@`@@@"'!!!!#!"&546'77''&`@C[.Z[-ZZ-[Z.@@@@Z.[[.Z[-ZZ-@'!!!!#!"&546!!&`@@@@@@@@!%!2#!"&546!!3#!!`@@@@@@@!!'%!!2#!"&5467'7f --@ --#!!'%!!2#!"&546'77''f [.ZZ.[[.ZZ.@@Z.[[.ZZ.[[.!!'%!!2#!"&546!!f @@`@#!!'%!!2#!"&546533##5#5f @@@`@@ $!!5!'#7>3!"&5463!!232n`|2: N9 `p@@ `@ !!'%!!2#!"&546f @U 7'77' 1!5!!f9h1Gpp@.^pbpgN@@@%1'&46276/"&47>7.'.'>7[  ZZ# [[ #ZZ  ٣٣Z  [[ #ZZ# [[  ٣٣D@7CO[gs!#"&=!"&=#!!546232#!"&546;546232+"&4632+"&46732+"&4632+"&46732+"&4632+"&46 @@@@@@@@@@@@   @   `@@ !@@ @@@  >.7%.>%&>&[X!"S`7JO3&JM.&ZY5M^#i(.W],L2i"%.'>%.'>0??00??0??00??0??00???00??00??00??00??00??00??>/.76&/&l   A ! l! A  #/<E7'#!"&5463!2!5>7.72>5."4>2.7264&"ZDDZZDDZ>-2.6R6"7&>23#I66IF:p $ r:@6II6@!v  u!  !! @ &2!>7.'#'.#!"2>4.#.'>7$$$$t. .551AA1mmm$$$$]]M7<7A11Ammmm@ .'>'&"276.c    +@c   + @ &.'>'&"2?>/764&"h  hh  hh* hh  @{h  hh  hh *hh  ` &>7>7.'>4&".'>7p;KTŗTK;p$$6$$WttWWtt VAUZ[UAV$6%%6$sWWttWWs)3"&5463!2#%'&"!&"2>5."`@E    -2.6R6@E " %,,)66@ '.'>#";26=3264&+54&"  @k  @ 4.'>264&"46''&76&'7>>""3""%5 X#S5 W#2D@44 =  (9, =  '8@ .'>3!264&#!""t@E @ !.'>"2676&>4&""",@&&,,@ *.'>>4&"3>76&'&>,B` A??t AAI' 6@E,, !RAAl/:)"7.'!"&=>7!#____`ZDDZ@___A`DZZD`  #!!3#!5!53!5!3###53#5@@@@@@3!>735.>25!p6II63&'bb'&I66I&tyHHyt6@@ !3!3!3 @@ !!!!!!@I"53!54&'.7>76>75C=#ODhO~EgXu@@@ P2A&%B?ch$fqey@~ !>7.'>7uuvXXvvXXvo*؍*XvvXXvv@)3#'''7&'#5367'767.'>>mm>77VV77>mm>77VV7slRRllRRl@UU@_`__`_@UU@_`__`RllRRll`  3!3!'5!@x.=-? @.=-`` 3!!#.4673!0??0  d?00? ((!.462.462.46237!000`000000w@!!#3 ``` 3!7''."26$00((Gf*f*u(  !!35#35#%#>7#.'@@@@@@@lRRl@I66I @RllR6II#.'55>7!3.'>7 U=ӝ=U U=ӝ=U =U ݝ U==U ݝ U="%3!53!7"&'"&'"&'"&'47!@@6R66R66R66R6=@ )66))66))66))66) @%"&'5#.'!%!`6R6`6II6)66)I66I 73!#3#@```` %!5>7.'5!35!!5#356II6@@6II6@@@I66II66I` 7''773!3!%5!----- @ ----( @@`` !!!@% @@BM@@a/o/%>2!!"&'!5>23#"&'!5>2!!"&'#5 1>1 E 1>1  1>1 1>1 ; 1>1 ; 1>1 ##@##@ ##@##@ ##@##@ !!!!!!@ࠀ %533!5'!@@@@@@`  3!3!!5!!5!5!@`@@` @@@`` 5!3!5!!!5!@@@@ *.'>>7.'?'7.54>٣s  @٣٣F2 L @ $%1.'>>7.'312#1"54;12#1"54٣# @٣٣   @!55>732#!"&7>;!5.'#!#"&=!"&5@lRRl 99 I66I@f33f`VrrV @ ;NN;V```%53'3#5.'>7>7' fw\XX\wf f^ WjjW ^f@'&>54&"@ # )  : $  265264'.     )'4AN[2#!"&5463%!3!2>54."2654&!"2654&26=4&"26=4&-"##"Z,"",Z,"",    "##"=",,"",,"  -   - <        }-=6&/&6?>'&'.76$'&6&/&67,&[ EK^-<@a*  [T? $.T>* 7 0Aa]-<  T>&#1GA#0=5463!2!2#!"&463!35#"&5!#%2654&"32654&"`@```@`@@@<L!!.'>767>/.&'&6767%6'5'&$?>/.0??0`0??t7IPw  %U85'RB= 4 PU>( @?0`0??00?Oxs7J  4'RU:)1 % r7(> +#* 1< +C n *       V &] Created by iconfont elementRegularelementelementVersion 1.0elementGenerated by svg2ttf from Fontello project.http://fontello.com Created by iconfont elementRegularelementelementVersion 1.0elementGenerated by svg2ttf from Fontello project.http://fontello.com       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     ice-cream-roundice-cream-squarelollipop potato-stripsmilk-tea ice-drinkice-teacoffeeorangepearapplecherry watermelongrape refrigeratorgoblet-square-full goblet-square goblet-fullgoblet cold-drink coffee-cup water-cup hot-water ice-creamdessertsugar tablewareburger knife-fork fork-spoonchickenfooddish-1dish refresh-left refresh-rightwarning-outlinesetting phone-outline more-outlinefinishedviewloadingrefreshranksort mobile-phoneservicesellsold-outdeleteminuspluscheckclose d-arrow-right d-arrow-left arrow-left arrow-down arrow-rightarrow-upkeyuserunlocklocktop top-righttop-leftrightbackbottom bottom-right bottom-left moon-nightmooncloudy-and-sunny partly-cloudycloudysunnysunset sunrise-1sunrise heavy-rain lightning light-rain wind-powerwatchwatch-1timer alarm-clock map-locationdelete-location add-locationlocation-informationlocation-outlineplacediscover first-aid-kittrophy-1trophymedalmedal-1 stopwatchmicbaseballsoccerfootball basketballstar-off copy-document full-screen switch-buttonaimcropodometertime circle-checkremove-outlinecircle-plus-outlinebangzhubellclose-notification microphoneturn-off-microphonepositionpostcardmessagechat-line-squarechat-dot-squarechat-dot-round chat-squarechat-line-round chat-roundset-upturn-offopen connectionlinkcputhumbfemalemaleguidehelpnewsshiptruckbicycle price-tagdiscountwalletcoinmoney bank-cardboxpresentshopping-bag-2shopping-bag-1shopping-cart-2shopping-cart-1shopping-cart-fullsmoking no-smokinghouse table-lampschooloffice-building toilet-paper notebook-2 notebook-1files collection receivingpicture-outlinepicture-outline-round suitcase-1suitcasefilm edit-outlinecollection-tag data-analysis pie-chart data-boardreading magic-stick coordinatemouse data-linebrushheadsetumbrellascissors video-cameramobileattractmonitorzoom-outzoom-insearchcamera takeaway-boxupload2download paperclipprinter document-adddocumentdocument-checked document-copydocument-deletedocument-removeticketsfolder-checked folder-delete folder-remove folder-add folder-openedfolderedit circle-closedate caret-top caret-bottom caret-right caret-leftsharemorephonevideo-camera-solidstar-onmenu message-solidd-caret camera-solidsuccesserrorlocationpicture circle-plusinforemovewarningquestion user-solids-grids-checks-datas-fold s-opportunitys-customs-toolss-claim s-finance s-comments-flag s-marketings-goodss-helps-shops-open s-managements-ticket s-releases-home s-promotion s-operations-unfold s-platforms-order s-cooperation video-play video-pausegoodsupload sort-downsort-upc-scale-to-originaleleme delete-solidplatform-elemeassets/fonts/fluentform.ttf000064400000066034147600120010012077 0ustar00 0OS/2`cmapVTgasppglyfULxehead$ zOg 6hhea7gD$hmtxͼ4ghlocai@maxpj0 name%jPpostk 3 @q@@ 8  q 797979UU0!2#!"&5463"3!2654&#!463!21#!"&51K55KUK5V5K5KK5+5KK5UU(%"'.'&547>7632#64/&7XNNt!""!tNNXXNNt!""!tNNX***VV*"!tNMYXNMt"!!"tMNXYMNt!"acl1111UU/;#"'.'&547>7632#"&'&47>32'2654&#""!tNNXXNNt!""!tNNXXNNt!" /}HH}/ /}HH}/5KK55KKYMNt!""!tNMYXNMt"!!"tMNX  0770  /77/K55KK55KdG@LXg62"/././4&/&4?>57>?>?2654&#"#"&546326&'&67$^$6 G/B..B/G 6$^$6 G/B..B/G 6B&&%%%&&%&  #  # G/C/G 6$^$7 G/C..C/G 7$^$6 G/C/%%%%&&%% #  # UU4%"&5467'#"&'#"&546327.54632>32#5K    K55KK5  K55K  5KK5UK5))5KK55K*5KK5*K55Kn+ &62#!"&726=4&#"2654&#"%%#$JJJJ$#o@@@@mUU ##"&54632#"&54632#"&54632U2##22##22##22##22##22##2$22$#22$22$#22$22$#22UU/<GR_go7>;232#!"&5.=46;.546;232654&+""3!5!!!26=4&#!';'.+";!3265!3/->-5KK55KK5->-/3\9  yV 9  V?>, K5*15KK5K1*5K ,>?  U**k  V+dU%E#!"&/.7>7>54632%&3!26=4&/54&#"'.'A% s/5!$+a s>%5K7*J55K/ =   F -/"3,!&K5,E =5JJ5F k-)DH37>32+32+'.?#'.?#"&546;#"&546;7>#$,$QlPf,$,$QlPf,PP)ssssUU 2=2654&#"3%3!2654&#!"7!2.'&4637>!"&=#22#$22$K5V5KK55KV{'u%W* ' e2#$22$#25KK5U5KK5+ +,j/!{++(32+32+*1#"&546;#"&546;:1VjIJjIJ+UU!0@Par2#!"&5463!%"3!2654&#!463!2#!"&5463121#1"&5463121#1"&53463121#1"&513463121#1"&513463121#1"&53463121#1"&5463121#1"&5!463121#1"&5463121#1"&513463121#1"&513463121#1"&53463121#1"&5+V5KK5V5KK5UUK55KK5U5KVX5 1H&" 27%%62"'%&47%>27%6"'%.7>27%6"'%.7,.,.,_#L#-88#L#88- UU : UU :mmm nxn nxn|zz y y yy y y ,;463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5VVVV,9EQ463!2#!"&5463!2#!"&5463!2#!"&5#"&54632#"&54632#"&54632+VWU(Xer>54'.'&#"1>7>7>781"'&'.'&1#.547>76329%2654&#"37#"&54632F//55//F  D D  C W)D#%%>#(]?>GG>?]  K55KK55K^!R.5//FF//5.R! "%X'(W%# 6%*q1*00Q,n=G>>]]>>G&H $+5KK55KK5UU4>O>54&#"326="3!26546'.'&#"74632!5463!2#!"&5+2##25KK55KK5:'',,'':UK55KV ($22$( 66JK55KK5U5K+,''::'',++5KK5++UUU ,"27%.#!3!265"'%'463!2#!"&5 9  9 *V N VK5V5KK55K  {[P5KK5U5KK5UU(2";32653326532654&#!3#"&54635/.FF./5U+UUUGddGUE//55./E+UdFGdU 'N"&5463227>7654'.'&#""#"&=47>763!2#"&=4&#!5KK55KK5,''::'',,''::''TGdF./55/.FdGK55KK55KU:'',,''::'',,'':dG**5//EE//5**Gdbw#(a}6?6'.'.'&676'67676&/.'.'.'&6?6&/.";2?326=4&+c  (""9:#  X)p.2yABX$? @)0##""A+,,R%$ WH #/ @M!.w $ w2$j  #99""(  @ ?$XBAy2.p)X%$R,,+A""##0)!M@ /# HW w # x/k#2UU8<H%"'.'&547>763227>7654'.'&#"35764/&7G>>]]>>GG>>]]>>GXNNt!""!tNNXXNNt!""!tNNXU***VV*U]>>GF?>\\>?FG>>]U"!tNMYXNMt"!!"tMNXYMNt!">lm#cl1111U+UP463232"'.#"326762+"&'&47>54&#"+"&="&5463546;7"+"'.#"3267623463235"&54635#"&'&47>54&#K55K#2      2#  $25KK52$      K55K5KK5 5KK52#  #2      2#K55K#2+    5KK5K55K   Ww867>76'&2367>?6&'&&'.'&'&67'(l?@AIk> *A'',RPQ226@32> _?% 4&!!7  N@?RU2!76&'&8183267>/!2654&+ #   պ#  #"4+W&"#"326=47>76;2?64/27>76=4&#"+764'&"2764/3 # ">76Q:'&-" # [[_>76Q:''," # [[ # "4 # "R66>++,'':" $ [5\LQ67>**-&':" # \5\ $ ",;463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5VVVVUQEer}%32"'.'&6367>76762465/+"&'0&=467&67+"&'.'&67>7>702#"7.'154&+#"&54632d-- 6 6 2F-{0v1{-F2 Y v &&F F e2##22##2U8  8$%&C C&%$"\1J3RR3I0Y"M30`&  '_03M= "" =a/0]/a/#22##22#\ 2654&#"7#"&54632/767>7>?>;2?6/&+"&/.'.'.&/&677637>7>7>7'.7<5&6?'&'.'./#7>'<56&/?&#22##22dGGddGGd 0D%33$-5-$32 # # 23$-5-$32 @3%D0 5 0D%3##3%D0 5@##2 # U2$#22#$2VGddGFdd:2$2 S   2 2   .7'##'7.   1!!1   .78. 3$11$3 .'CB'. 2$28'CB'.S.7'##!1`267>767>767>54&'.'&"#&'.'&67>767>767>762& M3034m:9 P8566l676D*((M0X543i66;L;$%%E; 7d5''U55QN  !"=133c/.)l?UUIY!2#!"&=>54&'54635"3!26=4&'.5467>=4&#!&".'>77&"#"?626/&6?6&#'"&/V&//&&//&5KK5V5KK5+    ( <   1  1   BN/0NBBN0/NBUK5U (' V5KK5V '( U5K      j : $$ : UU=FR2#"&=46332#"&=4633232+#!"&5#"&546;464&+"!#3!265!5K+K5V5K+K ++UK55KK55KU+U 97463!2#!"&2327>7654632#"'.'&546+:'',,'':Q76>>67Q+<,''99'',V>66QQ66>VWw8&'.'&76"#&'./&67667>7676&'[((k@?AIk> *A'',RPP326@32> _?% 4&!!7  N@?RU<"/#"&5"'&4?>3223!26=4632#!"&=463 $ ww $  K55K $ w.w $ wVVV5KK5V UU $8LZkv#"&54632#"&546323#"&54632&4?'&4762"'#64/764'&"27&676&463!2#!"&57"!54&#!3!265!+L ++ # I I # ++ # I I # JJK5V5KK55K*VV # ++ # I # I # ++ # I # I 5KK55KK5U+DD|+#"&/##"&'.'.'./#"&'.5&6?.5#"&'.5467>;5'.5467>32!7>3232!467>32 kc  _   >    X  ak  kS  SS  Sk 6 6 *Gf  ` I e  oC'  T  UU  T  88+U 97463!2#!"&2327>7654632#"'.'&546+:'',,'':Q76>>67Q+<,''99'',V>66QQ66>V++(32+32+*1#"&546;#"&546;:1VjIJjIJ+UUU/7546?>=!%&5'.=463!2VV $2$$2 ##  BB ł <Y5B#22#B5U;T#"3!26=##!"&546;59./.'9*+"3!265<5!"&546;23;#++5KK5U5KU+U`)5KK5U5K2#)K5U5KK5++V+)`K5V5KK5K*#2U!A3!2654&/.#!"546+"&5232+#"&=#"&546;546K55Kv/u5K M#2UUUU5KK5/uK5*L 2$UUUUUU-D[46;2+"#"&=;2654&+"&=4&#"!+"&546;26=46324&+";2326=UK5VVK5VVVK5VVK5VV5KUU5KUU5KUUU5KUU]S>e4&67>7>76&+"'.'.'&67>7>7>=26'.'.'.'.'&;.W&/I 6((e78r45X   &"  *>#5   X55q88d)(6 H0&W- !& 4#?*   +O232#"&=4&#!"+#"&=#"&=46323!26=4&'%.=46;546UGd2##20'AQdGUUGd2##20'AQdGU*dG++#22#)C ]pEFd++dF++#22#*C ]pEGd*U4G463!2#!"&546;2+"&51./.'1!"3!265!"&5463!;#+VU`)U5KK55K2#V)`K55KK5+UU$2+U4G463!2#!"&546;2+"&51./.'1!"3!265!"&5463!;#+VU`)U5KK55K2#V)`K55KK5+UU$2+U4G463!2#!"&546;2+"&51./.'1!"3!265!"&5463!;#+VU`)U5KK55K2#V)`K55KK5+UU$2+[3(<P[a'&"?>?2?64/764/&"7627'&"7622?64/'&"764' 7z%j&x&&y^-  ^x%j&x&&xm%%=%j&l = # <z $ y  #  $ y xl< # =y< vyz%%y%j&y^  .^x%%y&j%xl&j%<&&l; # = # <z y #  x # x!< 7654'.'&#"3&4?'&4762762"/"'XNNt!""!tNNXXNNt!""!tNNX bb $ bb $ bb $ bb $ "!tNMYXNMt"!!"tMNXYMNt!" # ba # bb # ab # bb w%%64/764'&"2%64/764'&"2 #  # #  #w # $ G # $ G t"/&47622762t %j& # # n #  $ && # n ,;463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5VVVVUU"?J2!5463232#!"&546;5463!#"&=#"!54&+#"&=3!265!+V+5KK55KK5+++VVU+++K55KK55K++++++DUU&5%&5463!2/&"654&#!"?463!2#!"&5͉//83?K5V5K?f*fDg/GO*5KK5OG/g+++*746;2+"&57"32654&+;2654&#!R:,''9$1=:'&-:Q 5KK57 5KK5:R:'&--Pc<,'':Q96K55KK55K+++*746;2+"&57"32654&+;2654&#!R:,''9$1=:'&-:Q 5KK57 5KK5:R:'&--Pc<,'':Q96K55KK55KU7#2AO&"'%62#!"&7!%2#"&5463!2#"&5463!2#"&5463463!2#!"&%&%5#N#5=DLD=%%V*MMVwk%2?64/&"!"3!7 #  # Yʹ # G $ UU=%27>7654'.'&#"3232+#"&=#"&546;5463XNNt!""!tNNXXNNt!""!tNNX"!tNMYXNMt"!!"tMNXYMNt!"UU4&#"!"3!3265!2654&#!+++&>4632#!"&5463!2#!"3!26=%6>+"&/&47+A..AA.h  " b # @ $  _ .AA.".A  Q  C  # c # UU+!:<5463276#"&/.7>!54632#!"&=4632f#    "gUL # x " I**UUUU8U3'>'.#!"326?"'.'&547>7632"327>7654'.'&#oo1 ""  G>>]]>>GG>>]]>>GXNNt!""!tNNXXNNt!""!tNNXxx#+ ]>>GF>?\\?>FG>>]!"tMNXYMNt!""!tNMYXNMt"![+-Pp"&50494070"1*1&"3267326764''.'&'>7'3:3>7'6'>7&'.'&'>7&B # W>$  U@E89W1!<0?  jJJ^%EC$`LKn!!  ?0X  # F$%><-W  .-_%% C$$a/.  W,<?%%ED [ 4Z"&54632'"32654&'.'&'67>7676%&'.'&3:367>76764'&&&&>WW>>WW5E89WR45@D99VR45@ !!mLL`XFFf!  jJJ^XFFf! k%&&%X=>XX>=XF$%#$CE%%$$B./a$$#"[.-  .-_%%##[-.  +U+H#"&'.#">323267.#"&'.#"326=>323267>54&' 3+$@!&O0"5 3+$@!&O066$/$@!&O0]P 3+$@!&O0:J<  ]    + z   #q ^L$5Z67>"'&4?6&'&"'&6?326?64'&"'.?64'&"76?64'&"#,,]..'/)< # =5;406 $ .K   #8604;5= # 6# $22j44)= # # $22j44(= # =51, 06 %. #  $ 60 +15= $ 6",,\..&/(= $ @ #3CS4632#"&4632#"&"32654&7!2#!"&=46!"3!26=4&!2#!"&=46@2[o[[UUj'&"#5326764/.#"2?#764'&"326764/3'&"3126?64'&"53326?>54&' $ 77   $ 77 $  77 $   $ 77 ȁ # 87 #  # 77 #   # 78 #  # 77 #  UU !4&#"!"3!3265!2654&#+UU (Da"&54632"327>7654'.'&#"'.'&547>7632"327>7654'.'&#5KK55KK5,''::'',,''::'',G>>]]>>GG>>]]>>GXNNt!""!tNNXXNNt!""!tNNX+K55KK55KU:&',,''::'',,'&:]>>GF>?\\?>FG>>]!"tMNXYMNt!""!tNMYXNMt"!+s+C47>7632#"'.'&5'>54'.'&#"3267326764'E/.55//EE//55./E!']>>GF>?\\?>F;k+  5//EE//55./EE/.5,j;G>>]]>>GF>?\&" # (](8bq'./&"#?626/46?6&'!2654&#!"31'"&/&"#?626/46?6&'1!"3!2654&#'"&/&"#"?626/46?6!"3!2654&#'DD 3 : : 4 DD 3 : : 4 |DD 3 : : 4 ? ?, C ## C ,x? ?, C ## C ,? ?, C ## C ,W-@E%2'&6?'./7>3"&/&'.?'.7>?62#  PP     ) m 6 m )  T ~ ~ Trr  ##   U%"&/.7>3!2#  %h%   33 +m& 64'&" &" 3267 326764'Z44      555  5UU =2#1"&=#"&'&4?'"&546;6232+"&5'463127+  nb # on $ t # n[ ="32654&"&54632%&'.'&3:367>76764'&&&&>WW>>WWg !!nKL`XFFf!  jJJ^XFFf! &%%&X>=XX=>X./a$$#"[.-  .-_%%##[-.  UU 6"&54632#"&=4632"327>7654'.'&#+XNNt!""!tNNXXNNt!""!tNNX+!"tMNXYMNt!""!tNMYXNMt"! UU!2CTeu32+"&=46332+"&=46332+"&=46332+"&=46332+"&=46332+"&=46332+"&=4632+"&=4632+"&=46+*UUUU %4632#"&%"32654&#!"32654#$22$#2#22##22#+$22$#22##22#$22y2#$22$#22#$22$#2ZU x"32654&#"&54632#%'.'.&/.=4&'.+"'&3263>?>366?>/.7>?>'&&&&>WW>>WW>"&$#l(:(%# $'  Y ! "  !&X   &$ &%%&X>=XX=>Xl    % :) "   o'I*!PC  BQ!& I'+*:!"326=!#"3!2654&+!326=4&#!2#!"&=46UVUUk V+V * * +*!"326=!#"3!2654&+!326=4&#UVUUV+V+3Mg!"&'.5467>3!2!"&'.5467>3!2!"&'.5467>3!2!"&'.5467>3!2!"&'.5467>3!27"&/.546?>7>7623#1s  s  I  I  s  eeYY           +     + 276&#!"    E5Oi!267>54&'.#!"3!267>54&'.#!"3!267>54&'.#!"!267>54&'.#!"!267>54&'.#!"3'26?>54&/.'.'&"#31$s  s    I  Is   eeYY           +     UU'-;I4&'.?#";2654&+5463!2#!"&463!2#!"&463!2#!"&'1067>7>32;2654&+>?>54&'.#"01967/09    r    . r  M .        - 4-    3,!    UU%!47>763"3#&635"!FJJ>>JJFnU&22ZSDwDSZ22&wUU6_n}0101;267>78581>54&'041.'.+"'>;2+"&'.'.5467>72#"&5463!2#"&5463L  1..1  1..1>P//P  P//P  !%  %! !% l %! =F+$$+GG+$l$+F+U 7!5%!3#37#2sRs2ggllwRwpw4"&'.'&#".#";5##327>7654'.'  E)*.912J MllM急3,-BB-,3W)##3H107  jKKkA,+22+,AV+h> %7''77&?>762!"43!20i0-ix  &C\++V*g/i0hxD&  UU*!2654&#!"3!2654&#!"!"&5463!2VgVKTI67>'&'.'&6766767676&'&'&'&32+"&=4632,>?LMHO875'&@ATUO@c !O3@DC|34+,,?=AAx33!I@+,&#'@@TUOP775'c>! 1O*,-?@CD|33%'(:8UU3BQ`t!2#!"&546"3!2654&#762"/&4762"&54632+"&546;2+"&546;2#'762"/&4762762"/&4762GddGGddG#22##22#I 7 # U # + #  7 # U # + # 7 # U # + # UdFGddGFdU2#$22$#2b 7 # U + $ I 8 # U * # 7 $ V + # 6D0Nb47>7632>54&'&'..#"326?.51%"327>7654'.'#"&=463232#Q66>4]&+''00d21(&]37d'))@  09*0)*>>*)0/**>>**/@@#>66Q!  8e'&#!#)((33j33( (uD>**//**>>**//**>C! x#54&'.#"#";3267>54&'.'.'&>7>32.67#3267>=3267>=4&'.#1#";267>54&'.# 612FF216 #  #  ##    0((d65e('0      c   #  #@#  #@#  #@F216612F@ #$ $  $@  6`$$''$$`6     E   $#  #$  $#  " 0S26=4&#"3267>/.%326?6&'&8327267>5./81'&"#"�1#*#"&/7>7201>?06'.'6&'.'6&'.'6&'&17'817'&181676&/89."178167>'4&/&13>7>5./8181'&1@  121 5[  .C           3,,     !w%䡶 )D?#   B    #C  \  E:  $    T T 'D CC M '9            +  . * # `iǢ "6   8    8   N  1     (w'.'&547>76B$$#&%>>%&#F!!G!"$ )( $u 75!!=!!=!!u^^^^^^UU-D[4632+"&546;26="&546;2#"&=4&+2+"&=4632;#"&=46;2+" ?,U U% U,? %U* U,? %U ?,U U% V,> &V ?,U U%U >,V V& U,? %Uv 2?6&#!"%'&"3!26  M    O~0Ha>327.''">7#.=4'.'&'#5>327>767'#"&'537.54673'Q*H W>/.-T%$%H2< '$a;E /MW> /.-T%$Q*H < '$a;E /H2a;D /G3< ($ϮW= /-.S%%Q*I G2@ '%a;E . 0-.S%%R)H W>++>KP^l>32181+"&'81'.5467;267177>328178146;2+"&%46;2+"&&&.A-@u_b&&&&u"!U ,2#!"&54635"3!2654&#!#"&546325KK55KK5+UUK55KK5U5KV+U)#"3!2654&++"&5%2#!"&5463!+V+%&+5KK55KK5VU%%UK55KK5U5KU++3#!"&5463!2'!"3!#"3!2654&+5!2654UV*5KK55KK5UVK55KUUK5V5K'_< vvvUUUdnUdkUUXUbUUW\!UUWUUU][bUUUUU[[^@UU(W [UUZ+EUUUVKU6 "(uU+U d*`d0hZj"l * v J H `(r>R^T~:,&V 4, . !!"#T#|#$$v$%%&r&'((")*)*0**+L++,D--.d/00,001d22D22v { ?   ]     I  ) g 4fluentformfluentformVersion 1.0Version 1.0fluentformfluentformfluentformfluentformRegularRegularfluentformfluentformFont generated by IcoMoon.Font generated by IcoMoon.assets/fonts/fluentform.eot000064400000066314147600120010012072 0ustar00llLP'fluentformRegularVersion 1.0fluentform 0OS/2`cmapVTgasppglyfULxehead$ zOg 6hhea7gD$hmtxͼ4ghlocai@maxpj0 name%jPpostk 3 @q@@ 8  q 797979UU0!2#!"&5463"3!2654&#!463!21#!"&51K55KUK5V5K5KK5+5KK5UU(%"'.'&547>7632#64/&7XNNt!""!tNNXXNNt!""!tNNX***VV*"!tNMYXNMt"!!"tMNXYMNt!"acl1111UU/;#"'.'&547>7632#"&'&47>32'2654&#""!tNNXXNNt!""!tNNXXNNt!" /}HH}/ /}HH}/5KK55KKYMNt!""!tNMYXNMt"!!"tMNX  0770  /77/K55KK55KdG@LXg62"/././4&/&4?>57>?>?2654&#"#"&546326&'&67$^$6 G/B..B/G 6$^$6 G/B..B/G 6B&&%%%&&%&  #  # G/C/G 6$^$7 G/C..C/G 7$^$6 G/C/%%%%&&%% #  # UU4%"&5467'#"&'#"&546327.54632>32#5K    K55KK5  K55K  5KK5UK5))5KK55K*5KK5*K55Kn+ &62#!"&726=4&#"2654&#"%%#$JJJJ$#o@@@@mUU ##"&54632#"&54632#"&54632U2##22##22##22##22##22##2$22$#22$22$#22$22$#22UU/<GR_go7>;232#!"&5.=46;.546;232654&+""3!5!!!26=4&#!';'.+";!3265!3/->-5KK55KK5->-/3\9  yV 9  V?>, K5*15KK5K1*5K ,>?  U**k  V+dU%E#!"&/.7>7>54632%&3!26=4&/54&#"'.'A% s/5!$+a s>%5K7*J55K/ =   F -/"3,!&K5,E =5JJ5F k-)DH37>32+32+'.?#'.?#"&546;#"&546;7>#$,$QlPf,$,$QlPf,PP)ssssUU 2=2654&#"3%3!2654&#!"7!2.'&4637>!"&=#22#$22$K5V5KK55KV{'u%W* ' e2#$22$#25KK5U5KK5+ +,j/!{++(32+32+*1#"&546;#"&546;:1VjIJjIJ+UU!0@Par2#!"&5463!%"3!2654&#!463!2#!"&5463121#1"&5463121#1"&53463121#1"&513463121#1"&513463121#1"&53463121#1"&5463121#1"&5!463121#1"&5463121#1"&513463121#1"&513463121#1"&53463121#1"&5+V5KK5V5KK5UUK55KK5U5KVX5 1H&" 27%%62"'%&47%>27%6"'%.7>27%6"'%.7,.,.,_#L#-88#L#88- UU : UU :mmm nxn nxn|zz y y yy y y ,;463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5VVVV,9EQ463!2#!"&5463!2#!"&5463!2#!"&5#"&54632#"&54632#"&54632+VWU(Xer>54'.'&#"1>7>7>781"'&'.'&1#.547>76329%2654&#"37#"&54632F//55//F  D D  C W)D#%%>#(]?>GG>?]  K55KK55K^!R.5//FF//5.R! "%X'(W%# 6%*q1*00Q,n=G>>]]>>G&H $+5KK55KK5UU4>O>54&#"326="3!26546'.'&#"74632!5463!2#!"&5+2##25KK55KK5:'',,'':UK55KV ($22$( 66JK55KK5U5K+,''::'',++5KK5++UUU ,"27%.#!3!265"'%'463!2#!"&5 9  9 *V N VK5V5KK55K  {[P5KK5U5KK5UU(2";32653326532654&#!3#"&54635/.FF./5U+UUUGddGUE//55./E+UdFGdU 'N"&5463227>7654'.'&#""#"&=47>763!2#"&=4&#!5KK55KK5,''::'',,''::''TGdF./55/.FdGK55KK55KU:'',,''::'',,'':dG**5//EE//5**Gdbw#(a}6?6'.'.'&676'67676&/.'.'.'&6?6&/.";2?326=4&+c  (""9:#  X)p.2yABX$? @)0##""A+,,R%$ WH #/ @M!.w $ w2$j  #99""(  @ ?$XBAy2.p)X%$R,,+A""##0)!M@ /# HW w # x/k#2UU8<H%"'.'&547>763227>7654'.'&#"35764/&7G>>]]>>GG>>]]>>GXNNt!""!tNNXXNNt!""!tNNXU***VV*U]>>GF?>\\>?FG>>]U"!tNMYXNMt"!!"tMNXYMNt!">lm#cl1111U+UP463232"'.#"326762+"&'&47>54&#"+"&="&5463546;7"+"'.#"3267623463235"&54635#"&'&47>54&#K55K#2      2#  $25KK52$      K55K5KK5 5KK52#  #2      2#K55K#2+    5KK5K55K   Ww867>76'&2367>?6&'&&'.'&'&67'(l?@AIk> *A'',RPQ226@32> _?% 4&!!7  N@?RU2!76&'&8183267>/!2654&+ #   պ#  #"4+W&"#"326=47>76;2?64/27>76=4&#"+764'&"2764/3 # ">76Q:'&-" # [[_>76Q:''," # [[ # "4 # "R66>++,'':" $ [5\LQ67>**-&':" # \5\ $ ",;463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5VVVVUQEer}%32"'.'&6367>76762465/+"&'0&=467&67+"&'.'&67>7>702#"7.'154&+#"&54632d-- 6 6 2F-{0v1{-F2 Y v &&F F e2##22##2U8  8$%&C C&%$"\1J3RR3I0Y"M30`&  '_03M= "" =a/0]/a/#22##22#\ 2654&#"7#"&54632/767>7>?>;2?6/&+"&/.'.'.&/&677637>7>7>7'.7<5&6?'&'.'./#7>'<56&/?&#22##22dGGddGGd 0D%33$-5-$32 # # 23$-5-$32 @3%D0 5 0D%3##3%D0 5@##2 # U2$#22#$2VGddGFdd:2$2 S   2 2   .7'##'7.   1!!1   .78. 3$11$3 .'CB'. 2$28'CB'.S.7'##!1`267>767>767>54&'.'&"#&'.'&67>767>767>762& M3034m:9 P8566l676D*((M0X543i66;L;$%%E; 7d5''U55QN  !"=133c/.)l?UUIY!2#!"&=>54&'54635"3!26=4&'.5467>=4&#!&".'>77&"#"?626/&6?6&#'"&/V&//&&//&5KK5V5KK5+    ( <   1  1   BN/0NBBN0/NBUK5U (' V5KK5V '( U5K      j : $$ : UU=FR2#"&=46332#"&=4633232+#!"&5#"&546;464&+"!#3!265!5K+K5V5K+K ++UK55KK55KU+U 97463!2#!"&2327>7654632#"'.'&546+:'',,'':Q76>>67Q+<,''99'',V>66QQ66>VWw8&'.'&76"#&'./&67667>7676&'[((k@?AIk> *A'',RPP326@32> _?% 4&!!7  N@?RU<"/#"&5"'&4?>3223!26=4632#!"&=463 $ ww $  K55K $ w.w $ wVVV5KK5V UU $8LZkv#"&54632#"&546323#"&54632&4?'&4762"'#64/764'&"27&676&463!2#!"&57"!54&#!3!265!+L ++ # I I # ++ # I I # JJK5V5KK55K*VV # ++ # I # I # ++ # I # I 5KK55KK5U+DD|+#"&/##"&'.'.'./#"&'.5&6?.5#"&'.5467>;5'.5467>32!7>3232!467>32 kc  _   >    X  ak  kS  SS  Sk 6 6 *Gf  ` I e  oC'  T  UU  T  88+U 97463!2#!"&2327>7654632#"'.'&546+:'',,'':Q76>>67Q+<,''99'',V>66QQ66>V++(32+32+*1#"&546;#"&546;:1VjIJjIJ+UUU/7546?>=!%&5'.=463!2VV $2$$2 ##  BB ł <Y5B#22#B5U;T#"3!26=##!"&546;59./.'9*+"3!265<5!"&546;23;#++5KK5U5KU+U`)5KK5U5K2#)K5U5KK5++V+)`K5V5KK5K*#2U!A3!2654&/.#!"546+"&5232+#"&=#"&546;546K55Kv/u5K M#2UUUU5KK5/uK5*L 2$UUUUUU-D[46;2+"#"&=;2654&+"&=4&#"!+"&546;26=46324&+";2326=UK5VVK5VVVK5VVK5VV5KUU5KUU5KUUU5KUU]S>e4&67>7>76&+"'.'.'&67>7>7>=26'.'.'.'.'&;.W&/I 6((e78r45X   &"  *>#5   X55q88d)(6 H0&W- !& 4#?*   +O232#"&=4&#!"+#"&=#"&=46323!26=4&'%.=46;546UGd2##20'AQdGUUGd2##20'AQdGU*dG++#22#)C ]pEFd++dF++#22#*C ]pEGd*U4G463!2#!"&546;2+"&51./.'1!"3!265!"&5463!;#+VU`)U5KK55K2#V)`K55KK5+UU$2+U4G463!2#!"&546;2+"&51./.'1!"3!265!"&5463!;#+VU`)U5KK55K2#V)`K55KK5+UU$2+U4G463!2#!"&546;2+"&51./.'1!"3!265!"&5463!;#+VU`)U5KK55K2#V)`K55KK5+UU$2+[3(<P[a'&"?>?2?64/764/&"7627'&"7622?64/'&"764' 7z%j&x&&y^-  ^x%j&x&&xm%%=%j&l = # <z $ y  #  $ y xl< # =y< vyz%%y%j&y^  .^x%%y&j%xl&j%<&&l; # = # <z y #  x # x!< 7654'.'&#"3&4?'&4762762"/"'XNNt!""!tNNXXNNt!""!tNNX bb $ bb $ bb $ bb $ "!tNMYXNMt"!!"tMNXYMNt!" # ba # bb # ab # bb w%%64/764'&"2%64/764'&"2 #  # #  #w # $ G # $ G t"/&47622762t %j& # # n #  $ && # n ,;463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5VVVVUU"?J2!5463232#!"&546;5463!#"&=#"!54&+#"&=3!265!+V+5KK55KK5+++VVU+++K55KK55K++++++DUU&5%&5463!2/&"654&#!"?463!2#!"&5͉//83?K5V5K?f*fDg/GO*5KK5OG/g+++*746;2+"&57"32654&+;2654&#!R:,''9$1=:'&-:Q 5KK57 5KK5:R:'&--Pc<,'':Q96K55KK55K+++*746;2+"&57"32654&+;2654&#!R:,''9$1=:'&-:Q 5KK57 5KK5:R:'&--Pc<,'':Q96K55KK55KU7#2AO&"'%62#!"&7!%2#"&5463!2#"&5463!2#"&5463463!2#!"&%&%5#N#5=DLD=%%V*MMVwk%2?64/&"!"3!7 #  # Yʹ # G $ UU=%27>7654'.'&#"3232+#"&=#"&546;5463XNNt!""!tNNXXNNt!""!tNNX"!tNMYXNMt"!!"tMNXYMNt!"UU4&#"!"3!3265!2654&#!+++&>4632#!"&5463!2#!"3!26=%6>+"&/&47+A..AA.h  " b # @ $  _ .AA.".A  Q  C  # c # UU+!:<5463276#"&/.7>!54632#!"&=4632f#    "gUL # x " I**UUUU8U3'>'.#!"326?"'.'&547>7632"327>7654'.'&#oo1 ""  G>>]]>>GG>>]]>>GXNNt!""!tNNXXNNt!""!tNNXxx#+ ]>>GF>?\\?>FG>>]!"tMNXYMNt!""!tNMYXNMt"![+-Pp"&50494070"1*1&"3267326764''.'&'>7'3:3>7'6'>7&'.'&'>7&B # W>$  U@E89W1!<0?  jJJ^%EC$`LKn!!  ?0X  # F$%><-W  .-_%% C$$a/.  W,<?%%ED [ 4Z"&54632'"32654&'.'&'67>7676%&'.'&3:367>76764'&&&&>WW>>WW5E89WR45@D99VR45@ !!mLL`XFFf!  jJJ^XFFf! k%&&%X=>XX>=XF$%#$CE%%$$B./a$$#"[.-  .-_%%##[-.  +U+H#"&'.#">323267.#"&'.#"326=>323267>54&' 3+$@!&O0"5 3+$@!&O066$/$@!&O0]P 3+$@!&O0:J<  ]    + z   #q ^L$5Z67>"'&4?6&'&"'&6?326?64'&"'.?64'&"76?64'&"#,,]..'/)< # =5;406 $ .K   #8604;5= # 6# $22j44)= # # $22j44(= # =51, 06 %. #  $ 60 +15= $ 6",,\..&/(= $ @ #3CS4632#"&4632#"&"32654&7!2#!"&=46!"3!26=4&!2#!"&=46@2[o[[UUj'&"#5326764/.#"2?#764'&"326764/3'&"3126?64'&"53326?>54&' $ 77   $ 77 $  77 $   $ 77 ȁ # 87 #  # 77 #   # 78 #  # 77 #  UU !4&#"!"3!3265!2654&#+UU (Da"&54632"327>7654'.'&#"'.'&547>7632"327>7654'.'&#5KK55KK5,''::'',,''::'',G>>]]>>GG>>]]>>GXNNt!""!tNNXXNNt!""!tNNX+K55KK55KU:&',,''::'',,'&:]>>GF>?\\?>FG>>]!"tMNXYMNt!""!tNMYXNMt"!+s+C47>7632#"'.'&5'>54'.'&#"3267326764'E/.55//EE//55./E!']>>GF>?\\?>F;k+  5//EE//55./EE/.5,j;G>>]]>>GF>?\&" # (](8bq'./&"#?626/46?6&'!2654&#!"31'"&/&"#?626/46?6&'1!"3!2654&#'"&/&"#"?626/46?6!"3!2654&#'DD 3 : : 4 DD 3 : : 4 |DD 3 : : 4 ? ?, C ## C ,x? ?, C ## C ,? ?, C ## C ,W-@E%2'&6?'./7>3"&/&'.?'.7>?62#  PP     ) m 6 m )  T ~ ~ Trr  ##   U%"&/.7>3!2#  %h%   33 +m& 64'&" &" 3267 326764'Z44      555  5UU =2#1"&=#"&'&4?'"&546;6232+"&5'463127+  nb # on $ t # n[ ="32654&"&54632%&'.'&3:367>76764'&&&&>WW>>WWg !!nKL`XFFf!  jJJ^XFFf! &%%&X>=XX=>X./a$$#"[.-  .-_%%##[-.  UU 6"&54632#"&=4632"327>7654'.'&#+XNNt!""!tNNXXNNt!""!tNNX+!"tMNXYMNt!""!tNMYXNMt"! UU!2CTeu32+"&=46332+"&=46332+"&=46332+"&=46332+"&=46332+"&=46332+"&=4632+"&=4632+"&=46+*UUUU %4632#"&%"32654&#!"32654#$22$#2#22##22#+$22$#22##22#$22y2#$22$#22#$22$#2ZU x"32654&#"&54632#%'.'.&/.=4&'.+"'&3263>?>366?>/.7>?>'&&&&>WW>>WW>"&$#l(:(%# $'  Y ! "  !&X   &$ &%%&X>=XX=>Xl    % :) "   o'I*!PC  BQ!& I'+*:!"326=!#"3!2654&+!326=4&#!2#!"&=46UVUUk V+V * * +*!"326=!#"3!2654&+!326=4&#UVUUV+V+3Mg!"&'.5467>3!2!"&'.5467>3!2!"&'.5467>3!2!"&'.5467>3!2!"&'.5467>3!27"&/.546?>7>7623#1s  s  I  I  s  eeYY           +     + 276&#!"    E5Oi!267>54&'.#!"3!267>54&'.#!"3!267>54&'.#!"!267>54&'.#!"!267>54&'.#!"3'26?>54&/.'.'&"#31$s  s    I  Is   eeYY           +     UU'-;I4&'.?#";2654&+5463!2#!"&463!2#!"&463!2#!"&'1067>7>32;2654&+>?>54&'.#"01967/09    r    . r  M .        - 4-    3,!    UU%!47>763"3#&635"!FJJ>>JJFnU&22ZSDwDSZ22&wUU6_n}0101;267>78581>54&'041.'.+"'>;2+"&'.'.5467>72#"&5463!2#"&5463L  1..1  1..1>P//P  P//P  !%  %! !% l %! =F+$$+GG+$l$+F+U 7!5%!3#37#2sRs2ggllwRwpw4"&'.'&#".#";5##327>7654'.'  E)*.912J MllM急3,-BB-,3W)##3H107  jKKkA,+22+,AV+h> %7''77&?>762!"43!20i0-ix  &C\++V*g/i0hxD&  UU*!2654&#!"3!2654&#!"!"&5463!2VgVKTI67>'&'.'&6766767676&'&'&'&32+"&=4632,>?LMHO875'&@ATUO@c !O3@DC|34+,,?=AAx33!I@+,&#'@@TUOP775'c>! 1O*,-?@CD|33%'(:8UU3BQ`t!2#!"&546"3!2654&#762"/&4762"&54632+"&546;2+"&546;2#'762"/&4762762"/&4762GddGGddG#22##22#I 7 # U # + #  7 # U # + # 7 # U # + # UdFGddGFdU2#$22$#2b 7 # U + $ I 8 # U * # 7 $ V + # 6D0Nb47>7632>54&'&'..#"326?.51%"327>7654'.'#"&=463232#Q66>4]&+''00d21(&]37d'))@  09*0)*>>*)0/**>>**/@@#>66Q!  8e'&#!#)((33j33( (uD>**//**>>**//**>C! x#54&'.#"#";3267>54&'.'.'&>7>32.67#3267>=3267>=4&'.#1#";267>54&'.# 612FF216 #  #  ##    0((d65e('0      c   #  #@#  #@#  #@F216612F@ #$ $  $@  6`$$''$$`6     E   $#  #$  $#  " 0S26=4&#"3267>/.%326?6&'&8327267>5./81'&"#"�1#*#"&/7>7201>?06'.'6&'.'6&'.'6&'&17'817'&181676&/89."178167>'4&/&13>7>5./8181'&1@  121 5[  .C           3,,     !w%䡶 )D?#   B    #C  \  E:  $    T T 'D CC M '9            +  . * # `iǢ "6   8    8   N  1     (w'.'&547>76B$$#&%>>%&#F!!G!"$ )( $u 75!!=!!=!!u^^^^^^UU-D[4632+"&546;26="&546;2#"&=4&+2+"&=4632;#"&=46;2+" ?,U U% U,? %U* U,? %U ?,U U% V,> &V ?,U U%U >,V V& U,? %Uv 2?6&#!"%'&"3!26  M    O~0Ha>327.''">7#.=4'.'&'#5>327>767'#"&'537.54673'Q*H W>/.-T%$%H2< '$a;E /MW> /.-T%$Q*H < '$a;E /H2a;D /G3< ($ϮW= /-.S%%Q*I G2@ '%a;E . 0-.S%%R)H W>++>KP^l>32181+"&'81'.5467;267177>328178146;2+"&%46;2+"&&&.A-@u_b&&&&u"!U ,2#!"&54635"3!2654&#!#"&546325KK55KK5+UUK55KK5U5KV+U)#"3!2654&++"&5%2#!"&5463!+V+%&+5KK55KK5VU%%UK55KK5U5KU++3#!"&5463!2'!"3!#"3!2654&+5!2654UV*5KK55KK5UVK55KUUK5V5K'_< vvvUUUdnUdkUUXUbUUW\!UUWUUU][bUUUUU[[^@UU(W [UUZ+EUUUVKU6 "(uU+U d*`d0hZj"l * v J H `(r>R^T~:,&V 4, . !!"#T#|#$$v$%%&r&'((")*)*0**+L++,D--.d/00,001d22D22v { ?   ]     I  ) g 4fluentformfluentformVersion 1.0Version 1.0fluentformfluentformfluentformfluentformRegularRegularfluentformfluentformFont generated by IcoMoon.Font generated by IcoMoon.assets/fonts/fluentformeditors.eot000064400000030724147600120010013460 0ustar0011 LP&f"fluentformeditorsRegularVersion 1.0"fluentformeditors PFFTMT'0GDEF).0OS/2O]XVcmapLLgasp0glyf6)headd6hhea<$hmtxfXlocaXRmaxpy8 name-postݨ.f&_< ڳڳ  .(@LfGLf PfEd@Az.  n(Rs%!@@nzKzAa# $%&'" !# $%&'" !(d   " $ ,TPx )'7!%!!73#!!**T***i =h,3567676;2'"/&&'47>765&'&'&'&763?64&5'&?5#"'&5&'4&5+#&/'&'&7>765'&/&'&76;1>7676;2'2376'&'&'&76?654'&+"'&/&'4'"+"3?6/&'?6/"/32?41?3;%76'&?#/'gT" W " " 9Mey y/ j   { DCV0 ' S h? $    M  BC  M  " ?hD"  &0Vy&z.//p'nn+q+*Aj4 ( C ? 5j abi)8XX M`0d Y PA10?" w ;o  Q 7?@ t01@ * 7 *' 5j 2 'v#?a X\vY  ^Q v P P Q"!'%!'7!#5!!533#'3#'!!%'77'77g%s%%%%%%CQG0G0"(*<h\$+N5pN5pP'/77"'#'3'73>233#% 7& "&462&"264KR[,zz,,zSSR4%%4%4jF'l399348dde$4%%45 ZZ&'47676;636/'#'&7676'&"+"'&=47667676'&'&'&=47637676'&'&5#7676'&'&#76'#3'&47>3#"'&7=&76367676'&'&'&75&763&5&7676;66'+"'&7676&+"#'#;276/&'&766;2=7676'&'&"1=4'&+75656'&'&#"76'&#?6'&'&#5337676'&'&53'&5676763676/357676'&'&5#?676'&'&2#6'3&67676y'#  Q$  |  4  }    Y y ' ypCp      K")& 9 $   {       } |    :%"$b   ^    p'#o#  iY        Y &%    V2'Y   & a  ,+  i  !%    _  0.W, A ))  i     > !4* R       A   Y %. >    i .. n 'i-+ s x  )" h  #    L 21 E,4K7&67676767#"5&'.'.''4'54'5.5'&'5./&/#&/"5&'#&'#&'#+46757546=4654'&6;'35'..'&/&/ .5&/&5&5&5'&4'4/5&54'=47;235&'7>32'BF>= 4 WmJ     4  F5 %(,C9y 5& jF 1 EfPB(&H 0 wXIf            *G   95    6L 9}* &DY2  `D o 7'57#3'55#s<py.$EE$"0"EE#,53+327+676;546;#"'&=3j ## j  , $$jt O 1 " 8GLVdr%32#!"'&55#"&5>763!223767>;4654+2;26367+"3&'"32+"7437#"'4;2#'32+"'"'&637#"'&7636;2+#"'&6;2#*#'#"'&;2#'32+"43#'&7&76;2''3#'46;2'##Q "(6    (+Cuuw,xw 1}>  wu -iv c  & v N4h2   2I"m   3 NM   n'1  I    I  nMX*""#&'.'&5&76/&#>&'&#"'&754'&5467276=&74&#726#'&'.'&7&76'.'676'&'#'"'&7=#.4673=&753"2#'3726367>'.'&#/=&7676'&/54'#33'&'.'.5'2364'&/&3"&'462'"32654&#  !4 7 #4  2@.F 8. #    %7       0(A .  K/ :4 2   4 H-D   ' 1"     6 0+ !G/ 1#$::\H< %1 w 4$  !0'-'%9$2" " DIA/   +D*" :  8+*3,7>  !/Q7   7:=7'&5476=476=63'"'&=&'=7'7'Nb  q V2p8 (تUl|  _6 <  z> )0JZ%"#"'"'&'&'&'&#"'&5476767676%&'&'&4767676325&327654'&&#?@#"!!ED" "  `'*)B      8 /()()*m"%#!'&=4763!2'7!'+'7!75 3   ϣ?   ]ann mq  #'7!!'7'7%773#!!3#3#%3#-`%NNIItNIII+E c NPNNNN$NNDDZZZ u'8HZl#!"'&=4763!2!!$&=46;2+'546;2+"+"5476;2'&=&6;2+""'&=476;2#6&=476;2+&=46;2'#"7&=476;2+" (9s/502ݚ<'b>=<?('3#3#'"'&67>3:;#"+&7##F##? %N72<4e'00A9os3u.! #&`*i #R;JU/&'&'&547676326767654'&'&>"'&54763626'4&"DA  A!#"  888  <1&&C!"$3261())$4365""!Cu6,#$5 &)%6 %  | sLPa%#"+"&=#'&'&546323232323222#'35#;'&?## Z xgjjv]R  ($BB?w9:R.?)"&5463!2"3!2654&#"/&7636'2?'54++>>+.+>>--.-- o  o pp>+.+>>++>---.- oo pp "&462"264"&462&"264jԖԖN88N8D6''6'ԖM8N88Ni'6''6#%#"&=33!>=3#463!!"'7e&4&%45%&|M4&LL&%%5Y%4%{n!  ##5335##5335##5335#!!!!!!pSSppSSppSS444noS݌oRދoSG 7'7''7'77'7w3GNĀl3Gw2Fŀl2F%)!!5)5462356&'&"Jg|VY~Y!D!k?YY?NN!;;!AT)"'&=4763!23!26=7!"&=476;546;23546;232%!54&+5##5##"  #} L q  % Z % #j <=   #-   ""  ""  "#"  =<<< =%2#!"'&=47632!5476%"'.#&4?/#"'&5" 6  ][ 67    \\ 868!6Vdt#!"'&54763!2!5#"'&'&'&/.'&'&!>26367676?676?'&747632"7276'6'&#" o   l      }(!!   *: "    -      M     ; )d   #9m./#3276767676546=&'&'&'4&=67#"#3?326'./>?674'&+/&'&'&3'&76/3?Cz3W P4=5*b 4K"-7,;}HHSC * 65 *C $-%$ $%-  0.Q  41gC+  Hw/<"=1Z7&5K-8 AA*  * '' V, , ++  !!7##3#!3*iuu2z*xII #.7'#"&'&676753 @Ȥ'54Y25O{DFG19l;MvVV6/bLM""#= lp756;7+"'4&=6;465>7>3465>7632#4##;6+'.76767#'.?67#'&737R cc e  Z*)cc  f   Z f f Q  ; P B"  I Q  >V$  d ff M)-17D2#!"'&547635!%5!3#35353###3#53#537#53#535353##fff3]=MM͚I #/;GS_kw7+"=4;27+"=4;2'+"=4;2+"=4;2'+"=4;2'+"=4;2+"=4;2'+"=4;2+"=4;2+"=4;2'+"=4;2+"=4;2+"=4;54;2!#!"'&54763!2[%@@%%$m$mnII@ %$ $  DEDENENNeE  %X7#"'&54632#"'&54632!2#!"'&547616765'#"'&5476;2!2      %2:  IWI    '"    @`<#32+"&=#;26=4&&+";&'#"&=46;2354q1  p 0 (p!..H4p"//"/ p 0`  /! ".00." !/  @@ .26"264"426"264"42%&'&#2;5#"/%''7 # +  0p   "0.nIH%4'&'.'&/4#"3267"'&5474>76767676762 +*z*+           3<++++<+$       # $F, #S " 6 XN "   "/fluentformeditorsfluentformeditorsRegularRegularFontForge 2.0 : fluentformeditors : 8-4-2020FontForge 2.0 : fluentformeditors : 8-4-2020fluentformeditorsfluentformeditorsVersion 1.0Version 1.0fluentformeditorsfluentformeditors(      !"#$%&column-2ratingcheckable-grid hidden-field section-breakrecapthahtml shortcodeterms-condition action-hookstepnameemailtextmasktextareaaddresscountrydropdownradio checkbox-1multiple-choice website-urlpassworddatefilesimagesgdpr three-columnrepeatnumeric credit-card keyboard-o shopping-cartlinkios-cart-outlinetint 'Eڳڳassets/fonts/fluentformeditors.svg000064400000072313147600120010013470 0ustar00 Generated by Fontastic.me assets/fonts/fluentformeditors.ttf000064400000030410147600120010013456 0ustar00 PFFTMT'0GDEF).0OS/2O]XVcmapLLgasp0glyf6)headd6hhea<$hmtxfXlocaXRmaxpy8 name-postݨ.f&_< ڳڳ  .(@LfGLf PfEd@Az.  n(Rs%!@@nzKzAa# $%&'" !# $%&'" !(d   " $ ,TPx )'7!%!!73#!!**T***i =h,3567676;2'"/&&'47>765&'&'&'&763?64&5'&?5#"'&5&'4&5+#&/'&'&7>765'&/&'&76;1>7676;2'2376'&'&'&76?654'&+"'&/&'4'"+"3?6/&'?6/"/32?41?3;%76'&?#/'gT" W " " 9Mey y/ j   { DCV0 ' S h? $    M  BC  M  " ?hD"  &0Vy&z.//p'nn+q+*Aj4 ( C ? 5j abi)8XX M`0d Y PA10?" w ;o  Q 7?@ t01@ * 7 *' 5j 2 'v#?a X\vY  ^Q v P P Q"!'%!'7!#5!!533#'3#'!!%'77'77g%s%%%%%%CQG0G0"(*<h\$+N5pN5pP'/77"'#'3'73>233#% 7& "&462&"264KR[,zz,,zSSR4%%4%4jF'l399348dde$4%%45 ZZ&'47676;636/'#'&7676'&"+"'&=47667676'&'&'&=47637676'&'&5#7676'&'&#76'#3'&47>3#"'&7=&76367676'&'&'&75&763&5&7676;66'+"'&7676&+"#'#;276/&'&766;2=7676'&'&"1=4'&+75656'&'&#"76'&#?6'&'&#5337676'&'&53'&5676763676/357676'&'&5#?676'&'&2#6'3&67676y'#  Q$  |  4  }    Y y ' ypCp      K")& 9 $   {       } |    :%"$b   ^    p'#o#  iY        Y &%    V2'Y   & a  ,+  i  !%    _  0.W, A ))  i     > !4* R       A   Y %. >    i .. n 'i-+ s x  )" h  #    L 21 E,4K7&67676767#"5&'.'.''4'54'5.5'&'5./&/#&/"5&'#&'#&'#+46757546=4654'&6;'35'..'&/&/ .5&/&5&5&5'&4'4/5&54'=47;235&'7>32'BF>= 4 WmJ     4  F5 %(,C9y 5& jF 1 EfPB(&H 0 wXIf            *G   95    6L 9}* &DY2  `D o 7'57#3'55#s<py.$EE$"0"EE#,53+327+676;546;#"'&=3j ## j  , $$jt O 1 " 8GLVdr%32#!"'&55#"&5>763!223767>;4654+2;26367+"3&'"32+"7437#"'4;2#'32+"'"'&637#"'&7636;2+#"'&6;2#*#'#"'&;2#'32+"43#'&7&76;2''3#'46;2'##Q "(6    (+Cuuw,xw 1}>  wu -iv c  & v N4h2   2I"m   3 NM   n'1  I    I  nMX*""#&'.'&5&76/&#>&'&#"'&754'&5467276=&74&#726#'&'.'&7&76'.'676'&'#'"'&7=#.4673=&753"2#'3726367>'.'&#/=&7676'&/54'#33'&'.'.5'2364'&/&3"&'462'"32654&#  !4 7 #4  2@.F 8. #    %7       0(A .  K/ :4 2   4 H-D   ' 1"     6 0+ !G/ 1#$::\H< %1 w 4$  !0'-'%9$2" " DIA/   +D*" :  8+*3,7>  !/Q7   7:=7'&5476=476=63'"'&=&'=7'7'Nb  q V2p8 (تUl|  _6 <  z> )0JZ%"#"'"'&'&'&'&#"'&5476767676%&'&'&4767676325&327654'&&#?@#"!!ED" "  `'*)B      8 /()()*m"%#!'&=4763!2'7!'+'7!75 3   ϣ?   ]ann mq  #'7!!'7'7%773#!!3#3#%3#-`%NNIItNIII+E c NPNNNN$NNDDZZZ u'8HZl#!"'&=4763!2!!$&=46;2+'546;2+"+"5476;2'&=&6;2+""'&=476;2#6&=476;2+&=46;2'#"7&=476;2+" (9s/502ݚ<'b>=<?('3#3#'"'&67>3:;#"+&7##F##? %N72<4e'00A9os3u.! #&`*i #R;JU/&'&'&547676326767654'&'&>"'&54763626'4&"DA  A!#"  888  <1&&C!"$3261())$4365""!Cu6,#$5 &)%6 %  | sLPa%#"+"&=#'&'&546323232323222#'35#;'&?## Z xgjjv]R  ($BB?w9:R.?)"&5463!2"3!2654&#"/&7636'2?'54++>>+.+>>--.-- o  o pp>+.+>>++>---.- oo pp "&462"264"&462&"264jԖԖN88N8D6''6'ԖM8N88Ni'6''6#%#"&=33!>=3#463!!"'7e&4&%45%&|M4&LL&%%5Y%4%{n!  ##5335##5335##5335#!!!!!!pSSppSSppSS444noS݌oRދoSG 7'7''7'77'7w3GNĀl3Gw2Fŀl2F%)!!5)5462356&'&"Jg|VY~Y!D!k?YY?NN!;;!AT)"'&=4763!23!26=7!"&=476;546;23546;232%!54&+5##5##"  #} L q  % Z % #j <=   #-   ""  ""  "#"  =<<< =%2#!"'&=47632!5476%"'.#&4?/#"'&5" 6  ][ 67    \\ 868!6Vdt#!"'&54763!2!5#"'&'&'&/.'&'&!>26367676?676?'&747632"7276'6'&#" o   l      }(!!   *: "    -      M     ; )d   #9m./#3276767676546=&'&'&'4&=67#"#3?326'./>?674'&+/&'&'&3'&76/3?Cz3W P4=5*b 4K"-7,;}HHSC * 65 *C $-%$ $%-  0.Q  41gC+  Hw/<"=1Z7&5K-8 AA*  * '' V, , ++  !!7##3#!3*iuu2z*xII #.7'#"&'&676753 @Ȥ'54Y25O{DFG19l;MvVV6/bLM""#= lp756;7+"'4&=6;465>7>3465>7632#4##;6+'.76767#'.?67#'&737R cc e  Z*)cc  f   Z f f Q  ; P B"  I Q  >V$  d ff M)-17D2#!"'&547635!%5!3#35353###3#53#537#53#535353##fff3]=MM͚I #/;GS_kw7+"=4;27+"=4;2'+"=4;2+"=4;2'+"=4;2'+"=4;2+"=4;2'+"=4;2+"=4;2+"=4;2'+"=4;2+"=4;2+"=4;54;2!#!"'&54763!2[%@@%%$m$mnII@ %$ $  DEDENENNeE  %X7#"'&54632#"'&54632!2#!"'&547616765'#"'&5476;2!2      %2:  IWI    '"    @`<#32+"&=#;26=4&&+";&'#"&=46;2354q1  p 0 (p!..H4p"//"/ p 0`  /! ".00." !/  @@ .26"264"426"264"42%&'&#2;5#"/%''7 # +  0p   "0.nIH%4'&'.'&/4#"3267"'&5474>76767676762 +*z*+           3<++++<+$       # $F, #S " 6 XN "   "/fluentformeditorsfluentformeditorsRegularRegularFontForge 2.0 : fluentformeditors : 8-4-2020FontForge 2.0 : fluentformeditors : 8-4-2020fluentformeditorsfluentformeditorsVersion 1.0Version 1.0fluentformeditorsfluentformeditors(      !"#$%&column-2ratingcheckable-grid hidden-field section-breakrecapthahtml shortcodeterms-condition action-hookstepnameemailtextmasktextareaaddresscountrydropdownradio checkbox-1multiple-choice website-urlpassworddatefilesimagesgdpr three-columnrepeatnumeric credit-card keyboard-o shopping-cartlinkios-cart-outlinetint 'Eڳڳassets/fonts/fluentformeditors.woff000064400000022460147600120010013630 0ustar00wOFFOTTO%0 1CFF D!q+FFTM$T'GDEF$',OS/2`H`Q_cmap head.6khhea8$0hmtx$=PgmaxpX&Pnamepost4 xc`d``⓫Bm2p31˷ ` S xc`d``b=&cb`d@L]%P&xc`fb`Ø2H20001q2#HsMap`pdb|@2 Qx1j0?%NJI)d,ҎBCk 18(Uz^'G[B}e xEX9/Ga"y+r"O 3y\TɽLC*G֑|9;'5!WbR2r 59kqoiَ{:{?kY^X txc`f@ hx}z U。1 ( $P HDEU3W޻>xU[/[b = |4<h @`$(+P ^ a_~c0\7?#@G;oy@=ݻ:7 hO[֖]=}]z:z7vu⒱eJ}mݝ-mm-}mC}-_ֲ{wO[ookWg_]=-]lڼ@_nml{7׶@wKo`W-}m{z-{zki{ںZ:;z­=-[[zvo~ pHZw ܹ?7wmHb_s:JA9 4f A' `!X `%X ւxp"x(x8x$x48 Ng|ZUO]݆+V]y|ˋs\7ׯ{>s_y=Wh5wn,m|uo&?j'ML@}>})~G;X/^-.mODEVdUdMeC}rܯ)IUȶF2tNZoT0{=+jd0rn9U ]jˌ&ZV@ )*<\Hqa\5egI +DV/{S\n)(,0l  L UVVhbM5:*;O!8S~L 6Έ9]ÀsR{ vHĻYa0giiYNΧ0b+1aX`kbʦd  f~35ψU"VۯEǕeIG {\ , Vh RlسлЃsg@PՑyHo& I[&9uMS![ T%NU}զO޳AΪO'Vڳ(Q3|$|4|8H4j= Yss_|XQ+bEHa?=uk%H` :NP_aiLQVCLyL8=2Δ=O}38u%s y(qU'P_75~d|ӻQUP&?QǷ6~1eMUDXVt?+Ʊxo^ʫ9[ϓSߜ>鬐׈YW23+U$$3[fHBr]͘Y9Hcnt^вIN.oaXqt=]}'O׹KpVЛ{=I$m^ނi$:ZE2Ґ2,0o!ag^yymܾ3^nqzzakB{xk b"K$D\)+͍O$jYAC6 -jV K03n}KN L#J2'&(5z$]4V,TnhTV(EhR`|)QH#bTN @Iɘ!"TSC74 LTXUy8:isX+Ej=vVfm,ՒzQ&%%(E}f8 Xe w"cBѮ5 3J~CYf4u,W l٨cY.$xnDDV$P@V:+B)v8lRFLLJfRPf $WKrO:3a-'"P3sr)/2W19)p\ Ze̥͘P2/i^IXi3"Kݴ!آ\Ҋf.Ǧ̼4#^'</1l-Ur?D1Kj?+zK]V/#h<= D,#$h,%cRM#䬔l۱ (V(Ńzg[N\hE"ZFHbFK gTA-m[YЋ2(fc)'dy;^DP~JCwj?^ⅎL :Pu*|4ՏGC2_HMB\LMJEKњz! eh1#NtBLI H$fCE {B5tyΙ{Tb: eQJIq-Ex!M ReC{rYWtt:w%1ĄRcˇ)aRMWőAc(Pww Kɢ빂Yb%U;+Qx*j@̊SDSxl5hi+Q;H&Cr$ )6WBƌLmT͍cڸPN TJ*UYCÕlҫ'CjBc!TAWZ~^^ ep61)N \rrY+ai,i#i0RC !pyWLAot)GB"tzC/cZ*Z)Ak؋it_pԀsWÙ紜SJZI*o{>9#'uww; 1X|Q|(ѰD5$*o|Ҝƈ91gb&٠E)x<;TZ2jA)@^m'^G"41r.1{hGGLH EGGaUBJDQ ot|sԞ]65Gg ʈq=hɑmآMh*^Hb]`srJi2Ί>xO}ϋQ!tC7D;?=+{ļHrC]ᆂƪ1H=0L gɂnfx!NvAj+5eQwèh[THAWBz~(8aw" %/BoGKe]`|%4ߖAR"d0Tǖ-rB2͈b'~?U㪫3i-&_L]s3]'tx[b^sW7xibޥ;ݽ0-4Q 4i_BkTLrt/_ù׹n yEId=nX5c2D_I:vF۸?{6AC m-a(Qc5 ,7ޱ0B#I{.0Rӛr) ZUtgCSZ^FC-/Jyy ԶK$^8PRx>%#=!mhԈe3jI,eo˭iR i`x*xX}~7g TRBUOա(Ռ P29H6{r!|љ x]ZRrok6>mMVlxI} [.v =ievE44D~ZT}N{QdA@ y֘9Ug;7GIi#cڕ9wM8Wͩy*w LDx^㶅RA:S!+fA.Y5!mlɔ4B3$Ӎr,vjh4*x/J(vF7c'8it uCR/MctH: &_{G#rVvNLf|19hQ$l_bt(HkJoo?t\JCԹYڢ=7>>;#=.TZ%"ݦ:k}͌E <y :9ဗyQ5hUY^YCgghǝ񉹹֙Ogi., C1攫Ƹ5>4RD"Dd fK3($)A#F碆~ї)% #G3#N"FpCLn{hn=|8q:bIja!-X>V`1!j3bD{|TIXL51b;d9]SnԎ$Gdž=pzR=CC?X%ު+smAn[ ޣL㓿?1.o޸`wqN᰷RO7s+s+g{x^rs˹̽.w2X7.厐o1Q0+] jB6uhuUbd>;=Ȟ &Lʅ"U[I JBzYrr2P?"ֱ?uIMN?UEhъm Y!C>JC)6(#޽otaeڻ{0ytaBȊ܌ CEՇθwzDA/ξ]qw M&mL8wL+X%5{_oc- uݸnU|Ryp3_V_ShUx^k1/kd8tvv]Pz]s}VA8niI/Ymm }cZO.8Rap+׎&GgFK ȩ} -5һ|7r0ڟNFLF"SѩTr29)C̱(qjjT*U R$,E9C=$?;`"ywCTa(b!˱Jl,30Iy2u\V:ΊE(iG'&aG4^ 1o@Iz竌 *yZ3TIcM@ZF}g5/ړXȊN^UDǢ3 uUx>Ujr?N)t>`:R.[?\ G eeڔ :Ruϟ9|g6yυ>f9v뙇o6υN-[hQK8BN.N57xSm6q/q/a9,b"Wk c4.al!K7A{5ʚhbRZEnDU1 mkBĊ^@ωF7ಘ6<|z0_XLWpۛ˼6v/7{?jxguz۶]m;f K{v٥%?'N|>u@pmP{bdMwgܤ mom}ٽ͹oGƽ{kUѽsfvzO?ІWaU w᧟Y)6u/Nދ}a%:vya|݂fo[ü=ȹ_oo-Xpmֹ_ٙc>z]wtzU8rÏ: ;ܢ>BnCOuǦ5 [NMWG1WhEX~wr#MB-X2gp[AcS:B@7VÁBGp`#DRbXf@) ,7Bpl۲J/~ս^U\)~grq+»|,FXatӝNwIwpm.֣}1F'bVy^f(,O|ú]ޝ\96ʏ Xf4^Fg gX,Qå89Nc`y1;+&AT3 D6YI-?Y!P@jF+Mλ~oaZ +ZDh{a1aA^ZPD-"Ӵ$XcGN>!۹[KLnr{'~ V8³+գcO--~mT?\4l9 S_`AbK [8 1^NzLO*=L'׆VԋƬ1cjT1ŵxJFbōT>$E!J;X鼘[p  nlFmHlȷ]M8%S»r,ĬD>UHکBp;U2qI*'orof?$>=E.2[V*hVF#"9;{U*UA$2W 5ҽ۰8?;$"WWV=&7ua*7w,i:dh~[SCTEhg;Jo{۸ ~/*zu?EM=֝w'+{!nջCK /glP 2r))#DB.a<8ntwjdW>{ňUkJМ'i>8ӓ?Y6V6=}eI'Z.lnܛ  Y`)+,G3 i#L0}IUa?pO,l>Ҿ&ŵk<>-ed~vmrBr<0w@;83 AB=pޕ}`r~ڹw |˓KOҗbRnW*$$/JByI/fb)l/N6.(qe#JBsBvq Q-DfReCEex>]~}gn"ٜ{7))㕑e1'" q# =e;!t+h@7C%t(e|уS0 hs]`Qu!*J)jDfLl}$҃dQPjH&(IFDzLtb$LyN8.^wkMZW|  ^v]#+g뼆{5(+J_?lk nG-hkPrwf(%%MQr3'Kh[>xc`d``b1 fb`BU f5Txc```do]w[oYxcb```bF f|0 A p5 r@" ii assets/fonts/fluentform.woff000064400000066150147600120010012242 0ustar00wOFFlh lOS/2``cmaphTTVgaspglyfeeULheadgX66$ zOhheag$$7hmtxgͼ4locaimaxpj| namej%postlH 3 @q@@ 8  q 797979UU0!2#!"&5463"3!2654&#!463!21#!"&51K55KUK5V5K5KK5+5KK5UU(%"'.'&547>7632#64/&7XNNt!""!tNNXXNNt!""!tNNX***VV*"!tNMYXNMt"!!"tMNXYMNt!"acl1111UU/;#"'.'&547>7632#"&'&47>32'2654&#""!tNNXXNNt!""!tNNXXNNt!" /}HH}/ /}HH}/5KK55KKYMNt!""!tNMYXNMt"!!"tMNX  0770  /77/K55KK55KdG@LXg62"/././4&/&4?>57>?>?2654&#"#"&546326&'&67$^$6 G/B..B/G 6$^$6 G/B..B/G 6B&&%%%&&%&  #  # G/C/G 6$^$7 G/C..C/G 7$^$6 G/C/%%%%&&%% #  # UU4%"&5467'#"&'#"&546327.54632>32#5K    K55KK5  K55K  5KK5UK5))5KK55K*5KK5*K55Kn+ &62#!"&726=4&#"2654&#"%%#$JJJJ$#o@@@@mUU ##"&54632#"&54632#"&54632U2##22##22##22##22##22##2$22$#22$22$#22$22$#22UU/<GR_go7>;232#!"&5.=46;.546;232654&+""3!5!!!26=4&#!';'.+";!3265!3/->-5KK55KK5->-/3\9  yV 9  V?>, K5*15KK5K1*5K ,>?  U**k  V+dU%E#!"&/.7>7>54632%&3!26=4&/54&#"'.'A% s/5!$+a s>%5K7*J55K/ =   F -/"3,!&K5,E =5JJ5F k-)DH37>32+32+'.?#'.?#"&546;#"&546;7>#$,$QlPf,$,$QlPf,PP)ssssUU 2=2654&#"3%3!2654&#!"7!2.'&4637>!"&=#22#$22$K5V5KK55KV{'u%W* ' e2#$22$#25KK5U5KK5+ +,j/!{++(32+32+*1#"&546;#"&546;:1VjIJjIJ+UU!0@Par2#!"&5463!%"3!2654&#!463!2#!"&5463121#1"&5463121#1"&53463121#1"&513463121#1"&513463121#1"&53463121#1"&5463121#1"&5!463121#1"&5463121#1"&513463121#1"&513463121#1"&53463121#1"&5+V5KK5V5KK5UUK55KK5U5KVX5 1H&" 27%%62"'%&47%>27%6"'%.7>27%6"'%.7,.,.,_#L#-88#L#88- UU : UU :mmm nxn nxn|zz y y yy y y ,;463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5VVVV,9EQ463!2#!"&5463!2#!"&5463!2#!"&5#"&54632#"&54632#"&54632+VWU(Xer>54'.'&#"1>7>7>781"'&'.'&1#.547>76329%2654&#"37#"&54632F//55//F  D D  C W)D#%%>#(]?>GG>?]  K55KK55K^!R.5//FF//5.R! "%X'(W%# 6%*q1*00Q,n=G>>]]>>G&H $+5KK55KK5UU4>O>54&#"326="3!26546'.'&#"74632!5463!2#!"&5+2##25KK55KK5:'',,'':UK55KV ($22$( 66JK55KK5U5K+,''::'',++5KK5++UUU ,"27%.#!3!265"'%'463!2#!"&5 9  9 *V N VK5V5KK55K  {[P5KK5U5KK5UU(2";32653326532654&#!3#"&54635/.FF./5U+UUUGddGUE//55./E+UdFGdU 'N"&5463227>7654'.'&#""#"&=47>763!2#"&=4&#!5KK55KK5,''::'',,''::''TGdF./55/.FdGK55KK55KU:'',,''::'',,'':dG**5//EE//5**Gdbw#(a}6?6'.'.'&676'67676&/.'.'.'&6?6&/.";2?326=4&+c  (""9:#  X)p.2yABX$? @)0##""A+,,R%$ WH #/ @M!.w $ w2$j  #99""(  @ ?$XBAy2.p)X%$R,,+A""##0)!M@ /# HW w # x/k#2UU8<H%"'.'&547>763227>7654'.'&#"35764/&7G>>]]>>GG>>]]>>GXNNt!""!tNNXXNNt!""!tNNXU***VV*U]>>GF?>\\>?FG>>]U"!tNMYXNMt"!!"tMNXYMNt!">lm#cl1111U+UP463232"'.#"326762+"&'&47>54&#"+"&="&5463546;7"+"'.#"3267623463235"&54635#"&'&47>54&#K55K#2      2#  $25KK52$      K55K5KK5 5KK52#  #2      2#K55K#2+    5KK5K55K   Ww867>76'&2367>?6&'&&'.'&'&67'(l?@AIk> *A'',RPQ226@32> _?% 4&!!7  N@?RU2!76&'&8183267>/!2654&+ #   պ#  #"4+W&"#"326=47>76;2?64/27>76=4&#"+764'&"2764/3 # ">76Q:'&-" # [[_>76Q:''," # [[ # "4 # "R66>++,'':" $ [5\LQ67>**-&':" # \5\ $ ",;463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5VVVVUQEer}%32"'.'&6367>76762465/+"&'0&=467&67+"&'.'&67>7>702#"7.'154&+#"&54632d-- 6 6 2F-{0v1{-F2 Y v &&F F e2##22##2U8  8$%&C C&%$"\1J3RR3I0Y"M30`&  '_03M= "" =a/0]/a/#22##22#\ 2654&#"7#"&54632/767>7>?>;2?6/&+"&/.'.'.&/&677637>7>7>7'.7<5&6?'&'.'./#7>'<56&/?&#22##22dGGddGGd 0D%33$-5-$32 # # 23$-5-$32 @3%D0 5 0D%3##3%D0 5@##2 # U2$#22#$2VGddGFdd:2$2 S   2 2   .7'##'7.   1!!1   .78. 3$11$3 .'CB'. 2$28'CB'.S.7'##!1`267>767>767>54&'.'&"#&'.'&67>767>767>762& M3034m:9 P8566l676D*((M0X543i66;L;$%%E; 7d5''U55QN  !"=133c/.)l?UUIY!2#!"&=>54&'54635"3!26=4&'.5467>=4&#!&".'>77&"#"?626/&6?6&#'"&/V&//&&//&5KK5V5KK5+    ( <   1  1   BN/0NBBN0/NBUK5U (' V5KK5V '( U5K      j : $$ : UU=FR2#"&=46332#"&=4633232+#!"&5#"&546;464&+"!#3!265!5K+K5V5K+K ++UK55KK55KU+U 97463!2#!"&2327>7654632#"'.'&546+:'',,'':Q76>>67Q+<,''99'',V>66QQ66>VWw8&'.'&76"#&'./&67667>7676&'[((k@?AIk> *A'',RPP326@32> _?% 4&!!7  N@?RU<"/#"&5"'&4?>3223!26=4632#!"&=463 $ ww $  K55K $ w.w $ wVVV5KK5V UU $8LZkv#"&54632#"&546323#"&54632&4?'&4762"'#64/764'&"27&676&463!2#!"&57"!54&#!3!265!+L ++ # I I # ++ # I I # JJK5V5KK55K*VV # ++ # I # I # ++ # I # I 5KK55KK5U+DD|+#"&/##"&'.'.'./#"&'.5&6?.5#"&'.5467>;5'.5467>32!7>3232!467>32 kc  _   >    X  ak  kS  SS  Sk 6 6 *Gf  ` I e  oC'  T  UU  T  88+U 97463!2#!"&2327>7654632#"'.'&546+:'',,'':Q76>>67Q+<,''99'',V>66QQ66>V++(32+32+*1#"&546;#"&546;:1VjIJjIJ+UUU/7546?>=!%&5'.=463!2VV $2$$2 ##  BB ł <Y5B#22#B5U;T#"3!26=##!"&546;59./.'9*+"3!265<5!"&546;23;#++5KK5U5KU+U`)5KK5U5K2#)K5U5KK5++V+)`K5V5KK5K*#2U!A3!2654&/.#!"546+"&5232+#"&=#"&546;546K55Kv/u5K M#2UUUU5KK5/uK5*L 2$UUUUUU-D[46;2+"#"&=;2654&+"&=4&#"!+"&546;26=46324&+";2326=UK5VVK5VVVK5VVK5VV5KUU5KUU5KUUU5KUU]S>e4&67>7>76&+"'.'.'&67>7>7>=26'.'.'.'.'&;.W&/I 6((e78r45X   &"  *>#5   X55q88d)(6 H0&W- !& 4#?*   +O232#"&=4&#!"+#"&=#"&=46323!26=4&'%.=46;546UGd2##20'AQdGUUGd2##20'AQdGU*dG++#22#)C ]pEFd++dF++#22#*C ]pEGd*U4G463!2#!"&546;2+"&51./.'1!"3!265!"&5463!;#+VU`)U5KK55K2#V)`K55KK5+UU$2+U4G463!2#!"&546;2+"&51./.'1!"3!265!"&5463!;#+VU`)U5KK55K2#V)`K55KK5+UU$2+U4G463!2#!"&546;2+"&51./.'1!"3!265!"&5463!;#+VU`)U5KK55K2#V)`K55KK5+UU$2+[3(<P[a'&"?>?2?64/764/&"7627'&"7622?64/'&"764' 7z%j&x&&y^-  ^x%j&x&&xm%%=%j&l = # <z $ y  #  $ y xl< # =y< vyz%%y%j&y^  .^x%%y&j%xl&j%<&&l; # = # <z y #  x # x!< 7654'.'&#"3&4?'&4762762"/"'XNNt!""!tNNXXNNt!""!tNNX bb $ bb $ bb $ bb $ "!tNMYXNMt"!!"tMNXYMNt!" # ba # bb # ab # bb w%%64/764'&"2%64/764'&"2 #  # #  #w # $ G # $ G t"/&47622762t %j& # # n #  $ && # n ,;463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&5VVVVUU"?J2!5463232#!"&546;5463!#"&=#"!54&+#"&=3!265!+V+5KK55KK5+++VVU+++K55KK55K++++++DUU&5%&5463!2/&"654&#!"?463!2#!"&5͉//83?K5V5K?f*fDg/GO*5KK5OG/g+++*746;2+"&57"32654&+;2654&#!R:,''9$1=:'&-:Q 5KK57 5KK5:R:'&--Pc<,'':Q96K55KK55K+++*746;2+"&57"32654&+;2654&#!R:,''9$1=:'&-:Q 5KK57 5KK5:R:'&--Pc<,'':Q96K55KK55KU7#2AO&"'%62#!"&7!%2#"&5463!2#"&5463!2#"&5463463!2#!"&%&%5#N#5=DLD=%%V*MMVwk%2?64/&"!"3!7 #  # Yʹ # G $ UU=%27>7654'.'&#"3232+#"&=#"&546;5463XNNt!""!tNNXXNNt!""!tNNX"!tNMYXNMt"!!"tMNXYMNt!"UU4&#"!"3!3265!2654&#!+++&>4632#!"&5463!2#!"3!26=%6>+"&/&47+A..AA.h  " b # @ $  _ .AA.".A  Q  C  # c # UU+!:<5463276#"&/.7>!54632#!"&=4632f#    "gUL # x " I**UUUU8U3'>'.#!"326?"'.'&547>7632"327>7654'.'&#oo1 ""  G>>]]>>GG>>]]>>GXNNt!""!tNNXXNNt!""!tNNXxx#+ ]>>GF>?\\?>FG>>]!"tMNXYMNt!""!tNMYXNMt"![+-Pp"&50494070"1*1&"3267326764''.'&'>7'3:3>7'6'>7&'.'&'>7&B # W>$  U@E89W1!<0?  jJJ^%EC$`LKn!!  ?0X  # F$%><-W  .-_%% C$$a/.  W,<?%%ED [ 4Z"&54632'"32654&'.'&'67>7676%&'.'&3:367>76764'&&&&>WW>>WW5E89WR45@D99VR45@ !!mLL`XFFf!  jJJ^XFFf! k%&&%X=>XX>=XF$%#$CE%%$$B./a$$#"[.-  .-_%%##[-.  +U+H#"&'.#">323267.#"&'.#"326=>323267>54&' 3+$@!&O0"5 3+$@!&O066$/$@!&O0]P 3+$@!&O0:J<  ]    + z   #q ^L$5Z67>"'&4?6&'&"'&6?326?64'&"'.?64'&"76?64'&"#,,]..'/)< # =5;406 $ .K   #8604;5= # 6# $22j44)= # # $22j44(= # =51, 06 %. #  $ 60 +15= $ 6",,\..&/(= $ @ #3CS4632#"&4632#"&"32654&7!2#!"&=46!"3!26=4&!2#!"&=46@2[o[[UUj'&"#5326764/.#"2?#764'&"326764/3'&"3126?64'&"53326?>54&' $ 77   $ 77 $  77 $   $ 77 ȁ # 87 #  # 77 #   # 78 #  # 77 #  UU !4&#"!"3!3265!2654&#+UU (Da"&54632"327>7654'.'&#"'.'&547>7632"327>7654'.'&#5KK55KK5,''::'',,''::'',G>>]]>>GG>>]]>>GXNNt!""!tNNXXNNt!""!tNNX+K55KK55KU:&',,''::'',,'&:]>>GF>?\\?>FG>>]!"tMNXYMNt!""!tNMYXNMt"!+s+C47>7632#"'.'&5'>54'.'&#"3267326764'E/.55//EE//55./E!']>>GF>?\\?>F;k+  5//EE//55./EE/.5,j;G>>]]>>GF>?\&" # (](8bq'./&"#?626/46?6&'!2654&#!"31'"&/&"#?626/46?6&'1!"3!2654&#'"&/&"#"?626/46?6!"3!2654&#'DD 3 : : 4 DD 3 : : 4 |DD 3 : : 4 ? ?, C ## C ,x? ?, C ## C ,? ?, C ## C ,W-@E%2'&6?'./7>3"&/&'.?'.7>?62#  PP     ) m 6 m )  T ~ ~ Trr  ##   U%"&/.7>3!2#  %h%   33 +m& 64'&" &" 3267 326764'Z44      555  5UU =2#1"&=#"&'&4?'"&546;6232+"&5'463127+  nb # on $ t # n[ ="32654&"&54632%&'.'&3:367>76764'&&&&>WW>>WWg !!nKL`XFFf!  jJJ^XFFf! &%%&X>=XX=>X./a$$#"[.-  .-_%%##[-.  UU 6"&54632#"&=4632"327>7654'.'&#+XNNt!""!tNNXXNNt!""!tNNX+!"tMNXYMNt!""!tNMYXNMt"! UU!2CTeu32+"&=46332+"&=46332+"&=46332+"&=46332+"&=46332+"&=46332+"&=4632+"&=4632+"&=46+*UUUU %4632#"&%"32654&#!"32654#$22$#2#22##22#+$22$#22##22#$22y2#$22$#22#$22$#2ZU x"32654&#"&54632#%'.'.&/.=4&'.+"'&3263>?>366?>/.7>?>'&&&&>WW>>WW>"&$#l(:(%# $'  Y ! "  !&X   &$ &%%&X>=XX=>Xl    % :) "   o'I*!PC  BQ!& I'+*:!"326=!#"3!2654&+!326=4&#!2#!"&=46UVUUk V+V * * +*!"326=!#"3!2654&+!326=4&#UVUUV+V+3Mg!"&'.5467>3!2!"&'.5467>3!2!"&'.5467>3!2!"&'.5467>3!2!"&'.5467>3!27"&/.546?>7>7623#1s  s  I  I  s  eeYY           +     + 276&#!"    E5Oi!267>54&'.#!"3!267>54&'.#!"3!267>54&'.#!"!267>54&'.#!"!267>54&'.#!"3'26?>54&/.'.'&"#31$s  s    I  Is   eeYY           +     UU'-;I4&'.?#";2654&+5463!2#!"&463!2#!"&463!2#!"&'1067>7>32;2654&+>?>54&'.#"01967/09    r    . r  M .        - 4-    3,!    UU%!47>763"3#&635"!FJJ>>JJFnU&22ZSDwDSZ22&wUU6_n}0101;267>78581>54&'041.'.+"'>;2+"&'.'.5467>72#"&5463!2#"&5463L  1..1  1..1>P//P  P//P  !%  %! !% l %! =F+$$+GG+$l$+F+U 7!5%!3#37#2sRs2ggllwRwpw4"&'.'&#".#";5##327>7654'.'  E)*.912J MllM急3,-BB-,3W)##3H107  jKKkA,+22+,AV+h> %7''77&?>762!"43!20i0-ix  &C\++V*g/i0hxD&  UU*!2654&#!"3!2654&#!"!"&5463!2VgVKTI67>'&'.'&6766767676&'&'&'&32+"&=4632,>?LMHO875'&@ATUO@c !O3@DC|34+,,?=AAx33!I@+,&#'@@TUOP775'c>! 1O*,-?@CD|33%'(:8UU3BQ`t!2#!"&546"3!2654&#762"/&4762"&54632+"&546;2+"&546;2#'762"/&4762762"/&4762GddGGddG#22##22#I 7 # U # + #  7 # U # + # 7 # U # + # UdFGddGFdU2#$22$#2b 7 # U + $ I 8 # U * # 7 $ V + # 6D0Nb47>7632>54&'&'..#"326?.51%"327>7654'.'#"&=463232#Q66>4]&+''00d21(&]37d'))@  09*0)*>>*)0/**>>**/@@#>66Q!  8e'&#!#)((33j33( (uD>**//**>>**//**>C! x#54&'.#"#";3267>54&'.'.'&>7>32.67#3267>=3267>=4&'.#1#";267>54&'.# 612FF216 #  #  ##    0((d65e('0      c   #  #@#  #@#  #@F216612F@ #$ $  $@  6`$$''$$`6     E   $#  #$  $#  " 0S26=4&#"3267>/.%326?6&'&8327267>5./81'&"#"�1#*#"&/7>7201>?06'.'6&'.'6&'.'6&'&17'817'&181676&/89."178167>'4&/&13>7>5./8181'&1@  121 5[  .C           3,,     !w%䡶 )D?#   B    #C  \  E:  $    T T 'D CC M '9            +  . * # `iǢ "6   8    8   N  1     (w'.'&547>76B$$#&%>>%&#F!!G!"$ )( $u 75!!=!!=!!u^^^^^^UU-D[4632+"&546;26="&546;2#"&=4&+2+"&=4632;#"&=46;2+" ?,U U% U,? %U* U,? %U ?,U U% V,> &V ?,U U%U >,V V& U,? %Uv 2?6&#!"%'&"3!26  M    O~0Ha>327.''">7#.=4'.'&'#5>327>767'#"&'537.54673'Q*H W>/.-T%$%H2< '$a;E /MW> /.-T%$Q*H < '$a;E /H2a;D /G3< ($ϮW= /-.S%%Q*I G2@ '%a;E . 0-.S%%R)H W>++>KP^l>32181+"&'81'.5467;267177>328178146;2+"&%46;2+"&&&.A-@u_b&&&&u"!U ,2#!"&54635"3!2654&#!#"&546325KK55KK5+UUK55KK5U5KV+U)#"3!2654&++"&5%2#!"&5463!+V+%&+5KK55KK5VU%%UK55KK5U5KU++3#!"&5463!2'!"3!#"3!2654&+5!2654UV*5KK55KK5UVK55KUUK5V5K'_< vvvUUUdnUdkUUXUbUUW\!UUWUUU][bUUUUU[[^@UU(W [UUZ+EUUUVKU6 "(uU+U d*`d0hZj"l * v J H `(r>R^T~:,&V 4, . !!"#T#|#$$v$%%&r&'((")*)*0**+L++,D--.d/00,001d22D22v { ?   ]     I  ) g 4fluentformfluentformVersion 1.0Version 1.0fluentformfluentformfluentformfluentformRegularRegularfluentformfluentformFont generated by IcoMoon.Font generated by IcoMoon.assets/fonts/fluentform.svg000064400000316177147600120010012107 0ustar00 Generated by IcoMoon assets/fonts/element-icons.woff000064400000067050147600120010012623 0ustar00wOFFn( ڔGSUB3BOS/2<DV=IcmapT*8 ҩglyfY+Bheadbp/6"hheab$hmtxbddlocab44}`maxpe  1namee,JaÌpostfx sxc`d``bca`tq a``a cNfz"P ʱi f#Oxc`da`tB3f0b```b`ef \S-x~C sCP$W Nxu]R`ˠ vw3(%H#vw9& &֋u]wP%zޢG}x-xEzy5?ĤKcyV>;f쑽O.%V>g@ 1;Ŋ!;e왽o.>/}NlBOgGaV~5]WN^cm}'uG}61MhJ3ӂb Zӆ=kk+zlFlYw6e39؂lVl6lvlN.K7{{^A!aQ1KC_xNDq's rsgrgsrsrs rsWrWs rs7r7s rswrwsry@1!#>>3> n/oNXOg~W~w`URSjڥN[:ƥIiZEiYZ5JҦ-S/5kT?oSLO1ЪAV%E *Ab $Eb$ObU#M,1ʪWM11DcM61M;1M@L21ٔ SBSMYAL3tS~3LIB4e 1˔.lSsLC5e1ϔB|S LD,4eȔVbSnKL F0/)LL|lJgSN̔'09d'Ҕė'2>oL]@|kj;S?KMMA,3u=L=B,75 -O!V LKд ȍLشMLldӊ 75 r3Ӳ 6imL´@-BniZ%V}BnmZ*6BnkZ/vCnoZ4mChZ9NClZ>. D0!iL mJ䮦DfO%EaT䞦uEeYަEc^侦FgceF`h䁦FdmGbr䡦UGfwᦥGa|䑦GeځѦEHcچ䱦H1Ei9Ǚ6$yiM'v%yiaL[<ɴ:ɓM<ŴDSM<ʹNM;<ôX3Mە<˴bɳM{<ǴlsM<ϴvM M[ȴɋMĴKM̴M;´+MۚʴɫM{ƴkMδMM[ɴɛMŴ[MʹM;ô;M۟twe@kLyn 0]䃦[|tU ӥA>j9L!0]$dmB>iRȧL 9tM7 9t͐Mw 9tOnr!r"Gn"r:"G$rb"kաo VΟhIVƪ*'[:Z:[:gZ:Rul+UϱRu\+UϳRu|+J TJKax `[Օ0}Wk-[bIv+eIvω:!C$@Bh%Jô`H˰B,[(˴R:Pv:_i;tX$'}ng zDB/ lo2u7`4I&zfOh{r]H?'4X^utu퇚;ח|tc̞ l>h5ۏ[Y,19HY}}[?/i>ټQ , 35AIVa;5 ,( uBd3D,5\^Zsh"H5Hr A|Plv;"D ٕY"g ɶǂnrd۳q|_q|ͭ.&.4 R mv`2$5P1$?@jm"4=AnUηg,ʹFۼC -6P趏"d p^V貑qKq'll6p'? #JF|ɰ{<1'Z8;i@CCM3|{ft?ٶgc_nu:ەq-z Ą0Sea{^4@$D &M<\aơYlAl HɬnF6W4Ҷ ]6FW3^/zp䓿s LD! Ce3B"tY) >{u;dX]'X}ơ>"f P'_:_:oL`.(,-MfUMD<*N.랐>ҥ5,@Х~]^[,fMZ #X(oito9Ioއ`շRO^͟%j&N եuiI 9af\a x>@4^90j9~服ߋw \ d. _**Nݛۮcl]p^ao+-ͣyv}{o\~ l[-_߬qhdAh4̧y2a·R ;(H(nJ̥ 49(\)DL"F$pInvGw8CI]ɡo3cG6cM%f́>gh4mQclv}yv.Gl40W!E䋑5V?t#mg.G*s.͸uΣ#@Wsnsr&EHH'6.3N>iYaq,(! e"QD F2j b>_"L̠?Jlm2 Ww7ZH?־:ɴI&xz'j$ 츆}]xG;[8;$O:5 Q5hj kLksn5 j!Wh2}-޲DJV0NK&#}P1ָ|$1(QAǩq~'ɲ u~B!?~Wպc BTu/=ݻ ,:Eidvco0J߹ݷ9ݫ‰s64\g} Ťt}zGKnuevYRuӇ6Q.Ahj'pաb4D*_.QȬs2еEh4Z@:YTF)aVWػq.|KX'(]TzׄdꮕDnx0 \+C {K!>aNdstT$A[!6 J%+AAKiTJL>)zd)C4Ey&!W:@rba ΉL<Y )BA,8@5Dh1rQ_1H mcy_6gF#f`/4ލ ^zBNfLAnq@J9Nd#@@|4hcE(2ܐs;ogO|6{yh!$V& IC4 :/,G Eqºur#z"5GIȸoYGZLo:Pm6Ӿnj+t`q5%Jv8h}B r}i]<2CC ;@ f0%x#2e@@,8`JFMݳ˖,_>*}4k ;V[,ŧd~k,}UQ p]Z~:B-Mwaݖ-u?Fr~}n\R&qc z~p[)iFckpH sY}lej$=C Ab&X1K$?xR)ޣ Dclfkн[zY~MFwil7Wt:!os!/z걃 ghL&vfmX4ݐ8'V6{4ߥݍcF!<- \':.. ԃIqE=BGETL≡$8/ߕJsLK%m"n!}i|}KQQW/ _892s]×kf{-ݿ Vr??Z`d3U(ϵU-iGχ;(i_"߶||Esݴ([nrɟgV]@Y'$a`Eir%qAt O9hD"4l0(  0p{Ζ]Gbʇ?e[>\>pȏ7l2E}iי4Z1< {ˎ/Xf+EΊ=k-ouq/-F4";lnidJ3v7-OLByY?!jf}#F|p Q R榨n=xt.AQKeryF[k&-zE.$ɞ%yoHd25+N3K0󈡱C)dFSEooI˙?|U6GQ'uNH-j(0#0]Hxw&WuGJt?>vY7;\O?L\±t?&`kk0>$߁r*/$PpH<ʰmnC_eV 0`ظ掯m; 0{ =$0dVZ1ڪs*\ RǐFp`&k޻ +]'!|JGl]2_s,wv={)+Gݗ\gE;@\CӪF..m}k KrGa26^;g \T\(vQwj3\E]9dP |Y*hEtYYv>(  yt(v#{:}7{MGmx~+Ϣ^ؘ8H&`za []o6^ohMLy!Bx mSܛ5Ž򍮡!e,2F x6.@v ^Q \XuN=ָ"45ZӢk;ʊ>\-h6}:H]韬zӗM~tbա[: A0&dVTE#Q*L)񑟷֘t/g?ҋi7Lam_`d']%a0&@=Fh/F^{!f{@`*텇?p_h~ o(IP9?`i43Cfa̜y4u.fL5yRS)(^':1ȕir(p.2Zچ -n{ѓMQKa亪˵@R^57 @_ |;kI(:G` {炅AI5׍zztA=FGf3xA< xIfO(oeihĸn=:(D`{&9$U>`BѠRJ(JpV4?`BKy TЋk%<ᘗ^_} gyT1}pMgdK:HX]=Rq^1ߓ/>s/1o߾:|b̔Y+0U$UKֺvS丗=B鑽cˢ}U_}BTe易;@_Zcɘcro΃tk7fx=}$oGD!s{opxh?uoಥA"Y/,¡\ZLuyT$J:}[,#dـ_nZ+|Wq`,LU{*vx7EC73j'_+Ni^vni0hE"ƔM,@KqE<|1^p"Y#&H\ANEZBD PfA9j]dhDVhie08ȐC hi2! ph(6So G d$3A-}Tq0rsKD!Gh!4_Y'N q$\@AsnGG蟙^@GGD̀!dlf'f[7&,?jrSHz40ߎ0@yfƕ0p RHr2t;\47LdLVr- oBeE9(݂Ym7Pr]J{Y>sʱlDZB ڡdhbE4}MC@p&T= uWڛƢJSh.r2#X%3 " p MM'K@Q+' ŋ̌]1\gjUFߢJX~;u:R4i*;vZ/پAy *ޝ`Jb)-Gz2 IWB4eZD~_5#!Eq4PQ_T~.i:PwsEPLc3]a7> @_s@_$d:$U% @qtY 7o !y@|!nnrAhUol DcaM޺5k+tۛ׃K&9y2gR7xAU#g\qkBau>,#0b:QL:wSLFq] fdm.0L 9/G**"]y|.yV73fPb0Vge&0UTW)6<4bwf(d `;Z?I'HA9s"^30Oh,Ab 3N @:KQ!qNV]# OxG_U~b!=FE(1y!ꡪ'yC+H9B/E:q˪ڵͳ|ҹfccƄ c˶C|^(=`rx"GYR o?ymI{d{X,'8cqnApw +>ơ7ۂK|uR9 s'/O TcHќ :ܿ_W\Ӈ_Kw'zugm3#K_ޭ3MR|xy۱gu?!\~W|᳈#; 2Pnxߵ-X7v4v9oi|S7?Lnص--:%Wl#wݱ^,9{/jW[ 4di Q-:K`;Ԣ$3Hs Y2 Ev^iN.:``6:&k6^LţG0;fM=b:k(iv_:x N[#K[ӰB~i~|M ۄk{*@#SSa gMT]pL׹T]d&vW-hfXV)siG ]*N)s#}N&zA2(S@:7Fă$1QE8m+H7m_cXY!LLƳ[yͪUkoeK,*40>G ,VFtH\zͺ.f<\L;yÔ tsvD #Y¦*\bTo#0)b3w6YڇWuYrYw{׎=֬)|%hNu сCmF9[)/Yrɗa޵~rMDs16`BǑZe3 rJ#;IEl_Gɚ& cݦc>3xfl7d-Jܶ%1l߱`N ,$-uu'h3lOM 3qy}eK~j :L0ƥ lEQ+IwwFrJbgw}sI lJ*"+Q["ŭ:VQ  俐:wcOMIdu}$n#v71U*ӹ8P~Ի3 '#>3it[YnDx䦓BQ m )yx&˃Ū/ ŢRlGmZuXzQ.\1k޽Q=Ir(k8\3< oҏkG{!Sv2HzjֽR*jxXqV!?m@c3ځB~wZή4)K dUK,Q Y E *8)uڣgĆJQYIi!άVIYpYҸh9W@r&'eח ϋX=BP0WX^{d(FĒD]^,xb(#jVK6_q }3b={O=%m[R l;֣=g[[f-fh+0@xٚ"(ojF zO&JU soM9"rKIvx(Ol~H&8_7KH[(*=~ '\$YTߢz̖r^SWTRU9  Ԃ {s-\gT,6z6N dl(\y>yjvt&O9@N 8_ծqSX 2jEϹE3?85vO+kkZ/*Yvh@N'[Otӓ"ٹv-zKMlu ;-Cî22T[*jc|[k#&GM6 Ѹ£.mGm;^Tt{9VRz>YqJpE+/@ TY{RGS'ZHV E e^֗N}A0%PU3k&ho\gzo"rpř84.\=l7@2&Qi U)"QFst[g=K6Y"K3CvKsqȘ֬@%^|Z"_{%\(5sLtFj}b-Jn(t#5ai)YbDa.B$M&_ꋄ{,?^uaѐ2#K4ݼ'ҜKLQa,7hJtY^n_o9ꎅxօb^NJf=jQ{U53M*3!C^/[\ vsL'/Kf:GI=5Gqk&knɲNN<,+` ӆԆ: K,2Ub=d׬$zPDqٚ-4 ]&logu{T3# y>ӚȨUkbzbm!DNC&)#Z BFy'Ų9Q+LG\ևS&ߒԹ A"EA8czD ?%a,@^pE"M/pMdMl\w%BAeFW, m*.Zkf>0M7<_>qCҠ# /Z؂EMcg5E42^p1O !s!(nѡ2hg>0Yyʇ^> wّ}K@F.](>sӚ!DX]l:;Ug]1&?AnjbYۼo oxp߂F|RFr}w$s]=tt ;;SʏN~(rye~j\8d󳄵@os `I]i x!"a/h*|f&B".!bx/U&:Dkzwp`59uοuv4,|coeoW}h֍o4F_K!]elIQco.:4Kj]8]Ӈo#wu,N 7jNt.IFbbio5Gۢ{[lfxBtFoyD#Nqbu:g>H&w<^;a!t|=o^4# 6WXҜOó悁a5\\0v EnH~OǜCs,Mx9sq?AL. (j8UN(T(ˏ0j{8%(r Q:Y'k'tIDp63ƫ4=[-s+ʡtb;W^yw\y;g뮯/elңp Z>FVgٯ&|lOjkp!|QRŸY~*DxJPĝTqܹe+--;Y엚-IKW}8%<,胃ԖDeʙD|\>&gDi[gc4~5<ùLMY;_Iun]ˢ10\Բf@Ԫbj}Ujh}:5@ 2XѸZTp񃛦9T5.wk:LZh-eoh"p&(i*j>ZNW3vo%kb8%ɬ$6`oj(xjz(rOLkE= {egk&AɖM`3”>UNAH/$/khC )P,"B-P.H  Z;r%_\f8q)v?0A ySz1O|c"e[۳6~u`3-$IΈݩwt٣\lvSZgΒ#pCBUء}1F—(l”p*3|_,Ā V3vz:h,m>N8sRH]Er׉ajCRq,] zd\ʪluc 4<唕&vv;K#2!)=v^TNRj 5ޯPҕ J1|7I!fl KWm8/ Y~c4G=N$l AIPVhwutvߥ_g NpO|dN+)>2bN0]m[[朁ϮwǧwDdJ1ۛ erk)dBe}GWYY+xʬ)p,bQXP%hadU rithӇq˂qG5$%m!?~.|riOQ&*[=Umeru(nYcE+8\/(uZϑ#Gio=R_ | .2`L> *P洽M6Vx=e^eg֢A^A;:˃XEgt]ځL`?ɯ\Xŷ{m5ڦ߾o)[W6֦{λ^^o[3)AR.fQ [OoLej)ߨОP𓤎K\S>:Jlp/LpvD2}3̎B*`j+)mMNbBpŏdq|'?Cs0t;7.7C^ޜnS!05POss/@ ?m=P >i_?pO00 bIDy@pEC1Rj8TMW=9!EYh[t>?wP\st5EN~Ld1WO$ }T-:ǖ G+DZʓNٹaoCjl>ǿ ~?믱_ݎSp=nj/hJ*םщ)2BB$`sav*d! p)"\@{X8ˏwDT ާThj%_ntA'|oISfGl7ڻY -qT~^;F0~md5 Z#[URjm{s:oAۚS_V_j>ղ"W.jdg9sd67yP%GhUZ_ pd&&I|Pn3\q(w9K/hYA6oA/awh?9cv WF,vT/If>OrOo T(A6`xd"9e?he$тR(7.X@c7J&=l5ZhQ srL$\xHp`+VKOк\ok&ݨֿ_02gA)'u7IxA"5Lw/pP`5J?]fEtCy Oձ1Ůp<Md꫏Ehǒ&x͑ͳDq5$T]G\v.76w:4}f7:?2:DlF6x%iY.?&IzUoЮ"pwa GToa(cʑt6犸"d ؐ(z予CY%fq.`傘z~ v}hpv3u W6y韶s4^FCI) úyy7#D9 KT\rRa#j!'ԛTj%h& s#ZClkB0 @f+Rk(ǦiTc0(Dywn vf';QiL&#tpw͋j4QL)rl8|3A==Wڈ_7Ta)=O|Y 4M!h{p픋u"A!<-Er=@]yPϟ!2A#@`ްCƕ5ݏW%Q}P&j<1 CL%)55sd =U*6ʠxr ;WI2Ϗ%y Bt}+:|LyC +W@(*mt 4ƶ^M[cָ|Ճ#m*(CŅEG!;@"vVa{p 4(7a`oIu;FZ(mL: FRZ^K*r_ڨT.hG4~))pwUf&$-v?k0*,h^jYQZ"s&Ă`tZJ4F ͮir-MiצMsLfMXh::#P5B>|D9!LZ۱mb4"Y ]3OOq`FdiEf?' ɻN&>OMoX&\R(4((Sz#Y?0Jf tƐyM:)e*Ř(8z"^\ P hQ;2j /Ry\^R٪?]4Ū`Tl+ebϡ0j%~(x`34o0$154pBi9R;⎍$GQч \ (#(&1hE2q8_ EUXy!E 'Y2.IᶣVR p( [ʷ9}JX:EfGSM-+KV(=X%aKERP&t]V\O s^A{EcM9>NyV, X]Rb$ԋ&\Յ'kxҘCOxs<)Y;J{SVئ-kczi( p] knGBA$-g焀#L5$6ƔUڑ@:K`P<G OI կb'Ώ dGN xB~,7Ĩ&2?D#h_!BfmrXAFM*>za {*-+(%Ŕ$Qİ۷Vy)y/= .qꒄQ@7Cag} V,%r,TkVąq؎)LI66nT5az1%hPA-S` Q@ðcfI;҄bE|^L9nq,f* Aޅ)—(ld?P*bTZEsJEPq,RZvO`97!ĘLV@?[-P|VcDHr)"}t'_?'`HY-(=w3iQwd6@⊹bSQKWdB]"8PH) }gՐ8SuMgmdO w>Nz$I5(V/h`0Ih[F%hVeSn M{t?H8r墌htS*7_.qoD$+Ӣ-/]QzA70^fUU#:3=ER,(閿/]wI벭Ycsy uB+[ĈbhH$ÓDjEwOQ<.|T>,JwwDޞSfu tDK>j41d$;\rD魁P34ݽb҃;6-V1μq0 4{ީ_r`~睆-XLtb <JO&Ic%pIGS6h俊3lEd NfCC8Y5N}q$tpYنTŸO̩o4|qk¯™I%1XU1|ld[<0 Y-6yfnQ,Q"pk_4W/ ~]9Z90 PRXU6V1wJRׅ{1I:!bx4MB~H1bw?o>.8p"SETD)6$*7ю1!)‚ n=3">)yl*)r_S|d=75%KG&w@F2Tϒ77Iu[dISٟGbEfy0̴(rpN~s#@p _mbS9M \'AZ+sbɘ1U[`[a$0JE/~]c@ 6JsǫVh0z,MY cuBP^!J#0vHG$z!~\oGBO=kN6;_x75qp?~eĭ_ 텮ܛ+T#|Elc,d.,OH$Usdks0-j0O4}"I\zC2x@uްȽP`D|Ld_sik[HT"Yz0CitVh.]WnX==؜X_^?`NK~V*W- _k .(ӣ=" @]\,uBoCd6?%@4 /?/0"&P"w5AYeL=1%dk8C9^;Đ^ gwo̅*a'8Y ̢tj)*aU+5ZQ/L $YL&K]s;%;k/w"1Ci~O"^ZR?ΛxrʴElWSq8%  N<7(d)UiBXmq  9}ǦCN}ey 3L|#8Qe[70 Cق1&?~%H . %$E" .x.`ڕ|'I(A"3yllO/MbPnߡODvM[4Ff_ZQrwJxm{R~]u[ aFG|Y}}d6H# ~q[{DUl{}*7%B39D JW"F=` ̣¼5`7/e cWV#e ?9ʗŢE%w|8ys A䢡zB[w>0l2\!J pm|P t2 &BI҃2M帪=ƐB.hFa84(qlqLk%(UM$}Vz̉R^[%SBU ,}x/Ȉ~\N{+~P՘n UX$㔸p6sJfqO!/} 6n!Z-1wCjlCX熱Tx,A}>hY>rtr)[|*o'=(0NS&W7̎HDx2d̅<) #3 =O5=_]Vh3.6HjǍxG{jh6a]ktMY->W o!\9O ltj߫/NQ/($->" H{ɧҝ)i{KӣOv,ҡѠPv5nR3z7}j0 zl #j(3Z+4+BE] .6>eB_O_Ryj8< C_"&=ٕ^u`Z$o=fR-2F1S.ހAcJ3@Y5$*1c(J.RPX 66+ 7Ο)C?#\7 #sxKЇ5yúH|N/~)xiM4lc6j%=GYg͋YZ\uΐ5ε[SB .ԵROP<*3ݽLtM&zf[D%X޾fN?L7l'SG""M񡏕X^~  Qh/:`ju 񶱳'Հ򷢳TH$$LJUU@q'2\Fkb3cF1 x-P|nn?trENa{UKyI4WBUN۸IF99ZOTl&q>lk/ҵ, 5ë;8kWa%k7/ ] g_@bbfQ*?; Z+$wJ %B`c@'/{_n?e)h;δ#-H% WٝN]tBY>+ X=L3Ş1I DDI1|8S?N_]Gwfno/w{'9\.5I/O7ZZKir}C_V/•X(}P(h%(J4"iIňXmݻ!ݙٿ3}G|;s$f!15*K0~'ռAzs\g QZ"xvYwZ aQ&8MVc]^m'TV{/׷sh&B::r'%Ud 3iJ :;:?~7)G|v<-2/ ËIvs=67}c5_1=k~ؑ%_W{\_R%(_MyAjjiF rZiq7c9F#qF9},֋. :tZÚ)7 ̈gS#7pZvV:k֑ޖAwցR1/@Q{e[-پ98!8N+EF#؎c^o/>9w!UkEhͣKKkټ$t6o~?mB3<RHFi=g#>Ǐ+̮M{tϓ^ƕM~`k' &" /#[*Jl|fYH ^5+ ƻ1o"N%|q`G _j/HA }]>wZSC@*ogkߏ=LYpPʿ]/Ga= tukiZ-/в趠GK/~m qW{NIZ Y'Z N5>C--0{=_m&D􉋔^٠dB={?E70ʟd_WYJG3.y1d?-cXkcb7UT&5dtt+ىaE8 6,5 Yzܻkвw^0^SM¬ f0 }d=;8ML~Ϗ4!E!uTU^\#N1~0~͸Γ_mZ7sfA(GRi>S+ȼE% r,@\U>c29:l=փ ;xsS;53Zә黼XFDxR39_elߓFѱο<:Fl$.=g'>ĔBf<uƳ.HcxW8TF9e&̐ ( 0ZS(``DLxOqiJ: J.L3R(n H8*!vL!a7ksG ]caNJݧ+cOS"+F$uLr뒹;d=KhIYgv1\K#Q^(cDbcswD e~^䉋U6u&'0"߉xc`d``L6_Y@mL $ 6} Jxc`d``n@0JG!xca```ţxba;en.FnZh<,lh 4 B  v @  ZP dX V2Fd6ZB2bHxd^L\lP Z !!h!" "##r#$$$%&&&&'^''(d())\))*.**+V+,N,~,-*--.P../$/00t01$12L223d34H45556P6778,8z89699::z:;;,;x;<<<<=@=r=>>n>?6??@8@j@AA>A~ABBBCLCCD^DDE2EEF&F`FGG0GXGHHXHHIIZIIIJ:JlJJK K:KL:LHLVLdLrLLM"MMNNTNhNNO2OvOOPNPzPQQ6QvQQQRRBRRRSS0SZSSST Tx];N@)JHAreD)Spuz)%p :~;53;3 vb]f'n{/F#'a p>^=\UA~n߅[6n%ܡ-#=nF1nf9n[V5nv=;N3n`#L!qwPDGa``s'{>/x !x(x$G1x, x"')x*x&g9x.x!^%x)^x%^W5x-^ x#ބ7-x+ކx'ޅw=x/އ >#(>$>O3,> "/+*&o;.!~')~%~_7-~#?/+'?F 608H4ݠA `' SSӂ7kLʷxsaZ* YzP+ˬʌղ6i)Yf,q\BJj"Z0.ḐBEwάХ(TM4E_IޙQ!lޒs;qKw*ֈn{yƛTs{I.F0ݱI}5shEdb*=^\f= EJվЃfLLRl/n9+: ,%OG̈0sSV.m̄'ScΨW\ -oJQٞPj`ҹ>j(%&eT$Wu"Rs*A_T[Zdʡ垫uMpDU0cK;wm+gbvH'˙)ưSf3w'~!W+Zz=^ԟ{]{2*OWLU lMdM9Ǣd#42TuX T֑ %#N=hI#lȕ\^t(d9Rg$5aejLU];\IvDvof͎9wYOLf*ں1+XYdžO*gCUArM`#fّr/q@]hܧZr l_4Tr"CRZE.JvA,#`Hө+TrG CdiJ"sBIG1ӄP$H) KClsEQ%`q V3nJSqdq YQ1ͧq{oL9[d.MHQdN#*AVԇUf9^`:~Z:N\5[c$n.,ЊktYp"B5^)CHCovZOnKa(_4-#;<'Ŷ*$[yuOo&넲dY`,t/CF]n*cMXWAr5aLC]2PAh!i *]vMz&+F m9`EtSUGU+!BsWkU*Eϟ>t](uËZKv4Т$#jMkYgD⩦ޥ8)r2+y꣹;{iCassets/fonts/element-icons.ttf000064400000155224147600120010012460 0ustar00 0GSUB8BOS/2=I|Vcmap8 ҩ8*glyf+Bhead"6hhea$hmtxddloca}`d4maxp1 nameÌ$aposts͈ \i?-_< 罆罆  ,DFLTliga2PfEd@\,, "  +AEa"-DGc""*DR 24h0  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      0  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ ` a b c defghijklmnopqrst u""v##w$$x%%y&&z''{((|))}**~++--..//00112233445566778899::;;<<==>>??@@AADDEEGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aaccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~     n.FnZh<,lh 4 B  v @  ZP dX V2Fd6ZB2bHxd^L\lP Z !!h!" "##r#$$$%&&&&'^''(d())\))*.**+V+,N,~,-*--.P../$/00t01$12L223d34H45556P6778,8z89699::z:;;,;x;<<<<=@=r=>>n>?6??@8@j@AA>A~ABBBCLCCD^DDE2EEF&F`FGG0GXGHHXHHIIZIIIJ:JlJJK K:KL:LHLVLdLrLLM"MMNNTNhNNO2OvOOPNPzPQQ6QvQQQRRBRRRSS0SZSSST T7!+2656R6@)66)@)66)@@@)66)6))66)@)6H+>F&>>53./676&'&>#.'&.?&676'&'75* ;?'@ZDDZ~^^OUW73#5>65>6+"&'#5&/#"!76&+'4&";'54&"3#23!26?`e@p% <4$`$4< %.I: !".I: /(4v4K  K@%c  @ d  '"++"D' %5 &$ %%5 &$ */ / p f  f#.:@5>732+"!!.'.>7!7.7>?%!264&#!"6)@'6/&($x$(&/6'4(P\mR@7G< )6 2N9!!E9N2GSSr A@5 OpX =A37!#33.3732+!.'#"&46;>75>732+"!!@Da@tG@9#p#9@G_6)0 VhaDr8_')6#'7;?CG>7!.'.'5467!.'!!!26=4&#!"3#;+3#3#vv &&!1#r#1!&&bYY0@@@@@@@@@@|ss 2!@!3 u 3!@!2 Vhh@@@@@@|@#',032+#!"&'#"&?>;'463!27!!'!!7 1' < '1  ;G 7b K%%   " ^^@@@@@ @ ")07CL%>7'>7!%.'.'67%!677&'&'.'>7>4&" 74&/.'67676.'>?>#1A,.||., F[ #,   AX 6=Ɩ=6 u}  F1g T.]].T g3HM3(aBN(m@zz@m(NPhC6\63#&/."&'&7>766767>.?.#>7>76'.&X $97HX5"'#6P.J&9#tE/   H  15Z4/9@)%6--5'(3$P 77M: B^x(  @Gn k>G (=  9w  80fS)A61n H>@4@L6767#"&463!2+&'&67&'&'#.'&6>7.'%>7.'*$Mu9$6XzgWWLR"(;SEYg Z[yntDZZDDZZDZZDDZZiI=S;S39sXY ZTV!#:TAWxWZYqwZZZDDZZDDZ>ZDDZZDDZ'7''7''7'73'.'&67,=57.8a jo"w[U||K`(7.86>,woj a`K||U@3<ENW`i>".7.7.>>75#"&46;2+>4&">4&">4&">4&"7>4&"7>4&" 1"gg5L8&?'XlX'?&8L5gg"1@@ )66R66)66R66)66R66)66R66)66R66)66R66,*]nK#LC)4hEEh4)CL#Kn]*,C6R66R66R66R66R66R66R66R66R66R66R66R6@@ #'+!4&#!"3!265!!.'>3#3#@ )66)@)66I@@@@ `6)@)66))6``D@'E7671>25!>7&'.#&#'"&.75463!232#!"&46; 5>'':$)E }{v| 1(%9#)G{@{``q g|r_ccD@&32#!"&46;.75463!2>'5! ``{@{7}}cc,rrA@ &!4'!!>32#!"&46;.'47!%N)YY``}@@@vJ`Vhh~`~A@$32#!"&46;.'47!>74'! ``}@@cmm%N)~`~/mmvJ`I)9D'32#!"&46;5&=4673'&>!>3>.&/# ;^.Ro7`` HB `Rb1 P1T &\[ J00@>moUޫ S  {:E l .`X),?  k)32'#.'463!2>7.!2#!"&463>75Y47[5Ym6II*.lRRl4]f[0Vim``I66IRllR@ #-%!!>3#!.'463!232675.#$$A@(77(@I6@6I@  `$$;6))66II6x^#0=JV!5!;2>=%!#".=462"&=46"&'5>%"&'5>!2#!"&46"5D&f&D5"mf4]H'{ 1VD3&D66D&3m&I]44DffffB #.>7>3"'3!.'!.' %>.kOXXw7D " AP88PXO98Od: XvU (@OjVksX^;8GG88GGxs139GJ: /@'/7>J=4>>76#5.%3&67."6."!36.">7!!2#!"&461= uLLu =1ę@ UrU M%,%%,%~  9*IXXI*9 0aaֹ'F7CC7F'((((}}G1:BHNT"&/&/.>?'.467>27>!767!2?'&"76&?"&&.4."# m.4.#"  n=UZ3iv3vۏ  #'f(m #".4.m  "#=ZGvv a L$,0%>7!.'463!2!.'#76#%6!5@MBM@[dd[$$Z $    @-NN-?;ll;A$$ $ ќ@@>-4?"!26=4!./.=4675>7.'!3!26?  #5 00 5#ۣ=@)  )@ @; 1@. !! .@1 ڞk k@@'-9462>=462"&5.'5462%3&'&"&53#F99F#M@@; 1:V = V:1vZR`@':F462>=462"&5.'5462.'>7"&5>7.'#F99F#FYlRRlYF 3KK33KK: 1:V = V:1ammajTTjjTTjD%0;F%7.'./.>7&676/676.6.?>.^ B &GS; )7 &KOPFR OFO6,V9aw;QD%'"8 %'"9 #PK& 7)  :SG& NGN REQQ#CQ6!.'5&&673>73.'3."36.#"6!3!265%!>7!_@2iY' ",6))6, [@ZDDZ@__~6R6E $5 $anL``YD!> Ac6,E+)66)+E+DZZD__)66)90 &O `zz !)5>7!&!2#!"&467!.'5."H66H~@.٣$6$m36IH724響 $$  ,5#"&463!2+!&>!.'!2#!"&46``^v1 1v٣$@AAV]]VH )32#.=462>.'3>7.'&!]Vkj{٣@n]^W 2M%-0t٣e&#+ )5462#.46;.>73.'>76 ]NcbVp@٣zjk2 R#46nl٣t/.%@  -.'>>7.'7"&4622"&546٣((/@٣٣٬( @LXd3#'''7.'#367'76'&'#37?7'76?35#'./7.'>>7.q+$ VV.++FF++# VV.++FFC -::-"n!&DC !n"-::-"n!&DC !____DZZDDZZ@K>!C6KK KK=!C6KK ' ;@;"-8++0";@; ;@;".7++3";M____>ZDDZZDDZ@!)1?>/.76&/&?75#.'5#.O   F# !lDQi.Q[hnm@lR@l! #F   h[.iQ4@mRl@  )5>>7."&46%.'>264&%.'>264&0??00??0(d0??00??0(<0??00??0(?00??00??((A?00??00??((A?00??00??(('3%6/.>%"&46;2#"&463!2#"&463!2# % R  @@K!  #/&'6>7..'>>7.  ))⪪))____DZZDDZZ44* FF FF5____>ZDDZZDDZ@ &3@MZg2"&=462"&=46%+"&46;2+"&46;262"/&462"/&4"&4?62"&4?62}       E  @/  E     2   ;%'.'367#"&4673"&532#.'5>2>#.'&Wjj{@m^^E] ] Wkjz@m^^eN$-0te%$,J % 2N$-0te%$,3G/&4?6!.?62/!'&462"&4?!76"/&462* # ` ` # *#) % `  `  *#)  ` `  )* # `  `  )`)# `  ` #)&* $ ` `  ))  `  `  )) # ` `  *&@)462&'&471624>1"/"&5   )    )     :`` #,7!>75%!.'!.'>7!'"&462$$@$@$ )66))66)((`$$`@ $$6))66))6(G8?F#"&46;>7#"&546;2.'6;2+.67>7%.'>`23 G7\``>b rr  Cd#19Ɩ6II6I66IdsWZmE:@ppMu"ǼI66I6II@+4J32#'#"&=!"&=#!!"&7>;5>75.''"&=.?62 @ff3Y9 lRRl@I66III#  #` à````@@ VrrV;NN;JJ # # @+4J32#'#"&=!"&=#!!"&7>;5>75.'6"/&>5462 @ff3Y9 lRRl@I66I$  #I` à````@@ VrrV;NN;$ $ # JA#'4A#"&463!5463!2!2+#!"&55#!!"&54623"&5462@@@```@@@@@ !264&#!"` 462!2#!"&5!"&463``` %'& 6." $   #  7'&"?264/76.  #  $  $  $ D#62"&47 &4'62"&47 &4  K  8  K  8    @@     @@ D!62 "'&4762 "'&47  8  K  8   U  U U   264' 64&"a K  8    @@ t4 &"2764&"@ U  U+8  K  2764'&"U 8  K   U  Ut2 27 27564'&"  @@  (   P   e A+46;2+32+&'&6>7.' h }fhiRllRRllh gh sffdlRRllRRl@ 3>7.'.'>75.'!"&=>7!"&RllRRllRmmm6)@)6ZDDZlRRllRRlBmmmm`)66)``DZZD`L,?"3!2654&#%!!.'>2"&=46.!!5>76@@)66))66IvEEV``q]\%@6))66))6'A@ gG@&^VW@,5>"3!2654&#%!!.'>2"&=4675.'!5>@@)66))66IlRRlm@6))66))6@RllR@@mmL!"&5"&4762"'<     Y    A!"&463!2"&562"&47b   @   !!264&#!"265&"264'@    @   a!"3!2764'&"S           !2#!"&46"'&4762          @%4&"'&"2764&"       Z~  2  A%"3!2654&"264'&"`   `7    !%!2#!"&5462"&4762@    )    L #/?>7&3&&76$%3!21#!"514!2#!"&46321+.5146qfbv ?9oq!e`2  @ w>P]?gdMjX@  4 67.77'.'&7J3;Gtߩ> p&w+ d M͍/@O>tl d ⨨+w@!2)&'&67>%!676&'&.>.Vj j>~knkgi3#O`ok8=~#aw]++jjva(-ڄAll$!Oa sOPdK9TUJ7>Bpo)!%!&'&67>%!676&'&Vj j>~knkgi3#O`o@jjva(-ڄAll$!Oa sOPd*/.!2>5.'!.'&67>76! h_ 'IQ jKp*K; W8]qtd maVW =DQ?' tKJ^ ;K*InQ`s~cdTk[ @ $1=JWdq~%>7.'.'>72"&=462"&=4662/&462"/&4%46;2+"&%46;2+"&&4?62"&4?62"RllRRllRmmmm  . #- (  -  . g@@@@ -  .  .  - lRRllRRlBmmmm@@@@} -# .  .  -   .  - (  -  . @ !-&76 #6&'&"3!21#!"5143!21#!"514S([vxxv[(C)HghigH)  @   @  VTTVzNLLNz@ @ &3?K7!2#!"&463!21#!"514'>7#.'2"&=46.?6262/&4 @  @ `Ɩ@zz  D # D   D # D  Ɩzz@``  D # D D # D  &2>7!2#!"&467>7#.'2"&=46.?6262/&4 @ÌAqq D # D   D # D `pp ``  D # D D # D D*7DQ^/.!>76&!".5>7>762"&=4632"&=4632"&=4632"&=46# g_ )APcKLj Vlp1WD$nX}VU \s"]";CO?( _BKc`LLsm$DX0ZRjYOb````````D(=%.'>7>765>7./..?623.? a}nX}VU _s{`FXVF# g_ )APZ $ ee@aZRjYOa`A gGHh";CO?( _BGaH    D*.26:>/.!>76&!".5>7>763#73#3#73#73## g_ )APcKLj Vlp1WD$nX}VU \sb@@@@`@@@@`@@]";CO?( _BKc`LLsm$DX0ZRjYOb@@@ @@@@@ ",312#1"5475''#53%7>=4&/ @@i&00&@c  c@ @ `86&&68 )   @@ $%19A%>7.'.'>72"&=46;21+"5145##5!353!5mmmm @@@mmmmC  @@ '09BKT]fo%>7.'.'>75##5!353!5"&462"&462'"&462"&462%.762.76''&4>7'&>2mmmm(@@@@#  $  $  # mmmmC=L $  # $# # @ $%.>!>7.'.'>72"&'746#264&"#5#"&463!2#٣٣@$6$$6$_@`C٣٣|$$6$$E %6CO%>7.'.'>7%"&7%26'32+"&=462%&>&!6.6٣80 $80 $Z Sn1/;+ .C Ro1/;, @C٣٣C SS S1nS / ,;/1nS / ,;@ *26.'>5>7%>4&".'>7!5!!)! zzƖ$$6$$6II66II$ffoLzzY勋9@Ɩ$6$$6$AI66II66I@@a@ "#/!3!21#!"514.'>5>73!21#!"514  @  zzƖ  zzY勋9@Ɩ a@ ">!3!21#!"514.'>5>732+"&=#"&46;5462  @  zzƖ```` zzY勋9@Ɩ```a@ "+7!3!21#!"514.'>5>7%>4&".'>7  @  zzƖ)66R66)DZZDDZZ zzY勋9@Ɩ6R66R6AZDDZZDDZa@ *.'>5>7%>4&".'>7 zzƖ)66R66)DZZDDZZzzY勋9@Ɩ6R66R6AZDDZZDDZ@ $>>7.'.'>7'2"&546>7.'5.'>RllRRllRmmmmrWhhWr٣lRRllRRlBmmmm=A1??1AQ5DZZD5Q@ #!>7.'.'>7&7>76٣٣J J ٣٣DJ K @;?O!>7.'%!!.'>32+"&=#"&46;5462!5%!2#!"&=46$$$$6II66II````@$@$$$@I6@6II66I``` @@@ @&,59EQ>7%!2.'4637#27674&#'3"'&'&63#!2#!"&467!2#!"&46@lRRl`mm] "_A:s^ !`@:m@@RllR@mm r! @: @r! @: @3<FP!5.'#"&/&>;5463!232+32#!"&463!>7326?6&+5#"3Ot! 2 - YY . 2 !tO`lRRlB .YY. fM%#``#&Mf @RllR   @@ #(4!>7.'.'>7#63277!#67!2&"&6mmmmH #@%)'u')%6::mmmmC=  ``{@@ ").3?!>7.'.'>733#535#5#63277!#67!2&"&6mmmm@@@@ #@%)'u')%6::mmmmC@@@`  ``{@ !>7.'.'>7&76٣٣;@8z(@٣٣DnNFXn@@`%3>75#"&46;5#"&46;5#"&46;5.'!32+32+32+32#!"&46;5#.'>7!$``````$$``````$@`6II66II6$ `` $$ `` $@I66II6@6IA '77&76  ' 76'& 7&'.6&'6&'.&Ãf]w2wppwwpq#+>@N_LI ^IG#)" (<=MCfppw2wppw8N@>+#- IL)#GI^M=<(!@#Y%7>7%6.&76$762///.?'&>7'&>7'&462 Eu?r_E@s_E DtH8V0h^V2f  - # .-- $ --- # - $ - # .-- $ ---   GvDE_r??F^q>rGuD 0]e4V^2H  - # --- $ --. # - $ - # --- $ --.  @ %+17>EKQW.'>7'>7.'67&%'6777'&'7'6767&%&'7%6&''6&'7٣٢(!/m"2!* ## .m,' !"', !"2!)y)!2.. ##J ! 'Y ! ,@;٣٣p.#9':7*8%1?? 8  ? \7*8%/0%8*?2? 88 ? A&.;G%>7..'>&67&''67.'76&'%>. '&76  3;8;X?-K20\-0UHf8]uU?)[&W;~8;@DC##Bu]8Mf0;%6/76&/&"7.?'.>?>2/+rr,'!& c "(" c &!'Ɣx%%8 %ݜ''  ''% i@'7%!.'>7!>7!>7.'%!!.'>I6@6II6$$$$$$$@6II6@6II@6II66I@$@$$$@$$$@I6@6II66I .=3+"&51#4623213"&=#"&467#.46;5462@@@ @@&>76&'5.'&6%312#1"54`nc}}cn!ߘ  F;yyyy;F= @ @ $1>K!>7.'.'>72"&=462"&=46%46;2+"&%46;2+"&٣٣n@٣٣D[@!%!2#!"&5462"&5!"&463!2@@`@@ -<E!>7.'.'>7>7"&5.'"&.>?>>.٣٣mmz!@D$ 3$=#   ٣٣DmmfC?9G-  @ $%1!>7.'.'>72"&5463!21#!"514٣٣  ٣٣D @ (!>7.'.'>762"/&462٣٣+    ٣٣DR   @ #!2#!"&46>7.'.'>7`@٣٣`٣٣D@ #/!2#!"&46462"&>7.'.'>7`@ ٣٣@٣٣D@ #/49>C!>7.'.'>7'>7.'.'>77&'6'7/7٣٣RllRRllRmmm----٣٣DlRRllRRlBmmmm----@'-#5>!.'!>3!21#!"5143"&$$mm @ $6$@$@@$A@mm@ $$@-3??!&'732#!#"&46;>75>2.3"&%".762@.`7`r$6$2W#.6X$6$    @@@@6/%S-@u$$ 1%.<$:Q$$@    @@ E>7.'.'>5.'54623>7546232+"&4636II66II6RllRRll2z_@_z@I66II66IAlRRllRRl@z  __  z@`@$GUa.5>75.'>=7"'7;>7546232+"&46;5"&'.=462".762-lRRl@I66IO?5@3Ze.e.7@@_z@@.TS%&    0.@#RllR,@l6II6.I $8 9@y4X4e."_  z@@C)c6  +K    (.676.'?(,   1+O7  ()56B"3!2654&#%!!.'>"&463!21#!"5143!21#!"514@)66)@)66I$$6$$[   @6))66))6$6$$6$  !)!>7%!!.'>"&'326?$$$I66I$#KTKU282$$@$6II6$?"" +,8?!>7.'!&'>7!3!21#!"51453!21#!"514r$$$#I6@6II6 @ @ E[$$$v }6II6`6I  '09%!>7.'!7&'>7!"&4623"&462!"&462$$$#I6@6II6,,j,$$$v }6II6`6I-,,,,,, $0<H?3>7.'&?.5>7"'".4>323".4>32!".4>32R`٣$#\:(,mbj(- *ːː4f-5y@0=  ,  ,  , %!>7.'!7&'>7!$$$#I6@6II6$$$v }6II6`6I $%12>?3>7.'&?.5>7"'3!21#!"51473!21#!"514R`٣$#\:(,mb @  (- *ːː4f-5y@00  $?3>7.'&?.5>7&'RfѬ$!Z8(*x\(, (ȔǕ8h,5|B.  (45AJVWc!>7.'%!!.'>>4&".'>773!21#!"514>4&".'>7%3!21#!"514$$@$$@6II66II$$6$$6II66II  $$6$$6II66IIJ  $$$@$@I66II6@6I$6$$6$AI66II66I `$6$$6$AI66II66I  (4!>7.'%!!.'>2>4.#.'>7Jllllll11.>>.MggMMggllllIO3:3>..>JgMMggMMg (4!>7.'%!!.'>2>4.#.'>7Jllllll22.>>.MggMMggllllIO3:3>..>JgMMggMMg!C#!>754&'5!.'5>753>75.'!.'5>7!6II6@6I"9FlRRllR@6II66I":ElR@RllR@I66II6#:F`@RllRRl@I66II6#:Fb>RllRRl#''7>'&'7>'&6?6?'.[8 .2;[-ZOEA KZOEA KZ.[8 .2;[----[;2. 8[.ZK AEOZK AEOZ-[;2. 8[<--@(1:CLU^gpy!>7.'%!!.'>72#54632#546!2#546"&=33"&=3!"&=346;#"&546;#"&46;#"&%+5325+532+532@$$$$6II66II@@@@@@$$$$@I66II66I@@@@@@C>'.3!4&/.=.4>2!"&/.>76$= %$!=E=! )1$5 ,e)$ $ A"> 1!$T#<$$<# > B+$+-%  @@ $%1>7.'.'>7'312#1"543!21#!"514mmmm @ mmmmC=   %&26%>7.'.'>7;21+"514;12#1"=4'__`_xwxj(%(/`__`9wxwx(%(@#(:?Q#53+"&=335'53#5##546;2!5%!2#!"/&4?6!5!7!"3!2?64/&@@@@@@]GG#R cc G#Q dd  `PP@ p  p P@ p  p @ &3LX%'"&'3267>54&'.#">2%7.46767>54&'.#"26.'>7["PVP"[4EG~`,/0+[.4EG~3["PXO!>,/0+[F #!@"+L#!?H?c[[[,/0X4EG~3[!OZO!,/0+[.4EG~3["PXO! ?$+L#!?$+L@'3!!>73!.'>7>7.'.'>7$$$@I66II66II66II6RllRRll@$$$6II66II66II66IAlRRllRRl/ %/!2!.'&63!>77'!!7!>?LdBBdLV摑N C,^,C =?KK? J~ '#BO@@c*22*c$07;DM7#"&5463!232+".7#".7>2367!!3'#7'#>4&">4&"!@ 6\#GRG##GRG#>J>-M 6B"--D--"--D--` *I--I**I--Ij""'h`A ``-D--D--D--D-  $0<M]a%>7.'.'>7'3!21#!"514>7.'.'>7"&46;2&'"&46;2&/'6II66II6RllRRllR @ 6II66II6RllRRll `Z @%9*@*@I66II66IAlRRllRRl I66II66IAlRRllRRl  h 0 0`[".!'&"7#!"&547%62>4&".'>7@,z  %X,$$6$$6II66IIBB2 q e$6$$6$AI66II66I`[ &27!'&"!5#!"&547%62>4&".'>7@,@  %X,$$6$$6II66II> q e$6$$6$AI66II66I@)2#5!!3!"&5463!2!%!2#!"&546.462@@@@n$$6$$`@ @@$6$$6$ /;G>7&'7.'467>7&'7.'46.'>7'>7.'ŗ"쯯#ŗ"쯯#}쯯쯗ŗ;;"@^^@";>#c{{c#>;"@^^@";>#c{{c#>{cc{{cc{>^@@^^@@^!%IU^!#532#!"&'&'.=!!#!"&'&'.546767>3!2.'>7'>4&"  R @@ R   DZZDDZZD)66R66@   @    _ZDDZZDDZ>6R66R6#GKOS4&'&'.#!"3!26767>5#!"&'&'.546767>3!2!!!!!!   8 @ **** **8**  <    x**  **x** *&@@@@@#/!'%!2#!"&54?6!!%3'#'3+"&5=l  22@(@ T @88@` @&/;DP!!5!!)!!!!#!"&53!21#!"514!>4&".'>77>4&".'>7 `  `@@ @ `$$6$$6II66II$$6$$6II66II@@@` $6$$6$AI66II66I?$6$$6$AI66II66I@%!%!2#!"&5465.'#5>7`@I66I@lRRl@@@6II6RllR@(/3+5!#"&=#!%>732#!"&546;!.'!! lRRl@I66I@``@@RllR6II @@)-.462.462"&46;2!2#!"&'!!(,(\ "_` @ {R (((( @  f$-!2#!!2#!#"&46!.462.462`7p ````(,(@ @@@ ((((@)-06.462.462"&46;2!2#!"&'!!%'762!(,(\ "_` @ {Ro\\+<8 (((( @  f@nn@#!5%!2#!"&=463#3#'3#3#`@@@@@@@@@@@@@@@ "&*.#3#"&=463!35732#!735''3#'3#3#8@PxHh..@@@@@@@@@xH.."7!62#!"&54`  ` @ % {@  !-1!3!21#!"514 !%!2#!"&7>312#1"=4#3#@ @ c`cM qPqr @@ @@   @$-159!%!2#!"&546!!3#!5.'7!5>'3#3#3#@r@I66IRlln@@@`@6II6lRRl` ``` @#'+/?!%!2#!"&546!!!!!!%3#3#!!3'!2#!"&546`@n@@@@@@@@@@@@@ "+!!467#!>73>7.'.462SRl-__mA]]AA]$$6$$lR Dthzzm}aa}}6R66R6@$%12>##!%!2#!"&546;21+"514;21+"514;21+"514`@``@. @@ @$%12>?K!%!2#!"&5463#;21+"514;21+"514;21+"514;21+"514`@@@ @@@ @!%!2#!"&5467!!7!!@N@`@@@@@(-87!!7!2#!>!5%!!.'>75%!/&'$@`@ I&P$0??``@#ll#`$`:6I!(`@$?00?aMM@ VV +!!7!!3!53!#!5#!!#!"&5476 @`\R  @@@Xg  4!%!2#!"&5463121#1"514'>67/& @@@@2O}  2O| @@@@@@' e (d @ $8>7.'.'>3121#1"514'7>6?/&٣٣@@@@.D  *A  ٣٣D@@@@ .b0b@ +/?!5.'!3!!3>7#!!.'>7!5%!!.'5>$$$@@@$6II66II$$$$@$$$$@I6@6II66IA@@@$@$$@$@ #'7!5.'!!>7!!.'>7!5%!!.'5>$$$$@6II66II$$$$@$$$$@I6@6II66IA@@@$@$$@$ 7!%!2#!"&54653!33#3#3##!#5#535#535#5 @@@@@@`@@@`@@@"3462#!"&5463!2#!!76. &?6762@@`5D $  iLME # qOi L@@762%!2/&"&'46B@#  #E@  !.;H%#'##7#"&5#"&463!2+#!!2"&=4672"&=4672"&=46oJooJo@@   @@@@@f >73'.'>!.'56! ՙ@)_bC!3# rr+||+t@@!65555&#77#&Y@@ 3#3#53!5377''7@@@@Z----Y-=---@`@@@@-----=---@ !-3#!.'!7!!5>>7.'.'>7@@$$?6II6RllRRllRmmm@$$eI6@@6IlRRllRRlBmmmm@@#GHTh";26767>54&'&'.#'32+"&'&'.546767>312#1"=47"&=4&+"&46;22  2222  22>@/ /@>>@/ /@h @``)6 2222  2222 @ /@>>@/ /@>>@/ `@6)!0%#"&5#"&463!2++#'##!!%"&4?76'g@@oJooJH  }m %    ^#b .;!3!53>74767!733##!"&=#.'3!&767#7!$$=n% FI66I}}  `'$$G9QOFF@`@@6II6ED.)980@'3?5.'62.'>7.'54>2."267%2675."٣D<"I66II66I"7!..'@$6$@I66I:А$$6IIv4!*6B&'&6767&>>'.7>'>&'&>.kJ==c189p!["o981c=>Z >;;k#4  4#k;;> Z>V)  8V*4.BJ.5*KA%!7'#!"&5463!2%3#@``@Ȱ@0(@@+4!>7.'%!!.'>!2#!"&46.462$$$$6II66II$$6$$$$$$@I66II66I$6$$6$+5#.'#3#>75#5!.'!>@lRRl@٣I66I@RllR@@@٣6II/%32#!"&46;5!.'>7!!>7.' @6II66II6$$$$I66II66I@$$$$D*%"/$'&76$>7.'!2#!"&46}  }wrw|D{WƖ}  }m{D|wrwƖƖ|D:%"/$'&76$>7.'546232+"&=#"&463}  }wrw|D{WƖv```}  }m{D|wrwƖƖ|````D%"/$'&76$>7.'}  }wrw|D{WƖƑ}  }m{D|wrwƖƖ@!-9!!'!#37>3!232#!"&546>7.'.'>7 . 1 .DZZDDZZD___@@]]ZDDZZDDZB____@!-!!!5!#!"&5#"&5463!2#32+"&46@ @ @@@  7!2#!"&46#' @@-==.@B>-=- 7!2#!"&46%7 73@.-@@-=-E,62"'&472764'&"7.67Z<;88OOKK.h88<;=%%(f' $ &-23$ 88<;KKOO.i;<88=(f'&& $ &- $41@+/CGKO%#"&'&'.546767>;5!32+!!5!34.#!"!5!3#73#   EE   @@ v @@@@@ \     @E  @@@@"!!!'!#!"&546533##5#5@ @N@@@@@@@"!!!'!#!"&546!!3#!!@ @@@@@@@@'!!!!#!"&5467'7&`@L.-@@@@--@&*.!%!2#!"&546%+53!#5463!2!!!!@n`@@@@@@@@@@@@`@@@"'!!!!#!"&546'77''&`@C[.Z[-ZZ-[Z.@@@@Z.[[.Z[-ZZ-@'!!!!#!"&546!!&`@@@@@@@@!%!2#!"&546!!3#!!`@@@@@@@!!'%!!2#!"&5467'7f --@ --#!!'%!!2#!"&546'77''f [.ZZ.[[.ZZ.@@Z.[[.ZZ.[[.!!'%!!2#!"&546!!f @@`@#!!'%!!2#!"&546533##5#5f @@@`@@ $!!5!'#7>3!"&5463!!232n`|2: N9 `p@@ `@ !!'%!!2#!"&546f @U 7'77' 1!5!!f9h1Gpp@.^pbpgN@@@%1'&46276/"&47>7.'.'>7[  ZZ# [[ #ZZ  ٣٣Z  [[ #ZZ# [[  ٣٣D@7CO[gs!#"&=!"&=#!!546232#!"&546;546232+"&4632+"&46732+"&4632+"&46732+"&4632+"&46 @@@@@@@@@@@@   @   `@@ !@@ @@@  >.7%.>%&>&[X!"S`7JO3&JM.&ZY5M^#i(.W],L2i"%.'>%.'>0??00??0??00??0??00???00??00??00??00??00??00??>/.76&/&l   A ! l! A  #/<E7'#!"&5463!2!5>7.72>5."4>2.7264&"ZDDZZDDZ>-2.6R6"7&>23#I66IF:p $ r:@6II6@!v  u!  !! @ &2!>7.'#'.#!"2>4.#.'>7$$$$t. .551AA1mmm$$$$]]M7<7A11Ammmm@ .'>'&"276.c    +@c   + @ &.'>'&"2?>/764&"h  hh  hh* hh  @{h  hh  hh *hh  ` &>7>7.'>4&".'>7p;KTŗTK;p$$6$$WttWWtt VAUZ[UAV$6%%6$sWWttWWs)3"&5463!2#%'&"!&"2>5."`@E    -2.6R6@E " %,,)66@ '.'>#";26=3264&+54&"  @k  @ 4.'>264&"46''&76&'7>>""3""%5 X#S5 W#2D@44 =  (9, =  '8@ .'>3!264&#!""t@E @ !.'>"2676&>4&""",@&&,,@ *.'>>4&"3>76&'&>,B` A??t AAI' 6@E,, !RAAl/:)"7.'!"&=>7!#____`ZDDZ@___A`DZZD`  #!!3#!5!53!5!3###53#5@@@@@@3!>735.>25!p6II63&'bb'&I66I&tyHHyt6@@ !3!3!3 @@ !!!!!!@I"53!54&'.7>76>75C=#ODhO~EgXu@@@ P2A&%B?ch$fqey@~ !>7.'>7uuvXXvvXXvo*؍*XvvXXvv@)3#'''7&'#5367'767.'>>mm>77VV77>mm>77VV7slRRllRRl@UU@_`__`_@UU@_`__`RllRRll`  3!3!'5!@x.=-? @.=-`` 3!!#.4673!0??0  d?00? ((!.462.462.46237!000`000000w@!!#3 ``` 3!7''."26$00((Gf*f*u(  !!35#35#%#>7#.'@@@@@@@lRRl@I66I @RllR6II#.'55>7!3.'>7 U=ӝ=U U=ӝ=U =U ݝ U==U ݝ U="%3!53!7"&'"&'"&'"&'47!@@6R66R66R66R6=@ )66))66))66))66) @%"&'5#.'!%!`6R6`6II6)66)I66I 73!#3#@```` %!5>7.'5!35!!5#356II6@@6II6@@@I66II66I` 7''773!3!%5!----- @ ----( @@`` !!!@% @@BM@@a/o/%>2!!"&'!5>23#"&'!5>2!!"&'#5 1>1 E 1>1  1>1 1>1 ; 1>1 ; 1>1 ##@##@ ##@##@ ##@##@ !!!!!!@ࠀ %533!5'!@@@@@@`  3!3!!5!!5!5!@`@@` @@@`` 5!3!5!!!5!@@@@ *.'>>7.'?'7.54>٣s  @٣٣F2 L @ $%1.'>>7.'312#1"54;12#1"54٣# @٣٣   @!55>732#!"&7>;!5.'#!#"&=!"&5@lRRl 99 I66I@f33f`VrrV @ ;NN;V```%53'3#5.'>7>7' fw\XX\wf f^ WjjW ^f@'&>54&"@ # )  : $  265264'.     )'4AN[2#!"&5463%!3!2>54."2654&!"2654&26=4&"26=4&-"##"Z,"",Z,"",    "##"=",,"",,"  -   - <        }-=6&/&6?>'&'.76$'&6&/&67,&[ EK^-<@a*  [T? $.T>* 7 0Aa]-<  T>&#1GA#0=5463!2!2#!"&463!35#"&5!#%2654&"32654&"`@```@`@@@<L!!.'>767>/.&'&6767%6'5'&$?>/.0??0`0??t7IPw  %U85'RB= 4 PU>( @?0`0??00?Oxs7J  4'RU:)1 % r7(> +#* 1< +C n *       V &] Created by iconfont elementRegularelementelementVersion 1.0elementGenerated by svg2ttf from Fontello project.http://fontello.com Created by iconfont elementRegularelementelementVersion 1.0elementGenerated by svg2ttf from Fontello project.http://fontello.com       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     ice-cream-roundice-cream-squarelollipop potato-stripsmilk-tea ice-drinkice-teacoffeeorangepearapplecherry watermelongrape refrigeratorgoblet-square-full goblet-square goblet-fullgoblet cold-drink coffee-cup water-cup hot-water ice-creamdessertsugar tablewareburger knife-fork fork-spoonchickenfooddish-1dish refresh-left refresh-rightwarning-outlinesetting phone-outline more-outlinefinishedviewloadingrefreshranksort mobile-phoneservicesellsold-outdeleteminuspluscheckclose d-arrow-right d-arrow-left arrow-left arrow-down arrow-rightarrow-upkeyuserunlocklocktop top-righttop-leftrightbackbottom bottom-right bottom-left moon-nightmooncloudy-and-sunny partly-cloudycloudysunnysunset sunrise-1sunrise heavy-rain lightning light-rain wind-powerwatchwatch-1timer alarm-clock map-locationdelete-location add-locationlocation-informationlocation-outlineplacediscover first-aid-kittrophy-1trophymedalmedal-1 stopwatchmicbaseballsoccerfootball basketballstar-off copy-document full-screen switch-buttonaimcropodometertime circle-checkremove-outlinecircle-plus-outlinebangzhubellclose-notification microphoneturn-off-microphonepositionpostcardmessagechat-line-squarechat-dot-squarechat-dot-round chat-squarechat-line-round chat-roundset-upturn-offopen connectionlinkcputhumbfemalemaleguidehelpnewsshiptruckbicycle price-tagdiscountwalletcoinmoney bank-cardboxpresentshopping-bag-2shopping-bag-1shopping-cart-2shopping-cart-1shopping-cart-fullsmoking no-smokinghouse table-lampschooloffice-building toilet-paper notebook-2 notebook-1files collection receivingpicture-outlinepicture-outline-round suitcase-1suitcasefilm edit-outlinecollection-tag data-analysis pie-chart data-boardreading magic-stick coordinatemouse data-linebrushheadsetumbrellascissors video-cameramobileattractmonitorzoom-outzoom-insearchcamera takeaway-boxupload2download paperclipprinter document-adddocumentdocument-checked document-copydocument-deletedocument-removeticketsfolder-checked folder-delete folder-remove folder-add folder-openedfolderedit circle-closedate caret-top caret-bottom caret-right caret-leftsharemorephonevideo-camera-solidstar-onmenu message-solidd-caret camera-solidsuccesserrorlocationpicture circle-plusinforemovewarningquestion user-solids-grids-checks-datas-fold s-opportunitys-customs-toolss-claim s-finance s-comments-flag s-marketings-goodss-helps-shops-open s-managements-ticket s-releases-home s-promotion s-operations-unfold s-platforms-order s-cooperation video-play video-pausegoodsupload sort-downsort-upc-scale-to-originaleleme delete-solidplatform-elemeassets/images/shape.png000064400000002236147600120010011113 0ustar00PNG  IHDR?4= pHYs  sRGBgAMA a3IDATx_RVϹIӲ+t]ҙ dV@XAз>!<YAD;G61`Ȓ:oF dIw9DWdveEy Ё1i<'+uEcHKTM@_vin=b7"DztFRk+cƄ\3d "јPxG1y~(P^Q' OSo,~5i.OSTh{oȳ3*>~:br|[&O+D籴 L^V:Za5mqx-}=owt"^ď6{Dá>îݫax:e*vӘō]71-*\{U @Tt~vaK}9<-|{]2V{߮/Z>}`YƶE#`dVtRz7U&\ޟ<@.s#ȡVh ֩$UuёUu*6"{PBrƊ+a0Hf!$p'-%2dyaQrJfdG BF]n amp 1u?/OL`e]t\."y\e4h̴$ wӉ4ݎPC8k8\G^Tu RL?˷(-2H1E%no^ej]ۖeQ} q3hhxlV~2Z)L\">u*.FIENDB`assets/images/curve-line.svg000064400000000647147600120010012103 0ustar00 assets/images/handle.png000064400000000560147600120010011244 0ustar00PNG  IHDRPP7IDATx^Q @EQ]+uEpEj8}Ȏ7$0F`sq@Q 0 ĹF8W (Wb1 ~`&x 8 9666jm#t üǹ_x}M^lﯛN+$6.S16Xt3ɟLtB cKr*lB<8eEC1{KY@$e9޿۞El}X,U+4VBYRV1A꫈&󛲊4ȥRkQk (+j`Y4 :`Y4)hvo&i e›b#Ҋ6l~)@샵b.zύeCyX-̊[]c{G47 :Ūˡy(e#~}~rJsA 셲M N5fPKfJb@+]f%X 4]aE)ƴGYy$E2hg+ /E{G^h66zwxd :f ٰY( (ux VV$GjAѼr ,OwRzpo63&zύs+ tMm"% ~p*W m,~/E(ijDʮ7 `VfOl{2OpioSM N]}p/ewvA.e mzAQ9aDmGmjiFkCoWބ2#2LX9Sx(#tb/ lèa{ R'6ĵM2bTPf4[\({^%BH}=)39H E@Ht7$4xs Z_x'!7ڴP^ّW W4aS%<]F@,@a^ ڀ"Cf\[ n==$`1>GqO6ZUeAx{:D7b )ц̛ ڸZL`@ tuh1zj :hp=52P*h xJVN$?<r]QJ\%>>'W: N@qWQ  :8f/Bxɝz6%'0|ܶ t G_^NT @q Cߵ2ʩ}i߇|<3q{360xEx!˫c# Aߧ }̮ m`Ѿ;Dm"@xAxW}\ԑ ,u1I&q Fr0# {b fm6ytWFoe#c?fzp`Fw |onEa s-A B``h1gB~C9`Llp ϕ6s= A{?9o;h6JOޅ5aC1WN86/>-CCAF(܇ nČk#>F(܇ mht293q9'9m ('=#:i+#4P:4h6P@d`Vm('4<&A{%БOhu'p~pɃH*ta B.M=6sZ5'ph0&65 'mPН3G=ԛle Ώ}!'ׅX1=&[\lt[8Bzv$h mNhoHx4topr[jB\uGeػ13IC$B==I]tDrmhOlCS? irbv|% :-bA73|hXUYρh2cU6ID> ݅*4gmkcu*r J`:^t"Q'U :,4X# .Ѧ :MD[ O4veE z vVVX5ClhIگ0jVAayZ0pr:Wx4YkBPe9 X KBaRmlF0,kXf4&WX ,)`9 j)&1m07[ki唴7)wi)q}Eݰ$)0$Ԁ2  E{Ag1ɢyIx'So ombZk 7e+)L !āƂzAQ&7P K/<JtAѶrjj!rDCG^RC8`&V29%5:ЇI˪'W(ei EJM 8wD{0̛ +fuU7nj6^ s=e(4)6^&ibdFAE'!<,wIY+f Qً@2Lx2)Y>I:d~ŨPmUg@eUy )hrZ9m`N_1PH>^7ER,} +.(䠤g!=R C_!9{ (4x,`Yhˉlj|ّ=Ͼ]!nS0`~pnрG\]`9oGY0Ik Td`ө{zm|Ox=m|OoAFqMoA7jUΧ?]S!AT Z᭧V,<rA`S\= ZP D9`Yj :uth״t ʩ ڵ{3r#Cxhc{[)10}{ :0FJVepĝ"h>Xo?t$jЛ 9+Ƽ族~%!̴!i!W@qX6 `Mm$RP> 9>71> i(Qq#<n{//3İ> rϫ؞&I;#D@0A m|_g"`M۞A A{'i@<^ـ}.@ض2D} 0 +B{e &f+.Ʃe&3my.gR홨De۲hc~1 }3P02BoϾ f$óaV`Y6Q?Bx !6|^ {jOyMnF|p^2^ÒP@gz6j!th,ggA@x8d F΁7|u!a$(5{Jx' E9$iΓg9aYr\Dy"yBqk#_`5-7s #GJsJk;, kء @|oZ{NKᄖ"s u+T-:Bd p0`(8z(vòh0 :WcHaLwJ{\ߵi kՠH >Drm TS e^.;&"7s/C3\^ [^{)̽\04X"s?W]A #=d`~4)V :`YYO"cZ<ǚ8[e})9EC1iRAg!Hgk-t55tc oF`- olM|) |bLAJ t)ڵxUjC5h,֗kذ<1.h3TR(O'zkR*"A( pb}KVAe!)sAp+ |,ƕSZP^Mx)ZLF5ho3 eJE@P4j!A9-h(|%DVfݞP^UxSfu7er/i~)@b.(=b偎2[5Hûe 2[9_`{;cC e/›zRFt^/ed{ !RF~w t)Lc<Q%H }pSnϿd="ŅWHwd/oWHh~S̈́A.Et6@P$:h>x R1(h_`Ymp@P$WNim }^g߮60^%zύrK ti@S`"  >Ԯz {Mik8(k8VI`&t>/:|MOA ^ &v%`W2rfBBérZo9;L`P i@t h[Ji)˩^x:=~߳0Ҏҥ>0픚 /}JPr vJI{;%c4 F|p;ڋSsugVN$?,%Hqf&`y2xta>r: #83!7!D{i WڑgbCis~ڧtHڙ!Zqar ml0|0˯&^L,mǖ-r,= dˏu0vrX쉒РCFN>dhp;%QеsN8vN>{?\}͊ er36!{E!_9I󛹗b.z/t/]wX'nt?ޱ>}0{nVL@T.N%̣o澞x3v4#C̽]6ɤ.BU/<2NE{ ~OO,{9ByvY›9v95Z x  X7<|hgx YDe?òݬ3U(̩7Jy+`~Sr˯+y6 !eAV@XPTVZ^UVNq,MxsX߻X7fB kCC~N/>X+N,"ޒP>N`|);s0v7 !D5C}ahaV@P,t4ب ( :-[J0&kك6B9b#[X !R, K7QF)!-6BX,babZ|,S +FB@kbUxsh4offVCa=h 69:, 4Xt`kv"l@|#d|)X}B`BPJN@MگRYm, @ |[i"@K>#V(G۩g.%LX5H ~oYb"eVAJ~tX 1YLo+aq"ef3+Z("]z2ʳoW /!e* -)#mVLگy RrLІecGuYV4!8, GA"vlڀ" Bxi! ϟ-P`+С*nj2: ->d9ڋ֕SB#Cx) 0Fmt\ρTj1BJJC5{ [RZ!h>XҕS ڨ^i-#WNu?a~y838+萴S :*S -SS :X.hG~~ нoA| ]%bs|=7'ZA նg?V[,GZ#% H ,Fhо=hwAxm,އx@n3a9b >Xmvvm5m0E6?àoO6F!n^Se~v :!Gu`zƶ=4zGh/D"BBf=Bx!, Go^-6%%` +?=NN}V>B{a>ș$lv7;sdΖuaXͧ^n&} G>a#ZxI7tK\?O["G' /Gx5`ãk<33u}cqh0/>EE|0#G>B{yW#/pp |VA`*/%h5{= gvy&] #߶C{R .6𒮎*ݿ I.tKRh=BmϓJbzd+L[W[1sǝC {v |pW>,}yܩȕA W'TqWPCx` {QSf gA@<]%!0YhC%5m ʛ]=G?a_A=y?: %o7GPc~OދU7a!TGQm(UӃY7 vOyP@\9C\ {72a&ɵzB̵Pe]mrqu8tKQ L6 oOhP靈#ׁf n erQ o;!Dr]x7$BqOZYqmG{7F̈́=wesJ"dNw- !=܆jD5Xy :\>XsR[e?sMaAULn[i=4,H`0ϰPygCCKj{,~'6fpS݌8r#h)P?rj[vX6)[L49V3B Ig~ :M,6+Ҵ"aŰ u+Ɨf|dBRU X!UZB)H˱ƈs ZX_Kx3BjG- Y}Ti6)V tVBP u͐Ղhj]3C>X]bXP> ›b3[1)dh(2BX1m3,ju,!m~D {uS>ؘ6L=+A lUxS4/4vf3a5HQb׻6݈NcG]AeZYZv|, :qxm&or[IENDB`assets/img/card-brand/visa.jpg000064400000046515147600120010012265 0ustar00ExifMM*bj(1!r2i ' 'Adobe Photoshop 24.0 (Macintosh)2023:03:31 14:28:30Ҡ"*(2HH Adobe_CMAdobed            o" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?꾴}cWCEZiֈ_Eyy/&:G+nűhn}ddR1mz[\dE@qyIF15KCt~ @V{%GI%Y>pI$g~P?t}$U @IV{%GI%Y>pI$g~}?t&I$YM`1>lc}W1v.^gY?5c׫kջGc {jwlIVFxjH!<鑩Щ]K<ԱeO_-tc9R'"qɧƔۘ4.-fqWXJmïuG?֏1 bH#iHkr^FAE6~$ۅ~2(zMcEn} ߗoZN%Zʫ{jc\ e~\NǮW:-lf&] l.ݞ#9 NJsN]"a"u_YOY>o-ߢʷ9^D.<@^_?#Z&.c 8C~iizC0:u5dS~Y`97=uߣgb}'3 X*cY>w~?:P<Жg FfCA|:2ID RWZK \jI]_NU&d%/ҩ]K<ԵeO_-tcaˤS7W&=uOnGij̓$ xlcM%b]2)v>C4Ƿ}o[?Raz8N>d{KOߤa`cFyf;X])SPWغ x<3S͉r@pG ÔDNm}b뇥]*aUکN'hhr[Zi~3(XXUkُk8cz 02CY7}s9([$g0IvK|ө]K<ԵeO_-tct_mem_LoO^uS63\,h mUO߶~ ;I?>|<~n/Y|2csǧ؏ԠLƿ ߫]ik39/{,mfǯ"הL$'e15{f=\c}a4ng.{Z~y'ڒ1&EݩBR)]_NU*JB:w $$ԩ]K<ԵeO_1tGO?xI)ԒI$$I)I$JRI$I$$I)I$J]]_NU*A]_NU&d%/oOG賚۫ti{`K=a ~k1={ksm}J͟NKVfa>U[]7^XNj uع<+138.ZJޔfSXҭ{~?hj{SIZOcJ_r)جoKBj~b/ٹ~V7^tRVfSXҗܿ +zR~~ЯjZ+_r)جoKn_?){~?hW?-Tٹ~V77/Ÿޔ_+ڟJܿ +zROcJ^/ߏOKU%kn_?)~جoKUOKYl}Q~g_-V+s`ː0eaW˲j|y,{߫]2dvU{=oM[JZhyYbR1IPhotoshop 3.08BIM%8BIM: printOutputPstSboolInteenumInteClrmprintSixteenBitbool printerNameTEXTprintProofSetupObjc Proof Setup proofSetupBltnenum builtinProof proofCMYK8BIM;-printOutputOptionsCptnboolClbrboolRgsMboolCrnCboolCntCboolLblsboolNgtvboolEmlDboolIntrboolBckgObjcRGBCRd doub@oGrn doub@oBl doub@oBrdTUntF#RltBld UntF#RltRsltUntF#Pxl@R vectorDataboolPgPsenumPgPsPgPCLeftUntF#RltTop UntF#RltScl UntF#Prc@YcropWhenPrintingboolcropRectBottomlong cropRectLeftlong cropRectRightlong cropRectToplong8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIMD@@8BIM8BIMApaypalnullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM o  Adobe_CMAdobed            o" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?꾴}cWCEZiֈ_Eyy/&:G+nűhn}ddR1mz[\dE@qyIF15KCt~ @V{%GI%Y>pI$g~P?t}$U @IV{%GI%Y>pI$g~}?t&I$YM`1>lc}W1v.^gY?5c׫kջGc {jwlIVFxjH!<鑩Щ]K<ԱeO_-tc9R'"qɧƔۘ4.-fqWXJmïuG?֏1 bH#iHkr^FAE6~$ۅ~2(zMcEn} ߗoZN%Zʫ{jc\ e~\NǮW:-lf&] l.ݞ#9 NJsN]"a"u_YOY>o-ߢʷ9^D.<@^_?#Z&.c 8C~iizC0:u5dS~Y`97=uߣgb}'3 X*cY>w~?:P<Жg FfCA|:2ID RWZK \jI]_NU&d%/ҩ]K<ԵeO_-tcaˤS7W&=uOnGij̓$ xlcM%b]2)v>C4Ƿ}o[?Raz8N>d{KOߤa`cFyf;X])SPWغ x<3S͉r@pG ÔDNm}b뇥]*aUکN'hhr[Zi~3(XXUkُk8cz 02CY7}s9([$g0IvK|ө]K<ԵeO_-tct_mem_LoO^uS63\,h mUO߶~ ;I?>|<~n/Y|2csǧ؏ԠLƿ ߫]ik39/{,mfǯ"הL$'e15{f=\c}a4ng.{Z~y'ڒ1&EݩBR)]_NU*JB:w $$ԩ]K<ԵeO_1tGO?xI)ԒI$$I)I$JRI$I$$I)I$J]]_NU*A]_NU&d%/oOG賚۫ti{`K=a ~k1={ksm}J͟NKVfa>U[]7^XNj uع<+138.ZJޔfSXҭ{~?hj{SIZOcJ_r)جoKBj~b/ٹ~V7^tRVfSXҗܿ +zR~~ЯjZ+_r)جoKn_?){~?hW?-Tٹ~V77/Ÿޔ_+ڟJܿ +zROcJ^/ߏOKU%kn_?)~جoKUOKYl}Q~g_-V+s`ː0eaW˲j|y,{߫]2dvU{=oM[JZhyYbR1I8BIM!WAdobe PhotoshopAdobe Photoshop 20238BIM http://ns.adobe.com/xap/1.0/ !Adobed         !1 @B3A27"#5 !1AQ2F aq"B3@Rbr#Cc460s$S5 @!1BQ"Aaq2R±0brC :93ݦw@1c;H &Zaeӫjfq}LKl?# QX~2G@ OM'XdNv5e,N3_9`8'd02=4bOC< =rw#<ɘkߢ|=^*Sx;G=7^J;k5曅N OM'XdgcQo4%'ESsULF٬\d|] ?]U&6ћYFNc! YKFX+ 6ա^7ZNçhOW1QX~2G@+֫dc$֡siʅ.jvi<~jX}xڝ׸y84u?1HH2N;mQͱ9Ng OM'XdFNc! 2=4bOC{qWšrj굫Ζʯ+j0Z{&~}/qhܶqbv(Mz#LF]sy1ŏOdiٸ,ǖQYh9XA,W^@9ٹ6p7 rVllIs2;VlEksl$"͟~bSCyر_(L1Vi q0hfY՛ ˝fD,4Fl -ŻL}=on]\"Hѥ\ad9&Q\hЇ?&Ӷ:e|>Ŋ|T^LLqĆ`#/%k߉e$e֮EdPKX͘%̴sZ-H%=3Zx? ]f٭i #{++ժظКMWX=bZc2 =cU==ܚ* t:jZVEj+QZVEj+QZQ!1KvDT)EHm Q˨r9u]G.Q˨r9u]G.Q˨r.%6y 񤬼}E}?דK>sr|ӎcY/ @\QqTU\|uyG1,|Z*mmlr8!En^1Z1E C9XIx7 lO ܲ_9-df䋯bULYKauZ#k-ZVخg68#K>"8y#47'1{#L94ŅKe4f㷸.Z=A>ϖM26MM={zqQfC}]aɇ ܝ#ݶO}%+M hggcBU!JtL˿cb@ZZ EtcY/j7-ke`kuhYq z(ֆO֓k.n"]9ds . 4!DH#R]B.%8]_}%N9ds1,}8Z5O ՚Wuudlq㔜 Vr_fLfS80-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 # Le`V۾n:=wpK>f#z|M .':w 㗵w 㗵w P.( M|8(D ?A&agb=tm̶6Y;%Hٶ6nwtϒm핺w~HgQbY{܇ ˶ss$ |G/jA+ywc7o ۻ˭>e~czxdn{K[8lqW]ŽN7S]N /LYmn9{Wx"Dh^s?kwk\espYXt޽1m/܅]f1Ӵk;!pl#=7[ ܏$9{Wx".̜6hHomm#{ZY$|#'e𙼎' b>vCroڝ̈#+5#^ȃJf_eCk2~c="xCw\f͔l=,ݱ/%ooWݙ4-G4Wy!ڻy@>X틮hy{XǾrr[ -CYѲpw ;cǸ%wha;TCw #WMUJ:)48"j4? jB(rDrDrDok8mF"7ܛwpۇlͨPBU T*PBU T*PB\ v϶{mMzFs۟?A# -Y+K9+K9K芢. HN^w^e'GZ|HLaZ|M}$d`\5?mtlϓB~Q"R GY+kț4L(t*O&ADga&UVh,KQ3&o#I: dÃĊ6\_BbW&=D``^La *;K9yu}4AtQKL@ItSuFsig0Vsig0j"$dTg3s9g3s9g3j? L iG(&ҎjTY FENx~o횋D^n#Oo*7HQMR45>Hi&,0͟0COFuQMR_I* CB^aPUQMY2$zWQ*]NtSCH&]CUMZ"ghCKGYI@j8 D1X N92&b]D(7G5֔pZQvQDH;4}T?R%譠[W !(#/I"y[n8k9+^J%sW\jW5y+^J%sW\jW5y+^J`6$M1x[ѷ{4"l3][.T=$dǍo]?8؋k8JNL~n< (ab: JltZp@9 On<6V9Z F[{A_ ֭=vV{;{hhu{p\B@Ű ;&{K$p뷺r[& d!'gqZ<++ZyK c39pUZ,I;*Ȩ> `[VWvGmk+tѓ5|BNчXt0a!Yb'r4H南R]e+;m*ɂXr`6줰ӭ_WIyBy I\E"BP+bѯV;CŔo0#\Wlf覉F\֣nVhW!9ƃܾI/\>֐[XH='ӭcQ+8Wo0fmfuOSz5K滓~yB[Z[!wimHPibi#o>k-jpO-@!,av x%wDY!FjO'֍-$篛hu{pjLc5+bU̾%KynHpVNbX3]NFl6 2TF.ƔՃၻyn4W֟fʺV#bFc+Z僰Ø&E>tjOjX/!x&+r9jI#i#%6t"8;l{ D.nXaN6s|ՖoX䁵&~CoZBIꩧU^;|7Z iZlms I? E~d-4̟zL~:ub?i D[Fv3 ާR^I ;gOZ-Ag Gl fauPzdSYO8Vz^(vo7WVydž%Ӌ{ԯWg(ՎJ&Ui:(8e!K;H⺇>Z厩uobfd H(`]n0OknK ض#2{b$A" P;&|7Z *V ؠwXc noa|7Z FWO~VmX&f߶~b7pqmۇ,-u*y~W>~bs^>'^:0ƞz*2>_VX[}o[}o[}og mZIy;P8ݹj}jr"%;z8ٷo;-s[ wO[ᮡPu:u]CPu:u]CPu:Л7Kpgassets/img/card-brand/paypal.jpg000064400000047163147600120010012611 0ustar00oExifMM*bj(1!r2i ' 'Adobe Photoshop 24.0 (Macintosh)2023:03:31 14:27:23Ҡ"*(25HH Adobe_CMAdobed            q" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?hۯi&[}79}:k[}jδcGrs~ٝ92W Z[>?srZW&Y+bI{prΏm{ G=^?v?bܺ?[e-oAeݏخ#ܽN:?j)zϬx?X0~Ջ,fN;SuUZ B?R Uk{ֻ"@Ncnw]b`e/ǐ[N5hd'VvU1 In|ԒI'!I$JRI$I$$I)I$JRI$I$-_Ve7/9̿1N9hd'VvU1jKr]stuu`puоP1O۱̵(sPj@n%@&C^8°dLJ~$'Ldž?-u^}Scfu\v=v[}hskV\ ڷ]]iOGeK1ƽz6<{k7]:HE5E[_UռnsG6?o!IDI*P ^x9'0|;wٿU:oڶu]`5OKmC\(eA#E5҉_U-Ve7/9r7?GoN9hd'VvU1jKrmב+*kv򼰐Hsu. I8Wҗ/8_Pz @vkYQsq_^Z_\w]`e}b?XmwїٳϦgꮇ;}]=Gba>T,lVcS$}01#9P D sA׺=im6X cK{[۽簾}f0Q[Se;ڴ?R?XE=FI3Z.wIGPWu}c} Z?ڤɒxN"7"cvUzeX'anNj,.^1Z?OJWz_O5+iŬ clwl} ι+-BcR^ʫu2aa]:]cןNslg!1і˫}nc*M;lf=wfřw[Ø?|([c=9?⺏OJF~}kkcڷҾ_S``?--,ɏNg!QeH,:I8nK*~9s~ղީ}|zgK3Q^3\ck{_V[ceu6WcnWkk>~?~bߪ;o~SǕ{,oyzV#"%8e-tӢn ˛Y[}~?Gbu(+?IY)lMgKwzc-Vr7?N9hd'VvU1jKrAGj.goRV%mٽϣ2eV.E"cdb^N-Á i"u_Wo+֬wc][ךy3_3? #phuEC!1o1 wzQ5Qc{mʱ#nK;Szzn q,з,o=6k\Đ F\g'LѓXpeqcoOun]R07qiSRII.*]Y=Rٙ&fZ`w?ŞF kQoWm@X7 Tg4b*Pr +;3 {1g$1m+dK}Ku>soY&۱-ka۶ITI$mKgo+:_sիlMgKwz7/sL~aN9i}d'VvU1 InTI'!I$JRI$I$$I)I$JRI$I$-Ve;+9̿1ߍf7֞] Zڱ׭wzU93ICף#~GF/S4=z?7 zo>3ICף#~GF/S4=z?7 zo>3ICף#~GF/S4=z?7 zo>3]b=8]rZ;1uw5u_QTRp$[?TDžI)%I~I|J~I|J~I|J~I|J~I|J~I|J~L]$TU$?&Photoshop 3.08BIM%8BIM: printOutputPstSboolInteenumInteClrmprintSixteenBitbool printerNameTEXTprintProofSetupObjc Proof Setup proofSetupBltnenum builtinProof proofCMYK8BIM;-printOutputOptionsCptnboolClbrboolRgsMboolCrnCboolCntCboolLblsboolNgtvboolEmlDboolIntrboolBckgObjcRGBCRd doub@oGrn doub@oBl doub@oBrdTUntF#RltBld UntF#RltRsltUntF#Pxl@R vectorDataboolPgPsenumPgPsPgPCLeftUntF#RltTop UntF#RltScl UntF#Prc@YcropWhenPrintingboolcropRectBottomlong cropRectLeftlong cropRectRightlong cropRectToplong8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIMD@@8BIM8BIM[2023-03-31 14.18.06nullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM Qq5 Adobe_CMAdobed            q" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?hۯi&[}79}:k[}jδcGrs~ٝ92W Z[>?srZW&Y+bI{prΏm{ G=^?v?bܺ?[e-oAeݏخ#ܽN:?j)zϬx?X0~Ջ,fN;SuUZ B?R Uk{ֻ"@Ncnw]b`e/ǐ[N5hd'VvU1 In|ԒI'!I$JRI$I$$I)I$JRI$I$-_Ve7/9̿1N9hd'VvU1jKr]stuu`puоP1O۱̵(sPj@n%@&C^8°dLJ~$'Ldž?-u^}Scfu\v=v[}hskV\ ڷ]]iOGeK1ƽz6<{k7]:HE5E[_UռnsG6?o!IDI*P ^x9'0|;wٿU:oڶu]`5OKmC\(eA#E5҉_U-Ve7/9r7?GoN9hd'VvU1jKrmב+*kv򼰐Hsu. I8Wҗ/8_Pz @vkYQsq_^Z_\w]`e}b?XmwїٳϦgꮇ;}]=Gba>T,lVcS$}01#9P D sA׺=im6X cK{[۽簾}f0Q[Se;ڴ?R?XE=FI3Z.wIGPWu}c} Z?ڤɒxN"7"cvUzeX'anNj,.^1Z?OJWz_O5+iŬ clwl} ι+-BcR^ʫu2aa]:]cןNslg!1і˫}nc*M;lf=wfřw[Ø?|([c=9?⺏OJF~}kkcڷҾ_S``?--,ɏNg!QeH,:I8nK*~9s~ղީ}|zgK3Q^3\ck{_V[ceu6WcnWkk>~?~bߪ;o~SǕ{,oyzV#"%8e-tӢn ˛Y[}~?Gbu(+?IY)lMgKwzc-Vr7?N9hd'VvU1jKrAGj.goRV%mٽϣ2eV.E"cdb^N-Á i"u_Wo+֬wc][ךy3_3? #phuEC!1o1 wzQ5Qc{mʱ#nK;Szzn q,з,o=6k\Đ F\g'LѓXpeqcoOun]R07qiSRII.*]Y=Rٙ&fZ`w?ŞF kQoWm@X7 Tg4b*Pr +;3 {1g$1m+dK}Ku>soY&۱-ka۶ITI$mKgo+:_sիlMgKwz7/sL~aN9i}d'VvU1 InTI'!I$JRI$I$$I)I$JRI$I$-Ve;+9̿1ߍf7֞] Zڱ׭wzU93ICף#~GF/S4=z?7 zo>3ICף#~GF/S4=z?7 zo>3ICף#~GF/S4=z?7 zo>3]b=8]rZ;1uw5u_QTRp$[?TDžI)%I~I|J~I|J~I|J~I|J~I|J~I|J~L]$TU$?8BIM!WAdobe PhotoshopAdobe Photoshop 20238BIM@@nullnullobj propPathWrPt8BIMhSD"uNz8BIM http://ns.adobe.com/xap/1.0/ !Adobed          !2 @1#$(0"347A !1AQ"aq2Bs6F @Rbr#tђC0$3T!1A @B0"`Qaq2R nyb0A ;]2c5ך '3^iGaL=-g׬2J֖zZ3H6JޗZ3H6`NژzJ3HDL&A@f :חח7٭'ӄ2#n&cFߕq0_'mL=%פ3uz[ox" DS3vm4b%])iL}?ff :qg|6_qn4%q7Vr疙v:'ߧӷV1jk:(@l0g^Z׌jz|]vLU}OT@|S?_-T]\^vßuEFSI_u_rhkie\/Ϸ*+헚2vKU&bde]q6`NژzJ3HBg߯;)A\y<;tY"SqHFy@0_'mL=%פ d!$H vWz@%0l0g^l1_Vl*7zyӦzZ>P=@0l@i8"bf=9==Ohz{C==Ohz{C==iIl(`=R$X"4}a!ÛCDf3 z& f"B$ '.nDŽ"6 m` OŠ!撕. ,]U_s2Y- .%}0J"(yNpih:sXQ@B̃58~oTd6xmlu\ӈJSݘJPËTHe6xm:m'uvaԉ!Aq7%醲jDsʂEIi3 4qYS>jG9KRG;]=($՜IĂINnnǂr]j[ 2왨"]I.2H4&es7]Y]9K4NrPäMȜzt67Dl'5(.I[m%-!*2a;pstH~? F`W7D1}W7Dn"ÛQ&ؕ6N%@d1C d1C d1C d1C d1C  97~'C̏2<#̏2<#̏2<#̏2<#̏2vwvOh(XipyhQ̓ b xcdž<1 xcdž<1 xc.7\>ou~]a]aa]a]a]aa]aa]a|n{Rɿ@z,s;9"1:l._uY ]>KvZ/*X/'+Q/'itVcv'􆫧P3Siu:ϷNY";4vʾ; GZNյZ%':F5tH<ӻEv'uct2vDoOM*g?WW+cE^]5f;svwGHMZ- CojzcK銦uk}inUPʿhΉ:L*]?vVҔk8&AA8J༟qdWCԺgYE-휫LܮX)uY]9̵H ԇ\*b\턧pVZ?5O2ʯ+˼ [[=U~rJKPQg`E'kጯ G4ᵔ9[J2Ҵܝ~9Q/Ŵ\E+u+m rDu%SյXۿNہe&١ߛg1!JVbrc+Q=g&eJ{]jPUN0q2@/'aЎ {O GJ༟zį P]bSl9McDP\}?RiH6僴szu.w%Kr=C>=C>=C>=C>=C{]_?<,Xbŋ,Xbŋ,XcQүYmmˣht%]D] 2ѬQ$zw.N RUі$$KW*5I!d+-Gr܄sGIbW'd{++EXd bZŽ~NF,/ Jn]rۗFҟ-˺}vӉq8N'q8N'q#_?#o$%74o}Dm:)z/ѕb \hvUL2dɓ&L2dɓ&L2dɒ?T/40TE]=3SKfxbe8}i?}8-G*o%ohf6n_#ohf6no#ohf6n_#ohf6no#ohf6ns^6玖sZǪZ@(H()GUSHKreX+t-g.[qjOn[JG*WVݸ nzGf'[~FXʣN89g1Hc͝,D0VG us:$0xsG0x'`-w/Oe6QN@J{QSO}^B$"+nMV#y(' n{=Kom$\B;6pnuK Ly9YHXn&">R 2 GFy\$#o 7LDgg2_+ j#*fO+=H,b|U겞4ؖ }V3*,NE5m8lێ:WcV8l$t{@15+f>nu6\EpnL/O;?tT9ms:4iͦfEq+VS5e}¶л w+=AïGwo٭sn8pƴ($6K ӕo !Ydrt`-w/O_^0S‘F? m>B$q]\Z.ug +PEOsȒ2 irEsnOQeB*K~#gr7pisKQNӬe nCٹq/:ᗋk=q jTKIl/WHѭagJJզcۑmFz0vM{h1i̹P2?&~{Z׵5DvH$* 0:m"O10$NJ{ fx*cy ݡ x01rn⣎MUQaaŨu6דhv5AƘtG/m\t=.PVp% DPGz揈,-$Q07SZ+_?EB<ˏ#2.趺-J7932v%;#Uꨭ>t}y%,vvEaumd٣ cln%jHXNdHwQŰ_QZc<0Ǎ#j8J8o-ݪc_ߌLjX]$fނ,٤T0{\-o% X&R1۴ ƒ8$,h[6 nrY [,8^'m^1#.?GRz?'?!{5G׽^z{5G׽^z{5G׽^z{5G׽^z{5G׽^z.olRiz?Ss`q<|passets/img/card-brand/mastercard.jpg000064400000041326147600120010013443 0ustar00 ExifMM*bj(1!r2i ' 'Adobe Photoshop 24.0 (Macintosh)2023:03:31 14:29:01Ѡ"*(2 sHH Adobe_CMAdobed            p" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?>}d0r7}l7G_sm {W`dA:2kMgU_Yێ;ױzV!a^gɿ޳J%gBI;tk7Dיro҈I%eZ_ܛ?_k7D$Ӳ/?MQ/ܛ?IiVy&z(?MQ $KgKy&z(ZvU^gɿ޳J%gBI-;*3oY^oɿ޳&ZvUq:Zx>8k60:U~T/h1B>Dv/2WtHi& ]>r>r\|ԒI$$BIDGxBg2j0└`c|.{48g[/^8ѤZ(=/^| fqGoҲKCt<,b1mˇUWӘ+2\>s*V?0HώCCcw-l?2#AR]D}=*U ƶwv#'_ZǹI֫7TT;>r>r\|ԑI"n̅=9$Gyx },D/"I$;*W0ߦMcq!Tm˗[hcCZ `(nZNؙ{=O?WabhAZwVNhWuόG6='Lmn *x\Xo4[&D}:[?3#d,`یuy>7_Ai|/-I3Y#R9$G_)&D=ԬtS QkUՎ*`?iF>r>r\|ԟ!/_+okZ_dS}QBRI$[,|Hk,c*?y~ uCcWq&B֝wUϘmJMILkI(r>r\|ԒI"m2RCkStM?55葰y^1ψVӏdI$:)s-d?9op+W~ho8C~gks̽C{|V5^!OUq"^<>V|Uu$J*C0`]݂+6;[G{9pc%qzW͍ĠI#m~o#.g0Pr>r\|ԒI$$ BI!(pY1eɊbxq:@a8Xz ;{CzHlcȓ}U2~5O6en$+rI?YglTDco\ޢ@4q٣';1TI%1DCD"?F; SI%"+7TTucʘjZbݎoAֻz^: 6"w|Ogޕz{ywPܴF+  DI)AQY$t(?~⒨Y$t(?~⒨Y$t(?~⒨Y$t(?~⒨Y$t(?~⒨Y$t(?~⒨Y$t(w=W3Nw;&[;,u,׊.y8Xژzо}Tnn)*kwKlpݑwfѦ@F/Photoshop 3.08BIM%8BIM: printOutputPstSboolInteenumInteClrmprintSixteenBitbool printerNameTEXTprintProofSetupObjc Proof Setup proofSetupBltnenum builtinProof proofCMYK8BIM;-printOutputOptionsCptnboolClbrboolRgsMboolCrnCboolCntCboolLblsboolNgtvboolEmlDboolIntrboolBckgObjcRGBCRd doub@oGrn doub@oBl doub@oBrdTUntF#RltBld UntF#RltRsltUntF#Pxl@R vectorDataboolPgPsenumPgPsPgPCLeftUntF#RltTop UntF#RltScl UntF#Prc@YcropWhenPrintingboolcropRectBottomlong cropRectLeftlong cropRectRightlong cropRectToplong8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIMD@@8BIM8BIM=visanullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM p s Adobe_CMAdobed            p" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?>}d0r7}l7G_sm {W`dA:2kMgU_Yێ;ױzV!a^gɿ޳J%gBI;tk7Dיro҈I%eZ_ܛ?_k7D$Ӳ/?MQ/ܛ?IiVy&z(?MQ $KgKy&z(ZvU^gɿ޳J%gBI-;*3oY^oɿ޳&ZvUq:Zx>8k60:U~T/h1B>Dv/2WtHi& ]>r>r\|ԒI$$BIDGxBg2j0└`c|.{48g[/^8ѤZ(=/^| fqGoҲKCt<,b1mˇUWӘ+2\>s*V?0HώCCcw-l?2#AR]D}=*U ƶwv#'_ZǹI֫7TT;>r>r\|ԑI"n̅=9$Gyx },D/"I$;*W0ߦMcq!Tm˗[hcCZ `(nZNؙ{=O?WabhAZwVNhWuόG6='Lmn *x\Xo4[&D}:[?3#d,`یuy>7_Ai|/-I3Y#R9$G_)&D=ԬtS QkUՎ*`?iF>r>r\|ԟ!/_+okZ_dS}QBRI$[,|Hk,c*?y~ uCcWq&B֝wUϘmJMILkI(r>r\|ԒI"m2RCkStM?55葰y^1ψVӏdI$:)s-d?9op+W~ho8C~gks̽C{|V5^!OUq"^<>V|Uu$J*C0`]݂+6;[G{9pc%qzW͍ĠI#m~o#.g0Pr>r\|ԒI$$ BI!(pY1eɊbxq:@a8Xz ;{CzHlcȓ}U2~5O6en$+rI?YglTDco\ޢ@4q٣';1TI%1DCD"?F; SI%"+7TTucʘjZbݎoAֻz^: 6"w|Ogޕz{ywPܴF+  DI)AQY$t(?~⒨Y$t(?~⒨Y$t(?~⒨Y$t(?~⒨Y$t(?~⒨Y$t(?~⒨Y$t(w=W3Nw;&[;,u,׊.y8Xژzо}Tnn)*kwKlpݑwfѦ@F/8BIM!WAdobe PhotoshopAdobe Photoshop 20238BIM http://ns.adobe.com/xap/1.0/ !Adobed          1!2@"70A#B34%6 !1 QqC5Aa"2sb3@BRr#4D0!01A "2rBRb@`Qaqӱ#3 ΊqŐ(ѯ=|_!݄K 1ٵuw굝H&' q%KD2@c;mZƻQؔDFMNN?Xq4.7pڲzi~tbR;kZƻQؔ83syϰλB9ޛ漇{1y|)0kBf1<#Vi M:ѣ]WD0N?Y@"vֵw^(?7^?d@&;g2U[?/H.Cľ|'mkX}; _ ڜQ9#U6?mrc]WJ /6Z:Ëh0r8YbqkФ'mkX};o׵rޯkNֱv% D=?R Ȃ~o$._kJ$Ey:7$Nֱv%%|/2;bs'8tQ50'mkX};!<gSQue/#ܫa?%4[q2@Nֱv%Ae8t;iuɌsi-(Nֱ6%@$"&BDaᶫĠ=ΰY@z7zF*ZcS`OhOcSiƩjFjFjFjFjF}$Dx5C<pʉQN%W"!F*!J;£P0UoX_0uJQ̘ҹc}ۮv+v+~Yhܩ*< 5{xX#RY *PՕ׻<&}£o+LT@CX*T)P iyUcTxe`r6-9\W xs5w B>KA_GsL%ƾ6ڻGۻiJhv7Wp5e+kTq}Jil*< GevLװrKڻGNhzY u \[+Ց9V 2մWp6 Xr{QY]7 nEUT[r˴(}6eֺigN71-c@*G19|,a ],uKn,mA >QY{C)Ku!B#9ю.0L=J"64=J!;Q.TiYl*ϥ_)>;o9OL\i Ίȟr˴ ^ir`ݷ5deZ]G)F;f=!.)4QYJu#pRU]Is2.{?kUV=װZMS յ!%νQL/QT}WuSl1 k5S]4ҩsQ) ʅ>BJl!r˷D>(ࠣCN9:TJTJTJTJTJTJTJTJTJT4 Gdqv^_ku{u{u{u{u{u{u{u{u{u{u{u{u{u{u{u{u{u{u{y3v;posvJ}| ]ګu]8es8!\6H)Scb9*WzFeN @|k)QWKHEE,=X˟1Qm)Z[S{U蹠aQ_ | l4DlY0Wqd]2x1˟BAzI]lYJ+/?$  '+J`#&ٽO| jDE7Dlh-4u]2wqĹ˟&@2^2*4eu nq/?$ Ҩ/klP8c6;Giۻ'~@|d4"NKOp9@ H,6Ysussp8|t9LAP( @Cq/#|-[.l@6=zs&!D(BQ !D(BQ !D(++뿈/wXC-??bVZj PrY:i:q)HUIHϫPip"o?MkZe:o;j%IW#uD󵫭=_j&3C ZtUT#B `QS-|hZ)AqO4AerIC6*jNJ uPX"[w%G ZwTX9So*m>!,7QӶulnIK$_X8<6~ -`c8T\VUjZVUjZVUng?^SU)HK%mQIVUd΅mN(} Bz| MZOw(@?F'Z^qOR8Q^?@ӋZM#VJy\ITo=HkS2#nV:I ׌3Gtc1)EK& ^p&w0P *Eg*ތ,%$ )2#49Kz2NKɁdvQ#q+|J[@[&o$h0&PulS WS'FS X Q`};bsmREO)X%`rÜ@'SYl2(2b Q#̃1HZ-Sƒ遊9ͲEk:!Gg7jld+c#@+I]CN 0o12c;LBVz°d $ ZŐ -PT)jJVvg7j7[x egD`)@3(Q6.Xos0\\џE)2牂 qq} b@W&yC ybM 8 v)k&vaխҪN,re)1q} biNض-A' I ~ޭ(xL IM(bG4jONd-Y!#𺊗3[6o$K3߈3Gt'8Df1i11#jyV@\=${vJ%J7fc58TwHJG8}Im,ieNNݍ$/+ \\Rz^^!T3Rʋ5D|JjHRD*{RYiăbX9|_|_|_|_|_/\7KFˏT@m'Iff@/ޛ%[%!!Lҭ`*.}Wwp>oF6l#aF6l#aF/XuAGX?assets/img/card-brand/amex.jpg000064400000074523147600120010012255 0ustar00ExifMM*bj(1!r2i ' 'Adobe Photoshop 24.0 (Macintosh)2023:03:31 14:32:05Ҡ"*(2{HH Adobe_CMAdobed            n" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?龴}dwKcqp4{};۱p9Vr}α;ַ,Vο \uBAt+T;5ho:IPg% rt*uJ>%CUC|ܔ7}J`=ֆ(oV{ rP'I*[k|ܔ4v:IRM` X;`ݟ{ommyG4i} +KcΫiv^<{65-.u/X&_ȟbc>$'z/.ckzv0]-wv~ztk}5 ^ -g׶7ҷH .P8 JׄѾ~/n6=Ʊ;kw;njT}T;z~;'ձsK1]sOqGA.JEpJZ-"%XO?.}\+t1Xfo.s(iz#c(FQ#ުL{S&kƾ>C]e~>$T}|xBNJ?6c]75i'(YbP?ڿYW:B8-t1ǀ5K$Jp1(8]5<"2>$_U[ԭmelۭ>YDzwK1P`=|;?u]9XK͢R7h67e6ꟿ>+^:0zM,vl][EC~elȁ$`kSx˙y*W_D=f9tϾw-vT=KR]'73?v.yU6l5lݿf>9VovgX'As&w625yp39{7SR9{Ö B329q<{ݕuG0zY{?m]WWmS]sU_MyL7 [#* >Z;Ys*v \dkqm1ɞΓ~0Nj Lk p?r^ɽW'Wiz鰿Yr務<RsFK9v?, Qce.em}eO9Nˋ, +۵ۿKrʢa0';xe~W]tKvA8]8~ۿ{Ա~N.&;ՏߣdxWۑ&}^ UwT̆ B+}MvWN^\mkO\n?)~__l"yNHU#|kïww+Ad`51od~4?~ Jϭ_R62AkƗll}\n?)~?_m?".S<5G<>p s\Ʒ.#8[>\=h* s;s^[B©w_Qp@]~3/~O_W/Ȧ˕:oQOpzO/_Wm]3ե[iXsk7=sUGOKog+VΛ߇}U_csZǏs8pf2qqexVr)ƸL@ӣ?5w[Eoj*?/5?^eK=GX%_\Gwz|K?8m#/(=VE=(\[[yb\+oGﵵ.} gְ/cZX_ vkW.gәxX}mU9w,96 'FY2]#(]2:z5獎k%ulOO'4n_zΡaȲ6?߶?B%ސrr]Rx=h>ZZkN]ǯ\4 zw5w8Y]mxpɋީDc,/˗,2V$foC1'p67Sf[ VZm{5Q,"wZZGIj1'f'Ǭ?`,;kvlܝ '9#ˌ e,1ރ}m2:k^ǰ~}Vo=#`\4l]?=;6޳uFU q^)cޅ?OՎDmӊrmu%_ck駎[on)-8xc5b♇G^1u<bT~[]_y.z,.s͠5\eS}LQ] h%c^ZuٹX0Xl$(JQɋ0Yq29$&e(e+-?ay3]NM:s\ucM_hz/Y}s_ȤW(}qup~}6g)cŌN8ʥ,s%ɗf2#qU_Fuv7\_LvgS؎ؚ4/]̧]uab88⳧V3msm`_Fbu{~k1}7=WZ;~ $c1)㟹8B#i315qn& //v/HuּcfWG.r=1t0]mUV=d}u贻T]ԇMkw-;77\v{ݵ90z鱾Ƿsa ,xc'p#Y\}ܓ`aQ'ԣ?5w[Eo]VUEbnݏ̩w܁OPr:JmTۈ6K mO訹2͆XEmy\Ŗ3;=3v7Yv3+ѱTZ\ߦ}_  _Uh#nINYS)_)V|3;2/)D#g8u>?>1eS/pk2}?_EEM'Ƞ6hc% m}/X?7o_ETtq-9/6߽u[@;+GXB7>/TT7)=GWYBģ'~ƿ[_XܞvJ-zlU˨*)X[;ia7./zeMȠ}hCw-Q4=o$! ~gDLp0Dq9% ~Y=C^s[.g>5}϶c*X}V.%:S^Ul5v1tt}WF|h01"<){s,x5uwuo_>+uhugg:._A_7#}m`61.߰>\Ov+06"9~uX ~U7ٯ"y9/RJ|Z-u$jZJRIj)I%Z$jZJRIj)P>bM{0:GK??5ELnf;Ҷ?C,3оѪ}}*ߴ}׺1c=?>{,qe# A"2H6+T;5ho:IPg% rt*uJ>%CUC|ܔ7}J`=ֆ(oV{ rP'I*[k|ܔ4v:IRM` X;`ݟ{ommyG4i} +KcΫiv^<{65-.u/X&_ȟbc>$'z/.ckzv0]-wv~ztk}5 ^ -g׶7ҷH .P8 JׄѾ~/n6=Ʊ;kw;njT}T;z~;'ձsK1]sOqGA.JEpJZ-"%XO?.}\+t1Xfo.s(iz#c(FQ#ުL{S&kƾ>C]e~>$T}|xBNJ?6c]75i'(YbP?ڿYW:B8-t1ǀ5K$Jp1(8]5<"2>$_U[ԭmelۭ>YDzwK1P`=|;?u]9XK͢R7h67e6ꟿ>+^:0zM,vl][EC~elȁ$`kSx˙y*W_D=f9tϾw-vT=KR]'73?v.yU6l5lݿf>9VovgX'As&w625yp39{7SR9{Ö B329q<{ݕuG0zY{?m]WWmS]sU_MyL7 [#* >Z;Ys*v \dkqm1ɞΓ~0Nj Lk p?r^ɽW'Wiz鰿Yr務<RsFK9v?, Qce.em}eO9Nˋ, +۵ۿKrʢa0';xe~W]tKvA8]8~ۿ{Ա~N.&;ՏߣdxWۑ&}^ UwT̆ B+}MvWN^\mkO\n?)~__l"yNHU#|kïww+Ad`51od~4?~ Jϭ_R62AkƗll}\n?)~?_m?".S<5G<>p s\Ʒ.#8[>\=h* s;s^[B©w_Qp@]~3/~O_W/Ȧ˕:oQOpzO/_Wm]3ե[iXsk7=sUGOKog+VΛ߇}U_csZǏs8pf2qqexVr)ƸL@ӣ?5w[Eoj*?/5?^eK=GX%_\Gwz|K?8m#/(=VE=(\[[yb\+oGﵵ.} gְ/cZX_ vkW.gәxX}mU9w,96 'FY2]#(]2:z5獎k%ulOO'4n_zΡaȲ6?߶?B%ސrr]Rx=h>ZZkN]ǯ\4 zw5w8Y]mxpɋީDc,/˗,2V$foC1'p67Sf[ VZm{5Q,"wZZGIj1'f'Ǭ?`,;kvlܝ '9#ˌ e,1ރ}m2:k^ǰ~}Vo=#`\4l]?=;6޳uFU q^)cޅ?OՎDmӊrmu%_ck駎[on)-8xc5b♇G^1u<bT~[]_y.z,.s͠5\eS}LQ] h%c^ZuٹX0Xl$(JQɋ0Yq29$&e(e+-?ay3]NM:s\ucM_hz/Y}s_ȤW(}qup~}6g)cŌN8ʥ,s%ɗf2#qU_Fuv7\_LvgS؎ؚ4/]̧]uab88⳧V3msm`_Fbu{~k1}7=WZ;~ $c1)㟹8B#i315qn& //v/HuּcfWG.r=1t0]mUV=d}u贻T]ԇMkw-;77\v{ݵ90z鱾Ƿsa ,xc'p#Y\}ܓ`aQ'ԣ?5w[Eo]VUEbnݏ̩w܁OPr:JmTۈ6K mO訹2͆XEmy\Ŗ3;=3v7Yv3+ѱTZ\ߦ}_  _Uh#nINYS)_)V|3;2/)D#g8u>?>1eS/pk2}?_EEM'Ƞ6hc% m}/X?7o_ETtq-9/6߽u[@;+GXB7>/TT7)=GWYBģ'~ƿ[_XܞvJ-zlU˨*)X[;ia7./zeMȠ}hCw-Q4=o$! ~gDLp0Dq9% ~Y=C^s[.g>5}϶c*X}V.%:S^Ul5v1tt}WF|h01"<){s,x5uwuo_>+uhugg:._A_7#}m`61.߰>\Ov+06"9~uX ~U7ٯ"y9/RJ|Z-u$jZJRIj)I%Z$jZJRIj)P>bM{0:GK??5ELnf;Ҷ?C,3оѪ}}*ߴ}׺1c=?>{,qe# A"2H6 !Adobed         !@1"342#$6 5&7AB'  1!A"2QaqBRb3r#st $4@CScÔdu%E !12AQaq"br@BR 0#s %C6* +wKO#6RI&i|1z lTT͹ew&+(=t (H*ڂ")مswY|"12ߤsSE:'_ ϗ} $zTi0Ȍdfd*w[־{ɅYh} =yeW}:Ap%S/ߕUHr<}M۹ )<.1jaT[Р~7.4 N=wniUz'|:5L{|~dAPAAP@P;޷{g5(H+9ݰ{l )7?S+r=cl$xnjRHpF%VwR16;UK:˔r*s"U"p8!D $:@A$FjI$C4ICDK(m۾ĹVy= ÜRm"Ϗi {w[H@;wǷr)˩ ?k {gÖlMm WY8 =ڭB"qŌ4 "0@Dm8F;vv 2WGfa)/C0uN5G-CI%q܌4ꚁ:ɿWTZ5ܯߤl@D$66tՌ|OY/4qRuq(u8&\F6ӗa-!۷;¼qN[G#v|D-LW2^*} 9Ik3Wdl9o^řzTX[vn*9<$MTuR ~=B+5uJ5YT8NlXES]#:kQU z\D[[!D[[,V>gd9슩#Һ]%GQ\NϠCG&90F/drG);$rG)rD/[LS$^H;Ǽ|"Gv^IH=$w({#JHG=$r*.i$dzG*{F &DPTlLBS>t=Tǘ 7agIRU<*MZ',bZ2y*."8<آ1"F?n-Qusik PE"b"kj"SR›A3ږI5 ˟">.}2n*iŦEDTT됝AP(ejeۖ#f5}1 Wήy|K>%u!>c&>c#f|$cHCa-y$'j[orBX0uQ\qcSzU#&RUcU4b cj6Y0ul*X׶SؽyOT252oLfOP[^Do;`I6W?$6T wR-Q%UIғmŃ&+I9-L{@:>TȌOMtSyTrʔh3&(n"Jj:|Y/oo2 n1JD^-InﭛlfU}풌+!1TIm@$Jo3Kc#I.Mlh⚛e .bu%9a lDY@E)IڳϺhmXJofvQQ&$0bM=]Vp8 W_iJ䭣feB?L߇#XWÁKp8|x/tbtΙ W4"JJLLHJT%ٺxQD|-*;3 *uvGW>h9\ud!y>Wcs!Ji)RKpWk-H4%~$ {;R2xiAH-]-(ezo5l(49)˔l0J%%X[m--e O?$=Ư2 3r -)n>RqU3S0TLvI2j3Sƈ\_6 e--G6HJo3RrQ/u>bQ4aIMR"@8nN*+nm#v٤-0V1"z8Q9+7-c(^e'X.|}E=\3MKVp8p8p8b3M؇2jr(y6A \g@xC0drc,N6li,ؘ>%5LxҺ$)ԥmj~k0+Vj*`~zSZW/~E`ѣKkUK\6M]n~BK^WU5W5!QyXxɵ;)y~XVV6&nyFhN EE/;+b2g]9/sO dz^\{db`RmzUgIm^ErDj&Yo5vՕՉjZw%C%7=RR{=yxlY;`2m7F3-J>¶^q񋋽E. `FOq|%_ ˔*m K"8u֭xqԦ=i O9odb'2;S\5V͖XZ.,pGWdxkqMH5-ֶmؿ ؚ*ڠ#ljԆޮiNm^qkrJ6mj:jV!QZo7]<|cV(նrwaQ @ݚc.\{s;Rlo՝Um\Ǜ jCda׸t_̌9H#`/>9H#R D d}G$"gG!lyh'1 :IfhXX ^?B!Ь h~`c/0z+!-{H`'6[:l8&*jɞ 5.Ovt]=enM,"Zh֕{d[|Cbe5vѧof40hи;=iWm11]_AOۯQNMϙh8I=63 G]]}7RY.ȫ*J.a2M X6'ook댅mQs6{{q͓eO鹜J6;F oNs/4,#UlEƏ`YOlpKIf  z A'D`nFTuQm)'Bmsm 0qD3.3#զ2vsCUeu(F-q [+TlT Y꾧5hj 1.sh3AlL:-;SXG XԼY<$^;? n Wks0*gnrT3 J'pJl˱;C;C;C;C;vxWc?k J*******************!0<Ɂ{L^B l3d4O?$D:\GIB).cK.aj9Y%Lusf=-CV[[KKKK[K=9(jttTǢ\ĭ|3j%ksͥ78J_Pcoq%sN)T,9rJ%#f?̈q 5|ku YWWS!2I><Y$cJi/TduxOĴGQ+m*BE}C\QjrlwX喩q,OVŗ1dzXF~Ӭ9Aƴq#:1,Ri𓩍8--\dFL|E[75g,|R)9|R Kx)/Z%]oJ\~yoGz[*4us-suf?/-㳫xs˜gp/YYCidA}bWG4Kto / SdK$Kt$JKt$JKt$JKt$JKt$JKt$G,&SMU>񤶎zo4ܾoǽLjui&Qex6?ȇ"TK,Ⱥi-TɁaBGJ~=-a)t76;xʼnk&OsF_?wue {ůǽ0ox Hݬ~55z՛oRF,bEKKƏK+,C,7ORD3YZGռBZsrn%Ix*Ixꬲ%tx-tDt"RQV?t2PҎJfV O5$EcNjǫ9+r79z9E<~◵xg=Yq?#A|s7eYdHNˣxMڳ"6o(oR&AK.k5,~<~HNct^kgȟ pUh𤦽kǪzΆ=^=Woew/zǪzǪ'.>#TT&sZHM"d.r07Mh MJ(gzOք#>s)wNYgͳ)e,~#"Tg%::;_v,1%K3:1MBϋYjK <8$|^L˼"U@q AKJ_(/#g)_)jČΝk{y7Dz)a"޺)Bb׭tnh׺WP{yl{wHtOto1 x{NCjj~?rnb:R9jA5[YBY@I;/MbQtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtE`TcjWۯN!E$-:2ra#WEs? y4zZ,h <|reh;_,&VAkrRRbYjx8[~?` !(V~o_{0"Cʲ#*ʲqCz 7zî8*qsx|m4:iỌHTF)̬9:NI?W+&1,pI^=ѧQtʼnAPW>ne‚ԧj*H3@~}z?IҖ;v̧j*u p?Rn9+f]HaدWr(QjnnU/{yZ Oh&)J#1 IՋJnf֯B83F9kA,^'Y$]Fa`؆@ q8L//w6ʢGzyha_*ZP_Z}t7cvG;nil5Eû]5ܶly"CV'_HH6 r7?5m7rEl&:;[΅ eF'5ȣYV?%R12m Ȳs[-o W!vUL ědUF4 c H /lDՓ/ ,v[$kI.E囶#W/uv9DqbA%qeR,ql<*e{k˙ BxvVٻ^IirE+d5[{=m`K-u'DpD+Z[%mT:FT9FBqωxvX_H*,Y$'|cD*mj/ޫ#d2Cj1Ydu5m1RKNj.}\]$`|qa׬uSΟm̼""Zk 2j'x,^Z^,)5V>'Gl̳!*˩~*zXN uq `wN=kROkUn 5Y#TOogqGXPIc`2֦4zmUwچ^+cu,?WیjfF}gXW HS=#>uAOt[y$ˎ(H'2M.xL7e sZݼhnNzMGau9lz>UjRz7\I,햛rmvWVFp=WW]oU~~p[l\;aTvڭ.7+雷8abUqF<;ymWw731N/ENOg%5ݟ!"+*|Ϋ0mHp\V &t&-.Yaj_|yWx#p8p9m \%_[AIV*ثOi |^@ݢLMC5g+4\2KfYntCAouuionʛqOdK`cpS.ڟo̘ Qճ̉_Ʒq @knW6X1BP(QVus&߸]Dn.*S# . uSo$dfզ8b/hhx2/zj]B `Tjmj/ީ WYmdOkew 5`mQW*511$-K+ɖ:y_"4&+F#Vu'DX2( [wLF' =Z;UpHZ7c5?kؿOf~EupɞULJ uIܵѼ[>T֩ի5EŘNN=ަ=l`ַƚ]s]&9֤#TWSyz3ݥøbYj>Ʈ=GИя9hӜU{eF3FdY,'4ȘJz/cxǏ4$[ 'weƛSEr幚uȅWtX8I}\{]^HFb8$Ǧ/fusPWzV'*ʲ0¿XWKƳ󇹽`F8!|v*Ǩؙ\.~JqePZZkR_%% 㛻aVGbw I\`y+}|n~J?o%z =z^\`i+\.~J3 Ƹ~c38 β0ηz!0! rȈ1XrHc>?|4n7޿mkybxYg 6 MmԪLÑSKEIP6x1lGCͩ/of !>5^[Z\oPgьy˲zq4G"G\Ҁ.9­#dR)$@~) -m"Ia}8m.CǍ2æI-%hĜOCx[E%r #mo#Ju&no+@DדԪ.{O ^=RCz4d`;GMthvqn[= 6a"+(2$i*PXUDAwS@q`5mx6цE8cijyEU '#^? :Un8 98QQ@D0ĚW G(tUf%#Ozf$6}`E -o>:ͧʭ/Coui2arv+;{q2u@nqF堡7؀J|:7mN b tvna87mƈkA& E.wnFX SǛ+jE.no/HBt]]/ 7% {4rYF-&nw[y] *Rܢ>~o_{7޷ Xž\#\*~ a\?hm|V2Nql:Qhm z(WN ֜?yԐ[êI!PpF>Ϻjr6㧒2y#lArǃcK}}mjI \@'WV.w8c+5KXLNX.Y%l60=r9U.qo ci-qՐ|%Ýlu]̒[OvqVV"!$2,5*47٢F4dglN,4 dK(HSNx6}fRxqF`9՞oGyvq]$3Ԙa4G ةw %nE=L119Qׇ>ȭo.v-c%ģ9=ݞko+د-fI-В+xUE?ZH`!MrP2 hWOEݤ'&RI* -6/VnK-\bqd;5anRz^R@*CxL+\0cxL9U@]q(5&|Z(nd@dhF99DFH=c¿' n)D۔3kF_ 2ۻ!B8e\ӭSn0J`Hmóm'Պ6cԓ}oơDf5fk3YfS [$[n&:d_5?۬I%ܶE<+#ɪz&-6Z &SZlyMZ{2?kCTZ8SGa@=_,NEcF{k|b/ (ۅ% _] hsREQkpD( sժ2|T_Sع'kz yڈЕpEc9O;`G|~K63T&H ҆ؼI$h>\+&PlԺSF$rǴ~2Q&-KEsN :k?ԪuA&p{@TIGՄ#&lSBstzZG:hИ@J:N156{ kı,s⚆쩩'@}pGLwtDufWN¡ŖB䴆|uߠҍ/ըrJ'|fz_=z3puZٗ=ίTZUZ;4aܷ*)2㥑1=!h#@ IrAV\j4{,;#'Ru}laVxUR dzuuz2Ɓfg:{RWL%Dѫ,k!28ׯN RziSHPn8s}FiM|MS{44<a3}EO\AF4 TC_87~S5|bk"iz܈[B!4 =n0h+1`p^$/7 I2K'V􋢽3$4N+ECd+>zl:>+GT-YT!s\ р8qj[MEĥjX"jZy HĚkg=1-M FGu&2: )6#aFف^{#Sl#sq̑Z|oX)?5|~+0NAjNeJ ]K*yRIٸMiׇi  kH8uaM'`s`*bc< ߰\sFFʆ}rBieIZEJ)˴iVDZi|]5LIn](:C7rP&ѐ*4v/ JSn\,YA4OZO{ m[QWJx3o,\jDs)4ܩs*2y׻liD]KhRpݴE9lRkXOev+E&r QV+2ո X'$A׳L.斷 %kM灁XIkt~ _w%IN9=JJj&^+biex2!;O* mjnXGg9š-La / `/ԲvY2Os}YD(Ȇ@3[r)՝$6OdjcK_|֙k*g} Qʿ,tK:7^t4/Ao6w2mު˞$n {ctLL9wDU|{3T[Fn &U\:@l9VYOK0 ա *v:U6`J3IGbe N<(bT.AíPקkSz uy{&r^τgRXXstU -DS#jXUi誉R^VMN * D˙dEFS5cj/!j&F8~˲3 o>QD]c#k=A,+Xx^o\f\Aȫ.?}e%BrNygWMGI"Urj|0A5ЍNzkxRF`b"&׭È,7n5t)G9Ngd$-3%/;zuCBYCO]I}&1^ڠ9Ovuxk֑=TRˉ+*h[uZ!i"|E;Z6A4]0M_O>>S]Pߗ;z9ZRh{M*z5^xmg:Jz_=Srk#8+'}ߖ55qUAJ0އ{0kzsCN}|;(+Q}{3!BSK%lo+V+.̪™b(aHkSD!Uw&lPc fL ]'Pb:45F]Nlb[Aܜ 庤Ehb՟*_z?*< 4\?Wi75Rד xV_!yyɬtoN+F?+~N־irֳYn7Լ֧g\m_n)^Uv IPԷeA#:u\Y{ lzCJR"]]Գ-asN\}WzZmhg۝ƾ~;3A=-+;." dgܵ+`9u|6O/ڞ*Y2_k!sqT16%jRJzh& fcl')+D}"/}ؾ3cF+xuzCJYJ2id bg7R8B?uZ!-9i[Eͮ^2G6!JC+FmK})\EOs\mZ_~~=fCƧqeMkyM+O8趵|S~KiOm `{6ZyU?@/{E$*oBq?AS[.N.̽+ ̌B-K _esjiLf.-eأ2ERVįyUY;W.z77磭ϧ]{_y9z|6وmxavt?A^wk1ӊ'ߗٵt'rҔ{"_E_o?âo/.p4|iMAS!گyF!U /鞞F吕a2AjxT3ށ)-um9Ӫ5ҩCK&kDO;s~k{_V_/<ץNGG=#yC.[;q  泽O9 /uz"n(z,MxK҅_Ow=Z`ȡ+SD*Li[u(wN|t|3$W"h~-0PxopFdÂ/Cjv}~hs{~z|i"xO^ċW-e^b[G7[/}G/C >'\}\?0d.G:56oS#P>>pqTOZ\ԗHñfb7s4"bQjF1Yׅ@zp0yz]UqMxq2rK˚Ϡ4@D%0nTLXM<~2=PG -[:9YeD2ikkFgoy͸}89 nJShN/^+Fև)!^f+^i)57Uݍ_N[>c^HZeuL4hg΍'^J5 ם2RsJJ; I+=δklȚOc<|M}79h5t-ӎ͡/G_,Ak^>V|][,$7]i>߉* xŐcN:>aצ@=XfdyDm7H,&YPn \n$r0-2.jVM=:~ykLۗbgE}@S/6~oé؍rzkr3N9doc﹌=ΠKBȻ.ҽC+%iu95?+EqnԕN5yL e`* 깽a&|R^q) b33Gto| ]xjחW +>QSϳ%^&Яt QUI;5OjJVL7k8M$ +;٤=Tj4|ۤ  :yq7Px2zBsF%: CVUʦMs0hug?ϭUτׇ1:EM߂-.LOrvmXu@k Gl);6ZRl'UEOҭgc9,rnWp;,\Xp;`:{Q$ ~[uvѓغpL+cLQ4$ oZA ]]#K:8]=Yu6jŻk ZY3A-ZWi\"S*#X3PG*셊 ܶ`;/[K֖Ggp$ɣf6s79/P.!K@R%GE0#VE9e(b2Zλf=Ie0G9%[K ɪ~~tr <uFè[wIˋcHI&"Rմ"+WV׊0這`qRuM,ofqb;f%_Ϧ1,($DK."lH^zT$%HhЉߪaZeƜU:cYS502PswCM"93̛:h5 %A+{mMaXr9 #}[ִDKgַNT(Qޕ8eB挧4TilZS.YZ&yf$"k#711˜Nbd+nsPNrք&P<# ҞSZbΘs=83Ho zIDu64^pުgE4 (ʼn1ԱfIt8ʿR/`Ve K2IYOtVxs"mwj;Lp*DKQ3 0=)m{ȎTI` 1LIqi xKWl*Xdhk[ -g[2ZUgjϢפ͂Y{t}É"`:zBG^tհ#tBԛvQPP QB֑<ZH A:f0)JΦk(\nͺ C6Eh,,.3RE8fD,IY"B+jk2:ptt3[ = 9𧣑i%" H"5+jLٺV49z&-QGL9TuobtHչ"hi[7RKTD jDu,YYtׂbjËWS"۪OU!5Ncu;Acd=եKܓpŻNoP#wq;~3wu'$TTwVޝRw&nXW&;[wnНȯwpn୻gA!1A"Q2a q#0B3@RbPr$C4S?LHO,p2N}N}Oj΅aTcDE9N Di%jO§FQ Bw XEMA\EB 8Z7: tSk[ ;Ms7L45>*;rf-N0u[ qSt\'&cPc"S68_aI GMd(,T4tLc EY=T)4:zĄe[!Vu)iB%9xϞ@L:~5;P9p.'|GyUmKBP'Ugz7( ~V@ӀgK5Ha4zB-w긖:O}*vCHUiCL*,5*Dzm ONiIUºF]?y>tTY ZvY<M~ˉmKmU8LsCŖuTk-!G)QNaUmSSsP?P3ʥS3kM 2hDF9O8vAs?EVj>]$;uư19ʡUaiNQ2}?"wyVqM&P1PqO,\# eRDjOm92ZK dot)x?Ջߙل It\G2pI NSu8fЪ=pB.GMܹ=ܪtZN y*9ɍQ gA~h-(tuB.)Q2:1>Πs#§LSd7 AZBy|!J&UqI3Oz]6Ԫ3V?~ !h*~!E4UA0-; ϗD2 ᥯ssۄҚNx; DL24WOnYsYBƊ5ZjAOvqc]AN*t#pՊ-l+$āĹ}c]Q]NG( 41ʺN{,DTflTx!̂Fij#t+ W`axZ)IZbWo7*dvp6v4¯VƛpN% `jsnA6??? # "a96WXmcb:t_hT銆\%@ͥEm=1j<U/gn_.N GnBNNv{_uw!jP 4ܸ79Suѩ´*ҡF>k1%;tۜ>iL:}94ua3ʹ DN($JkrX*(kE y=*-_EO0qo%MS?5["WcPaveEΈZIMwd^DUo*1dM ӟ q3ɧL8-M?8¾VNc*Sm?KCGq*5 لܟ5GMq i2Z3ʧ[dz\88ZT\HMBAV0. {A{+LD_}U)3ʫ(pn~fQ*9n8J*2]>8>d*0~?3d npQco]0vTM@#Uaw! Ķ,~WdM ƅc nS @E vr@ĂQtAn 7:+Nd?tuԢO09 .9\*cE3aBcnWh;'WpǕ&Gow$zm*K1FF0ܧꦙ*mky+TX;'qN?$T9}F@vw@ylL){T %5W$.W]urL?>w>m˚ (](;xH5^(%J˦|y\7n*nn]s_wqA0PH8G! ;S9y'݅?Kğאö{L @. )v*պt]Rre:} dʴmGk]3 2l]WI"sx{7 t*ltiWPU)nP@< ˓$HByNz95(*yOuqWJo+TraUF\T~Y lgvhp?%qc 0,.B?pO/ 0 J,U  %H¿:wuMt6b-wNYkq_ T!(rA1=QT-;0>lJ ~B=! mSHnvOPUlZZQT{i8Rm*\FcV,f@Ī4 NF-2Sź-3?Eu&/[&YM~vF L: ([j.e`e6>eY6[ʑ56P_f2q>]nB_SNiiʫF5]P<&:hѓmK(*X!A4oo?C:+>frWS`NP:49-B?ö; c xjr^Н^4EtJhp-3 &U HuJd;S^,MX%Sװq%es/btMu8ȩx~wE؝<\?`uNuD7)R+B tS!]4X*8MMrSd!ߘAGk*٫R|N&ƤP!t_Mu= SnF'ϔX')ιNdANNpy6U=Ew Bh{"C_U.eF4hK}M:]a sB8\dTOS5VܤSB%KU*@44(@06療1r(s JH#S?$ZIL09 d0k ֌uVVDkz1`e1C R3!Ns|?Dtt[j*I ageI.}`N]B!J  Qal2u)9BqWy}|Nۦt eP նS!mSeHJ'CL׺EZbSpħQƤU2GBڴAZu\M7p{MEVrld)߷Un.UĀM(K=Pp<5=% mI (h8ՈĴMtڍs>K k(E8 Pn BB+ erh')Pʣ`5NJ'({vr4Prۗn[6+ wIE 3@?5cp ^#P4HTpgt پaSZT,DЩ+-|;חyU $](}/bWD5'e b8SJģSH Au:Zɡ|M6!T qowLYCe05]TA +VʰcPN=ٱ7I_(? 3jgQ,9 gH9PYFKI;}f4TKERq ) 8n]0x)[Vu.Sp%koN=AqVqWB2{zksꩺ] ujz.mS<2hּ9*퉌^D7RE^Z& Am|Ӑ" w_w$z^y_i?쪵`*!lli*\?TiiTyAZ^"VϤC! DeJA9AL[(UlϥR &2V5Bu>_}ژ"ׄ+2KS}*$*s}v4Яo>V1Ԟ5Qxa ѻ'$z¶ '`:j,os C*5X[{5xuK ^PS>64莟* _$Aب䮛05أ yALpT~ރ])b p#iÿmJRQq&s+#YDT7\tO'8iP)LjR!Z/ MaG>Q2˿e edUsuƊjS3P8TZ1M?zZZ\ R;0)ۣW'\"M0])NNB*t}ZwiեuLgmgX\Ae?M[IdF%l8E&5x 78#ZΞșA] 䆁"5p=xGDfSe.r~0N}SjQ:hįJulE̮Qˡ@@Z\]nTKoJW\@;#sSi*wlS5(Kq#L5jeGE -!8N\)jfQqtiA#D:Z MTkK}T{:-𔨶[|[d#تלL`SfB10>HyA: #RD@!9nPrd,VXZ6iمO8w苛teSq .mK{5\Hzں杊kJ +~̝?Q@%v5wn}վPޓ>i )D^C;*?nLK9o-p68?,XNHB>iK9UpLwhIG4 Cq.ǂΪ(әMt;?0@")<Nqe*yJ(|C(dtC ET-?^Z?P%:;DEHCAUӪm[e=HG V:RCp5Fehn#苭|8Hu0\'ɅOR:;eM>Sf\MBH%SwdxRhQt:zCLuA$хN\;dOaP&υiKp?qsਔ3aJ+7)JC Z0e M97[;.|-#DA%<yo=֘CDQIOIo繐U89UIwQ4TTkD,\| P [ :7|Ӝ;YwZZ?GʿUi}ZqTxO O%=מcE¨NuAwT*`Se1Nc :'=jc%[kjOLT\ަm8/rIM7ɴ_ʠ `s`{.)<T88M<|ӝ'aE@vWN 7uy.m䪒_.p-rJmz* Ρu /Tꁇય"1 $KdMr@!ӹ|h ]uUNFW嘇T1nGULV1"aT)wD&v7* 6@L;&dʭl!d-0MFʨȑPxej^!_|%<*@]8rjX4S~.jݡ f>֝|t q48hscʦ)BNO*/xtV[X*"Fʍ++NW赝s\^ݓMPu;BeBʝ?BZ]Q-}'w#'u~($=Ze}zr֟9XiFOz{{}!>0c$VñgDq6U顠=gvJ--?$)8@9O dh![FxG' ,ܥS s[c3jSsL8 ܶ@ʕ*T PӥlVo .n9 \ U;M†I 1ifepaJ 5\.ifrU`M7"=Dn5Oxx ZA1k^*tL*1R4t:&[in1 C)O <o=~0Rc-ZaTiu*L_kLیlM" d)e0CtZ{Z=ϩP;{[uP=?$E Ltȑ.9@y1@rq~E }f<70PCnxT,wS*v.¦&sZ -6OyA.kEDyU66:ƚL7X?uEst9 Va7uO~M.ke5MDz|Rc2awS0jRJL5/' ;e`9`q뙌)9.m. Z3خ k&9EClR-ZվJ>a05ۦ2schs{FltQ(-y± N:T9b (U0꣦d߫GUH=qNrקX\'ꣃ4hErj06Ly7s:ôs~EVhvmAXN=)Cw*1qe8ͥ ؑNB-vt0')n)$tZh(#ddNG#TW1Z]oxoI:ROn(J a.qG21~ȷ*rcyT]aU;86 C|_gNt_h~ogÿ7)܄v}7J|V>N2g羛7 }SM*w'}pgl9Rd)_(҉|kOdz ϔxqIݾg/fUGs};U<=un\Agبg'>z{~n +K>| 4{t*y3k[R1>lT nR6 P?ޕc @8=p|Cb8`cAؒvQ0u\o $WP:2LS{3p2l^S9iC>.̀=t$7O-6I10V6媳Gw959cA\E4dr<^!UtJ鷈l*/O@-]Q{73@eOyt7X&mәLI N`]<@wD)}Bp nTNCyJXs89;:"܃3F:Ꮢ̮1n1ʮK};-PtcoxVOWèGpwxW)px Is *UM:g6'x][;^uT6_.yO4jZ9/l\S[ITMO}meII)썤*KkVvd|Ή\@-mcS#7N>]=`;M(d>C +ntҬȅԌ =r Sk໳ ^c"F'4Z!6"o$m:&'}sRQWi 'Ó8b.;!!;@[A?%-Э̅5Oh^7*SX~N~6IcE dxN`*UE=Iwp걀p\]>-cWׂ}:kO:qpb=f6n-T%RkK66_[J97TAlgVƶgpHML'XZRjs~be[(z„$hmㅂrMɍ%<` |"*'`)$]1NZ*4i:q`^hUZ1H:08` SL;ت Gn'!p1snˈe i>Ulq&myGFA$ Mx ۬V6A\5&ߔӶ &QUPNr#o|?c==!  Hԣ vaqL0;eR5 me@Yxq ʯ߁?t_a"QyyϲZ9Bᯊ¯J{Rt9Jjx+@O.-1!ZُDGZ솘R*.$Iw t3T;* u6̪]J_XU8`OX@GSxHQU'dOsJ6!S}ZOGT+U_~isHK CiI2dɲ#溶8tYwh.$5iJ0B{lTpVo45 ΎvW]JloFo=ѭ|s۪:W \vgIJP=&ϲU*i2tݝb DQLs\DVeAq#2(8xpW8P>k5Jd>̈`/gtj:l1 od5clJY =8)kP]t4t[Fyꈂ~K70B042TIMkA%q]G5Zt!0sU* nk]Z*gp(TGY <4n% @Cc ς֋{G]eҪ0ɌuIr.`$uQ£n\Z`n~I:GE9 l[aoȉW8"uClp9 ,-ԣd1* =Y2=\36/h9MkPx4hV6eߠ  L~#}r(9f4ZS{)5lХL4O/M.cMF<Ąk: BR\\|UJLuŗ[s^]Qq8PbWwNL Sq跿g@2]p~ʓZ^'BV.G*ݫ+D(A7s)MFG]B >dB>SU&_*{yN`钫q"w釈!lV.NYKDŽ+' _*>vzK 3;BVkb?EVonNQuڪl{@61!<i]"3, O!*Eh!IVF:g?D.qu갖US5W?0YLa-k*nS\iB?zհ0%^2 FUԯ_q[ (h*`V hqolo ,j:[~hh+>;}YM~?f[Po*}1\hLǂ~=X?uI8VCZȪ8}CG&U*WIqt~i]AS^!mg Z|ʤֵ4Sn:M瓰tSEk(Ox:DmR6W^hW ~l- ?i #-oj];v;զm.Uh4*wUF0#z9x* {,T?2[LoǷҞ:o捑|G`|qEF9т ,4ė6=c1j3_J/:rwmúl*&VǸAܪ91u0ucQo?MNmM U"#RV`o4pu:!FUfLa.1{w  N*m~S1L(p,s5Y uLC}ήBmQG\.l ZTᖾ*ɍ&ᘐ~PrXe<&>->By}Oh~\=Z6؆.pOFU\ t1 (B1`'^XًgC^_Dk4ۦ.vlTA*)°v7V$YN(PGEJ~bZіo4t'Tg21wi.2Sb鸱ʻ` ӁLbp?)CYۉ*< 8D8[2Amt}Xw*R:595)T&v'eRgNjq_UB `hTLrzp r³ 0V N<*To߉a-uu.tSυŇfpq̨qtI:$TH/]Oi' 6]bJ=6ۀ=:v |W\dn*vķt.6&u Ľ:rkofSq"~e:eFa{eښیi9hAgPY$Q孕4>ѣ NsQ0C;Mtu3T:PRLPeef|*mLKwOnEȸuL9s3e^[Wh#Uf;HʭR3=yT ΠÎmAtUA-ýmy ڎH>%uNeR0ּ8beQKsv(:]w>Q內& WSH[7{ZH##XO2fa(Qcw]$Ymkn6R A'|~«8Okʺ#eKMpU~/ uRMW@srF "C3pUʛ㨈Uב s:` '7„1C)>y5[(.\3&s 3|Sqaa20gG|akW, BJtxl۫S^":u$y_Yody4~CpS9nd'/5s'2@St0^e=<[*ݷE`_dI`D_wSkI6A*ᴝk?^]Gash)4ٔd= JÞtɦ ѠavKSYHan$SE0WNFa>~J0I}F+t-RtM9G1ɣTXӗfTƞ鵩;{|KMZ4T.}BPؗH(20-3Se4 FvA-ps;daj;HU4,vS㲨ۢrpD rnت|)l`xX`3U౦"=Qk]p6VWt&d[_?eTsPn{d/sYS1$N{q$' {d|Ӯ2'ӰCJ.0^OpU)i=ڰ u4&mw^ĿGRuc.dJviqc:FPS( NCU+e anuD@s2>@iQ߳OFTs?Os =T;f0X xOUYk$&9gb`?#bSw@+HEJ5C6 'ˇKtpe@xϔp/Z1s>ʨq'B2yڔ@"0Sn6蝁9Rdl8y5̨=1u(ұ֧f"9ׂ*?``ON]sK E1P>\ <[SԤldTj6-iu/ZKS ǧ}:wCҚ3I66cQ) {=Aht3Bj+dWT+cm!SA~*,8Furcd<]7>.t3'UZa LH`kY*C-N{iݢPUm'iC m.KIp*S@=uļ5gT%O阒6UPPPoZ_$yaۖOs[n(7FcUSJSM`9iE^K1!Hay@wx$&#=.4%u東h 8Si̝6\{Ȍ!92펈yۢ&4L>Q PNBѮT8NbD;T.ח\Hs 5:y-T(%'a_yNiA6 BU}=[{>?52m =ShF;S*)Qc@h\EC] PBi4)F1r  `iu^i:" |B9Lqn_ƣ6 qlʇwj\DD`65sVVED}I!Df~Go"U婎Z `#qNTcAr56J^5gKd4JaMSIu)`fQ\ߞU$*)Mst8pSM"ZrUbZ>hq$;#eFSKY/1DqbiNɔ@F:X2WU 7r=Z.m{#Ȅ;$yA;1GP#]ƇOi9\LxS4F"{tЧlm 5qZqM-]V7Y6L.<:ø/CQokLCQhtm#U?dE|!~m>:wD);tպt;!PBgT 7=Wtݹ&Ǻ@&2cuG*Ju3e25Uj8qgV/v)Yāݢo{ɶ=“Ե8WUZ 07h7Oxt*2LS͇7waڅyG&:xY[A8NZr]NKLaJL62Z+*D]BƦR3>[vtMv!.&埪 KDf ЋBW3;UcgEؔ\Bj]LNVқ ~TyqA&vT%q="ʗ_SGo EquV٫gBpSo& !3̪־T+7Mio6OD6'!9 hy #7Ch1T% ~%p6*t'G9 J*vN%B UfPt+^D0eOʏJ`\xD`4IScw9=~jb[&DG&@Cb5:(([rnNQ$TaB)#(M{eGtvUn G.Nl5:&<>qU3,|*~-v_ 4L8uXs4tG(s /^INuJ^F-9R1SDjqk\3U{LʅsE)}YA^}~a5RNtF|əLv4 2aqigsw:J{ˏNoʮwC~I5 7/6OiiSȔO-D*qʈ0>"cgԅC8Tj# ѧLoHiHlU)L>SS}UjߒrMo>&QDzHӇEY, l?9({.' (A}ì!S-/SjYPx kD9;kĞÑ7;F>vBAT^S.o e/9;R tuEJ)>蜈wS~@yLmTbN|.iĦ}\Oup5FjeAW7~ +rc]8GB"?_M:ᄺ-Uy[| iq5Pk14iH2&*ɏ'lSu_5Heȇ9EeO ÖS>e0Up@+ T\\e~T*R#}kUI}:]pzOjѼݣKq: . q5dEqPvN!C]!Ul-b& ,S9ِQfaOAlѸ3G~ ]Q;'yS&q~uGGop!*LrnP%ZtTGT ?©HT܏4=YH*upCS"B^O+|DWV:y \i]Ldi(#T[jOR'S+,cÚo%?/)bvꍔ9;}.pqk[v`c=DDŽi S)t`gu_ 9MlA眭: 6?} 1p?% ceVf7'SS e ~22Pp'hVj}N;[9'uJ=vZt,bc^-FS{YamA,(8J>ʘy/kcl"{lB|6,}'BNuLY5@PowCk-]2Up K#C9SFưǦUϺ3#' yruQeoeO1'~y6ۼʣװeTk]Hȕ^ r#_b z|6+"= ǥܝs<+o-S w0¯uq>…E~ nufm {*&tL;}YWv8F&V[Vk:JsBt"rh)Z2W@+c:8> ݲsEha'iu罤NʻA̧T˓ym?(Kh   @2s&_$"-'`5陃Tݝ~jwƈc(Q({-Q aE5mt49[=ӂFeqkSQWT8?TLɘvd-AU-p4=ĪR5O^|퓺}M20@ODiTIެHN xDd9pא(s(~jSC᧮U:!L{z~\Ɩ oZ^}AI;'24ÑmaaθaUcZ]bJN@Kn`T^"|.R1鍽 XDf,? 7?> @%ÄLTUzMe0-/;]KAnJi.}c@`hY:(6:3*vĆħdiM  c}媈 eSymd 1RXHtXkcO93n1ZNC9mhO{C-#Tƶ$(VdU35# £J;d cpʎd8Ll ?7v Lۦ}xʬƵ=*R_t*7sq e^ qj\<Ӡ(pGꝢ9|'OxT;e.cKR?a k(@kP{O?5 }R N57Ɛ|KN =F+ag ܮ%}zmvq:[-yO-y LGű+wW.5. cWh{3-zeHp=׾<0>~#~ ɔc'Td;Tܣ?7@U!}@INk)읓 ]Pu 7䍷a6UHW8tʩKm 9kpGᅈMP"JpS%[GeuqOtS,_1osL#{kܘљyG9)B4DmC,`%7(*yO?9G-["2ŷG9SNG?c S][9A"@L? ~9מh?(!1AQaq 0?!Z)!"M_uGDdU"$4|amD ejtH[rx+w2lT!%Ø"XbC< @T6_B+pGы3@=`F12XPVck(SL02|<HA(ַ39x:3t5Dl|F+2;|I9%qo?F+Ö@s v`^b&<ty5EPHaA  ;EqŠq3Ÿz5rG *O(?dZ] +aw `su" Q  F6}0Z I;$o\Gd$nJfgQFo6ϱ+(S@0x^W߃,B0|{0.WB3Z6aOaP," ,XZp?,rTP,@89,04EZJ͘+TE]]JO75H>̯_ǍaۃB{eA+݈N8a[t38}B_!e@f-"-v70 W6u.Bμ4qÐreN4[?[ yn8<I p9RR4P ^uZ M&nx&H`p|ED}0 8[ 5kʛ#S5r&z6p0)%  L_B~))M $ A9D^1 5/&dhG9ub)}ur8 ~ vJhD%zi5WArߤIDqrQnx1vc{!$(8#1XD! NC#x ~ ׅygOvQSh> :``h%B|J#3ׁrC>H)nR E*sSR6%e0ȾWbOAedaA^ bCm-[ê>mQA#`@P07~!.C'V+Ej\}EP 15ǃ CNAB0( d%iKg]jQQ1}3eBX/dG|Lg YgЖ3gn;3ՁZjf~@ C348}_1)#"27.`B|Q0-gWQ]@x}Ñ;Ko"a'+K"0!ɘم;UX#|D  k3_8Ipe13kBREAX"Zȗ я`MA C܁)=+4!hJ17X$- sDW12{σ@|`L>?&z(ǧ.$FW+Kd0?$;/&LR<- QEZO H) iP RPG7$ej%."= Q 3qeB~׋<̔`jx$ ? eLPEtoQ18|>b p4k>>Me c,1It1 O5DƿNoO0PMx0Ps1!1ui (a@ObOꔎ rpv0|/׆3i S*?*U7@3_ބۻ#?AħDJNY@Ϊg+Ep9ƵDb1v>` (P>`p@`"`:ޢp T:gYۆ0KQ_Ai\W!  Dpˎ89AfԡXؙ&dY$TI;AXX!zEJqQ '\(M-%N:D \'A`t~N!y? ~x L2fa Myrqs>-`n bF J͑#WsI~st@j@%^PJR,L^pjH,àJD.S8O38FqMA;@\=@_0"XP^яkc[i0b, Bqc#!)DЗI[maAn1Da{Rpȍ`AJk H0LY'!ٵUT{ӘF<' y0ڇ e*+>A?5ЦS&]}@=N\=~L&7>򓊂:=̠PL)JffT5(s mz Y/IԵ0 gx0H,D,3k_x'1'%R-& {ǎ C8JQ)7 Q$0 B FJ!q!q,boMC"l a ̘3 Ji! =;0VLOBXr8̿xЍ^0 0bOq#@!t{uF w"U @ev7 U#멺I"V]nhP#+bg" P<$ڤ "&Lx o*?8Ԭ )Sx+B4aI(lfdNtרbk+2O 3!ZPJ &r d IDAG\ 6 'H3-W+|T @xK J.s*F  b<@lGjBP(1c?A]\T2K "'@r }pc8 85 ȿyȈC9U 1opxAiR1F2͍GrB`*Ɏ,u.Q*6b42Jf}oEʼn\NwPgy?/ W w> _zd Dp' B{8n\v*ck-ٍ@dn/ ̻F>-! C Xm  @؀3x|XSB@&nc2׆fOD)Ly/Jh*Gs{P0s8;m=zL:T1̢q~ 0BB};Lc5±bc*mDp@%eeC6.u PÉ HPOF#1:~4A)@c`T$/8;F'07mhL*Cd{01DV!,&h(F>u#,.efr? $˞˸2]&p\Nt(Mxq? O {ۙ*6b.0I$W@$S-¸T20/}BKYypX9 BJq ٖ%nB+;Fka1u _-4#yLi*?c<.p::Yd&@aˈM^z+zAXaÁ*p9+'6z@5H~~7p0p9Ƕow8 8!@'O:L+=DbDa"(cvW`ZvarlE 8c;Bgg@*{Q D O̺ϤP 8\q₊MU 0 x@eL *LCO~/ % |!ww"@c@j?Aۈr`4 <˜ ۸{qS&w5 D,N!"i#g(ˎ Jq1J:qBȃHC5,FsߨfL(:D؈G($jC1B 7Ls, '3C `~f?%CX("xZF1BD~#k{T_ b s }p_j@w6!&xNW$/+]C%q (!1, oL4dW=\"A*wgNJ,YPk%C]z"Op`@ǥƒ@l̢L- ,O+*.6  OG|HA.BĢk> &jP dO`P RVNP}+)03P$^6u#p'̣h/!s5 ^K2 Z!v{| a8ܞH !-?─`5 }wnPM^Abfblsn =Bd5<) gF`"&"ƄWp`0H l]nDaj6Jc \R5p!ibQ,D) T@F [DB02h~!zi8R<89 Q"hNlApeope`b0[k2j Dž7̄]T~4^Ul~[3Ԩ_tcF>۷(\2'` ,C:D0{V!z?:G15Ql\t%ڇS83 Gn@G9ӟwUy 9:aD*v&"ZP 8$j8 2eD%&.B*V D=p DAk_Q7b@p jYx%A2}ўW)d!I`F YŠ0BXjr`N Hn6ay4KXafihHC&t`X5hPP!Ci`ф")dܥW S Gp#P΢*\;qN-֜ ܸPwZ&&`\ `qP`ǴQ<#hupJX1Ԋ0\+(Ɂ@#n%Nb* Q*W;ᆉJ%pdT"b"XL!nbԽ贘:aUDCA;z db 7/PXr$CB1pA%Dedh@6̽Q(zlB"42LSb(\B@xbhN0,R. 0a@ F? SSHB ygH(< sH7{i$diDMcqf [*X@ Q E`FәxOFŗW p"FZ,!X b ED &`q @Ȕs2y*p`)BT @V1$rSu1Fc)yK#a 2! a7B104j0=@8R{@hXn Ake(e q twԆ Nv>˜/qɌ!\cHǓ@m5MѠT M B ĺEN18phЁ b67 )  "R-:)! t4g`>ή\ǀn`>LE6(aQz0"Ho^ephh, 7С aEcR8F`<0+f[ 0Djm~̰Ws+8`"'N楗#ڪa]1(`yt?e.XR.q-5󙌅רah4łh@$m6B8P )J+0^q q!w UlJaF%P)` S3ְ%!7,|PV3V<PC olit$F| ƒ)-BWPȷ̐,$kcv40%0Q0Ųpib'|~yp[B7JQfX'p0$D5YB^PxBk bj6z5=L@ | у8L/)ZTc/aLD.7&17ba%7Cscp)/cpu p!p !@*IO!W4D*"l!,MubZȌG~w[_2J=,Lr@c"\QDE@12{mR V, eGqhI*"Á˨D_ԧn?֛` }C[T+) ;n| EkAx^E>1Ypu H w Aa042#d _4􉕌PSdw XR8T}Kn%G ИsBШmfF>!,UGL¨r b纗q QpTMHjU: AՈLf>HCe[ˎL/O$b@Dp0bE@H.Y0Mp‚@ZV> ;Lُf41_ZLb+&G 2R 0vYOhG4=3LZx @كɛ! >‚YA5C+4~e`@Il@q{Pi5T qQa"a#;0)S=СF B4h"_^0 C9@$`(AFӄ2`7LǸ @ZܻI@0@~i(7#+d|[11&X5R#0~jv.$SD?x:B| 9H@^f/1/2@20؎nƂBj5+ #ð21B~SFȒ{G`ss]K+&EUτF}qՓtZlYpBDA>a ,*%$hvz[p'~H10 *%Os0=F0`w+P4:C9L&eT;naQ P|ʌ\7Eu$AQܳP`-2e[@E>Y h[os?Q,dp2ĺ,YloV&x. ,Ł#v^z1Gʡ_̯xv˙(ڶ&Ap(';a6 q ~'1XzFB"sbqx(nBj*|!H%B(̀LSqSUJU<8NLpe`Y*P:|)AF 07 EOr#ύ@ AGс҄+ZHYjTc0A)j D@Wla^ {q7>jP9[G^ J2aw fƄosXNK I!WM m^1DG&wv'2 hsQX@+pkJN]Tvm{d: &q,twPȖ>$!$%$yJ1 8<|P,H1FM0lơ'W0 €l鍸=/3)|aQ#Tm@{6};X>qEުb}!~lhPV)2;e  ( @^Ln(2 Pp`IJ?,ƞx M+Y $dH#@09q;vwcd1+Pʷ6AO0TW mb 9 TH"(K  A0 5JUp8`lJ4s(Kɦ`A"`lu2tꁰ:QF pP1Doؚ"&;sG: [@D2}DF 2b؇5 Pn }2a4B@Q5A~ ~@f)21)o0 zN ЯGD!YÙ)'+*}ĥB,ȎY@g0 fa@W1BK C@o.`TUCZΠP\b'Z}GhҨT%!@$p @Q0J5EJb?W &u\R׍o.CSY-`"z$ 9OAg5e?_yzS3Ѳ,=E[š-%-Qk0BM`%a&JT`J1~&~&⽈+Ltb hSP/3Ņ@QMJ' dSpwp=8;5VM@%BM730O> ([*Kی>mOZjw8( kVGai*E1E X5yfC5O|ֽ?mEXw bfD I_xF1M!6řu3R#Y@KOqڈ&r u\⌨pԿIGvTPl1 1|PU@L%R 8&<ـ'm8Qa0?m (]r& xV7=`71wŃ-D>r2&RD|`DqGA9bT# "T$qV'ZN`Pɕ0[=b)! p/\̀Zxd@jQᜊ|3d 0W8;*&w,C\+so0m3HYP{;C"F' Υ%9qca!H?f3{4OQq3 l\"* "PR8"0etu!ɚ[rX\[X,& 7p ITXXa}8< ,E2c+@͂ qy"p{̘B $Y #$QܤLM"h-[gNKO-q \\ | 8 5=9+ƭ QwSO$o\6{%vh1֊U1Y+w0m H \~5 _(@FPǨ Ϝ\>FNQBdo aU+@&#lPpTa3S F=0a5"=GsTq$P ;Q>_ewЄAAE; ; \(fpXfD`X@mcwCңrn] >C:H7*P2٬)I6 ʃ^ʄv'Db"Yrlq Mӌ[ r8:EpB-qn& "QE 0~,Q$=XS Sby0*F .򨳸,t0ޙb(,qQPZ1g>8@rf(]Ša җq_Q9A3"5& RJ_T (b12j Y–(_2»ܼA.աYr^|Rb=K]X?`Qz )2u1P,G08V8Lf@bq^ A\D"Je+ BH H;!$b: 5ppse fVc;+ $`K2*'hi ?H<pֳE ыEA&ǨZ_5 &şn3=S(+P_0Xu̧75QD*. ZN[LP 6ps" {\xP L #I6)p:e Xx D[.)AĬr,?RŢD w4.aFÚ `c WSK1`-|dwBWd(*}pY:,<0Þȃ7Q`sFA$-2"p@`,Eı8CPe=[%S F`*eU;=@MOqm \1'`G2D[:c'9Q!W`a0'n.*`0ϰpb. PDGC9wT-^(Z &`Q!׸0"p e0+Q.KO9gwDo`<50Ys;e A Р-V:ze/9VFZcVJ)|-JF }0@u!@9 `Ff@,ApC?1(=dcDpD.7ӆy+&D _q."rs!2 &@2#!Z/p<l6.00 4&B\%3c.VyF~T{ޕ2$0i9;B$dr0 ی0LA* NFxvTâl= &uwa :;} *]cyEga͙w&V} EeA {d-kJ yzb̞a"YG@' Iw."=  " ˆ \esh@X@A !f.`ϋWQ%X0A  5@*a ź,>LB,|0Jct@jx`}?FP~o1z?EPMf(Pz"1X-Yz'Tʫ0e`F ] `:T"qkS؁f&[0+j}n/+qѧH>%Nk%>F69 cɁ] ̟ P>,P0*In )pØ`67~ӭ }H62:3wClB @>Y*9~ߴVXeõ@7hj ƣ￑"7=;m9G,Z&~h@ X CJbcBA7Q-!=Q8| (h.}!3[$a2W&P E`b ؅qA"u* PC{?5m!Ke _߂&,2C+J`pg ($s<"=-M$ hԡ-hl8\J8Qc;(u$Ȉ:8"V23 S!pv!Z.v>]̹Cu惌P$;=`L=v ėFQui(7A$ڳ/\#Wr 欨w0"Hf=Y6 ٩-Cq᭓#x0z_ N\)DlKن i&_„s\DW\6&]U3 fo]~ AXfA`."C>&0!3;$LGPFgL  pu+sș|D?.DJ qf0/ {S#M$bX[mB}B@|~I8(I>!ί[E ʠrR$X*S>,Mq["Ȯ/2{"ȁ2`1_P`=5@IIdeyqxΫ F4~pOPdtY|%z>/D1E@9+LT=)܁PB6e#r7&+#0  :HTaoр`yۍIJh֣2Ք9ffy\E70[>=ovHji#kg>pT;K@ ƃ  6WɔԎ,aje|@$>f@ј@ͲO' n(aUl$Ypڧ;vau(qQac``4V:h0xRw/F!|KP3%!>A5%iE ZdPĢ!ywBpD%u!&J}(1ޅ7=s"~ }ȇ\ ?̢cf@?IPy9t z! ZS ͈QR"4?ʆZqjϑ}Mj%a_V12)#D!aRG~fXޢDļ/:Գ Е2}F࣓@]j9s7 !XFEk ρF?Q`ȅ@W0K@QDaʃtb:N3 9:̼̽~зN'̹*8% 3P~Ҳ{b2_ -$#P0$J) "|QZbjN\2 }wɖ̠pl+4%6Y2U Pc Á(#&++`vP.0V1o\1C 2=l>!!)GK`*V3"ZM|GpeVP@L,uPgy'nJ B.mY,eA#CqāF(>Yq@#L*#&LApg򕘱 6aa H:ìQ^JEԖ/|'Oh0xn s|:@, O" $C e2a(cj8LDN#Φ@%d h@ {b  T7:roQjfPqP` ;G `1%?*Y\50AED*a@5\ \jǗ U\'AI8 Ʈ2Qy`Tfk#邰J+T|F2JǗPi";?$Mos_+ԥ`J"hK`|L%.rgwĢa3'I<* ;cp_e+ h`b 9\q)[Me3dAF]cLR$ًs:Ĉf[R˕%'DY5|(fS 噐 )S TGPඕ (zԷ~a1(bq!F E@DBCH?xҎC p-@FIrsg/R V0Kh6P` ]ŶsPbmPL&-"r % bV >C[\Tsx–j %HmHGt`3QFfb&#@PJFJG2q4aKRԭ,C*^=@aM!{ `a -=62yZB_RP' CJ\H@ǸiPC^339)J\Fi H k>P)hs0Z8 40eT7aBNQ9A`P(#JL[Gp ,&6﹁ 09MfdX*kd4 HpdCP(p0DG4C8P2S0b)+Pc65|F0GTnaМf]rB<"0^\Q*/A oO$`#X ,$g.|5 L &>"}؁NB90>T'o/)q7O0 "^d ibL$";J hv} bp?p1ꇉj/` %bTU8TP`q?!1@<1< T[s {jb0hYjhÁ/!wE KJĵ 5x0jiRՆ_7p .3?Pq`P%PfQS2QK_ ek:^PIZ̾I\䏡@GP)b,嚎`C+7 Ndp(<05CPAf A 3;ˇsOCJ!?8FOCh:X$[`L3ي(p3Pc¿&\ `Dn 3¥_ogQy&=@ݖ!o V ^ʃZd!r g5NHQxs gcL&[%؀ʲxQiU70~d ̯ٻ^s xp5xj|¢a[gȚ1P+DF,?ix4 X# )EJchW]MfW|/ "L * 1 P J,d;mɂ<@O"B!*1>Q/庰,E HA ({hTi[{GX08-;2f 58b 0ۧ ~,ng L| H0ɿCe\~L{@[S 9r Zc 'xoƼ y~0 ^74VW^Bߨw+EZMh(Z`A14U_⡮e[HCc "n>`b00ħx ي(ψÍI p5ST)A Sj&bD"L pD߇:ۘt+fS.(8Q3Tϵsu XT>0<8 #NK`4XQe y|c/Ín?0n?Q8q)ipH xѓT>!>spxy0 4FR=p#RYGpycs& ߌMxƠ3K7P7:!(D0y*+1*8|3x"CpEs^*(>G1/p$q ^W|`s&|Ǒ^Hq?JFZ ~HG81`B^Gӯ% ɚїڅLEc{0"#Æ#Nbz@*5>?V~k<`|8X}Fk3(U&nqff7Bnnk}?H'!1AQaq ?-eΨJoC̬5wf̏P7eO2©i%C+ 4y.ƠPe\0Za+TW>5cĴv9vU_ D5%J[Z#. pXa"W''A(uU?-?ȴQm N1*% %0wEw0ӶNؘ1bH^hhpZmĮ#C8HPNRYW ` o5-GMǘ:SASd$L0Z¨ PQDնs@)k2̭`#T*$`ئSޣ3̼Ab#͉ 7ۨ~6Eb%n9]kW,}˚s27M)-3y5C_XJΕq.7 ZxGW f>=8#],b+)+O-nNȢ쪲x-af)?6<0ASii۹+zqaYro[ (KN:8LX%WĦ6 4>cPчfJȒ@\1_:qeAy{+JRfـк.UK9!J B?쪄jY j;SEzmI^P? P : }=u# Qe __{Uu+ovsU!9^ /5"\fH>UVL1x<{/ 9giFj~LInxhQ; io<*4g5u.s+ͻ>e{B/`J@QrU:,< c 12CʁOp#UYxb-=?S: ŒvΠ'R׫ |V=# X~w咾䁦-c\\#)QpBV˭ i0M(tA,.hM'2*f]7FTsbu1]o9cn|˻.adKF$05)G̲j_9as0SEDD_^\ <iP) @YKtο63!q`r͏G}9Z{rҨA& c#M`zt,SW!]D%lm*!bs|?- MR9jdi[-kJJ}wev)zp(OYu eĴ` 5dc'RyyP=X 7#ٖl{P?h1YuwR8S.d*%e`- su}؇4w|u(Q(u|Acnp\53]. )u*1pF Qү 2l6yeAYLJ9`TbG)mk a!hVv#zb$fBw)T*,Ht+VJ!):$SbG\l5 c hO%ECxQЭ_酔j.\YyLkPN9BdL S$5WŁȌCυ W_8:&o:tx 1^>c27⮿p%+D< ˙Zn| yWc_S Na'bMx?똳UZT s?~vq͂1C =C=nrmz7By 89KOSA.1+rm(RCwy8`,;&+%X^Q4`^CigSϰ h nK &nMlNGw/ E;RQTQOpTMvn.y`Bftv+K7̻He[񒭙o9,Q}vxiwAE\%%P Lb% ؜kq#:y$hS|˯ w桭)>+D[+VAj) _*ɋ<`7J\g*Z_ځP[EɴWe9xR49ĸȖQ )(% )*kڇ>mH]s̜$,y%Cu, g$bÐuCmSkur9lxiMm"ˁég ١ ֺK.܇uK u |E1g˙)˅+JSHηXPB,\-\.^ 0RP6m2%HSEOm.^My`qxtBRX£ ?n8?:2ؚ dFX@%u^Fo>.pbؘ^#)fU ܻvʼ.R \dV/&[Q/j'=$Ŝ%v#gWLZ+ -q[lWX.'Zj\.r<[khfJ]K 78.hm`QyU>CdZ m)+ML(#eY`~uֳ)!Ql#VǨkʚV ɨDM8p-nkUGo-_>|K Vq<3xc ?'6 c`ZB5eXo EdإCD+ ж{Jyb(0tbĢpϠ^ G*ШΥ r! (i]y%9R׏5Pp5kY(=m{Ǧv1vgXN>yPa]8kc)0١'psk ][m? AX0Y-^`5X%:|׵dZxi3]VW_ZCRH[ jքG!d-S1йh?lSW@p HTrME4s5˚D%P:,2Ն-b/^\s ]Y(UfJ7~FmƐwcUʍnka6mY+Ũ-mEa R)u-ܦa^h'4-7Y ޷ĸUT C}=4km\).Rb8:.u աmX}a+ĩ+~X=m#Gj9cMh_@d pv`pqWDj \ĮXKPV⎡XXYmr÷v>cM9 Aw1+AK[UT" 45o*N˯Ƹt w/\7{V|,~6iO`xl_jw_iYUW53B@ 7:fTD9%KiS=(wGLWgrHa y5ʻjg,2|&4 rʘ[. 7S@R< hRdrA3f}Yuwlm:| ʛ>8_ L<,QQXAvz`-)-lMDD"#`%cȎs6:GW uq.duT)o1@0x{Dد0**wehK`CA| !mX_cCR{x5`B-l- >7vc`@%F(aH9[ ]--ы>cJշ}̵

    !/VnLU+^A*(%EY>mzN1 PIAC qFDra4l5r g2*s-9fK|!9F EjQx%2<0JŔPf x?4*sVЮ-lFp-`8Qqm侠'6^/aZ\A'R[[+Yzlmko8tNPti{C(}JeZl|1 anUxjbzEP;īE zت@5YaB݀v0Ɯܰ W-VyT= l;E-%&lwZ\y,]k<_k/IiVE.P fVQQڶxb&OA-8VB+<_MH\W Iilpܕ|s:|v zcA2问2&Pt,(MGe)%AcuՐ$8Z"/jo)H?Sj2ok9{ (,w̯%it,#tuŬ>遹ZmRLn]]'MAt8g%CfZ1ZRnx,"6 4-KTT&R *{ #x%Qi\Ylb!RM`L~XTs' VVU0`kÉaq!/~NYrTV@%¨.#.d OIGWgbI)wIzuM?̻YEoo\ JSu,ʏ@77jv:WRҳt9z:T=Ĺ߉d!AjԫhWD۶m2DW{/YyDRr*"_e- -%7 jز7l{<0[i9Qҹ0A qX @YMgI bJrA2@"l!) erAṛFO^ΥnGr˝ _6Qd|(ju926ER4JK4Q%¶E/VUΞ-6ˀ:V Ҧ9Q )*ja2niTFɬB*OE,:%PY~F]K%%c+C,c}GZ ݁i橬xYGrN4'HԃyT2 {egqSC: 6IcyvwirD9,Hm}/wcg䖶rȰ/yI9l,VRT:@7 -$b)/+ ^^e 4POEe̮-QVYa@^%Zg)ҁK &\A, ; l~PoP8h,_Fx-#yeu|{Oz޼ (Ѝ*R&\`::K 7ҷ|>>nP\=D#]삎4Ur,a3X̴n!+m+W@ѭEޭ)ߘ<T|]+Bu r$v˝V`pG0\-YlekJrX{Es+SD_bаhbbLYA Lr+ 6T]7O0ݤq\/MF49%GBYeNm1ok|"[eFcGjyrHnLZUPP7](P%LVN.4qžb{cˌw(X7\Ulߘf'8HiJL*Q!+O meX\CtxcQ›2؛Ma,4{\ 8Ϩ9>b/Z$(..6tʾRWkY^V?VMp9 \tjq .U|Dzm(]y](%dyaiuC@|x Hֆ ӠzA0PRQ)Zv@^z ©kQ}H-j4BHX{yLQcX6LRXެyj[D)gqkYaeAx8bg*chPZ% 5t PB|*J$eK!2|~%yhCQ>!Oe*^e(07ĵe%8Pr(^MT,%B]+-gp鬚y›)h;Bw!h|K9N*;>XZ3L Y k\'Wm9dC.gse8QXr 21U{|xVxCZ,0ek w^ȢzHűSP [G1X4֙W…zmoܕm[b%s .8DJUB ݑ-S<\JỮh #-*tL sF 9gkE!LiݝNtquCx+ؼ3eR^ ajH9qw `A[b]7 ۮOBX\G{53ȨIs`'A&H-ԫ5vU u I4_O R14F٪*ovtrQZ0O W~2|lmBF7;)&ђET4.lc-RKlÐdz dUk/1wW,Wxz4]M^oܤzL|;|8v]>zr? [it!u/ҵV|UJlcрKF٥ӠTX[n2т$Uj=P ճne׫X+K5cA} l=J!h_5v˔N2v2%̍יĵyb.Ձ3:r'Cҥg`{O" >8>=ҽ zB\o_. vm~!?{nk|kЫm]0ݖD/U%[*l~Ơ&`_y8=8_:b=7ˈҭ!n:%2?ὖXqDŽrhiH^Z.w3]{u9gPKŮjcU]~%h+`Q J[g#ju-e߇m3:|EjNt#뛹K_[xX#E"9WPqJ։Av)DTW60C'(io_]KBiJ*r%ZEE)3c3@RxVρYU"ozl\ %"frlfAݻ 5j8NXu;*\fgr=1`7U:FwAZۉU˯fz>W!>B㢃hջмvΪeJA|O99""OB¡ktqoQ9vBs{YC+҅[aߒ\_MnCr 5J  g(ʗ#–SkԴsK hZͰiD1fu '1c/jd#!,`QTꏅ~ӞcUX$'ǘK>o`ۃ E aÅ"UX$FifA_CFҢEG(:!%jc0!r:Q*EfwOikb>NQ܃iCzrSFnk@~YNv3¦_=1zwMK~>K%U%)Yq%X]VꧡN l!hRx/mBcs7YS6r& W0<ۡJ ;+ȃi6ybƌVޞ>dhӞ~V*7#YDqIU SԬ4eՄ"QT100JGC!bӽ6Vvͷ ~%+NܦjgZo~qF؃|Am/?T1pfFª^' bl:סvW)*sHЗ[UP7̶ T=ԴVCL00Mn{jtSxwO12?VQܥE=KqA)A J󒌕H GN 8L^H~7ʲCP !KJ%P1[)Y cE?ŲP Q ^ y*Agw3|!o7^<AoO7 Ƚa6\rWǓctZZJsU{V&6n89lJ58y|/0qK9Cǩgg"PJoSS\rwM~.\ECrM^Et Ci)v]cNGQm\マ;;q }5H*lw"9{\*@Ԩ&7vVZW6ud`]<)h{Cma]'~GQŌ6;dVS 5EXQQ~[ x Ey_QlC^{ss'i,0@J\6*.g7fzehz8ߺgp\cc]S# UTwXh-]kb#}Գ-Po68 [k=D@׻ P>U=|a = pgpp⃫KaCUu>-߸tki`{*蕣^C騳*(w.&Rq5-Mp=&\ƘB(Æ+^ b!HHae8N?~ᶘbV:'benƂxDEr|grŠܳtJHax1KUk^Wĵ-\T S.X|ЮAl]A XV%uT6_r+{Ϩ<ͶΟ07יܨun_T޵(,(#ot _wx/#(XJZ÷X|AܿPicǻ^[HE?2ÝY?q)CS>nnR h9 y /`}+u;p9yJ@p&qljF`1"_o VkUQ |rGBUXbB_=m0GR#z$Glۗ#XaRb㿙|Y})ؔx"P1' UWCs!)k ǂ#3UWu*e.64ke& Sg_a{eMY~NIU]]5~;\ 6j[tJ> n=KvOǗi1?ovhH^ CU戲*5ȃf^ 9VN@E&hh[K 6tȼ1ÊTN&Kj ѢAX֭G9W#GOab6<ǵVDVWKkYBF憃@7Dyᴴãe(\3lXFߛlIeݼ.uHّri7ӱ\Y8]oH {)Hv8Kh;qԝuB6;c/$jW>xʏ4ط|JMYڈ/03s-b KB<|9_#r\ဦnvϫ5sш|:1kwl+/F4 m;)u/[>Y _"UQ٘Od e<꿖0;VWO5jodGa9`pEb[y)PonPas Ңhph3t~ 2AuJ]57 / ٪~Q Ϗ/)ʍ".2d1Uz]c*po?/ ЏAJahJڹSϘ栊F?xe dlLih,s~3 [gz|w[kJ.x|q$7B}G0Qa7mn:o*RBPЀ]y[|X>.7K^l< Wo Isv^aFpoE?Vi7)aʪv%MSZw.pYu{N}MFT_p%^V`tTaW6FEK*roK?W\9z༜I/H`>cᡀ-kC/bgo 7Z aq.+)o^>')ֳקDpvOo_? W R*@{ >v{\r{[uC\~8CdhߏV֜;uuUumԀZ@P z^?nV+NWJ똈ؔjg-uqP"ݵ):`ƫ ;G`vYU>!sL-,x"I@`h˵bt۝yka!j%~?B@)lEw \QP9S ^[6HAt} ClMD ėP׿0p+C]ꮼc Li_9zM\R |Nnݺ.ѯ> \řym,). [g4`eoJze^; Cϧ _*T/[7@ >9wzN9=CΎ6מ \7P ʗm("LLd*qydx/ ,FU;nD+-Q^Xuҫ-4/ 47݀~}rt]+WIK@M~YA?zߊK1WWkN%/O6 RpکAJDmk< 吧ѵ^WH?%PCĦQLRTVW1P 4y K%ԣVSsf\;8jPE";> M5uc1sA}j<փ{mUsKzN RU#[8q!  , :W SG=HPW7Һ PNSl#m1tMM7kYqE?Կ)䌫 ~M?u2|uEe>U^b\KsY/<|]L-] GoO]Q1ҵWow oѿWUsvajo'89ܵǀqq^˝ ~'wol}BjQr48W9sԷ#l%,ALCm*̅%I.21kX)7F o"([&DڱZHO]Uvd+,@2l-˫B]3FEq<=J׷4fEAfrqe)榟u>te+iG֋ [z(-:>feAᡍYeQW ~Cb#O Fөz-:#AxeFxuvCgQtP _]ONp;z {zDPlLJRpzAJQNS)O9hszꊙ^"hYm?Qigm;<㐙)u#_L@aT-[&tT bp]YU8̦m*~9+K撼)ek⢛mگ(0 <Ժ$G R5 J 9c˼ڍ]`MME/|\u-RTZ"?PHW5\u`)Tsy'&(" Gsgw6x+׃T:%zq@A8~>L3(Gί$F"35q˱ Hjnmg4 {~ca<}$Nh:-O{/ܪ뿲\flY{![6Z_9P~t ~a/j络Kc璘!y|+Xmw'{,T[BA_niq6ʛͩq8^͎eT*HEsڨs)`K4`XXp@\c较`B[^`(c0UDBoMb{VpPlYG0W+S[( Zw:#K\@.Rq3y<$Z O;Yů q"_C7n>X8Q~Qi.Mm2c6<|JXT3;Yt<0mt{2ӓJQ6l+NyfnCڼD!vǔn7 ѮZclo}:~|.]s͵8Qr_^2*osAQŮk\0PZs ߚ؈V z8!QbkfxF@0UY;QSK>ih1ʃ@%H(p:c"P4}ˀ# 4p@EXY1b]eS5Aiq!JJ}A&N6^GçdxiN/6T|!Vu% wXaO'62ڭ6|AI {-sAO ᠏#fo;c_R|\h~gcQu{[_ܵ+}jBG/x5pi #b=L "k#HmJ! ag${ۦ2mEbY>rE.mץy} q^P +pxue%ڄlE10˯VQPY z8 yS*y"G4`ҍE"6h9aRmrËFLr/ʁV_K @u ɋ=q~'Ǣ+կ̫i^Qx:쥥tk5X`{ 3nsuClvV4fmeDhߪqHuX}\+8,c` 55)(ki[m~jn>#co'7*YYie l;]~*bJ'Ccgw.~t{6hQ=IF~`=ndʉ | V\ZbeCᇐ.8ժ4 ݻC:vĹ`c Aܡpc^R滞;Ua\+ ַ^"\G_,oHh[YOcZQU".e`U!AKO-(@bV2g 2hAǮ!$XpW꠪'Rjw_^ B.Te@^=9ϼm^+H:}>t"¹8emW#J>xGn-_,9Q\*w>͈aǃBUlc[z>P{x^|$@찹?#ᾒ֢AJkj|W4/1L-;[Ŕ%v=Ex8+ Dh X(,w@z,wB'\RSUU%)Wr_|v*KomWg1]~W.! EdX:s.Ƕi+u/}<6ZlɕV5Z|2/=@<>ָq147GЎ R5^A*;V?۳̧)# >oK?Ko~b=z }uq5=5__5/snkeo-Ҷo# fWpKX?o bȨmPuHH5^̰),<03d}W'AQgfq(m^TKX^WiW*6Zyz u[onpET7:^W{unz3 =79*g+ۣT;*f_}w&Qֆ9tPدꔽh7e] G]E9 /[zWwoɗUK]#юRkv0KõԱ9K8]gc2,3*l\^kAڪ8Pa,W6aA 1-G '6=;^vT"`o&\'(K$[D1r *R'PSH= ҠӘkiU%ݰC7y~ ʇ;=] -eeΟ /K:}B8N7+v4hi4;&hXm_9 9-%Eep*3 !{"mrթ>"@ӗv^on9YJ@6dr1wdžWW{k_xU<*qֵVuBٳjN tO+T풻RXw,}&*uQ~Pf@P, h%m'HDѸ@( ]$h,8ccVGŅrQ՞1{>{X{M8b@Aծ*%=2`@E(aŻtbQuIT55h1Ӯ0Tm !^jSm,BT= ;*맮;n)Ekq`9o;YԾFoqu,@2ڜ=V8-`rxuRy*;>T/RjAԦmxQ~8JGUxAI d|m6=  zD">{ WyMfnYnׯPr1f3( P:B )Zt"-Ots`FF(_̅+ݙg=4Gdc rye0[yO N?ըzAm8 qUOr =]BZ\/*LX|:џ{-Am%cd=,&W3[K6i]< 8G\@S ER9_OZ*DK2Vu;";|#a2*9pB||U,+3mѱ:G1uϞ;|`WwԢU[.?vkcEo HůwMu)͔|`iAFoj3_f]\>wS}9S)aJnɆrsm`ueӡ"%uaOQF#‚msY \E6Yo4G^(xW} J-rɈ\Md6ɠ, sFqpYX>bZw/!G԰e0"2-P8H3KWZ N}'ݦ?KW焊/_Ke*\~5reOT[˞#&03|LDR29xe8Yв,-LIjcEN!S^ [8.`pRٽ5/U<{mZO݌C)A] %{rp suZ'ܹ@E}$-Z|3×+^©֪ܵBr|e|A. =CĢf[ڠ `-i_VŎ?iZJ!pg#LiaE(ĩC4!MÏ(KkԾ5ctJϘ,]U[uK}mTUKϞ9P)XK5{@Vm\B[[gVD3vfqx~as濒~+ց-f"Wߕ6⣖Zm"xytO/XCsБ [W~GVV][5}^wǞ:Nn/cOߖZs. '@A ?bAѠ(VxVݹXRDpz_p p9iGĤUF.gJ{o2Ru^'眕=^+3}uQ ̲rvu-#bbE=W1ΊfNWL^9T1vLSA&x/|_gf8prpvդG2)iE=lrbub[=\L,#Ƒ4X,&$FX2nWχEYKVD2&_ =+V*ھtULqκ non\^<ܣ%=S!yfF@LKK!5'yn-rmuZB7 jPecH܇z<-vbvcYx!CREg# 4 Vпw*g|ȓGW 8/ ]Y@)]g.T$Hi*^6[yoKunW,Omamgd]CaYՍp i<⽄G nMؔhzML+vεK{s> jvp0r m"l8ŪݍqWqՓ_v*(p@^Ap dX?W.74brwܒ1Y*|ׇr+aʥk9NFUq؀.{?՟{\JlSKS^g^b(bd඙1]7:b~L"L~b$?L2խ^ly|\K6@ A>Hi8yCZAc+̷l X+,BUٶ*u5^OVV"M{a™rKͨR-os/yK5a5lrՆ^DnXشQ>im/;2^_pћk|9Oljc #cDjܵAP 1EH_|x-Cxz`6M0mQm]^FvطsdUHGJreh#QӋ AE ;o:PNU*`r&:5z% >v-*YU`ney'aM[Y_3@(F޺NfFU4QoDvW_qF<}71 uGt*E/TS̸lGT*E+2u9.i]uWnU6#ܾnwnD]nGfu7\cT .]Gf߫V`^ĉ{ Sh,/YWu 7oh;2υTv%mu̮N 1$@M<ɦca$H UM2j"\eW۴U;(z*hp=#v%5 4\i?_'55 :e.R]_p4rF ˶8rRU鯎"u3{zmbRgKD %* -yoʞyuS XdWu] \Kj*늛Wy|c)\oLPՁaY4YyfۺQ x-s,F _2nyAe= |lK'V pdvHO 0DfmrI=J6^aprj"7*џg~a֧.v!T6Nc2;i (U%$9CJQnV۝mQkRk)j5Q~vS^FOYp; /{B6`lw*+c4ipyK5hL%+H-wPr}TBy@ H0oc}ZBecڊ݅Y3]^!e*MR2U(Ĺʀҋc%qK[Vo#4 QQrGnj|k\wTt&-ÐKYT.;S 9/))=g%fX|JJnk}ߎ B}WǯN_Ŀ+[ _V[]8.x7{u,(g71=A*@_mWڏo#QkNE1T`4<Z;(V.b(% QZg5T[B.?iYhCL^:_0 O| Bp~im!}-j1r/#]>fMXdKKQ˂d-P.6("= 71P$6|ND>e z#V8F7A+_Xu3ıF* m쌉Jh ]'|kۀ dA[O .j9}G1$C3&w{V:w%K F4n+B$57ÌbXDZe0 ʓI{^#X{l({Q,PrSmV0Z[%\"جIV];*񹹪#gñJ6#B- C XʭW/zRr[[_9su]3nt>ϯrWr]ۈ9㋸>*n\ǝ]֑۠Dwyo+gotE%h^=fsu F^]T\8wU~n8@mws*\cKsVA =ñR0!UW w6)ҡeݵcPzAz(Z|EʛPį+\apU5u5꥛DoLuqux^H6JQhoԳ6qvPFnxq LQ+("1Wʥl^9R|F c 7n 1u0̰I [ڮ jX$fī kuU7Bp50tgU3}axYQ|NNQ罕Cv7Uriʗ̶on)iac< Zx=_V=s,Ɇ({bm^?]Lʜo TRπ@:USl*Jƒnɱڒ 1tbWJ:t>r%O2$&ObB/R~ju6]%DZk3d7\A e5=e:`s*D׉@naIĖ\b;+%fkHA~ /pP]NmIfmAEZRf~c iLSK _ kH& %p]o`w_:/U(llo O3;9lE&QkT V .YB =-Z|r3 wFJpz?x+/U R62 ]zeObD?_g3Ύ"W0%2`Y;g(Tx'CTtYP)Ϙ R>P҉9Ji>t[|e+tKT+5y)۫{vhbѲ[ DnT sU{"eI=\E,3Di\ 5;55\u7"˫xEjN쩶-3-V~@ ׈RmުQR4AI:%+yok7n1Alu@y]ZԽ=\N36{H ԅK/Ե %Xx<1S-qB@. [i+쐈?pYL%`ێjt $uyP8@y[1R|1P3į G掓Ր)ݓ Cn+?%0Qh xLg2y*?첲Re`v`4'ZN{^ſjK _.9JLKsq [ݐma f"SG->Rfsu4qX3X1\W-i)/ ׈"#.PW+I;f\]m\$hegyJW| Z%(u6P'5.~0bFV*"2`PRNa1UgU+~ Х)}nK?C˟6yZ*})a'p.kU_[zqjVo Ӂ~:Ɉ !Kua.YS FX#LDvCh V*h VWᱶ~Mpu^ y+R^,pT6)Ϙ)>J@w5k_0cfI-K/_G81hgn)Umc *vb+BN G*SϏ/f0 9)@YVxXy7qaޥ԰F+Pamf(ڽSTDXֵQ;贺*uXbi_\Txְ2l w oXBE7v #\ƪOa. F&+W@mWWܿl>T ba4d4)\W:?d!F- V\](Xp/O<_5VnCJ}'US7VJepRkպV6WQG%|21髑B>n;ςg7EGȣ+Z!m;a-m R(0@ `_%JDA&S-)K(wiNB@˰?3 qZ-<3ٲ'ʏϿ_a꬙?$Е6p>Z,,ZFV?rZ7 ;e;c/7[bSDOXJ|N^d֞8. 7C w"$a)!9)~nB˵){]QB/KJ,_&Ub>5g`aJq=ˍDE-^yCU6A)wKz,YC"nz|?)aTx(bceNJ)k,aw-q.;, ?M1Tc M,$. {S㮇amKgm9_i1n0]0%z[VKP5*s"1~,CT,bvĵfZP9w0U4±Ntp@HeO] tKZTY|c XΣ`ħtA-; Ļ ' Eű.YBCp6M\)ݭȒѻ] W`R!aNQ M\6fn\8gr0WR[oZ*SxDq#e~Чcxe?SFm/H춉gĠs펷c<ͩ6N?1-+=6 Q%NcLcBJ_&] 8[QN4N2ϟBʩԿA/P:ˀa?%TyCNϔ_}ܢVJeA˥:,+vhu,=;.NhMWs8+W^#\6uY6`ŗ{ST!"5 *d 1͌9+ hȿ5pb.-lUlaT@o NjRww"T:J0eq{/ \"]`#8w0(?K$sp3'16*Zi2  ˩["+.4`%E&6%Ae`f\_@Fs~Ep+%a-n$r5*,/%^A~ L:Np߂6Cp-FcRR_Ը&KqSܿfT,܊55b%BXc7;"[~ a#%,%A*@FY!U8 n/! l^##EŃxǶ^y`De qFT̻za(.7<@~.Y<@I̺7>? fTpGfndM1X0lTst aGbZҠߗdƓ*!rCveQ;#(y6½GPK2V[!ȓ 0Y*iv'د&%1D8GvB U J%{/̱Sp\JhKIyEU ;*2HLpi g?T!1 `Aܫs KQW~F58  ``c ^A$S a`U,pmGƢ4 j' !01@APQ"2a?[-g1Jb9=[oIJʼnf/hwЖ9lLChmb#]29&V/ud~*oewe6}oeevQUÛ֛8BV6Hr/ BW.+HDXBJ NQd_bbe>NƎ,HX⮇$S(q8}wt!bXYiCkVqGbZB).𶱼&Ye Y[VbB/ee="8 qacEJ!=\e*+T-R b+Zeae τ{&tkXZ&]7؋Ǔ~ sDOHBʬU7z) yJϘE+EǗӏw˳ Yw$Xyn*2wCEa+VwwµؾbMfJQx&$%DEByGvE?޵bTXHBV5Lc|.؝.]2+:U+(8ꉦS+X.(u,<2 WPdڱHI/Yi!J<ɡI|,mtEqehbQ.W7Q:n&x) +нVhN/HH/J_$!t=[ bL$3bbvϊ-"jHHLB򖭉e2~> v鑍:D+ vI~ X2[gƺ!|dlOdZOȇGE#!7HH%.O[X$'bsy ͒m1iգox]ZģV!&ؠh/G]ü!IB}[} Z aǻR 2&.5LeLl%! д[^QIVEPd4g|hHKZhؽO %rI?<'&_I%BPţabŧŔtΒ O;%!3D("eد؄}%b$u8NR"nϢ:xxCbbcX||9)O4xt$$|b(z"'e jD#dXz-^(?xqYD>]+FVXx9hXE22_FZ4QM  $-滱5dzeYeQe4M&.mu> zQV>4νV^Ia,ZHLNխ/ھbx^GM?G7a, ,;ƒd'6a|dNe~ rS^ob,S#:!HLOb?"&cI>4d{/F98i Whb]S2Qh1Q<'7CvIHlWBtȻ)9hI?c[[({dbdHڇ%- LrH9r-hd2b߆E[1M)OCْ(2SFEN;z,$Y/#gqKe?b1l\(k"9$-"0[b<){&ⶅ)V99>WK$3;9SdzOm1LShtVE[1h\vh/TSm<=h~%T8ǭ3c}(*zd׃5-Ŏm}R#6;[#*3Iޘх b.lxEˎ3viܒ%9vُ=mZcL^ y]ٛ x:p-NfͲR;Y&lly?Z~ U9)#dpƉn 6G4'7+Ddi ҦfqgfBu< D'cƒ!f+R`BbŮ)d|2%B苢&K!)-7甘!ɤ)䨂8e9R%1S0cB\E3:Ru"DS$$ctNDY>BLd($$eՊH1ͯSZ2F2DrL%lKbb(Z)I JuGklP(uIֈ-hoFhSOD3tbmъxӳ6x-rr$ž$qvL>2eF݉zdV?"NeVGҺ#jw,Khcҳ[Q-Iq'#Oؤ9p$z*mZBŶc_dSt+NqWICTIYGJȯ/d>h]:+/hB(Ȓ%F\>HXZVEwFG݈cGUF!c<*==HX?=-zAZ(b$CHiTe{Bn (.,.ƒHrÉdbhsɪl">ʑivHWä.eM%Hg,4f[B5BL'L;}ݔzL0X=7U#llȪf6YMlF)3c#>KB\NU6_Vdi¾LD"T'!Eģբt8~zU)ixȚhN"`odMT:)w*U 2;dg][$U*%-I'%uI$$C :^LCTE c%դ80\vZ1LP(KI^cԭqVfm &umgD!3F Cx/Gd`v>i1\/\WVN$b$EQ'Q\mTȲ| { ؝$F6I,HH)3ȶ_'E-~Ĉ2hꚻ(|W ױ,n+1዆:/3> /D!ڸ|oassets/img/conversational/demo_4.jpg000064400000047440147600120010013522 0ustar00JFIFC    $ &%# #"(-90(*6+"#2D26;=@@@&0FKE>J9?@=C  =)#)==================================================" h*V)QEh* *P)PTQZREEnbssRr<8};C/Fvea޵[4@)P3k'R9-C[㩎Ǵt3d? i4zѶo s2EyVW0u{]u9!sc[w'Bq2{5ޕχ_l]Ui㻽 kk}yxȀP(GUf},J3i*v7 ŕ,bH3ȉ%,R]z޻WSzg{|}( Puz' {sR˲tni#K鵐%!J=} yj/IrzlrRsG˚xT~Ud06"%{lDYntg+?X;6 @-G5>mv3ycf^:VEP)П9i0ִc6l6Iܓ}.sWgMTiuML)Z,._s0oڍ,z[/O5YSH2F˚&ߞ\OC|F *(*ë=aq_f|6]j&;t][dv˦ě-g“U|)h/}&Vs.vf[s{憮ė߱h=NHuZs=Űqw&͖}$aR2I i;zR@ [wz3~l;YVuYni0r[vZc:sR嶺.yRJlmO-OGlh?gj~}/Oo6] ^M;fޥ3=>@WPTP0ga<4f*rSvsUp=t0=qf >w!9*(hv20+j_1`Ϩݵka T輖vn}üz=83wBg*dHPJkv~e>o'; +-ӶAƟ^,Vΰ˧wsdڨni/Q9s{2|]0rZMeuokc~nh.nt4{'V~6'.,*(EE\_3Tu5Ѫie](̽g]{ti-08;]g9X}z.xa4wyModCSiCIhy'{WLWGzc^ߠ= h@tPmi.]ߖmU#<2ju6,55=6 鵅3ѺT)P+@ m3CT,ۚz>- ]eW?*tgxѶMM3JBJ*G垛aw@]WWCWŻ=Oy棿>EETE^TI{HSu='iO対7ChTQQ@#kdq]*m1Em:?ϦK@Okwuq|ȥl*)P)PETxJÍ;yyŝ%wϕj0{ay\{!Uu6BTPRq_SyRxT_|l ЗpSS98 mW G<]7rǑ\(TPRPRB@ r8럄4P:+OGl)My2ySWv[\)P@ |9nǂIJ9΂t,yvq]\9Q(-R*(@4:1:ć,].ǙW7Icm*J*( P;:#Xw\vS6k TQQ@Vu0/yU{;:l{]% DznvGo7Anda*7Rwpzp\[,k$4lv3޴4J۷^+ދO?,5Hf.>O\_[4]Z-mX.˜297296pg=fuoG}l\ގ,UZv,Yg2 ۱uL⍋{0}([*$|k)XuEygMo VWcZC3&W]^IfHP =mdbflHk+,y0+ noU ?ez\ʹXQWS]-즷4}P/M?'l519n%(}f%l|ՇXNQ#I-W0a-d¬5m(Yi)d#d  ٍtfuvr'h}CuE,ܯCSOvm3NSǝ"Ykh![P7)OZaAze 7e(iYO/qG"PSm[ orRLKW''rˮ,a@RȊ֏65%&4A cG!k=!)1<]&c3~xq+굛 =Lq,:fB~7V%@. 4ǃ yi(0[@/) O ȥm*֘ 'vJE" 5T~8Lc$x^996zHrIUrGʕ7s^IУ>jفu B(ѣK,G DdB̠vMf@Υe`٩+FN%v !Q9?x6w?A sSXZWje s- {VLPq (5+/ &?I(XB&c0SԀ\>c7bV?5f><=g>Nΰeyx7+Y«'yuKl&eYglbfX'O[k^ԒU[(Vg3#VXեYRx>GB؜\IXw_6I Y@`^?sl! l=Po?}HO2E86=$؟)3쎒;"v+/ڴcǣ*pWhL՞F':>xuD׶a??{JKh}Dʀ#1(wO/w{V]PՈ?<խ}^/cǢ2CsaO@S$:K r]z׽yBoWQ'15|mS/3WggNhR3#?A vog X`> p*GX*y.z %ňZYRz?!Vq|IjL Ǡk\ezeul&Fޜ֊"ji7ꓜHy~e d6 C^Ґ:!' g~|&`M'YHk=9ꐽbOrvNAirPቿnpF=/~ƹngn%b90A zSѺq$uD EbO5H2ּ]%Y u*8_o/~7G<9܌28Z@9erӄq~*ݔRYߛ}~uҌ$c$DϾ8Lr!Y"0IXS헎sP8lJC!-9vRƠ_zSoX١5b}F$$zGd_#L#!TZ]{a8㷈s?n3܀`ȊomVh8`q+=)8 gۧO_ e#WV]ti$|5jUg[bڂ滪oP}F>4CѷT}umq(ɥ.p#g' ĭ@JY} $,*ԐaLE*zYmkQlW\η0=3D:|rV}fYHɗ6ff¤gW=%+!r[>$~*rV ,f.2̝ƔA dDȚ@;(:]}Ƞ\_ܜU'+ZMԃ8Jեֽ=)*y @-7NK]턘GWx_< AW醏K fW2PErq$=6D<\ 2"p%c4eޑ`=ie[ԁ%B{z[e[I[fivhlGN=u5QGb-&w =UY7="e`O;XfWB 3_8Ƶ{՚o- ~C;|պ͏ND$#D5qз$%GH oOAgb9H"i$k睖1o[YXda=|wZiY(\,O,L27X20-@ (4apޞ*UH-- }]GdF}*{8:ْ-A,EFAaK:F#Y`*\TNe]N{o9lB(4\Uy@Ex $kV ƮzV+e@H=IߋG#DΥ(ex_^;&O$]GRHHi=c`#X?$>}蠇O"q1_-b1ijE@@/LBz3f#T85t4q #CYH01Sy{ȃ|9FԫSQAJyk :׍db + \v0A+q!8\[@uNFIs c*LRg X U-ԧֆ'YxVYk;&F5 PjkA1HrUM px(%=#dV 7ٻGWᦆ"=]^ UGFFͭ3|C!İN,{)+*v#f 3>Z@Ĺ^_!Z# IczqіC4O2gK@g){wMjmVgki_S-y[9'>X<[>\7E@ ΊĄ |Y9KҬ+PˬԱf(8RCIZz6$WlSqG*/&FScLFlV1J&@ Z.VB(U;y6e/G7)Ϫ+.߰8U-ͽCY45Bi(՘,:p 0ԕxFH/<0Kc`RPrYbzOS֝mx]ᛕq9V̕55Wjc5{SzSCNm(TDNsQ/dM/:*UޙȒV f{0gw*V:Mg2F'Vn_jrza$X+isZH4$m_o|]2]z~ӃtgkkO: :tVQG,(Y[u3ALJVy1KK#búm45u7RƯn8aig{FX.~bf)\+g^s}nA)m7}:K/܆]*@~ٷO epQȬey{ll ]%wN;x`ټD ܗ%Ғ ~!d7cK=2+߫+Toy$QmNڭr.X1;ھl`;J+ lwT#2l{RHَ߭~Y2ȯ5N ~}2S6~Wsl%%o!*js)5.1mgy6Ah(Wrk]V]}buV#tIz@94Q4 % %$C͚- \L<[O3@io,vNqjO9dqlbXk]K6PeI[(LklC&<3LO^TrNۈܽz`BCaf8 E>kI,8a~`~m"kigRA@\(fuY_r<{ı kFǵN+8S:ʰ5KJ|=2x7⮄ *IXŽI(leiDU"O iS4O il>Ct~zk [@-IeL"jw vuT[s^vV, 8S㔒4ү |ʝUF#-22Wo h1+x:i ԖL"fog+f~ 9 OW4r+ ]dadK=bM#\a"e7 )%l-)cGBR5]{p "GzzV׸7[kUeFڔ$9E2JZOͲY%i옘k)֞oLuDS. Z9K]T*+v! JW13KFl]j5fZk!sF&.VL/bRˇDg[wۦemuIoլ wp6rK:˲!\OIĖ C[!O*NZn@qͤMza tu@XXj.Acc> Y؉@9w꯷*UP$iƁSA0\,K]>-K>VGcg4:+J$#e*^X%e+{=  #)SI43$?J\fˑ^Iˁd]olBG(5Y RC'39*C<qkz3k sw;e,QT{`7v}o 1b&)j"뜳e:׈X 7ޯA;m~D ~ߞ2aTƭoh)^;<<\m?VzR@F,˰+\SEN+=-Ǵ1j(`:B!1AQa "q2BPR`0Sbr#$c3@ ?!Sۜ5 35Ua؝˩nҩSً'@Q! fQZ\`/ѕgR Kͤ>@降MB 髐3#ŭ6'ĬG&q}F[{ XGGS ٥m>OXEqE.knM* fUFmhZld$1iO61RִڙŦ,*qeg+_U_KR}i^bOkM4o,PJZZpbԩ]n͔܊F+C)?h֮ޭF:el9OnD3h΍umDTō4\LvYf3lLΝ5SV S=_;;d zL)D=ኙuD3o2u3a;j{d7%l'W>RwMoJxdqgQ3S=Sqaf@L6= ^݊j@f}@iWXӊUvz@XaQVƹ40zw(s S^ѯL\u0.ǪfHmU4t>E5S>I=-~8a8XÞ-D%gZf-cE:s%s^j3^덧*1pD{"fDve= zӋ#gkˆ#'>π(NpN{Ach ' //wC ?XWh{KQ*F71Xdzm4yk)W^K>6Б9nl<33O)~1"UM<@Ҟiٔ=#pW np⿘7[:!.9^aB\&A&8ݔ<+05?S3cyEH`ݓ{mAł60JFa+T3ld'To#3As0V7; 6$ ¾f2ҝK~06yoc ?xF^?j)Y؎ΆbN7-1?ԷĤξbח6D.>Ǻqs͢5l )YExIy S4royޭ%؂OSh <\(  <LRbNeN}w{nEåO0?il4j?2blj%^TDR%V1:JDbo~ch*-`!zhdTR W.0.Lt^Y?e" s%W'u SaW5<9(51YM m(XKJDjc 6.}i E\޹ld\ TVڍ@F6>XDb t1_ܓ K6P&5~ssmkv}}7x}A3M$ z6f۩pnH(Wq͆)ĤZ!H̗nJSm TL> _nQ?%jO #~10|cCgPb\QF2qp y 9l#&9c*_iR*T}SNfr8Q%/@sCީ:BZUP\=G,|HMWڑ済EN ΍e灆eTûqqxԡ#v'h]y6*#|kg @08![Fpg\y >V*13}W<B}2Kۊ5ҪU4y70b;NPc*:/Ħ?|" r\܀(l.Up>zf9 aA1`Ö坧L fU/x|fL7vҊ\e! !¡]vBd Fe9grgsErKc/;1'W-inXm$01iOx( ؉qn=cp^[ҭ)V s{Cf p'<E>`Ӥ+sM6n_ BYrSg1~y1Фנ }KmR!HZ  ]*#ܱbOtFbQIқ5.#h>U|ng0[~sOa1ac1Wm?-ث@ZZTUrh=糆ph )oFNį_QJ" `6 Dr}EbjDCcD׽qÇ)l| 07?i~0PT[gMjtyj RVτEQl#͝5/## y9\ߜX}g³Ӊ͉% F%ǤLEDVid~4J h^]1FގOU33 hR^Qvkڎ}qZWkMbZ+zMNv5N6֥7eu>"zmblk[ ?f2uwYi60B,C %K4SbaR,`ceV_@8E6죿@e +#8lpJ|a N[,9L }+RB`(`*kiiz] 6!Ć|a44iw` ܠ ]h=*Ƞ2b( rmfged`lỏc(nΜ*=B @NB NsEOP7UlҲq}C=6f ΧtFSD `kf&7f`'x͚mLP C7XäZd<j[01ק`+SpT/Wf|V `8M.;m \9S6LXbRmv6xĤBy&Tx/w2AhpY@o`TQM9 %"@pM}+{Q1.c&ChcC U`ẹjTFȆD8R!5T0v\_YBx *wX!)4kC7ptd&4iJViW /2P=7ˣag Eة%\*ԁde1i\.9F. #zDgnJ&ôf{u0k!9frEf@afۅ࣬V:1AZCpC6$ΫBPV[P$cQq?"j.P}3ٜT̟uݠL|g6C2=|U;ș fn;;~5K)\3B ]4Ʌ#Oap݆C!fwvVh{IQ@m o7"11"DCGH<6+ 4;h;;&n`XVQ X0`~FT^QtbWUziNL- .]q%4U4"ՙ3os`nV211;)P#/`nqϾT>h9e͡FmL[?)!1@PA" 2Qa#?IPHˏMte`U-LM>;E_)e2v&Eڲ 'HNparMETQ?n(}4%4 -1ʄ/Cz]) jTcǽ~(ËED5#e67BEN͐Kj.Xe,ےEѴ~1GSY%VF:%r{!%FN|^I}uhi5M1x$[v\rITDHCGOWˤd:D*\D]1\Eɉ'bNУE%f4Mɿ!M&Ni?/rQEL VǓ+$ȘCe'Deh-CK-  2"E6k] BDȆJ[eBhhq(^\9m+FiÕ&#(,pC"ɥ9}/)(ON|ڲI*>F6>SipΦU`ٖr,-%s=I2ds~yt/C98D3)Eqj%C X/йE'֔'*B V [OhŚIl0L} { J1-v91dmRI[HbqPR#_<#,٩fJmт dWG>ʅ=F9%+BwjFYc$ɵdl×]GkD-Lxc}1fc;3ײ0>N-nV̙5|ǟZq4l M$@JK lǑOpDdu O" ,Z~|(:1AB4IZwJmLshǗr2RVK d0Vq @Ii~74QHFρ5%kǑO:Dpdn_٥3iןL|w$i3 Sl\Q]dfӳ65ׯ䈾 ĚnК'-G"R׈KcI'R1d#S Zc+CCUdT% Lb)_vQF(*)eb>l˕FdĻD)H/EG3Mm(NFI):PtnkbZU JQHǖ̖)1clF_Wfn"Fp+kCK$dJmeǂQ4F&5p\&G%})ʥD.mLTdMJN) M,ɏQ1Nѯ̡/jʯ8RD$E(E`Imn*ї+-ڮJ1fه kr2Si!>6Ċ-xt/F_ &"NC"'Љ^5$ECn5^(my"̻(Q~HWߕ6QF!o72LLr(k| / U!Qۤ?)G$(jFU ߙ{? 5NȺ7%assets/img/conversational/demo_3.jpg000064400000061051147600120010013513 0ustar00JFIFC    ! #'2*#%/%+;,/35888!*=A<6A2785C 5$$55555555555555555555555555555555555555555555555555" {_!-$R E$EVEDQIEDQ DQEheDR%Q%,Q,T.׬EE!UEDQE"R$Rŀ DTE.hEDQQIE,XEFTheKK UDQJQEDX%DRŀ%DTU%DQ@%FTE,Q&E/ڞDEDQ(EDQEDQ@%DQEDRłPETD QEjbQD)QDRI`EFTEDQEDEKIDRFTE G\@ D (QEDXBQE,Q%TE DQDQE,QKBqq ~v>[s<".n]UR(X(")dB,@"((rNkq?K=_uWWޟk(($((J"X-B((>b"'U8ߘ7꿗yd/69^~龜^WsgQED(E`EDQD KIDXu\QD8]?Lsz+Ռo30y{Z_۩g/S"X,"(!H`")b(P9u?oR|su>~ߦk;|~oo'zoƿY'?g7sK^>9_e=oQ}ņ4J)b ",0|Sus;n{vyUE3A~kwy/UN3>7#w~3:"S$EEDQEK@ExW8^3??>}^ng//i/J9S1v~Oy߬su]+}/$Z@%DQ KEQ@`:?=z/\_'6xl>&+c} QEd":ϢaͤQED%%,Q D=]Gg}ӿCs*@r"E;ơKED Q(E`Q@ KEry'}6^GWQ( DREDQ@ DR QEQ( K).)`J`J"("J",>dY@()b( P%,"("MS*>긤(("("(" P"R@",XbM b%(!˺izNo?SN{+&q=X@("( P"(( mp__:O^Cәk;OGu3/;7=n7x-__O rtèqqy?#KatxG>gDQ BQBDQEU KEB/iGq~ns}߇mU}N>/׷;EoS5Yk 1?|u_GLJrW+J"(J""(~긢("^Wogo^x|˛z>r;N:N{s:yvOǚb8_].WEsjm]_˒,((>∰"|{>W?zb>瓏~ׄgwy񣟹qpދܯzA+澋?e2iJ(E*jDJ`RuQEGx}C^cogE.o}IYá9^KzΗбKz? E``g7&tn{z\Y",vK|{uη_ŴfwxI3ƛ#K]wy]|_Yu~cW_2DQ@J>>rg|y_o|NJ{-_q鿯Z_DQ=φ??//zN/Ky7;JRO~{>o:E|][W~a^("X)`s>g}Ϡ6.y{C` leDQs7yYtbؓSKID~ug軮]~S_OV(X,XX(zNo8oxsu=?LÛ?-?v=^OoQ DŁQ%`ueA{_9Wu>Z)"((X,5#yWyU|~m?=ϽN?+6CjQED(,QeEaxؔ"("(""tCz y{>^ow{.=G9] ("( @R("( $"twz?ߡtރ%_NOq̯^bԗ6Q J(P"("4$, "*9]e5Mip=s[q_S5w8Xs6 G5$"(X(("(@M@gW}GDZz.=мm|]wjo~qr4s^rϛK022"J",)b,J(P*Y5mox]7iwޟfhiX<ᥘə3aFEPE`)EK@%DQL;/|ɢEhifZIfn$k|^/i&a|<}b&[U|ɨFE`QED*RE,QEd$s4yʈ+l2$2R']w Ne&Zbl&i|hed&feF&DQQED)+_d\RheVEj&mhfhhVXi|eeifhif.ehV&fZl|Hi|Z&OYMn7.~'_o~oe֊$3i2#PR542-3DP*)"- DPD0ܬ"K0H37,U{pܾ;Uݎwc?Y[ݽܳ--DBM L*M-BM-B*̴2M- $ʒM *M3pDC3K$22L,ͺ34z170ڻ8**ȩ2̨Q"DPDPDʉ42Ԩ342#Q"-BM+- 34LC -K$MDDJ܎}[jE$ZaeE&ZVZReE$Q&&ZjFZ&ZZYTI$DQK%hheebފ%-B($Q2HʪM (ʒ(JPI422PL237~sxnzfҍ64L*IuOU^)c\,[|}־netN4L2MMB(DJʉ5ė|*mwiZQKU&Hx|?;/st^ZZ42PQ$3t~jٛ6ú~{/6~O5reF~Q&heE$QE$K=B=We򾷃w^M7g*"- +-jYyZϾ^ש_1:}9>ku:=e&fho$RsUvM _Yǽ}f1^DP$P-3C-*my^ϯ2i>:1vLV^lQURhoO]M}{/bzu~-̴$ГRĊI5,TFZDQQ&US`xM=FL=42Ngu{=M>Ӵ3h~K&<嫆(C- 2sru<|o |*YCgE$URE&TŸ3ibʪ-2")I{ix$23ez,y2aC- 23i2PP캿O}itwxw>w!veKEheeE&Z&.=--+6HH($C*L2$Բ(2ͣ-D$]&=ygw|Uzc/-=ƆZQfREj'1X͢("(H)b(2"C-JH- 2ʎreV|u^dx?+ނ7 :|<"4$)rH9]{y?gy/5M.,ʒu1?>+sziɣ-X∴B("(")"-*"(C-B(-342ʒM W_c}vTez~ߖo?Bϭ_hrڊ"("-2͢M ""2$U>=Oҭ&hQ&Sj_1FZ_XvA0DZ?D,:V\9hcڋL("͢("*"(B(C-D$C+Loƽz"M-BM 4L-K3D^K7gG^+nMM\{QZheZDQZheju=.g:Iaj$Q&teheIeFZReeY>>[jlkFL\c(L2C- 27WޗWQeyHE&Zhe8ZVz?A1ts<ɩ) 0@P`p渪%uǀWKC+s,g؛`~2-6M]~-V:ltC9]kQ 1 &2"GkTpy̗LcRWZJ#e\02E'k~E7mB<$"F,e YJHu!-e ll\ juUƋ`f]Di 6iFJ2iTxdSt nhȸyT٦ۤZѫfQUg*[f%ȘuS i(2NIˈ&_]3zy4" d28'K{\: HHE&kK5gx YRUm-atZAv4q>4[ M=Юz A,GВG`'^m bv$^``[;Wװ$7 ~4k;"m(L & س$E>SBJCJ+u>7Y}^P~ࢎ%:e%'tS-?穮+G)~b4G I죩 1X`I=*b)\wgNa㎆Eɟ,ʵB OlY9&K94Y&3I;2Ce$$^aqvgS)I-"[dlMdi gWFX+Zn 2:gӔrDkN<~wyL*"oA$s~¹#R!+S+fA̔i hIhu.@A7F.rg)"d(ra_lђgH"Ba$U"H[k^xI$( -~c%Ihű=<8]%"%)r}V"i'2NNlp136t=&Vhf<קMG.7aD)K2GhW b]")ۧʨ,c$HI]gϩϐQpL~G`Q[#Gp\3)p5 -'a!-/5n&L̉\&X&}oc`Twxu'Hl2e|M1=hWݑi6kmfL)}E4؜ZC ͵ q0(L/;zDOvaΐ5(MI+*+L,Gh3&.%ؐe]˹'s/BEʔzFx r,#׎QP^U)tSMĜ$Hdλ? +[z<5UUewP``U̓vQxk]<ବⲨપzUt qUU\VUUVPzUWks\WzjUUUs]+կf@+{Y]+Y]+]]kҮ 3w~]+ך5x;^Dt"$,׽et+]ܲi]5>I9F#Wɭҹ+⹩YneWcign6tҪwg#S;l6BO] /;湮')+' JFvAyn09.3l޼P\7FȒa#n[cu n Ue5&%eY]^⸪z=w2 7C)a^港 >H UֺV&Pٱ w#0e;Ŷd֊v%WTB~U;:BP*%wa*pyږu ^rQW5\ ξңvlesUUUy`\{WW\lF.ʠ]bqf湮ڪtM%VWH(ऋ]Iq@;WWU]*K]*z Q㓫P5}=Wj9VAŖ꫽xkԪ*v bGF^eUs\RʹX!ҽpU]?lUVlM]f7` =5Cj$xjc]^DbfZ;iwޘ|UںUcnȱY\V*kN,_jRJjTb|ZN# ^xL@y(6kYYem>ヰ|H5thNuHc_O]eiL=Zf7azKzUW iWVWj.ЖSCeF2~v4 \qUp{2MYRUһWJ((J3uKUW*H4]%$!gE Uey5UU]C6wN"C";沺WUUY^:⺜&$v]%PCʮު+*°JZ;`~IJT1WUW\ұ .E,꫊wp*[~/YY]+~4G UUUUUIH !1AQaq "0@P2BR#`b$3cSrC?L ۯ"4.{8^ҏ)a*j?v67:j rծ%%lp'g/#k-M(Iwd#i5 Ă.mQZE+BH=f 1?qwWF$90#&LwP39ⱢZjVt{ߛtC ()6&qfQ d;u]84!%nf'm IKDp鳡测ׯRϫR /)䈥##M1?r:AwnseqYyQk!b*vV0FԖQȟUⵊb=sڍQ ˰ZK+X.7bOҺ[ O 2ܸܷ^GL1"RjM]6H60h/B~4X;k HZX8vyOX4bV?azC[K!«FYۜZݜF_8*hrG jq^%#ۊY??\#z^,f7W~zk{U۳}b)0W7cm$v-/kUI<c 9O!(~¦꒟ʒt_C8ߣp܇p1J@[ƿeyu-EG{ {V&p;|k9{ M 7IPq#{i$1"К0W0w<;DE!d_u[2Fǒ $sۗq4"3rG7!;Az**gj#J!3[j2ܗx-xgbfgRH4e[p~Tm3(C{I{GeG S0Gat]V-&V!xnEpɃT 1mk.3# ]J>fQw,qK KQI}w#/+ZkI%ʢwƮSb( LFN*_ĭurHp3{©b1WvVkfۃ2]>$Ȩfn![EM,|GP vw+4|ט !$x[Kފ_f ޖhE4ڗ<{i7e1kB-JUssޛ2 e~^U8yCy 461ER<orpr64k4{M14J̤p^'ަY^K;qv#S\pM9V#&[ҎQ]_=` (ѩ4l.3ֹj@Σ|s$^Sfir'R gkQ:o@`/^hAl~_8]Vב6U`Ϙ5+Ag>/ WG_-oo{iaAlWd7 A<^]ڽ.NUydcy/2 WKx.˔X6Y\cѠ.$ (4KvFSTDgȰ&ǖ; `s5Щbp4eʗ`s]WƻVMZjPU; S t5 1$fNYŒ/hgR$.QO]ft\FҦrّ-*r2 \i 'vMϥj~>4"| a/ҳL3@I5ݮ&?aaf{y ;k_\39<`` YK \c-~:#b#(ɧ\wJ?=$P9prE"L5ojM"r1^2ħ-e\2;neF}ZH UxTcrBHR,2pڶ~X#(Q9R`_ӺVeQE` H˚\^;ɬїKEblx^y:5SS .B5 `ynPw$'aqG5ugs:&y{UEbu!*]Es̋$l*"/a?MkRɚ~8+hYhH? =GGFͬі爌o_C7Tn &rȊ0khG)C>UǥIpܡʧ}JT8b3Y<|@ _~1,q}[M_]"a=J&AjI?@eJOwr49[z#OdwQͼmޒŤ VP|TZq~Bcޓd`sa;oYZW]av]G2>~&fLd~|D{@J'`(U?p=J ;<ӧ'&Dr>m>fAop[?Z\ZI&BhCFЊcҨ "\' \`7Y7nIQM,Wfj{)cؘ,#֭ 2%N 4u'f [)Ghs.۪^H;DAF*ìU{8YCB+Va)]qo5dFgf`T_J^[n˸{T)&b7}*{sw8coqΒA +f܁տk$=?E™SrBN5%@sDF(\k3#)8BzNhpڀxئhf<>"1!r΋gѿ"pCy, 7Ny?Q_Avc`xR|a=H[1V)8|;/f˖\wSY?IlpwCFxSaBf8a+*qX!ޅH:}e? H$UȯïIxhѝ8(0RLK1'_yty2I2?*N85 "\/ZԴKX`s@a(#g=ODM*YilrSjHkiPQ3 yΡ~sآt68y5 yJ1aY "fQk#<膣QbY1&=E'͎ *xTXvYJ!jqouwT2Ωl'cPӬ6}MqmH&s糶KT]iy~b.T:mQ$|KPuja YhyKduյA ?_V5n~&NNDC)>RM o)p=ۘ(|ìyb4q)p/4;<]KY %dFýh1gxNg1d$< j SlS]y9Kr1Y[f]NSpKgu^ oݗom"/:cmvnIVK#:4Zb=hu;y*#M=Aǩ|iC_ʟAϼ_0o}WVcI`[eF.FrȡIdY9ɇa(-Π\h FO*Ytkm3+s?J NU\:E3@W Ԓ(gcĮpq=aꏚbdl}% Y<[V8PO 8`U\9VWW3 ɨ `$N@pe]`XG1^ l⡏TԱ)bqOegwz… ym '/usαa "1I"&}SǘPdz>qXy$p2W lX@w=dF!8pA~{#9>\VI!@  dгhb. Lgp*^LABZۍ:M4Ĥ\Q ZEJ"{V-!s5`Mi%Cd0=_jލy4g8^4X huKuR a YʸqW7 9Z/Ley P؄d|;ORoTHsCKy;nf bN8omyŭ2%m< uH V[\&;@iڦ=:)BWtj52\TvKKpoJ30_֚h` [qSG4kxz-29QSjXk}͏b *,sHɐ#\r'VTv[gd үYp*)⹚"L*Fzc3!G[ҴƹT287YЫK,ꅷkY#܈maUZryT~ !w)=pOr:/H?JaM{|>FY=$t?i2}g'c&&J6lٜP*>@ASP:$WJlvL9g]Xi W]=ukwwFymo Zed~?RZ@+錒" lֱ$6dpTB%FbD'b}ENha5G o-t{7Ђ#aFtNNceےcLLz2I=j"O".*kc*@EiK'hOH%1mM6W, YJ"<'ڤVvɂyي:]Krˇ~в5`&!sRy8e1Uߑ< 'Z <7]Å{mY15FߏS@ XpmS]>gܓŖlFYN` iw ǁ  jHS6jzrɂey/Qx-K)J?Pj["73;hZZ"zdv;Ѳ(>2 PmٜR۠_[@&6ݢPJx-:Gci# | wx9Q > dCSE7 CƬ8~up$`Τ@#;(ɫM}qZ]C!8U|$f!=Ww)q;\$s]O.:K'L&0 L2JHHN琫2k21Dv9R[E Kcd!0j=i6"6ўg$YQoe{ԩQ$3> Mw{ F8[0m&8Hc>1'T\", 'cײn%W2AӗOʦb1[};{U30Ni Id[.@a^O=orlxc9A猍*jHt`ܰ(;|RN`%ai\LI[/'pD<#\kIF#xn[ ޥoirW ;n*9oCccID!ݹ+,e$SWzgb\ȩaJR-vs(FU|khlh鶄K C%2⧰F1J 1u9槫*I+_+5jmm@gu9I$g&Ź=I#r 20G|-$i痹I,^<3Bs8]Ky h='-΢.aM.f4)W7StKp?ҦK3rT.D[#!"P<йOav,5{l`&ԭDz HDB\ di #B"r t+Pڸw 6ڒL6+-*n@ BZ0:iW _vsge+O"(oNd!0G&-ųBVًN6If9.cpE( ˜{-XU9?_%H zKkhdBaMFKFׁ[ Ϝa: XjwF*{=dc3ȣ^e'KxTvPY{g=L'+Gq.An . .HmtQץvE  ,;Iidۈ˨y Bv̅746&9 u{;-ḍgA{pec=dXHU-W/-O=zn^x9L0H"n9*ƥ5ıמ"2_Sn,™FYM6 "gtDơQF4e,C#%#n*KHu_Ӯ.BdUi*JRv&9Y?;,^͢;(A5:=O,+#^&8a+l\UV ̱&Sɵ{q(<*ŭvpJ)`"VP#b _IS(lXQGJ (@1ڱjf=` ӓek`'l **sjB%ۓ pG0U_]ކJ}@Am΍*LfPD51T(wᯮ G[a0'YV7GA\zDP䉩:JV*+pޜAOרẈd{lZ&>H׽ b)ߓ?R,u¬a|bx;ۙO07HQ,m3Eٌuľis%89=:F| x.f ]$ ĶL4wYPZE- arsl2(-qP cSDqW3{WrH+n36W]e]˘hcuvLۆYF<Z=ޮU׃ȏqC]ȥ5=JKĮ@9DMa;;B͏ق?U^a>bZAb1jXVaԙma4:cJPj&xuP^R@Lv UKRm_U(ɖl8؎. 8Z0yfA~[zӕ|NySE0T=bQj=\z7&vgg?g>[jS &t鏟^d.b;c0R͉JP>knqL,l,ȔС8o59#_W9YiM{xuhŇ^D Սy37iο0uzyoݩ ˷xDp2g5qpzfHA$R}\ߩҭ3OD!sp|+ѝY^G>ؐ9@cϟ3>}A2ށϭ.L[>d:0}10>?5֊qʭ :MU{C`ph C8uW1|LlA} +Vei-*$s(asoػuM͜K5 u,15V)Ɉp鸹)R{UXŵXgcE;}FDYcXtZL^<&Tňn` ``_QNJ,Bp"^ scNGpb:D**}͉b"/&r}=%,r(UXvL&c 0Qϸ(G_Sxݷ8;y,L|M5!1 A02@Qa"Pq#$p3B?1wD-$^D.QG `iM7L9@?A6+ENKy?]c kłM(oLisG bg,=T#:hY!j(-Ahmi[,B"&N,z/Q>+]){F)潱B&;e7ٿRaO8v@`LimtwM{gYl,uDX GgeY/(i쥒Y\RIqT#^Z(,ƻãw@L 'uΧfScoCVfgp).6~_4zK!9oW79p8MiFQ9>x2 H㰹d/Ae1 h#%S"Ӎz<ipYYkf!ͷ"@&Pe;lα̸%U)d28Sy>` -:Qb3KDāwM7(TG'#+< /}Q?<<9MhM8dpJyTC[BH#!Y8L|,x|.+jѱ?0M^V8{!;%3p̮9{]B^YX BZ M!Zƛ,lI q=F+>8[]Idk6A,xOoQ`g(0Ύ6`6{Ȱ Ȍ8+cp:uc)?OX9BBt>-%9--[2){,|8Rn׶I UBTZm_+M0]~57L=8vXũLLaq)ܛX=>?q_"Bf1=dFkLroz|'>oE`j:ÑeMQ+"t%ap你U,x|T`C<ӰO@"F< _u<=|ƔHE-cT~17Ga˼6v>228GՀG.^Y7[,1:+8Q$}qCh$YcYy XyQ潟fLoK\@W2N{<,̸N6~~.gOsI=&yl /r#`*P~9TNdNhhVr>4:u Y9{bqv,Nŏ*DW隋GjYOns1U8HҺJ_64?s,nG'ԩRڕZ_5HX6UJ .4s{BJJJZmK f0{,z(*TjTRHJXhύ*Tjڕ*EJ*TU*TPTRҺU*TzDVԴxQ4BqR#徇,c;ǖ*ҥJ*UJJ*@ T*G,0'ԙ%A&*ԫzڷJ*TVԩR ڕ ݚKHpNq{oJ*U[W*TRJ*ҥJ%*TRRJR[ҥ^jT^j޼"@IZ~$.ڕy+m/S6 7.,aRa +:<!Rz9݂&&u2m[҂Y`\|F$k3lz 6zX@4d@PAv7XRH %*Ul8kg)R) _!]~VI46?(z9Gsak~,'ү-m.!>2%\RJ*D hM_҃Xv)lOonKbEjR&z+ @z0O&+_|R׳^JUm[ҥ[iξx#%Rӟ~> M2;?fK\HkU*ڕ*ZlOc25ϚBM%{!*޶jڼKzyO{mjڑ)*Tz1ǑQ$0Z~4}R'TR[VJJJl ΰ8,-4U,Y, x%p2ߙ)o[ҭW[R m[?YOdGRME,\ r2ɥs?ҥJDž^x <3+ h/,>JTJm49Z,SoJJɲdgp wJ܎5\JXmO+?D޶JyJ*DJCjUq.6v+i} 65RJRJ[WSd$y¥Jm[R[RvPBΎֳaln*UJ*e⇐VԩRJ[W0y i]3غj@'bk/-#U{<[ҥJq'4TRJ*TRJRJ)_#=mJ*LR[r;*TRHDEJ*TV*TRJ;+MjTI MaqR _ *T[TRx)0Toassets/img/conversational/demo_1.jpg000064400000131754147600120010013521 0ustar00JFIFC    ! #'2*#%/%+;,/35888!*=A<6A2785C 5$$55555555555555555555555555555555555555555555555555" ڬwRӖ %ekJs(x.³CxNeX<5Zf5GX5,1$"r'0HI,8AK"sd dTRm%fbY0c24`2bY^6-$*adCTBk+5س!ͼt|$QdMK``F=k L²eZ55 " eHPPLjreʞH{,5aɂ U$¨9+>e"YM&M ; k#ӷ8TUKZ:^:T(D*E´T BxTV#*2ڨmdBHRjU s6 AIT EmMMLHjJA%!JiM*᧑j^;Un)iu5u T*RPC *RMLu3h%4i& C@ bȍ3W&l5@UJ%17! @Nwx^ZsYZSjAI! @MLTJ\ 咩4PHaHWRnX4:(0L*ȅi& RWڻu7dX,6Ct4JALBLM* "F2PP,XDIJcMBH`haH::u0C%@P9%k>ǫz׎CR%m9I]MFBqp{ßmñ[m#ɮ23֖t62u<2[|sgݼ/c]jۏG%=]"ko9kacz+6}^[נkst92M'kv#|q:m>kF8_p76[Ezoe:Ó#ij$gaoׁ1y*gZ7._3~e?-gs͋|;X6<]5v6ygy}'SKk:_W(XMOr%IZ;ǫk8x1ߋp2.:7;M:>^sz'Oshz<4Jz66#%Nt!*Nsw?/n{{g8⾫um羇g^/<|5x>Slg{|kZw9}:=nO[*`b(42dSxt68z.x}>C,6=ǐ 3y8ˊ<񧴬m]36O+_ծo[[>-a:X}_7#?[cNs{ !~wz>?rKp[?o>|^;6`ܭ:;1= B Ҵ ׌*]C`h#"uyYsz=:}/˟s7x~sᯋw=JKxo~%|oTV^ִO#.pyOy5{.KI*i 4) =x؀]baP&sţ/9sz}= U^h}%;Z{o7~v\RX۾/x.x/>qtRBx顴!!Q"tfZϢXۖ LmOú9~*xˎgkndԼoS`SHIKyOwcūB{tws{1:y]?U\s_0~j tv$'q<_w.cZ^zRi@@!33blbYice|ϣlTrK/zjv~k74-F>l}q6͈؉ԝvxSBzzN [hw(M'1xǯwȝ*9SOǴ&MLD,K$R@!ۗӑ:rMSiܱ}VSSn|~}\-G>~g\ܾ_O羉ϯ; >/4 \}{ӳ_5ɣWYx~& l ` <>>)zNO\y6{+lSbhAAQ* &~d1ӆ;pœ!n2hԾ"w}wtw=O_H$8sV5!VGx'ccŖ5+IʠpXJ)i@ im6l4!{{{[_"}^W|-8b秮c|^ոtK Ǘ|%G]3I9)*J䦜"JJH}ca rv`Mbhd1?GbMM14؁ӚMiИPz>^O澶N|&ܷ>g/BtM Hht}G"$9( Vơ<~x-ؾ3 HJ biЙ3Lni i4`6E1So|2kmyR|_'}=>?vy>cB` LJn_Wj2yR@؀bCeH^?yJUZNFL&1*%QȊ M`И[ii m'/<b:gѿ}p?A4ok=gJ Mi of=3 Th! &<*WxlI 1`JP4PRt416 t"jIBi1&~Gt#+?UGsnG]ER7,8|Y޷}}{|Onǖ]~u'7 *>z4SǨXꩢyɶZW1yO c2 vKpZ lB0_7- W~6;WC_/!~Eܟcyso_+=~a\]=}:_Q7}}w|_~|z_igа&xwsrQ|,Ο\~#:Ebɧ/_3yn?=\noק|?6sb+G}磊Բct]Ei'R40L3OЀ \B_?D(@)"Ij|K}g/=O9Og{>~>cCޚv˄vvݹ2.OҺYx8/<6piGg&=<_]3Mw|Gs|]=]*%c @1#%*H*HHI%$jiM|CG~/ >Gݯ}ՇO̾هǴ:oS%W8:G~nG./zϟXc.64K=3]x} Em^h%o,cǗi<];ϰcoxގGXF ͩz/90_Y cmdx9 l-Iٌ% 0@iw}7aD9 䶺#W>@ UQj7C+%C5}kKDZNSUAJ? Qn@!`ĒH6 a wTs Ly.O!AUϟ4Q6;EQ.q$aŠmPtPA10!dHZ@m@UUQmPh -Uzr.k"$_(H0 ;'z=46ja`+Jq%QWM:5: @P454$TeUC9 Z!s^rEIG @EALaF( ֦9=g@^ Ik&Z *00Xֆ`Zr)_}a(՗!x&DHPT6u@aƱD:()l재VI~M$$dCo@Po` 'Q蠂ikWU\QvMq7g&M7jjgv?ANztҏG{~oN57  :>ý *(Tz"={vۚA>tu uI%Q`hmyH)ȃV;z  z< H <;;=QE?wOT:X@PA޽AC/UAz!W*:{H]@5C*TՔz(UX]Q"+  cX4  7awl8<:߫vz=zsh U]RCӏՅjUɰ~lhUTQe"%UU]ZG@qCÃUlE?j*ʢ)ºTG?һq= 0,vv6MX6MC@@w_W@sע}KCY>þ ݢuCTRa]c]^6 H!ޮA>ck]=߫vUXuC E=]C={!X6 :҇AUt@9W  GWc7ewhAJUAnWda7`}!CU]U]=U|Ez{|_ UUvGg"AR*U >*WQ%G=UT*wEPu]u]P@wWt"(G檿uG?v|REt:<*;:=ې`wwH!ꀯkQ:9X=>8:zt *kUTGUC|`6 6: | >|TQEW?WPAX ( ~JWUUUUTdwUHwm tC!)=C !MC]WUEUv;Vt;?rv:7U*?!; UU]|?uWy-j(vP  D|Ҫ5UEUUU_UN^Uu_*CSzj:"(GDUDyTJT-Ci ">꼖X[H"A@WU(;CÁ@uUC;:]Uw@*EU@U+At?t=Z;" "y(t W`ݫ@{!UPP^ې7:4P{AnՄWw' ݒ#< JA}zB(m;v  W~@w(]̘&vCĊrwaq(nUuUU]SMʠuG&$!GMU~Pm_N (u};^S;WO"X(ÇAUdlgro2fFG.~OQc C< h ,_M&Ǐd./ ,3q6;Y`L\ó'gUW!>-Ic276X!`tE.+{cM!a0̼o>svD͛G~6;nQss#̋.}t~,SfG.+p6@ujQkBU]]f6|`!p_5|d?TZܬ˱U˦fGO/|hYr~Y99ֽdTlJqo^89 zr#wd2 Dx2\e|hC#:,n6`C$54/.=/&|7 ˘^#D@2nGOe﨤8@a~Jrg0dq [4|9]&649,{hXs#Ɨ0'ZՌ2F?3uȊI! K.NZ+'2yKvY2|k,x [3H2Y3CE->'3'qɐ12-d"wkGߙA߫h3w~=goDW.hKpq~.fUd Qt!7[CEf]zPe&)/A9I,N(Gc1q60aakAynO3:263ǒ+fZ8Yq9lf\xbd26u: qfDvHrua~OcׯALiT^pquX&99\Wf5@-tB?!O1Ly`a NGF%C43[f$jXL\o#\ c C Y^duSrs|3KCi!%wE 3)q+3MV$r65 ֭w:M<[ H-k?V1tQI2ܗa ->)ߘs15`jxo%S>kU]65w.uX)1Ų|cI.0u8ܦfݬ_'U&k8deG.eɻ$1t1. vj9X03"ˏc`6|~E(ۮPQŹ.#NH2gじ뉽q܌Y4/źN[V8 -![I+i Y,aB 5Pb6?ӃGIwvc I>}C[/Hq6ZW$zzW {6+ ,. < Tn9~ƹ<;2(Bh[,g͊ϕi̛=sfAy^翓&ab`醪-6IgE+fI+]]wLx\ؤXJ\`ɇf,q@dn6r8jjHy^}K6:vB('Wu֏#CٰNJ/k5:IMLm@eEʰI$53LxvߪlA)M&S6A25>CYrk,Ñ1F6q59stO0SKĺYqUUA;UX:햣}dB!^-hggGG$Ϟ1| 5kvg2%1>6cgOntzl{czafbm23ob`*rQqu^j(AMM?/Ƭg`>95it/bC<RA=t~v#C™UUUU1}x/.jC ! +{6* 㙠Tt>:uw/&?5ôi˸ $X3>*+ww}g pAW^Z؟^ :(dp P'o# Y!0y.,3/j&G}}>--Dr,fLWE"ְ_ȱc0U@vCwToSC€TrcȆ#>*k|c#gh@?_eUTG/z +:T( %,AQ\!ߏO~.ߘÌdkv=l68;? OyTcv>kȱDZ07EpYW\?r |Iǹ3nv2|Q^r>=T ozӫvUR)BHu͛d]Lܮl8.1rr=?帻SēZg !?XF2ad!JW5~Fv28uts>;ӈkϟ5K p!!d!EREƛsP:)2' d'wC8AWW)cK%nClɚR<XD"1[n#ss?GNJ1מb8B1 Ś_n8|$ :w܇{&ϟɕ>Scσ5@1D$5ŗ].]:8B"yLJ!1I7~q -n5iMOg!8+C˟Fu͓ 4Z͖'3d?_@, AQg16$a04EpBE~L\ìmsf3"6?UyߒE$-~ :Vb3 mu .[6Ų55>σ c?ڻI ?!?^Ôdlr |8c1ˆnLIv sm_%jt?仵wݢ~NE~MoxݤRLFG>}{ bf m-D^9 pg+o6aߍ?_P,}~`>#G}}z}32?6c>~3Iw`菬RtL1rTwS3ld AA`[ܞ9=R17s~dV$T)E=?zUn3쩍%)b29'fkX-%L12ThLe4(VmW7yr4xrҖ JϏwV\.[Ŗ)9oMZ%)A8~D\9cNr<[ iİ"T ۿ.ܣuud eژe(1>NvK}{%̀)d~pTIq9{I >M1${[1Z9 PrtC8ܚ. \#'> ̫%|9O"lM#Kcz⢹@UTCgki"{*$) (F52_\@b}oTr!K#tI,h2`mfX-srcW 'K;iGB袵@:(3=\ΜXB:9@:Q3ie.uа $j2Szqݕ{UͰKʫ˿hɢa:$2§O0u"ѯ@YU0#$EjuӋƬI߽qunz)?0Nui$n<=hvเ$E*[89vWŬfTlQ0ibl7|uPKifYGC ( {Յ-eRX5clH\rIzi9۸W:5օR8`iCț3F)9CY y(QN4e4=,q0dwD/*啟r=镀,^+1ђdv@.J~?ui6Kx+GT RԚ/qlc{yf.>u"\,VXkNMj XKэr #s0*ixFjHd;6T3d{qczPO 7E_hmkGĚn.j7Lf5gWBݼҹ 0(g,R\JYY2oΗЁ\g~F )f[Frn,.Cư#X##`RN3Ȥ+/n6>TCݳzaDž5SZ5UƤr3,ԲZZ3ٴgtC3s}Oy'!A.rsWt ٜs\Hjg*9#Vm c8iOi;ɥ jÛEz[z#}F݃|S"HdV;EzVVNa [uNTu1SWo8k$ˤ:yvyY{ ?{OԚ4~*c75\?B y,ϙruE T@W:g=5Cbp^%n4M:)i(-NHuLJ^pw/3HpgE?K4 Ы}\|o`B)` 8<)Ly V샒A$Tv]?WBҠ9fW3 >ҎGDt6uΧQMulPÈ@N?2 صHڣ)!GcNopitl@ahńO$q5 1iZV! `(ԔU>Eq4u#N ʻi=q]$)CR/!\(}f:CKi]d~ϤM[5΂rsh-݂KW2w~Pq.{=c*SKjv?<շ AYq.Z9Π2V77:fdmw*-pNBPo句eЬ &1V6 2SG FF[Fh*oukƝLH 1ZKr NHrC;qjB1FFG!Ipr$u'3FZ$]̇$;upq2Ohh ק;B9dPD SY#EY$ݚ{yf$X;gPY ij{{źacPCh§\|FtuVTwW<Z=Qp3ʭ"wY\\ L22D{*B"hl*IW: ȓ]=$,dbbл#v` "\&#Hr9=l$2:%}hO:RS-*rljKK"bh}xs;v)htPc$D]:WM4 njأC'2-t]}C; &@FN4x9NNʂ;{ffdEqs桺IlSnQs ¢(ȐI8U7&Ui6%ƃphl:[iyx0Z>Byc$1(5v{:HbCe9≞ qe&e9b| $${Gi޵Ƽ7*6g[]yȬjX#?ngKF#'&N㠷GkBgKഛ,DDdr mmEe Op*T[[:-]t^pq7F^SrRD#cl;+4Yb[+𻝤w 'TDIr۩䊧/%Մ[޶Ď(+dw#n):сOI ԉm4*YߎUpmI*bBŀ=flƌNCg5f_.2ˁMa1ŒlCÐurAc41rV(_)ĐmR5E\CY^8ڽ5r @ KKg\2i=َMo %Sss{M$wl=$؜*EIl$;Ʈ&\O%,-TC ܀5$C`շh9Js^&|o&1=,][dvԦNIRy/p)t\ќC{;`ΌSp{xms#$/TM3hljJx6FC"Thм`2!UjhEt\6N>Rnncm]4DMVԿ"-_+cE!_-],Ԏ((b[lmKsb@7NO4s? qQrswZN|V3V 244љ"&Ff\Fi.ryu2EKԦe09Id{Tu 2^ieFV0۹'BKt#`ݴH&0k 2i?Q 5vleΚ@ktPH.J$Qu9zCǬTcy7gFHU4_8>qp!*.>E\*Pʱ(VjFgI'pkVz*A1 ԒFN8'RNS@KS5Re1GBN Q wBvӜ-v)iTI2qz;*+^Y Q;vOtAeԁ#SKhXFqMtN#L'(2HӴxv4Mjg=Œhmׄr*D$xMgv5%Sjh̍2[m^r d[d7JO#C}1.U&swrdyc,XעDžT s'8"e̎N 9kKp[ݰm=Zu{+Yl[1M6e 8<4g<J\9ŒX'MHz"p`KN؎VGU@NAk+N{3D)"wY' R ݐ+PRFk G 6Fbц}Ȋ[Uq[4H]@j#yyMan;5ȯU+؛`ƭ1[H'Ό|FKxCi(Ɩig29|4YU =bMY7Fфk-ˆwq:6PrWuz,ZTLj<9Y.Qƽ\MnojQY8S˗\HCdΤ}ĒDᵐ(6W4Ԋ83ji1f]ه,) Q 2[2ԏeFAuTq[$p19 !ܗ?hό']fecU/* si}OŌ*u<d'8-SYf1K E]XPOfWcBXדH4ftb-phUP.@fHZw7U-biY&s oQY[ZDs<f?wVGlµ<`͏z͍s=st(5F 8oqxYXUF[IܩTjaO1v^ J'8;)[C9Wnq!Y bQ#-K,Љ!8G.YqUPjGF<n^K tp5O~?шt8MzۍrHɨnl.-,&YzӢ7a)2j(#drh\:`gb#Ri!1B""g+`ѹ;>5q/ FaH6n{D.$b2;zEKikPbX2sQ=S(x=TԦѣdmEg'q& y$H,q Khi 8@fr=Kk"rp{IJ4RJ'g.`P#\B dB6PuzK PMMs29Y}?GPvcjY@Dn|#Zb¡79YMt]3E>-FIq ג;;[\Hһ; '(+E嶯T˖I4ā޷ΗncZ>t SiIf" r5  SP.Ilï'27PL cJz/V|a"MA/4oC2wLaL4cl OJJOs7:.W^5LaqsXe;\)dҊޱ#N9ZhAt{io!Z) T8`|2}Ptҋl)珝VsCZePudXcC3%ZVq0h[sݾjK ⻑.fxѳ:CxSw.㺂EO琥fh'lr9uo-Nj1+$EK7@lTq"#`s]A: ag*qfს%4s!'N2+I0IHhң`#&[ZaW$llUDvÏylL[8ePEn x/|`FΐB)c F)&47j3qK_2*7["4Fvi]#f!RK}";"=%9OQѸccw2|[>zF , sQߥ4 ,֛DQ@1ڣsZI uTx .u 0~r@; H_LgX#Lj@ Gx4zn) Ұ9mQVCFW,Jd5ihu}|IT]X1"k;j,u4dg YsF[t,I|LapN\A$T;gڕaI3:V,*AZ&+شU"6g4pۛ"Y5U";+W | )#(,`=4J&bW{'RttQ)Ī kiU(9]Z;dho: V\F m<Ƣ>FDaVnb9_#,{ -ţYc:Q*F5)/nP%ՎY, E1>Vr\:XFI/vȊ=4!b1ه,?Kyes!K( N'5:GCH2\KN-gt"=CV=S`qQ/%(e /^w*IR>9kQٌL)ӾըwId2BY<Ʊx sBÛd=_6>RZ_tO):4Ω3EzPjB~xY/mY+ Ӛ7\F9n)P>'')Ψ(; {;SGS`=Jx1$Kri û;@y&xA\>vM+a,Ef4G Kgdg:-=˹I!  *G3X.-1E,E_X6ђ$.$E:^J=Y1IE&q*Kv:kr50֝/D.Apr'nK: 0;(#QeDG5ۂ!->j3]HJ<#£x8rΆ'e2k%baLMC9=Ed:H]mδYt,Ci W)cp$_I;${ hJܖnS4rrڈnom;[rzN.2,C#u04À8)ݗ:kێ(D1 'meՑW&ܲ"_nPfiV"5F:zWMabb9Wu|>]/JE֑ةfSp=k=ZTK<e[$ܱͩ%6B^ e!p!@X?qS1OsEQ;(բ&ARP1Ϯwm ;bwOΔJюDPb6wuzJu*2‚q%x` rY7ٍa2ri?TԬrUjSb5c;URAv+NǶHC67K`Ƥ [NYoiYYqՁM'ĦKan "\rJx wQ1Q`M=) 51{(.vM!],uђn2HrHb5-Ӑ)PMwoM%k_\u]LH*qM*+0V/ I$>SvHɷq{XX,`x65f<ѠczrQR@)67TxޭRI#(zR{1^1"<))\*'( G3&;0Oޫj]IaM5?VI4vҞHƌzs#Fr:kfh$+ťW;"gKsF7f.#"tYYXk@ĉrF{WE 7<^.I.F0V%M^X+|WOrϒbB6idh>b2g5kQ ?fJ օqZTd%Uwen!i'Pm&E9ba9dʎ*T_-zO86|BeeuYbi``$|&{0|tq,% ե~g$e =3 ݔ yWx9\g}C[i3f+d1JD\iXTZC0ɇ>] p QN*sR=9[\qd">G9\p5$". d?+Nq #'ZA3;Jɨ' ['I#z.EG4lI%t(T2\$ m߮FE PA֠q9-8@,Y/gycGjVqX  uZ688`P~s+J+tzL6"AA{s{%q=׶8>ݮg-K2 {8-r'Բ(f5 "S2A[B6;Y^%?$>S"i.b[NH~_tzI lTloKYD&*+k['"HbxZL|;8Hg#6l8џi``~Bzܲw2=em,P::FKr`z)Nʒ-9 KI\ BaiqR91ޮ0hQ5' cγrCCI%œ$#Dy<-wKsm,9۳A>MNxe܃^b;E.)m$ P!%@`Isߢ2~mZc8,r3I+mi6gPq$dGeaIsQBAp[`(\cL /"a_ohؕ0ht.ccot>{ kdNuvT~ar_2*+b~qh_u~Bn {>B~Tp%GqsQ;eHu#h3n|*D|Vsea[Kʡh%xwv…$>Fp4H\wii51`$fc?4Q& R :gJ ̱#iXk\5XL`E $(Y'>wʶQ\2ps `?`KrX]:iq`)8|B)kҸ£b▗ɜ#^;2hXla v(sB8`q+>VIs$rf8ۭq8m\ޜĮ\18f N#m8WR7B(ӷ[2Gѝ7&g<>(``j9l*Ȉ| \d2psO.D+7#wu՚wϣ80AoOM,@fh&AaFBz_(l[Mh`##6k03q" `)V~QOo¦+y. _i1&oŒ%xKanLz8 r&ÈHcvйm3.f$bqR"(ghC"([AstF[$g5Z$ #a]547U,}đER6j ](: }'m ;U]t3)eG`Hx?SJ]vN;zJx8q4-<{Ib=HaEI&9' ^ <;}?Xk'p *F<0r>&/50I=e7|"0 1,{X4R.ǘ ?-Yšl2=QOm' V'Ç\vdl̪w+\;\tH1ʞDQXQq*­%Hݙt2pIǾuiHBWM36G,,38  "NV&w;ʚՂ8NۍFd3ځBgaWGxNEco}vS#\pcΤy~N1tA4 ʖ>;[T+;fIcn1L/CvOj5iG}cUՖ >rV 'TGyD ;aBBFZ6Ծ4GT?k=zd8ŃJdKKzN>L3ƣV1T7΀GRPN#4V@Fn_a)`*zYh,X &2~Ўh[^= 3H+I޵yjǾ/Ӵq6@9SJUJP9sExR\@EѴ`{ےjkПRTlF XpW%Uy{|[D!UH%NΚX͆#z)@Lϛ"j aNy{MmF[ lm? AGMKgCܝ[;GʳX_F'y\qgM'%+F..dni. NQh-f%&0UbC9u1ˍze{ؚ|`Y#ԄsՁ+JQxgz V$C! ʋ19 h3ow-",C0{οlIt $xmZeƜEȬw#4e^ eI /:9*3_P$"cF[J΄ ''1K+S 7-c(Dr4jՑW\W43WtNz1^ pzM9|>:q >FǽX̏؍=ѲnoǏO}&-3 , |ԐpH 64_?̗3vx=I5 0q ^p,To,rdm*)wЩAz)UɝRHpbO~ԑ]HU#W BGQޥE#Am)cs"L>O?&d<Ëq.4} YnyR&xIqɥQ1^z.LzF$NZ8ޮ 62lYĒ(yOR󦔒s k<v\h!=r $ Giog4 ''Qtc(SȮ=nG"I*>)f:6c'YȭM+W+ZYy@[pĝ*kj o ĩ$l0F~\$#p)%G]bG\ Kqc9"YR'\Vp ^B65;C-^ݿ H1O4]&1Ó o#3i-94@}n:8c#"HIBv?|Ԥf(Qhm:gkq*}6rGdb-2hoJ#Qj{MBV%oX(ޤIc'Q NX5 44]oV_sU1ܰDXp l}MkیWiPq xl 9IFq ڽ?Ⱦ69H"ם# (Mxw[Qە,6+^[y#I3rA5`*rFwi,䕖Rq jF)]C!ʰ+ʜ֦4nRND\vJBsR(9IָU PHK{(tujҫ젌jw5 5 Kdd=rpIwjŝ3p 7a65p2G#1? Kn/swr{+H TeϷ)qHn2Ik~[w?!VF`wbk9P 1Pᙦ2^dVH$TG` ʑ?k P 2r~M ʘ:wV$`LvBIS `{*k[&m')' dmRD6~̂qf+W3}aB0_xxEy"H軝ugR#IXμ'bl`b kk"[i" %NJۂF hlr RX:(RQ{P1R?1ݷeD+B##vGhQxu|>_Du*YYhaDbl`);I8όp{5YmO6 5p”mʈWT?XpoRV. ŦۃYq?`R\n\GdbySO>,u.esh-sxs0!t?y8EWwG~EsQCqSm|sTO0Fm7q5p}vrT8I3,YN'SۧR9PYFlZF>rCi4^q]?vMBFn^$peCsmbP㺌녁Sʈ0mnLN" ,^02$D UKcXi-,=5QrXQRAt #6vG;2 +Z''9P}Aa:k4'WEnڃf4\^iqB`򃇀;ذ4ƙ+EZ-S2c>="^ܩW[~ԷNY $) gp:J.ruuTYFVELl2(DFL +k>(~<2N#p<.L7#萷an;QaY!=jFVqI(0nZѤg1C%h5 >AK?A.YȐ&Mlʷ \5 q!)q ]R$g,)/omkun#`~K.g"ޏ'M,|Npgv8Lq"_h.9jh/fMam{)q_ZHBȽN֙haK1,giz5y=BOĎWfA?oo"PXH$QE4dD:Xp`r93jr )LkI=Z[^9$o Ln)I'ԧTQ/G65 c`ӯ!K}Äv,KfSt~Nf\-4 /ep4RG<-Hq*+ni2!RB<Ձrq"Kc$o(KY]<kLH$YN:Xr>N(h<PtCbsG1b%}#jIO-E۝yQ{r⤹|7i}Eprȧ=ToZrH3~x?HiMR=;H2XPdzz^Z=RwRsf{j} 62K.0ӉQJJ^ÜSpn/-[WxndeR:WEE'vv1m=@yh Ը4hQ BߏYɎR>ݫl04\)DclNW rڨ\cWwѮ&%& Y萻,rL#yG~cQmW+"c"s9dV[OzlXfyCeG?Aϔğ9ˌEĚ8lAw`_ 0Z??3l|$RHxnџ}QƂ>FF’/'P?&=Y9imdIq[:Q>ZLorO> d>LA]6qQHF jE'}ęl[jA/bsG<ilj"*́O)Lcn:Aczq:Uφ)^M&4|i7ɴ\VDP): }m'ZMx2yL{3J XF(Ien$4H~xB`9¡ &ݵ*2L Z^F[>W> utz$gcD' V_0)*9l2#3?BLI02v N~Crxն2s!8Rh&3 bsӄ% =XVr9i:)pXgy?C~)u.h{i8ITot 2tQjۈ> g=_Y%/|δ1qZDM~H|kR# A<Bs׋5KC`EuA+5(p ml/ӈA,c*EI:K}.Q"'[EXThVL. 8qW-ʢh-?n"z>~PL2Zۼfw.XK=/vp;y-zv^YQ/E^?V(Py gqG}ПQ,2h@@|Sp;BMx3Őmg]>=7Ha/li!G`5ߕA x]/v&dpHⓩQ&'}]c>8( `:Dj&m&˸q(O u]OZ$lm8<";iA\*PU甆G.j05˞ is8l+[iIW]L(ۉ oON`0^s~FG l)n)kRԿG|Irs_FBpPX::a:>n R č@⌞NX#mlɻR#F&9={ hnU3R n$vr-eo Ĥ@꧿B:T:CiϸPBId5෢%ϴ$N>]j1]<XN1(= (D9oTc" i;Jhao"?-;z(@l&%GqV)lģΩYq?2KY2 \y?ń2&DЛ\21 O*"0QPF|iQ!I6mrœ\\TҩfJPip@vP*[۸&2H(GP$PT b8$BwN=楜tRYF+Ş^B9x:@}%kw~=bz'(טƎOek wZN+J@cNTͱZ"EmFtI8lv$j?Hy(k]hvQT{(Q-HPPYp69"9cΗ@=➟J<#ckGu:3]Տ+o0Ml鿶F8h8cV-!AqF:Z˲ʹ+ʢvhv4ySTݤFnTX^3 fr/"{*9%\-c3iR2(uD֢jɺS4GUv n=bE 4>Bf]W|P`ں(#P@Фj״AHRDp8 ʐcw㦖>1f2{hQZDX.vU'=&w)]yD+JKi'ZсYpBǐ7Ƕ 3.I=}G2.*{ ˜+ԉ G!L2ƮVFH8 Sq#5Ӧ˶,[߉v\1˰V~MCccBPc3Xo湙Ç[6Bw1"y* dE{"50q sLIeB]" ^hwO$/+>@VhP e8E#Ehq@i}_\CXїj*.='ǞBcʛ2\z *5tf<"i8enr0:~cX,]^ˍ9DP3k{اEbg=mzc%59^m[$.w rcۺAsqU<`/:JȊ5i}TT's(z I&6[j{$6͌S>u҆v @$U7ӑ 'B'#kLqOMVB2ld˚LSj|yLa?@]^D8`4;)i{+GyG~;V(v/>F-$3zmBO+I WCeSfG׳C(ԤvW\^HDP[ gs櫓e;)vԪCt,DamՑR"ITQG6Pyn.9_ 7g&;Jeh`Vَj^`Jp@F=-t2>K2Dݢ9y=ÒD/30ܲ Sq$E m S q" ic+ٻk_4csGd ]ZDB qdg'SA!@:% >tC4M:\wqrťbňcn%= љ]@,Ix\JӨvS.kT  3Y v3d&Ќߺ .f`3$XX}lG3|n͏-.F,8>yw#Ox1Ha{qۚU"Hq+! #G^mA=;$Yp{/fbKY(di\mhm.HLj<)aIpe+D E\l F`U+6 Fqq$]^Y;֓]C`?]+# F3{SUlzoz$$j" ,v8m wwP홊 EMɋA d5 IHݤmF"HĿ u{K'nc8$/c?n ?Zq0kpHđR8JYdHٍeA:rb#(Wl'2ciՌc4OCqQ8lcJ:IΡި_8]MƤyd ٌF65|%\ǐ\YܥٟhvܓW"9yHsߨ`g%7HљJA̫~J+SXi8ޮe2NK&! kQb %€ZZ(qIS #W1D I3=ߒ L0` =pI>3`;Qa:rE X*[o(ҥ3Ď֋c*c#w{.{u !y*Ɩ(8!W`4STuĐYHdgDwCAqz , N'Nҗ@,|v" 4{ȵEànĞu k/ vjK>ƒ&2v8;kNP%i .dJYP܁Ѷ5&o,#"$v2Ed`f`7s/#F90. fp`$w 7S"s0;0bU_r3նiDBS"zI%oM}9KxĬ 7I $R\C0+#( UΑPB U6NKq8X{Z5gV8gɻMfLySmם_/)l9ۯ,&BPgN(ByդbtD_)>ڞp34HBd$j<3f)o!39Nժ=D8ߙ$VMY~깼)[A(}wFS#`*?*&E9UVq#{K=ܭwEmoO/Du!;iimK#mimi%@ \I Ym`$L9[]@Us6>.8&9[EmW%oOjcʳ</.KNo>%J6qP(Mv^`RYK,CJLp8$rGjYKٞHvOy 5HɤYΞPH*~Ư"d[-%09D- @%]T&|g8HoK\% ʛ* ,@kh 8Dzۿ& mCFlX@ ( r lM=?B?DH6Lv~u@y/{}]<8>cI/p|D>!:o`/? $Cq!mѿ_~ ~1q{0;qn6߇}l nQx$OP<#( m2e\|[m὎Jٸ6DzrV3w6Jf"f/l9l,&Mũ2kʊm7m\@Z>.Mkе957B:[eh@\b{e>w'ZR!/jPDv56A+8/x,B@ RI P8rZ--Ֆ[}l*2L=fM:`@ViZiJ+dx~nq1m m,7zޤYgZJͨEV$ZTd*V0ꑙYrN9[ֶ1&^LXVmj uŁ)Q%"t7}>Iu75hH[Ao3=mq[^ohfB65.68&j^6YAIʏg,/n߆N L6Olf=omx:}Ӷ9B7[ ?[m#mͿlfǏ2 m m9gG1Gq<dz{oř'oH)j_ mܳ_}m%mg84I~Kz[AQ _}mߊmoN?yZָ`XDBCƜ>91Z\V07K+oE`N PqA,-+3fws;Fm~#IM9~Mo7*AmuŸ41^VW=[m0! "#01@AQqa2$B`p???;)Bm%/y_g5Q&=&ENJQ|oyyEHh颊Z87>%eki$'ܥ֘֙:0 K[a"Qe CoGfҙf,Vt ^;v=.Bl# i,)y2ɛ2$j螪2,mK xfclT$7+̴V`|,| X- BMEhPͭ7n$E+TƢ-⌈NT*ȽO}w<X~I?%26dL/#/K)܏wϓGF陣Ów34hCvLRT&l£Kّ48ͤ?&IŦr[Q)-2Iдfx3rkJ":4W0[BHE$$i-/#Y# pWo+-RҫL8~GN(*U>FE\Ns+oCNr'M}Ta?I{4Se HcNtu|]5[mhhLeS9+h_Κ4%_y-Q^Jם':(ڝ_6uqX|5Fic%6Wi̎Z4\,cW{ΐֿE2LX6[iK JbcxFjdE{M?:!xq-N$`TI˛h茒%4%Q5ҿ"%"nl"uFʿRd(bBf ޖqrl͛/gp1ɨБk_֗+i?CWRRDU|^&=i/}i'h|;%Xf ci;Q+a/! 0@aWe]ڻvMڻ^ΘAn~Vwv^΂a_Hh&7=4}t8V| ;UTVߠZA]!Tښ Ihz x#+a4yMUP =W4T?MZ^wj j~<BjVy檕UUUW CgAUDUsU&4u@s\UP=t{ hnUU\pw <UW UW4h hA Zl|UR!>F PVUJZ*5@!n 46( @h* Nh##J8e >-E3ͱN:WNЃp4ќ( RKnnN&h}Cc!/LL@Ö$=,iAjl5=Y2=ʹ- gE',k@a>\M?ri jqnFd>p\ :9ֲX:ccdXZCCD2@DKU4e̅sY,RCB' ׆6d  /#Q =2[_/D -E\AprkCKDo(Q<{#eTP(U+qvӃSցj%ɁdI@" ,Fڬ y0q 4{v(ltkhl(Fd8jz`sWpj '9\9s3%k"$UUUjT*1 #R)-I d"*qsUUP"# "QgDN:7yb-C, lQv5NJ#7U@CtDbA18|#6-3j@Ucr`r9 o#gUuz7<~,SȨ|·_:@U* X]*eלCU@UUVj~Da(|ǣ#sΆae)).7lf s)_O}v9e?NQ3* q{L '_'C/V!N0ī.wnؘDž̢V,dB'y XjSc`EGf4VzUUJ:X*UHa"@aPNQ UUNP*X ]U'C_-U"0! "01A#@PqaQ$2B`?6#o-tWnTm|Fom|>k#o_[{D_MٷQ{N_n␺]~!qm|Z/%O+y%βYm¸+*/$ۅYm|Hd$2ŕpq3nCYQ%;WɃ}#)x?Ć%jC1ϕv,;I"Xv|Tcݗ oq&l;C c4Exrc[BdRMΘK*n ;#N(vݿ4LJ+5 i^?ZPmIy#˳0# Iى[&={o&bGxQ pl1Usv>j$ 4˸c_Ѥ-yI7ؖ@5&c9Y6+g)j&xF:TYF"Q{Pfƨ&!bFmG䐡=&|i"dS{k*,K[)e?&%(5JHccCdn%lVm+RJ]9I?~D\bN%УI2."Ҩ״!SE &[f~HibR*o f_%B5wcXo-mqV3Yz#%4c#k=WKU$sJ>N4ˊeaEcz6z+z?EcDž./Ii}W\W/Ge#N:G"a-a]M xR+c_ӗ.:MtE+|M'okt'+_NeFRqLZYHI&q*X<ՎipA:hh[bsm ll֯V? ijCis 1 F&$.6r}8mY95QU!+hVﱇ(loxV^$dCfGJq*'({wb+4*g++杋 ܋ve>1ATMg9~ʢꬫ žvsE=Rg?Kassets/img/conversational/demo_2.jpg000064400000137540147600120010013521 0ustar00JFIFC    ! #'2*#%/%+;,/35888!*=A<6A2785C 5$$55555555555555555555555555555555555555555555555555U" 'JpmcSnUhzr̳ L!-9`mSXsIyogCW$E"khV1)!JBc&pAm~>*ž-)9L4:I6!K$KCm$X!fom{rxML)@^6K)a$JQnXRY;Szmm1(en\ QC4R$6Hs1yH2@Fj8758bEJT$9%1$PxWݭqusܶ:F%HDJV*rT`(I 4m?7*&t/&|dQ-iТ+I,90 ݞg3|mJҔ7,3a, h`bm΢t܁V\I0`7qp r2]KN2VH.[@$ 0f4d@Rmu41*6Ô 0pkm}],y1`5`!i4b4ةMWivz |',KBd%Ⱦ{77\$]@6Y 64@"^qj/~_2 o&>Ke 5JZ4԰hao~ej6~%R &-&Lj 1I_Wu׵{C8/s5-cI NZ5f9) 'P9CC.S9O$˕0`&6 hT׫ Ů%\%?>ֈI1ɴcI@ƘĀ )u܏[wY:WudǠIT7-e %CcEU?G_s)&I2[a%P$;_؜mƟ?_?HB 8cƆ *4}w%]ny>c|U: 91 ȅDW6ERIhE:-L|_G55; M C h4lN+?>;Ci2|X$E"%,@1i_wY;uᢢ%#!\ *4mdDC+C dW2˥=D曟x75njr14&ڡ @BE\';~Ov8)Mi4b@0C*ζou~!df\S6ܵ-},Ql`3z)ձ}$}7DT} Rd%8Ѵ,dHHq30a9M'Ϣp7?=,T1F 64M5v_ybh&])$&qj@4ccvz {| LܴlIw͡)ŎrTX,!.m0TNqϫ|O lM0MH T_|c]S6 '"`& 0&qc'Z,y.$ I)GƶSiЦ]74qkxMߧ:}$^\@ć PM-mی"쵾 )tߘbȴx茒W,;|[kH@ )Iu\W =z)&xjIZ bl0 b+츾㢧/o ˏzdidBM`!K!!%SS$~3AAxN[4{3XՎQP4@-ɴ "5( c=O7i}Ⱦm#1RoT8nFM0i'rpEY{ǷYrt%I4M $P%C%a,8#>Y5wԿ/̢&(Wj9ۛLt;O_|Pd12Fh D}GW:t6 T*#CC@hCcMrz-uwZŒ/i7u-@kwMj41xِh #"{.CMkY)Lb@@,B@ _>OUz"|GSfo4ؑ9L`]Gӗʾ֍\`v[DJi9hH! R⶝;s?O?Su~r^藇fU lć9&B)Bn|˾~a1mctt tW l]Mrġ>f.u8uC>o{qSyq[C7X)l)yL([M&C$y.B;Ǎy]|Yq=׭_&g.k=1_n|SEIRTV9i;qr <{_=IN'ɦ5<,%i2Wq({_u\oN sKǟ M)NdL0s8=%餠4f䛺k6]V+~G-#U<DZDLi0C6m'iw;IG翹|&;{ſyOCY#=Gz6/Z_nxJ{s;×5>/#{T^#N^5½? ~Yb,x>Y3مrӳ eMOyUzspXT55UBB- & ̊sS}KEO|Ks >أ< 2Y/^jO6 0m Cb) 4&cu'u-~?6ÏыӏO/,fD[^e/csp5eGӝggǍ^U[ ]ٗU>Daaz9OO/7GI+|?73~F~b|:>]@%|]N/яh_fna!Ni1& k$?Cj6ۉk>_xmɪ៖Rr\[^_{0lwМ: UI_|Nsw͓%ut\IϣsNYy/ZKӟAmO1R\9-.溞WQy1ͭVo%f@'cSL&rRXXmM$t\I_z,m3Ik 0By>/r:xNj||YCIY''"j hPi "z<'~7o<7iu4sbg/}wg=@/Dy01U[0_W0-W/GZ_>$Iˏ׋ǧͻC8m= <ߠ?7^[Iu|WgzuYʤ,2Իb>-vz_N=z_}Oz Ʒ/Fl ߚ/\{0)ǫK=CeK*77vSj9_tަK_~Ƿ6Ǜ/%jox7.>9}Foֹ6 s<i[-F,|Vf5XǛj GS[%f28MggmpesV6r9%9F|2&&?!lֳ-MnE{fN[w]ɶ1 pҋ^QrTzkz_V\91lz3Ő~_V2zvOك_g0{؏KEP}3_Nv9&T\fSbLU6OSj.Fl>:u^m]9oZ~qdǓ)汼ξk!g탲)*/=Dc,Ğe,}<9yI=ׯmNoy1\14Lyps3ᔾs/gÇEsAs~ׄZcWpttˣߖ[[USDUEM|&}زEH`L3ɏz'OpkFj̫y߮ʯW^7G/4㖰͏Ϙz=7+ls|.qd rJ$ bn$V)%x4;ރ}{ht,PEI!I/x\|~XaN-eǗ&o/Ly̞kYYgso^~K~ }eW/RJz{.fLr&;B 2H}x ,e T R`!J)$Icl<=\qW=E͛^.hj& &&1 - '`2oox~A7wqYyrz+ϗ%XZD6cE}|ATMRaW LSM j0pCU!8}QNnH$0`&H6  *hqً_s~mAnы_eY& * Mi0J!Lr 4(bJ"2W,WSRC&0@0,)Pjڞ^C_nEh3qz+cc@4PKh0*hL!*A% I( HL`7!4ؓz1Xb4$&`LQ 'Us|? u5oFO']Z`1 % i6TTi0@ a*xXI0 `` 4ĪXïف*WqlPK@1HPJƨY\#SU#`MK p HE!% Xcri 94 CCzH4bFWQXSJ H C)ll@7,) $HLP!4T @LrNUHL\)*M&IҤRr 0R`:)MKH 4  'h(0SRE J1!AQa"q2B#R $5r%6CS&034Ds?s(2:7wWhpa2רg{޶oÄY{6pt{*)eͺ\J;d=%h~kga_PӪ˂}!Qq'/W(t/zS2Bj tP#&x\xUȝ" ¯T%pUgW̷\90aجSL]P7,BX/C9%ozpTهb_!L`rϦȭ%ؔ Qf*U0TcOllwGԪUPԅ -aZK h0;D^NY[MarUC6sZj-/ޑ1\VQ~NַF44}M*JY}[5+c˯r g3!&3 5(>:mC3x=mE !8BcݠHb!~[9n=YDӭM652[6,ef)k33\uկUBboL11ˀIOM ;2& -aH7zbT3Z˜{}ڻ)aN[$ nCބg<\]9C/J%_ϔZibrPPr&W@|^W;0a+L1tb4q T%[+?e~6P?7E 2J#5u)ru4S{dFZuɸ&0+٬-f͕NKي?.%S%lX ќt?x׆3Yrb|qD{@ʆ vվ,abΗ ֆu*Vkn{'{{5c)LW, 7{Z̨!]F9\JذgvjCٚX_)1vJ8!K^؇.R cLԂ ؜ޣ9S!;t ^uMJN\IGP,ϱ++__"(lҦEעYNO*VtqDJz-u&97 \F[#9F2A8IN;d eq8^ yZL+>=Zxw'\^Lle qu?1o0*L"aamS$RU?fW:'Bf0*}s|A@Vs_-JŭN>8_J9Bj^/ݲSyu̕[Zo\Y=s3|:c+JHҫvG,wD_Pt/;+ڕ:F:ZL; r eRaaɴ-b0T1aKsˆx@22R?Sklm `ai0rr{-F 2%T tvyg3c-:4Ѻ>2 qϪw 7yg69r lV#JsJA{MUo7o: d;I͕30lpa+ՃhcT9AY.4&ᛸ%gĵ?Î9-^Z;V0X Y_"lYM, aMMWKIVvvx9:9eW8 |M5[Vuҩcua浀-"ܧqzY[Y*5^r风)[u~B;@"rXqbC8=#!\LX 8"ZebfzVN0*\o95-ճBuHyK@.viSTd6-f|f Fǘ?GlsS_ n!԰1@ڡSz 6*JֺcQPeF '3T;Nj-sNZ sg' +ʘ+\f=ĥU=i}yr3,©,:81R}M,Y~UCwR+U汁S g'kij㴮W-jԺ}>ys{.n9]P1\]!jtW:9aQAιɅi<|*r2 x~kV4lXuM~KTRpfgĎUû0 Kg>v"gnV+lNd =g.:A'RsPʒ_BF OFr.ʠ_6h\mJR3iΕQ= [c'(=IJ^d2[C[Yh[fU=&s0#2b1g {l!4u Ph܂X-YbpN9 s[7_}r֮yTkJxtCW03C~ioK c{Ɲs=sOy җ%9kelzt$֎m, ^fhִ W5v@)λqJB1+;%G 4x6Lc>08գ\ j[ѩ5RBVeeLV\\^Υ1eX\vR76f(^[~QY28!)n[\*Ʈ@/iຘOJI?E ᧵ȘgEf)W9sf }@Z冕[P-lM:3>GFt  ,H$N'}gu<\*tW jG%-JmULم APoo@ ttqjnµN16r4͗fcMr-'5mlHf0v]6Z n. BkZ|jԩC{_D6հ%D=&hv[psSVmە}A>M-.gfZ**l$ukޓTݜv\&gzt1޹R1.o՜YSN)˶"!LQ1f%tɝcdݵm0$713]E` b_MW9Ow|1F?5hW:_uϵȸ}%)>]ˌT VQv ︑8j,3cYn!`N&r`[/P1>ï3>>ֱh){+Y{RNTxMG}^Cj"km#JֶYW.wX!9kf1ueXҪ9މaCT\@Vldojij̧˭ vƐ7Gf,p],|ӥG hmCsЯRƆ{]i[^hZtT:TkmrnWR֣j5n}Of|i'|_Ek`;k{ynjR% UFPG6̠$\.[Pl۰O·@Mɺ ˱2Cx+El_gZ7GO ;0Uc-leΞk:y`.&,wbwRf?㿴ʁgy\ *OM.h=͉9N| V.0 8 "rsdpwX'(uX']u\>]Pmp7[N零v;:P*4ӢOlʚ6Ҫ,4yG5[`p&,Sq)~Lî?Y]ނb}1Lgߎ[)GO'+rY\f|sw=jfzFbCu#=2{!Jː'.˓7JGʳ<=S`!2>D:\ Xm ѽv|3k|3\s?rv8?#1]v7!9}n>+|Cϖ^`S WAEX{&t0Dwl,1Vsgacc" #TUQ3Q-Vgl0DV6ZV sJ{?^M Tn?/{4L)gqJSKIΎw͜~ ŭ]9Jo9DՅ[l802wW $S@;6Py+̊R|Q9:NnYkB- Ű! ʃ"6|<G :;t0C=C:C&LW"ۥNX_V;0eT\fSnRntj.=o`g6=իMU5/Sa%8m= :)9t+@trSO6ͭ\RYm}H}Vi+zSS {C%R|PלNg/G0WcC؋43v0=:y՜ VN`o.LߙzχJx]e^}a?=K_L~gij\ dqki 9P'c#6cl3)1Jb8NCs)HkVUI=jkT]vYJm{ߨ/_TFMNZYWDg;dҫT2sQ0d2azZVzs<e"(ÖL'Ĝ{pysiɮPе)QPl(`̹\rdPxzΆ\3Psyr6%:Fj*OOϣ29 ;< p| °wYe~oE z0밐NlFodL`'݇dO2O>'9ӳ-ne UX52nX͜\ 230 In95PiJsW'nDlVZIm(WLV6Vi?ImTJ򺋲Ε3v@^/Ç;3t.[&"~#Rm2Y{ 9d[L P79ܷkB5T N-ԡYVAmk)l{G3*2?KYi3>.(0|tݝ `Zg TQ؁:lfgys7Pՙ-Zv7PRp:OZq9NW9y{-NNiAZɜLXVu*U AH&0f;][,jFL3ra@%}qi}(j7ҭg>zM&}t7gBH9L+ՊV`3.9  bXX <ë>1şa8ON;eBZz n`6崱zdnTDHgkXCa{9fR#8(Ml`\ zted}3fuW8 {֔:T**UWA|=3<*6YoS,b{5gphkWUy-GP1gQe2pU 0\UAħJaU U4/3+Mˉ_xMܳ r2M,Om Bxu63PL2s 4X[ YM|۠rC AU!4yWWZ UZ7ʹn1n].pwѮձ<#V!j:-3.:`ĸ-+V4B.+Q~SQqpf10`%W3l90sݙ{f~g800P,H 7`g8^A4ǗoҬc1\9ˀ:y?Sbߡъ. }sI]<"|;5@_yRmkuzW&pK^)WnpazħR.YJ:}ɩ{} a7z•BV\\C0*}YFbd- N]lϒ-{^{;0>e^B֩t>ZR]Jhk=k=Sm:}_7֎7=Rql@ܿG s@Fvm:nLg* p NN*UɸNlD Ǔ0)TZ$'\V+_bv\$ڞ-'TqYLYnf ӛbW^{,zՕ@K`=p~%9 LC yҢ}3@ Ótk؝l42,㠨aFt,Im%yig'JZeٟ3&+\r,8D/ug%l_^kdSGmNoBIg&e{(9t).W2nH?x K {qq' VU8rJ@&%W]w0[8,]6=m dT/(&evoiYaͲ)`8ϲwkmAUODLKjOomOR&yO\haFb~ʂ<'G8~qy7PLd܊B#60K"lؕqlVbXkyXGӦ;,_Gӧ2j 1:dle؀\DSO5ʘ&!1T ҀƴZ{3DWkmYS3l~&hIjyHBZֱ6&l /^Qm3pD \mUꢫ;o-'/)vw>U&srTlϧYkʸ!`gY׾jlb-4m^͗DYT{#Lګv\qܐ^1{9U؁-Xt1eYQFxIo MyttU,W89yc6EE\sqIݤMV(y)^PS.Ĺj* !,^CVߴ:?L1Q%[ڻMCrhu)X!\Z,7fG3 nHY2؝0584)ϔ-[;H>zil ES9" DL aaqؔ NV9tLyU~9vؕO%fP}٘<2\LUUT0JnF%p<4džh#\ C. lNC4+gdY5-ʷz~NfqQJra |֍税?yyrRc*%p-g,TTl0Qvpu3YΎ?ԝaΔ=q @ՏSs\z#Ljfr;<Ëu _mك|Ѷv&z!v/wn#?i"[skⲿpYyaO2NG̮>e^I%#@WxM%K w&zZY.2}S9JW,7#\=*ÕVTw\=\˼sbtL B|*+Ȯ>/{n]a/[%Z lPVJcKߚV:E9bZ=-D:Y)ےg%j$›Yt s`ͺg}uyJ(n 3:b?U5iGK[RڶlH)<)?2/BA}YG5ol?8RT1;kdpb؃ a{2ERiԜr+ZյV~ _ h-Ϫ?&T?jɶ9ť;p=9pf0.{XcUmEJͬ.j)_Yz t0ـP{1ßcu9!ʓAN3BF`Û:<0ih[xd L[ԟiF2 ,/T;+_dMNM 㝉g.Fer2)\%A+91/k[_FP'ԑ/typC.=T6T'C*JePf葷3eYտ- JrR̫1ZO d0i,ʅF5aܪv'+;Nn](yӟWV9C,!W`s iaAM;y? nfcu4 ,C$ɅĭFit2}TȓAr 뒱ú0fy`K~pqRc||[zcF٨M"2Z_QhE}m&PgEUg-/aI[ښ`mc}z 4U;OY)ٌUX9LwI\uyaRg' 'b rOClR{_y*\@X. ؏g.y%MҦeySRh9E,6G%`uי_`ChRֱLBs;,9'<:Ə{_Tmu*CF9w2T#O\T#l{^-t `)@ J[xL}L~z)k%?Tk+ҧv9nҔ`gԽ>m9L݊OGe;+q;H!I,L:lu̽s\WZԽ26+,n}I4KZ6Q)\P{iSgz88Q,"L6NnVu=MlUi'#ˑ]lCKSUy,Cɖl8b^5 c6Yw6z6T1̫IPm}Eon bdjsTmg9GeŸ ^-\_z-iΖ|+Fg|yeXTU;갪-sh+'(UX}"&0GQ`ըq19l^AbدvpzKils&i5;,ttԷեG<^E ,&ejsTrtrgъUW6q:<:Բ=+ l. Oy ;$(2' '&pI8gS/3ekf柟MYUN8榈uwOMsW|Nk(ٞlxa-ҭ G5PC:94&04Y_60'4kl~Ю:" ơ 9[-szz/e`-9Ru X5+T[<^iW&:O?~Ib%6wQir17ϐ za0{D`̢&z՚+K18/|*]dmnbo8JxY,ek)AopCMn]Tj [6{,pW MKN+`[=gϙwN1*6AS4y)Ω 23zYNvN $AqHiYtuAާXy-Gd/44/]z>f}5 ]o 츜gye1hޅsfy^SOz_)4Q mkcdȿSOG!odؙU9p䗵uG^1C:29J|SelµX?ϳ/+#d0@L&Epo;8Yӳ PV>;E[?; -[:z vÚ<=l &q{n6^S8w7KqZM9ɚ>?φikey/I*X3mOetįsSыC5s3H͆G:e۵F.Ar=,[Xʤsa|zO^k?7o)kKzR!wIkcce f<.qSJ 8{f!O f\\m1_egTkiU[̈́fti] [NRYL'S7 sOC+M?#$v2'wV6{RÛOuYjgV9=QaДs N=-[J+SLyGghbɐvɖ3y?Х:;Gec ڡP lye=3~}/xE9=W(3/S݆ZO2ד&IϹP&z16)44V)$ֽuMC {,0u*ҺZ"1~׏?9{>1~Ewʩ>J6'Z ]5^B5lD''a)q9&Tl!Zg  ^ɔ//C:~E-PcrUg&>&VVrUL2 G/x=X?I_vC!O#uy9C`>ӫj11(埆b"܄֜6kξw߭ueŚeh .VZ'[3 ?/Y08 29&SkνQU I*),𒧉h)BzόDKf6pdXCn/ؙX?JeVB6q1a8UebY!KY.L>OC[=VҚZuZ-nYLZtPAMЀI8~ЛϏ)=i`jC*}YGWdB` 8~9#Y*fv8QjO|[] -jshI)[Whɨ[լ^Xy3/P 2i8ObuHbe= 9L ~gZ"nu3,|26wPˑmh2,m둍b' 9Bs’^2AYUO t-Z7JtSuҶfA+_Нvsw 0=g)ه53=sJ˯ ujL c,nY'p{9&qhV˖ȹs;@C60CيTʹSS8YR Ǩg<"Oʞ&P_xPm2J\yfw-{W 2! .Z]RT62fxܲ5o^RܫWOk:W6rj0xV~m<ަ?+5kwU V}(=3 L> Z.Q~Ս'C,vF`{3q: 깘319~К|r(D[czYW dU?myHqT0–O?j摿\T3ک76Nzt從e}']+*yrb7i9K[qT3> u'Uu>]ω2(}ʮ:}r]L@#JtX8=&].Ô؊U:*EQ14tigV3\TD'O^ܹ%-pT#O~2v'VXd +cB+f >r26:8}HӖ9RRq)KԮ:* [9'Vg&V؞6;[;Jk8eK]Gtfp@w iˤcrʙ 51waa\E듴p@bl74>Fϊ';Z`Y`2*D8=xA/[lt,D_Q1鷹9@K"V@G Ga`X9/ĺU^MYg0Ee?LC1ݙ7WHF6Z͝dTq:[ n/<" 1Ni*\mX^^ow e˲¼q՝7I52#-2"lC,s|=FȠg%W5 ['%iz~=&YW3IoMC8#fx|+ԥRҲrk^oZs#c4TL\K^fM7V#k{Q:b;Զ+Ϗj<9//G]$=mOȚe}1rGzHuٔ\@< e0 =Z0>+n]:ӐD$vs?ĜO,W.&gvxjG\2NZVZKf"w!^:dӿ =@h[v+֍iLM" V'hĵVL 81cLfgL`H9ry;#6Lcns'î<[L\)tWJ=A3N|nnWIuS~>8;|.!}~+QMMKb3l#"O^sFmR>*jxJ)EE,wW G/v1Z'0Wcu?3^]5g+xͨ[ E<@:ue|M-Jx(Ze(r 8SüC[}+~xRxsotfg~iA*`^`TV=W(n-[KVG3j 6FgЁI.HgL>D9fkX` K:K XOn&XհvjViJWVB؜o_@ѥ:)@[r P؜o^1}/צ-ܮ^8u*?Bz%\cfm~Ug L29F rD0 ࢻs4LA\ʷyCnm+,s э׶Z˩+<ƾ]NBeR~"qg-Ƥ?.wG,s2s!)Pq]_f6xjcʯ&B?l=Î ayW0[4xM}@2ѷ}m{x+,N]?%o3&8kB_id˹MMjږ ١BΰoONЬgzrty]{lY+eʻÕ+c$ݟM/ҫnG hbsV2Zt3FĢY~d|4j'˙w4pa^iZ{q>URl髥QN:ϋ|'j[׮}t zZ7kկ-l':tw= ҷ.pJxޥ4ö!| @000ˀތz }L*[/3Gp*J5,q'=1+l2 :6_K.+յ瑟_PV)P# T5k$5a> f' )<580ѧܜoUӡ} 4rxu/ErijdN~W:Z/Թ_Ԝֽ~f}V^N~kYE38WU>^$Gѷ$ѫZؖ79m:g(J'ZBkjU.P#U̠[4>:KF(FxW+c4vj4VJsd>} '7O _;-[JhjrU{jѫQ a\|Ґe:à[#Pd}HuL5 3v/bLww@<k!/t0>0LSύ۴iWʱ*ߣ>eN>D&<1<ḧBiv?ֿzu~? y?:_ PYP%bv)C2™IE&}`[e\U ^p!+>{44IA_k L5-e_؟ Gٝ 3caEҬn_>etNqϚ `9%\.*ڎ9+E{χFlO b,qWZr[ARhWMX%08hq''C>t{Ì{kC_Ir!j[kN.3OC^6^M?DIíJkγ/[dﹴ ~Lꜯ0ITfXjtYW,zU02L7pt(cw-^zyNx` ,>Ӿ2ŭӴi{ m#;c*^f@W_LNܾnyo#hZ|ϝhguޡ?0ÝZr7H fՖP60btg" # ×frt=!SU*z jǗK5j6ƪ GN:C8RrNI9&'+0X *N(%Xj-p PAס[O\+NIxzm ,eYo ņ>Kx(2ݏ ߖW>agߵagܲ6nQҸe|+xobtg#zڹ O?O&辑{3Sy)?iqO'/߬8NS*:崶=fWKqfW_P2MoKrIiNz~#JRQBWq-D1?u@kf.qҪ-g`YjLF惃U݊v /nwVs_8 PYYŵmL@@LK.X)k$O `fA7͕ e:!<8[+¨1 !ǃZw8Ӊ11$f&&&!XR14rtZYxp'Xp_ NWZ8/^+K4χdGf+NeviSR q [}W]j_r[] _Jܪ8ōiaR88WIr3t3#?al0M-olɎKkin#/MN3GP΢Sn2/[ V Ojף+is~ӪK[ў>3XԴ:ٚgF*LD\gJʸ1˂+~k9*H]D9klpl_$N3ͮP V-{?;Ls Vܡ,"3Ofxb<6B|]{? 檕4Y%^%1119f',VRVk=2Kĵ(Rx/:tq+k?vGK8 hٜg"5xڟ4 MB]|9_%zur;BvEE? O9BֽeN5C~&rYN?Hj[OS*1L)z..tjsfk|m58һ?}-\WZ\f̫lqUi{Z[}[jKZ|rG[E9fnwg6_CVӆ.NKY*9a|yjn9O7< __[4sӗ;%*R`fQ0OZp=MXlj'5Y~쾟,k+ ՘?Ō-P9@Wsd}"QZLVZ L'=ڲ\s S?VG3զwY 4nyW/\STdk ,DǚLJ.Vp y3?3C|'ºn쨴m+n<4}'[?|5\c8_}'RӰ.z8-:hpZt֕*vĥ_Fx|#\gOs3]E]IVn]6zfgyK_?i}SVܵpn}G/jh\*ijÉxZޚ]gߤ|Uyb>x5?bRwm7Nōu[;GFɑChm\f%0D5/KhkkX(wXxWO}c}=sumѧx}4f9[8K,[tM~+yfzWŴ9iձ VZ"9VRu~_4/i*UiM%W9C׵z8N8V76NjXӹrO|+{UM>/OYҠXL8l8z+׫JxMKMKSm:ݭCŋ :\_6*NNi&r!8%LFW.O ʄ g5մt.ҥ\[U$w, tw*nJrU*(K\n?_% M+S2Cs>#~`Ⱦ?i+3=+PE_R] 9#=SQ yQ|<>W䇕/=7|My2=g|[pS'xTԨT*>~|Ӄ5ۖ 7s<;|+O؜_¾"j>ǣ{?hcR4ծ,y |<:sEɍ'jҞ &ݙvfx3&զW+7ar,fYMɅ_"P&x#xwem>?iMwG6jf:ͱ55c!eW/MFV|1:`0 ޫ ]L:A,ReJYK rOiֽKf -l'33krnҽGx;)Pk:ծ,W_CVpN#Fp]zfVYPzМ\$G|h)CTw2V)]m1nMJ\Z!ەK+6+ˍNS,+\anZVjRCIŖ׽6kf\"U06j؎L2E ޶ :UN%u/Iu?.Z rfs#Ȝ?]jb1z{ [Z1ǃ҂.&ːRx R^g$k11刄ǖ y P/qOJ;j>5}A]AqxN ۣu7JF:Z'ɽ45ذkF)ISXZکLGWך>ke-t*j7֭}gM0~J\]%eDoV^7G>#Dy!1C؞=j7kX5bw{N׳̶[&-˙l[9RbX h5*j~N3Ewf ke)Vܧ/|gR1BXs@ZMҵ'hx~VjUc.SK%CmzBVq磺ٚXĜra0JRڗ-{S,'nj5!C!?]MVmk{YτpwBef|kMKҋ98mFٲ\UV.: 3ysJUSLUy61/GumjbquoND^8mmN'FRج5HjO>vg͟?\*ޭS*O⋉W nWR0k[]O)\F7Q k|+]2 SJϠK7nU{&+bmfJʏVن6~2k?R];RJ'~ā)AIH LB'p_–u+Lg g pFM'r i1|cJ߂e ,4ּ8U_YjFF$qS*~3MGݟ>u-Ծ*?NYУOiO[I8'_xkzeR|*gNM=Ĝ.2 } KVjN 7>n*-l,,fšx;}SP?]nVonۮ U69L~^mj6lv4<+5+[}ISgr ⵎ/Wjۢ=7GL ptӦVg#^MߪzК|9[Zj_w""#'GH-^B৮gouT'G8= \#|^hxpvj*ҁJlm[gfgN7ŴK^kRmB̶EQLIJ؞8N1JOt^l! Zٵw%FBژ]ПZO5/Sƴ8#jG |cK2ߖStѦߥN#*VޚhY'Tղi2t ol:[ Sk,O#i]kƬ5S־̽ts~>:[Î U 6NNmj;8=\[ɀ!m`",4 qUϩ4Y9!S 3|(@Ǽiz/jwzβ%}]'O_|(ٚN:zf3O*v-J:zh6EV>+B+S \Kqծn[3EСz+xfwy5-,Ɵ1\_2g4ƮIS>&VU10܎6$t,gna'#CQ%eB%ѵWFt.{5-3OVvoZ'_c\Q+[ ?Hѽ&塭qkMήkK{yK'_hTHt/WORm߄mbM a=JPB.+*f,0с:g kU&:`SNW<[&r5=WԵm&ejL^~1UeRqA~e؛T0T0G)z׋ѽ-.e 響xS)a)?\پe-2FWφХ0^Cά VvX!ˌb9폼湔m}Leu;s36ϟn&,r`?[<;unP䪞YMK+D! ԲN'LT+χzxV&hYI8pb\}gxݞ!K| Cܚ&Rǐ@#jl'8TJ[iVAIW09EnWVfp8ʸ8o˰9./g= cit.}vO 5Խ}¿qVm8jۢ5x^+QV܊v![2DNjsxTWs̰'/FRp/am@IRTBTfV|zKieO9ٜ17 br`g$0W+G]0'úM|'He M MHG ~+1;Kl/8:i:FPL+bx:ԥzAm|o~j fPvq?;tG-plG4Pj9*j#MMτ4 ^7xV5\O_LJa]z6RPXiCE U?13c.:B&', XBWT jvYeDpbUYZfR\NLBYkܭLڡpq!{Tѡ4.)]_5ڿ8 ?ҩ Ҵ3W؀LLNqe^(;n&;FRVVLU8W=~w[M4O<~\ݶ-+w'*$]+Śz4he؞g4jC4ғ3>X)CnѬ{eeKP `:L3Sp1*gmlg݇7{,™`3yc8-()왟/\9"I lCSqmDߔy>~7Z>Ք<7'Pg3^sJm# 44#)؁(ac*US{bgufU<̜5qjkTZrh|1x;ºںU>SiM9IZX{NW9D12dX̻8)h35Kzv%,A Bo"m1111+#RiYɝL4L$4-cNԷL N_ؔ.n/P9p]2bo{{ʊeIS꒔\Ǿ` M6Q^F ABkMU'qb/_g_KZ5>:w55)ڲNPeOG,9:yLg*f9s9yV``c QFVjWUg\Vch \WRBѦXVVy +Ӣ1#NV]oI f\ _8 jZ{^( /0jŠbSG땔V|/ڰ&UYK Λ54vR1)+ЕÖTϹt 2`rʸs`q1ՏO!ceB* lf\Zǜ⯊Apz ÒM?jcF^Grӈ*jmtF& ^g5nj_nX5T{r †Lh0hN4{Be!4υ[(˯3mzS, ӚrF O!*TʨAUJ $1s*}v':U{Oڳ2Qguza4ؔ%"A剈yPӻq--ߝȫ :r!BtWXk|%'8/Z#{v{O_ k˿=m^PO4m/QBCaFT>>mgސ(Ud"e׫kR4Jb߬ Tu:t'TCbc7f t;+UR(˅x5'/.n0ԅqR9yQnM9.`{ M]5.37[WV;[~}5Zܼ8ŵ)LUf:v%.+r eaVQ`+nR1*am111&02f0`LA6݇W)1-: 3[P.Ki%%:!dΞsd|0GȆX|2bsU,֧NH(TӫK6Lfjqz<:|UW=M4aӬg)zU%C9ʦ s^1*J !uUa|BI`dX<ڍ~%\&1Az\6X:cAyNrVfZX %8^{}E+-8 ]8}9< ֳV ZaφsC%E`CJe%/ -BX'/YB9Rse ceͳbY3'=&MYTn?t&gޙ:kP}浴\귨 IKA̩pȜ2=& ʛ>_ZEz;eX|?{[ {W/v{)V'E8=[R/U'Ǹ *&x%@Ŷz ݇ qj^>B4laNy-Ӥкgg>x5M41 Vѵ ba̹`eI\B8Xe:ίh~O,"blmc&l1L`g|n1jRW]*/؅0`4pYYn BmK'vUУQ5sm ]*Қt@Y S;8炃f^ѳYZ!192Z7ONa:aͺfsEF&B{Օt+մ&`ff1%eXX`yA:o1?嘞IpytspT=ɥ4Ӕ&Wb&X!Wݞ³g*>E c|g@Ul&aY3D0eW/s.2Mj뎌\N63YOL|`l%QeW0 jdU c@auf! ɃXVu2C(r+> ]*}5O)SN0G F 4A38:i 7<[.;x4thcRA(} 񴕚r!B<:sˁWo:U%1U^[fP+*2c"C$afFd0z;!ipN/G{u&&!bb݇0[GgBärC+ WjBB`,@&yS3Ĵ/t0Ӻ'_NFWkjz|8^g&Ӏ32HJ3=UXU2 f a܆MoR,ǖ .):0 e ,B@b16 yB P& "feS /033ָgeUR;3T&zTPRT6f@A&1c"G{A 8H&7{>t'^2y ŷZ= pϓbI'(o3!(f8 rL#P90+3bXo1|0LB0a{OnX :0rMZ@1 Τû7>B9LYU%la[zQ 2\VͮP%LU]Q0"7Yߓ.X\"gxSC.MĆaNsVcaL,kCԲ3S"-6}YZٔNnb3CL;I۳؏Q5\0Uk%,Z'+Z`012fdz*,Vg̨<:H+rfa *UfY_#]|Ԇcl Y362lN+1dYPzHJ'HN r<LF؂*,3Y>3=&{.tӒ\nI`GJ@`zyu Sfa 1_.&,Cή_!ʉ|y, 1PHҺ,COAb􋎱ne噤%CL12qRw [rur*X:0.c\W# r9 Ew݉FUS*GpWy)Um+o@elR.!Ci/1!3 1q02AQ"4a#R@BP?')P:JȨVMWO%~Xjy9V-Wyc;6EiB!(+c<ǖPes9本&Z'(Le1qsJi er|;~|rV{RPuVMW<R쟩`{yB( *y,jdN^kԫ߷dfPC(WCаMY3J9X5]:yJwG!71 V@IRVhxsʰ:䜺 wJt!*r}90ð?Y ;9&?Jt!ת j~>*^qOt!ϠOLXf^FX߷dFQ(sNX/~Cc9JjhaWo7v33`XV{@NAk{ݿY4 s=$P =Gسw 窝Q ,qݕ Nc<3dmwyD肒+ =QW[/QfJ"`!՞CJ(r6',/hWG+v)T2Ϧ`_wy2Remy|226]أO0Q |>]yG-jG>TAQ zaaOuwNS ӻ'uA&VXӻcG(J.t {0Up' L^uN%ĹNMwV!;)6UBog7s":,e3`SM3퀯6Jte~fC!V {SzMXvºHY]k;G8Bvt?(DHaɊNC!YnU{(DruG M΃!*P C²OMs! 0_=<IRML y+- ]/!5(g&Rs5@,;ºoJ40:^9 4 B݇ Xeߔ!AV;+G9`=zc ԾS9HWYׄZ<#Ps2޸ޭK@g/LS꺔rTXTtF{f Bans. (PBKrc`6\Pkg.o Z4UULDZ WtҬ[] BeB&JaB:*^X셵_PJZԯJ4*+0B5 u&~i.P[2)QW[A4JaLRJt@y-劺kǰV<+O* Q!mS/\B>ˀM(Z>*{'`^& +RX@\[zoI.MtC9]W>"Xޚg4tx`*5zB/ 7A61,'cgA+QhX3L*l 2~ংCU'Jc oS(q(/!AY6K\$//ryA"Qcd=iᆅ`V4P@APc}WS4W˱f \!Rh */L>3/d|Z>p4W~<7P,lyG-sP=?#h5013 !q2Qa"4A#$@RP`?*@9vu%JMU-! PʹOYTq*V3U[sPݙV9@:'* am܎WY4u?w0Eɪ;Fc{SHwSQDN 0u-ZJ@8c%Iat 2|Ve+9Z*sAQ3CzrcԮPC t+rT0{]f5[ճĈ+06AԮPéSjMAʹz-u :v#UChB6x(dOIO;*=&P SHwSGN0s  _U(o-U4œr8T!][0FhGl Ui@ot05T4(MTfN1 -䈠j7u\ZT;CV跺eU>UQ8T2DM®@eKת]Usjv3USG-UGPu9šImuTmSmܖfOd0IBzrZܑ]uS΋c5P H o[6z\C;(!;Q=dCqr Ś,6k7S9RᘐS%Wuz%tBP&:#+FPp mţ8Te'Di?B*A=-m\( *0lÚூճO]lrBK|,᭝LǍ J hu$ZT(fǜrSY{CGpMF횬@lET3CwD5la Eȸ("㞈b񿺂9$05GřSd7KkfOJ:;jtpW$,\Aqb WAn7- (Dpk] MsH9u)NiB7MLXYE9碌1%P܁ʴ#:J|Ǣ;.)Fh澠 A(R*Շɦ7mɖMFnN+f#EOkM%\vmV ˄.& s;%\M<"W4m<#H=1g=w0,polPY"]?QL-yJsuM<&@_4B0b`z/*^<ij>)hp)٠ђײײҙ2(VH]pɲi`E uxH  LlB A@ 1c :\pSQ+Y6hYC>Y1na1c Ԧ*f)@;! Iq]Ih.XTHf>   r* / 8|Doe!?yCI,ƙNr)ʐ 'sR(vw0assets/img/forms/volunteer_application_form.png000064400000017133147600120010016103 0ustar00PNG  IHDRC?PLTE%%%jޭ\\\@@@ɒwww333ѼAAA5}⠠NNNiii𮮮&tD {{@@Ϩ}o``PP00J tRNS߯`pPIDATx0 MJz-hp&߹k_gK[^K L⚃r@b 01A` c 01A` c 01A` c 0y3gA _x!f{ux~4VpyQ0@ 0@ 0@ 0= mw´ 6LQWzCB]HF!$P.'._U{=i{8e;I[GhƤ!@eiI!DHsZvvcBTTtB+.GXҮr$%:*L@g/15O]њcEdPakYq'w,Ͼʭ/vpHA5n:r㉥lzx[.ɕHC\,ڞQ\2<ځ4WILDҸqrܤb]K.:Di{z.iY"EE/ҍh}}Hڳ P$ R;g1=*F@lvp@rW@rӾ&̥FO2ѻm9 W둧@$kkBXW|@\5YRvBlX[4t`/tGVl xx>dڳ49E_$V8u.Kr kE#quu$,n@dS$:ɮٴZʠh@@P4Ew}o@.b#w"Qe h s(fYxO{e&\I)/- Y@D1z?%iYܚ9,2Xd"o8CœIwD k,ّ r/X nرðH| z{2EB,Dx X@@)T(n w@_I*Z=J3QlR/+hV8G{| Ν`,z 'HG]Z>+Ǟ5ʲtf6Zasd "/Z7&p <40!uJ%~q!5p XS} Z64]tפ3¿"!1A13Ḳ \] vd\P !\#X :FHMce@Ѐb!f8hdc= ߲,wD^~R_DmRS@r*YRU:7'=Aq?ZoպO:L?Ha:C!HʺN :u@ 0@ 0@ ;g:ŋ\(zʖ}G;gb[Қed.mLX?[MHe4!фTFRMHe4!фT{!b cTLJυːP 7d\p<+$Zτ̚شdib"&$c X&O@y4 [qQ$٣G/1 ߲dXsYqgB(C )kP1 }hB!)Kij3ى7)?v#I\'2qO\-b!Zτ> r*#B8@Lh'! b9Bq5̅YSs`oB5!X%bȅa o";{)Dۗ8?C`uBpIy0,=q(bLor #P!0D*'1D8 vO 8Z,8y kB~1>ǯ$B&ccEԳj!w2/.L\OE~[H @@!޵M}p⊎ FN!B 1? $@< ZҊJ2eArhB*N!ιRlR!&2hB* &2hBG2#dFȌ!3Bf2#dFȌ!3Bf2#dFHˮ E?`O6#@ %Ǡ@6E:R*5:?Bw!Oƻ'0p P .޾`]ewzBeOm! vw@6#wq|'3fYČ K'?T/qEϝB>< y=|ſr[[Tp%D;|z;<8~]~!?2>R;C @"d4h3p0c 9"WoŗR0I *~ 8 Q&fL)R&X=v{oT[Z@ B MJ#ZheЖ14ZKx8mW8s vZ O4!*2,"G#: mZJN%R64NHV m+cWyUn &ƴ+,S{s3^R gOqKʸ/, _Yi-V1QcWu}U.e]T4iꬤeu)YAn>Hk˸Zj VYf/m[k'"iek{6Fkz{)^jem9~yC~?. }`}L+%-p+/PU!O &}oYFm~ N2V$R_@l"CYFA! QZjmK1Ω^ 1qY@K* ҏyZ֨W{dTUT/>H]1/n64=Vך =DR_@j)A恄?XnAKe9 bs{H'lXp+"Ua}ϣw~ehjeL8ljUGmZ ^hA)v'k4F-Gl;T q`GN7\uFm ɺ-Y G5^o'O䀘RP!5( ;& ۾ =P!cY-Qt7CnK_' *Ro#ܟB`%SCIJQvJB#("*G"="Amrq PiNs`?&^%}Y\ĿHt |d/@_V? Zbd9^P{/ O"qWsCdB&28L!d2!qCdBwF+RP~$\i{#2+ s8' :K̎D9,ii?;"d0~/B޿=HY=瀐ds@țFܗʾB<:}:TZkgZaCGV{H@i}GwD=/S1 Ϛb">g!6rTR@y[Ki-\_V2*R:3{^s^ˊl'Vg}ξթҺ^_Q`OjZ|Yrd{(L/lS-ߧsz'"N>ȧKLiVpR7h;g`b56}li?q+,k̔ O152D_\AB>L'ĞCiQ~[e%d1HvLXm"*L" PB4>ãCtZZx{u!_L͞_!d_YڛþU/K0;5')r gچ`ɟZv=srjq@3Vk@eeRE{i6 iyۑS6&`1Ac^Y;֙ ʀ L7BoA IErŚ]z'qW%&ۄ6Z2yi6Y_|(hZ^^VmvCK6RL~ ^_^N3ud"l' 鎬W$Dg=8(y;:)' ?⡲~8-\a#BC  2"d0D`!!BC  2"d0D`1ƺ+ 1} H 늊PB(+MDH/v FA_p+Ĭ= _+M=8tVES jGsζFp{;ą VS l1$2$<9@)+Dr{;dڲ q3кF4{(]!P{^GlC8JGpWH XcSTQ::BgDori'yx4Baɿy:ܠ:<0"d0D`!!BC  2"d0D`!!BC  2"d0Dȷv@bOM!$J|1A` c 01A` c 0i%^9K #s+a$W cdKGG akە6ULrIENDB`assets/img/forms/customer_complaint_form.png000064400000013400147600120010015375 0ustar00PNG  IHDRC?PLTE%%%ַ䲲@@@\\\333www񼼼AAANNNjjj @@00``PPppߟ tRNSx`PPCIDATx0 M_/ (!:赠7VK~Z}IBϫ <ƞ5Yg@N?KK 01A` c 01A` c 01A` c 01A`nhIR*-Rtkangzg{ۙ>41# `:L'r0@t9N  `Ot$3x_RƮi[-#}Hg3}`{&ZFeF4c:moYzjf=2WK_^uHMdڨaIy?ߑvWh/L lԅm yh1 Vv ɟBĎBgL$fBl_BD:^k]O[R ud?2k$eu JO-iF.?ga]^<0,TҎb1l| bs8"j 2o#{"/l0Zb'qdC#ķ\VXbT@j6@oAGh(Sмu}Q̺h9c;h(64ڳR0] u5S\ 2`@gs /ئsRd7M՚kFʰ)̓/wbS핁j1`Z :^*$b>T@ .{[@g ṬVN̹F|pA}t1:7Jg5Ͱ[PZ묕lhX y%Snj,iT JP{#;4opCPmp' B@t hVz݊˭"mC1,s ֋. 0s1v\/܉ RӱDFc(dYEդRvŜӁx'lOVoW;@F _U(@DI| !@Z{n8#\!<, /1Q u]+bz| >H(C .#~Y/XeY(|db<΄_ T0+ b>Iԑ:P=e@HY(v;@ ow%y-T!ЈbѶx rm{C7Bn/BD<(˧罻B ?*d2FO(U&'NMr.|o\Oz9?b~c-J(EFT ͬ؄8 1K'zz{S&0vr`6!> LVdLJ9e=v̹x?phEu3 q)M.b'aJ% <.drlBx-éU^@3 giS8kĻ[?*IɯK- q*ʸ(1)\QOB* A TlF@hczg{ZDzT~ϡ͓auE_jkđ<.LBRK}MIYgsXo$N|hBZҺ7_ IKRjBNLfá AE]HW7ۊp! ATAI]!gh%`/B g_!U"[_KZ`PZ/Ĵvg @{ۙ8~`C]!Q\̥2-O}!QXD]!N~N.[q`Ң!@mۮx-~OaaZ H{HaxhWfkq5+[`UD4\G֊M"硂*i09S)~ݢTRS 8+`YpsQn(tkCBZg҄9o-t]L@A P -TJu_vY:=@R KX %,A` KX;U9ۜVA-@w-@7 % d " Y"H % d " Y"H t[췚}r/B==:_cnӆ0 _iXGha{]$mL{Uɲ)C(|E%3z80l:( ,( ,( ,( ,( ,( ,( ,( : bMZTkf&1}A*oU1`˨fKcEԓ>c$Ҟl̞RG<>]=~yB4L0GHy@-VtM]hwu`1=fҸiA*UC@/ݤ3Jnڡ.n]zA E|WٛNYᅩC2zH0R9bCN2c/& t5#]xAʹʾ<1vżMmaMH;@'q,1cD5tv NĮφ,[OndX*)3Ɓ6_D "ÌƝ\؎历v qm,v`>-2SM$w~0v[ e2Hms;A*^rgyBf ͡+$`׃x\zHeޏ@}|я\uiحDK;Ab@b2Mٝ :SNg,<yD*wR)@N2:(\\QӅݸfO^H$}e7cik u dkfMKwe7"OWx\k V Bx? ]Kcbeֵ{?;T,( ,(  7wY29~5<)rs2t(wG. @eDYQ@eDYQ@eDYQ@eDYQ@erۓAn63oԩo+]~Dgo~sDYQ@eDYQ@eDYQ@eDYQ@eDYQ@eDYQ@eDYQ@eDYQak>\Ҥڼ0/iă%Kb,UƸ:d(@WKuglD>c%՗ &SAr2wҷY|z 4·>?F+A(556?M Tn$OWBǀy*9{I9XxaPop_'8jc, c??-Ww 2 }ɢ&ZL+Cq"v}Rf"xu W4@ AD;/- BRpyLש&;kbOn-2_qK(;ϋ2iBD Bj(r)c^-i bʕ lTRqS]&W4ҰXB'DU~6׈犲.5~D* R<BfДqWnv+veR/c繂_@z|j&7 ZNRƭ)̀,+R.A?<|^zAv qYɢ28UPG;)m $zM=ۤKMVAcz=^~A* &9IF kH{ PS5u?2[h rTmY, |x^zA/vOIvNĶPFl>B=#sIp:eUqhw HxҮ!5$&9Fz0Pd~*wl_Q=4N в,Dڻ]VHNoOR1'\ ~?R7JǕ3ày zh׽9>F'] ;@<xj+HR Vub !,C+Ag;@"=#HdK>?e:HNc[Ur@OvǶ/h9 uXƬBrfA>i9KB'\PS xic=HJ(ByyRVffArJvMR<42iMdDX4xd 2Z[@`d"Կ@ʞdpP7]?WhCIC_S8~\f ?KZ%DAét(>׆5%ͯêRT~= dm am kYX@a `HiՓp8Na]AbV8JzLA΅[.n] "?$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAbƃ\ ACm\:UAb$FAb$FAb$nD1 ,l #!Q>Cb 01A` c 01A`J -r@Fέђ%^Y=؎|ƴɯgz&"8IENDB`assets/img/forms/university_enrollment_form.png000064400000021240147600120010016147 0ustar00PNG  IHDRC?PLTEuuy%%%@@@\\\·333̺ᠠ̅NNN\iiiꆆȮ}}橩 ~~~~@@00``PPb)&v tRNS`pP%;!\IDATx0 Z؛ױVS~\}IšZXJ{d><-rXZJ(1A` c 01A` c 01A` c 01A` sk6+0~a`C 9d}WۑlWYvd|%}n,s 9q 9o^ N:'8+");zY;;p i! B\K={ Z B mͼ_xdm[Dw!-'B߅&3x"J. H30I b ^IRSYig"]Yhʌ\L@ I5I>i4D`eRV[@*f#BvM4X].R+hKtLX%P7 9^m:D7wcyLr ;#do&w`U8B"2;9 W"u1F\Z4c#ImX/([BƲ#j9PX&DS! 3DŽDKc1HU>s6ȓj:c\D2dĀj3Z/t!$FoKKʼnzKcnN SZ<5}L,ǜg"==BdgV\AA+107Շ*m 8qk%,,"΍Ksu(9e(MY,%SONGpY6"P׌Rs c@h)_wPKjY VrM/7e-GB]w4ćH +Y[O\X1Q+DFa+g֒M-h8PϹovh{B\w̺Q!n F I3vhXN,{ QYv1G:2JącB-"7㸗{b'drO*o+&DP=NThBu#dⓣ"gORN>.H#_t<#5^Xk6Bzkc}QB -w>)$E}1GHUHM!S+>/FT,1Ϩks^d5C/gh+D-D#Gf2Em$sK=$|p PFDÊӇB`ҸXx {S%p  YQv[˗!B7r4gh>?N!@&֝BAjh'؍kK O\*]V/kN-MMF9?C ?|8BHBVogs$!'q 9q 9q 9q 9q 95ֶa ,:V12S c[;{;GV:>E'GOkKv! )]HaB cR؅.0v!M~ W#L ~I3m|MHI+n VQzZ!4 3t=M9pFZA&ݯ`P\ џ'YxU JdgᚴV(0I[!qBNBlҡ CC1"u zMq2*{4r0Bp< Ask,Z4!sbR6A6ƫx3!YP)Pbbܣ 1nZ<8~,E :!vXr#GYq!Opоl0iG:,DNCh&bLj84?x7=9`|kirRQ ҒșDd$GI'Vq#KՒȲLӗ劉oP"[2ZEBY-_vH:ӡJBRh`:<85! AI0:`˴MpDh2"IB<0{}phǖ鰑5f: Ա#$'P+B۴>`Rah;AHqNH׉;e!5&$Ih$!NFe!fr8l`B} 5ݩWd׎ma N 㨰  x+,rAnhPdhjY!A` c 01A` c 01reРr Q$G׾^IGd֟c 01A` ca[OcG)$dFȌ!3Bf2#dFȌ!3Bf2#dFȌ;a W7b@2c\]Ow[!؁-{gF~䐃n )Ol9:7qJm!3.BBf#B86S,$dF6Α%GgSȇ??c+u?*8"D;{>:};}ٺj/DmFBF]>Q;dCLXr̤E|>N/@__KFX8!"CR9#mdMH -kN ) LTZG2:j?f3d/%{ fLB$KΊ*W)#l;_H'.BhdHTPg4!:;?Q9.Y ;d!ަD?Q79E;5oY ̺& ,$d&c@7!^!sѶ$aOLk!WsPyJ]&ȏ-q&9; Y[롱'^b3: q1&d*)ؕ{FIւQ!)T- ( & -˵( F!FߴTW4da~Wls. YW,YݟB Ϧ([<(( 1(i9ڧfz<8"%u =6Rw&ՄDd'ri D;x t'Oਯ OU򦎁Ӝc%k %Qi/zr>W4!FgBfނ&wR;|@{enD/"ёSI\:R7XdᗵuGhds`w:NMNhD shyW:j[7luHB<ړgGtHH$M֞` (cD7$q{!GDiph`H4X2┓M$lhp6Cv. 벘qC ժXJ0dﳃ*o ڛp&n]c'TB>rCS,{ 0C2[[ V L^mCj[ @NŏZ!ٶ!v@[@ERi\5hN{zsʚ/j *}{]~1$nx|F,}mfX4<Ƒ҇e?W '؇À_8O[y@{]@:3]@:3]@:3]@:3R2wL"ڿ5X  }# e+8Y?aHIć{Xv>Y13 W~P%W@@ (D@X65Hο_֋dH[!& b:9ęɡ2~+*@gWGYqj%2lPq>4pȥ X%J_ZA = @ zq143lp3v,ȶt4CfAe7zQ0r:D^'4>V?qv r}Nw̧!GJHճp'I'm*ChvGw_&E6OݲZZm˚( nFrDxٲj#Z̓ZWnHSw RyH;h dĘ:X*da]; <_-PlgI(ϵ:,TYI!4=1!A1zwkҗjep!-"ENV Nքn2 ٽJu@Nlc>u * kS_J]_FY(x 3?*@f>jcW H%hZPmDlˤL>7F92`@t $+SRG?@AVߋa#cj\9C=`,>ΐ1؞ ;dxdik  Go"+3r!\VT [sf0W0IP#&x΁E`ƹeP ģd@@d+ me{ܚesB{ȁ5 9(Hb|I &N]Ka۔vnM|b+lGB z7k uH/DAЀȨo9Dh"&INVe^ J#<vV_sa`m}`uA_ G$@^{f#7|HD! HEԘIfV;ٮIp년j!n}|+ !_/ybrOT0T0T0T0T0T0T0T0T0T0T0T0BK 3]!$ru!ʅ̨\HzY,KQ!P!LH0$lPěғj=HH4p̯9 uN(p!o/d\?B"yBJXGH4<}yR:GƊ9cy>Kو! ی_F ~* {oqi#L-ɑ(>t | p408aQ d"÷#d$֠7x .c[Jk507'vk*rטbLxPedNB8a3$2-X1KpPAӾ A`[>`<[3FH94|~$㭣GFBv,MW[B8hP)3\ pxmjU-/\y& &,J WNnBb[2P9BIcAf9D!&q C9oKBTLQb`JL7B7d gѻb~e\G\ `MH1`,dVMٖ8޳,_*/p1sGC4Qn oBR2L7#>M#M'Bpw~"1wяvC)?}ބe!A8(.h}rrH[waaaaaaaaaaaaaaaaaaaaaaaaadV܆#X4 `d0JznvKck֛F-~yH,GhR E(B6F1(Vօ-o7{vZh kDx9jhpIp~"c \TDh_CGrh0XL˚qQ5O_!لH*8RpRv̂u3xX"`I+?~9B7`+s@ btU,*!2[C<Ev5x*R\$퉣jiED7 +̈́P̂rx6hӂN<{V~!- ~Ѻ]kNquN w`%`thC &gu0wXsa=vq8R)j3!( WaHgT&Q$SFAܲjNQΣMŖ_L"p6* m"DV ܖu.s`MN qP#'V˥꜂8x+pIl*BtC PinwNC0޶+BxPt6++ (PڽNvpwINDKS!9phnf? R'Z0kBb!KASWϣ\gBx*&(nɇn*,K>Qh"DFN8꒐+٣.  ȿe n<(D B LH4=!+0 ͣ. MBAf I 靂ĢJLA 4Ï.R~B L3 Be!L5GKAtBtL0[Us!UryQ&I'!X" D%!zUHKR!tQN+@f r-B8HWԃ`)Sq-K:DH(@v?6nUH@Wpd=]:ΨAbm==s!Pv`8CAi&!<܅a;ZPU!1ׄ@D=]Q2YVFAfn[2-1N]4?W OA cp?Ql"dc!E(B6F1!WsSL.cȧ|V|Y{UȻS"vn A$qWH` iaû$FAb$FAb$FAb$FAbM-A Bp+Gq.1s$FAb$FAb$FAb$F:kEH~-b 01A` c 01A` Vi%#k gJ-V%%0}_i˧u}D%IENDB`assets/img/forms/request_for_quote.png000064400000015166147600120010014231 0ustar00PNG  IHDRC?PLTE%%%䒒\\\www@@@333AAAjNNNiiijjj沲``OOO@@ 5}}`&spp00oRDPP tRNS`pPϪ<IDATx0 ;ۅ%D4浯6k_䵔 <Ɩ5weM/~,A` c 01A` c 01A` c 01A` cflw݄a0|rHT"U8?_emtմb'_t9N  `:L'r0@t9N ӑ@S]=^ i@%~řCfQ+uBrPCt{O[&c'@Pz>Lu~̏׬hӮHtn9ѫrAbj<Udɤ콽@UQbf")Zoa%ŁiWA֪VG.^⚵8lRQ 8\_M#z!_ ѲF{ ie; }FOXQ F"<KiZ>#d,S̕a\mxPSmP'B A)1P^} ߨP Z/2J`P wL9\HfM=_7@֯tF)P[c#֐^^&lQridx51zE]!H] 5,@r3M 9VJy -iRÕ!h9Ҵ $,:!G [pk bΤ[O&\C-]Q8vzhbizH<S QU*b,wLrSC@F(C@ʒ_@d|cmYzʺJtHHjUN][SY_tqK!@\,^мd&2Yވ@ 4Ub_Y,p S d] l2*Gi$f"[ -8CĂ[:@p0+d#3dBc X N.2 %Y3{ڜݳdo{ZQ%g6_td487 >~CPoi ]ch,9TbUf=;/TFsHI& ;)k_FTҊFbm/-M?Bp3 :倮vxi)ciNZW _Ԯ=kDB5APfB&˿n [rj-՜G*VUputwBNo VMLCJ6 wNW#DK{}:udz )V2߭POiju^,Ӫc@!t#K'V¸pǮ#{&.z:}mɜ XމsGJ+ooeQjM `z zRS'r0@O40X?A#l Qb$FAb$FAb U9FAb$FAb$FAb$FAb$FAb$FAb$FAbw>+n@~d H5r[!tK=-}GzXVmp{PT;3I^wƇwƇwu!B&Z@kȀ+[7@J3XRB:*v!#$O mr&|;BrE 5X / _r]2R gTP%$#,Zi{ 1Vq x>6n)" H /HO40V(my",72v]+k9Uޑwip" ʥ M[GGps7}Mo>_G#dlIYp"D8!z'8I(=浩,F/Q^H"zp+Rٟ,MBĠqAS8xpo*Dx NM2e5B!ZvM25dvUIHB8jRoY,)0!DG0*d!ɹt(Gtb?=,y+nH`ԯ!`xGp-Bwgy_Bg4(כ##nBQOZ\oSTQHCgZܞZ!Lh2  ihx.%f,({N\ \׆t+ir^xq. A$Mr7E!ʡ*3Ρ(zӖWґĽ%e! I9tP*)׻9'Z%ȥD$ˢ(~-BHe:Ƽ=ao)/HSNYfOYt5{+-E" QS/ ǸB)OOS^,mICb=TE!9=Bc/BO]q/8|n/M!SxT?أcaD.RuT@N%,A` KX %,A`}yJd?T{ /{ '{ +m t9} eZ0טih)D0l!o+gy7&gx:jGVa C  !P!A"A2ABB Ed(8}% r|a;d f_>F6Nukq,EA"X `,EA"X `,EA"X `,EA"XDk$d|URQ== FnE3uLn]dv7YyW7IE cm"^Pb/tt˗Wac@͌qJm:;jtv%KXl}Ϭ eI]깽:wJR7.ìsRAӾ>?~  mZ:'cCT4)Jo%8:^N;@RWRHW/[ ƅ%\|~^bA㻰@|YF/̄.ĕ~w$A*]:awyWU\$8DANA^BM7Mxh7VHc+٘EBWl yRBS Q<+lFd])W i6oF4Lv׍٬ qUZ9o Dj7Mb"4ƭ{.A$-ë{-r "ISQi⟳ٿY׋Wqy eDA"X `,E #^Z^#0t==N9a3vsyzCA"X `,EA"X `,EAz˯pr|f0dm@3sRgisr"X `,EA"X `,EA"X `,EA"X `,EA"XuRp"IkıD+)ĚD؈=B dAr{ZIqzYOo02 7?Hb,ɍۤ.J:UUkshFj@r,³$bҕy!@3lHf\&ʍ%@3dV+ئ=A7r *1eI 2;ˏ ]ٻնa0WdXáF3Qhꥨ^es` ,<*Ai9hպQF!m K >!!!!+O܌`\ſ<ȁ-9>]`QH- ƲyD AD AD AD AD AD AD AD A|ANh8Ȟi@ LS[:Q8JgC1C1C1C1C1C1C1C1C1C1C1C1C1C1C1-4mXbhd71?FVb?{I_ug_6Vhմmܹ#R:OYͳǧia(_cF VW޿5eq*c2*}?qj,mR?C*.x:7{g8 C/vm^`b6ѵ%P@%kY'[ޢp z1YaھYQ'\gjC$mlBıӒsá!ң S2|XS/mɚPREԍ08h~ i?u\x3Ȗ`8ǥXà(%վBCtR+LKH9z47"9gaѦ?~TD-= DEdcv0@ueW햗MĿEh}Mpwqkg:U8QՍlaׂ*Mg MH|G h to{͢E{b$(%|2/w4$,!imElA#LvӽvH9BMm 8LZ;d>VfaCU@=R t"\C(WXW@-[i <˜n{dK["W zcg>:EG )npG `>  #^ۺZ ˴Ԯm{ޏIJFu@RҌHٝ}r@dRǭfzS5o@fg@N#y I2<4g#6Rչd)"/b6}LM\\2J|P4'5O]ENۤ9]E5KcdUQ}cx;}L_ 7r3}L_ 7_`A L B,ur:R^d/0+! dQ2 BFA(! dQ2 B&2wud;A|WIΏͲW1!G;Tey4)AK\٤m|0qXa." 9a`B=\:Vn|zaͮ6a @`T!"|jd/mZ_eG6J#9>䑅-d!RmL!/w ;BJd"6ʈF,"t(d;cf0LDzq*D -CRHCcj* Cd8F=}x ^zH3XUT !"ꭏDȒHDj(eD UӉ*2c@efd0dQ*!VBo0ܐdT(8&;q\b>{v0rcA'x!عٯ0bd$Dk Z pR*% +SJxu 807"PRDz唓2`BY ?CkSRjq,ꆀ','\L IwVnd`s!]q}Ոu@"DPBE ΅L\ ~@rQCJmH+:+|y.Im*% +*!9cHu!lXe%t^ FJ!Rj^5p<☹.˼YFN>F׈\RZ!訪kp\#DBc !E=fWQۜdžCLB b-lN3TBhͫQBJd-fyFv̧,+fbv3^Z/%=͙9Bj_x5,dN{cؿ|#=:o=!3Bf2#dFȌ!3Bf2#dFȌ!3BjNn($.B|k 01A` c 01A` Vi%3[ XJ-^虮ĚZB/ӇM~v$ DrIENDB`assets/img/forms/conference_proposal.png000064400000014171147600120010014477 0ustar00PNG  IHDRC?PLTE%%%᷷\\\jwww@@@333AAAҼNNNjjj 5}[[}`K&s00@@򽽽opp2 tRNS`pPO&IDATx0 ;ۅ%D4浯6k_pu <Ɩ5weM/~,A` c 01A` c 01A` c 01A` cѮ D#7܀$lb^ߪ Yj7M=i/g>MdLr2]@N t9.3[zĮ:F^ے<(`EZ}2qc5ZuZ7K!yzHck|ȸY@;D&7? x$n.Z1%[@ <੪3\jmuX~Ѹ${j4v$)$;xλciHCGj[kz@ѿ2,BxkCw^;4r}ixPi2]u4kry8̎vnX6ЎLBS Tqڢ)b1)@/s5ޅyagj2]Aֹ͛9-GyH덀PLB l{d"8fpG9^%-IXFg4*)\h Hs Iush7T[ D2= حXZ.-72hөFZBǪN;EA5Fߺná:ݸb~biɻv $)IȦ@#V@XV5ň ɤ)+@RC $2'/@z^Xp18^|Hcz rId\|z.+"Ax>8K2 rl 05 _F~h^ІE1`_^v2"K٤Hl(Dx{ ^ÙH2^fФVeip 4㥏@\'jl YM< WF6V:6@x63 r<$ة84@ ,jn g dzC ĺƦ+eq͍䭉~dCg.~Zo3D\e)|;NrkW(Q7R3ZVBޖBc.x҅RΛ@/=\u]CL V?O,aLY6&\- M)p!G|[I !!=n~  [qQR-G@`ĩ'1>+fymo۸ @T0 RGc;@d^8$PdxȆ+#cѝ>:+HgHS@ؘAƳ5 j  Վ6ZPp4Bd)wϐ-WAt`;4= .Nt7˺*f2P >\O<TϝB~? y>Zn u Y0 oH#p//_kwT w\{2Bb(=B*̇/}4 y4sI*nLH_Nv9QvȩN0m `R.0vజYyd "l`zzkE|;W˶+d,kVb\>Rub{aHiFYXnY&I1c1O,4cr|qS!F4J(o,]U=XB"u0`SR,+e}/I5|Ҭyy2z[@ ң^<3v60>ElB-d\ (+AC!DH[ cK = ?~b5WBںwwBtEBCBv]a?C8! ZB$SDR)3+i`B 3̾C"o q=k(O.PbK&z8: vZ/#z8`} vgk A@CSO؈v~`&%4DIz3)dOGFȠ[B BrM+i;ŁIEQ! 3KI37oBhi |c/HJVLZئ@qRƺ~7LJxӪAac1Aac1Aac1Aac1Aac1Aac1AacĘ}- !phO>\ݏK-lD,N.x  r|wėDէ5ZH=u%7n0G]G$f ǷAD(7a*76 &g^\/7AaYNz>xllپe5rkK ^YƝ;I[ܬA$qw`tZJ5.ރ&qҡ.7Ȩ iPH rҺAM Z$ Zq5ҁD"̶:Ջqs_I x12߃&A#6X /}|?I9$m*B$u"[(l^Cts<.s=hn\ϱjzf1Aac1Aac1f WF?ysy5ܼz5=9{ /耮 ]~ˣAac1Aac1Aac1Aac1Ay?2= :AN6zs7Yf%JzoNfgAac1Aac1Aac1Aac1Aac1Aac1Aac1 g8 5F wGAj'rl&m i;wW nya/hoa"M dtO#kIuH\:zQAdVAqN~/Htar|ax9䵆!Įf}N5 k$- mݶ3/H#@OI}&x{Z.opR?+\/l ԉqfGB>'li{2ޖ䞵OBȒO0n]N>U"ID^-q˝]~D'}:,u]?5ߵ 8($Sj*h * ҡ }._9Bͫ^Jf{-IǶ'֐Ƙe :9wD_8=-$A:)8l$A+=tnD )HSWQNɬ9;kd2_Nl}x% gu\S]u;+<-\#"-S₈4 ߥ2>!x$nm O9(|~OCåW8d" BO 11Ӄc&1Aac1f W xsy_G+^Mr,r:9 :+7ty$Sp#11 b  01 b  صc"aK(Y ٵp 1#H 1#HimY26z\n@Qd,>JŘ#H 1#H 1#H 1#H 1#H 1#H 1ݱj0'`Q#I` s`\y_%Ta52Fccp!a40D "Fe޽paTCA8H pg]O?x,7/U)HjzO yd/H M7'x2sd;<v.2P6WZofHA&r1X޴|"T_$$"ӹiE<<# _[Vias ^ѰL\ ›\z#9 UFJP J6> | (Z1pV4 E,2VP ZqIໟԪV֎0HXl; v5bN*g g ~tDrXs4_߮r[=:RhAo~?_Q{Dc?]O4 s xD)@pA{;ڎ"<^ 3P ALլ!_+$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1gur D1'avYD ׂ/1A` c 01A` c&2J {H60ZsKGG aΫӚO6U˖ SIENDB`assets/img/forms/online_service_order_form.png000064400000013707147600120010015677 0ustar00PNG  IHDRC?PLTE%%%\\\䒒www@@@333AAANNN˻iiijjj ddBB00[[[7}tRNS`pPVB3IDATx 0  '\(!s޼@W[pKrμđTX 恰,%ݏRB1A` c 01A` c 01A` c 01A` c᎝ ߀a@?sf&6$-tn  b\L7r1@.π٪3/WQG 2 JYSzr TlOD)^6R0MKQF1S,:hDM:,_69EZc)T[9i얝Tfc_D@^ŵ<+ڷvp2 $e;Z83j&'%h1oq#-Pl@^L0EoãAvl(c1U.u!D~-SS6+EV8f M2 H{R!M,NhIDZ(a(UXɅf| gds- ~Bl:o{RVlrWr습Nt)w|+)WKfc@xv{|;e:9KA\IgVk0幌%՞x r]lDn~Gjs<&BT6ٕ7Ի ,8HR1'ȯHsAlemExRE!֑qapHH$UluwƐ97/YdgH@6Q8 ە/Qq}2X2-&SL3ah#A܄WȰW;doF#78J-~_RA6@OH@vrh7 ~Q>W[\ >͎:FB@f9| EpBP? kl!~ݧ@C@P87viG5,dyف xwvN8O;8 W"OAq.hDuŏwqǴG rz~q/D9U!^o?9{ 'br\L7r1@.tn  bfZۆ0g}-:X60X ١tn*ց%{Z Tf Y,a0K@% f Y,a0K@% f Y,a0K@% f Y,a0K@u&WjG4ب18A:G_2^I%RHpnD<H+Doc.wwWm CJQҘŐ޼{no}2E%S-sBx)cjPRʙL 0} |}\&VbW@˜T~;th( fTICڑM" 3q,>ȄD2y_Ӻ-UƔ1E"|/OP2R&segyG DcШDNF}'yLWDsOwpm8,Y*sM| 7$ Kũ>8yxgL[UDMq'~&HَM&e)w4T@2)rΥI#I߮+ <ƸXf HYg'l>j %M#Th%_#:耠 ?0z,M a2//@Uä!˫ 2D(ߌҋuR 5iu%g(j, 5HmTH I@¸&K)ɦun&֖e:ǟ@Nx;g)ksό{u?9Y,a0K@% f Y,a&7VOI|K||;}^Y,a0K@% f Y,a0K@kD%C51#H 1| RA hkJ^rqϚf$FAb$FAb$FAb$FAb$FAb$FAb$FAbٻUa0wۤtQf3nF=(xM p6h:,z T?Y~wz;1LRÒx:a\Q NU0gÀ A>&9&t{$%Z?vyt23Uh#7*pl$XgɐUF%c-a d$sDg 48{}Tk{DwQG4&y1ȅ6Z @hE2 Q_uȠuZM5KP<9%0&n_|tb{ 3 od fەp F ϲxF6;_홞 @ gvTX6Hò? ʃrþ>LhǼ ܧ,aN6KA>Ljj`kq: $ Fl1h,>#A@,I뱁x j]5A@UR.pA7LkwHZD>uA gW;!HiL€5ϰ@ 8i/]ςwaH_pA:H1!+ȵn G M#N!c2;)g_Gf(@( 0̳hv}J29h3vv I$,Lr25BR i:A[簾I rT{.akqgaH8gs? YAw54:i1caw#H 1#H 1 s3-S"%HAb$FAb>v@Ԧ`¯/H 1#H 1#H 1#H^u 2m@=(W5}9kFAb$FAb$FAb$FAb$FAb$ev0Gc[s1*$ԂX9D) W&۩*Ň84!1!qiCHcB ٩Yc:sLm,?u8/@`QxVE0t x{K 1!?^zaoB"gBn=ywsEr^GO[ӄ@a&O$쯅ht&\g85KtDSBL<`"d\ pAo0t["a+TϥFb| JccrTGPY`4;%Joݠ`Ju9bۯWq^HAO>E+`LI2.3WA֖2&̙$8H#b1C^$L+P8bU0q~~Y8-㡱{" $|xs{sY! t2DZe-к)I+\f2)8|Px^+"A, PB=4p꣓uTܻiwoo掮Y!NTB:$lB|"&#"!#a*˛ @LT2C\&s Dkz˞ea)?"7V!s[;a0)8"ud˓H 'Dab+] \- K?.!ȧ>Fg%3E͇n8GedHC;B-2|'0pEl)6c[Vtkuv y .f#0Y(t@O\2 P(M %BAWABYc~ q}>2Z ! Vӆ[]?ކw,[MMq1!qiCHcB84!1!qiB^yqxE34S?ػcخߛ3BxEiaӓnm|NyN 1#H 1#H 1#H 1#H 1 2 3ŶPPXgc$FAb$FAb$FAbg8n@oWɂTHp_*"-jWx@$Yxҙ3#HgFΌ A:3tfҙ3#HgFΌ A:3t 1;;e$ao4l9ȦR&\u7]BAm׃ NM a#̦u*UW&;% "3Pp4m\+ _ ǔCr .Ab{Dmw3H y $_Óp"1>ALj%%i?v(n(  ʈ M>7v S]+AQF&%r|bZ$be RD~%wgBWjD#J 2C(M;_w'dT3yq#}(]r~&!IOA۟)C+$$r\vF"`&)7AlSL2q\`p23'=_>Pufҙ3#HgF`N(v$o! 0ZgWAb$F s3^;5>윯 ŇAb$FAb$FAb$FAb$FAbydIf@PPk쳦$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FOur D1'a_.(Z1A` c 01A` c@ZF d\YFK0z.{ (!yu`Z&jc^s;L3,_IENDB`assets/img/forms/event_registration_form.png000064400000012651147600120010015410 0ustar00PNG  IHDRC?PLTE%%%򟟤ح人www@@@\\\333ҳ ߘiiiNNN@@``00oogQ^ tRNS`pP%;}IDATx0 Z؛ױVS~\}IšZXJ{d><-rXZJ(1A` c 01A` c 01A` c 01A` sg6;0~K9!q_nccm*FPMn1|h} I퇵#!6(? Tۙ(~fx )(HH oaE0P AgZ k΀2B|NuP|6kƖb9|U gOāoa S\\B  ƶ5ڵfABfI9Fkj\ rb$ic%kU֎c(c,Y>/7'<(ːuWJ*A0+PRLOz=e9F6Bf7Q=!^'yԲ!uɁE^M !dBrMgg!|_H?ֽ)>`FS]o&턐( \N` )BiY,e 9'DR5Bh͙S Y8'jaane!$oOH_aL!|,d{ՂlV2 фXY_&hnA*UQZ!17!:EZos} aZ~V%C<[!i &\=LQBS෧,7lx*d!g:_+P|xN|ʫ뾼"U30*3/tM=#|P!^OywS&!A w:ғA 8"0cSHBڏQ~B47~9l}ڂC!Bߛ~bI IQ:ׄP ooLgEOӇޘ>i:b N;_!+\\B:θt%3.!q KHg\B:Ǟ CqccqJ"ڦ[W}wG4҄$O:++|XXXXXXXXX@Y\1kJm~ b)fpc!9iA@h@-AYAj_5Ms8!s89o2x'oХ]/ǣƃddfh$Rz_dߪnӚM4\ +NMӼ~tHC@PPb|&VrV?>^ISA-{xm{S(g W ̸$CɨȺ\ }k"M1tNC pdSa Ȋ:$Ah[_ўi(:F4 H-:2?YPUi*@' X\MA,fHAtE73a.0,C}i[z.$$$$$$$$n<=/I3\>NY,4c4G[iRI3, ٵ"a  y Ty @o$FAb$FAb$FAb$FAb&ܖ fs)t+Y8=Jͼ/g$FAb$FAb$FAb$4 DQ~;pgl* b7DQdJhT,S.I'!!! BJ»dX܃7W1طhKi|$0O8dLևhyIMuKy¬jƻ.oCK!w8x.;yA%y8,{io6qW29Ek{&u6=0O8k´ж n 2yj! crNAZphA=A~!H0_VY ѦthǴ%HQ BkR$ 9\m ? *}C1C1C1C1C1,}~O5,}aS RC1C1C1C1C1C1C1C1C1,}aS KZXҧ>!!!!!!!yeV܆0`4:1ئMssKTf"E&]lb{,̗B0 ø3 x8Bw\s&YT0d;WI戎_!\el%3#tsFgGTJ䅤˛wxbc#BrAIGB :wݛ㻷ϸ7"xc66Ԡ-!Y)P?+"d]螌/n.qj\&3eXD1@1B 1SNۉ2v1:1& Z63_zlKH+y0dnݵBK9]aiK ڙDE瘴-9(}/NT*$P.sR};Q[|z{`FMpH 1clԄ̅VOrqZlv- hS@x <o !X0ީbZp(^th`v!VoEH/-8>)'M.r?j ڕx#_B hXJ*џ5mBhirl!'hp{SZJv9S^њgh BЄD J(!Aȝ[:_ >6!fn$芥sЅ~RI|Tݚp}޼Hw!ba!3_\K`Xjt!Tj@[FQǴ2@]!hh暩JŤL㮐@ v!ɞ0`+]҂γ?f7'~C|bS`&RB[ !w>z Y4TvހlSf]!}&-5XKNB yOv!퓞mSYI_9e#D=HBLPY6!'eqeaXx.!|yW&gBlnBDEG!:Bf"9̃&"\QЅ _vSB*}Wht!LD4!(T6hRބGB%?;w_yu&˳ 1@$75AzcPҒoo'3ǣA&$FAb$FAbyes:K5>k,}x#H 1lAX@b$FAb$FAb$FAb$333 1#H 1#H 1#H 1#H 1cv( t=G޸eYEC!PRNVtE1!g\PALZi 4OdO&.}N b{BL\$.dnoƙ]zJڏsBګIcZUB.0ջpH\tU*,d83>ӰF=Lp]>7?o=~Z5}S9joĔbvUwy 1̥Oao#&+!EK1%>-y$2 4»DfJ "HH゜/R^#mQs~${ݮU\Z˰[ ۞AO23gÏxA90 ` a0 A0 ` p_-ܯ[h[`0 ` a0 A0 ` a0 A0n.nb.nB ` a0 A0 ` a0 A0 `̨ I/T^(qNU3yP4&HZUY"vo\ A6bRw?=Č RNnjI[;+uq A0 ` a0 A0 ` a0 Our D1'a_/B|k 01A` c 01A` cH(\K =RhIFϴ <šW}#>l63n0 WgIENDB`assets/img/forms/database_management_help_request_from.png000064400000012160147600120010020210 0ustar00PNG  IHDRC?PLTE @@@ן```𷷷Ÿppp000뻻 ˺PPP\\\@@00ppȺ tRNS`pPϪ<+IDATx0 ;ۅ%D4浯6k_䵔 <Ɩ5weM/~,A` c 01A` c 01A` c 01A` cf[OcG)4#dFȌ!3Bf2#dFȌ!3Bf2#dFȌثa( WIJR+iBlK cEDqfMZP]+Bi?/f 1H` f 1H` f 1H`.3DqQOZE@ .RGBg47RG$q yb1.zYƜ)Z#;G5]zܠ =;ey|}>0A @TN2KQVEFYTC@%Q\ 7.^6W wd^(eh8{c[r?=rwp6n\? !LNJ[tH@ :4EQ$V&i% 63t^7d`A,Hq  ^D=QUj&N [46͙ʸq̃\RANI~#>d *]^'p @D$#fԵڭ^ȟ; `h8?YKd?, k;ڋk< j@+8I JbQX.Eg3'F fɚhX@ln f:7z?!¹71) ,WaȜgd.AtR1sTkJgq| ;K6țvn. V3c/Z w#Ue u# \u/u mⲂ EUUegKx8@(UGɯ$ 4u bf& 2SU@*(n, R$ⅻAg"DSDdd[,VTi2Xc>1dtwS §lDZ%z\ 9 sֳuzsYݗ.dŊ߸傱*k $rA,^%.Qzѧy Pvȿb7يfpc;ue1uF ͋aDj2߫vIo}WDu", ", ", z(d6m6~? N}ﳁ Á}/@. u H]@@R@%o~~e6wp6ZW3Og/l-> ", ", ", ", ", ", ª ׎TcMr_ kcMJ@+tE ֍VTm@K3" )EΔ]dQC~ ͭ|^۟*K;[7 : ˺.\: 2sWzoSZ~a[u@l],f gU7y玜!A.ːpts_=uHK#+=~WٮYCsRZd mxIJq!} Q,$k&~ m׀D4,HuASn3w ȉz}>bC4΍/    $jݭAS(bASxN緎Z/hu.XXXXXXXXX*D~?V U<Ƃh/Vj u           a[8ȟ6@-z V.l>ИQ P3ª UA V)eeR=k6|0e,5z b9% |>a5[lq}beZ.A^ 1WAx !?ƃگu -EiRiF{V!&ӤNcq84d )tS,6 7Om/4~{zⓨׁth %>v[%8>X= pd)e>Whhn&=or: *-)iG98 '@M M ; }=A4bOLV:U T9DKS !bIü4pЍ"{k yQ37GDS 1Ҭ CD}dhc;10 حb.N'g2a*(?O=!rd,<߲; t8*`y#=ijL( 2w'%#ˀX?ehR#_s #b-/1U[L, l8?5(@vd<xX0[ *p s3C2ԕ 126:TuVwXJ-uUAUX*HaUª UA V) RX*Ha}r\?&"p A "8{ eUt) RXص(v FH Bg$FAb$FAb$FAb$FAb&ܖ ׏Ar hvnEzWsw%_' #H 1#H 1#H 1#H 1j0'8Z |+m t(tڙL2dd _8* N8§d"E WlOt9dvXu);D?х > H^vv:db9bi, / A.d)u:서=>kq.ZȹS%Y@8Fg ^ur$CES?,Q 'jO[}A qڟ @F]8y 59޲. c3Ae??(BSr qԳ-sA<{9׉@" $KK&a]Dh\8 20L-u džcVQ9C+ǥ޺dbV9 /+%G@Jdaj(~(Nϛw@GRNrLC[5@N\x!saC5^(:=ꅳ9 GC.)|4:XK4444444444 oobw6@+]@weki 9mD#嘪 Aկ8AX<c 01A` c 01A` c'\ V>ҝ8-JLIGsJfwlK1A` c 01 Catd%6HrKbߤ]H ƦckC?Je9򟨨 HDDDDDDDDDDDDDDDD }; Enˠ=9y_SpHfAi+k6 ܎Lqic +A>!j|_ "R:<`D: XF ey?@#Uh@]Zj++N(; 0BK< 찁 O@ѽsz?:;12Ō682݉t`.ѴlÞ66[X rИA%qu~×>6>evF߹[T[X 1ҥbdħXp5P LAj2. =fAfd)[x qy rw,X/ZN"k21T&ւpNXg3L5v qP2 $g^{%qTda)ܯkF\kAPۭXkAsq1yEҿ{crPFR?drAp=op}t!oź+a"/Ty҈kAy 3!q2ֈ !*,*c#1ȪRS ;(?q s)l$g;q|"Ȯj3V>_'_c9fMb0 OPwnR8p)m`NH0  0  0 $&tM Y`:AHnjA3$5Ȗ=}a~Wǟ9̮jEٓ]ނ1\AXFA`FA`FA`FA`FA`FA`FA`FA`\O(OsnCm^k (|PE ʭbyRGIg؍,?V;RQy['7@Cvio!Q>a c 01A` c 0I+șs,%d/aLW bc-!\yu`&jc;q&s IENDB`assets/img/forms/software_survey_form.png000064400000025272147600120010014747 0ustar00PNG  IHDRC?PLTE%%%@@@\\\jwwwɷ333ࠠǻiiiׅNNNޟ5}@}`&sԀ p`oRDP0ِؐoÌ` tRNS߈`pPϥrG)\IDATx0 ~ar^ mCݭ򗤄=`v˜o/eX,9P c 01A` c 01A` c 01A` caV݆(#!dkfNҖ=GtiO!c!9t+$_0N]~0$0 tXFHIF/b=;ӎXs'a !ހo)8"k"g3asc ϴ%VO b_^@GBDArY1Sff" 0segd ij#g=`XN+B6̀PSB6 BnC0:=Ndb!ә~1:rL *.pS p6wH~B6 sm$y-)K :B$>%lRQ+ jP!Ty)fڣk@!ae eD d3 YG_EG: Id598G-29xo#i"`u}֕HIz8ebm$fm@Orgg/oYkc K"URD<:RyZ< H^ tN-KZ88XI`IG4o曂dSu'b WB.Q֜a업,KXgiCjɓv{d̵,,vL&?xo=l;v`7!˨1JyyE +!9I kK\hTk$ma"[!-YkO0g [)&\@ 6߄c ~Ȧ۟-{}xa^zd;XŶ⽿u_VH1&uLYT) {OOV cp cvjm`C)0vܖww 2c}}CBP/hUTV[ӽdF=ޅlq$9[<ZH^lk:DFn2y+w;Zɺh&هZr1FCshBgc{5S;aIdSm$C/B&pFUQYg(fQ>Lf FevDCm0v= S>b,>M]nd!Bl2ԍAJoPg1$[ʒk!`Q2 J"O̅cdjd$`οi[}~l`G[C&V!FHk F8? kt!B>S8S8S8S8S8S8_ @?`e5̐LM"7T;4, `k8t)3N!q SHgB:8tB_@<`H@F}Xoʛ/dF #I^{%#ƺ秗E1LpnFBfgSB#|o]!~\/$ $=hVjKX hl$]dTD,mu'UL_'"1L泤/.P"" H.K R AYN w'pE3~gPp4P kA!|T*50?`GXzԕ[4H!B` :8ʊ cg0>_.37iө@" C,9n_!qF\XؓQ(-V8< i/fgD6[w/d̶ 3d(B LEi O+d @݃.!m[n9!aVhgmdBBK̍E >!,{&ծ Abqx%_ -M&?$SYP(JTi0QNI.<hp[QH[n,Ajcbt5鬲 LB"8b͌ HBѶ,k#y٣8c$ , dZkh̙]=S!/\?%/X}nNKچvDzΉ'D\4\gb=ZϮo3ZNYr Bvio #NVi#k9 q?X.Pǐ|uɭ(eGY"D BdHzE_Qas;̇LRuVEҕ+oBBFz 7q:B ~! iC?xU5G7@WNHT^a]ǽr쯍#fƚ*~!sH{] )CQLBg@רTHJ !!WϢY:B6RP~3Zgq&bCh YxO'%BQH,oIW2EycJ~!kNJh'd*@ yd3: )ͩ\[2+qO3twS)d8r@E }U Q*e^'Bi[" _%晰F{Su BbSL Sxx{"HFg:7ja'WkH)4"+q.5:)J#v.5i_h+<#_7jȅJ[nt`+8 c4‡i!#\,.NsyB̈n KDFK# b#v;/@Z|kFa6??W`ȘIȘIȘ?n dLξpP2fJ6Fi/ 'dLr2]@N t9. 'dLr2]@N t%9L?᏶7ν]؏зOr%yG Or8rжl?8VbX807keu7j;w !P_U9XFDui4+ں=Vc`"}QIF-v5 xx,j_5)=!L*_'9@ÇH-m9ԍG#dAf.uGR?$g]<4p(g2#, zTP{2|[sPEF G&4JlB H-OIyd՟e{9sr=k }x *w`U׵õU prɒKD76dIͺS'900Zk3 `&2:USXЈOcm; uzu̵Aw/ZkJ1ZH@ HSO$Fȸ9}I$aVa)N@Hj P8 4.!-`?~VLVci s"GrǟH%m2Q'Bt&9&~6 _2x & **1| c @D(0Pi3Y1LdH5 IEv 7@$0345nwmy_L-@8JU1+@H0-@"a`;Pf>f wYh/W3Qm$79A-R]u$,/n I~JԲ!w_h ΀MC@1<@ H8} ƗG'nQE#= e2 ?zJAB-@L7d YH|UbxcJOoM8 BU@9l,;OB]3?A:p>9P1b h #[ ttqTPN/~tVw{LoaH۸=7E.@JqìlV "T([`/TLT>tkl;V 7=S׷OrXn|v$%Nݛt:9. '_X`4vBBf2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bf2#dFL0 7R,+ BɁ0}kmEьh'.31G^BN%d\BN%d\BN%dFȷ!SX8a+:э5%Nإg_&hqOK*^ȱPJ~V>+_ =>5!g 4<_H XDTYYąBn8x$^ƱDiڂфL90a*$X]HY2ѭLSf˚&8f0CL\Agܚֱk=%xgFc(4aD2K.!~,P1TDЇ%&BX(e4!{dH)~tsL$,109N$#],uf^tƧrː3wT*jCB|OoI-0L OBTSHnG@}0㓐Z*)޶ߠ?|]8n@n^HݾJԽ? B:LJŤkB[g}ȴ m\oG~k.v ۄo+lFc[6'~/0u8):JXw ,/]!R"lQUu&]̽"TKT Z!T"PF 7 󍗤G\\ `FcYF!š4SgQ"Q QSb իtEF$HB<7V#Qn7 |!d$,qx"R+ZB˨L&VMHd7 NԱ*\Bv=uϽ"BI. 1AixNXʈTcy4Z0(6D|!_yR"DS48Rj0QPA &F8g.Ԕ~)СkR9l*V 0>n@D*N$A&z 8H4#x'D^>C!1aVd7GLd/5/UgYr.&}.I>}lSpZ]PBf+3LrUK#rmi}lԗĪqvu21f!c21f!c21f!c21f!c21f!;g, "!L %H+.S(El)aFŒ"E3f!(BQ0aFŒ"mp[pÇwڷPcZ<ΕaδBܰd^mXtniacA,FH I`ƒCgwuB|`$u5H Y-9h6F2l4Io"d䐄(Ic$A匁gs iTJ7D ڨFl.9$!!z򩬱'V|HěO#*K#eDÌ Vl/9B!FSED,Hw`{2-KPzCay`sa)LHZcog!laƽ 6 1d2!pDf]L y>% T؟V|uN4 tZ tǴ~$g?V'EFhx{{2wi 6n?̙!>f;2J:EZ\@*|ع X{V;bߣx,C텨@ dȊ@cn^긐#- 'r"Jsƃe]}?m8(BJ@ HZ3M]sކE5=TH@/ZQ,#kݱ~u#c#ciit* PΏ܉8m *,4hto"Ӂz o}.v#$ĖuiafqQĖѽ=:cQ!L d:"f㢺)t*ƈD/@w!DC38y@|P1,bB$,W Vh@ֳV |bPȆo]¤+TRsHaJy8w1 b*UwӖ&b"t&&drKG@1;{s  1 w=#\&`IFrY C:Tz=}0P-98eue~rӉ€Qg/CaIe; ]vHɕ(XP\v޹ެّʩRn{9o钗D GnqJRl yՀ$ 7kW c fZb[ހ\Lse,@o7״ lz=J!sDX$SƀѸƔ[|ן<Gj:bs ˻7sGnS !8nkl@#.߼v& [AmceR"r!"*S #KGX_J.yK2NssS gp^2cր%w\ =b&)cS'_ b@s>SDB.|t_MsedjYzю['_u{Z{LwH0'b׮d~.7 :CH>ȣ2״tvwxg^~hrg6f3/f|H}f>)EIB< o8_7wan@R4cJe=:o=!3Bf2#dFȌ!3Bf2#dFȌ!3BbU8? @6l@%F6إ˾!a!_%,O1$MɁDf_ \RK7/a[-]]pDT= KWB~Av2"F_)N[.Q–;!IEoGo94wI)}-m㌂[AfgHA` %b8v<q62ȍk(ۋi DA$(^.K$O)2wywRᄽy,= Nv@ҹK˥4ӋLN_kHh %[Y\XYZ(x]G x<(;6BozZm]|ZcSL$29@"L$29@"L$29@"L$29@"v@bzK$ F nl 01A` c 01A`J -r,ђ\% zb p\i_yd{ gIENDB`assets/img/forms/workshop_registration_form.png000064400000014153147600120010016142 0ustar00PNG  IHDRC?PLTE%%%䒒@@@www\\\333ۅNNNiiiȻ ``CCyy00s tRNS`pPϪ<AIDATx0 ;ۅ%D4浯6k_䵔 <Ɩ5weM/~,A` c 01A` c 01A` c 01A` cfόv0`CH zuduiC0tLtLtLtLtLtLtLa/)F"E ;YH~I}ߤuD)Hw[ }#ߛ%YUeΑ,G3H J"K:D̝}/ +O\@d@JfPTY1C I#G@udo*`m$)2@JMM#6 ȏ\5ʐDZx<8 Z{X$9:y!5@3ԸAgŲasV@h\b U. IJSF+h /HZ-& nK{j䷠Ar$ G:R HM\ii@>t i)' Z"bm*ݼ}>$I;T!AS,e@nM5g٩LX\ P A~%ŨUhF+1cd;ΐl|j6 $H2duMхg (t YH0"iB6X*#u=:CA k}9 HR$V 1NG; L1AF\Yp2 `vbM ȇG 1˂qbx2lfHƀpB>"LsYw@EP~`tyWjs' 7|$dyh_#eHΖq11H Msۮ_Є~P ڀ*iKl۳ b{I"H9Ot,s,{tDlK,|-#d)Zא5Vs;_mAu F?ƏXx2xQtS1.nW/iBTm y"?oi[|}`׎MaN`s|*+ +"$sDAdЀP o%k$Y %,A`A ,A` KX %,A;f"9D/ Hćy]k-+ =ٷ2{7f u K8˨O, AA(/s{uۡZ!³_rgj}c:! Fb(y:WBv/*gj &K2p~s^%;\@|Ps\h|w܆!Sm-3HnvonjIZ+b`<+u)-MSgeטȈ!':QjE m Hp.Aܶؼ߬tKaN0 L@1a Hn 2ُ?j\U)^..m>OCϟC#cq.v a$ r6a5Dkj@4ylaLP6:6sxPMYߚO=hy zQb={5@F j*!f}%t JPP H.cc#l&lL7 %i =]:ӓJK<}d"@(M00@]YJas M*x %i2ox>3yHbw>;fLק,~<h, s 9iTg ;;qܫL'ՐA.4܆+1mr5GB4R1 &TCCCn(Ga SrV)]&Δ8gU˫%W6\ % T`/o 6:$QЇ@;֪CЬ+z Ӯ *)s\l:Y%\W>@UV=Lֿ;q ^'EnO أcAQ 2#dFȌ!3Bf2#dFȌ!3Bf2#$Xa|pFgA PjT&iSC i222222222qD_wÝ>;}j wTn,( ,( ,( ,( ,( wT+SWӧp ,( ,( ,( ,( ,( zA\lǜ>U(+zCNF 4I^&5:G{F W nnb+q fE0 /:Aᑥ{z$ᢲx5̉;(tRⱱ2J"c|NnYxkL{c_J-qQQ7dKR@OOziʘ\!pޓe_SI?3KSč\(2bG0<^+K#xYsk2r KY6q4o0#|h {`ڴ˅=1?>Az+(|-`"kCK֒HشAd"xjHjm*pPބ,y9\bcI{8S`vc=7v $f,?YqW&ٶ4DH I[] ,;5UOkp)N /2v&o|mgU76{&p7.LdM\d=Q,G Fٻa O002)@t8*-_ -IA_!a  H@KH;Pģ#{ Vr pԀ-Ȅi D\{@6Rr '[ 5 [BdT ]@`\~~UA \it d풍' 2-W大|p⼤׏Z;AqNZN%:y򴅜 mj,YD\a2b~نXٶKb_E@'C_"i%XT~;B*޷H P "-/{wH kj eAfdFAfdFAfdFAfdFAbhom  F/////C#H 1#H 1#H 1:Xy0|& $E3b(` >_e] _e] _e 2ȴzGA03!R&+Oc2 WgAyT񲄵\焫σԦȜ|,XXv)stM,Gn'&NƘÛ$ ԙ&]1$j2 *x&.&[uB"v2.TMr[@(# %BHKغ9ףL@N[dp0ObKo$,)fdC NGN;{?,#[ p1G;0vYLp@t!j$´P(P5@^}c)m3"է 1\{<I+Jۆ2\5{qsgB Y,{tV=_̷@ZWe i-q[ e]:HM/{w0 P xBJ1;#ܳ[E| Ksq8>IkS|kmK KY`Sb<>IkR7 kDT-m)Cc}INi j\Vg !y\cpm.[7,estA^iI;2䞎YՑi+݌ǃ p1A`cw1q!{ aWR 01A` c 01A` c=01dq!{ YcC1A` c 01A` c 01A` c 01A` c 01A`ڭa ? 4"$J|A` c 01A` c 0I+ȞҳM%d-a\Ĝ\B8/ӇM~Ʋv  IENDB`assets/img/forms/highschool_transcript_request_from.png000064400000015132147600120010017642 0ustar00PNG  IHDRC?PLTE%%%www\\\@@@333AAANNNջiiiׄ @@``00PPppM tRNS߈`pPϥrG\IDATx@AB&.Ttm<轭߹7,E:8Ay~9c!/e)#H 1#H 1#H 1#H 1#H 1#H 1#H 1|5Ga dy#[8Ԓ0!t:/]~ RC8C8C8W |(}l qZD3]v֘,WV S8xB,57u!!igy ^/8Ϸ,/E'HYm@TVxLoRKXBl#Wg2ᅨKp9",eq2lD.Xgx% Xj>C3|,Խ;񟋻3!;3!;38a W\(CHL4[xW`=?L26V7-=}pX'{;:7k 2G5ޘjombw$z.ȑT"I.U@O`̄Wn Ix%Z~pF(Սd#/̱'*Z4Gh\f-lf ;A,@|enmdIHxG Al?@z>fQz@أ7Hw{ޯ N~XWFn$,]biV45x?Loӓ,)fi(e>)ٱ@bQedxe9'@RmC+շ>HHRfN4&OM 哆Sb%w(!"` SRMM @\:7 }~I-FY?:>^Q^@vL "S }c1T:Eƒ'gY4 nb31V9& @&B@p8>Q V[k-8ٹipɕ-s:D?w@0re HB?h7dzڢ 8PBC@_BtE(_Ӡ3Khʑ6})8`9 vg=. 3W8,q5|;lBssjL)ya oA 0 @t$ͪ(Adf-e#H 1#H 1#H 1#H 3mNIqמv.võRu K噤DdaB cR؅.0v! )]Ha\҈B*>cvGEzYw$fQH*NȋiM=$Vr2I\+B?BŌIOR!3s!Rȗ׵B,W*d `G. Hif!"j7zސtz 2|I}p;D $.-t$C_;=j/3nTMY%DҤE9qHbQH&M[~`HQp܁?O=aNcClJt:!*Lʵ@8!L$ @ "pn*^P1HB҆#χ,Y4dM:/?7,f0x>dpBD!$?}^¦\/$b1L(jCCPbGs y)d 5WE: 4Ʉv[r-&j<";BUMV!\Hs,B\6 BG'!]=F!SHO;n=CѪANa!qUB:.T-2Bx⺼rDNg:#qV a:W,P{W*CtXE^Nst'$1K۳^#d@<2Y!a#j#!+'et$pkvA}^x e1t;$_xN%ZXJ{EVtҎ kH^P>t,Dem:ZRc!ULC.߸ֲ?r"f\BtQ*tc܄Bpy+LҋOkR .HYETBĸ%Hc.ĸ~i ?U%cR؅.0v! )]HaB cR!?-7^x7rW Ů@@ m`D|D $fW }߻w/TޤM ,1A` c 01A` c 016Hy跚_n>ʑlF߭gc c 01A` c ƎRhFȌ!3Bf2#dFȌ!3Bf2#dFȌ!gf;n0 m6%yih$F܉ӷ;%L2N,fyc yc<$$f}qؠb}_`7<" ȭ4xK}g̺EWx9a7< T鮑 !u FMb5j/?a< fʼnDLĈ5B(+,yUoOBzz 3!55M" Ju? h@otLɡO=FJiɋ(,D YEi^NG,l-Cέ*B#r06t!{c"*V`Lb!ƅYȢE[F1jZw`[H xiFD@[!Cr(B#hĖyN !=R#Z-ߧюtW<$ Qf K!@4stC׫_OYA˭v}>=iop EMHiC"퓒ip/m!#~)$ ɔX޿Ju+ $%ly )G),.Y`i.B*ONϖ҈.V}! Svb!dp]-$%򴳐@%(zfk!@Ѳ;B"5B`841a!D-5$V[y!!ɝHgH \Mp%g!]Xֽ",qFZZ &3HCOA&!!uUHGXiN T{τ}T,?h])d4.'KdPײPfP-B<5E8wacD)B֭3"lry]Mgo;kN'Tow!ػ(9ʝM jMlH* ~&LV`- b" b" b" b" b;%0uso{4r[ڦ b" b" b" b" b" b" b" b" b" M 5c@z Sra,MͰD AD AD AD AD AD AD AD AD AD AD AD AD AD AD AD A vv*B_l_ C\')lBYO9)VvA1 dqCeG|Uqo/Kyn ݓ~4#lWۺ5}Ґ>Hxe".A*ZX ғap@8 Ҹ"Cv:4OO`APe+dO#)e- ZMPJ8y$D>yUN @bc oգq<ٟad13Dj)pԙ YX<A%FA ha40D "FsAC^ϻrEcOA%E&FA ha40D "FA ha40D "Fsk乞oD9In=Qmr\Oha40D "FA ha40D "FA ha40D "FA ha40D "FA œҚ91*wdv@a;;o_AA,I=N+#M-fٹxx.ZtR8?#ʈ: /|y ٮ|wATXi1C峧H׺qfXmqen Vx烔|{a i  UGDuC ̑?EA*0;Y Ag6sÖ:˃(z2QƓApG寐;Y ӈb GA|d= w*Nu‰ ӓyk?С>χyi汶 >!Ȯ1r xCt"U>ٙ<-rXZJ(1A` c 01A` c 01A` c 01A` c=:o=Ќ!3Bf2#dFȌ!3Bf2#dFȌ!3BbV$(FP1=|kI7L/^6 }`FMJ}1}\L r1=r3XtmNT1NKh/e6z(u5=Wi95^$ 6JNv_?5:#4@lmMHsiiw5"Fu v8И>̂;F::H$13^[z &&/}LJ 7g]ZLnDB.ژCڀ5%&ŎxUv^ , ~#e (*6 畈 ?imLXa@T\=#9[gt@2M}tB,A$AN/(qX` [4["q46cjϲ'+Y6Z s @:YRT:Ưrè`VS7~DrkL @#&'U O,!dZƤPj 52ojJEWs/)B\kmRB/`"c 3b8 WWn?rd AM M/kdֲ 2(JGQLSxӬ8M vsYX~2"IcHu:X@:xt7E߂ASkk"o)= $qv# a2fv.%:hݮE5#+mU1,[J_?))h00nr_SG@]G@>U;&FO@gVݖ=(k<.K=4dc m0fgKŁ 6mLR{, Z=2ODC@ȝ De Ѓ2WDï!o{纥& EA\]u{S1B9ʞƞ|?,IFɐ9YYPEOVpe$d?lǭ#c*6X!F`슣Ժ{J䳧oY![+cpSKW۷5܌zU9$ԙVRi >|zŗkW˅dHF;鞎8je@X!g u3QG/T_^4kt:C,@lx8df. YDH:TZfmjD:kq]'$F<<1 pW7v`čryE)>;Q027Bŕ߿=433v+S`#{ZF=I+l7)Z<ӛ gFg3͚ \..b LƦdō+eBu dcRY7r=|lrQ늖(S1[@Z7pyܣ8YMEL)D-rrAi/nܵ9DZڤ)*ɉ;xoY{qИ/%HG1\H%t0pJ! (rFDB+$(_o }VYmԓvB+䀛9CA%^eHQy$BʜmXLjY@ [!hzV!VA! ,a|"hLeYk #ht,xhJ '!!{ٲB"jQ'!! XH+ަ0ïp?[QNOi˗ OFJŴTIARPqbƤd-u!no,K^ X!a!s-βa!*.c|ۿ‰ll2bc<ԫh(s 3L tPH!Oeju&ƣQ/'u|*+Ҷ`sx!8^cx!8^cx!8y橣~?f.n^4Z 3uE!.J$fΚ6v[Z E^B}U {⚒v{("YsѢE7m' ʭE:t=!  ZmROK\5WmGH^׵d0}QG"j$#y-*q!L!rR ,l!E(An烶fvWNpNJ :v"H(IQ GdQXE+3WTM3"L4,cu<1 Y=6'Ʃ 5HQ" Q ړ2'! Ǻ"^SH(8.;,viEi;B ^(a?WH$=("'! |gMAEH9!|+z , v~5tr)TŇf2QG2R4d#;)ltr(z \~>lRp!~HMGc"zMtGK.;5DSh>Y%=gc!Tm B? E˲B$ax:녈w>\}"^; 3+'u0#'BvG2B*/Y{Z.%cO @X$dGx5/NBfC~B$1hF*L[Cmm>am>/>'h>Mϥ \ȫ苿K7@h>6ȍ`@Z_^>O 01A`6Yb)/!?RnHT{88hK;WaA` c 01A` c 01A`AD#;JTC9PFQ[A` rG2#dFȌ!3Bf2#dFȌ!3Bf2#dFHю EJ# e9C6nwĻ6U*Q]iσq '//! K0,/! 㲐 7JE쟿_rYȊ8Ho|АK$vox wtNqۯpF ;\v!_~`QB#)y~jo#k%-hZh-kQz 1%Hjʳ[﬇ :յ8fs}O @{/t}HbmUv!.2X=F8x9I1؄D~dJ OYvR`m2퐗uH>Hm5 *"S[-ܞlʠԊ#w!'!'L -h1cۏ <q(&bZ!8+KS%qVH`6_*;Ov#N5n}G_I/Ga%H/=_' 0q?88Oy0NG1A` c 01A` c 01A`j tRNS`pPO&IDATxێ @{E -ZYy\=88ivIJdr8wo_>7_?ʛ䳨CT 3 *uROn*D(¨B )*0¨B )*0¨B )*0¨B )*0ošQܕg Qfef2DfTgUcq83济7zGYܓg ѰūiS3`8 #kS(qw?JEq^(d;Jr!gBJ/2NH /l#jHB ȒDN BN݅ I)O,+VHegBP֪ !R)Yl%7qq=NnN!1p;r`%1&/dkOO ЊV -6-g< ͹)s5ގQ@shc_tLg\H&Rms.DcGcF#YOϙ9 GҧyR>b>B5pAc!^k9B6*{b[vd!|A%!?IB 0FpBԗyKgr} 0o,/x2r!@ ZoBgBae^c9L4в^m5~r:(0ӄ 8妟)xd pX= $ZbL݅4 :8`C5tzM1 !Rz{y*x|%!r'hO^^KGA[*hkU)<Н3Eyʋ![%h" dJ 9 4;!\HJ ,CdWh>v֚Wh[ԝ(aCȦ>Mbdwbz V]HKBˤP]T vBKG .Hii :jlR͖2:>^iV4=@ ;/2@3kׅ^~&d~Y@}B%IׄPi üPOBM=IQwpi'fi$de68iOL2m!^Ġ`E/Q1 BʷbҀ'- %Wj-O|-ՉHR Bm*DJnyϢ B;k72@&m vz䬆YW$]+LgMj80dayhyKPn@]k &m4T)wR NZ {)Y@ وxguReV^HL@t'ŰqYdK O<=4 ;&a]L(_3p)T Db$W5ArisYuY<$1ieN<i|!Յ" s=co/ĐZ#̞%.O:ys1K. 3CZu"$g!npժ@nzi6F4]eqq;:MBz=BWHwoOȇat@NBC;g 1r 5Y!3嬅l?-PcKb!0c!0c!0<B { x b bt{28a(h8L: c 01A`Y~BYlʑ<_YVc 01A` c 01A` c 01A` sdȢh3鳋CQ+vjc6կSwl[|ٴ6a0IM)SmhZi m%nA3ˁ޿ $Xn}I **+M5(mP[?%0' &=K%B<c_秎qg.Ч=3gBbq:vm SWsc}zMBgWױ%+'lBlI!ǶU6Ӟ3!drKp`-WMnH|(21ݾ ekddթJ0?x#R. Λ0C#r- 9? ^ YܥZ%|t_y=s9BޥFq7OQ)!C%!8.c<\[%)'kBYBh$d!%BjZ)X{%`(3n3p-lSm Ѵ 0RK 0O !|s:Sg^AҞB'KBHٕ>G4I 7.dEkB"9 ZҞ/]C* q[3q yE70($iе'}B89lAOiς2ԑ B\IK!.&;mmÝ1]kܖK4Z 0i0XS ??+.ʸ 2B~w50ɥb$FAb$O姾OOO=!FAb$FAb9AX@b$FAb$FAb$F?????;#H 1#H 1#H 1#H 1#H 1Č3ّ9`JZ($ XN+СA<|j/n i84!1!qiCHcYļ7[ 2yeo¿ۢ{R <>C"ǝn/Y.!XeDݮ)Y^ ߨ] qNǎ.d^8Ձ1L67?Z!`z"J!FiJd`2`(A&%bN2tdnx2Z%b>cLu3o%>AXWC>8y:};>! $LdNQzdr[zXx$ ]y^{`M&H01˴_`apr%J1b-"RsNL!2cȢ+BLpt>4+9YԒיL+B|XVpT̟$+ãj^I5O/ ]x,wȻ w qH !>0Ȫu,ׅPn,#LXA/~yKn^|T4`jMxe)_S]B(T"C" H_e̊ϛt<"ēX.a~.dҔ_w_2@QC'& a*`!O13!nMB4ƙ"7r٦>!d;f,B Iy9B^v/4B"Q!S}pCtDxab 'F#9醐bo#jd1I-ZBfebB?>!rѠFDum.ˢҮH`}MzuzB3>'4O _ >wHQ1T00.sj`_\7m 8d'>BsǸB r2]))Y_AGC)*=!؝^P#&s GS_b[Bh<\^5H',neXdyB9N!1 '.@id׵cls.򂃧 v-:Z3ܯH5,}v) 3f^P8)@I&Qm΂E^?;AT>I<6ȁ : r&UTeBPN7P~ V oY~ld^V+T<q [7CԫHr<$h 3+Ar;ͽ$tDMdJ\R-@D立#p,n#5dAMAV΂- Ps7 Yo'u,P$:M<<iP|n3evsƫf~n_a8`ܿ쭷蕷Exc=FAb$FAb$FAb$FAb$FAbExn-[9#H 1#H 1 {tL0H;9Bb#$FH!1Bb#$FH!1BbB;A( ?Y^%B nv#c`:mvsҏ{[Ww7"+:X/$ )$-/zD;ּo/u&|CÌ>2[b\2Py<% '[_֣᫇QGur D1'avYD ׂ/6A` c 01A` c 0i%Qٳ@zђ%\88Js^|ɯXN$MoiIENDB`assets/img/forms/request_for_leave.png000064400000014222147600120010014160 0ustar00PNG  IHDRC?PLTE%%%ַj̲ےwww\\\333@@@AAA充NNNiiiƟ @@``5}}`&s00PPRDppon tRNS߈`pPϥrG7IDATx0 ~ar^ mCݭ򗤄=`v˜o/eX,9P c 01A` c 01A` c 01A` caV\8J/r(ou_& 캭Ȟw:f3&.{ iSHcBhI2dﲆFZ/Z gKqBc4=g`g2;}oy~,7z)S|~B( )j܍#r1AYKOj;skiB$|aGuy2T!շJsјϫ(Y"e,jF r/B\]#[qHg\qr!Ƨ}! mMi 3!BT6(@  q!Mʱ:G} ABK,d7[ɢ17tj>HM9B6PMI"/+ ͬu昐^0TT@}w n񾧽EH|"ĒS/w5[w圅}a&j*UѸ+dg~u_/YT2-:]:&6r,-5[BadB~!fGNȠ J/D+|4ױAgHMsL=JX)]!Y.QGBSBT vg,6=r /"u62JN))3dᚼ<~JCBId֣헑BF)c/b<6l2JQ1C_J}!P\JBUN/H_WpX<]Uc)KECB C"d *gB@8_zPDl3h9,OxZx q1Y |Z+dCO ;:0b:hMMs\%mL%%/ŗ(ǵ*J(s"DAbLm巏(ٵS;[Q-1kDD%AR{KJ)j[ K44>?D\UTz%g-_);>^.ڶw"#@HcGY'84)1N!q iSHcB3a ?0ز)ܢ$8oCl'5,R%;d=3d;UB i.1B i.1B i.1B iBPf{Ȁ ' J;Yz4}!6$jph3"H!~;FMkJLN aIEHiPLaw=*U?N+£J yrۏGwDžpZ Ѹ86i"7GGl47!$L/z݇E|]T9yI53;b1d']ЎHHrkhvL&I9i,Y@.IaI0P̣dHKIK/uBIr` =R8^gǣJLGY& mS f^<M}rv" 4` 4*y)A` MTYBBܼ]`S=^P5CF;("T12 ( 02 ( 02 +\~wg4b7EF-AuiDQAaeDQAaeDQAaeDQAaeDQf|*>r~\vl}qDQAaeDQAaeDQAaeDQAaeDQAaeDQAaeDQAaeDQA-0Fk-7k x:dn#_1׿u  }^-1dyJd$I⇷Lj}X_R`@۬&0yV ?nep [}[m7-+F"y烈7@J$3ツL"h"઴qmĹg tAfޤNMRJh -"b32/ExTWm eaQ)Mh[D륵֛b1t{ R0>ߏ[bA˓iDZPJ xg{͋th)yMjY,1`y&E ZIcnw>d #R}b]Y'*sڪg'̑AΏ0V\4sC\y52 {+kQ)mx18)Z',H^Li H/iZgJ)[9Edytuy2m_q=Ry1݈ S e b\(سɓFbӢZ1I'm%: R`1H .Ti̤qrn4mU+w8(Ů.Fh҆|IL? Cb~NAc׊Y;ɵ @DħLD _GIL79IHkW>w ULW aI,\bi3&b뺈T02 ( 02 ( 02 +\~T0Sb>]o rgxu9ȗ^][}yAd0 aa! 2A~k5AVa8~}Z$ @2) @Ld*.[ͳ^GbGxj H,  H,  H,  H,  H,  H, {v8 `~$K1\d^¾"v)0IcE>22222222iFsg'e~/șA Oן1bCc4Ӭ,A'yBlz4i _왵)p<\.%ej L?4p<}tz9|>H^I`@Q>ZK_N(͠wNdC f :^F5H 61]f~"{W * GpAO0BYJk@]vz$Ea{^S:Qp7iɕ䛼AHO;N=qet1udS*pLM(qRDi&C2 2M@Ө A%Dc rLg>),y wPh[4'SQTfC-ZT1_$×k)B@U R R R R R R R R R R R R R }[m8~O%E`0VABn =I;փLҥs(?dTTTTTTTօ N8-o9Մ5,n96r_J}{–l#vFea%nȪ cg5f;< |VD`"GUHAJvKZBl1{Dz AjL di [ fZuQԓC%(-N%_3t_L^i5.ao: a"E1yKR:ۛz@XOl_Վ<@B yy ʴFJil? z"O> &(i$ AؽU(kD.ƔpH tZU2 { "u[+QODP,!5oӾՒJ43H_CvEH @Cm,@FmoJ O+DdaYT:c9jmh3H95|ą0D(1lCX,g[tl F=bR"o$y:?|c؋wY0D1)PҶrJ@[#Fh9O+1F%2ۇ嬵aiL t>i|J#  eI~{5ܿ`!xo||0..m9 LHynyA'ON.==o6ϏGp[r3▃[r7o'pK[InCu RY RY RY RY RY RY RY RY RY RY RY RY RY RY RY z9z磎UAi! 01A` c 01A` Vi%3{ ddm%(az 'y `;&js_y\<IENDB`assets/img/forms/course_evaluation_survey_form.png000064400000020256147600120010016641 0ustar00PNG  IHDRC?PLTE%%%@@@\\\ɒwww333ѼNNNiiiTs tRNS`pPyqY;IDATxջ0 37k!vk[z+ t)* ׾$s (AyL%5krm˒^X,-% 01A` cf[Oc)9s!C0`9e D dK朔LZ&ye> ~6ʶED ث,(w\ s ĄH, z)n**Gh1%]T}b:!5*sE)xe[0dB>9n5Y`@Hk*h$RQJ;iLU7=!<5(,cJ'5-̱3I|] A>[.[cH""Ґbvfȉ1 cZu׳]LJ7{f*9D jfLכQœr7Nʲe/]aG j! :°: 'X&Wq3{a  6DZ1&p7Cҽ(/_8@̣E( 'Dt7P-FZ K\uz( #@8$5'_|#@rUK)Xk1d+65@t°'K~0AkTT,`ŚdmsⰞHCbLs43@h+ Ma1U| FpI } Tbe(B kl.R<BohЌ06ƅP>;c@RW#nƥ6@ = +{Dwe֐Ԑoan Ү79_bb?k ׊.:7\7X-Zd]r>@8Ld_SGBq |>Y`6o5rJ:@X!ut\_bE 8_  p!"琭UHm0PD0xFsP)hN2ݚT@XG>,Ubu hEخ~k $mtuC@4h2ʄȶ]^M 1Fq4HM' 9*@llqc`&F@82J2~Z&,>t I[k.[w2l&C cyފ_OJȏ䧲7Lrk^~<@N/2=@~Wn;h0~FrܜnHM۽-> Đ`cDIرa0}|@>L_ /ȇ0MC'gjxX2=Vcq4Oߵ(˳ @ˋ saݵ=>Ez } d N 7, ztcyd*s \Q ȫwϑ;+|zNuF8'b.ao#ڊ%:|ZEK8P+ aGqR"ΥX s*xd"__ d$  |Hc!Q#ռrS8HcMbC],D_d> GUW S4 BNH@JugS)) G*eĚ% ?#T[Sq,ݰfXLbXL.V^ 7 }4O-|CQCz d*VQ$b]r{RY4<0AzI5TշYo@6yX"]=1U eHK)حlgW ^ j{z,BNu[&T^ך4ǷGe\zmG$HS0 Q@Wy4X@R*^ .u:~'1 Er d'hUc8Y~M`[7M@o5;;@lxd.%4n:#` !D>&AaiZO41K'vnI=T&{P-UO sYn릖)נ\!M ġ @\Īib+%եVMl >s=;$/qԤ|%H}awڱ(499ѿѶ;[sF]‹ [@$r0_,N7̀ۼ5{׮[Ж#Z B\iٿ!o&xm](M+}ɰξʦ3DLg.D\*4@43zOo@2G!֊ [ U ?HdCą?{!V֌[VB9"es=MM:{@5i K ~p9JCR#tKLu+ 蛬€h?=hdyvV+ ˓JrJG1gIaCb Z9Z/ t9. 'dLr2]@N t9~Ȝa/kfi||؞s WfC.o[m4l0/ m{WxD؁ش膃G"S9>ئmkDx=S`9i\Wy]O0 u <.av~CVv uvK7WKKΡ8Lci ^l\+B|@.ތ”*T>.!}y.0sR\k R5 :*(?V^bRʮLI 6*m)Imn 5@ƅ %l|7+J{gsJeE"wM sk Mͺ:TVK-(9Kv4]y>ֽ;FIUC(+"n- :fuS 7[Ev_RiDG :N-bKxWـt2pu @H҆g%UfGeC5e hs{$v>ZN0 ۙysͼJQC nP>HL%tWH4 [模*+ɲ@PM\?E* |$KV,wjkiYʆ>2CVnP $j"ў!+Q-/ \?Ф"=hX6sjH ?D+nLT *ۧlt ԃe](hմrP) 1oyˢ!\jb=Ȟ-+Jm; 궐Yq c[}ND.iKCT0UǕ-  ռ#ȄS @hmԨja%RmS-І;@X Awf̉bዾszX f5 vK$2!Bm䄷wKgBF*7摙c#8ĖLT!o(| _.ZGd1|CZ %D@4c].%!*@+CstpmEu"R0#Dԯq%#IJV9AɒT# y}oǥ@>S#uA6D&@UZh@/x\ 8xCMY4lnbyl'P9*met;`j}!3t监W Xi~/$3o حbj+! J !etXk ةJ І}]"'cYý[۲Pg^-\;_7?] !-GHc~ʽV@!b D 1"B@_B WZjU!b D 1"B@!b D 1"B@!bp-B@!b D 1>;\anh&]KZ~+긟 lZdX@AXB&c %d2XB&c %d2XB&c %d2xjG^RՖcoG!M ,x;sfl b#co'!Y"NȀBKLjBIHFF\RptDCu.h-ܛFnV|@& )l+77;'!;|,q)LD5 aBȣJxq4 y7UsBwF<Ѫfpd%"OB݆j!+? V&zF5+;@ y&(TpG'!t'*o 1br)GNH&ܿ!ibBZ8YB'ń8tQI NJEℽl!V;YB:)`w#- #M/W`{!ޥ!Jt}%$0nKp/IXuلk^nB &|#%0],!"Hrvq|3rtx/D8F8aoFHI̱ WJ9hlp:Ɂ.ZyoIYB&c %d2XB&c %d20 z,T)o$'_9pk|l#H 1#H 1#H 1#H 1#H 1pc|m w 1#H 1s#! oWOҟe_v|5&<شCHg !1tCHg !1tCHg !1tCHg$][Mq'!3#>꠻Ox)wE!W Ϙ*$gIHmYBN:!5q %e4$`>0`MëLr,d&b[.kGvwCM,l|ERg&uMg /RjBl{zZIy;^y'Y4a 0\Hgcy Q&X"ҞV 2lBqY 1"oBڄi(?‰J BomˁK<;Юì B<>\E4\PP%><RDN ܷ-O7bJe*fAR@bڶ`5!k+(nW( lߖ7YnnDs"Wj'!Ўp(>Y rih_ֳ}{ּuc!3B:c!3B:{wL0?뱘Rɦ$F_|­[ 7Ʋu 1#H 1#H 1#H 1#H 1 n/9#H 1#H̵[6PCo+V"Y c 01A` c 01LZ e@%*a$[ gZJgg aɫזO6UL7E8+/IENDB`assets/img/forms/social_service_home_visit_form.png000064400000020072147600120010016711 0ustar00PNG  IHDRC?PLTE%%%᷷j첲www\\\@@@Ѽ333AAANNNȅDŽiii@@ շ5}00``pp&tDPPo.Ǖ tRNS`pPϪ<IDATx0 ;ۅ%D4浯6k_䵔 <Ɩ5weM/~,A` c 01A` c 01A` c 01A` cͮ țـYXdNJZ@NhF|a0ziLtiLtiLtiLH\61-6.bZ՗Dcќj%朋QSι9"u`ji[|Q2u4)W4ߦrw(N?= ҁ8<'D4Ԫ,0&6s.M E |()ǒ;ң7Թsam,ꡛW: T2S1DbݥbKn4'G4RÎhfzftfK. ,\R@bS!zQܤ^},]37ƀK|׹8wd :V$,XM^m4@^_i4LM={H>X7@.U~fSXYrx!%/5hq//+_ ,>r}>u}w]x`i\%u@b6HԘCO6SJdH sP_'RS50f^,6U=Ա˧tM[րϩ9!@ؖd a[H^}8 kva"MQ;'NkEmpcPR-%嫨W6p}/4y%u`R<#HB1Ra1 u(Y; PvGBv#:΁c@(YéSB2.^74PbY$5cB R8A1a_j1~BzvsK*@ j V{ 5)=OqsoBŤ̊#22})3ƀ8 J#v][!&bcmQ! 6{Tm,8Yn{E@Dmp ȳ(ƯE\5j8άT{_}}A̚xf&@-4$IQq#RBW >K;6nCh{'򕳟[SSf\٬s":Zrf’뇟/R] awA{2p޶7ø% ~Bw;8jy-kX,pUnKTր 3}R+RCDeiU*pŸyԧPsf5|K9 Fig&{@D.`͗ 2p2RAIE1Cbd "\inm(ۈv>xY ZXMt#+Sa$HU:Doxg=P逃TF4F:҄L>緱faAV5$>D}oYXվK+1tnN_q4)J-cp{N#`hSVdKlƅjKBVB٘ ZHC=]!$s&uɄx8vUBL Y"²/BYM!!e,2t'k!} 0i'3E6dtBIQ[#B;!W#򦐇&NVB2JcyKpLzM] |dр~*g^C4 B"4%V#D;o[Bl#+!)hl)dD>!(=e%t+!4jd YC7d%bчbR9"7˵h2MlҐ Pog#uⶐs[VK#%#ؑ°׾qE &D4B}u]B2Eףh\k!4ཕ6G~2P^~:,7j$ g B1vW6]mox$KC7v@Px^0^0k60C'kÀ6r/V %,A` KX@U9ۜVA- 2Wb"H % d " Y"H % d " Y"Hd2b՜{}{QΠlNXΦi ß9d撄@NAEP~c'I]veCeiMHe4!фTFRMHe4!фTFRMHe4!фTFRMHe4!фTFRMHe4!фTFRMHe4!фTFRMHe4!фTFRMHe\#$-j"p9oT*YW\%d9;IyyLoN8)(I?$(rU^rr~ b>Ez-zo ,dYyՌ0yҙz:אt;1 &^kcsgⲐ(#ڥlP&(2DV!`m>aC:p NzeD醈U#f9l7h^"e!J82*0FLO0.B:vayV01X%qp =&CZ_>!9e,0Co5Nbh 72K5FFe(9EaoІ,dٲ @DFEt0 `gFly,=îg!&F%}͚}"L`L 3ty,j؄x nEy^T{oξ߄8RPa[rl:E4 !g NgE&R-( .t5]fv!Bv :B紀.x#pŅ'!&p5wwDLYw_߿| n}!NPXˋo^zUp ٹ1ɩ3 GDZ nG 4uX Fy A.sVp &N[rF\_KqwwDH.VP]LGղO/_[pM>exrMVy.=NPrwy:.Taǂqگ-ֵfGJ'{_ *Dp#r. [^ OP,d (0-8I] Lɱ_+ɳqN' ɠ?d^L8_p:; ]JA$ FW^Dt x w,ՍS<;~AUMHe4!фTFRM7vbbqmp6TT@N %,A` } 2g`*1We_AF RLADAD,A$KADAD,A$KA@ww[Y췚}r/B=]^ KX ƎRhFȌ!3Bf2#dFȌ!3Bf2#dFȌ!_Pxd,6 dhȢ)mɮؠ@9"W:zRrg<!wCȝrg<!wCȝHlDE|JgXMc~ߺx+LDMx{B:/,)1J7RrN{e X3r8={};]^R`FffI-CP<^ϟT@>fKu3BnvF X"nN9'ħ--:n[& ڧJ! +yLcrl%vCR! H?UkG#8b];*!Q chfU͘.j++Ē>,muCxnޟ LB\oCHDJ:{:rQ0lNHL6IQ3 tkOYimvFfO;Ynnd9|vz%_ 5:`G݌Fdu$c!3(B4RjvQsׯBaWk_+7:@q/ H*{-e 6X/ԡ7O[#D2,zLԘeԍJHC|{[5Jf42+dCzJGl/M_*ENXQW4E(f_(& S^PAO͖XL!H zjG\gQ )c )=ט<"qɡafSuTGˁscPzJ(_NN.dX[ʳ ٟ8ɫt7+S5> ORYHO f]Hօa! {x!B i.1B i96?N_i_k!/Mf Pbf MR)CQ $xwy'Oo A,gg\)Gd+ "dB [q9Jn&@&PԤnWI'@f`}ܽ0fj/%0/aW}R%|slwg$AG ٣7 XT`"!yAM5Vʢ>6+! 3ٗ=88ƼĄl%$c*FIF␶刃Z.`'s/pP!l25˧Q!/lj|Q:*T"'!yB$R膩[2P6i *Rm~C!b<&dllXF L'$&_7?,$pbVU)` m)X,z\ YԹ/Mnk7j"$N:0bSE iZC ZH^AOBbP!-5cm=K!p=e垂KVJnhѲ2lĜh|x%P]o3K *%fR49ʐ>SO!HmE,\Gdʼg^$8<@ !βD=#AQ!RBYB,܌!K]И!mԞhg?Xlf_D&6FQTȞP-}/B/ )KB]#t&VS!2q 9q 9q 9q 9q 9q 9|i/ƾ6Q n!PU*lnuf?e9D"Qoŧ;)Xfn/w#۹㵐lBl.d|Pq-$#%74oDŽJH7BxhcE"\ G+D}<=B&4xCp!+/BġC˜ɵmN2%K,T8ժ^btBH3r u4=m ?NM=JI'p1ɏ9DpNU!T 9\? *$ă2&] gv!)4MBc% *<7=@!'PBxnR!3*HG )">M_ m5-Bc-$BaAPR49 cʆVYc\&dJ` Ff@.b!ˡݱMQ 8PܬK+%3uArB J"SN"d܋iv6!X >Y|wvlN/*$h5lq *'NQD3.BZAE'ۄõ {mf; UC is,AW._t!atԦ@g!C_lԥ ors!8ah >] t4!$uEO Q"E.-*i]puC\WMˀ5C}q %(%kl{\8oe׎iw=K8Z \$FAb$FAb$FAb$FAbd 0П]%BH~-b 01A` c 01A`J -rf+K %K=UXXKW^X|ɯ؎d蛨IENDB`assets/img/forms/polling_form.png000064400000015267147600120010013147 0ustar00PNG  IHDRC?PLTE%%%www\\\@@@j333AAAշһNNN៟iii @@``5}00}`K&sppPPo꽽- tRNS`pP%;XIDATxj0 fM {ՋiӫΒtsH滰K|GkvW=޼x?Վ/!w](y! ^2UB6="<#^oV/ d{ybų!!B2Cd "$3DHf!!B2Cd "$3DHfܥi ܌BfTΏ5QAX"DHiZQcv(7/ۗTaDm8H{HW3`!kK~MD[Xc8xk-`ýK Y$) :TjMk /du!Nl aG!H邅( CYV% ;{!6&!\) 4"ߛo!(BJj+dCRbCYj.mEBz!_'lu vBw7+ Q_`1?P u A* +W|W.kGY@ܸK5ns=H>AA}]}+H{=?$4o*qҷfm|{@u' c 01A` cdaTΘ4Tt 2ڣi RTl ,1A` c 01A` c 01L^y%T1¦A9AXyp 01A` c 01A` c 01A` c 01A`  T_4~C-(!wzj1gc].IOֶa }|}<%dI[w/ aocC$)H@+HBrj*8>,K22di^ *^ܕ3r¹ri޷A.P6H伏Re4/MUUH!`' ͱ~a6+vs r؞_{ƐгNɼH]a5H5&uĺAi5ϻAcH7HU86zdqbA >fAL?.UwE=_2/'~@ " b" b" b" b" bYGgc7{gz.+vQp$C1C1C1C1C1C1C1C1C1X XۆrJz,،qb'C1C1C1C1C1C1C1C1C1C1C1C1f\V䆁(z!!f{Ec*+RNq 9q 9q 9B4* &VxןBHq(o"QR*<v`SH\bX X8HWl +"ʤbYŋ7o_~f[HW2Q ܑD;p ibKD x << g0:OFB_lj8<2ߘ"ԣ`F$%YIDr-Ф+d;?ߝy`!.*S,xDEY/]U&ee;T䔚O0Fݱ<05dV嶤c#i@ 4԰hc̗I@>BH}Rl^>xx{ vN% %p)!S2P R47 -9!hav/wl|1@5 F+B:jLкqp4`}єƜdEBT%mϐ7B,4Ԕ@m$<&,.+.ȦXqRA$dWRXq<:2nJ{ %s&1BVǾ^B8u/R潤HTCnC(x0MG2Ҿ*J{yz!e<%4M{2s:n]P %^ ӻJV/O>l ar~8_VVd >m)U!4a̓C HKk2ϒ/]y$$Hݸ5hqG tBy` `W3BrohJbF!5!5]yRQ)u&@m BղBE!/B.ԍ;z{!aŠ ɏ&aMG%oi3 ).BdbHb#y:CxʲX%ޱe[&J`b$ |/D]W-2yQ&\c",f.s,Bv bFVu^2wQC鶣$lKre[H ,E+B4Nw1!\:72ҝ_?6|؀L%}zIgPCr-,%`%}+$WrWhW* \$#BxfDv,l 0}]_:&Yծ z,h)Rm 1JBL^&Ը̗0˘tOGv.Ŏ?B7`xޚZ٘YLkdHE`kKL9< 1^L,YU~,DLO&r + ٝZ75~ &Y v'q 9q 9q 9q 9q 9q ® F*!!PW/~\꺔l!愘4O9Dh3Cd "$3DHf'!S_}U2o2WQv 5QDZ DM[y." s2qBSP(JqPӚ_i!|ґƕqѯ"ׄwiѤ3"䗅\sڝTBjM-lXrKFm&D!U}8 B0Ѵ0jtd!xE!DW4pf(s8yS<.#?K B W4xs@n vv|s!gT!{zP!ixKp#lB3uNC>)v!joD)!=T!BBJk \>Eˑ9'd"D؄t7nFN>z8k\eze=5jPv!0j؊[T} 5,S%!L 5V B@#b )3\ ֍tkwI:)H9Rjj JBզuTU Y!P\(O A~x?,9:%q  "$3DHf!!B2Cd }sYq p@ [1%B7tYL,$J[ Η#iY?1HHbE(UW6 5ѐ7yO(#DVdXk~RHDi!#ub1r,9^NNl.ʄ`eU9D mҨ~Y+0 lDN5~uEr%*n'r$ƛ3 Fh=bk;E*,L`FADJqBXP\2UlMK``{H'$5 G9+kM>d~]; @s#U铐m; _'d2Lȓd6dihK-Q_漎d/8^ dq`ABV,?EFUl5,mkܡ-Pl<cK!pb(`5zHH|`G)d ɺK& Y^il9c" S"gH&TW*;U'sKw1FV\jD9r  `T/}m߉6Q"\ЙTSw?$ I $$1HHb !AB$ I #~z8ܮo "\a+)`k!ÂxgC#C6q\lY0238|un$$x!w'lnq/Di! ] "V:xl;WxxBlMd@028 bn7sTFH8`>DO)Ȋ>l%{R=!h`>C %$DrK*hV2q,N%BM-sk!,Q3:'^ϰ ṙմ ^%m{߀_wZoN·(JI8||ܦ<|![`>c !8fBn"X?e:t!d!u81%w۝ٝD~=VyN[T?@B$ I $$1HHb !AB$ I $$1HHb !AB$ I $$1HHbdV tBCH<(^P<]]qc0<UOҙ.dcB6.dcB6.dcB6.dcB6Th`_>u;! œ4S*ag.~/wyQA`_r||xS0B!By}<>{UZ h a b$D"b 0j r}߄qT]ՔtfUBt9T1` ؗ-Ln O={ WũBjb0ЀbPsl">cТ']hldpʻ\GS搌+["NRa5jY,y%EOu)*u@L/c<%"a/glz_~ 1 !e]r3!h+^™^p)}25 IbhIL 4_G$<^@_p~a[M@t3!rj`-ץ|ő2!wfB`2f&*9iV c+Q]~&^j -̄Q9!2B*(%2-CF!KR@v;;CB QX{ Ƅ( 9 I*v"(Ujdu[*٥TAh(Ƅ(DC6:[bG 0LB*+~/H5R,7iHAҢ(!:wb3>p琜tR.B"% A Mu.Omǚbw6U?ČSLF!@!{%sA(d‡- yRNx y Xy(B2Ɍ"$3(B2Ɍ"$3(B2Ɍ"$3(B2Ɍ"$3(B2Ɍ"$3r("L>i=OfYki!fs=. DMtN\β^!f"!TȮ R0,D ѻ_8Zke:": ` X!,M =!jIBx*DtI E.lrqn)v aQ$M(m+OG S^# >FÜ f!2XRy%) AʰR-nBR0P ~iLzJ&FYXO\KX1lEL:{8u)$F!ěJұOi`!j!ō`B^߹gRC"܉H;ݸbk,"c_xt1%`n?b%o2J.jEi_Z*P}Z`N.YrY.݀"*3Z|.!ȴK%NDfea4'Gf} v. /s0#o&~+!]Xғs¦tΉ'XET ^B["3x!&jJzCN*!9RdFEHf!QdFEHf!QdFEHf!QdFEHfR/D+i9$v g$.1G o9GH,uQ50V Dd;Fŝ˨+DicmTl()+ 1rBjYGҐ#&HIӣ}FJ?ȡ&}|Tk 0(e!T{m+s~&کC0uKQPٝt- # hqD[CǏ`/URV(W>U,j~wwM`oQݐM~Fiڲ!4MS7Ďvpy:h]EjɨOLs ,RG$Zxҿ1N}h}= AnEjFGjj]wHj j >ǂKKIn%A6:gMZQxXb'.q9)Hug儂0 Og4VOGC1kȇs 8<$b$0rӿ>dD2$AHDR- i_^vAn#A0nMz"AxA ፬ό=^CN{tHV߄CRZ7A 2'i' q67>BD\Dv#.X *4t*_                   ̉A6륔A6˙INZ 1].rr #N lY<{S ۙTH52 T$9 Sa`'H ir$V0H6S, 1X ROTAIRue: 3LʔF jb1lY9@! =ZQ1)Vň' JevL0E2SU9 BS.hE%:NE 3 ˼RŘr0.Av5dvhZ]ur!xU?A F 2HAHM&T,Vըk3Rdh0AM{1YDy5g {Y7h2A$%D9գIG9V$35za2p[zSk}2?!,O          iAxt^kkǸ$r9Mπ5cGC. "]\"oNvȷ{3\]o.h\/`zGDVA~R;zK_sPHr ]f"=S)GD6k"}eD/aA0: MU'A^f$2| tezde^pEE];Va(~D^bc[˅ Td(";؜fsUu<\4QZU-H]JM+CѭVaF[LtRPPJFM5d5I)Ո>6 f<5_>n4g P oZh )'Ҋ4DšfxsBp >R ѸT{!hiE},!rf!*,-^E*?/hR]J$i5E} $"vCqKs $ ;>kI/:zQV|'fwB wB5քwFHľJHx+2+BZii, !RB\@RGH59B*;uC!*A*+B|h ƴ",j - !JC !^HƩ HMU;!TNk0!ZS$$H3z f>{vV2B^'`3/ϿWU/ݬ agt bD5 *$RJ?hW]d.Φ54j~١o0q X ׋r`ZbׂyX¼q]jxr*|$I y %HeZ~*Ad=q(hj7SB93V 2HSWJw8b Kd "kXgۃKqy}m=8ߞ?Ȼ( 02 ( 02 ( 02?P־-Jvۃv3fۃ$]x"!J6+f)jQXq\$Pĕ(Šhpq-;+Zgr\"D Etό@jʟ>}7%B{ cz=0d5*F!˾dHbol{CJ1S{ :9}Dm%okJW=`GdEaHd ]MzCB<cQG.a Gظ-bp [Q4 v8Y<(X0 hNtq9ӕrXJRn1Qr-\CUE&yIRG@*D4)/_p\ dG1,!" yr& !K 6h Ijd (tXDls !UIK=K+UsB0ᆗy!2?>HIgAn($ )MCGc%%H# CGm둟yA:j= ]6k_nXEB8AbJ42%h5HҒ"D|R-(6BYzQ'I,I\Ə{ἐL"h yk]rxB"2XFM F1&$ZjmI{FrY!m"}pUH;NDU/GgO嗐\)!tX1x>Cn%ȇ bZ֏:g}qVz -./ $M~ Id)  qKk!@!4!:8#RGԱ!ڲ\_\hhxn\z޲,٧@۔3D¦M[ A`KG(qUG er =d{oQ"gFL8l["WխB@o1e4beG_(Ȥ4ha2aGU<@7 E!⿐'{t,0z;J!!3Bf2#dFȌ!3Bf2#dFȌ!3Bf a|O/fPcmRe6oR;1RuDe~'?ma3$39M0n{+#I63s;EaW/oKEJHţWKzzj3F &N|rX r@x=OR|ʻoj¥%q>h", ", ", ", ", Atm)k5/hNW@vՄ>N%$ DȹaDX@aDX׶Fh$$xC D ŦR5 * CH" $%HcBbUwb=miZ h*?d I@֔.ֹ̃֙ZSӹgZYY}'Lk΢!+WTLނіlXNt5@pm{2X QABدY RT'[;elSJҒ.6PSdz鲾hw2 i֐BZwDU>mTz_=!@aDX@aXɒԧh aK۹4 B=-G lnDQ 3`ɏ 01A` c 01A` Vi%#k gJ-V%%0}_i˫|uO.'|I%mIENDB`assets/img/forms/marriage_gift_registration.png000064400000016135147600120010016045 0ustar00PNG  IHDRC?PLTE%%%ַwww@@@\\\̿333ټNNNiii @@``00PP1 tRNS߯`pP]݌ IDATx0 M Jz-hpl&~k_pf8Kk^K cO⚃܇²@b 01A` c 01A` c 01A` c 0y5]A ? !$ mM)ړI hr1}\L 뀄6h2Ș~)HԢxkrsͽkmiLZZo*:/M3"ݗD.rt9Y's&vWf~Rn{Ğ;:=$ɱ!ْ6<;\kxfyHJul@0zH4PB9K%">Qk$vZيNc}' މ tQdtK !k@>([k+A' d2 *VuM<׊=ߴ\`7.\+brUW\hd5 5^T*P(?ԸCVc_@KP+akL EiV(Onh@sU.5A6aTU[ ib;7IX MARQ֑ZB"ƹ,H4ov}b(9)/w. v#&6Fw/[VfC1uI8++e }О -Np~%v_ 1rALvT3O9Q*B(h:jF*0-9e0{ úv.v/tSkQW8ң΂'_%?ˀPМ[&HY6ZE䩀KQm$ UBE!iR9T %[Ur f8zzAϓ\ݴ  `RV$lN ve) Xny*ު o9'DߦOqj?nSX}ʊqB/:UQmO@C z o7 Vv;!EnU6FÃ9:HzB.ӡfG@e @fC*YD!32h9 $TBvDet!Mk2-zֺZd&0`^*~$^5؛]+WHDž֒ԸN!\3MZoD:2k(3wQaH2 鴆pݐJs9gZ[](ZU5@O2dc0moyv\p>z '{Z I˴{SKQpJdDG(r I u9(oS Hg@L*bŤof䖉M.o ,NIz _ec߲`RjP17eDyI]@_ϙ6]}ãs)^OvA=>  o&\%79|R 4u|bJ ?{dEͼGaz]b6 yP߫@0x9}\L r1}\L ٍ#pD x UL~t5iӕ50c@Of@>}dvđtߘç.t3>`llg4v41U1ЏceFɘtcwQ[ɿ${p!a E)Ye>R΁,O ϓNIw*8źF6ݱԣ݂XO aHdv5q e샕О) ^ջlDɛ{yI4Y@EIpbRF05RmMH9y(/@F?BS Ȯ 5΀j{ ;U7"BХ]cՐ{7ֆvVI6Z=y$h7f2iH@ 5MSH*(ѕRQ4suρ$k0]X =d8bQIz"[e@ A`pCn9 ܏UX/ $yl@fבFE#uycli;Ҙ[ Rj9#ׅJ͵yุe UI>ssSXBljA9p wKTz\j Gm=[R@x 4IX7wuU GEz"Gct=hsщHaSg}i2(؇;?0@4U❤/cC&Tk2Bl3uU"b&ۻ+ fۯG{ NIYDx- pUdoK! ^r~)28i[ez_Qgo zqdP|Jm'" iPv$N%@$hp 8򧄞6^6xx1/RSJ}nQ _۱) AlBe?45܅Z%Kjos#? '^/ hceYD$ye`c%rK z\\G/ˁӔj9Rkh͖ CV錗H^{PӲtQ N#kf4ЛBm*2d)oZO`Y=e j~Zap?~dޅZ {K9.D<{<R߽=\txa ,|}V@0suԧ/o ̾d[OcG)4#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ;wa ~CST1,0ҩ0 %GdxS$`N*tLҕ͸[HQ$$ʵj!(NJ@nR "%OD^&+xK+ȦUM@tCǮnTB?}{7@VQ r_#D,HNpAVhD AD AD AD̏ 퍰Q-` J = b" vh 0p**4* $FAb$FAb$FAb$FAb97RA hcJގrOcgkGAb$FAb$FAb$FAb$FAnXuhY*F0]kKP]2T"!. AA29zԁO8 II!`of q/XmLug*3NÉAJ^5;i}a@ʈ T9N,i;&QV8á: #ݰ .9VJ. ':䍳[E'X- 8ۀ{OzDq8 0Noi@B]~Dަs(9( 2? >.#}:&LciQ +sYRJA z@@F^2"nɔV& Jz=8ξA&ADy`7 +epcx U 3Nċ)@h I((A0ԛ\r49y\/קaO {wl DAL1dw_eр%.Zk7F?kgXq1v2NAZ$FAb$FAb$FAb$FAb$FA hcʕ<4~Ab$FAb$F/{t,0z;J!3Bf2#dFȌ!3Bf2#dFȌ!3Bf޹8QY^ ƒ0&xЁд˱AvClRb)d| y2 BI˘HC|x}!5/8$ewax:<_n٘T{r=@GȈRMσBzz} Y BD<(Uq!b3? i@j@* .0d6" 9P_i1q>^Bi.>;Q1,%ղJ!4LwJNH Wuc7=f!!4NXI:j08'v6C^!X|LaucĄxlr#5BZ we!I8 IBVQ$}q0!=XgѢ cm2-YS!Ts}r.X1!aT'e!\GbC"}h,QF/,$usmSq~$ė,9>uz[TκcK-^n@ ,9ؕp,"*MJ[i#{ Hs"|^2\1@cX1@cX1@jkww(n>o_an^dd`@R I$@T@R I$@T@R{e }ZfD;Qh3֦b, b, b, b, b, b, b, b?lߚEHq~|{CMyI+HmYN_`xC%p{@ݼ O6пl>9G-tyc$>DiRϻ_w>| ͛q\ !߃HC Rbr*u6߂=}ͫ<->p9?\wꙫDּ@KI4E5Cւ zl*Іd}bYUY!Lٗeťh'@ݼ[: E3WZt;m . <;9~X(𲬲G7۹>G== p>ӏ >>~pc:^:鋬#(ѕ5i!I?{=noYwKO:l'G9RctfeVٟu. e.ǓDRszϴ؀@MY_Aҥsas=9{{NIUIʛ2yNÎ!@Jafes5+#At |D=DH$HUV@N!S@*q .Tqy@Tn9/z G@; /Z u$8Un7մR }\΁,[(?e޽0H5 ky)a kAM)YBg@BU?z,QgZ 웝LC9cH-"_/ u@h 1sq;@4GK;s{z .&uq;uTb, b, b'l'V\ü7^_7+܍}k.y4m^ H* @ H* @ Iwt;dkʼnr3vfb5̋McX1@cX1@cX1@cX1@cX1@cX1@cgur D1'a&K(Z01A` c 01A` c@Zz g/ђ%e+A\y\%-#m3Yn":IENDB`assets/img/forms/order_bump_form.png000064400000020635147600120010013634 0ustar00PNG  IHDRC?/PLTE<%%%j׷ @@@￿򟟟```Ἴ\\\wwwpppmǻːOOOŅT000HНܶ333ˑ簾AAAתyajjjE*v°l꙾ռ} tRNS߯`pPϔ`= IDATx0 d ZؿlkDMtG+S/ɕB| }y ,D $X,P c 01A` c 01A` c 01A` caό(O4tB G@F;QnM< N9'61s F]Hct!B9 뜣gY8[Tr} 33fC_ Go3!Slg&Df{!1zK̋clsMt`|k%eUSrk,V3L,ȇxԹ="fA$ǁݺkHS_v_bqH  zl'@S@FafACDBc'ĚW7m?rsy"@Dnj$ 3F!"oY ,#^A,ǰؔvAz]9Q>K̩]2X/Z{g&㻧_()T`)X  `)X  `)X '  QSl>vvn>tۣũ[ rlr?ԛ-+KAR,KAR,KAR,KAR,KAzyyPshqRo(W|7v }ٺ,KAR,KAR,KAR_r { i1#ncfYYzRu0Y"!B i.1B i.1x"dU,}]!?/DÓg 53! ^e}*υ4~<B yHl1g? c2eRd` էđg鐉Ȼ#i3, &YFpFґnxgʸu02p^,4F"P<"7+yn,wLvDe r U,n(툝ȇ09aNզp6c|vp7TV2HmS( ^&DGN&*r’/ #jhd戡4uM . U4s&e-)7bf\_3߲& 0 r8b5jBIDbE HnL_KmYD" ÝQBhTLVs$)#:W-Sp,5jO!)rPF}PDQN\r@=X˅q8JQh`?_饛> zh  WH|*d p0y Bi<%}ɏ YK$A! I"&!#?BbpTe Br !2|`"1i-oHHl~BzNE1vd) 6%?#m{/Dha-QPLACD%Z. HD|2!3y: ^sRX-1h*i:6ͫB<kV+1,1 QiHr&`VP1)ME! %jO+ 7òwosbvyUy $iL.сX\pSi% !w\X" y:SS}|cL #B^Ûl{uFIѩ>]G8>HsO|7V4? i.1/ń]Hct!х4F]Hct!х4F]Hct!х4?bM~UH\=Hʑ}|ޙC t2cW6gWiLN>%50 4R\H^eg36^!yf$RXDeMis!bgEXZ/$ceT +g~}w_~ cGu&s%iްa*Bhԝ7>,+ %uޕW.ݜ`;\MFl분ȝ0X]y \`cMV^R J9ٕS,+DLA7o$lxo^a<~cκIF@~tL*DF[`uhG,|tɻ aG1->e@3 y&?s!9V X考$t˚ Gs$dPf~<`3.Ke{V'Y>ُ8a$'d_sr Icb.W$< NޕT3- !D0_}gɯ1uk?3`Ny b!cH޲\4nJ[\&S !2 炔3c'%: )9e0(g¿t%T0uڜfՠY&29B7GcF9P/G>DȿbBu~zst!х4F]Hct!х4F]Hct!х4F]Hct!х4F]Hc|c a0|A,̔>{FBC|W Е 7Djzd8l8Q0 bHX;@}%L"4y c ɊCw8CK*JZǺ-jf[`:B9Rd@6gA%Y(PT'/|\Ҽow[@!*)Hd8 I0!Rʞ%09D5?_ '}a «[>J,F(|XG[ D@Gr^ɿ2 J !?)/UV %v@D1dB6"lH |C2iboDugekɏud:{,+My=LJ?v~4,+y]?o ƫ[5 J#y$f dUJ'u/9'T HeT HeT HeT HeT HeT HeŮ =TtT)CTWQj5ȩ) dFAXAX c 01A` c 01A` cn =}(Gn{iJg_0A` c 0th0 0yN`Ch30ЯA` c 01A` c 01_VCA dHEsau(6+XlѤ E$$0`@Nh$vW! BW!o yy$ˮSWw21 .LMB.x{޲{f\GB2##>BPBo6>BJ$:s%Lj=:4B::LŃ :AiV|7T(Zҍv9m&d<B>YmVݺǜgkxм!Utdo59VPB>]8YtjZ3Kknp;\[J'z<>B^&6g!rR#lP!^%8j-d=<23-kXg#Z9S}F4>C>h>~*ce@F(ݶ-K9=vFab" tVכ`V3 4_jB̈hdgy"LCDC#3@C YHHt7: vSRQuP!1lwFFMg_If#V:B kB̈%daVc,Ks's !߾!tnbÕR4} )Sz :2B{B&Ao궅huϥk!H 6A4,uA+iFY,$`GLb ``eL#WH[ nԕU\p[i_֧qB3$Pr\lq_bV҇xt_;Xt_8hN45y#thck^Gд:pAIԂPPBW @-jhö#E>kF1D}4`/en_ k2)e#iklhYѴB;H(] _Ia c 01A` c 01͞ `/(Hk^`-YӎU0!`M9p вGťbdEzN.]ZSmn#ZWy CE/KLTQS| ='~E*!#BOp~2%AGrqCGqiF$i61 g DhȬ]M24"PAkApq:m ;.eOg2 Hﺷ` H@._\Մf _::ʂ|"*NS2dmҿOs!Q=;RT@: . w_@Xߜ RSl>ɘ@ztq4M ]ů7$4BRGWG;"ȁNo@b] :ԏwL Pb-{ unЮyA 1FQ; L"[ˎ&QY/CTuԜ[Bȥ*5UF0@\(iaʢAd dOs AF8)BEhtB^cB/7u2nu_(t(0@Ab 4iU}p%ޯٹ?)d)ŏB,* F2CVMyTT/M!85@2'^lF+  [ f 2nl $Qӷeܤ6iàж nvr& Tc%9wR)LaIFL ϲfL@FAt* J7J2tm:$P+@z[euW:y5᫓g[cX1@c1❹zHz-7cb, b, ~['7@CH4 HH~-b 01A` c 01A` Vi%2FKJ3QE@F^8V>W; oߝvIENDB`assets/img/forms/product_order_form.png000064400000024022147600120010014343 0ustar00PNG  IHDRC?PLTE%%%\\\@@@www333AAANNN֟jˮiiijjj׭Ѧ``7~[[[EEu&tpp00Rfq tRNS`pPϪ<&IDATxջ @$All_Ϡ;/b0EGrfP620I25F!Yd6=hBZ,顯 qAlù;ـFK%[vs {ě\ [Đ-߯ $'..Њ9o$*pOq$&ĖfT9o ,zb'_ ʡ8vyC$z*,VR ^a+d2 cJN%YC֪&ֱ\aL/Zœ !U(}̘V6M߅ 3? oE@dZLHᤝ$ճDSİDQ~4JsBZC~8|5#hw\=lq}!|DFDJkFtEaX-{,%l\MZ򌜠. ID B-dbG0NK&tr٠ib2M9q2{nNt`ǎi2J8/N{!(` -CZ: _+8a!ѧ.cS,1-vB k!ihy}OV,T4ю" 6^/Ua)tEѨCxe ` ]q/M_J7ٱ`B$w7r%Jgs,P *ЧI 2^ 1FPZvk--@R4‡zYB" K]y@,`%DA! Y]({X9Df!)}.'R[Fp8v$;wz 78\[)HC+[ I(xZ=f^Re L !,mȧ @3bB sJA6EO}GH?',!%|-aӑaHa 8myH͜N ad)4$OڟeB YB8JtB+Nhg": /D:96!\JOݲiJ>bl&u/= -DG"">dqHȀqsDFK0fP!ڻA V]!pc!9XAfUڹ/#,dryv#C+4n-B@ZzZHQ( m}b,P>u1b8 xi<ơRTB$\M0ՕFB4B.`R,h.y^w~΅pJҫA^wȁrˢ)pRyA K>\v\PKZsaYb7_g8KH9%ˌ7עCeRP̆3S-~P7dGɶ4K=nOډq-$7gK> _B,.@k;_BJ9c x!NrZHn!~7O 9 7P퍃Ą$BrqN^/BVv8>h4C9 1V2B8ɼYegLVݗhTuo, nDpu=I ;د2ȹv Bn!m_YR' *d:Y4MGZMН̑/mJn>K !_ hB*b!]`t -ɡvhB* &2hB* &2hB* &2hB* &2hB* &2!8Oiܹ`UY>s6Q@~8` F-ٖCB ='mؙLpViCYQ"din7s,D5j1K-tD48ቿ{(nOXQ 1qmð Vr(n#(3JE; Qqbrv]F`M0S%4-y`:jB]CL%i(aneC N'q2!>?%}0:"1.BJs%dK€ I 28c:gI9MUDDϧn+#fNĥn aƑfp(lQfg'[! secԻШ{u ZMDu.kD>;ȨsB#`` GYOqOXWón OYtQ_W~l{#-r #NЫPPUHaT!QFRUHaT!QFRUHaT!QFRUHaT!QFRUHaT!QFRUHa*\7q^7vmq^p< {70[y ƊDžB'tI|;^ȇ lt5 8g]Tx9L x[9 8i af 0ڝa[ _Z4].n"OL+TbW$ עO@w`-9\&$fnB:tKٝOµ{?zA9r5rFN-BL@a!1ӫO/Y{?8ȉq[mBZeB0p dFZ@0cyH]c:E.P+B%{#aNznbq RM}|Z sE& {!KTB BU؉ ԀL ԀL ԀL ԀL ԀL ԀL ԀL ԀL δDˑh{sOȧTZ=;h)G4H  ~$?= #- Bx8\>~A@WW{ DˣF< |_v Qb@&0k@yj/$Q#4"`H -)  Xu(aHx`cr<i*@hZpd$m w&1tSK 4@dl$y` rƫ4y^SpAXE` Qqrd~xd*s"LQfPeN.@1}\,5ĕ-ATK<"n-߼@hH,RF"16_ುRDp"B9'UU˄"qbVzKZHº)]hG@ة8N^O|} SVV IU z TSbM$g28@L(F"ʺVsD)X3g@x]r\,Y shuנ 7 aq;X9n^;d=uA I`DtP%X$+ 9$Ag]z>sj:H!](:a\}uu<k گ嚅<道z"&//Fկ`عO\C04s>ȶF]6u(:=nٲY=#" 0{n nf3z/<_0IRbzq l>K%^@hZpe_0t^>L ԀL ԀL ԀL ԀL -@=rZW3^yHI׀l|fxHI6i;'XڛXe8{I@tdal: Y@naWr`ܪʶq fjs:ڒkSg\V,CTq篁Զu?9e/놞 ;G YTY\ڥk d%oi^}k HN6>͙ N4oyV޽oݛ@Tev ^6rL͉7@} 'r{ d4"rf.q/srB?ۘNaMxٽBFGh-\Pن̭ ^@;=NR7@̲^~O+yu:xwmYwv߫!]|I>>vpqeGcí&k<3n-ow#o6\J^b _iP35'59N ԀL ԀL ԀL ԀL?ٵc&6]]x0!$; ע=GA +sa HsD ÚC-C1C1C1C1C1C1C13 K"HdM HaIAd|8cx =U$cA1C1C1C1$m'(|p6IЦ@Ų}#T8 @vtٙ ;dg:L3@vtٙ ;dg:L&6:+KVz7+*'MMKvO@`Gj~Wa~q]%%$z?VayyZG ,چ?N&t@mX9M(A6:^DF-|b3>I*PlCV J_գgwP+9\z1=ZdIg8"h?d kXT>YOA['cNai9d>JBy8z%5qfdbQnH'YB:۝yH?m(# Hȧ jopy1zFaGVPm,B< ?RX!8eT>OD|5]n 亮MH81FΖo\!Q؋EA8(  (p$E/J捆T+LB9Hކ4Nb_1 0h.`^2d&qs֠ R AǵUe16!H\!6@dy8:uGZB=cMvXwc,n"3*6$`ȸ\BN+gͶq IWzvĩLʸ[C oar~QRע=uٙ ;7nqOh f}("IisQ2ೝN{|ٙ ;dg:L3k@|6?ZĶcK;{%Ƽ\`j;拪ـ,7Syvz`^f;N/W*㿝Y6b7KU"H_K [Hr٪D-t2W Ğs2;6'5*u(NViXmpWq1kuN+X֫@N1}bG>{s9yVsO-9?N"}QX#ɫlX덁.lnWubQ[1brC*>c^V, ńRj.2^[6+v$<,ƈѥrXj.z4th6wQCAdIĬi# %/:u% &NBX#q0)oС?wj9ϫYND, d[rH7ܵCj1MN #77\ $G)6/pvYh N^=PAXYs#+B|ڥ U@"8=~P3 7@$*K#@f&;A ӓhW[ ̀+Y 9*Xc>rSPkz/!]:a] A/<3%+i Tԓ7F@VhgT\y '3\T)L=F> @AiF@t)9y`{rit>Q-kB)Z!^D öW /@[wTϦrxY$:6M)h44Q)cs]~pQǬ(pԫ<&+R/y}z ;~K/1e7R G_7:@m?uٙ ;dg:L3@vtٙ ;ov hMlh_e^ +-|0q" b~ɨ{hQ/ÊmX1Ҝ5Q ǰD AD AD AD AD AD AD AD AČ1RY=nXw$m),psoD AD AD AḐ:KD_l 01A` c 01A`J -rf+K %K=UXXKW^X|ɯ؎da1zZIENDB`assets/img/forms/newsletter_form.png000064400000014517147600120010013674 0ustar00PNG  IHDRC?PLTE;%%%|||@@@ތ\\\333www沲ŕT ❀iiiNNNۄ`Gο鶟l@ސpxP`0橐T ""°KK```0$ tRNS`pP%;IDATx0 Z؛ױVS~\}IšZXJ{d><-rXZJ(1A` c 01A` c 01A` c 01A` c=:o=Ќ!3Bf2#dFȌ!3Bf2#dFȌ!3Bb va(> 6lQl-%o3U).$`%ø|H;($ާ9GB6IY9QK$Ѕ1 <0­#ib{96dWBdZi Y[nrs\h[S7~eDBB '|.X҇G L5\ q8<5QLɬǜ3,Z ib˪IC$PVUfDVv!0@.Ϥ@B2?Im!GpAA(N<0!o A1`bK!"z!$:1?*LMF x kBb:[!z !xD#5ZTHu^.3JܐvZ1+#)]s_CE[{ՌCbޫCv`[!8{v`Q/ !%9%(pE(?َ{kl=PƉ |Дxsu=`+p+WWc$tI&g Mem|@MNd fL >tt@hGc8@)6EpJ J!チv7d;uOv_v=X,jiN .,xϻy 'R%Ն(w)@Z6eI۵y{i ՀTے}N])>;`rmr8n ' dL7r2@Nt9n ' d:)|O-y9t}/$y:R^ 73wwhcGs34ȳy\s; TGI K'8C]!z3>Sޢς7W&΀݀,&iƀ^ME&[ փ : 3jJB,Cvv#~$v- t(z !e)ЮΡSBFf cfH-g pӲLU|ےrQ}C,lJbAkϢEUGRT5b*u7 ;cxQ dH/dgaU)bo/y}y+I*)=t8d}K @tD0C(#hJe!7H%ċ}?¯aRױ=+ e0Ee4ϐ Xf%?D2u7Cևu@?O @q~̂7ˠܬ2Jd2 E#ńʐvui9ITQxTRU]|J}ߏ Ez#q}d #-ps3GJ#ZƏS7 HYnSCZ"oMXڋ9< }Zt`Xu#7~qI>\D]j3- `V2< lL7_j0_`.4h@Ƚ`O˾;u~۴5)>Ҍm} 9$1tCHg !1tCHg !1tCHg !1tCHg !1tƥ6k N 7Fp6Zig5O"f"+`@opAsLcRHEZ,ោ _ ffxA.%*r' ma!,R: GtfmD`BRVtS6!GP+ UI&B s-$oA+sq!mx΢C :>vn`L{m'H`<i".}*UW.4RxKhk4[(W&+aWBL$/)u)لdqf"l:LIAD[18Cr8Z R :ybE\*.y 5صR]V|QޤJriX|(x`ɋ/ ϩ/݄$1!@dB2.RJZh"s͖8`BR(l Kp-( &8穧ĈBb_HfYh@B : )wTA 0!aGGlsUc:OUBXq1!YR TA)9`s!s4BĥST'mA.dC`N`YHY3(.jwI@,B (n/`SO qo%*6i3b$Ē oܰIg/B q8b"cMo˝'$VoH1b1+!WB[eZa[) |ïˆ5 Y"n 8tL5eR!EKQχ1 G I 1#(|>z||x8Ax!o{;c!3B:c!3o.@H2Hh@x!Wph͠rB J2(C0!aBÄ  2&d0L`0! !\| T_@9 ek̎KӜ5n\yyp ^s!R6R6H JSa:#NmSM%TM~>Ш#/̺V%O-f׶$P,Z'wG)8ӢEt*%Li$;-Nbvbv(x1n3!RS-'m8}xIb!'nѳ, DR_;rݕv.Tr7!Jv1tB& 0BZ(W! ) D')M4QhۃİsE/qAG-g;!72Tr9 h0 Ѷ=m!zD0{tBUȮ}HrMLrQ> yy!˹h叠 ]%G_BJb2GCGCޒm 85d䓆; /PwrTiKuB1^ߧBͻC{#W!ur'oB |3 YQ#N/2EZ5| fEY #W!&SڔPm]gjyAd R2?>2&d0L`0!aBÄ  2&d0L`ѱ i(f2#dFȌ!3Bf2#dFȌ!3Bfe8 /-|UgC KJ[c;c`  ٞ?Fx!;!dg<쌇3Bvm!F p-\Br Vq Ui+ףлp[HC#Iiq0A4rXgMs3ml?ŤR"OpKJ%"ELݵVۇr[HϥS/2! BX|>{wBx_*cX4ۀr20 qLT‚Gr@T vp8&M%zVbPk"D[%Ѫ-~[o CT]QzP@!B` )G#lp` 2y*EH](.xl\x [`AmZHâH 1ӒAH: ;$H!a;z-Ӑ|)txFs۳Q\Lصa 70 1(xE' :D[P9|mSySC=8qf ,[22 !ۇd_UAzeփL6w DE$*x_z1]zEhRZf .BklOSRj\S5˖?6|WL}s([PEA"X `,E/@5}y\..ϻD{w1Hwy YABV!AZ iEABV!AZ iEABVp t] r~F>/_[ڋr"ڡv>ü|:EA"X `,EA"X `,EA"X `,EA"XgKIi*ꓰ-@+yi?{w0 QTAh"(d~-h&(w8ߠ!c,|m*#.nl1}B\m̹kR0f __2 5/kf\4?h$vEZx /6{6HvZRgϞKVžAJŕ If%}>;A.Cvl/ w?cfiy0$>!!!!!L m$n/?/OhYd2߄ gP AD AD AD AD AD AD AD AD ADAH8W⠜6ևC1C1C1C1C1C1C1C1C1C1C1fV0{8d%*h&B.dԴt:)C-翉.A ͛ oY f)GהS[,DDAj/,a R+tt(d,p R]>+xL a8Ny 2ރH;L R Xg859n]>#W).Wqp C V\2@]MIHR3ZxN0@2O)*<vsh+/s!Y#}qDރtl2Ԭ@/ʗ 6{Z@p\ars;Z!k)*HP~R1@l NWd\ϏiE/aG ->,}a|_uc.gfyB 7pB[&  ļpț7e-Q)k(l ujX'MlUCb[:UG)V}Q 2|@8JARG)X fߎihpR, TY85.ϑ w;2} 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1| 0П],B|k 01A` c 01A` Vi%#k gJ-V%%0}_i˧ul^=0IENDB`assets/img/forms/birthday_invitation_party.png000064400000012633147600120010015743 0ustar00PNG  IHDRC?PLTE%%%䒒www\\\333@@@럟AAAȅNNNiiijjjշ꾿OOO 88``*1 tRNS`pPϪ<YIDATx0 ;ۅ%D4浯6k_䵔 <Ɩ5weM/~,A` c 01A` c 01A` c 01A` cfva( ^kmL2,h#M`I<2]@*2]@*2]@*2]@*2]@*2I2}LC} KnculL>h-ѡET4")^րGZK)p##s,t{b7֊x#R'!/ D58߭#"@ِOQ :4p-fvvLeo@Z;"8qEP!xAL~å)/FNvɴ{vyNuH w! vMkZeuqٰJ@gx0u3>;IT2)K`2y4`g+ c (?)u1gwz:@[`Y"b\MT1(CHb P^)=YAHH9h?LnFuP̏z`H_* AwgZJ6aK@H[Թh1¾1B38` 9(%lfD@ÖSJ`N<hV5ǔlb1{HXK BYxX74̡47xM=lNyLYTrcBL<\~1 ;@aZyT^"QC,k7%SL 1)%a)lΥ@:lWt8./VEf'tH#%N&.@JI@ 7ϹjJ ja}FI@s dŠ@!62l{P.&º1~ q=eFmW@xIk e0 bDN~a YP!W-<5E96z o@P~Hihg +0r8+b~(iKsV@la"`%wc@8k$.Stdn0-ܼAb\<'Aв-AJPqy|iϟuFjV$"t@Q eѯ,Z#=44p bklM_PL_ܮVwb LKslOu+ S % 16T " 'd[A jQ32to6 Nb莞Ԣjf8_N-ԆZCL~7 @e`9GU |)# !f1CBb3! !f~}"* R5Y|3PC2@Ƚ1Cݬ Da3țY#@e @sWь&u$_{ɉ"kVE a0 A0 ` a0 A0b䗣f91|PnrGI{=aoA0 ` a0 A0 ` a0 A0 ` a0 A0 ` $EF^h KVD$,KdAfX6Hgjۺ%&Mm̺&2*ϞA,t+"RzmhevygSP=3vAc:h#S̝/7gYAfa $R=cFRu$s\T={NdfIJ."{]y[~i_F9A6ȇ ^1DeUWϐ>,L2yj!HN b)L>9׫˰ g~ݗ,HˋOoYWjlDd^5pc;#A0 ` a0 A0r|_tw?9ǒE-\p#\ a0 A0 ` a0 A0 ` pтNЂv>(d7Ap⣤ؽ ` a0 A0 ` a0 A0 ` a0 A0 ` a0 A|w._l ։*r{f螭rՊA:lyuv]R׃$ ֊6O4zouæ}幵 l5g./(q㇃tj'"nf}˝ .E⸣i{y/YBU D "I_ s9PRey!eCFWt9< *aO.߾f!G9.dr 7s*̔~W[ ZT i)òh W:"V%nRڻBF݅,8VkTA%eݾCLPB1 8Bٮ xׅ:? k&K ςFS_N€ƕc 0 rCbP\7.>1z-.G`;uRa4(TPr) n92ꮐ -5? 3'l y3ݏ3kʞS$G!6C}.w/_w1aalA$| H 'Θ!.'B=V :WYR! Ĩ{Bvj]!ggz!HGKB !.$+6C 9^ϐ!9 G YVg 鳐3=xu#iŤAB'!Vlxfњa{c)'-5lʱUH2smwjuYzq8HehAƎIie'!X-a/a}JN;N1-x`DK?N7/U$8'VL^\ J}ĈC3? :;ҤCǘ]O>eH2yVokO9 Zk[qB_4:/C_g@ 4v* m,,Lf!!!!! `T{(ؿba( 1Djzqb b" K|]ɮFQ/t J/Sxwe R 5!Ҽoܾb]x^wR&*$&0f߅VV\'Bj-+(IEUu\2P -$faWr:$^3sIMQHC5V ?0 &Y{IK]XK5kt!b{oF8:7B.Fq{- $8a!|ܕgTIOazD=:@Կ5#$FH!1Bb#$FH!1Bb#$FHڭa ? 4K(Z1A` c 01A` c@ZF V9FK0z汖 a_teIENDB`assets/img/forms/payment_donation_form.png000064400000020317147600120010015043 0ustar00PNG  IHDRC?PLTE%%%@@@jے\\\www꼼333栠NNNiiiȄ 5}⽽@@``00}K`OOOo&t&sPPappϡ tRNS߯`pPϔ`=`IDATx0 d ZؿlkDMtG+S/ɕB| }y ,D $X,P c 01A` c 01A` c 01A` calzބa|9:R")!w6۬kߑ}0._!e%d5!8pBȌ+BX[+hd8@|0稐t K{>sn9#;K/WibDU} g+$j> RJ|%BApιWSg$%>ߌ`~oiH%rYd>#j.Hm"(f8ռLqt RBd6E5t1D+Dx+R Kq9D큪h!> Q#茁nNǹ{~,B#{' Up>)QIK)K@~ѫ 7Vmd'!uoRl-2:6.ӗ ,eH=T`ݟ A^Tİ I1o.YvBe$[SR?x2sAqq\L38Μ9m怅6*lƎ`MYJ1*dؿId)"=2Oan:\溏I.yn\3n6zA&"a6S RGNEޠv!L)|%@=2 vEy }?mwF0!7=;s5mb#iY'%WBLVڅx^>*K!(  )1LbX4X~*j87?lbKYlv!3A2]B"Bl>zPy υ*1זJ\yKO5!t΅ng}#dLAD.v!bܟv[1R=C7Bhɹ*+!Sj]HGQeBv[ U )~";I=0i|#=U;Y:q@I)sZ(C!},$DN^ KBzNH4c}|'ĥ<$z6cp*S\OB@+!7K-\_E.}#dn;Il䇀 4 CouPE-bau+}ӠB2fBHپY\:>~ിi,F^ 9}a R )*0¨B )*0¨B )*0¨B )*0¨B )B1NxPك#p_HK74AC_ifvK /B9vaȋxzb*dF9.|~|9?Zk=.eEBzMICs 2`haƯ4N1Mz9_L._J={b>"n (LZOGiL@khN!d=zg~>ALB F L{m; Y.~;_+e2)^kQ~nB&4UcX7L7%kh76F <&m[nBhqeғ12_$tw|yeS!%gǐ;euh>Hן!:&"ث$$x"b u]P6MKryO`Ybh)WQ U')9'= WOUtK۳^ AC3Y!c#Rs ˧i<5BzBS( )u0$o?YxḼDuVcRHC=ib!A ħ6pPHsleVPe3ɋkhO+wSEbPBC`/4=`BrlGДPHU' Ǥn Yrɜ4ւ %,A`};{ 9WUpv[}o$Wb"H % d " Y"H % d " Y"Hdt}odjV>U= j{a%,A`=n8b0i`Y mڤmbw=֜MUNbCOLRhHCCCCCCCCCCCCCCCCCCCCCCCCCCu!,$1طɜԍ9EøL7xOy:83I>=՜/Bef {r>ְ_>=~ٜ76 B`a ɐ??>ҡ e⹄5YV!D3S <XSHڲƅLbE3P/~{IH˖뜝/5.AɱڡSAv)}!6}iֽ[1 cC\6fOqS=T/su$ִ4!2Es)fv989j[gt}4TP!P!P!P!P!P!P!P!P!P!xB|;Ļ2Woo=ÛK`!ݥ;D_yda&xiQ!*DLBT B2 Q!*d BT*D)T Q!SBP!*d?D=Xȍ^zECE9cn?HwWl-" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 12nn4u xٿ">!rW[hgEXf z+=@"ˬmfq~<8@u 4"iiF,W)ɛW_,OBz(P ,)%_x;a?N)?e,TB &+0"$`"4 XV&}ϡJF8D]aw4wˡ~[ aWn*q*)|XRBq*$?Kp~,o>CKzpBy JK:Kj K3INRG8h`%|_HUY;S˵9S"ܧ l,f%!FZPó%ª&4#Bf49'KZ3B!!̮A pO V#ezeO!!fhHOm$T f&-' @ M/8A;  Q)MJ혏 ` `'b@mb>fg߲\A^q"< fO cOC 7bxVYG HE< @"K>h_\2^@wtC) ȓ+Ǖ-ѵ$E,ndxI\0T            9ަa( s";f)R+b\8Bcy$ =g6Yf,B2cXd"$3!ɌEHf)[Wb9MrDNhU}\'MsoqJn|8*Ƅ7=t8ϷW.2;s֮+b-YFc|:3;L` a1 b؛Å\f3sDghR2+-"B1x5z.7Mǔ?KwpyLWxGDFriv:.L&XDKD@`B>D w>{?ާBHz(8{Y<BGT)ݧF*B>N@BXլ <t@C]Aй Tme]{t"ULW TRikECǭt`t:#1` VN[vm XXMWfmt3cB~7_w 1 J<nl!HB%Nk,9&8P1vyg.RewJi/āꅤKP<>豌HQ,=65g1TL`%2]Vkm_XDX&(Q7B<$ܖ,+(GaX=쾲wSLzq]JYB+P> 152L Tr1(ByS{< )&ʰ2B8 ) EЭӡVT -0Nr KVKN8' ~x-uJxi@LZ(dE(en `bPK5Bt)A8-PzHH7\pQe "'(o6N@L,[͂+zm!yɚ"!LPbC\Ҙ71'퐐Ռ;0e6521;?> BPZ +i@)2]q! tܹ^ w[Oi ;2b1a+vFycݰ7uHb3nyir%ީ^#p"npGSXG^K#>wՅq*վ{+.1U@)CxO>gƘp_|ڽ{+8-7j7: yUJ\|_Ϳ~zcWOd"$3!ɌEHf,B2cXd"$3!ɌEHfdAz2ڊBAe);8RiW`9 W#&F dő:N(s"M |DsGMm(T;Bx1ʜȍZ!XM dSuP K&ZySxMVFxdVd $++4}} N t0Lil| 렒CÒn5\5vTkJ::H$Dڲۗ`m"X0\s 0 s&dD1}iyK$􈹋lĚi91 >V˺LR$FAb$FAb$FAb$FAb$FAb$FAb$FAbG2#dFȌ!3Bf2#dFȌ!3Bf2#dFH̘ݎ -o Uqe(P[umL 0$S;}J/YbH:5cbз`'D^& $cglDފN[Ys5 ֜>$2rA }H/qB7X;r)/OZSz HJӱ@9EC+ܨsn?xIQwswaÈbgv'{z;cL@\Ȳpun{IS58W=BuAZ+@V?/sxrbHg|c,-uҨ Oҹu> R0! _ r Sf ڞ Oe~ZU: Ys)fX Ŵ19UĢ} G)@OMPW`E'W1+ytzU95IeBܢ8G^sKJo˼E?QAw]W3.$ D<ǎJ;zH*ւ][ڈhRm4k\Z٘f#UZ :ݱZJx)bAKBkJޑ4ux語6 # ⌴γ(0 Udi0XX͢@P4C)3|B[ahs}YMP, حlSڊѺu4\\N 5v 8/& nN\4}ųY2_x{cJy Hf#~|;B2AZQ<C'nÛIUg{F\3d6 vO6.ꅖ< bU0lQ!VeB c&WUH#V6 \y%V"hGB{E3=Yw|c*ECM  P‹C 諀u䮺;A@+=7a{שπCZJY6gF[3Í$};f RpyGs8-@4˞ҡ!+wH9Xn !cRW6π{H;GMn!nj!pǝ/E`PI3' 5PGi{B|(3 #`R2 D<GR,je]NQLvz>591oYgX/e9 /7O!0|`B_{g8DAIZ(#I-JxA(] =T,.ǖң+5P/YqF"0lˌ=G՟O;Sߜv dcځlL;i1@6ƴ٘v dcځlL;i1@6@jTbw0˦wazDw,S<{;4I L{]~Eq|V y{ .ߧb30?Vx~܇3&eK)\HNՌbHU ˔䨛+x]5q^N1'8foP- }.8,lā.MX2X:S]gj(zH eGt*aA}ӘZgDaڸ\ADs-SOj?qܐzey$`Fn 5tRHC#tRyZw i|"yLo'Wr-Җzϳf2)&3qvr7nsM>3d .je} Qxm.<]ѻCZƪ. Dd0 vم7 SZ 6t vidT)@:H]< inSq>+ H.THR Ȥe\߮y\& Q-c0 @|chv1yʆc\ёs͵oBLk }@ˑ5[1yS5b @P f@*3ddv%"M@ 2gs =3զk *bQhJK l$Q ^ɶg DvT}NUY黀$2 Szqj?Zu*{0DX $p&oF= ٥c] K fi>.2#\̎$EA%d|ӟ~$@`BsPqp8@ܢ@0iz3<"\9ٵ.eZMhVx6 yRwIDXH8kj%-R"~bҡ$R ΰb 74xqa ֒*ݺYZX{*?0]ZuCdcǁbdcځlL;I ϙOfz DQ` .@P;@>S9ITUl $ bВ0gɌ!Vy$3X/=G0Y|A/'qj"Q 5!QA"JI+D.6 xrjX$%(rM,0(zSn*uZQ78J7 [+R.^@2z2YFNLf dN6 N[,G2X@iS\JZ^P+)UST6b/ѓ`iʤt.:K5aFZP#5I.jlql-(ޫ:.m*6۴!~E6<7oFZRuWռSWYE^#|y$5Ʀl-R`҃-7 Nu +W_$fgLgK ],@P 3 a>bߕ'O˝ܱy d:!7gU8# uAO8#,u@Z.6( A5 Cpnӧpn R!a}cc!0c!0cGȹ),I!ۏQ9͐Zu a)CX 1ƐǮ@Bֿ<$ÓYc$FAb$FAb$FAb$F "dڀzQdoS4[ 1#H 1#H 1#H 1#H 1ˎ E+(ߊY%,7e,N •фTFRMHe4!фTFRMHe4!фTFRMHe#_E!~4nuʣ_R\3,ѯ`)h\E'Z=!.H٪ SD 1TBF-\KvBb> UJ΅hUH1|2Bm}0)UQCJZ/BTǃղ bJLg9`֙b2u74v&ٓc~4v?Ɖ~ef跒9Ʈ"iU Oڅ yBCa''c]t"d̆Y:E+ ` \ 5e!+xF9-żtVXc\5)!n: Ř[!^d#ې'e1`~ɻXO@!jhk+3:cԥz!N:p'_Cz. o{..ԗ|Cw8+L%`GJA5w?!&ZhB* &20 Q' '`&^ s #HA:e<.9Acs>.{K?b$FAb$FAb$FAb$FAb$n$dmuCCq˚FAb$FAbyG2#dFȌ!3Bf2#dFȌ!3Bf2#dFL읱n#!n B ۝f@rW&_ 3|bb/Ə/Ə/Ə/%!xod17N|+م 3>%86[ $@oÎ$&{p\"ܡ)W81!W0!+ ٞFC$%uRҘM"# =2"hVȬ3ļk)duQCd]j%܉BwLJ(ѷGw%ǺS'*kxVX(XKɜB2&]^e )I\B`CHcK `#'wzWZHe1;I9kgDKH[bO I#GB,xKH ղ\E5tߣ%ı%&!X^K%dDx-8jEkNj{IjI,m@ Q,AEo!1[vi܈ B)7X:ՅlYBNҏQg`rB" 9XqR7 uQA;(̛<1w!N(ގ2 tq!^bU+[V)y EbyBo9(fCzȼ9}s_,#_1ӌnGAb$FAb$FAb.wY@0U{l7n] -$FAb$FAb$FAb$FAb$Fw3 m@Xm+ysܰ>˾l#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1 0ПM%_ 01A` c 01A` c@Zz ,죄ђm Fb}6Uҡ4NIENDB`assets/img/forms/partnership_application_form.png000064400000017256147600120010016425 0ustar00PNG  IHDRC?PLTEuuy%%%\\\@@@333AAAỻNNNiiiDzц}}ݗ$$@@~~``~~PPu tRNSx`PPCkIDATx0 M_/ (!:赠7VK~Z}IBϫ <ƞ5Yg@N?KK 01A` c 01A` c 01A` c 01A` rG2#dFȌ!3Bf2#dFȌ!3Bf2#dFHˎ0 E?@R 6ldV?xٱkmf:y,3L|3}S i7:d|~^,sGQ2g4etΛSB3"D :Ļ8xSVᜳG94$hE!l(`ޠ@Qsg g, sdz?(Σl|sٷ@ت0O4>D dH6g)=p{jFDi 0nkf[KKֶx۲ DE!"1 OZD2:SаpÆl rRuufIj&F(ozYs%ֲMTe PCVmYJ_IĞM,?2X-@O1a-^@Zvtb|m@`@F_Vi57[eHZ :dI)3//]'admiHv;LyދM-߰]H-ev2xzYYk~) L%lGk/ O.Yfcoŀ*. \;$ܘGٹI_va}/[#b_EGqxŹd,.t&X8;7>x$ȏO/@.U2Ӥ!ݰj!=9b*ŝYYF=?ykp =XP螁 dyw(hS 鱺l#|  Ԑ!f%V"wmD 5,ٸSb%yfa[pPX#w(ǖ[5㮞=ҔeWn.D d! fQ/Mx #7y^6~Wi Xo^?뒐up!T"M|*Y(Re !I:bMc L!b>gw&)KB"8Wq'B80.3!h|: )3Ca 8B;_ B8S!%Сu}dB0n]&$uPLd&C x7\VjMPBl@PB k+jM@%}(YuKBv+inQ\9Va!D$ㆉ>(]kpW{h*Uu;յB:Duv@` &VfV#2) @Ld  S@ʁ\k{[r/Je?h H,  H,  H,  H,  H, rwn;N@Gb[*R'.- 6ԙih` ޴2;Bi$͸ ;,騍%`xM!?v@Y.z1!G<(k!@#D0-CcV!`ss'MS*)B3m Fv;{o.ƨ WnnQy0#vB'A,ȻY'HL l;^' agwTNv!sD;$Dm.CG։#F #@tN<0Ò#@O[`A҅EE׺ԟy,26zBjL7 :20̷̛S[cN3z)hGڍD㟅s u۬"e)v!B8yD1V y.Y \3M,ϓ*YɌ\1!:d<4s/=.Usm-Tk1Rt-eߋ@ndSkz ^.$zgnҽ@ ;p DE"A ߛ>]vdq&c6!dnhkPڬU.rY/%-*V<~B͙Ȯ]a&_OI^nkf" [IЄQ>.=THYoR ^+DazӐ_T"C4Bp ɥ)e/B8'D[+ }zGiBR@tc'!`r:3+B&TXQyBE޶cR"~#^0H%0D1*dB'ȒꗜU-Y8[roo^z31<=&.4H@di ^Ȑy(Բ-KHH";RV{"#Bڦ 0t~ڴ9oBµӶX6dVnNb X GB0돛&y (l\HلSegeݫq h/ H>MoXDD6^զ6!$b Oh\J@D0BX "v/ȴuNGra'8-D姫X22o1_ELÀY~?ގG+ ?@:HR) !TT߃ Sx9!DQ1F9o]!b auNjtޑMԄO3}ɍ0|w{%lc'_h0?!LGHrEVK<@na0K@% f Y,a0K@% fHn@,:  //@4a01-o$Oe=޴@EYC ^ѧǑϣxF t*jLj N}wjO玫/ <@4)`~M߇S a^cxWC nޏ<=Ӵx;eێEWME d"mF?-楌cTrm{ {!h+=,r6!`tӄ4F<(ujp[و (W/1OZL~}}0±|9uݩ(n H87i $ V*]!m %m l1 j$ђ 7@S[ArXDa gO6-/W }dK{ kR  zvDd|Vz6 dPvtiIa.b1z$ ̓2~H@^=!J~)da$5m A*;2#R]=14~دA>>:Gmq8, rhOzA!Xk+*+=.(R%D_4j߈zGv@O9/I>(ǫ ҅u/$Hf2:N#s50K@% f Y,a0K@% f Y,a0K@% f Y,a0K@% ? @¦0%_ >$01A` c 01A` c@Zf J/[ %9J#ѳ8#{^ i_,7 x۟IENDB`assets/img/forms/charity_dinner_party_form.png000064400000014251147600120010015714 0ustar00PNG  IHDRC? PLTE%%%\\\jޒwww333@@@AAA໻NNNiiijjj 5}}`K&s||00o``KK[[[4=> tRNS`pP%;AIDATxսn a=& !GPu[ƊI,Qq(Gy&W)fyfiv+-nI Sl $&[BhrDV{].[@0* BFA(! dQ2 BFA(! dQ2 BFA(! dy^ſuyh&!48!%k=B1|~<͛AۋTB];<EqK[=HkozAku:hJ0[51s96Lzd3a~5a V|HXJmVf C:Hl3b)"*5ot~D< g+İx*ў\K_4*' --.&P̯dI5ek  "vU\5ʀsBh<^gFAtd;g}TVf.)RR>s zRDA.r6 Sbh`2U "!iz"ei@R z M #_/;\u#!HN}Ă"NnY ۽y!h盛iʨRi~ H2 fu%^pSG@4T/ȕ.N6܀uK q2Lq΀ j$fQvpA me HDo0̀pp uL[ݴO ~a7yȡHQUvi 4g 'Z HklJ<}-y#AelK C]zQ<v$O5{vBD_ҏ| ^@",@<?e[Oc)9s!C0`9s!C0`9s&`m/~ E lprZڞnߤ[u [ vfFd7!{B)̀{Thflwn*;DxҲ`[T͈+d1biG{l`xZ YhG82]ۅd<} qr:]O\+/H"WB>~yç'`  }FGPK/ErRa :rȤwc;~R|-X8.B Q+M )af 8oۅ83 lӱ3 tpqR`^:"aBὮL)_K8c4Ȩ&C$+j B#s)&d .B?0.ܲlX,3tp=k,G|<=`7Bh Pzܲz$(B.&瑘Cڜ"E%d=!9!HXQ7K䈧@C!oe-&\8 B$,d6!\s- eleڂ2<>az]EHOS!ʭ!Pz!-jBIHU/xZ9L@EnZW * -ae=%ք`S!=|}8zZ=kBq־: v`Ű @Osݙ:P%[UH{!nԅD"$ IKFow)̢- ($yS(v ۳CQ̔s~c?v˚bujMkjϗGΔ*DT˃R2IIs.!:R^PFi!KH{s.IcE*$ miHlUȚHV!ۉQUѻ8 Mwvc>cy&=:: ZWK@DP+ LbuJȽrd kNYHEDv~"2ժ?yÕZ:;㼐PXO[ekDB2S2Mϐ[!5qa=m!wEBB8u_H EBZBoxNHH?`YHȻ- HZW<>sO#$?AOX0 w{g]?wJ)xm8T0T0T0T0T0T0T0T0T0T03SkO!}>ޢP!ݱ 0vl p@  + @  + @|r ɯ=wʍ_{cx@b$X@b$X@b$X@b$٤ Q%-$ha`zO,҉cp2G8`j 4 ݅4F]Hct!х4F]Hct!х4F]Hct!х4ƅjʎXY*>ͬpkJ44- =>Lu hp]0Qwk!! d Ai!:\"Bn\G?πs%d+gߎBt~92zY T35YrdE} Q!)ThLE&D-d_"SF2ļɳ($ gcRyL&Z}Xyχs&YŸÎJwJ;2&TVw*/Y&~3鿞UK,3B< |z E'B@| ,-RQ"\X_J#L`ͩP;ɌIBB֢ooȥ!$T˫D2$t"DolBjv3nΥLFɓ2Lp.D}l I.@^tpR' O Y5};gD`wa٪QH4Û_21]9Pvݩu_myZ!BA]VXBp-$O\M1-nIɼ gWL!ڄ';"4a![vp6>v!+ԭ0n ePj-ԽrƉܗS[d2x*TS@E|&~ QBF; G|?";794G]Hct!х4gv U A"'EL ǂ-kZJh r~O)))))))))))̷l>[|d[*~В$ ]eюy|T ;gĈ` "!X/+HD kLH*T ] EUHMA4:Y#6C}? Y\q<בWh0֪{XMV&Cf#Ny3mT IA3R 'zkp@ GbB% 91F'_293)R!1mpQJN#{A?r5dxD:f3{\ڧ4!>;T; ?驗Srַzxݐz R0U#;V _EtHByYr9jfvw7Bk98C]rmne:IeEW*  %vêR$O;l0#TX3j AtDDYiX * ElI""H˳rJIٹYM,w ANHYz3H&3 %+E.AK0+R/%yaD䄿,add :E~q.2"x$AڰXr̒2"e8,,P+B00"юr,Lį{k[A/9*Sd_ߴe3^ 9qAAgqAAgqAAg䋽3Xq ~;>8`,C!!zF3mvY0蠯ha* &2hB* &2hB* &2hB*㽐8w3>å}V!3#uqo{'Ħ,6̑>}8:> 0$x=B,3M2c FWF%g ӾfM9 M יazG 6Ϛ^rWB %{p 9Ep)gZ8%,Md= 1pIXdCN t3X9 m!@w #$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bbk^N $Kj ] "$inf7fb fyirdz9sj;u_A A AČRHR iZ$i &&US¨50,Ʌ&ʼofM^IENDB`assets/img/forms/blank.png000064400000005073147600120010011541 0ustar00PNG  IHDRC?PLTEْCDFEFHJJKPPQ  <=?678 "XXZtuvmnoijk&')ʱ]tRNS`I .IDATx1 à=o6rI#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FHأcAQ 2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3_*Aw.${펮Iu` =h{A Ƃ `, Ƃ `, Ƃ `, 7cW[>"[{Pa =3/&Mö63ʹSi{. d"!]nsӚ)%鞑&)Te= 2GusNtي;zfW):… `, #ȣoyio!HHqzaR[+~3h1&i睊= !3mup΢ ` a0 A0 `ԂAVUߗ^ogG/Hn S$6[ѣd}H`-z)+A*a0 A>~ H1= JqE^܀468 A0 ` iC( vA#۵"ງ{i~1UCu;i1uGiykq ћ փzH/x 7E"z'#zNl\3T0ȭ yT0ȭ {C [Jݒp:B:zZM`=D^*VӆTA A5УznІ Ed/5+)"OC$ᱸ67 2ax7z/ӡñi8NVrrrM1A]wjA$:d԰_ )2?:iَ!Gr,cM* !q%?Ct>2*⋧|jYyL7C <5+H⺂j# -  V̶`aCV'{CyYݜuyY8s39T0ȭ yT0ȭ y/ +pn^"݀Q7wDld0s^,kNr2;}|I;4?AP~hA[&-т h AZA0 ` a0ZA dWi.zxG c*z􂤸A9 y}2O uu"b  `$d:A" ֢G/5i,zT yLnj䠻Sι>a0 A0 ` a0 A0 cT)Az;U \)ğAdv3Ah^Sy@IFŸA?H/ QD27Q41}AzDK(/ "Ad3QCADrQs B A0ݽj0FI ώBCi=,2 _R]}ZCV9ٖ!A3 cW^mKϭS)y͹sܞO]|ĹBBb#99ro}cطRIZ 1um@_w c 01A` c 01A` c 01A` c 01A` c 01A` c 01A` c 01A` c 01A` c 01{tH0ȿט #$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb)&DHGĎZA#$FH!1Bb#$FH!1BblRBJv!%GH"$?=IENDB`assets/img/forms/it_service_request_form.png000064400000017263147600120010015405 0ustar00PNG  IHDRC?PLTE%%%\\\䲲wwwj@@@333AAANNNjjjiii &s5}cc@@}Po00`PP= tRNS߯`pP@IDATx0 MJz-hp&߹k_gK[^K L⚃r@b 01A` c 01A` c 01A` c 0f6 C @MdXd=PAm"!˚V'yXT,JB6.dcB6.dcB6.dcB6.dcB6.dcB6ƷkG;/蜳Իw`u0f֑%ws_c:n9P7 O_}.Nd6#d\0T]Z!0O*8Q^,9/[$;Qr}/_Xj}i>60Hok'? e¯Ƣ.l&%Wh̑rgQb ڂxÅ^f6\9if9_Kʙ4r%_ď>uA{l}_u & }˄^:BcOan tY堰K+HF֘R#s[H1DwL^8 qG4 R8';t8D"P `Y =9:Qu~pC%\ؤ02ǔ,>B,Տ1[HY h4k>E˽=td(&pH{־;1Gl̿!|i/?YOYXЊWmvt.vv/a Jٞ7! I F.ӱo>F 7Ƃ'ēۄr }`!! zYh|7f% #EB]5PF%$5[,-!(o8S \+]˻<\ |4&仴KffQ}Kv% k^k#7B{ԉ@<O4!5"feτ A\~ A*t&]cTϐJϏEXHy!窻kDtBVT3悱=!c+б.ܮRCL >"|Ȼ3 ȹf9\94OJG^ȶNmz/"jzdďLՁ 33HdPN}(J ],y % AӒ_z:!/7_ AH.hkTT!k^8.f];3'ԻfBvXb|t-]M]bpȃkLB场'G撝K:󄵦X \ؤq>=7l3mѬ^/ C5#*B6.dc^WRB6.dcd[OcG)$dFȌ!3Bf2#dFȌ!3Bf2#dFȌ3Ua ?Yi&&dni-}h=!U~ 63#B^2n nadd7.>vxp!+T\ t3a7Ͳ\T#p[}]w 7嶐 ׭3?*dgl"fN!゙?]_ݵ"6AH=QX`(M5a!ud1Qv\Jy-:'Qtz`⃒a9Pt^&Rӱ N.&&   ,Dw$K gpN is~GtN9 !^ٗ^Oy^wb9 `# 齁U\/!M*[cՌw篸<=*ċWa %a= q6:#ݔGO)/&Bfۄs~9,kٞh5 ]Mz4w6Gr& ~2R\3!xڄ+= <Ǧ'3a?BzK!6ѫ2B"p->N 8g($GMH$EBz[q>Ma*BlӲrRRCUHJ+b &$H ~&c~\505`]H=*=ݶ3U!Aq~*B~Uttx4{ ֻ.$ g!gUHSa'~80(&D>k*Ao;!35O S~bt&d<5E*-Ӕ-M-q*jiWe&$LJRҩ&ZGS- =`aʼz!\sqKՈMH!u![DZ{Hnޢ*v׍GROoz tHzu` A( IZrkR >KX %,A` KX { [] ot] Zns-ԗ 9@XAUOi+ n 9q ypLn"))]"I96c{M .x%ޔ r|T6/|{9G\ǁ+s{Df'̾hK)/UH*p k.צMd2Q's "Ӽ(0d<|=d sUr)1=;'A*m3FUk; 2aPĨtMW8"!r^w~%1F= Iήġ !6$ %H-5PŊ-Р`JwߚE.HCnuFu.D\ْ)d><I4oEhm[4g dO34H+>w qLlV6uCr9Dsg"3)BLo^d {e&n^HgExPn!ͦƖe-l^yhmK\sz~>Qj\ Iqˤo!Ho:u=q=|(ܲ7yA7D;?n2 qeʤqB$(PN|M>0C&qԱ2@F@5gbGq\OZa:NǏ߿mG΃Ъ 8:c%(DqvΣLT,LϐKܤ9AyCZ8rme]B^@mB=Il{ȋqy} <!r'@7΍ZJ.]Pʢ:nє\]֯ ᨋb%HxX@"TH(6O!jN H49q%_i?P+ g&A QbP*( Y{ib#wS>8 =Qs<Ro9 q J)m2x1A`  t>Xʣ+{Ydcx ,n1A` c 01A` c 01A`^ 2:A9-r}LA` c 01A` c 01A` c 01A` c 01A` c 01zzo*2?#mݪ&4--oT[ RC"CF4]*cvMe)5-߯ë6݋]2At(6pd_ݍA/vnq 8͝0AE Jpfvvg禊tllb7zIQވ:Z춞:O6Ԁ%T{1c2 Erlǭ݋)`6IlXB_HyHD {+b,ke<+2Bx`@UC;M cY>{Iǰ,K"S52sz!P @"z~{B"ʈC <L! e8g/.v~L5oM7笥g r os:`Qcq MDƇŒU@dR-"œj<哟ď[WW6Sq2߮*נuz _@RA?|rM&BϽDZ/r>f!g$[ E;@84k0seRWҏ#z #9k^rj60u\uc8bz*3T5 ]zH]+@Q7x9|  !4Khvcw@uHoY)֎ pvNHJ֞=:FA 0|"B,B`ۥzꖋA`` a0 A0 ` a0 A0 `:,\ &v .$Y}Ėn{$]cQ=1NAWg3nV-)F]AB/mL!$_dlvir-S.KmS9=M[V=@MOO= I"ȭX-#c<2D_KI9V ia{C5/C!dk(/V9]SAB9v%ۗEj_ڡR Ji=KtKo%&J Bc VBa˺D9sn(΄yRLh4Z9-v%_J@J!!t*IkcіKltJI*v3* 4X ^*XHbYXǙT*`2?ڐ1A42|HSK*a!^oqsA/J'D?;:؁Ve?5a'QkZplτBԄeeYMN#4%Jx-[4Hrvc8ī3!(x*YwrV;tJB#bn\\Tl.S!vk-pcWVwT{i0QD/K! Ǘ3BrgByiNBTV)_2L*U}+shՌ>.+B P?ì2+0؞+{>F[HRBSSFKlT!Jn #\2;USo2ڔ*Q?j9ula^@4WTX \7eZ!^*QX0'DҡܪV"7 EDD2X. ; ADUB_ {u<=0 > 9xRh ɏ=D15 LJF𘒜>]{+$ w5W[1%R1SLI W u1ܘfgXҰ^#JxwX_V v%X}8BqWiGê-'ܻO_`!;[۰IN9  FRs!C0`9s!C0`9sL 0П-e%_ 01A` c 01A` c@Zz g/̥ђ%ZJk^X|FɯZgn'& 7;IENDB`assets/img/forms/business_loan_application_form.png000064400000012775147600120010016733 0ustar00PNG  IHDRC?PLTE%%%@@@䲲www ۀ222\\\Ǽ```充iiiNNNpppPPP @@bb00PP tRNS߈`pPϥrGIDATx@AB&.Ttm<轭߹7,E:8Ay~9c!/e)#H 1#H 1#H 1#H 1#H 1#H 1#H 1|1]7a v?ҘeY#{crkn\Zʩ8;ocBƸ4-1n!q i[HcBƸ4-1n!q i[Hc4*?OB֎pc %\磓bfy-$": g`DDbEF O| *SAp[Ȏ^}!!*7B(F_*ye#8SRW4#.DѼ;AŌ Eo4~ U/Ĭﴊ=WH3-\N<>T]ݜcsYR%jwQ! qpȘ\B,noլEpX?V'PS2U$$XIH5JjTȂ ob] +Q7nS[CFCf}M.)x\FƸ(^g$<Ơ+'䤵x]ȫA` _.^VJ6h9P=r*V O|mYWAjĀ~Ŋ7^Vzry`YV»tso]WڲGUEȔgʰREGY٭@.ī|44oxIWͼ 7!QEI.ˊ e"v'!k,D1y+V1;[2P^A12|;S檅JZ{,֛r񳅬VL>F%%w[U q"[!)!z# 鳅P{r,$r]i@\r/d]3,\߄Qߐ>LHM.RU`.Ot=o?ߢ˛[Ov < 'mm 11=9 #H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H =3Y\@F a {Em B-2ClAIŸ Y4 >HVQόB]G،xOU3 5x<bavCP<-vq{8L|XϨ\<@g5Z\أB&kW y}<RH SȋOϷGwBDW?*d2d ]T!VI|d0ޑS>׋xw^~ZYE:.MwtKeΉ2#2&Cb y/SؑBLjMyb "m`2:kE/~xB< %PˆJcA48AEN i9| # ^&z֙,ĬB`Jʓq:e) ค-"J_R$\ 8,A]!X{Bs(B6 @+'1;e  c( +4W.!.d($Rʉ!#*_YgX[w8BJqmBtEoBLwc 9h#=N;J/$GK䋐H4p# ~kq>,aB9LHdrM!nDA!Ji AS!=B{8_08D_-~P[B02j_#CB XM!h<6׮ ))Hқ9M!-成Q{B1, [fA6pTߛ9 ݪ7  ]T+H2A rKQ0|cHyaEl@U+U*v&t8T]@Cqx&i(R (, K)(R (,%ݳ[jOys"Q'oIazDX ",KA Ra)DX ",KA Ra)DX ",KA Ra)DX ",KA 3Sf3=\y;亄%kP/p\O,3D~z;R{>5rCqV^s9QA~|zէOJu&E6 B}`|_pZJ 9<m-Hⶉ4xHrf_28s)wǀ0J5A:6hDXCF@S >fbhkj Ua}CHOs3j+׶L]>G_8 h_@yfxd[;:Aw!q@\9zjv;ama1dbc\_@`g  ,=aSڷ5Oyj!Jm7X/q؄_PKA Ra)DX ",KA zτ0!o[jwFt/n}%+|de (, K)(R (, K)(R ˽0{v] \i5on}z_$D93x?WOKA Ra)DX ",KA Ra)DX ",KA Ra)DX ",KA Ra)DX6` ;B[ i<yj-uy0 AxЂrHu}ɖi֯.EA"X `,EA"X `,EA"X `,EA~[/'QC|ԑ*`9-d 01A` c 01A`J -rf/ђ%[/A" =lG>cWm+ h myIENDB`assets/img/forms/directory_information_form.png000064400000016052147600120010016105 0ustar00PNG  IHDRC? PLTE%%%䒒\\\wwwj޷333@@@AAANNN˻ȟiiiׄꠠ5} }`K&sϽFFo``00[[[  tRNS߯`pPIDATx0 MJz-hp&߹k_gK[^K L⚃r@b 01A` c 01A` c 01A` c 0f#' XQLD!^@HO3NjZ@ҡj0#ɰ7r1@.tn  b\L7O **uȣ` =(ƼLin U gkHaeC9}pTUU} \·,2U`Tq -WQzM //rx;cTqM s.*_2Nf*HE8SǁTa $4#D WSCEHs#T$& g+;`G`Hak$TUɃR޼ A"%S L `O;:^š#V#-)}6a'?x'8 DFd>YlB#tQK.c^B[@B9 {2q$L *ש:gQ;%o`$ETH O|d:)N^:<&Q&e kҙ@iV &ZXxأe!\7W>v HB J9:ʲҧX@6Sajي(a8񥤨V0Jof!.{Uo@Re-u&ugIݺst̢H(jd+P=dX߀4ey R9Z=HXʫy65v i@m 0My Hk*WH*+AO>Cl2SٺdjH'yr-S@,s\Ʀ|xF̏>N* )Ԉu"!-K:ct fOQE\M_tQ !>]A Lm8xG YQ"__^k7ȴ[ Zͥemǒe)7.ST'wB=!G*9&<`Z!V*S5`HNe\Hfb# tB#Q_Ysp1x0;9NϮ|=M*D+kОCDM[Bic*Iq ++LBr'LBs!a4BԻzk R:!fWE 1LB-K#t Ԗ!pAem,2lM@۰fةf 3v+ӂTL R2-HeZʼ'Hʽ_W_s h;4P'Ȑ~]DT#!NU@k qq_ AͿPH2h ́F&ѓ$J]u.*Nɵi=rOyyw ōTǕc| nֱ$ ?T&=IayXVre\zDKd[ ["qFl)tPJ>^s8ċ?O,σ@FTe$zY08ʾtc JR;ܸ@O(p[y.8ၤmbJ0+Q~0M=Zʴ iA*ӂTL R2-HeZʴ yGO_?4AUoK";; h "ǒX%7i#H 1#H 1#H 1#H 1#H 1AE*kt3rKcubJ:nΘ#H 1#H 1#H 1G(AEP4=.f&mb$P vP fb fb fb fb fb fb fb fb fAF^TU:E瓭G?̃D*~h/}ݛ&|fxƵbA]0p8H" ы SBh3)_f2z`-ܬS!KvVQРBBf =ޡ=S6%m4jy/KgkdNa$fQR`+W xuxLK}y\P~>%T p s[K%€AkU 7yqsk^^]z 㸶&,*>όk(](6ҺV>S sр #m=؝l?y!Ȳ; pšZ+^>#O塳T{ذ&> 8e&L,{LW"WGơ+PS`bu~o[7 E2; NpBHdBcӿCvگ^ zBIa gk~ 3웢g!ӴpO!mPl{vmEl]G%'8^UJR:7n0}MH0n؝:ݛ €q-tJWZ!υ :?e2cKT,%>[}(2!'8#DEN%Y JaHr~Y> 1ڭ@[BE% lw*v"2V>IId<K`Z g!3Ô?2{ee(wԖb;22Bf(=z N s 5XNϗ_9? !Dt_+=7\0BQ#*&-ȼ !1$6.0RԄIԶd_ml…o&c`A>ޮי6f $<ȧ>Gt}|R⦖A&S=|XÒJFbѦyp"Z YuHc:xb @%%Hf'?E2RJIzSn5zSՏ@=6 ?¬eF4by.6n<礉f-m fAFX!܊>W6-P 2 MeaZϮTFcL Ic/5Ҙ #C-M"tL02b޲\gQƒf%zȕblR+,V4KUɊ/Sbٯ=wڬP+BL"K"3cVL]  EIhكq8 OΎ?]'3I $A a0Hb$1 I $A ϧ]OOpAn$ƒw^0&{)|1\|P5Avs~=GGx !;""[ʝj#"K&N zsȭ]H)W.D*k^H7h26 3w@|◧S &e`^B(Ɯ+'OC1PNF8Rw hNN2m~5m@4CMU(΋Ez (GDXiO@ G 0,F\r c3zZN'ٓ#̀>Hoe+DHQ7#Fќ$_#^yvx 28s&Q Ēȗ Ce i(ʅf Kk5Ha!\b#HTI-v @@G{OCn|ZA/$}TQ YK/Ȧ R?⡎lgD/x [!2*)|;و%^-AM +GAmf?mL6@*L|:C-5 9UK@:* '4mz {gHOW^y qמtD pnmdT#N QH`J&nΛZBU ȷ@fG@T?9q?T^7A4R- \nsهCDj _\gCRZ:|]%-=Fn24U@VTpkA?ʑkA?G~Wbr-q@6ƴ٘v dcځlL;i1@6ƴ٘v dcځlL3a( W9IsRE, mdԥG89M^ciYvΥ$B cR؅.0v! )BJta[:,l^TRGRSB;R%#^`5ͲM9 Fy@]!ǁ\!rrB!_?\;Zn 1}dprE{$B^9yǵr!,+3nG k#-dIbA?zmH^˞L~,>:Gv\!"ߥi`#211#^BUB  CFSKP=0 1dB[̭b+Kh(rev bFDh7IvԆy ɺV| -F iIoy2Ў} 0>#éFB?873yS!%cǐe5+: Qt:R1)1^߲ȼ" IH’؍a%Yt"~oY= -LMNZt2aǖ,bT$G!cW!Z4Fzlt[l,d..FxF$WЋqYȑZi_@hFNgG!sVMX#\1 @FlZҗșMԸ+Uc}N:2"_!Fx"߯?ItEI_=Znz!&+-YRם 1אN]O8Nn^ HެKy!ih c`*$o?:Y8$;"S*+Ɖߡ}X)%[1O!?1=nYlYrL+A1q(y!P$=X)DFH?j0$Qg"l^)dž Ecqzj0 L:5:+dqOf!uen~u|dUqB cR؅.0v! )]HaB cR!뇅R!=(G~ yZ| .AѼ],vl0 AHEfKc&u[ @2) @Ld  S@ @r ;:}6۾.!b<}I}Xl*L4 L.`!NV$d1a 6B,C@Ց$ /Bt'ħTaHE-EHIb;>,DRFE$!b)eB&"-W$6!Z&,*!eH*]/Ei%BrvK!nd슐\Tu Q[&cX䨙|`$AԢʹ("H1G!%ݴHD̀>W!Hݧ,Ic7" #d3D p>6S}$G' 1L8 j%-fAo:"X 5AQL,N ADgYq 7y7\>/7mFakfkYqAEgYe[Oc)9s!C0`9s!C0`9sLAn0Eov ΂ U>I3TT'-P%} ?)j)G ߓBb)BzӣD#>Gy,dN)pM$ OsH@R_>"$#A!#U|D=W .d<'ʐ$;J&"*ddώeR4[.dv oS\J&ѲSlb?~% HQU>6sB1L4  RsBt!G9-4eEت5@%DN"'ϩ ۬X\ rrVkPӜ}/N৶2G@վtn/TD^y`~Pk&n MV d zɊ$@p/RA #b]n},SVx3V44WPc-̈́) JujV4S+tFjҗ];#B8O#UDFnI#͡PS0B Yǧ\)N 9JBe/%$%ěNuI7F PDŽtm! /J y&d*&X1,;0! cC21W~BJW{dduc6⦐/wBҺ wbge}*^J~VeCBZ}tGz 9/#cW2e#2? 0q-DKJ!O矧oZH*Ҕj׊@jc* F*6$ ea!-M,-4cXؔBӄFd3!,de.\ 1 n#?%gT[ȑ,A~?UZ21>6ڰ_0 C鑹2L($uf!CSMmؒ !ȔB2z, I~R)IE!ssr>ZX BJQI Bj^8WQȐj ~ a;z-|\/%!hyuCH9=1E!h3q>DPTkkeZf)K.4%!a-Mˏ1~y}DJ)$sg7Th>"]n L*$tSHPa#vӛgY$̭IZM!I#CJuCm/Y}\jkS_ܝP&!hEH*m!U>IGA!rZy7ѣgBrklHM#5He }I,$3!75 wr]eVk< -? =j=Gb*R&0LHa0!aB Ä ) R&0B۷C|yC X>}~~Z<·gn!_^{K_r'&Ą5L 1!kbB0!&ĄaBL YÄ 1!&d bBL&Ą5hBʾC|{Cvuј0!aB Ä ) R&0LHa0!aB Ä ) R&0LHaOwPRٟ-EgS) NtfB>~]2!B uq _tH"gGb =)3t!!؄= $)s1%+\y:#2]f|FXɄ>ܺ~.Bef ,D˜d.β5BSXdF0}0yS8/BO!S$@z2gdt]Ǖ)$+9IZ Q95)50?@z<dptFCH,$SRC7cB a@Mr.˺J{pfPBd)zVg¸O!(+YHSfnTtqB̟ aܯͷbݯt Hma"&kjQSxP㎅G$YAzYW]i6x<̶IS;~! {ǯ yuO0kU N/ L@25O^sd2_b ("!Sw>}{g\q5qc&_4tFU қ?Ξ!rW[.W=#(j5:P؄](\?ÿ^BBUH@L-~e٣E4t@kQ UсsD&5&j*Z*ҋ nj~x5l BBM95Xۺ԰+5PHڂbJcIVi @Fv jcf_'h;KXB".[M`u$?+MC`c1iLmi(E ʰg0,JJE"Jy kw!3ʡL4ejh ęHBSCO 26sQ!hʍ0KTU_Q ѰT )HûXRhyLhX"Ĉ=ewb3v6N@PGi2%@!^נ?Bcɓuݯ&L S&B 8Nd弦<8dc319sq(KȪ5$G=j5$bbl{ L~TDD'FL2&a "hgT/rtȵti.&\e:]i) zFɚeı,*_UYǍ:BY-)AIthex7S@(6BTc NPNSYANt T'er-r #QX"Y lY) ̅ΧMc|nSWo.zL 9JzaQN&,ijNѧ2hȃ=,:8D!8%%zVUGXFwCFy{1XGUUPcȠ @U"h섉q vǎY78\!{(d`B(d`. {ppދ%Bn m[;4q`Q Q8L!޿||ʧ;RȋW<;%(ѕW4ֱ5$+QȜWz<jN&3КQȜ+K@)4l!< VB< =Zl}y^Ӱ$lBd|~!B$K@[vi9[t mI B`iQe @s@j8CHg7)Q$C s!/s$^HsRXD͞g%$$@KUILP^yHB>],({+xf`RT B'C$8. R&X$!Z_S9M-0ҿ+%!N)eͰFH@$0&NKiyv35eQv!M (е 65 Lumy[e8u.3I:e0BKާSM̹2Fr;%*Ĭ;eѫVpԔUF(e|]JdS" ťee !ѡ%rh{!hi"62B>Ux QwHaJ&]}Q1KLYNKG[X!D+t^6B2*s} hǹ>a dRt[5!*!(]Ȳ({XsRDdBf贕'DΖ5ɘiHD.9 4hȕU؄=ZzlL*|Bn; ~Ca~qrXQiۅ֥6p|51z`B(d`B(d`B(d`B(d`B([r EA&/ %89-f` c 01A` c 0I+ȑҳ/%d+aLg *!yu`&jcݓݳIENDB`assets/img/forms/handicap_parking_request_form.png000064400000017743147600120010016536 0ustar00PNG  IHDRC?PLTE%%%ַj䒒\\\www333@@@AAANNNiiiǮㅅȄ5}&t""DKK``o١ tRNS`pP%;IDATx0 Z؛ױVS~\}IšZXJ{d><-rXZJ(1A` c 01A` c 01A` c 01A` c]ۑ THAza:m-6f=SEQ9. 'dLr2]@N t9. 'dLr2]@NqݝvO䡵VݧKIL}D59OI!<6t2B8tYkRS_Ma}XJj4)cWܝs@Bt\J@ :쾧'$K@HI:.X[}+&=2Ҽ[~P2DƹU^&q,t1-3%ٽ6KD s1jBo';X~ڛgl)|t0O3dq(ɹ+Rbt̍U7/@C!Ky-X_i { ~F [b.N$yb}Y:ԥ)BɽKu+_Pl,B6274H$fՁs$@L$GA 04q{tʴƆנ1 ?I 7nEcLz` #,lj "@bkB)P!z D  B6[bdwK ,̩@DMS}Ӥ>]AmdJ`{ma 3YĦ!e jRuSxZLEC@pvܦӯRd6P&F`dHI;J>e~} tfaBz`B^Ȭ^5(:ĝ|[h  o0dN/XC`1f) @#2B` xFzy*}{/= 6*xT3TK@ Zk o`W_Ǭ;̮Hi ۭVa.߯uS FR48 s_ + |Xvp{Hf av0n7u-6/B6Gylx YB}~5k & g`8n3-e  _yHCk%jrʂ̓#i{MmCKG(<0(ұ?\;kW[@DvV,n(n{KH^"8^&A8=6g`yӘY5>U←V@OYFQ- @$҉+b@߬/:TqU(o̸duA}IiJ)]Rr%?d {sfURV.*SKRqa}Ҿy|T'b> {}j vp0 @L;"` Y 8n>H}ƩAN0ܾϢAb$FAb$FAbY `Wn#H 1#H 1#H 1#H 1#H 1#H 1/a "0c nֲv@ &șCd| y2<_B/!Ou!V%6 Z|07ٱFx qXDCaF -n7l]-%@'4/hgR|[[.߭*dD|"GF!osu);?r;v @* B}'{|:b~c-Q"/ٳSdLJt&`RÝm ގ0v;p#*tXxz&"0`5Jrs<;+jDb)ˤы Jiw(w6rl X,~`}|dyX>@erЕ0v|W!FJ~ E4򷐑;l `E,$)I.lZ SrhbPR}SȞ `K(% ;ěM-ŏx)/ tm!.`5 3Ю')+6p_OS^PESH-P~5hhBp69u;la)8)-Jiݑ4K)^~C*$3!hSzGV YΪ\\;.W֊"O SIn_ru6s5wnӞ/o j Qdn9"CXx.vְeed ؊@Dº3õwK iÝY{5mt#$-&"Nۑ9m[4k)Z Y*e+*$_ :14kX6K+Bt]]կDyM#Qȹm02N{PdI 7H.|)t{6L$:A]<?t!&\ƕ@JoBgr}* B2\4Ϧs'DK-k7?"qu F!1vzdWy"ħ Rc$4BuoB\BQzD!iB!Ul$YOl(ݐknwBorIڜ}x;Ivn%#žP B$ٯ3xs!ҭ,pxU~̝ؔRvU-_jmI3$ 2B7!@u4 Ae", VzCJE&)ۼ.DT؞Oc?@˜W!5ݺogj2XB&c %d2XB&c %d2ݱ 0 { FHµ 0?1ڗNWqj|#\C a 01A` c 01A` cf?H\BY΀Pd{(]9b9. 01A` cf[OcG)4#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ1G ">wv Cbvl&e,,,fϋw}giB1 @J'(>'rNH"!~m>'rNHw AT('S9%d`p!o)rHbxX7%gآdBT-YX[*YkXFb&u:ncG2#D^7_S!+g.EchYfMH)1q ާD֘k1UфX!?= B|JLYvXBJ 6.v}enṧBCx`%u+0z}^:7{=;!c8M^H0VoB&?՚%o/rclgy'$"D: +Q`\ ㄐ~8>g.;!"$0z  &B6>UH>%=!/B Y9DC6?ඓnns_B|w1|A.0#!:l9qmK.B8JȻv'Drl38b~ 춾p($rXHf--Osq,Tms"4i. ҍ1`nk.Db"PJ&cb55z D;d@K$trb8b?H+hBC^MUvd~o+ɠ B^BWoc 94i "1DHc!!BC4i "1DHc.\w;+on#;-ӭvS7.D;_ m_Au6)Nȧ_VD4v0[("R>^GrB y6ǵh~z5Δ#.k4+[z  Eb!p#З-MS=t[3 B:!Qn4F?Gc'1S ДrQn6B摅X3t?N4c EEq+tԀ/G=0DAi>8×K{yb5zu:2F~>HuX]s@CS{~9\)}9BpldJ,S)>nxk 3BLB/$SvM.cDȺV|NY@`nG lsB,K>AxS#ܫ>7FB-#BC4i "1DHc!!BC4iׅ|Ö+;++ֱň?NoCB:\=6B4.Wpg!ۘ.!3~N-zN;eqz?5ʘ!pGKHOLhx~^d6N\T! Y>L\e,r9!9ИRtyp4. 2LL"`QX8U~0EE Y!g_gEj:XҀ-oӝG9-TU--O*}}ZQT2Ӱ-ȲtJa0Si;0?u1eUE,F֐3 !BNq 1$$f,d.VE&= DșgRHЏH#f˻l= іP`!<5-B6E\RN!gb;h2 d*$&$ΗBa9ȏ!gnC;Het/;,* f+ ,"g>s%h\ `3p˶Bۢn߫qgχB^Ŏ?'%RG  94i "1DHc!!BC4i I7C!Ɛ{c|{旾BmkU(/~")/+ pWapg!=%B*cD+B*w 18]`k3y})3aMr7 lB]v&s?`kNODIH̺Ű%nċE=R9|W>jT!Ǐ'!GRG6"[Il$,B8 g!CѧIHBK!Z #3U!BFxJgSsFa;e1OB: !b`Qp1V!x2`lkgx#dHeBr\U`pWF)wxBxEB3RB9̥㰎GU"2AȝwF}[K {N=+E3I7C4i "1DHc!!BC4C!Ɛ{cH1 9'{kNGBx!jϹl?|ȻO%>פ%Za_7) Jr~< |B:bIKBRٹ/2] m_850O.MsKp`݂^o`LW1S_'ϯW5a4d}n BjDReyl ;fe9>pFwabe} EH ư-}Rl({zj cWԡ UiU_{| 6jngP]ZcfeѮ!<_lΎs:j ?F;DǀSH!O:)zKF?5RGƘZ︉4,}X .yQBx^_H} QR2Bwس^h^ך'!Ʃ }aF;kX)?-BCRH:e}'RE3Kamy٠%!ك'*,C?vܾN1rkUws< mka~ʮiTCaD*Ђ[T5Afvg0:׎j{w-?V:Ig{ږ ?Ķ^Lը򅈊F`~ ]L .SFre Jyh!옦A |YS`Rr};Yh*?]H7tS# DPR'2/nSϽr*rJG^kk뫦CWYIZ0n5N?ٵc"a1Ҹ8yv)|, ?eA'H 1#H 1#H 1y8B$FAb>hu~E18NΑcmtEJƪ6!фTFRMHe4!фTFRMHe4!фTFRMHe4!фTFRB4xm㭌J*0鴏G=B2m\Їiq4Lu  ]fGzUZ1:BXs2KՍu|?hGqi1uCyE ;=42ϩi=$D6d(]l(#)8^\=̻n\¡0J//5C"5? -Ē7-QJ*,5nhTWls.4"~~MK#WK䰢S-7HWں$$n l\W<)&< EړRlG,[G̹K[b"h[ !y M# k!֜1g!^C}q7!D?ЈB9Cm= 1ZфR\ >uUG!bYHN@7˽bGOCl8/1)dҌ> M5}pOf7"C= <G!=DHg}BD!Pf~LC=H gg%tE>+ -g s͝D|Ly YC.6ߥ_Cu4!фT?eq | [ "ҏ1I&tљ,BSջl)]v*HaUª UA V) RX*Ha\oI+jOkzUE:erCYBmSd}6gxzb{À@.=do˃@ |mPEηA/ b}>$ᇵ utVKA|q0 sȼwy5HXϼs8 .iהB 䊷rXagpjcBuA t1mz`|q?U@d <8I:Qe8C v&חH=@H V!B*z 2) o[@HB9, q' (F9ƂD@LaLv]"D2_S Ro[@HXF.d׭SW@"X@ -y,)u(_bA  Ȉ㶀daDX~YA@K0# Lȷf dsu"WƨVrQaCF|A 4|! { c$"ʫ4ǹɡ]_Ans `g4~- L*`׭zrϫ~ɡ*HaUª UA V) RX9a ~]@²)@vk]LZwRq 9C;!!B:CtHo? `v uxax#;v[ x>OHK+(TC[|$ޔ#?n(~6Fbi&ΡGC>Bc<0mXdZ&>$ i{Yr.!+`| 7!208UKIv4!3TRm\nEphwH>!d- ˱īÀL-` ^p-֒ed;!12(hfS׌ie#̀n-%4d' ., Iy-jE&v@>0 ȿAQ9lPg!62'yj+BZ׷ÍUPkm'Rf [e1~"d ((%o涰DmFaXr?nP5$> 9ψ!!B:Ct "3DHgΐ{gH3$~ IwƗ߯cE{u((#F3'Bwqw(m(k}[K2~q6s/we xApPhkķ+#.kTri+K3&\a".v΁>wW!#t!Ǩc^~[Op0 ᔾSQ!BA,̙jPBd0R@]okhj!PTVӔ[v/X JX4[ > "ĺɣ2@˒CXJgSB8L&Jmev\fjw D3 y:V<vIJnc>a]˃L9<,4'Fviq3xP) *,raƛd"(]$ c2Kϫ"h k+7URf)IG:(yV,m\G5X pQ@c{{eHqnljNH\Q I+368A0 hb[CHH) R6Œ]D;qd$#ѯTnVo ,OBTHn!O#dYVC=_Y"6!hx`H-Ǝ׭-1 1:mo; !X1hMY PuXth[=䵅w2lb1xWvs@z|($"0 nmKء6yg!A!Ėy5,f@i4s)5fu1кk.ς -aHS HY2 .517B=g!6aK]!™B׌RVA&C[1;HSB dkg: oD8= pC2%VznT{#D[F (qO#CǬu}P }Sb%W}ΣR |/_8KșK8r=!o%d\BN%d\BN%d\BN%d`V܆0_D 6sciӥmhwaDGnUR1(j6vI {MHalB cR؄&06!q]V=`* TY<~ г* iByavHMF4)+a1ղM@bO^CT/'^z@}D=5Hy3SȏA3r]׭ Ih[!;i5_ˊS!-k;C+s 2* QLԉ0cǷTN.NE<=k~T<:|DdOM7(DOdƨCBB  CFW{KP- d`EfVY@EF)/ae82.$8Ol0Mk Г V`F~z 2B! ѧPqZa|l#әg,歐X\Z7VH\ѓw܇6 iBTI 3BDd5rB{ODY!tb!~Sqڎa2BdӒDdBX&$rl, AOF45`+"Jz%[kB*,9BP%v6+xfNt:=B{Z++dG kDH++:8(Дb`vXHRYZdq!ޓWY!0^v-al}R/COuiq--VI>t*! A%B8弐P% ,"#/rL(ԯ^E8IjH뼐c-G -QJSB?]|k86! )MHalB cR؄&06! )R?;Ww7L-rdN FC k;_Y @2) @Ld  S@ @r /:}6ݾiY'[J*VH*D`dnBs.:":Fm{mݽDz{HBX Qj7%@|H'+2.d n14!^b4I+hVPB8hF1 {z`,z'HI R Mk :,̷BT')W# /gkjB-lgg €/z0'%6D}Gr|V\Eh4rX%鎕q[,A`e)Hڻxo煤;!ʶ G[wз~D"CBp+vftZ+gguA D!XZ;K^h;<&d‚b"݇(=9/!e?-Os[WكLR )v^2F'$sl2yX1!$n4 .ǐkcqeh|xZHʈj]͐WgZo^Y Λ]!v4[jc(iQZ&2>-l|]WEpOp#d`z?F{3$jS14Gx`o|rݜ_Pu)3N!q SHgB:Rȯo|B~gFmP~@GBXM0B.ڽov5r9$|1v! ]HeB*cR؅T.2v! ]HeB*cRXV`#TȁS',;>A9C|,eFy(pP̐و"մf K !j%0Cg/BnXB: |Q!3a xq}>ݵ ^Hx`H ^dh`0cW 9hD<u\jF9#t]641je 2"8͈r!hh:ZZ@Ո O 14! DQB+@Cu<~ b)3'x4"Ih&4ucD5Bc1R60LH +ʸ[=X<ɘ49ҥ ׇۧ ђ{>!,D*C§;A X%W"tlO9e 9۽e 2 +:'C;u8ل@Q?(AAz} <7ؼ#3VFH.Z7],w>> # #3NHZ'^OB')R;+);m P7/g=MQȑwZlZ!sg)$'$pԀ-'Q7y$%!yJ}!݂B"]QZygBbkswGQnf>5kwű, '!fQHRsJIRxd~~bl17B`|;؆B(!Cr\ C%-k Vyazq ݫ\q& 1qRVB^B{9`8 3Ga>زgsOebY/!NsCB۱מ2tslFN?s/t{~7ƖPU.2v! ]HeB*cR 0 LK vS Mͻ % su*slod.Ab RLADAD,A$KADAD,A$KA.-L[GrGZAmlNX ['7@Cvio!Q> c 01A` c 01LZ e@l%c)a${ gZKWW aͫ˞O6UۑL7/YٱPIENDB`assets/img/forms/multi_file_upload_form.png000064400000014073147600120010015172 0ustar00PNG  IHDRC?PLTEuuy%%%㒒\\\@@@wwwﷷ333}}ᆆ̅域ѻiiiȆNNNŮ~~ ``II00pp9Ӷ tRNS߯`pPIDATx0 MJz-hp&߹k_gK[^K L⚃r@b 01A` c 01A` c 01A` c 06P@i!٥Uvn`+=e*zH 8t!3!"\lZY] Aj Ȥ'BD܅%YsJņka^y-D+ꮵ* Hm-QS%ScmZA;< #* zM!2zeq3RW<|*D=! p&ĺ)Bry:+RA TVB9e  B`9i (|_3Gb@MmцC$BS=!ȡ%OAyj.Sj9:>2e9 _葂Ж@ v*DLĆSc22k"3@--ĵM}ܯnΧ|_H:H=⨖ŵ xTmCL9 f)%>?53,:ޏ:)IbY %jR[+!gxM%609D坸pRD+`!9r*| }q܏D-!Y\rbC+SEȒyMĖ)?xjN:r+D{?R_*B2QJJ&5Ayrx[ArrN=4  )Gs- pn5m9`D [/Rty}3!:1; $\YdsM^~&B;C!KBuԹOƺW!-n Gd Q jVBR0m!:5S8%.5 Ԝ )Ѭ'/#;~RH;C > c2rh|n$$,K}Bb Bv|x_ $N~p,ǡ*pc}LB D.KC%dDXg?0;*44pDۄ Zw='$?؃߿~}8t!3!qCHgB:͞ Ca÷B@ TP'M/4q:$P(2222222222222228;9^ α #c_شAX=V r*hq#63A,fk6X VȮ1_!K=6 \zx0)uLD( @Ko0ar_V +0a-#1SE `t./6}oYe t( di m5^Z"s6Kx@{ VĝRr=<4Yb+6K{FHF F@Rd5g m)f-%Hîq@\_!ލ A f5ZFeW߂=x j4N -d) bW(}M)ϡ"0hd\N+dHq=j%`?<ihhhhhaj a 2JwE31A`  ȭy&D, 9$AXv;^2w 01A` c 01A` cl'\~Z Р8HG^IGd]֯c 0G2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ;ݶa?u‹t6`aYsYfRqfNcP*JT6wƇwC!JW5xx#Osd:f>@ hcW OO3 9X_<}: i_c!h °/wZ!q9Is*YC6-EWB\uS Bj` 6I¯`_b/3=bP0JԃZВ `Ж0^ a XЍe0!Cnsr53HF|~v!K` {ow#D"l83źgx,9%ˍQ-j0caB40 wuc!?^UW 9m/nd% Ak,dfZATp^.$aJnJ:!@(*1!@QIy%!J+؃2k6&DMi$;`5LZ!ib-D$="Yb%}8WB2N@kH {fȶN&Mȡv!uPB>@A &,d1X`rX{fwGL^zyeœ_!9(U!il[5%Bj<N$]D &P z^gF}Z*ꭦN籢lAUZH]?D3컄m0GZj;T!ػcb( . (QD:[PO1#H 1#H 1dmgbc^_)w8<8^w-H]b$FAb$FAb$FAb$FAby{myd8h<̀\G?m1ɦL,o-:=oek#ڦfKgsP!BC4 i *1THcP!BC4 i *1THcP!BC4 i *1THchK#\/ 3dό;,蒁KX=81',z:}!pvUWhK exz!`"|,^|ãwpzBP8:2Px7/!D}euXӐR}!<8QL3' U/%quŒThrWsQsK`"#B$`x9Ry[؆l"޸IFJ|G),R2%I׳0Y E!Ȫ~o"rmSHvDUGY 8[KN$@Xx񓗏`6LAزOO#F>,L(0 !$3A~dxe'*L0 $s9 ;1G!1Ib3K{țY`!D K1찓b YL5/X +!Q&TU!`uf e(/[qXbdHVS DBUG)'"/Bbsbp1Ba%qϰHU!=Ԥ0ڇu ($e=;W ; )@'EBvxUHT XCU!`lRsq\@ 3zy)ZHXcF^HG=`PY 1.BU">!An%oA0Li^ ӴC 6BjH!b*+!La%$*r* .C9DCm[Bƒæ^-,7畐K_ ٍ/χaR:l=y!&^-:ס'ʷ:!B&aa-t ,$C/`j0DęΑo n]._'zwR뗊K!`8~]=r>1"䏉srV!c B4`SH/)M YOHDGi&[g䠨P!BC4 i *1THcP!BC4OyB&ܿ A4uǖFۼP!m_*1THcl/CPZr\~H҈O<76d›76w !%d$= - I)!صca( Ф"MB -2  ݷI_X `|Ѣyק# (yye)U ΀C9iNICmul};1A` c 01A` c 01A` cBK MMD6)L[IٷUGa(m$d#—֩eY^7n̼{9ȵr^ r2Wi,$ 2zHj)H6ؙP-G<;CCAx&<&8<P7NOo^ҋc Ϡ (w.>L20h#~(k؇֩Hh}G5dTg}1~БP"ZE& %-&߂t*XX) {['*&RM rLfs=A$ J$LJ"'a_\Lr\EtLTv6]Y$l$8I#Pu;rI=7n,tpUUc }OkOj&H:z\>q[(N^7u݂YmAKZq<$S㭯7E-g CAj0[,dނdq2:rL1 HF^Aa'pݼ`"ىP:htƲCp5}S76YERE uQ~UMN+?TI%i> T|: IfAb1|C4[qLGrA9H],A"w۰mx\l's;KIENDB`assets/img/forms/job_listing_form.png000064400000013162147600120010013776 0ustar00PNG  IHDRC?PLTE%%%ַ벲@@@\\\wwwǼ333柟NNNiiijjj""SSOOOW tRNS߈`pPϥrG\IDATx@AB&.Ttm<轭߹7,E:8Ay~9c!/e)#H 1#H 1#H 1#H 1#H 1#H 1#H 1|5]9A ? ?7@ !ِ}3@#1jQI/-bB.-bB.-bB.-bB.-bB.-bB.-bB.-bB.BF&q|C{TVb< b #e2g/s/^pE%*vn50ΙTOxq Dp9w!XccV\]/CF4D-6hg13t8L;5p|bmr0  t_TsV_lk.H/M8-FQNeh hSG8_|6)dߪ_B l s_ڡZ(3h!䨈~j£"81b 6t9v _^RYVKN[ 㘔gT rZ#H 11䫜?#H 1#H 1#H 1#H 1#H 1#H 1#H ΰm?VpAB2"F.̛ZkT\L}g*Jr01!`<$$S(6ȎyLaX G4x@KInQ` 8aLχSb;(BN3%!y'\cCdd2$[0Ieb@.*Ih:]Hi <0tbTZ>փ\-g† ˈ6ȒJ$3U.uU`^zhwZ4k˾7$9$I%29!ZQ!`%TO3VZ< iz H!%/q/(BNRHjAaL*caDzCNf *$ S?BV!k̥T1ч,eXn**]/ `Ӳ/D`储cB& F><uzBۦF'iRֻXC!eS#!@%:"~+$bNRS!\\&-]N˾Z&ÐAqun:$ ϻκ.?-!ڬgg_YG" 1Ӧ+%f OuB{湝^"d3%)ض^+8x)+#kr~dݘ@#'-m 1 _T"V{復KjM>]rtbdG&"C[4{m9>"B Š`#d|-'!5zO29!` !c9CBr09|o'q!߇ga!/Or,^c1b׎ mB#H 1#H 1#H 1#H 1d]LA0ʕrqsƚf$FAb$FAb$FAb$FAbyٻa x*I@`0Pvi$ P, “ Y j$,w{p:$ @j/@.\qWVX~=p%7AWl\0 @ɕ5E +g@++V]HìkK*) g k$j{Ʉ ]}K<"ZE" 3(M!qٯS{[f~9RpYdeIb!q] -\qn –IE r܃0cT8Aa1w aO #Uy ;Zm|1AI)L6+HbpTXAX;WC1]A:78@l6sT Byjq@r.[@˯\ LU QeAӺK"Lr_Sdv8s $4 2+%s41se- ufAZ)C)s_idddddd7{wp! A04x? ?*vc$FA:cc%;=6;-K?b$FAb$FAb$FAb$FAb$}#dmt CC8cMc$FAb$F?{t,0z;J!3Bf2#dFȌ!3Bf2#dFȌ!3Bfݥ Ca^wIƆ,`io6BދA:q2W~>@y>@AE h[IRzrwmI^~oD 1Q'UQpWO72.4/ -סՅH 'ȧWm)ȞK{ 6%N/ǺD 2iM 2 S dI.\Oz5MV=ЫQ҅d@\02GQlhs͟v$pfr#6 @U(i @azu ͗rщ\q6+3\t& *E魈5ZO=Y~j@X/~ !e8Ӵd!04Y NqZ7q>oY2 Vn["RHfISdIܿA0, [ P~_z/k$7-}*eh~ sDDh`d\92Y0{n^G3MH.y\@w;Ԏ AmPޡj[kϻo122WFZh\SS  .M n)PyOu(-u>:m1i & =e3M`8nz MV_̱(xuvaI$ple:=mD#j1lGn^ V}QB QR*H>ŬD4q-{w6 aޡ7–,!|0 shݐЋF5WY$kǷt򠼽 $0{D:]pe翱Axap":^GH&iV~96Y&^Zsr `,EA"X `;@jwa??ߏp?lW9} d1%ȃ  !T!A"A2ABBLEd* S  a=i5/O{8Dv w_l A"X `,EA"X `,EA"X `,EA"X `,ogƢL͒'2xiD32YV&R{u¾b䮜,J}Ȳ4yX7R sRU/%>KI*!:\1f]gc&,6<*A"X `,EAdX״هϭW|eowu Vo EA"X `,EA"X `,E  dӀ^OCj{M=O] `,EA"X `,EA"X `,EA"ȯv@ b蝏:W"lc 01A` c 01LZ e@%0Z1r%X5|_gL}q~2IENDB`assets/img/forms/functional_behavioral_assessment_form.png000064400000017400147600120010020275 0ustar00PNG  IHDRC?PLTE%%%䒒\\\www333@@@뷷AAAj޼㲲iiiNNN۠ CC5}``r00D&tppR[[[Wz tRNS`pP%;IDATx0 Z؛ױVS~\}IšZXJ{d><-rXZJ(1A` c 01n aFXxd.R]o0j,/؟/y3}>@L o7țIZG_k ?zRV*M [؆~;)٪^Xt R"M-zJJᰌ*-@@BBUo$X;uwLT@; $)oH^{@pQzzkل&xph_/S?t썯)2(130hiz>Ɯ:pp[ H~([.GvT9/6 i* XC]~Kp( WG%us|68.T!$C)$YC ѿQBR]X-x.15c|C/qgsӢׄ !`־9 b;d|PGR46KyΚC@dOP@[dTRH.]S Bcq!kRptM.?r>u(JkgW +7#qqqqqqqqqqkB_1o^7mk5!HhN\٬^¼Aݴ7Oڴ|X aκ9U%~voNօL Q2gB!?~~zwByz7Sc#NPkVz$ubZ=! 0qzR74.dP{g S|HBO :IG9ěO?/K!m6:<Χ, 4YN:mT\ia3օ0-<1$! +w| CdNa)Шf! a9˹VɄqb]2 +@ !fqpS =2%N|(}#[@ !@_,IeOYo柲v_eCbB?<ȓa0^ vۈAGIA޶+Q_}_l6;I}斡qY;lF 67 LrRm_E85[f/A%. ", ", º rLvӘ9؎Qۦ41? 2Uece@@B $@P@B $@P@B(M2AN9e8PC :P<41`kDX@aDX@aDX=}ob8HM6?RZm 3Oo3  ĥ N&/"_H܉֭z\ZJ91zE$.ܺBn='$gC&yqIIOY)-^QA4jؼؤ=P Ub޲v _2W^1A^YՖmсnH ,2QoA*Ӥ9#"@L*t1j^lփ&RNҷ@U&^ڃˬL.Pa _vz,7", ~wE0K,#H 1΢;~?,z^"Ab$FAb$FAb$FAb$FAby΢;>?,3GAb9eq?@\AZh!/` /Pf'mU1BHi٢DEB i.1B i.1OB\w,Gbe,%Gs(2 "EKl1Sp$dтH{l>و1 )P c Ӆ1($d_y&*bWـixaU$#'A$X܂x0ەޚ#!NmD+O+=0\rcrh^,(cF>\ӧs{9qZV,= <D\DC+q$AUM:D?,W%íenH̡RM%Xb '!3\]R&>;D{b&fB4 fH|BpfIYI*aGu!A$oH(D5 3Vy\ .dWB%s{B lB 1@]|!G!⡅mb1цLLz-Ba~hYoYSHyPb 9?N߾H+a^ΐOi/,fd |8xy'de_[o۪ fG!9Yg3 B\ q'R|`Rńޕ32 )cvrc(j6o-5q%ȅ`sa`Jnjѳ^L"F JRu%9ljqוi* BҒ9@B i.1B i.1B i.1٭J &0 !䪡PAB}t:nK7CNLVk]iB i.1B i.1BA8g)Ou,18Ó/z {"fATufaDsQhU*(xmbn y5B` VPCWY:vG!j6— fB޽zd AQj3b^)#.(d^[uaB|r,2+7ˀRbBqb&P!Bb Z gȢ L˗PBpU1Ն.|<}y *iSvf^[($,@*2շPT(pG yՓcEMv9BK#l(\ YbTW9(]ᚡgLq. O}Z+Z([̈́XtQBfEmB\!I Ļb Q#QHaê&DFk wBk!3S@}*8 0D2gBisc)8U,vؔ-z_p8t;CC%A.pO 1n ==`v`YEaS' :s ʳ qЅ;"NKaB-`1gBAͥ Yp UhȈ%Dko` %)g-x/kviwUK8IƂ-2^jBT7Dg Z[^3͠DA$ Qy!pJ\ ξ*[gpQٽ.q B) 08ư!!8F Vm9@\pk ׼e?&#B(׆JFuppD%Xn:$1A@5 uNr}o7HQ!eV1p *jb9;p,z X΅YyH`㗄G:(c)=dbi0-/SR=š!N'O X`s-^Hʠ8LdBgBF2 9p"D(ZWP(xBV@J XbrL`%DdiBɘ!$T!I_v!D;kO`h \2TP ɣű 9r"$gk'.aӈlBj GB7uAk]C>-duJ"^ A*$,k}=2H 8z(cP^wBYF\VQ%&mB|)&Ddu͚ݿURqe ZbBmʢqNKf4酎ɦbq M PJ"]Hst!񯅄tWOLUN6]Hct!3q AHXŲlr{M#h/gFLKHdQ/$_,!XB(c Q%DK2e,!XB(c Q%DK2e|AK@ .\bC /όԁp5g1^(t?m=` 6D Z/ް#,,!@ND> RoS Ӊ^sH85Ow!}m3>܄P;%X1!-NYF@܄Xj8C,Dd3>Nw!!ȟ%Ctw> ,.6,mu{{Ҽ "ЭM0ů`!n-I s7Q!Z 8E/.e;;ᇄ QIG!B޼0dDgg3@q2u] i=&oI2 ]cq$NG_,Df3eN2S!`z/ls v[) с;@NDKb~R+6myu|Η9GL3Vڦ1QYD[ E{ ԗfuH1МqO3\yN 9 zK{3#R8DwAb*$`)$;V,B#|#d.J4 &b1ᅣ j fsO*tJ2@Haz?uӆc 9Y!=_ K&X-D/Q]#{!טN%vSx%D[~B$)V l=գ14@:ὐ7Q5Ì45#= %DW- /:6/7TX,( m76f[B=HqEZ׶ q!MBuc%f}!tPK ۆ~;'4+~36T2 ڽ)< 9HǨ+y 2;8}穼ڿOlDg!ϟ‚G mB,%ⷳ;ʗA Tp [{ _@bB$FAb$FAoМwAud|IDATx0V/ޑR,A$2:8?1W* __-L@!JsUBHMoh٬@ӏť0* BFA(! dQ2 BFA(! dQ2 BFA(! dQ2Y·.#SEl1; BD^{zΎDIҥ5nMf'&"cF'lԘN{7_mo)4;c. L fZ+  ,Nfי?E I3I-gj&|\וz6mWe@\)>&[ SL|GR Uj2tv"9iִm8RF.heQL, b]Trb@iɼc|E5KCR*ʦv`T u \Ftvy Ϯy(x  g ۹CZ,]Vj$t =T+O Oן fz2];Ha0|d5nJxձ. L}d 0H0   0H0   0H0A^B-2zѱ҅FAt9^CL dA CK 0_M|yC R嘑KgT-Gַa:h$)O>fo?F:hDd3w)HUAR(*x3 mTtC1`8^ 9k+a bݣ\4H p֘&8B A|SPzkNA~YG_G1ć :፼icڵyʪ &̩Mu%)Ȣ> A΀oM\.32IUvk 9>D1C1C1C1C1C1Oi,pno`q/HG Ӯ Fh) b" b" b" b" b" b" b" b" b"f_B*2  Y( gXlu" b" b" b" b" b" b" b" b" b" b" b" b"=3X CAMþbvgV;T}nwhB* &2Qcx %OD`<-~}!yGx|4kYKYFJ (ᐱ?fsǐj'!0 3TgfUfً1xtGA@zAdݻ{LDZKrI.Ch,0c!E(uzօRAȢ:xUx$2u0a=B 1<^r fDzp )$ YXO됗=F%mtV~{H{nWBV."蜐wB4 0N՗юg"D-.daڃRhU G{agW!8 3jsңl4 $D~ѦބDq+}b}N] 9`W_(z[!!){R""DT oßދxcAOo옄,d'n)3uQՁG:t*E gxzT ߅8#|$~N@Ĉ-!yUM O)X3 Bhӑu㿩!$ }%4>YH\$f1^CQ wJ/~I{90^'0 QQ,oBJF#<̚5|BUR͟F<$!4͙vEH',.BfEC!^B6,> \Wq[BPCpXYRPKa-S~"::1Mn:ShB* &2hB* &2hB* &2hB* &2hB~s) PDtS(M" Ppy0d0C  01A` c 01A` c 01A` c 01A`Բ#gg;fMe٧4qEfÎe\'K%.П.۾7m3M; >KU@GDB˜B𽐉KY)CHJzBj$UBxR~a:BPy_i+$d=v [;gl,!4T,Ӟs4-YC4%0klMHއ*2!yxBHP8xDէWj H/@ë.!A)GC*]!W;q!Fƀ_A{WCwx y1B^-x y1BS'1E pEr¢qa/_A#eXeXr o:f/!t51J}R6 XLѫ=5@D߃ApA`A`A`Anva h.ph$$/!yg`5~LA0SLA0S\{oA:cơϲƘɇrrPd=%hl` ) ` ) ` ) ` ) ` ) ` ) CaWGlY(b$QɶmL/]4z_Ҡڂ `, Ƃ `, gѝi=.pCfA$qYe}Ui ̂m4.Ҩ+AO.c 9'B85lrWd6 RsԌAz 1vi4T Y8Y䶢$Raܣ)H 2 r뇎bee'AjvD~n ?%I#WH1)'UI]F҆-&:R5UKf )c{FǾ^_7ޓ"$Qy>CN BA*t sK*f Aڟ/[sHHUA"g~KAjKVJayc6KqnKDh2LJ5oS7 Y3Gtʌ?q},I4 ƌK|wj4B`)HÎ&Aʓ?1֕xFs,eKA2WT!(NC8RzGAXwI2oCarq)Ie)yn~htJx(@ 2k˽,C$H+֯mYr:2 rz Rs=f9UnA-Dºy/IIyfSP3SMZn4"GJzB4o|\׺U`!rR$X+EzJ_D|=)ӎVqXxOnrcAX0cAX0 A>d_h|LK^]Ϗ=oA=~9ùyvѡ{;~ _W#q郼MA'cAX0cAX0cAX0cAX0_o^Ǜqo䅞6۲{?徾ԍrou7ʩflz, ƂΝ@A"/ B@R(cj 01A` c 01A` Vi%_z ddBK$K c䰕 zN- _ۘ6yT}i1IENDB`assets/img/forms/vehicle_inspection_form.png000064400000017006147600120010015346 0ustar00PNG  IHDRC?PLTE%%%ʒ@@@\\\www333񟟤嘘NNNiiiߦѬ[[[+9< tRNSx`PgQwIDATxձ @ѽF'$ȑBhɃ4GNtS}-stIE=m0rAa5"Ub 01A` c 01A` c 01A` cS~ȟzQkv;@~¯xa4y[8˴$fwsт@UQ&}dO{%Q5kTQμմ7 xeWe]Rl; 0~ϛ:w㕱]%]ም^ܺjm34}3#"u@Ta4~¸/țGYR,{r)8'G=yRG7ШJR"tVzGޅh&Q Ė'- Ǟ`B& .FhУZ dFAB?&W$ 8Ty'I*΂Ԧ^5pr5ꀴuB>I"}v]8Iv,@@RӃ.x؟5 \p 0d@+PRqYt蚡+CB !om[!#bɐ\!0[!B{VŽ3grl 58CC]_p\ӃpUƸ N߲tb o$O 5F;[eaEnI^޲.?&s DԩOM,/ ,nJdq޲GOF#,B}@0ϭ@LƺX3 ݗzP z.PA?=m{r49' m'@Lm܇&XHqzE;=OUoXA$'Q@GBZzާl FuN慴# U5Z"K'_1 1 `BNG5!#$FH!1Bb#$FH!13m#\ @ !Юv?X@[7U0\/!Kx.dg>),8 " 1rbcQpGoҘĆ΋T:? 1 @-) 4xW[*»4 ťTU\z2&yR,/L hVdxfdILRNo,!d]g$vKrmn!4@g D h3)D49('!@vdy Ω\dp'!*2;/=g${ed~BAgc@#Fs?1sgr/ԜB*_WyYH s:h[ (q,=ۡY6 ÏBKx:(zH&X‚{!Ec$!A8Un+F09 32ɧC&DapDzN )vHe駙_NxC P7w:t_Q}\E`rʄ/g'!HHsq%,#<RxB@MR'߁л~qI,kXDRg`d ǀgBֆKB,lЧhªo$ #%4KͶ!Mɽ-[ѓeYI4lc1e |RGa쏟#˒whjǭ7y&\4x[HG⩠650r, jZ3&υꬫK|Z3yh[ɦ Q5#3۳]u8\t{/k60' aG"4[A`Zo 01A`>곫Af5Y ,W)H 5;a  01A^v@ҙֿ4,ÓYc$FAb$FAb$FAb .RA gJFϼ9g #H 1#H 1#H 1#H 1#H 1/{g6 x7^?#$2[m55Si?Ph!qiCHcB84Ɩ : *J4&XPa{ Yh*fY{zkd 5`[:Q Q urEG"~"B@:c} }@?R|o/#w>;KSĻ^O`)A,GK!eҜzop:QAA` c 01A` c 01A`QW#=;%/߂,%_"o>k b=%푬Ez51A` c 01A` c3m0Qֶ,b32Aq cfh X%mBх( QF.D]2et!Bх( QF.DfI?d4[_opu!1G?3ez rf Z\B? hG8a@hףKeG A@ ϱ8$s^[cz]3cDI&<3zrr9od1Ou^)Q^/  . I%-`K΄m)ɀ~0K0N^)&<W!_Po24*Da6('$f"Y7C%ϑK3  /wFB"9h,-T`O# Ccʷ/le!"hv[C) c]$&]H@< ZB^L\,}Wߵlݗ ne>|NKkb*0z9gkݡ0td)lrja&> 8Z%DxׅƺYޱy0+iItXY`i,#i0ٙ0@_OL|&3-!=U!pB >ku}~-iAlK˘0p=`͗bj ^V,4$d*{"/򛯽#bLǀ0s*<>"){@sn\f`׃}P) QF.D]2et!Bх(7{r0 @HURH喏ˬ߃hU)GEʣpUnR^:BW$*+2r=נ\GIg%7~tTral KX %'{th @p%" [#$FH!1Bb#$FH!1Bb7dmk=۸\ o o{1Y۪n8Ac0O9rK/!g2&/x.h`cJِ.ֱg)=&1ezGz :F>{qH 3=!1O[B^ı3!@룐rT5<'q_ q svG')Y"N41 !}+g9˄pٖʬccBv!rUf< !M CpjAHzVom(<V]XMВAU x!s|ZF.'ZbĻD*SUX7w B=ucI,Ԅ+m/ޣo5D;,Qj;DhNeH$-y+ !6$[ AY&-R["4,bV'=(hBhB,z4cY+=vl `bgk6!KK|sEQ !h !TP!H^WV7%Bd!ͱ[ n5j͎FG(Cc!D6I,)آ÷B`GB("J葭x>IHH~N;d' 6qBz!eB|Ɯ@dķBF%\++$R KҒ5hƣ!1q.g!u Dz!dcw) \=~y+d3iaeD n-#jYw!BjIH[_IB3W6|!*{T!kp7BEFk^^1DvRJDݙCMȈ,+] .,B,9asG!onі\D iEϲM8f?x$m{$D[͕̭+N^E.=~Бq]HI̜S/̬3^7ddY(HHܫo"!&<UzD-bC!!=wHJ?E(n.ԙ]q9s# dp' rQ1ՉSO 01 ƎRhFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bb r#(zK %a6I{Y/]DY_C~~ a0d.s>fCYqޜ4T[˂=umbUMщ칦*@ڮdAs|%qAumٰx>27yݐ`H~::6d#ҏGVT5$D.o0y^VZS͍6$*8U:Fݤ70N̥as.%Z%"̫8jNNnH_ni1G,n a>rm儨.((ٷaH! i߯R1d &9bӵ!D ,wמ,_L*Y/Y␝^L)*ә X7}  kMÖumo<} c,:`8%苫aӚ#<1Ҿ_@ōC[׆HDy_>`!q^/gCla! #Vc& !cŐR/r~٦ f/8Ɯ> 5x!*缗vd+kb9= 1>٥W逋}:ij<5hKfEßIbH~)VM !Xxԗ +|2g zv>NޑBlTŐb a?=hH/^j"+Nӷ?$2Y4$7("-CK!!Ya^2\\H A .9!}kyŐRŐ)t[}@{%sU` 0Ϲ(:M2ICKdȻu\$W@%H_ aSed]( Y)A` c 01A` 5HB҇?tccGd{5fPnfdnNuxQA2A` c 01A` c 01A`Gᎌ1:-D5]~DEW QxC0mo-)wc 01A` c 0QR %z 5bR%"F5QXLs|nK^8)̚IENDB`assets/img/forms/inline_subscription.png000064400000030504147600120010014531 0ustar00PNG  IHDRC?PLTE򨨨󱱱̜޿AAA yyy===!!!222666KKKWWWoooFFFhhh***OOO%%%}}}[[[...SSS:::vvvlll^^^eeesssbbb'''ItRNSg/IDATxA 0͵nj@n#EAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$ -Ab$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$k]#Q>筄AmB 2 *1R8}9ʽUt %'KOƗ/!?_B~2d| X]?#(uiVBU[8stV⺜cim=Oƕo_͠Z]xt 5b>tqsw{vb[)Њ9Z{257Qy k!mpԩOshJ%Mt:I;p]>3m!k%rG7>cS|ZՁlm\s|sF 2bX ج2g{XEŧ⢙Z%k=Ŋnk+q1>ijԐ\TBpX  *BUV|DX\~T>_ Bl $+q`U!/ْ Xi 9"#uQ! )$ tbX7ܬ VIe)gl%' pȄ i2[H/Z%;ŻD9cW[B¹s q#{1q j%_YZh)}=SOI;>vۧb9lyHU-+'<Ά \e:bL?- 9Q]]+OBdG?S9:c"UOBw!ΆlhANx'! D"|YMՃ:7G7҃Y) Z>ޙn{b4A:c 3Vw;{)$8g{\U8UeK/Hʔ{[iz)>d ;ƺ΃N/LM!myͽ#5|lkVW,T &j8s= %]BF\b4'dJ@t؆LMw ovEA7l%gm;BH-ۙiۈ? -@8Fjdp|NXUB5Z7BcPZm]hٔFN#9u"T|u~x̖dQl9E,9D@K@S rUEMӡjlbP/&Xa~܀ޝ<F!)K31vvĶ.'!3bl[ :g"ͩ.NRq 0ydQLȿy8KsrԝK:-ySv#V("W"ߤaao:r!&2fo~+)Ecrxj Ia'9P!D7fm3IR /"4 qI̛+ͣk.Y_ J_׺v5⌮$i}nOD2uSH. I l>EU]Yl+8fbS#P n4I$>MQILOSiqY@&GKHr6pj f{J `F7ñYNBtb~2mvKHo%02aYk..-pbSIQ"FUN/$g[$k[lq| -Ydd^N@Y69GmH&@1'O4~?5_3>_:r\ڤ[TvMSx~mRw58+ ۍ(\yG5g߀;:&B=99kr莌Bq㜯 SaE BŨZ pI=+po xVmF5V#z܃"?:yDN#4 WҀu,w$wڬa\$.c5vQb47}bwFeXOxmR{7k1Gg(LObrj~Fmg4_ @}g~R^&>,&{Sc|g O^7{nmNɘa)јX08?%H6&^8^FFz0j[6rY 竆^OQ,XƯ Dήj8`вU^''j,6K" ;lGU}1%-TUulnq[ $r̟ Lf>D6d{V9*r"h8tdxg,Nt&!];OG  1cʉ:VU5~@R'!?&0.Őo $ďOrq FIs {W 07IBB+F`5T@B$~!!z#V懦t/$ZFσtnG#zOW;{t DQ.^4ARf)!WM53p{?/][믭:ĽXJIIIIIIIIA\Vibu52GAJώjQ㨓1[y>>C6-ؔd2eMNH 1&+r⏰t <Ry\ז#oc ϋ.J?|+K9@}xWH BZdH w~L K~Yҫ)B{/TeÈ%~8>lsUUQ)%S2Q nyP۠R  =0=%c2]uq)M3\2U=<ׅMsӒH)!6<(@6˯m1WLtF7Suc*%O=NL3g%0]Ô1\V6@atܰ.0n{U Jo#;imU\BXH:`]zhvt9`c)MM/tW03h5l/m`?YBM26K mDVIqWy-YD\ %N8%:}KeG?or(˔U.Mr!q÷4 IoΊ+7o oynN[3Lf <­[;޶Lxkynq[F[X SŹv%@]Nv8z\!-%;Sr5xs̼p b3 5qo6&>]x>ƞcpmD筼mcaqLT5ScyAxї#Y7{,ͨ(ChWЅo H+ouHp1ӊގfe 9Ŧ k#{IzuTok4̓^VJ@>~:T>)5G 'S5U-v Ӏz6$_ `Ш65sCzN=1rMv6  Tx'#;FnN l-k1\}pq RCӐlζnFԷ)8Tiv7n*9e%F#%Sm{ ;+F =R{WF袬{fnҤv¿82 t~oaAc:sUF@fm,:to!tOAc)jqbXJ [ p Ia|"X}Kl8VQ L/ZSRvN{bΆ^,\VdK6+ l'CZ %e)}7-irnpCd_6-yqZ>,@R.Dך@[ZW!z s0j&Vw-?Q܇!=[ޗzwprҴ;_{Ӕ;!gD;K_xYX@sy*귖LEXqw ©TE @h'򬓣<4Ն-9"N(*= PfoA #t4 + |iPQİ @|8օMƆt$j̩+#!z$Tɸ8A`&imnStCW@V.IQ6*I;0b&\7nA fU Fa8lc  Bp{ o~]=n*e9{/`^9Z 3ω*yr PF+ مxe BS L]7$S<{W*ٜ0|m XC)jMu~zX# `>bqO/I"o_ Ր_ Ր_ ]smqЈ0L+^cDM0hB ]XIM[Z% s<>aɃBL WѴ/s TTq2a*`A'O1Ayv;J&Dٜ(_ń'; [RB[Q @B5TLԯ1E%qDc4e9#/4=Q"3Z T*3c W5rTcG{iD[л@>,SlaP @@՟Vj+dDd9&Ӱ 'S %QZIeb[F>@(<FNt&HU6 x; K)90ve:E"#>iP fݚB\O>LkN}{_M{ XDj4q6(NJqir5zzMV2oYibh-|SWTsٗ@t#\YJe7slp*q : ^ -˜}\JG k:f.+WDQq"uPC!JK7+ɶf⫾[/ A6 پK.۷g=Zķa 'hr27ٻ`z2D6j v@v]S(/* o+Eΰ۞{bѾ^fwUuJɝ@F~]W߹X]@\z_B]jΥ=U@!2=p1P*Ձz}KgP{S(8zO5e*jn2k\(-qX/hS-RاND#'S egFD=?*Kn:xiS~:~. D:|i`c9j> FoF!@+^)=coB^qU70z*.hŎ2Ddbbd.pZduS08lX}Xt0w9@ɀNBj&(TȺGnz0>{KH5a/35E: QRS",Mx rihx8AT &V: ĿFyӲitO^TV/L$iz26|V|LxKn~X y  b:]S+ڰ\]o7GxqؓU݉Vfvoѱ,{Sod:o&~pP;ؽ9HϦ?HHma~se!DʥKCc]q[&T@q#u(uow#Z픙ɵ[aKpVrB`gBRm0b9ucUR=C˪Akma]}Y *DPb @[=XtlHG峿a? t咹z%dfXA̒ "o+q}Kh&!J{3iOzӀMæ7Gސ 1-n683'BN?z+HL nџx_(QDd:W1ə\ܙhV9QT:1d9DA3<*z59I%l?C`ݓU㬥eW`ջ&<\wHj"zX\bq\u{=A2R2ZHpZA8M0[Szp)E/(S(3dE#Op<: (IFR}9.1%Z^Y/] ]P,ڑUnjM+x4IqcA"*`|.=.*SY @!(^(G{'dNd뀕Y5Px *2ܪhS۹ܴ“rZĪ$jHsNA;YjI1>yKWAnBRg5I7DD>d Ǐ~"("04d 2Ȓ8є.7M  4Ll7Etybr 2@.@D2^2Muΐ!&#k g0IttY1\|ŗ/M\K\@dR=3c(-qTP@ILek<*$ vb}o.dԷ ,ddj:<)]s)&EWkhK[cH:7 JLc]5 ꩣ a;m 6H xUM4V+FLqfcC*(=Af :WlTs- gK~Q8Y /8&-CxkPP~t͉~:Y4믯P;<$`˩!Yq )(b̗Y_,fR3ó0l>`\{:?he莤dohuL ͬ< vcJ#q3Apώhbt>{|9jVٻ}z(?¬k%õSQz6I~t`z8'ޠ;eKPa:8%L6ǾfP{T(l^ Zgؘ ʃL;ɡa kgw2ȕ1zKX4}1tEqȆV`*?Xfv( Ŏb!m4hvQ$g"''f ll:k ц"oΫ38ӈԒa3'>rjʵӝDJ};Ribj7UԸ[T}+01 +bJ׵d&ek3[DT%'iuVFi?& D@itYz@z @Qm`4 [D(!D6!5 J V^QB~HZ J s  .9e6#Yd`~+=Ɵg:I~kKldc ٘=A6f1{كldc ٘=A6f;F (YAZł3ԉ$FAb$FAb$FAb$FAb$FAb$FAb$FAbْk\H 1#{3s+ dN^GOF # @ l q?H,  H,  H, ĺt23H݃<@$!ȗU H,  H,  H,  H,  H,  H,  H,  H,  H,  H,  H,  H,  H,  H,  H, ձ 0 A iY㊿$LA0SLA0SLA0SLA0Sr by4Y)1s>:\nUGIENDB`assets/img/forms/confidential_morbidity_form.png000064400000016365147600120010016224 0ustar00PNG  IHDRC?PLTE%%%\\\㷷wwwɒ@@@ppp333AAANNNfffiiiqqqzzzjjj`` @@00ppPP[ tRNS߈`pPϥrGIDATx0 ~ar^ mCݭ򗤄=`v˜o/eX,9P c 01A` c 01A` c 01A` calV$8!$ A$^kUݴfLRV*˗@.tn  b\L7r1@.tn  b ʴfՎ U0m,ih~G/bS8Eƹ1=nX2bSjiDVU'(>kpE⸾ hɲG2ڐ(OXWzh[~Diҳ>!X(ZSS rH42;@[Iչ UW_qXO)޽IkWȃ_4oZU5V@\2P;><-Kh\*vv>Yh @4ƶ lmșBPTq|\2:2<1WC @HaYe~x[k!M~мj RE7RrXgHK/OM=!M vv=a|8x9 fq@LB$ɺCc lTbP2ŇHm:lϽB7ݠGF) $b񎁔mB+Dh0Kuv D H+ooYG ĽܲI98zMsLk 8i:-^n 2gEok R?=(,vibzzy8PXaK=@ Ĭcv^c^ΐT_a}1*ga5Ƣ\9VbnJ/@)%XQ? d @_?8mD"5=ZTy8ԺlQ*g6UbOG6Cc(_<|O?9|@;։|ɉ|tA>n o&GN"m{E n'M؎5IYT'kc3BBBBBBBBBBBBBBBBBBBBBBBBBBBBB!\\07d̜oκ[~3f gރB|vjiXXsEY4yfu1G8l ^"X@ڧռ 8 F3/1pBoO,r4Y0ѦnBjA3b5y7cOdou6!zdr o{ q/&k? [B\ }a~j,Rk!ٺp~fw!?#V^'j9!4 Lӕ3-X96VysB,RiR[? [ 7C$(w]NϼZ+!S--{#Gj7uV9yBH)ӶBFVQSBLfjC5l`a[HqJWSjwK'7/ts7ryC?T0T0T0T0T0T0T0T0T0T0T0T0T0.|Q:C" " " " " " " " " " "j0 h @ W vld +@%$Ȥ<_pA%FFNl{`6 !O 2^wP2pL؂݆?qخF36ze XdY/鿷 16 6Ht}odt}/ *@ @@*@ @@@ܾDAnHwAYM.oʥ١\<[G4rl- b" b" b" b}j00cl }{>m4^Gͺ7e>hP'z|i *0¨B )*0¨B )*0¨B )7}N7t S] {af-ihR͛>.8#B{JNaWH96n;'ts.C%秇pw5WҤ'ڱc oRzXhфEȤ1;oA,!Ff/8LXތzO3HtP! 5g!WIYk.$!2(rق9 Z0Rhăx_0"!xFܪ% BZ˃(8TVq4lv%i$ի%0X>coͫWB崖Zh !V-1#!y+ɭᒴՒF9[pڼ,D,cf!(*˭`bB|p*,ˉBN=+3Dž[0,$k!FZ.VHzW!z  v9'U!e 2 ҧY va+Dg+[,dF;ÇJLy[kB )i0Bwd!`KDGbKPd+d"i[,(?OWBp"8 e# D4x*^i yzW_$Xҷ7(o! AYB-R UHaT!QFRUHaT!QFRUHa`MM$pe3f[\;7KYM_{e@I$ @R@I$ @Ru kWkf8K>Yҧ}= e) HY@R3m~AdB"dCDoyZ<ݰ*jR1dP" " " " " " " " " " " " " " " " " " " " " " " " " " " " " qB\SBR̤,} ެy&$zINi ={2/?,P%9%$~||$@DL:}2/A)j=/@7 ='8'$qB:گ_GHyh%+=%v ͏oϱD3h}99#-T!mﻁϸz׸ۙ=_%D^܇i{[n\?3-y<|ހ֐X#;`:i&hm@08^P뺇2RV=ih3{=C ! ؎ B8O}R?Rlޗ<*L,]i y1Bjc!JD3BM WOy! U 1qbBp?Sk}&,3" " " " " " " " " " " " " " "/;%Q!P!P!P!P!P!P!P!P!Ŏ Q”T(0.UNɀM,.A߅w!7]ȍqrc<.DgF pxЊǩ'f UP+v(/b`GMDRO"Ô#4!/^[rw!3^x/ga.$χKXYOq/>GC^Wx#ڑ* .;? QZRt4CuCm4a[Zyë!VҥXh*F8fB\m9(g_ySy&ăGԲܹ id  d×/^1F` *Բj.\R. us$! .PEOvCbaӰ (.$<ccKB#ĄIq D9.([  I)Bpmn112+!訸L[!6"9BK=V.4S@ Bc86ɔ 4BPLD5R$:8g I46B,E VH 2v86o82l  )JBnL!KuGIENDB`assets/img/forms/swimming_competition_enrollment_form.png000064400000013436147600120010020202 0ustar00PNG  IHDRC?PLTE%%%ಲ@@@www\\\333ꠠjjjNNNee @@00PPgj tRNS`pP-B,>IDATx0 Z؛ױVS~\}IšZXJ{d><-rXZJ(1A` c 01A` c 01A` c 01A` c]q X2rK>LaV:dgYm>i I=3. 2. 2. 2NbfMFPO_/whO9;G3A"8[s>["91dw3 D'HNӘFȈO/,[Mq"t,sW-ץE͞Sq S2_NDli2˓! !"tJ!<{MߋUii< 3֐ ׶-$s ZM{,nhNuTi{0R 2epyr #M2* 4J$zԅ+>m;ײvkȽ&!5Td$(޶`J2JE8 1"rb9kyï^'PUvd9DWTk@+k^.ﶄ%۱EnYbeW@'TD>{*Z&eg0pވՀ Cr'i^Dz \ı^GRuz$q&udXւ9#:"MDqNՀ |n=\WykXf&f&@:'5#ɳx杨p:1,m}d$Pj@pVS|z եuA:;5])Y+ a#aEFDq YƖĬffʟӀ/HaSRwzp'zU f@ ιVET~a7{nOE0Ank͏y9lVWH^g$tҌV&PG? J÷ARfZF%o@'_4 9Da) Ѣt$kl6 @HȮ0-;;$S+r/ҖRo-S,8 N؋mL_J$p\l\ؖln™!c5(RR5K*N g{ xbԇTԽSZѼ̰+ 2a4!}&$ j=cpl:s aSjq%ȇ&c4 -f&q)]?~m ȿ(T^u/?}C$ɼ%QDdFG4x@s]@d0]@d0]@;v4qi5l=ؖ} BwGb? G @m<#d% z^AMRϪyݗ/X ~8aIQI]2e; 4b=ZydsҕiߵCvQCtwB"OQqRA qO/͸ PߵdvH\3or-kT@Ka\.&DbI'Hrˊ4pē&ٔyy ]gQ݋kl7yQk gf b 21cȱ @ Xb r,1 @HD?gfd @FdTdl9t۳k{ >-u[pu:  H,  H,  H,  H,  H,  H,  ĞCU^&S3jCBq>lVKHg\B:θt%3.!q KHg< (na;Ln/;G<22(a \vc~p,a 9 Afd%yhTH!3`kD/yZH31EJ^ 9XA~7!ֺHu(%iL06A{I` F̲֨ɂ*vyx-60\oBsf2N#.0QZՎ$<P3aBєdkɫv Vd!nE3 xUHd}|lk%kOقC5F6j@G!2hNBp1 xXԨ%D=:FFٳj 9BN 9A d&q@;`Xd僐+FK) *Y7܈"OPnlK{B V ЈnfIi*؄~<)d0,CrҔ )a{!i&2d &FjZrӮ'xJhKagB<i*l oS1TM P04w!>`j<ޚI݇ZN(|3dt IRRL`X1M  ,#P )O#aϳ6]dzsx#݇X ihkd!qSpF#4lEwtg=V.DdX݉葉oӢYN BKx=CKӽF_<rOq|}osku'ϟ>=r}:ʣ/ݱ @Dl*9 RG4k_X/J {A^{t<,cAKv{ʴ^   U@H @R* @TŁt%m2ܣ]g5g*PnxDvq$, a HX@ ƎRhFȌ!3Bf2#dFȌ!3Bf2#dFȌ!W@@-ʪDX Wk(dz^'oa+PW>oG!7#f|܌?U68M>9PO;S'ퟥ}a!6< Y ,&Px¢GzVaϼ%D~[H@UB Ѱ'Axi\NјFų8h=.rP& Ci539&9rmabZ_=O DapBEH6˪Ԉb1RHYBV,/rg~XY+!)NWl1 D 8k;рT%5G OBP$,/%e MȬ 6Lڌ@0 .Boi`r= i; y;/$ 5g:dؐsY~! csK?u}B64%$=tTWa1r !15q[ CnD r, R iNB^4! ٻa0_HӮڋwM';L٢SbH6~PA)vVg ?>c o<oO{D,@D,@D,@D,@D,@D,@ĺd=J{¼qх Z~[So]JoϠYyZz+S }rRSAr{[ò0\/'HQ6j*\$@R ]WUn{hdf}\j { >\Uqy 6k}y2 찴r5ΛY)Pu,X\~/&7X[Xژwa)uݽ+cc?f qN@.5_w|dԕs$@>?|'1w@' [ G f& R.ͬ(CaM$T˸47R|S}d_:vbt-ݽW qz |wI#/i\XXXXXXW7GvoS4y\,yeBKvinrcH*@$ @I @R Tr }%ۼ7l> kc5A_%tPu(f=y9l- b" b" b" b" b" b" b" b" b:ª^!Z|1A` c 01A` c 0i%Q9@zђl%\XXJs^ӇM~ƺv!=o?yIENDB`assets/img/forms/vendor_contact_form.png000064400000010517147600120010014504 0ustar00PNG  IHDRC?PLTEō%%%@@@䭭򟟤\\\咒 ͛www333ƿ㭭`۸NNNןɔ쮮@өPױiii0Ϣ p޿``66jjjpp뻻o޿PP tRNS߯`uPmeIDATx0 M |09@ A[ioGi%K#(Aym%3kr\H/t?KK 01A` c 01A` c 01A` c 01A` k:p@@"%BPlOrbH$o)<6$)GHaNєRSd ApilFݟBjʄ>񇡥AR[eABɞ͜:E !ٶYC$φ`:'eJu'B{ wxYh^n)Dnt"d(d/4+W@,: BZ*Dc0yL~[d}?2pjKe:t*deyGvB66E&6!9fÛ5NU } Ę;!3ګI h/D_Nhwp$ABBOHֆ޻;_ {Ht"0 g<:hA| t'R̍_| B}BȂ30Kr wY#!,duhgbYA-\ >拄p(&:Bu3kM2 jπjsv[cq2j|3;9ڽv= qĔ8`PX)@$e̍ ζefmq{?8H͓DXhl]4egQ:MAKmnK P0,3 $Z`X QnApoYςX}H# S 6Z R\;~$%[HBy@sR[.@SA!Z9'Xdq@85][ 6HKk`Ie] 4 ?` @D9tK' dMX Hv!narql3B#jk@^dT2II\AЫm`yәܠB8`mV@, r|];6 q``$lvI n0&_~v5%ٷhJ(ҝOh1A` c 0A;TgfDt(3dt{ 2 b 01A` c 01A` c|j0E@W!03,Z)4Ќ= bm zpd*?r>rևr"woh?w? 01 b  01 b  01 b  01 b  01 b  01 b  01 b  01 b |u~Z$Q \9"×/_dS8i z=-A2:iJ= @txۋ< ʗ0Ma\[\NBcs C;Zz44t)Ca8CZ.##55ȀIG閟:8d^'2@\}~u\.BۂzQ(1:idAV2#jݣwBۂHQ$! z$se᧡2!W$=HD/R % Ԭu^&Q q^D}E3]QcNOvHdq CH=ʚA=VBCa~ uSj%H(:.^ކ(H9[!C刡"Kt$KQH1}AW)·,ùjy]88C,'yuAh]й o>!Y# ۹8:=߯0dž ;Qܸ ^?๱'G01 b  01 b  < N<܅.ؕGmw b 14Aac1A~G2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌأc"a b3:#H!]l!QP!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb#$FH!1Bb9 yR!{}U3,d{}"$FH!1Bb#$Fȟ}Wq0.*J*\peV63 N8K[I  A"X `,EA"X `,EA"Xk$GV;9W; 9œT=$jD/ʩQ9U `,EAORuV>L#ȇ@[aMbE72Rǝ,|tٛ~ˋ 꽪v"A>b,5q$H(:g\* $\BqO.4IkgJgjh}AZ bbȗlM[vIoK-O Vg\Mh\ mz riA5UpS˨Yfی_6t Auމd2MIx9~نĶ\O=Ab 2>,VbAiE6EAy/RJy v bAwDr)H(3èe'f% UOp$xI!=$/yD}'"ej", )^7@L''2MO}*o֛dxGA"X `~A%=*"t2A"X `,EA"X `,EA"ȿv@blC@ (kA` c 01A` c 0I+HQg %Y%,A" 3y \n_~<.zTiM =IENDB`assets/img/forms/sponsor_request_form.png000064400000017216147600120010014752 0ustar00PNG  IHDRC?PLTE%%%域˺Ȓ\\\@@@www333߻~~AAA޿iikNNN߻ttw ``@@00^^bppPPW! tRNSx`PPC3IDATx0 M_/ (!:赠7VK~Z}IBϫ <ƞ5Yg@N?KK 01A` c 01A` c 01A` c 01A`nv Gn@jQ[@XU,Pq2ȭ(݃"*37tL7tL73N6v~Q}V/⃵jpsȪOHx>zb@@zܑR>d1̚C;$Hybf(9ʺvߚmӦł0S8FH18xq)f;Fis݇f{ ՒtZZPy½ٛ{"O{\~o"=bs $1eѾeqsJ!*=NBoCTd+T'" z 5w0K=@ !t=] G q+Ef$ld\s0 ПQZ4AN^ r@*, MeBB6ɇgƏ=~a2$,;y k ?~YT!{ cy@{@S9& vODȜ6>9rqǡŇd/ 7^@نL,U_?d?bYdk jY6- {T@@t̺ܲ7 sd0S&En^% W b zɫv./oS3t!Fcu$/G(-+I09_A,/(_1%F(JOo1rAF|߲xV!/5EtyrC XW@"{tJ)S5bR>StgR}p i4ij :%FTQ#MLt  }tHgtw/tL7tL7tL?1cA .A DfaHdl|ƞgOd          WB*':'*j@gDZ,A(CNPyMBr_`;3j?X[H%ӌt[˜Zd*9 *-KƠ[I4-~im)_!4n>w| В+^T3o4D,ZǤ{p̓t > KȕgB>aR0)S&PyxrΐȜQ~[c?sAc'4N!! yCOhp =r !*K!WJVx5~Z؃Ci9-߅\T@2x˄kd|AOyㅐ7 Q}!cp:L2L2L2L2L2L2L2L2L2L2L2L2~ov;n@~_{P ; I*+jA'e`l'=S8S8S8S8S8S8M!.lpgk[Y53pc}w?:s` l no )$eȩv'ąr/sB&ce69S8S8쌟ڡ0 ira&LA(z_AT1A` $T+AjW-HأR9e 01A` c 01A` c 0PA G9(>' 01A` c=:o=!C0`9s!C0`9s!C0w>M@~a=XZiny@P@BP{mH"wIeÝ<:q`cGOq-.%NnrOY9\T qD %0[.x3BL_b #!\y!۾OBbb~co 1vwT/p% hiwHDQqBB0DЉEP{8h:lD3~퐈mXkBKDuVH 1u r []K~9 cûX!?r?͛!2z`"E,Zb~n$$~p} 6-#SH:w$0s=.?BH8F 5.xM 9E([ P>>yx~Lģ"Ҙ#AZ4¬%F-`B\ 6ZZ*'l4e%ısnkB4`h·OfŲEcHlܿ|}wC{x~T@H6mJNSKq}^c!FBR%C8*b+!6V!ިPYwfxS1xEpTy DM=K;_NUvobB4J`ժh{ǚ V 49:`u!Laob,yz[?{;] -XBhH#"gO q4ck$o>h͊0zc!B7BdWO x$Ĥ41JČ$}!m+!n.Ry(XMN!ttQ#kˁ3Bק" K4l5ML*,$Gg-d;[ !/B&8&>1tGq-B<ڋ$46H @ !$5 Z=Dՠkmh!E73rѱE\˅ BGBbbg]Y Ab(JyٽЈ:敐xNȯ~k[D2f ,]H-nS5Ú:K6kB#B`|đd&Ͱ[b,b}hɲSjk! k!Z^xC.2x[־Bhmdש9b%V̘ NOƌ).3h]B2m9]4??ػcA 1V. t4qs GPrp c 01A`ArY5̕BpƓ=9T? ,~؁1A` c 01A` c 01A`d׀E9]; B 0Bמrqf#H 1#H 1#H 1#H 1أcAX a9s!C0`&`|pƎ'C$ 7ޠ"ϲMhPf(qlO~BGλ 4f7X"FtmOp=\9`3Tqc6EQtx:E O#)wҿ.H `!ߟNXyANI1jOJ0!I21\`/+(o# \p9V/}f dLj-#咓"GHꨓkojۄ j: OP ;,ļ r #dRsRAʫVN[$΢F":kvÜԾY﮴X ZL1KK2/ႱONpRb)2$d lc%-ҧ2h8F/y)yA`0X;uz\ܯ[s:R 6f+eKLA%Vh!HMb ʫb #ZZxԲKcCN󂌍m+{NCz5+̷ `;XF7QMfX0: ̮!rmLJXPp< t+FEKE (`ئXmAHa9$tZ|᷂TD =ugE %lƂص#A 3Jֱ{Q8dcE0 E6 ] Z@~$EnÃAyF`t76p ql?ɹB?̰-<Æk GF1.:n 3*Mĸ)eG-Yx٦Ok0Ȯ1|BK2&Hw|uGJxQ( zA=`+eO/[RL |6h"#sG2v09 RѲL,Ke{˛e?HqAAZO ARv UeE;Q]f~s LUkm`\P0H"H.6̓rρ?rď 3݇ߪB g2AP;" i7رt7mjY__ |Uho(Y\0lςnc^KgA%kkP۴j=g)Zf ٭x%=joucp*2P:yXhbf h9~^ FA ha40D "h/'꯹YNGS+<t{Adv ha40D "FA ha40D "FA ha,ȗJTz_hI'ʱD=/FA ha40D "FA ha40D "FA ha40D "FsL1a+%~ݻ8>/:1A*={W89"8R 1A\v8 o_)c8 B;8ޭ!(xhq sG\^nAR̔6AkL0>XSga>emg)mY!rֻ2ߢCC'z o07 qdO32 O<| LOҰ\ل“5|i9ͻ kab9?\8>eq^H6< v7p8gR<:H$ˇEq#d!sPut3h)ձGI4w D~{~C"4O.&a5Mi P[4>_5w > } 3减@t eC*u?Vo68)[ vTZ^xE`N.,c]sTzAv=Ҷ`r9ڥ)΢"Wũu Th:u 25 /)8ofFD>`⺬ؔg~! <* K:a+Yܚd넳n3}\f od^'A ha40D "f4ɞ``u}3z?=zAV{\cg"ǃ/{|y[_zA AD "FA ha40D "FA ha40DMV`b8ǿ2ȣ?~ܓܣ OB9vKIM亙bFA ha40D "FA ha40D "FA ha40{ur 04/D ׂ A` c 01A` c 0i%YK #VhIc/A,ŞlG>cWm3 sગNIENDB`assets/img/forms/loan_application_form.png000064400000014770147600120010015015 0ustar00PNG  IHDRC?PLTE%%%@@@ 䀀```̷www\\\ۼppp333ϯPPP000DŽꅅշ NNNiiijjj@@dd00PPOOO{ tRNS`pP%;IDATx0 Z؛ױVS~\}IšZXJ{d><-rXZJ(1A` c 01A` c 01A` c 01A` sg@ 27 sU]M ̄/WؙLr2]@N t9. 'dLT7 dUɩ`?éʌ%Zî|N=X@@7M<8}xZ]d,@X"o~W"@:QDy BEzˁEN$[@8O"/uc Eֹ֣BI^g޸KudB֥-DnńPe7HQubpf[2S T~1s CRj1Sߦe$lu=YZh$ aD}a$C |<4\Yj>ȠRI=yu>-$ ["㌭ш6Ogo2dX 0/Zu3qQ䙁H > uiM P- ,@F𒊣L:: f~DcRXcHG{tD/b㍟ѯrbXeh@FŅPpSBKP-'v^AcƢC'Ckiw>#XI@i5-Y](@($ w#D$ե` E jDkr&Vo}O ór2]@Nv]5Qr2]@N =:o=!3Bf2#dFȌ!3Bf2#dFȌ!3BfĞٴ a:X4`0rRv_4nlא>ǏC7!wƛ;Mȝo@G#^P8x;e!-ox8e Gazc3e5H ELx@,jzV *(Έ+\h瀕B?]>xuj"S!QzIR Xx!;ޅHveyo@_7K(EP84S!+倬e@HJMy[/$#? Sba9Șs @Dz/L2DuzF.~|!TK8E0!A;&$(܋)O ^,gk(;Y'f!3=YA݄.Jʝ8h,t:<݇˫ bUpBi|d5]x9<⦐aJr1a?e e- "d&%|y3)k Q[h[ SpYm"n&: !Od)dv *B0 + nM4q;s6\H)n&x.v,=P4B݁; PDCHUg6Rw) )@E -%%5V8b6 1Dq5!MHT!16Q׊8  B.lB3/y լ72,]TQDUUȑ{E`{BqBrI;ŁQE1!dU!j~QHԞ=;8rnhU:uGV`#*jn#EzE% 9d9`[G-7%eBjNu!.9^׳:Q~ qpkHB]Ȓc?~k81E7g)ӹv>U(DTX@zFVS)Er^<ǯkO|_Ϸq^/\XXXXX_ݛd}؛q7͂ g42vinҵ{ ͤk @@(@$ @@(@$J+j{ ۤ[Ag5}T{gi  Z}H@l{waG{[z:[ #H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1L`U?PY\MC  rԤ*Vx9xɍe&$J/م&/$ g4x!,` B $z7!&'$#&.&$rBH"z l&C8It X"{ȒMȆvlӃ:TqdObmGI܅ ZϽZi%Bjq! ({Eيm˵ j.g?0!aB"{[/(*EQ+$GJBwrC &$[vOB~$34! YHrL;V[V2v|/d=!eM,S^9N z~򽐌҃"OB.V6<LN 6!e>X_B;;+/=Ҟ5˘Bw40C dJR;80A` c 01Al[<&>HC1OclʯW1A` clv@/PH>d>b$FAb$FAb$FAbNnzyѳvh\r%c(W-ƼGAb$FAb$FAb$FAb$FAbe V(wqxHX - 6@%3/e\H]nAR.*0¨B )*0¨B )*0¨B )*0¨B )К1X|Ÿgl{B Io> !6]0;X:awl;{BnwB< MMbj-snhdp2eI >Boޏ0t챐&F-[J`f.7ew =:N>ѷz2)||>شLt!l0fg$-K g͎|!cKqct=sl>5XhWB" 4֤9ͥ#^^i.l-D=euvp䖞~57lBZF,Lba-iv&2-]Td9WHru g#R<*$)Bi9趯Ui=E̩gkr8UȣBFu~s@\g/F=g!QzċGX<,-P;0tZ֛,HhBb?gqMmN-NP<.NH]& )c\Iip"ɝJ2bɆ @%6>x`Bob׏}THkT!Q ä5KsWqd@)c)iܸKk@݀IЕ`Əc@1 b 1 !ӂ.0-~!#|id-d&p G0X)L Uyg b?sNr? 3Bb`r?tO ^+u)~ $hp*B|mByA!윋Dk" *$Fݕ' Xiעz^$(ɽĔPI RztI^c "j@+C\Ng5]&ʪC&ҸPEw !ƀc@1> ,d-dBЁ#,oS/_1B!ѱ i(f2#dFȌ!3Bf2#dFȌ!3Bf;u0q<E. PZٴ?˘&NaH:ŅHeZʴ iA*ӂTL R2-HeZʴ iA*ӂTA1x$:7?W @9mV⍊("!z2)MI$"7oIs~k갟(PD`DO'@yv;c~̗@ ʤu,veAoiGL4|HLZׇoһ&H DB!灙{(t KDG[27׎FԱ ,N $^b'-{(l rg8_69krRv@r8Nq 59B @][PK_`!!?_&P附L9;mէS{vYSxeL &߁,&j>zz> OP 1޼1 3C *#M 2k(tSaΈt3~NlhL4qԴIwȃ@xE0 "UDL0LaDN0oCC Q==4Dӎ 1Ho4EE,K} -V![Վ@# Lnu2 v *i>\k6zYJ ?"0u@$$; Dm~-Nѡ]P"o8=VXE:W'prMJ !\`75=`="~b/yhȁFV"c bWu| $'d.N|"|Z}Zeِp=oY.HƵ[r? ݻ  L#$N_BA[i^ Oч.h7]syT,H￰MGwdq߻z$  D QH k& A#P.' `sTG0P]@]@ٕvc~c3=Y{5[ÆrߡܯN3 [ H,  H,  H,  H,  H,  H, nQ I5K(Z1A` c 01A` c&2J WHϹ0Z3%-}_ȧL}YlIENDB`assets/img/forms/bug_report_form.png000064400000014524147600120010013646 0ustar00PNG  IHDRC?PLTEuuy%%%ַͲ@@@˺\\\цwww333}}ꩩ ıNNNiiigg„EE00y7mtRNS`pPVB3IDATxmo0;Bpi\5> M&_wvk8{-vZ?zBBHRo% 5WH m!j8lbbJJMX0BmրVHH- n+\{(څ8Y X u+xԦCi%%/TB!, 90QH!]!z TDIZk[`A!G*ec17i`RZIBLLW!qZxb"ϲ򰝂%Y217ͱ2 Y$$p!B\6!]  ~6!.jD]SBh<9OxOhB&\Iݕ@B kԓ!0[viTWUM5ΩNx lHBKRطǷpo:$f!^/&99)x_8v 웻pԧ!ńL{195ؑkj{ 1 Z DMrN!dSNPxDi1u!-9#ͻ @FQF-6!N) -q⚛CFgo}8,?Bi>^Sȋq y1N!/)8bB~G/5!D% a>%ܚI< ~.Yzaoɖg.g{6Htw@|6t>}/ *@ @@]; %IoSF& @Vd @V@N{v6ȼ=߻ 2ڳ{ k }9pu:  H,  H,  H,  H,  H,  H, >ίi|8V%DaM$ ߄.t,".c;ekS!P!P!P!P!xRU]` P98MSu;̛o`f_5^#D⪖0Wr6ڌm%!̓ MLK}qmaͥY@ 桯;Ws=zа~,a[Xa k 5BйeJaB߹vGSSz&/7_%3E-Xrxز|2Vh!Dbwee!dx''.B5o~>EC Yܺ\o1-X>%R\μѻ,fzժAv4XUݠs_ƜR@2IѭxٷXhRZ{nb1 |x$1#83H o鴲B0X`[X:B` )mY"hRX B x8+)d5O xgq06M1q߰)WDBBBBBBBBBBBBBBBB1Bݽ&t9 -BSAdʣ[qN#wpcW!ԫP!P!P!P!P!P!P!P!P!P!P!P!P!P!P!P!P!xlZȝ>tF^rۭ>Jzwm5u(o.r`0+&)blLKeϸm)8+L'ǚoB!€a@0 D" B!€a@0 D" B!€a@0 D" B!€a@0 D2 \X(ÄLt <,/ \BzBuz/W8$;)~u!^eFG7Z1W(:(MH1c;?1DK a@0 D" QGF}?D>>iVo9;w" |)0 D" ƉTes )ڢk˽ ;*ug!bTص~eUvÿg3:VV?Br32p]Bfkjڽ Ym!{]]Lhp;޻{HfU_m,>k*{iYBJt?w*3];Fa(|۵K/`C!P B,5H*$޷$#"ɿ'ӆ^ye]cZ֐J;7Au>ţ0'\ S c@=H岡sn> 01A` c 01A` c 01A` c 0<*o:@}WJS, GH5(ڿp2YNxLP4G2;x ކ?.1x#鰐 7 [B0x+CBNFgBc"x'ѕhTC7Lwґ`O V9uu8 iGvXq KS=4W9ksѥPG-O%S .e||kdG!mi90K\\+&d! <ͥ%&&y6޴=>I?BRj{ߝ 3҄!Hn9Flr5cML٭"WV1 S#IYIaAc'Ģ=6!v$+$. MH#d(C ^!͖Jkk-鰐'q!XGނ4^i!d !'c9Cȟv`bJ ` 01A` c 01A` cH(lK =ThIFe/Ay%=yu`Z&jc^s;< }KIENDB`assets/img/forms/check_request_form.png000064400000014311147600120010014315 0ustar00PNG  IHDRC?PLTE%%%www\\\333@@@AAANNNiii۠Ѽ`` }}@@00PPT0? tRNS߯`pPϔ`=IDATx0 d ZؿlkDMtG+S/ɕB| }y ,D $X,P c 01A` c 01A` c 01A` caόv$(^TAyh'VhazJbӂB R i:5}vA:P K^Pt>R Q3xt>LMSV 'BT2$DU&1C!::oת8-|Bܻq$xSBx"HkPY2yws!IHѩzKkFb,0BmnuHB"le9$8ch-BR9C9AtM8+5RD\f6h(<R[jbB,5L(1cju}JtKYH0v< &A^*CHJT|xS9_ -⼷anz;6eFv~G yf[VAHI) Y$vJYI\c@HbU Z ¥ΟBn ױ1kQRcȱSIo߲45y!bsh`EOY:401Lk{! ^.ag-] ?+i%w[!-\o>  a4 و~|\,ߟRZpi ޽olXP}\wZs9gľbwl[zBak1)2{!񗅴n[ectPal**I)D6:/M T&Ct![P4F־#!;Bk1υflQ/#!saŅ)W1,.SGlG(XoZ^#±78\ 8OWLAo ;TJBzJljM(.Mb'G!vD΢ qEo:*" (f|*#CAaRBٵ+ s,J7RਠwUU:30LMBebӢ֔/Ë6}:$!HPKXуɨ^F~RvSUTd[`>k/S![HaB \!!~ B R¸-0n!q )[HaB R¸vneq/LI:Isb4Ow\>DvI|A2 !C  2"d0D`!!BC  2"d0D`|/DY[QBֺ7X%k87(l"MqB4@06)]NzKV{uqrj<,)'BXh@y=aZ!<-d=;b)Q⻬e,Q4C+Jc%[mX*N/)H$i!D?ANHh!g%k6V\ qƜc5X~='bޯ7X -B#ź/dfC9SB3wh@ gQP_XS$o5@ծKhh^)Yɦ0>.N <:!aC-;!XIfIx!'RF`dRCZWL A]){!n_X1̵z_4OUD+l1A٤2W6loM݆E!<i}\&( N7ݧ}7R)Ȥ\T!/mn?7WGC|4!o8hB LRq!!BC  2?٣cAQ 2#dFȌ!3Bf2#dFȌ!3Bf2#d&vͦmWf$##mSen[!8-9ͮ3#?h%.Dl^ aS u7rS[Wu! ad5"xøeCz3 B^.P hqpOW!_pBHTHC  ѸF!oϟ>;:nLQ!"-0x2f5B&*a~$"H"֙uNoNI#U *D|$9=H=!}Lk81!  g_T*ӧ0Plvb42Z.~p^w}wȲ=tFk;AT!SMWsVKN5w6r, ayz򐨦 eOƗY ,y}|qG7!tu=έ+i@  BHYZ<5!rI9Rk5lw}q^ iK>V:BʎBҸ K!'1RpWCPJr IjW+LJ@VL[$/3E2@Vq!& /B !^v GJy9`+} pLH2t smy w߯wbDWXnX~ hhK܅®N~AE-B"*?Zw$yeC8*$svK`?RX4v`|rwd-sAr6*5K=rsb\mQ Q %#8*+^}J4#XRbԪU!F)!q<ĸ"%R-nOOH@/_+;{wۓ6a]NZTZ@7$`uqeCm5&Jhz^+sC~p XXXXu6勇ym rd[vMA6/ۮ1H/.~HaHUHUHUHUHUHUHUHUHUr y$]m >V~9(8rfj=" b" b" b" b" b" b" b" b" b" b" b" b" bՃsc,ʲȢdlԢp놓EqVE ՖH.<"p=W%8+ ՅIܿ^YŰx?{, _"{k4`)S5M HEA&IQAR{RA! HB\ūKV‚fS@Z% g}ȸm.HA}(Ҷ82J?@D,@D,@D,@D,@D,@D@y´i]kydGHmK]+D Z" b" b" b" b" b" b" b" b" b#r (` jPηQ-; b" b" b" b" b" b" b" b" b" b" b" b" b"V=HP4b+K5[K?89weiGԊb[]'nzߞG ,GU}wb Cȟǣx^j?șd@ _׿׏q:Ħ? F]#w6Ks}++> Թ]HJ';g+@$K.!aXM[ŁLn]m!ֽoº) 6,ֳ4⒏Px2י\JK%7x6 i3KaݐaNu,`b9qL5󤐉JLXO2B{C*ĦId.өHAF4c `0tqjDsm`w [O\hZ{oClKTt%fBL_w}B*:!?MBw!qCHeB*R8T!2!qݱ @V%{s\61kiaӃ"\{*.%*qկ-AZ#H 1#H 1#H 1#H 1#H I*4r%wro`5 1#H 1#H 1v@blC@ (kA c 01A` c 01LZ @z>J-*aF b$kgvsqqO!45,IENDB`assets/img/forms/form-layout.png000064400000006242147600120010012727 0ustar00PNG  IHDRC?PLTEōov~ρ߷x~ ̛`۸ןɔ@ӪPرp޿0Т眡@ԩ֗kf IDATx3mH 0H8r}iz'tK6{H|+ e0 `0 `0  V]ASm߆C>++2, z6 ӥP*}M q\^Ss!ᕄ0B`J]gMB҅X4 3CA)o:%YRI/qMH$w!Y3k)T.$ i5Goafo& | MG-J4Ͼ<2Ե'A0 7!u—#KøU0fTRWJ&{i mB>xS\x`Bmw:!}n[Iސda67fh!%h@脀& hWC@ ǠUB"Dw9dm64!mKԄ| s;v  Q|لp£"<@6HkAY Seo @PD|{xgtB6̽b6!3ԃzGZ^٫ NHAR>pBa3!)znuBCR'  5A}Һ\MbBrmꅜФ߅(("Ne"؁͂T KmBugĽRT^`L-JJF,!k]0xŁ҈FDJDWl;DJ+ #)Q6{ϔu `0 _Ak0Ȥl= XK*^)"MyLd*EƼbL(ŸyKšQk[JbX-ui}bLln,HSY D(Ce A!2Q D(Ce A!2Dlt?!tȡc5[*=ȑR[D ۘ;1cyes7ӪYm_e湴?d%?]_M̓]kUgy kldq /m8N讹G|;X >v72m;c8-vB5ywgsLwÔ<%Ț߿G5CAlAO9 ?OXa Ev+dTHxWdC\t3e'e rK__y s,Hm*y0@o1DKf=s{8 j%ةe=Jδ        Ҟd w;Joe8x2IJC^`uK(C{J}py{{bSj b^Gb*{g8 P$˶ N5CSe;-t ;?QVq %IN"h 66J\ )pNB8J #,61r,u kemj8%(`!++‘`\"-TM߃(º!%Լ(enˣCH䚐.bт2o6cipZ'(vT\N&m0![w6>)=ܬC! ͦJj=YEHv6I[(uWZtA٠0w!o!'=#BJl"ER/},1½bk!WULFDdry'Q^G>UO59yWI3XLH+m]ȩ/orBum^ Ye󼩿!Km.τ-S.x\0ܨ/KYon2ȫ )*K;B *t8< ! /ը H(bVG&ew)q2uglO!ĘI`C{ǹL&d;X$$0(Y3<0`)0/I :7߹ Jj94JJ9c 01A` أcAQ 2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!3Bf2#dFȌ!SF@ybr0E@`(FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FAbd?wW{>pəuo\YWq ϾCQެ؃@ d$P9|i{l[Ph.oHzdC• b K,[nBzI bnB -t@A1Hl+) e7} _ N9cƒ2WYiw2B`Ubt*H ⸇|3HXiZ$EQ.׀Ѳ`F16 .:SڌO ]AN%`!q7Ӷy4uy`՗C/ Ut.Dq r.A"ͮ-G eKMJ CFی9 lhk,esA},龝DVA&= I3"Cb3B2t"6 Q?s2JGdo Il-ȌUrE50AX I ޶ O&Y I<'ZEnADr jAea7iҋSI4( ʣC[t bn]~aBj1p+-AǶ#G.#sSrm!Kܹ0O.bh7B,na?AHILH0oܺ/:N4Ѩ#$&rx!A&4V,t5! >⮐{1Uc- +B6g^>zx!{ I7yyrRz(*e ڥMHIyQ5OXvXp,FZ>7B&8B, TB8%NwP{W 45!ѕĜ͍oheX6~Z%6_%H;ԑ'Nwd( 934i&im6ajERoYd\]!`R3Zvԅt:J !d&қz .uUlhC0#5&VB=dF[OHq(Bފc^^f_w_oe~?o>P/9_%U>U)`B)`B)`B)`B)`B)`d̒㄁0|Ux/sRI/#3 d  j-i. 2. 2. 2. 2. 2. 2. 2. 2. V[Ւ^)7y}jTV@ցC?% .yMN}W޾ @|rHrmT@4Xr!@,@Ej _R3 9t{RDg[e`Rvy8nq +9mc^66tawL"dqSJ)Wږ%}seۅΗ dH=f$%@iY tG#OlD ܬQzJņtCv%zbmIK ~5"Zn@(n*4+;cmRHxR )w `۰z-cgn=V*dJ>'l:eRz9NALMϞ*qUl(GlQ RtMNV?dDJ\s@A`?e)k LN_z1in;n=ۈNBHXG:MfS":l4#s@|r-qVP`:' p;1vy`$theHCPTUNx"@/ , ny}|wVR@f$jwgOبOn0BTrGH XJxb3\f:3OV2 W *S쁐D.4TA2r~ ~ ! $!~#yWR9!+@TjV+&0oNifM6R1#l<]l_av x¡3Za! J'e;F}\m) \<~> /GSgORI3p}70UW(b92T Faۚ N1TX1сmεTeһ';#).6ek&'TM` *|)i{ DeZ5B+i|W 'p $T|"KUz_ԅ06X HOrRr^P?Ÿ@VӖ(PL|klSֹAl3.Af|rR9JC3>TSV>mGyoCh7@?>JtLtLtL[=$ꟑzEvsEbO~;=Z 7Xz=l6}jAfA@:Қ'zs"G~S=0u R|d XO)fͬX E|Ɓ1"Q&/UKf&r+@fL&R't}>r į=)գi2k[ _NPjI#ϩصE6Au.B.5Pr8=<&)X7PFRK$Hn'RtǔDE0DxlnA(CDٷ@>e)M]R~ʲlW<7rDs@&UW-s>- }%@4HbJxjkHrbu @h\1]~u# ;'u Mei> Hʍ 9ʑ5 jpa/CH-Jt"/fk- QNK6R5sZd"!;`t'N5LYamWa7= Us|"{#vW@Z "3LW/,o&M۔@&uOAɩ@О|%܁Ifb bQ9񰡵d<΁2,ZiV; -.1関!+~0|73fħ)W=˜Y\b ųp`& R:hizzJ(tۢekO@|+/Ap,A4eQ/T2k,L֗r`^ӟ?f'1SuP.q"1Cr;9U]z7:-ߩǒ]6ty2]t$B*c5q #dd]@d0]@d0]@d0]@vvi 7"ŒveHH;@`LpD1K)L2[vP!QdFEHf!QdFEHf }x7 ˺w3cB +SZyYrn5F*X:uQuNM*]g/\+a#`~w:Bņ&f?DU3NhR\햌RJ7ZYdp-՜Eֱ'΅8@UO"ٴs|d BP1 g_pQFJe!l* `!7I]s!`Tc@}gW+]օ%Rl I[^`j!hZBVCN8S>jBUCnw !niwB}!`P1,!ё!d !n$*N"DQSs>~RͅXjBOƧI%]LU1 ]Sz.QW{a WC|D{(,!Ne>vZ&'"tԏ ACۄ=,cBVrU:n4|c5EHf!QdFEHf!QdFEHf!QdFEHf!QdFEHf!QdFEHf!QdFB4'u!o޾71G {4c1bk6]r3_ob&ZKPQ KH14I 6êט ecA[z8/Tte{)N|r!\՝bPWJKJ 6x RKV;q24c!" ',+@.9>C&ºfxt+ kxߒ\i 6徢!҈BvjlɈNQS27r\Ȏ l*-H4r,\H\` яkfyDN/Y˅r\3py\?`;Oe%ghtmR!<QʥB*3" mHT iv!|x] Qu8GWDT*;nC#F6.yuecE!8lZȗ#oSzrg9R!M'B$;>rܴ #H mʦB5^X%BIBHiMNJ8ۯ 7D0I}+n0 MDtEȿԱu,1GrMlP1̌"$3(B2Ɍ"$3(B2Ɍ"'{g0 D ha@K$[-iQTb`eG!€a@0 D" B!€a@0 D" F3?+Oڜ^s{JM,\^tV5vc .s79jbf9FBqHNaT|ŜܮkBIHi-qT;>WBkB'ɝ+ 4z4X8ȐXх=Fwh/ dX"1,, Nj ; Jhn%LKŜA oB{@IW)3T*SWGӟЄl(Z5.N+DY(#ȤR^8M&BwCdm0QD},ukŹ[xE< 2J"F\s)Ud@@TyDUYOoT*= qauρPExəҫ-U;'RY`d;x ׮\7X*Aq+ $ Q Tۅ[>,,Qm}! xm=U@P} ,5 gswp\20~ɷ@F>*VE= ]xdxO4,SLhҒ.?A )4  G0!݇'{yd;(0vrz3 9.G E} Hێtl d), L>oYyXܲF?Y^יRx\LcŨj˖ٰ|^"ӧ16, zqs n#K 6u@*1'>l_Q[XĩsͯivuQ≇ØuϺV?{sg^5-2^@Gy%u?W~cV(C_|࠵tnPg$X߻FݡB:Ct *3THgP!B:߅y̰l忄HW0?& >vW\/6$[حkzwj%* "=IycDb84s-ː3Ξ *Mq1xp|2jnAz$JR* -ƯJGIV(-BgjyJ'3Q0l*!::qi ^l%MSHvEAi"EYV<\VSRLx*¹B)Ԥb%'> p`P a$JuHeQHʝ,b˦n6 Aɻ˙IΣ$|(ʗe X̸<άX&Bw{ÿޡ*.1. |,<ܷmZ!/!:s>X;pkJ\7=P!B:Ct *3THgP!B:Ce׎MbN*.lP@Z 0jGo8Z1X5rAXAX c 01A` c 01A` cy#aknB͘8aEY%viH YPIz|Bd @8c~$]@!}$ $"8@IDX1#$_9z>z!ñA'/{' u~ ljr9ۘմ6+Ԕ\m@$LZ*H8\hXr]tKn;jE#~G B@8Kb2T>_YQe; =-Fߠ QXJl=Q$\1`<{xe: ;r3$@ 4t -,K@aW~#.)<G?rHR(mh51 sQO9`eC%X\}VG!H :Uڔ|lIבJj{:&&iy*mGiGh+>9A @tD&b3&"v df@& d2@& 7{wL0пk0B6FAb$Fooy]-:{ 1#H 1#H 1#H 1#H 1x-[t$FA:bYؤ0%_ >$01A` c 01A` c@Zf L/[ %K#ѳ8#W^ i_ُ,7PvIENDB`assets/img/forms/admission_form.png000064400000014372147600120010013465 0ustar00PNG  IHDRC?PLTE%%%ʑ\\\wwwj@@@333AAANNNȻҲiiiż簾jjj @@[[掶7~&t00o}R5z tRNSx`PgQwIDATxձ @ѽ obK7h$D`^ ѳuʚdJ!X] c=-cH 01A` c 01A` c 01A` c 0,gJ clr(|-\ [AM^ 5ԳM1L:e~ yퟨN G mU 6xl瘥H9rFt 5i@Bt' $1PC+!lG @Ϛt nZXk=;(Qh?Z (/ƴ-)QӫX}?_U dm2jL}!"?M,jѸрV$s`(udG 4:W9X`@. MWE9<|/²5$-sֲW F~9|p5ŧ QR=u6 ^I @Dn@:L̳^m@U٦V ;{lАfM} /@6QOQb)TISĮ|nu R&]C6@hk r.qj&c?u.sNkϢ5<|#@Ɣ"\HՁdӣ99dDHW9O!!C bpLYrMS=T|~M脮hԷ@2|$hDGGD "s;#,ۃޘ_&<-K 6@yDKf@Z-ч/,U\$t/Ⱦ~/{t,0zK!!C0`9s!C0`9s!C0s>+n@~_;d!m@z0P-M.JAmj]vNfF$/MHblBc؄$&$16! IMHb"@hpC f+ f-dV&'4 P#$f#>a1ݲ*&'JB( (ÅᘋB>? xug*P]B>=~Uk3 <_gd&G ]R \H?MxK&&~ޝ׬DU}T ޑѓQV9Bvc- s 4iB8' ;:(D.ˊ dQr or:ϐugH}ؠ֍5*`"ey'j9А]|!`0 # WVKpV BDeprAdxKơ§y~ZUYt pde А y !+`Se 0B…2bHkκGaQ{P1r+gx@fp!@ &SXB 𧐆Cڋі#al×}`G5~`&!Sqn]g̭ѣz_v,$ܹRvk0֋ Q }T,#T0Ddw@D/Zܗ2騐졧.!bBАf!U{ ѢGa~xŇ;9DŽljw} a$eQ!8!yY~5ӑ? )H,qڸ )ԥ.xXhG*96! IMHblBc؄$&$16! IۗIg/w\ȫW/ի/wPovb`OI@5=VpfZ 2>.~;{ 01A` c 01A` c 092o5kg/?ʭG|+{Pl 01A` c 01Ϟ CQ~8Yi# ly)v3m'(_#[^G&A4ViX:Hcu A4ViX:Hcu;=?Dqlrzx9D& >/T|AuY9&(zeZ3e6,B8HA tѐ)dZ2e2\=JY[#ca9xpLY\)pq+g%/Kspĸr N$:}dQ lh dT-,Ԧ``l'e;﫱o[V 3#[$T oCR? 2ΫCap*3:` ,:= d [9q$Wzs9BR $0<0>&͠+Ȟ̳:^.vM_Y,2Ǔ=rGRPA0 I_AF *J[|/RMI6~8jX:Hcu A`a 6Jɱ(gn[T1A` s ^O3zZ>eyAX.c 01A` c 01A` cԂ,/C9Y>c/c01A` cѱ i(f2#dFȌ!3Bf2#dFȌ!3Bf{vТ8 q <-IrkTRÀ"5VZ"L~1{I<t \TWd)9pYo8Ⴈ n$5Ѕw„s sdk}o 3δA" ^c zsͧ֌ K@oРd i14U d}qVpy9 RLWJChB,F2 hjZmR qnw-AZ)- C*=Z A CӑeDE?x>- d#Md#㑂L巬ArY[:} R"tuKb R.8lRS8I6Dvo87;HEKN3 FvwO=Ia,;3N 65+dwi쑡 ?h OӷUW*@{:. A .|$ }Da tIkȮvH,Ar1 0 QiB<1ulJQˆ1A` c 01̇ bEoRZA#AXc 01A` c 01A` cK PHr$Χ9եc=[q8~I&mxBA]hwߊ4+.?F9 RM-KR&R9Zuz0ݗf4"H!84c Hkt-Ufj$ ׈fr-'>#Cyqkl5:H(HR<Ҷ_(O< Xqh4.6Fz0H@Ɖl Bd&$u67B2RV3 rAċBAs9CH{ rAtc 3rEe5A%)XWK/s \˥C RVaf3Z$/-0H;<~`9H9)z uAaeDQAaeDQAaeDQAaeDQA |uݧ޷,3سY23AޝN {vG $)HI1dL6,,-.ԡ.씧ɱ|za|@4y-у>ȋ>;Z0|_#&9A=R zWi:3ZE-Dߓ.yv?=g|IpN YiI4svvxoAT< @p .`,ɟ > =[a3@ DԌ]L"x?y܃h@p 6CA&9~q4Z^A)H_/+  vxtȗ, 8Ā_@ #rĐ2uw r VH(:`ɠXO2r Xw) JTTTTTTTTTTTTTTTֆȖ óۗ(imf+̽j^ WW@]@N/qL Ȇ6dX˟ g384cLxZ\A&f=!,>1, ,yHG<؜Z H 25r4P$K!myxu4]c;iIy)rw j:Oߜ- :9e=b@6ѠqZ@@6q>-Ƭ "n{\GU\AltcTn(]gHp =eAtӐJtvD;G+d8@S`p-h2O+|?ġ+H>_sA p u웱2*shdS! sHREy<$A !t(7DAaʳHK\)){{| ǐ'/ v{χΛj:ރhfc;/S͇G2)AN  Hq\ԧQ d8$P/ ȏv@ ahfa~HH~- 01A` c 01A` Vi%32rl%d/a<DP\y /3M~f?/@GIENDB`assets/img/forms/tell_a_friend_form.png000064400000011476147600120010014270 0ustar00PNG  IHDRC?PLTEō%%%@@@\\\www ̛`۸333ɔ@ө ͛ꮮiii0Ϣ p޿NNNPױߐPװGG00cco޿ٚ tRNS߯`pPIDATx0 MJz-hp&߹k_gK[^K L⚃r@b 01A` c 01A` c 01A` c 0y3\A ` Hx; YY^6(oqxIV&|2<1B i.1B i.1B i.1]<y$:s@ǖkX9l4ISP`tPvrk-ހ O7oު]QH$42U!'mmLR 9kBz# 1O7:FE5˯8 L1Zh"9@1˿*gnii0ay],& : Ѹ5ONZrE#i ]eOc6IdZNg'5BfoaCe;<Y0#*t YX<?ݲ>~O=!jxzzPȏ!?}!N>N r+DtB~~~~o"DBz + 9RQ$" 1BYkI:r"Owlo(R J3~P ,BSMQQ)D V;޶ q@GgƷlӳ/1/q"80dɋO S95b" :EUDljIF%l);y\H,B_~`\J(B 7 =s yyW!Vr~Penq!lJn[p' qf"ZH1)A*ľŤYצ'?̍RыBeT:x}Q1x1,P g,@q Y8 g'@ǡpP?asANmi wk_lbi +@ @@+@ @@+w 1k@h(.EQ:8,!K`S(,^?-G $ӾVs~(L좜q*ư_.[K#!!!!!!!!!!!!!!!)B\<ȉkpbEIrBz; 3!v! m~{oa.|8!f·O\d{ݡɓǎxk~L̸_8R{tUvEu1MMuuI؉|yic>R7=,Tg%E6q0Γi|'#082 ̑ lˌ ҕ}oP|@j!ٍf DLuh('ԣIzrSj@bl.snMy&>t2<%/y{?{[}ydWj@LxV?&Oyd%qqZ(ٻE HZhh=1[i$kQ?fbw|bL ŸiC8xwlBxyH 9 5(RSrur_˛HEJ@𕶒,D%j@@teDYQ@eDYQ@eDYQ@eDYQ@eDYQ@eDYnQ Iآ_!Q>a c 01A` c 0I+H^K %9J#展ּ n_N=d&{>IENDB`assets/img/forms/conversational.gif000064400000352244147600120010013467 0ustar00GIF89axw! NETSCAPE2.0!,x """+**0/.653997<;9B@?DCBHFDNLKPNKRPNTRQYWU[YV][Y`^\c`^fcaifdmigmjhqnksqmurpyvs|xv~{xFG HF G IMOPS!V#X%[([+].a1b5h8g;ilnqsvy>n-AmEpOwDrJtNxPwS{WX~gdhdmjqmtqxt}y+;=\ZEHRT^aeefkonpsy{q|`aikrwx}z}~΄҆І؋ЊّҔӖܜ՟֚ކ֤بجٱڥॺⱫܼޯüþ H*\ȰÇ#JHŋ3j CIɓ(SVVʗ0cʜIfL.mɳϟ!qJѣ0"]ʴӧBJURjʵ¬^Ê,ٳh4۷A[KDvꭋw߿gLˆ/=㞌KT.˘eF̹J˞CyK^Y5ח]ÞX6ۅmW7|A7h#_V9ZC>U:Lc^T;>V8ͣ_]=ß^>s߿S< Hᄤ9HZ j J)H"|&^*b#x2]6bc#t>\B"Gd$pJ.[NeMI%lV^ZZe} hbٚff.fnIcrHg:މgz d~ hFJhd>hR> iNeni^ni~Jf)bӕ]JWknJZޚ>kc lsrl`>[UҦwj^niނ nKfkԮlmKO ټo 0|+p0 ?f=+O >gn}Dʸ"t}Y^Yה ;;]A Xx!)&`DHP8.qkc7Ap'pf8YlZ% -BH8HO bIVMqln/ Fpۅw]AJE&,GpDB Ypf \1" _Fw3 q ]t B ,@ۅMa!_Y) /` -H9&х2 *a /da8"/B B(] c7X @ '\85#8ANpRL"*,P` `w -$jDB!H c[L t~uD" tA9RZ.B)^@cY@d!5n= @A$b%`xP]`;@` W  hJ .X$֨E/f@F`N+ ghXN{M @`nMc ck6t{Q~dž: q~<7W`\&l|cXg,VhGQ}Sg yj$`PfPw $ɔ @WH  b ܐ J$>iY f]vZ2>"0U>#uwe>jW&#riW11 !#̷ٙ9Yy陕a1&Qc Û #CbœEeqY"Y/u)Sh֚WTby'0O5/vI5/鞣ك9AT󢟧ɟyi_T|:PQU J ZT$*zY4 :V%Q4'Z G+*ʢ-z乡1*Y4j6JO Pg=P Q@BP g; '"7# pP /@`p8 n \6OZ0 lj R:r:  S >apPc=0ba:.00  H F #DpLYkw=pgnp u植j F | | :PPC 0 7 DJ : J`J"T~B>paӠ&EAJ``J` ϐ ʀpPjDpHԀD ` E R DHpZ:"*/ ꚥ`iJ A jP G P J0 j q k@J EPI 0rx z@1p0@ ɨ  Ip_kJ _aaD`Y[K bDP@ 걇`еF({Ip /3[p`9;p *` J Ipiz㐺 kk +? Фq3 j7@_*;k+ kA HѰA黾1 D@K#+,0=в`*Fנ+D&ljDR,@E 0GHP%-,.Х{czâz<۹Dˀ[ʚb B; HǧkKU;G {kP (lƾ[*.p,Kcr8|ܠp*@U$Qs\)ʳ,mB.&!\̶|<̣(̭8J6G 5| l @ J< ݬ:J   }}M /1X!}Le(m-MX3I"Bb҂Ϣ"Bսbպշմձծ֫"֨B֥b֢֖֟֜֙ד"אB׍b׊ׇׁׄ~{"xBubrolif٥l)`bٔLۉ%}%M%%]$$]$-$-³M#m#=# #"" m}Fܽ=W "!!۽!!}!bՍ=!=Ӎ/=3=MQ8w"Bb!A(rejrQV!/>UomR&n.2Ν5>,~9'4^;>?>'=.AEn'CGK'InM~Q'O>S*(~Y~VW'U]a.(_cg^(ei~m(ko>s(quy(w>{)}܁~N)܇>.7[NV.V-~ܗ-U~..>R٧>^.'"Qp븞뺾>^~2>>5 t^~63>>ƞ~RP@Eɞ_^> !  U<> ;*,!>zP |`s`}P ?-B0_^˶0qNs0 @?VnZ_HO'{b|_Ejn/]_2c_{`'Oi_ p y^ v lonqP? g_:Z pp/~m O_TPpG?Ǫa?syOm@ l`{ p  0 fo@:P: o^$XAe,dC4Ș)CE(\tۍZr%UdYR`81eΤ9urd)Xo=Aqz ^ ~PJG;ƞ6 jajO5Uk>G*@v=9o|}SsVWWskA@Au#B.%' .U(ۻ6‹կg!hR*ʐ(4@b>CLB)xc5p@{6 @]㩁꘥ ﴻ`9Z@&#;Zh_l#F?ZG (ʨ̈SY%9eȅ$@@p5i˝L<$@#z: (4 :J o#D{4ijhҥ x nF{5:Ah #G*bŒ &l2mlZT+-UcA0c-IL#d.]m]0[߰ʞ:S=11ื①</o&(Pz\t 43r]wAd\dTKM>ZIGY 䀃hr͍Δ` d\j h<576/r 0Tf@"ؠ 6MwgrN/Tn@f`%I@_{I`*6XVĠ 4(w ´a  Y{xynLrɐױ%DKyTT26ђ8樮c͚̦r˦Z* WuU{fa<Y`3Ge[b lp2tNM`!q~z"lgyy0|e~^Yi ]'?6&gkP$` x@&P$G >}0rY$#DE4bdc'UF8i#KHF<=qp THjGD&2!|$ @F"-yI05#!YyLRI)Ar|Cde+]JXRe-myK\Re/} KT2@% d(G)Ja df3LhFSӤf5yMlfSf7d%1IpSdg;NxSg=yO|s<(OT%hA ΜӜDAPFTeN fhG=QT#%iIMzRT+eiK]RT3iFm r%;iO}SUC%jQzT&UKejSTFUHiU:UfU[jWUUV%UzVUkek[ZV!,ExA?>JHGOMKUSR[YW][Y`][c`^ecaifdmkhpnlspnvsqxus{xv~{yln psz"z*>E^c|}{~½þR؏OOQO߈PPݘOKKPK P@|JG:K So 37!0Jp=r#BP\TRm-L\Op+݋xΜ(KuDQ̙&=mQLQ2MZL Э=$;ȑ1ȭγ +UbX|[F(㤅6+eXӨ# ֠ЂEٴdg?&8՟16x냾 > d ]$ZcA+\uצ G-Ȓ yaY/ *Zm ub>T6¸In9Fh`t^yeV RdsIy91[v,$n"EauEYSVZ)m#UQ%8߇uG5V_@ff#8#A`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*LJHUfkh ,vN$Ya[%=^\f-e쳕Dȴ^aa'r+[C항% .$"lJkLk]Dӹ{Ń L">̏Ȓ $hq"vLq'De=q~5s=2,G7w4۾Oݜse@[uų uӂP. т@1S{vт| j{ $Ѫ]}y=TwòU}=7Y}RmtCW7ʂa7-dl8[Kcoθޡ?^zEϴus{NĻ6"isX#}U%{ s([& IBL"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gIZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrL:v~T@JЂMBІ:D'zXͨF7юF HGJҒtMJWzQh0LgQ-}MwӞ8 J]Ӣ=R9 @TJՐ.mS UZ<` X ղ2bQ PPQWJ׺JX]@uP#(*m)^J__ °ͬfIإ&©/h]Ю P >%@# ?)kEl6j"Wm7 B% *OA ݃   ~^`)(ո-A\Mk6  U ʲ5 rX` ]$*p (=B (,)^1A!-k0"T@@y_ D?UX]!L,x :@&`2@@nwȀ%x ,8QȠP#y @<`8iY)@"X"KH `- ^%*Z Tp x]@!`*2@APW=Zl" `J>@p t(d]nڡEwwV t;p @ a|`' R^L+[ g ™2Ū _^ 6!z_qߧ=Bm]6'!@PoV@AC@*w V !(6Uه|X^nB2+p69`Uy< 赇LOB{Wp@\Pz~p $-@a f(* R@@խ^ҥj CI@tY܇"ap@J, 0\*|-( , 'XM,x' @Q8`]&\g 6*_hַI#}ʕn ? :!PQU߅VXV~/%Tr)qTP_%'n{W~T;v+um&#W%v guǁuT@RE_Uizd.%TpSCx:h\Uvւ@w\AWU'\L؄{JЅ^`b8dXfxhjlPR8T8]jV*p%W І8Xa8U ՃP~h8X؅P(ipU |P\xXxoR!,FpA?>JHGOMKUSR[YW][Y`][c`^ecaifdmkhpnlspnvsqxus{xv~{yln psz"z*>E^c|}{~٧٨ګڱۘܺݾ߶»þ¼j^KKfXXKY[K_TTgf/.3H..J2./[Cg=6968TǑ.2=9]jiM6\0.j.D/alL!dȡ3:uRȠ-jԭ L8'BwJB9|bÆBJAjQ-C^PK ͈qDP4y!ː.3\xMЖRS5" -r5yg"$j@0v,Z[=5BjͩԂde"bő%y=YӨ#4ku;iv%F5Ab@23t„ JytPVPA <_(1Ŷ![pvaZfM;}&9lI~N\ FI=„$ E"W TDHb'∈^TJ'dgfǮQ~klNgNRiwf<I<2q Zg4@`Z.PܬŃ|9JD fYgXDۥ//|DU} *Y Fa5`-XtqH$E42'e$G8H߬v#x?ل߅ G.Wngw砇.褗n騧ꬷ.n/o'7G/Wogw/o觯/) G߿C*]PQ1V@?`P(HC}꓃&` \VȌ QAB) E3F qC\pEDCC,:`"%( Cttj8pS8%nLQK|#0LHaV1l`8(*>mAN"Il E#\`FZF1 ,#m. !fHTAA&P])Qcc4HB.L%h&6QTC:VI,COarf:3C\$+p^pj[b6FL"HN&;PL*KXβ.{`L2hN6pF@:xγ8# UhMBUQC;ѐQH[҂QNcz aԅ.0P:qVϚӵFOk]>lQ6E.8 BlK/ٗ6G݆000 mImё~v4T}7ܓX=4Xn$@ET黴y7%s hx1AƃqY mH#.ПD 1A &wr!: !s^ J>KwݙvCI}Oҝ p\kȸ gp;ͥ} 8-gu !"}Vzp7ޝ`qA'<uC|߂Ȼ0§x=/c8~NCpR5@ ~{\|.򽗝#-|!:Ko w]~⑨ Cw~rozOx#_p}&ݖuG_ pG~Po{z@tQ7}9gzW|}AirXitq8vhHdm}Gvx'zHGa }8CFmI . 8t=%qPs]7tgM7gW shE}DiUuvmlƆm1 sH[b臇{ȇ }(F`ƈ∄YHN(VͅߦLgHuXx؊8Xx؋8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ9Yyّ "9$Y&y(*,ْ.0294Y6y8:<ٓ>@B9DYFyHJLYPR9TYVyXZ\ٕ^`TdYfyhj#npr9tkyxe9uٗ~_Y{ 9)yɗ9Y SinaYf if09iiP/%0Pњ9iICP#М9%0Of yYjͩ9ՙ虞s) O.x9Ip(Qy#%PQ)QI B y C:i[) HJiA%PgP !Z( [I,Р` IYV^Y'IPIn+,`UI EP``dn@IEA 2 L&pva IL:YbWPFJEpaD0Hn ,Z,4$ 2J 2@% /Pou %n P Jn  @"9ZiQ`Jn*/@`] 0Y%p .@5g`!fQmPP n3*(@!szA n Z)?PW@ފ* z_IڢD +@iARI(*C PY[T[J9UYQ edye*PY-C˚2ڢQ@+JSzB Jn Z{nn0`Za[ogozo*@`[JQ*jYʢQPimPZnu* $uaJZ @j뉙۾x0к90Z Кm@  ;%SP[o !j/0u  R:Q "LX@狾qjI{Zۜ,0+mSSFG{Vxs } hwIf0n۲Hx> GKy)$lں^*KDlܚ׺l)P jJsNJ9ȁi@JwȚl_  Xٿʪʬ˲<˴\˶|˸˺˼˾l`XɞPyY*9mQW<Ϳ\|؜JHGOMKUSR[YW][Y`][c`^ecaifdmkhpnlspnvsqxus{xv~{yln psz"z*>E^|}c|~{}΅ЈЇЊѐҔәԞ֤֡بجڱܹۘݾ޿»þ¼ H@栟VJHQ(fǏ CIɓ(IYReN>#>8Ç)?BABJѣHLRJ `X$É> Jٳh=!'# rŇ`&j 귰ÈCЅ"MؼQO(&͂b zCѳA;v$~A/6PD@vI4  ! 9 "ݙw`qw49'*s )'lR & IBL"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gIZ̥.w^ 0IbL 0|f))QR&6."b8;oI6  !$KQ`K!ZFQ:w$< =7Ѓ Op}gQ ;RP@ wȔA:;s"~8lTт!rDv#%G$ J(BB%t?o~P9!J;8M BуTԖϊ4Iā$t ښPl4QT[OTQ@&Ted6V'e=+Zӧr t!vpR )%d( ~S7pW!?@^!s݀`a d'[Y.4pIŚ@TnAS-µ"( u Kܡ|*S(gh ^7!%H6Jr }r h(\v`$\kCހW @!J@(f/QQ J(I tXpGb.zN<d .piǼ. ΂,-wM@B:DZFzHJLڤNPR:TZVzXZ\ڥ^`b:dZfzhjlڦnpr:tZvzxz|ڧ~:Zzڨ:Zzک:Zzڪ:ZzګCXzȚʺڬ:Zؚںڭhd:ZzڬߺڮzF:ZjFگk: {J !AZ[; k}p";${Q@4(5@PE%{8'QR&Bk( K JKø*C;A4Q{I˴Z ;KT;3@[YX0[P}0(Ś-X,ж7 ;(c{Rp!6 QYp[(P~Hи*Bʪ?Ϛ0  @{T3{h 6+PX H/P p@7QK:`h[ tPS6K7h6@[*`è;X`6k;[y0kP1TK{["0zPv0[@ P'P 7y; 7@(@3PX#@0pkW7 \7x %z``LL: L4J 0[(p `3p: ~b} 050t8lP@p,P["+hØȅ@[FN *,PT;Ȝi+{7 0S$`Sjޫ3KPql3 \WȜLm Ö|z|x,\Zv,3ZPZp,Kƚ"p$0\0ɿ̅`%М m Ƭ蚱``஢|CX 90[ 0XKL Ѕ -['ԛpP&$>tp(*,.02>4N^,.@2KZF~F^JLN 9۬MH\^`2:Q FB\&.r>t7.f!,FtA?>JHGOMKUSR[YW][Y`][ca^ec`hfckhenkhqnktqnvspxvs{xu~{xln psz"z*>ZE^befkopty{c|}z~΅ЇЎґӔӚ՞֞أפب٩ٱ۶ݺݾ޷þý/ H'4 BC#J(  DǏ CIɓ#!BD  f@ Q(x  p JѣG-=ѡC<(g@@ 4Dz&Jٳh=* 4>V׽La4(HȥDHAMtCF&_a  q=ȺU*3 X7n)\nBA((Z" /R1|`+v8n8ΘO-%-:p0 %pHzAf_Ch% -@%^ |a f+,֧C%"!v_G1F Aq=8x@IHX Æo8PY v"0f@@LI%545"kT2 "evz%%Tc\2ɃN(TJg`Amf^W6A"@_EBLeFMT³vt^ 4ۯW^[!t@cH`uwɓ/ت %/@0Xz;A~HAz .i9 Lt@;L5\u=y @_d~e7{L , Wm/uSAtefQ2[T ڸrI+3͗h6h>MMDG 4A7]}H D .0@S&GIPj^ x[]Au2-0p#Hx C8c @ Ol1@C(C b ԏ , .Ĭ P0D 1^b  ba (@ l^"Q8 CDe+K#b G.̤&7Nz (GIRL*WV򕰌,gIZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrL:vOBS )Ql*!ѡ %X4,@Pbf3%KjI RKyHFto0$!"U=FPC(Bi7 aI@UxkiJT.`C/(&QN@H^ BEYEl@JAxb # h3eMT a P&|`Q%h "" @P,* A:7a?gi;ڔ{Mz2EEaQ5t b$oH#O^D |-b:SW.-ȢVĻ ^J+, @A;PDjҗǗxâkZ ; &Ȇ/aSdJ^Մ*7!1Z*a0Ag%Hik9n%.AðKbQmd_ZƉ}\ز3LYj.kD!Zo@JSy&]t ] .|d'j"[/!DS|s ~7js55 "wR;Paɾ7EFx_f^@ m;æ DEFoGK|"v \@0Z"8ԘYryVbj+@$Ht+'! A[g{q#bxmDwdFh'{فiDzv%JO;񐏼'O[ϼ7{GGOқOWֻg_ϽwOO;!"q[ϾEG`O׏~$ \OQpEA~Wgk8D~X7Ba8ȁ('!H&a% Ȃ$ #aH@:X~G淃9X4(o  zWufGЄ J|YHi eY J8olVGlkP A wlp i@M 0cP wiHlHRtlPyx?WшU# dPqxHp z0|V{p_zH{`XO(G؊8QQnllhAn X `R(R Yzȍ~~I w@ 1RQ x l (@Z} )ny QP nВ @ Z)Eq> ?IhJ8c T 'ɈR8<)lpap o 0q(liДؕwx~xWx@EɎ1IlɖsPqI=Z 0us0n0skuP(HNiF l E ȎIQ08PQ VI]X `X~X~I KIu@  ZYHIy tk YaCXP F@ PxViFn@q*A I`H eKDaYʥ8&!(Aggm2*oJ@hyq|Z~~lJU`tZ5Lw NککO a 0 ڪZZz:ګ:ZzȚʺڬ:Zzؚںڭ:Zz蚮꺮ڮ:Zzگ;[{ ۰;[{۱ ";$[&{(*,۲.02;4[6{8:<۳>@B;D[F{HJL۴NPR;T[V{XZ\۵^`b; phjl۶npr;t[v{x˶|۷~Iy[{p+˷ĸ[{k+;y۹ K+ f^:{ ۷1n[1 [{kۻhk a44a` h[ċڻKh0[._0۾ ˻q{@ [z<f+}t[3@hqfPP+?;+g_u`dp` h0 rg fж4r8@¡йfk gt+3 e hKp7 8l ?Bgh@NJ `?@ gkg>`h20i[>LgZa…w`d+  hPl[Hz77`4<p<ȊL kl،g -Mɘ rp\Kʛp<ʄs 0mٻ/ BL ?i; 8 ;g p|G ?@ț<]p%}( `μ;[`L"/u`0i{`` ,`ihk;|>4Ҹ*p*h<\ӗۻS S SqY<ËqĂ`}h{U3fjv \}ga  hΊlm٩ Km׌˻'  'AMk< р AP7\2} `eƷ|ǖ ٛf-# /0Šv |} ۲]lԆ1p[ tD  ʛ *:ePOқ0 @G}<ˊ[lP.0~@tt}߈ہ[۷l~DLբl+k+><\} Aܼ^ &{}׎{qŃ=\|L\Ml:恽 *rLVnk&  lkL_؈{l 隞k'<)¦~޶ 뺾>^~Ȟʾ>Bn{ 0`~z<޹ ~N.A#ζ >!,FuA?>JHGKIHPNMRPNURQXVS[XV\ZX`][c`^ec`ifdlifnkhqnlspnvsqxvs|yv~{xln psz"zAmCnEpJsPwSzY~*>\E^befkprz}}~c|}z}σЇыҐՓә՘؞֝ڦ֣اݨ٬ڱڠୱܼݾ޴þ½S H'5i2 B9#J(PN;4yCǏ CIɓ#A 4"@  p JѣG;ࡃ3(TRLH#.ࠍYÊKǥiLejѡBSK)A51M_ La8dhH@揁yj0x.R 9`)^2ZbðcΔ@-va24Ljzr(PTK1`D` Ԍ2 nm3ATa!LG5ASiބ:,WTf{eeoM23DMF L5ug`XЄ;4ԴA[ADŽ ^*oa _7 0== #H&Y %PFyƒ( @ L\25 PdH&DrGP$@2J)ЀLZYze`? @@r \CM7)#Eс m`ꩧvEd9t rFj&zSIDg*`qM"= SV1590']%QSv+QKuFfexȫ'Mm Ndq{ZFWA"ALA+V\qt1lG p*5KPM:2yDDMΘ$G@Tp*VT@>Y P{E\LTG{4 D2/A)nj>!?]ة0wppA5EeuM`P`Yd@@jfGg 7s;^ѩEhe$.[#mM(P-_ A~(p-@v ܊eRSe@Gp]qxyEj]n !SJw֔@B(b{҉n$NËp ph}j &3xnyUHGpP1 ~=F1\n]O++ⷧH ;TȿT\"d7J :&xk $@`k $\oVDNd >a)>(X+ q,n TL"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gIZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrL:vjt)Oz6s\&>}6|@>",'hHB'ş4 8PTE6Q * D#J)U#I:a*९kRŤ(QX)⧦XD8 6% N bN$C JT0LEt:1TSԤeAENT P C'B&\ԫʪA`>.]!$NPA @B;D[F{HJL۴NPR;T[V{XZ\۵^`b;d[f{hjl۶npr;t[v{xQ |۷~;[{۸[;[{业۹[;[HۺkH[{븲˻k [I"ۼλ;k ڻ ѷ@G;H@зH++ѷr9; { <;;|[', ,L x|{B CƁ; J LM | {Ț sKJ` ||K I{ =`<~IbL %|Kpt ‹[sw@ 6 WC0L0: J1<Jp;pF|6pC wJ3 {; JL0ưܺߋPP  |Lv0} k:Yl +~[ зC F| `qķ0 ]? 5>||ԭ2|-kn` ;=C,̉s~+s 7s ~[} FзO=5C=ŀ-G@ зԬ+f@ i "@ fo װ1чXLΗ4}mM+\{ t|{y ÷{Ϡ?S M (=֎+P[ ՜Aуچ 6mlE| ex0W̾ɨ E̶ ׺}í7 L` ||;୰.ܟ[& &P^᤻H ^m]c :3\ P;P0 @|G ̠  P|\{Jp=.Kmݖ = /`}ྃ;܁싸t PX,x ?˻}٣ٓmƛr fMM~>;nPP-Ն٭ٍȱХK1l̷ Nu|^˻ _-^ͫ;=.ct,^~؞N>^~ n~Ⱦ[kAp˾K낻?_랸.[n_Ɉ {I.$(!,Fw!! ('&((&+*)0/-00.432865997;:9@?=B@>DCAHFCJHFMKIPNKSQNURQYVTZXV]\Y`][c`^ecaifdmjfnkhpmjspmvsqxus|xu~{x LNQQ W"Y%[(^*]-`3d7h9g:jln psz>l"zAnApAmFrKuMxR{Xo{q}*>\E^b`cfinty|r{uz~c|}z}΃҂φЋҌ؍ِϐԕԔۙ՝֛ѡӦ٪Өجڱۡ᫾㭱ܻݾ޶½þ HGe頱fJHQ,ɲǏ CIɓ(G2;DN H0`ڤ 盃 IѣH&Ţ #D#AT8+(cJٳh=Xq5'"!2`+MV`W K!o;DNHH 熁op^!8-S` 3VF_f [pZ*QV}3ށL ]3*∓+/3(\TBpZݓ@7vqb @F<gXX# WhD P"m te6J{4(}@WXd us t^c T^2~3=twm *A8!}/WK o Ex}-r B CoQD?SjXT٢ΎP~i}|sy.{Ϭż "7.A+*= X@q=%M[#^$ 4Ӹ DŵSM@P (Da b8XYXc㶤(Lߐ " qX h SO B-P8ӳb0,K'þ&x@ D*qsPB 1 hȐԮ`3e j5򨓉A 9H4!,@L5d'1XA j(WV򕰌,gIZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrL:v~ @JЂMBІ:TD)³u'F3΍rT(b!ADCQ!5R"AHRS(#Xڴ/8)Hxz`=^p@G1Qђԝ֩u"2q:(ZݪYZdbǘ)Az d!fJ\֐SI$YTr5t\ ְ-A,l.PVs5Ph '8.AP']/pT$S @kXJl.D:$0@x5]z=MAtQ'$ %Xv_%` H,g$h5Ыf Cvg[ +BʪTKl7Pg^%c0l@\ ӭ TI% "^فN$xSHiEP܁yS&5&WN%&Hu:\`@$J e<DaK`&xvDeD"s%| T*te|gH)9 D`be^<>%KSϾ{OOOۿI8Xx X{8Xx؁ "8$X&x(԰MpX)`s8:<=F 3hrЃDXFXVDG؄N_JO8GGAX؃VhY؅9xB[Xd=`#1e &2kȆgq 3t8vxT{(}OyH؆XGhH*pP9p*'=,eK@hPxI ٠ ]%ݰг //T8aPX= p/ =h( ` @0S@w 4x pƈ؃ = X% pNX v Q0 9 E ?P2(!Wx `P؃* I s0 OPxX? @@ pP\ @0P 9y`S0 t@` w t it Y<8Xp* S1 @P NI tGI @H@ @ѐ? px Vi?  @ tp Pt@9t0gsi;8Ҩu0ɍ)g@wp zy v p0S~y t U @V @a3% ? I )vКY V)R; 8xݰ** ٠ tS0@蹘ww I ` ɔ ? yКpIأjh =h% HvQ! x0QRn `ɢ,0 )pP 8f9QJ FHӸU  x :ٍnQНh*jzQ ׀ @p P;Ф( LУ P3PjIV*`Gi `)J`9q爎/* I) @QС?;|YSOP+ث `Z)  \ʚ;S(*g  [%x9A뱎!QJc'{#K۲/1{3-k)%Dx; 2鳫1 7;x=9kLH 2yS =*F2PPhjl۶lk ByXv{xz`[{p}{K۸yk鸎 K۹{;[{ۺ;[{ۻ;[{țʻۼ;[{؛ڻ۽;[{蛾껾۾;[{ۿ<\| <\| "<$\&|(*,.02<4\6|8:<>@B(3r,U D@D Up)\0`i=p Vҽ\cm  q ڤه  =pP MM<܀} ~Ε\PfL^W\  ^V[] ې_P @Ǟsmk s O-N@nn\ɣ^gNœR| S%D~ w`*=J zft,d~lE-8/MP_Όl؞` .XѨ čLvlT? ~ԬNu2 ȋm  /n n>ѫN9O ?__Y,ML˶e"T_؟?L/MS<Я܏,ńZ\\vA `C%N !,F##"(''+**0/.00/322876987=<;@?=A@?DBAHFEJHFMLJPNLSQOUSQXWTZXV^\Y`][c`^fdaifdkhenkhqnkspmvspxur}zv|xGHG HH JNQSX W#Z&[(])^,a3e6hnAoDqJuCpIuNyS|Ygtiulyr}U[dddjnrx{q~uz~}z~΃҂Ї؋ҋؕԑڙԘܝ֛ޜ֥بثٰ۠ࣸᨼ⭱ۻݾ߯¼ľý H$HP堥JHQ JIǏ CIɓ(G"BF_)ɠRLfJѣH9Ac 4xB0=$sf$AlKٳQL!J΁COG!`Z]$K0È+IJ!*tÔ.E\tHH@0`2]cI`$0cE :4LP(S"x 52\ 2CK[AV0D1L0DAEf^, dxRT^y"o!zz !MO?R~sxA̤9`4E$s| G_,bO"FOC};A@hFzx^47.?Z"J$z9ya=BCjZ5><">lx @שiB pf `8D z(7/p:2 !$I<f-hhX&*/Bgr i.z8%.  eJ !䦄0,{F>"pD$EH<#aIFяy$b@2/sd^) B (GIRL*WV򕰌,gIZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrL:v~ @zt"88Pp2|(D7wbKybx ! |2/d@Ғ`o@]Q2Q@Z Rl) AP4$b&Hw  #r3A|`F/z}2u=c Hx ".Z@Q-R`pAxWKȵ`Jhz !ph@ 9 g9Ѓ1UmEd"wEexPs $k`{d)'dtYşVh McA,FVU #Ȫi -] 55P-`O@|=h'XIS;!EDBJHFMKIPNLRPNUSQXUTZXV][Xb`]ifckheoliqnksplvspxur}zv~{xFG HF G IMQR U#X$[([)].a3d5h9g;i>nBnFpOwDrJtOyPvQyWX}gdhdmjqmtqxt}y\Zaefeknqsx{q|Ԁ}z}}΄цІ؋ъّҕӖܛԚޢ֤بجٱڥॺⱫܻݯýľüľ H0` JHQ z0Ǐ CIɓ(GB^)%< `懃pJѣH a.r4B03$s#AlKٳ{1S'aH@ { 뷰ÈCZx1"1 2 ALX8|"X 1/^2e@G^ s`(H+2 Ť ޺JvDn*Рob"V-#*b![κbl1E}dzzAg[&aI\s \8ogdmvBy7B}a(AdU/Mˇ IBL"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gIZ̥.w^$$0a3<%̣3y`!B x/ViR00 ͢uoA4bs%6iw~C쀄=Ov$BAz6%(]XJ^ L9 OdLx >P`\! M 42.<3M G*R&5Q`›N h*!HL?I=RЦ0! z O Hj@3`BECp)[y b4QPAMpM3C\Ц5Eh1  m@\PAuS" -ia 嚌@\TVo/@iQ;5 1ʪ}U )h[8 % B 2$tm2tj1BR06%m[[mD]) aE˃C߳p*0lYR7.V Gx7,2VѦFF^ɔ,E€ 312Aj J h !P2̺;t\OS֫@&urA 73AJS2 12w]A,A nA;X=MQmleQLɤFFESZ(ysn&tC4cvtz3W᳌ @`ö51$T)/GZ"ue[mv>k; >8'm 8yו!A/To 62 -f]˾wы .H|B_~vc?>ؽh__~@(p聴mp@)` t~dg  m"@m'v7`"hPk ~b7̠0 lp }'0 qFx@PFq)}b' s :40 g}' A  Őjh Pa WC xX 10 ?PȐ  t8 H`NhK(v.ЂBu̐ ,pvȃd8??0A APA DC CBaCF8 G (n0Xp1TaG0@ ( ;c8pE(ˀ X np|Xq PA?(F8P?Ek Hi@ IC"9D`&3 xà D Ylxn B mpQ?P9 y (? EpQ ojH(u' *K MKz R0|x {Eh{lk E hD  xY{ UPEPXLv wp H5 юia U89X?(C0e)Ԛ`ɐ SGp &0 _7XMXX nnPl lPEq0 )Y ? CC0ˀIŝ)}ih60Py}H8 CWxV)BPhU yo)v,0Pm(9M&J~5UWAUڥ^Z9d [&b`~䇦_Zpz}rjVjw t*~qڧǞUzg*z&PpZ:wJ zZʫJ4ȚWZY }ڬMjz!6,[!,F[!,F ~zLx}x"!,hWDCAVURZXV][Ya^\ca^db`heckifmjhpmkspnuspxvs|yv~zx}z~þ^ CA=҄;8+΄Zl5za%D 7i}k='G;!=6H*2="F-Y7$);H2#0H+1"3G170!z|=:%'9 &H7=: .G$"= =0; W,"<=$<$$"F{=;!59$;4(BTh+8bNJ&U `,A$ fPm# 9c@hg#1Q s!2#‰}Bґ$x8#‘z`(AvH!#i׶qَn %ь$M \!i([;P$1^ ∃0`qdŒMtGׯTa] Gfr+ҭ0`̙Y # 0ՃA=,ÂR2 G$D&p  PZ5TETV`T_x`W,Yy""(4~5~|`L2@AC5L@"A=|ƎL!B\zP4WVYM`.* ~dѣ>NЁQ>n(Tb?^HyGp[I#'[L8d y!,9?LzS$,&p#2L  (R8@\Ğ#) y H[aI9gz1f-x [ͮKWŻfvl4(p_| KVt "ACTTi[$BA]5#qO:zhrh~ˎ Yjpt\O̢% ž7IIS׮rYVjtMM={1`>}ƚxy3so$>n!PBX#˔l!(M@/)La y1plę\+Jvj``@H(8pX E +ٳEEwI^ ϕ`%-NfڮU 5.Qqoil܋jݬjS32rwߓܕ>àYYW\EUAYkپa} DgJťu|4y#FTb'6yowNTޤf6vuf(Yه߄XrH*r"G\詧9R^QV&(4]8#P@zDiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤj.s*tQm)zfkj F0ܯOL F0)LҺıӕ Ir-5֦ #ǒ;#@P-JQmW.K 9$[~y/|~JHɦyQ+ 뭣1׋+dn@<&1\<.L=0Tmop*K} |yomi.೏[O­͂1y0Lc_%+o}l"hQpQs+$pE`@H(L W0 gH8̡w@ g"S$`F\PD02a\b(x'1&2-NabX(MtQbB: Y&ṢU R5Y$##we&(GAr 0v6"F@J1QTDK.~0YJӔ`f% LBl&4 MXfFR„d2LrR&",HyQ%\9ʐ<'85N. (C@tHE8VUEܢSRTh89Wvmν. ݨ,p ~ rkcT?r&hduqڕR cH:CS,3%y:!,YfV,i1zTKJr[޶ApKMr$!,nF֥֞֡بثٱ۵ܹݿľýA6=! "/3A/  5 *@ ɉ"$Ń%ވ*'/=ţ $/! TzGpW'ŀ I 4XP@^7ZQIO40$!á.D6"DfxdFg^@b!< !%4I4Q#-e:5VV{t}AJQb%!$~V'Ã4z8ɷ|T b=p*("؎͢Q QP ؊P mňz<]0Y ĴWlb ^ h-D ;j`B$0{75t^ oKa|ָLfZ"800Aasp^{ <`d!qЁ bSkh!2Cm݋L A@8(-P#WLF4$($,XɈ 26;b! o%1 Ms PI=f=`f=e* ,S <6h>,gҦ4IlA)Ip&3]yp@!VIa3x[(Opj̀f!#.N2bAᬳ9 )#:EeZ,r-gBE?C1IYYnl1gyZ~KU曙UAX6&0!7P L,O<H ŌZ5"q@+!Dɮh#fTij/N*<\<ɞ0[Lp G>묣ǃ`d%ň9V*gy I6o@7piJ5@$Ԍ85P 4t Z3Btym &6Q)*0w Kp QJ#2p!6.!5X XsVH\Oȏ:}W" m>!͌@KZOs/7p% gXzAgIdB`z@07 cO$ !\g{6A0LB eE(D^2}H( M c1 M@"@ADc kjz$@)PxEpWeT+YD %BDx@>m 9f;fRVF4 [,""i 2HBp3I6nU?i@B2F>H3`NZ`.=8J}< fK>@#tB\:s0fqii*pL[zE(7Ir2I9uj< ̧>~ @JЂMBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PHMRԦ:PTJժZX*2z` XJֲhMZֶp\*@Oxͫ^׾cWKM,`Y:bM!Z,c3zs,hGKҒVMjWXԲ]]+ZsTG pKJeMuT9ɩHqK"W9E Z X  xg[FgEA;7PVXoX``XYp~5֯__`7k 0LWU{x ~Xc`c'<~ţm0L ]u5/,` 0S a% .\a*U(8j[ &]]9Ne2̄mp:@nj/AW!6\9FC,X!PVD ^@v@ri6a.p߆f|Dxǃ}spWS. hU\~jd]f7>0$j)XW`e`_AŚۥA)mk ~p \pq r̝rMܖ⬀^+MryN^WoY`W ۬+X/Zf[r$׸9 ||+UNs<Xsp ̼@tyϚߞNA;=CGJ XO=g׎:حZ;>كiV;N^x5;npt,VdaP;񐏼'O[ϼ7yeGOқE*WUsc{sc=.cwy[ 747r\iGyv1h{4ϛ^,o}5|~]sܿ__0XYFV_ei wb0gae>Pknf7`Ek`@ZBhb,0sVbiX`XU[Fr0U_j`h4b)knihrUj5"9Uf#iofi mfbuEsHlVLᨍ5vTgVw꘍ѨV]~^ȗ/_Yu츐⧐Y] fxiyّ "9$Y&y(*,ْ.029%D,ϑQ$9 0p1DQ$A/@"0a@ 1Ia`!oT/b/9 DvIk1("j_z?p@#=L/;-iI;Ι23 >@`%P%<$2 G; `=DB&im A0yJ==`S= +`  㠍q@7n .t!V0ᛌMz3IJ!BIgٖkIB~6 ;3KP#hϡ0; 1꧃sb0H H @p:  I&Jښ #LZ2 iЪڮy,Z庖,dH *wJJf  [! H;Yʖ 誮ɱy2ѳw0 ;TJAoyAp0 `C`918tPxq`zNOA0YNYAz) Պ2@p@A- _*y{g[Yz 0(@I+"'T66cr+0QAa{0Wĩ&a.v;$0 0{ Qۘ0 @nR@]/@*"k;X6$9kgP1da@a*:.$Ah6;I J,y#;3JOk=k,3`Y|b| =AiCж+9|"5\@3`3)3 ܤC7T+<|=0?@<ĞQ@4iNG5T\QW\^`b>,`\}t=ldL9`+D`+Vl.lW-}m8]:PM݆xCm%)}ұ]}<ރՁ܄`ё?=-].Ly$=7-N2 =Ճl#`:ِm;U-ޒ'vMӬ4~\=}3}=C.dGf\˘@΅`0xA@̊ L`蛌W N`題郠2>4͝4LƁ!,kFZWU\XV^ZXa]Zea^fb`ieblhfnjhqmjuqnvrpyur}xu~zxcegkpty}΀{w}z}~΄ЇЋёӕӛ՞֤֡ا٨تٱ۴۹޿޻ľüyuuE#Hdjy.d* "/l>8;Wȉ.EuGG( D N߈W14xNdj yj.yN Tzz#FG 0@ {5H<~\`C8*7bG0 gQXHA^IFrrfRt3y;HvsBap{6ytVjQ*3HO -TAQsU-Tl!q4;HU HHa7a#-z !hZĬ31[7t f"fX'v%1- 8TP E܍5t!re,>I㏃|g> 췀"W- o ynх8yc5G/p7"EG,ɥC!شA -$Aj|5Ɨ]iO3d H6.x;@. q`BtS|=D@5cAܠ⅕$Lp x+&R(1 =4: ?6hYH\ \%fLC_:qWH6 &FY62:s 6€Au(UQ4r3L`Ȇ AP :Jx*X!4UqO>К*2O @  >}@?Bb[HGD@o`/M0 2A ڔNX2eVlx<@A! "$h5>MgVTD (tI@H t %eF@&Ц2"*g9]48 pBZ&"T:Z@'<@KpAY䄨" cM !VuL B .E Hp"` K{uesdTrͬf#x hEDMjI"PelgKͭnw pKMr:ЍtKZͮvz xKMz|Kͯ~ ;LN;'cPΰ7{@L(N1 0Å81k@0L"C>d'P/)[X).gCzP0ՠYfq}n+0A>[N0l%Al lp?; ~s04l(!NWC j!N5AĠ ~ ~@`@eЅH3ϥ Ak0P _79lHȃe)xkY@xu׀G pw`JP>p|m8J`]]`|$84P,1 BQ4ig Y`gY@vBfLP8BFTx&X\&~`8dxgh lZp8_vxxz|؇~8XxCoha8"ֈsbthxL(؉4H8Xf(fdffhfvvRgsVgwg焃Vhh}r6Hif`686jȌԦ&k6`ll2Hll`ŖY҆l6&"_[S'}fm`3o@8 m֎0H㨆nfi߸mVog_Y5hSp{~'7p7`P8=jgّ_-m`5P+Ys7g k3g0Y8Jt G?6`Wuxq);8Pv Yn1&w@_=גfxwbdx W~v0yYYn3;xGudzv0#_@&S;vYhg[u-in>Q0O v@~ v~7'PkY|w`W`W nl y|ibxuY؁ܙjR-18i7ƒ1ȞFJhky|Zp֠gm&zvpIڡ ":$Z&z(*,ڢ.02:ەd'KM j` ``L%Cy@d%P0+G ] PD#$@Y\&J2~Bpu^E]KvD^UeGUpSwA L`n RXPfO0H w5u @Xr^-RGj0`A,0L%j: `@V(` u`&P.0F*3OQT Э@ Py\9@'0"u_p PVEp.H1 ˰'d$ܒK&0%`-K<- 9J+:Yp.` B*,"pPzW!O@I+& PK_@$9y`P0ön @#)p3@.< %RPd {KHBb0B=RvvX 8ҦyHu;JP :kZ*`OS @> [[lkk`KpP@'~K%Z ¦*M@ D ( 0 kQi; CtP<*:'pJLZL`"P<,K>MS-U$>='` TQ=y$ЪqR0wF' c̓W'2tjdP/,V. e0ΐVd`dmG= !KnX-SX4Y5۴\`ѷۼ۾=]}ȝʽ=]}؝wS=] ݒ`Ti=]m=Jp^Qߚ~~8@~ ~ᖠn. >@(& )+-N/1>3579;ApQ6 <9|c^6l~h@sa`~_Vn_ƞS_0S`a0CTSS`_wzrNl{~q.aNS0wS z0nSpv>Cs`egM/osC>T`_A.^@"||tuw%;>_Py0{`AL y ?_C 逎Q>70-lq0^J? rXwzPM/^_/UP.χ\{w%o^鐟wS~t?yhCaoC_`CsyaChVCowwCr69{t>9{q86VhaVa{SvSӊr叉ՍXvygC`vqV`ңz[9kΞ;zɡL/. -8C<}^ J(CRĆ<ᦈ(s w.ɳϟ(27b%놏62*"*M3!;] U:hbz#筠@Uտ7KÈy ^̘bǐ#K6ܸg3kYς;MZ2UK^'Z˞dM{۳j޽o[㙉þsP]J|m}<_~5˟ƌO|w(h>!,iF)(',+)0.-10.542865986>=<@>=A@>DBAHFEIHFLKIPNLRPNUSQXVSZXV][Ya^[da^fcaieclifnkhqnjtpmvspyur}yu~{x2d7h8g;iAnEqEpKuNxPwUzY}]ddefkpuy}{~Ё}z}΄ВϋӐ֕Ԗؚՙٞ֜ڛ֤٨ثٱܻ۠ݾ޴ľĽS HʔÇ#J8q3MTL0IIL:ypG@XʜI.L。PPp`8;*M 4,X>\ င"`Ykz@@,!K@GNxCQsN@>&AIhy@ q`e"@2B\ 8|>FΗD - \*@TV@ @jAA@dg*QFGW.w@yeι`bqRU@HE|9e*@9f-'(Ra Td@p &̮@;0$EH;dNd 4j5yAAqJʾl9A-kVW#np@BѪ@Q@Ў t%H$< | NC8Ms@dD8а >rV8#6MwN"jVڳR8"!EB FK@!{XREZO)(Ӿ)YbHy 'x "+0A0:$jIG]@F2. ^@onPTqy Ȅ32!muh4DDbhF&$qG 0HׇbKM?!B@T%NH*-p~*Q@VAgIQ79()H8QPnؑ9Q6n u&i8c BZ  'A41,XIr4 r9yeA^%4s& D| @ ;Rox#!:Jѓ.E@Nj 5L`(Ԩ$S'd!Dg,$V2=RɌ v JP J˧ Q0ЇHjRQ&m` I2 :D@PQ$ x:QJQ=P& &4( ˗:$:eA4dER2;3H|(Hd`πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZ 1v^MbNf;إɳMj[ζkMro;,1vIyMz;ηgWw;| 'NnDٛ`+{x;Q*@&(A \PBt0yEkF@QX#: F! '#dNS 0t_~0ԧ~l'ðp@P`'u/ 'hzy]=po?Pb]kB3io3ju]^NN O ϼ~%|], '$oBh|^{cwA{`V ~ @v3<׶T>ǎx_Ϡk_`3Xb;#HAǯx׾=v>R0k &k1),b }a`v')aY*~ lz*.( P~b㧁8lcw k04 xw&M $ЄM~P20p9x6v1`'zBx$l00+sUpNp(lcw(xQ0^ lev*@Y0_m=lc &Ė&P ~h*pY 35 W0*2wWklxa$5Gs ,PXUohl==w؈s RwUxmH, kW1؍qWlЉ|{Yp똏:؎Ʀ a@+06Pytx n߸ 9n 9lylIl"iq6&lIm'ņnƒ0)K1Y:<ٓ>@B9DYFyHJI;4i0/RmRYPIU!\^ bydYxh!qwk))l$gr(r,rq)%Il6s:s>tB8tLWsPuӈuZ'l\uysewvil[9LS ] F$`-tyG0x}9;CcH|ApqqC0A{K0qStxLd=8@ P^`A0,9%=+ M@3 Z4]d  FB$BD`ƕG @Y Zt `HP/<E` G{ #ң. ?!E;csCA@#0Dt+=:K&r0<O;0 a B @캷V @^ !v 9`H\ܴdPOqseo Һq@K6:1Qĩ$;M[ `9Ib9|8RA N0a  S{P{ *APn"es @\pA`cD,<,ȩPĜ\AB#rNrO{LV pK0τ,UlD7ћF;P!#!Fg\DlH} <,:R[< Kg8-@@! =+B<0QPC`U>0 D-,-f0eF'Z] *xP6~oCT ;K+O|:d [B=Q:5 090p5 ` ͩ U' b s? iᓥv`f7cAX#ddW cr>sfh銦O.~ꨞꪾ>^~븞뺾>읆 Ȟʾ켶.*p؞ھ+P02,hH'P&+`%N_>#a / O?_2 "$_p ,Nؾ4o8U@mN`^J4`Q >f:  m Y`~pl@ ~?! R @Q _`}k2@ . ep0h  R0_ ?A `2rM_beOp ! a 0S1 o*p R00?0  O\ U\iYj„P8aW7 n䈰TT!ELUƑHGeR *S Tir).h ̙.'G$$)fH2 S)]B*TPj.HBYiծe[q,.oTr% :X11 .ǏkMDÓhe6J LSX JPiTD*.O):*IA5K^Cvm&O.gsi>JQ^e'*7T A-c<2Vi(SAs UODb Bꌞ\[I(j광HkJ5UCCѹSaS!W p S*BEU=yD i @ B#c RD&2!(EB*Ӗ2c|$KqM6tӛ!re,2D"ѮӚJ#S9C@O$DB-ːANTLJ3MPC8[!VpĢTQVOTOOԲ PP TL!?F B h4&ʨKD+.9MQwTJ?TYeQ@( U( R Q^yV.E© 2L2*ˀi."K a 1"N+$wd57d}[(c \,f=e[^/gzr{6矉VzihJi:嫻k8[j6džzv{6MS֛;:o +npķq+?K"?:M,sM jatK7tSW=s)7#kvs}wcy~x?wx?>y_ym4z?t{!,hF ! $#"(&%)('+**0..10.432865986<;:@>=B@>DBAIEDJHFMKIQNLSPNURQYVS[YV^[Xa][d`^fc`ieclifnkhqmjuqmvspyuq}yu{xT W$Y'])\,^-`0`8e%\7"LAe8!2XPA9UۊIeAPqe\.9}Q <`c4Ll%A|ݖM@\PO: S]BT0e@YURYW GFN,SUA St Zl1q%!opA4h+2( l %~U&TA8P)AZ..DSĚ(@zeP/>0U$/]@"X~̛ i9uP]@& Vdf%VjExЃ' D *h ģce$tS$.@S49V&21bRa@2.Ua,9m˴ګgDƴt&e1Y߽PS/*0q̀xd@ '\tU IXy2iPsz%k  MA+=: ,52k ߸ tZGm:E=P+1uDV 80^NNh}q2)D'|9}DPl=qI3b'0'@ˠ: ~"AfvA~C2Ն#mJlAweبI<1/K3cL\AK= $d(ѭOn} r3xAEdh) Fd HDйD0XiV9A/湠@(AID؟H%)A RB+.chkj\&} 䀈<@3"$b$]!Č XE6Aq E!AAe6]T_XcP4EVH@=m27dLdHLb/h np!'Md̲#""c-" AU+ Hp9\Fwt[BlUN3{k;2eCQ$?ań2Zዙf(YǠO]e H$rI#\h" kzAM:~q2`cĪ1WrG|9;FN8 &]`%H)SE.@#֓x}qg/Yd'T@:§πMBЈNF;ѐ.EJ[Ҙδ7N{ӠGMRԟf$OPVհgMkL+eҵεw^zݩɯMbصN f;~Mj:ζmls-rܬ&7vzբE+ZVխi^ :St`PBOT!F8*x U1(B*񎷚N)zV`OA rJ[x4^`nbPO8[(B@tLӡ{t+z y*^@JV 6nT nP}:.͋B/Q8݊7J޶x L 0wKAE T^!rp Ż:0C V 2 (Aq#o>;:G>= 4dA J(( 9Z)/8`COG(I7z ~ 8jG~2@y:Pi{&#dW (.P/= s=} w(u'^G :փ] `5.*XftF(F`w9 2d qp@y`uF8sbiz&#Ugwo *Wy*0DHdto}}=w\Giypz#L/0l臔XQipf02h7VoCXtT#i`2@vTv 8F q=@H =q&C/pC(ȀXl8~xk帎H88hjxsiI 8l5kj69Yyّ "9$i(*,ْ.0294Y6y82 )l=rkBY'E긔LiNRTYxXHx[Yo'p1@p(qGqq؏!7rfr1rtYr.i3Ws}H:=i?׍2(DW)tMiyiAW R*uHit0F`tP"{(tb əi"w֌fpMHizi ɚb sWǁPiǛ./yxn .qi{(=Ƅ(Ǜ1{ C im'=2-@ӧ} D4XYP { 1 ՙ|4(| zt h(C7KvG58$ւ uS(y:(~K|C+sJXiȤ57ӷ( #:po|C*YWg. x.Оoy3h w% HP&Gi3gi4yߙ H 犋+G`ڙzxx،ϸWW`بhXvڪ~z8jsڬ::jG<4%9Zz蚮꺮::Zzگ;[{fYP^P !kpC`0QCfǀD6\  [$e6`H!`02`P%2Kf4OBE` +ͥ'_0S[WK V"79Y !`Y1p #%0 q jaPbǰ@v;RE"P2 |UNPk1} "p.a  "``p;R#k-aF@0  0pQ(K 7 V e 2!NP; R`0$NW` P_6D  ?+Ρ qR 01>I@0ce  &{U7^7{^"\I1q UK; D\v ! & *\'_ YR0A 1"qp `ŗ `iA [ptLsI@,B @a {0()K Pᳺ@ʦ YK{ | d;@5GpL;[˗>WL]?\A \SP3)I @ŝ;L#ίKP%E+01H pͻ 1\p%EIq; }!ĚƷ1)U&H#ʾ|jj$S0 <Ӓp10OM =ӓpGc|0ԥlPP_!"A(ι,£Ti Al$rLʯP/ݬ#G=I=Qb1fȗrb\!b=d. .K7l-Ţ5Rւڋˠ @E a=p~5\m'9 `QIց^@K^B˼̗@fٲ(y PR0<]ڢf]X>^~ꨞꪾ>^~븞뺾Ng >^~~஽N[>^~[3 .1 ܎>~n~^%.N#!?Z % ? oP.#H0`Ҏ)o^ 65<>5Eȴ=pN %o  D H5@ 5[[? ` g0L0p vo#1 K pc:@ p/  5.~ j I KwP| 90co[\5n Jmol0 ˀ à  @  0 1 OȀ @ 0  ~  0 0 pq }Q 7[t 4$ HA ;E،8ͲPm쏚;jbY ƏByc%2Z6Db&iаI?L.Z&?e` a@pDni%5bPlʨBA4L4ӴHDtfbhEb$n%ѫ(1 %HoC7;"QmJxRci>V`bsOuTRbU3VS^Af>˫P5{)d؈`&;Af5v'I++e 5 YFB!?<-\tTbPf z\q>z܋ZreF2JC$A=Y`(╔9)e-f@RuSVY]vGAcs拤0WgQ[yh>Zhhzj4vjhzkN ci6l/ {lNm^m'*;nVyۆZoﺏOp?ož[q#zŎq3,+7}Zsot[#navkvs=h%t׃l7xW~yy͉o~z7z3~{>{GFWO||ͯ՗~: !,gF   ###(&&((&++*0..10.432865986;:9@>ECBHFDJHFLJIQNLSQNUSQYVT[XV^[Ya^[da]fcahebkhenkhqmjtpmvspxuq}yv{x IKOPS V#Y%Z([*]-`2c8gm@mEpHqAnDpJtNxS{U}X}Xjwmyq~[Zacdcjpuy}rxztz~{w}z}~ΈφЈтԋЉؐҕӔۛ՞֜ޜ֤٨ٮիٱڡ᣸᩼⮱ﲵܼ޿ޮľü H*\ȰÇ#4fLCm,jȱǏфɓ( PAUJoe0lPɢCd\d*M(چrBz*]5Q# yp9LÊEHF">^fTylD fY=jVo -f`x*+h޶%r!&Q$P!AŠSM*V$H(Q5ctM6sCm\xQmըRXC5s%4>[QTAf3v=1BVqYExGe(QqJlAȱ(x%P Q^fGyӌ T .P Q"AWXUPBj0@mLh‹G=AUġcci DB4ɡQaQ,1:V`X1@td&EFaA(y7sv9+> P  P <%!xsLg|@XqY2 G]I@pŤ7AXBu`z#Vƕq(|Qtp@p%#<  F@ MB, !fx Fb@0 L X%[܉UEj^@+A&kAk`uFFR Ɔ@Ƽ(7pFTIJ7Yڜت6DiɶA WЁ+cKPF=Ph;#,,4ئS% QnizÌ`Ao,( v7Ų]AAw0PXőZ)mfvT&יGB({_"!<-|C@$+9@ m@$ߧ t=\\lYsVk/ݫ@"c3`:`$@'• gx$/E)`Y󠧐UdH!ƀ bJ V@C%)A?%t9w9L5!c XP}XoHI 8A`wNC8) CDA1†,-p xLŃ+:IEBD<xd",5+F1!SMG>A;Rd  #_" pnP LP^H@⠸P4UЂ 6Î@耹< ߴe@OpYdJ!@$;}SkDdp` ge1=SAl[9 JJ+Dt4[8}haQanu; &gw̩A E8L 2 5X97`JAb (¨8(~A3Q7V!IM5<2F)F( 1% mVH+촊ux\Nˑ @Zc:$@Tm dF5/Zn@O$W*XUKC<VVirD@)kw@e9؍H&lrBp"q q W*1H2B0LYA€t (MXALcV00hF>pux^,+ πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbN i8ЎMj[ζn{ǝ|DHvMzη~ދJ6MOw#h'N[ LJ0{ oKBN&9W*gNǼ8Ϲ9~@'xσNC/A"TѧNu'0D|@DlbzPfTh۽ 4E#|@]x @|`^1(лQOʯ[D?o_`n ^nA:}qMp&nu7BXw!BȽwҳ[x\t^iy"ݧxAݵN!ݵ0oRXq qwV.p9~9;/G Wy/n6P  $.{`/` $}N`4p% ;v{g(/ʳ G}5؄ y3Px2=POn0F|W .707` 2  g{> o$؆;h TfoWnG߷nQP 3@{ }.y@ K 6V. Q '4 T{ygoS2Th2Yp(n 3ٓV>OBYFJٔƔNRYgZ))n[Y dn0elnpr9tYvyxz|ٗ~dl6Yypk֖'1pyYgyTA9ٓy2Yٚy@tMtQ(u[u_vcWv vsrGw0y nD}Eg '1=/R) &F@7 Bn3/ 2@ @|>wtPRn@nMf.xunlğ\{@nQn-n;@[8MР$X;ysKP@6ns|RЦ ڥwtʢfgќhdxp:茵u Ψ+Hx"u `Oh7Xv𖦜190jsЪHoجxru 0&n w !| )$ W͠,0/ kyLy9+} "Ky$[(KXٕ. iI4]Y6;}3 >@B;D[F{HJL۴NPR;T[f 0 ~&m F&P2P `^+` 0v֗ 4^0 kiy|1Vg%`l;l; S8g;Aco l hb s 1prM g/?P;s0s:Z+dhpjki`\@M g 'q&0{k% g0kq;$0 зe@i5nPqx q49 {[UD@ efdf+; 0, oMb0E|I,0g PP+!p^01Rp>0 #@Q( Y $p0 (ţ kPGf0e)!d  _ Y]peln a  ^$ʫ췗$cPai[I3ƒ"p2̀YSd`10HސD aŚ]tlC q Z (P@r Lg`ia1 UPf7VPe  P8ӌrKh*< PY %Yo a9=apӠ0 &d,]RCP3 . < &E,dPԹ DEͭC Y+n9EKӛ-Ee x mP.bT}SL]a*hސS}ߤq b=eEƀY_oV@ PK9a-1p m Q-R}+Gp !-QP-FAplp ֳ=J>C+v$ޤHm )]#%3l0:AٷbTn6@f<$s,$}I =lh0_ M:KJ }pc Q79.;PT1 E-* `0g>խ sPr0 NB&a tpҜ,8-߽N'll`P{QA2aNa` ),--\gW..0{{.>+{;A<"=L -3\-K_X [K N N n0 ppPs$pg@ O k KTq`cl  eZ NEC  kf&ja?_ "?$_&(*,.`B`4_68:B` PD_FHJL=@QT_VQ/W^4d_F/ajhoݰpo qL /L vO _xБ~?_ OQaUQp@EQDA /V`QLp] l}BP 0 /D0 HO@ 0WO1 < ӀM_ `㠼A [/T8KEQE4z<}I)Uzĥ<+3K͔ӐOAQFy(ÊPdtWX-7$iR2'۞Kyq4z%Yyqt72"!#a: m{=$Ze̙V #9ƕc;~m$HzyGkɑ=;LG}d-$JbzäE u/mQ=NR{>9#8lH8ph8r(dDDOea6o`jF eɤ:ZCw&H*I"i lK` !̛JK=$ f%e)>(2L&ekZhJ0q%jTiHnLJyFoĤoF ]Lj+E$f1o^c  Y& -LHbI -0TuUVẄ́dXyaqqhQD@͔Т>,>:c bY@C2L@D1DfkE|iJ@b<Ȣ D $.^|mu_~|յ(9"ph`?^ׄuA̤,LX.%fG8^$sAKƚo=wJy(lla"H'NᄈEI,(=Ln$mfJ8E PUdmT. 2Ab>Y.ޕoV! l餢G:ꈋ#9B$*Y<؃\} ΣaᖣiwK`?OWeFCSNY9TY$`78&4`@O !xA P ĴA -(BU$,OB=,la_(C(aoC &DCAHFDJHFNLJPNLRPMUSQXUSZXV^[Xa][da^eb`ifdkhenkhqnjtqmvspyur|yu{xGHIGH JMPUWX V"Y%\(](^,`2d6h;k;l@nDqHs@nFsIuLxS|S}Xgtiumyq}\\acehlnt}svyuz~}y}΄Ђφԇ،ьٍڐӔӔܙԝ֙ޝפب٪ٱڡ㮱ܻݾޮľý H*\ȰÇ#TJCl-jȱǏP`ɓ( a`TJna< 8LzɳIMJ  $\4o.c¥G  Tk֨MÊ=g,QhhfWcFL6U+9H;)Abr/5CM.<-0$Hsʼ ^*D AƳkTH#Af7\f $7ReZc&V I=<Y#\`8q\qQhX U= Qa2J AWUa|Q@B Dq!G&II1LRk0x 2 l*QA&Dm@Ā'Mch |)bDAX tpEyJ8YURIfd0FtF 1@JiJ ٣J#E8P:0HYߠ2 YҶPB %X$H Z2!_+  #@a kP@;'0#eaZc` ag{A.;D267&"f+'̆zU",5B$V@PJq Fĉ*-& pҲ4Z@E&Hc;ӢI0 $PiɎ TG`9Vd€ hLJZTpB&a3IS Y҆f%U 6q3YJ ԟ IN+F ɚ. x%N%DVi x`sKKކd$!UEϪ Q# q?ҊPbR}CUBhzZe"zA.ȭG D.fJx †rt(N9 r0W \8αw@L"HN&;PL*[Xβ.{`L2hN6pL:xγ>π4BЈNF;ѐ'MJ[Ҙδ!]?<GMRԨNWVհgMZ)w^mNf;{ظ>ɳMj[~ n{Mr:N׭nt-z޻7~Zߩ!x@ kԾЂXHt7 vJX}(A~po-Z =h9wsV?\ԾWxHOzj-(J:QMW3u{3GA68O1Z/B Nj%WpuQ/בRkJB ͠  XD@r$=ou0vQWA upC @ @!p#=WgPjf̨#JS'3w- <,$^~E8x5 Pۃm,` <= wȆ~kz8@D}vF.s/L͠ H.60(W"Xk_wt3W0jpv. .@9Hv L#uyf5uD0jQ18v`u .Bu`<jw 6ehj2XC|*x36J~xj_ X0Xjmv6.:~p .CXjq p }xWd :f:}X" =0kShljp:@T@:p0k(jHH8HkHjpq82Xm؎k(Xl؏i)kfV jYj Аّ "9$Y&y(*,9i0294Y6y8ihٓ6 >9f9 LLINRɎTYxX Z8Gpp_87qwqqgX%wr)r"X4'usw臉BjEW|tPǗgUxs_vy0 0jhW6U0vw:I`8j~gj9| i;x)jI`jGHAp5Wj6oHY͐Dp/o귚m6yV}͐/) 3 \xyo9jI `@jT 8@j^zjDp=({ j9? ڃ.Pyj&J4P)j/HTj( ׂuVIjQ0+8 -@RB# MP M faP;>lAnЁʟ%1{@Ox^~阞难>^~ꨞꪾ Q2^~븞5 :>^~Ȟ.o>ɮ5@ھD׾N~^ ^~P0/J ?? _>. 4 ?@@0F@3@\ھ@ /R `1  P/T/0 ް.A 0 pnO q! M`@ 8U]S7@ Ұ®~_N P/d|0 }ܺ`porO> >G~/4 /[I!/| w  ``lٰ O ܐ ٰ  M@ 0P ٯ P q1 vHR_G@Hb $X 6.dȇBZ| 0n|La-/}\RH /bjB!0'8M&N(IBKN$=qҍ/rdSQNZUYnEׂ:> ͓K+Z)iŝadڵ`vp$F2==Q?ڂA.פ,X✋&Ohz$5IM&LY }Hջ7'^ծzpK p~_JÈ(F^ g!2ٸ^J>ͽ&j&↏&0fk) 38;C o9 D@f $@KJ F4h؃F0FLX/0r~I(Pi!,10fLP/c/ɥ J6AtM8FD f%ƽ"\LoZ`M!m.٩?MK. DP>L3,mΌTuUVsDf !$-kAA RHhn~ChhlHf?GaiI%iS:LLPtT6cUzWWG!"`}Qa+^E /hR0FfFX,2>t01^[n9g#l.jj!gF8JjM!mQ,F\j{azk"k{9lclv;NӖ[߶n{nV8oW| #O3n,\7}trIW}utiuk !`m9SKkHw_!Txi(䕷~qe{|ggz!H,gF   $#"('&(('+**0/.10.532865:86<;9A>=B@>ECAHFEJHFMKIPNLSPMUSQXUS[XV][Ya^[c`]fc`ifckienkhqnjtpmvspyur|xt|xFHGFG HMPSX!V#Y%\([)^.`3d6i8g;j$C -X Av-m m7!@$"@ @hzVtpSƘub5YdA4P),V)|j@Rpn , m7M9d f K+P,=KP;R5 ,T@ B$7 "FA AxT7  TN$A 0BAV0)c17pTAds@Y\Ku,sї05ؙ @9b@ crd6 ?#mJfdf-$^晧K [:L[Ps Dgү(dLA|KRApR-DcН'h"t/ 䔎\}YPIq/F0A<)Kn]*x.6I AD#.!`Xn pܠභY]xbHX 'BB! 9*+9dZIti! B V lInD !cAZUT C~A0HB FlP! @@:Z}Y,@ /Xtp؛p,~8!b ! r[w(@d)!ɊA*D1CD z{"wFKm2n.$4ȗ Q$ 1+ SD*0d 35 @d+D@Id Ę\G@hl)3: ^ $]ǂDH22 +(GQ*;2XݱM )J@jp#ro 2 X<@MH. P`)GHRc#9$ ַ!ڹ'W7P%8 S o)ҸqI;z*XlED tD|ғԩ^#,H>J&4dݭ( X. )تNZ"]f ~ڊ8b!P7E`yE*ε9$,!8 T !8&! V YF*0Ts ʰB2ZtK!k0j'`ȡ{K6ͯ~LN;'L [ΰ7{ GL(NW0gL8αw@LD2K&;PL*[Xβ.K L2hN%$hL:m3Jƌ>πtAЈN4_F;ѐ&3#MJ[ғ7i?gӠQԨ~rSVzQ!pF D/\^NjFBfhj_&uJ,Nvph{UqQBH56n%;ɿ؁L8e%Xy Ci! %3 W`F}f#d^`L x< 9M7-D0o&w ppo6B# $ Mf]8 -`:@ 5:[ӆ ԭd+Pia2.ndD d P2e#0W-&3hF v?Y2؁ `!3!̀𸹁 cȌ׻W?HB dT\+࿀A`zH@VȖ7O{i$[gp`#@5G6١\D|19k $\kI|2j`% =F0(4^5#jv껟$7y A%SAKf9/3]f Pp2sw~ eqVfqdqp-@W|^ PF 8NoorW"G6nYerQVoweJu7x& ƃNFWNw9evmٶmDX(iQeFlgll͖dy[(eFk{Vnr(hG8vfuxzh{'~8gyxe8(exd/gUFhgXSg{fdGfE6Xx؊8N(b؉AhƸȘw8oXXYxvk&ۨy؅m&?8WSHKmƎwIxnFg;He>g(XedZF0ր yd.ɐLf8@IP=dd.( ّlT 3 7t*I2@slǑIf@p=y1yjքJf5 C8|LV<`vM2-T-@Ggd170קdedT jX wojtajcɖM{ 0Ǘ*qp4 X0dtyjIyLdCДI6vq 1 XI=di3dF 0J}d~qd)p{9)3/]Jdo)3@zI=ٛxqd0@ Bz1qeIeJ& Kp-/0WX#&oho] YvnJip8lKHm8kȆ☡즍 r"::&ڎ(W,+z2)Q5Z{7ӷB*rXJLڤNPR:TZVzXZ\ڥ^`" qOs;af MM p PEa J%s0@sP$0va(t4M 0g oRaJdpP%Kq$ r(pe9(PjЧDc$| f $PT e@+Z1)0aQ +Pk`fmC$40Zo:^ܠ vc* p9pZp :c Q 1QA02rp< +T"z :ja`+ p \,bppU p\B6@Je ERPQ YMp*tP>S([5iՊ6G S @pNP0 *(;A[{ ؀QP$(KC z.x7P/a`>`XiS'Az AIT*="*+ V[8{N[hwjP/PS24Q Ka$hp0e{+i{,Qk1P; ]1;++{*gj8D 1>PD#<J[r Uqk`b *%'#1zg`{08 Z3C7@8ۻ\K\{:%ngP_1 i K&3wql m[v0ìvrv c kppbrʦpе v ͼM t uU \್ Ů ]& Qb`6}af _ǽ=]}؝ڽ=]} I=-} .H-FF]I > >Anِ.߫^9 !. `.-( /% A5^8N\-?,BD^qIKOQ.Łp RFbN=@ _p EF  .Pݠ ). rp . ڰ`霮 o LpZ@ 4-Ua8 İ߭-`Mߓ} }ncp.H>2-@>3 ֐!2둎-\w߻}0   `ɐ0Q  ^ ܀      P CD` Yd-N0~1 | } Q }vPO` QC? 8O p}@L~5 @. N2P` /. 0^ P   O@ I|@MP O@ / ^신 N @ Pp/ e?d8 uހp->kp R/ M0 ܐ N >.`LcLp 0 MP[ $ ).DC%NXE5n !E$I8P- " B"WVQ -Sh)#6},ZLF)]ܐ %]@}@I-n\RpdTDl9_{=IG-"gtUX?}xsIׯŒfZ~${X7ju`"eHPWn5/ybH娯1ڢIٸ[A'[,Lj§֥&m"|3@8Z!9pF, [dl}h3<#'- QQcbƷc5nDmKA"4@;! d¬,ȇ{Jߨ)H.$s̑L4T0tI3הsN:7C;O.sPPDOB-OE#tuҐ>RN;ETPLSRKPTV[TEfSWkIlf W`h]Lb`Uv/lZ7khev"ZABWhiv\r짏Qwvu]x]uErM\{F]x`_|UW~va#)+5%xc-8X9c?6y_3Ovˀ!,&'r  ! %$#('&)(',*)0/-21.532865:86=;9A>=B@>ECAHFDLIGNKIPNKSPMVSQXUR[XV][Ya^\c`^fcahecliemjhqnktqmvspxus|xu}zxFG HF G HMPS!V#X%\(\(]/`2c5h;iln psz>n"zBnEpKtDqLuOyPwQzU~Y~gdhdmjqmtqxt}y*>]ZE^aeinpuy|q|c|~{}}΄щІ؊ЊٓӕӖܚԟ֛ޢףت٭ڲۥॹ᭿㱫ܼޯ½üý۵*\ȰÇ#JHŋ3jM` CIɓ(Lɲ˗0c$(͛8sɳϟ@ JѣH*]ʴӧPJJիXjm lP1d82ֳhc2 3۷ng|aݑp6GSU5 ^!3 ۸0#YI̲tl4L`c4kkx3&D%C1-6UG E'/A @l Ҽ[G'q# aII7)Ëg\[Xh'PM#a60I ]lPJ]ѧeP~i4 _3 8a P  ->3H < RrxF<^hq*'6tʀ_T <"&-(yOh ҍcA>_*C_6dD a>>u<C~_Ѕ8f:*߷Ck $G@lQ^ng04Osַxb~'4fyh(@4Ӷl}[Sgl&40ꠂCӂ@4 l4-84me{B4t1npBӃu|Btynс_Uj^h(t}8uVqg t0nڰBhwb@{6'4sހ\s!o Af|5؀WZhy@27wM%\'k_{a(0m({m, s`enP%0o @oxPe#nX4p$`ef،%&^tbAWpyujXX}(0|\y([~ UO8gU&[}C #'[ y '~DqgeEG$G &[ '5۠ Ǹ]@i4ְEs y4 j5KwF C)4&?y4P[cUٕ`Y5_d 5n~ejlٖnpr9tYvyxz|ٗ~9Yy٘B M0r' ,™s(y73}7nq{97YY7IyvAɜo㜮 )pCi)7yٝ6YyӉ.p n0()X n2 0@ p=e DJ $H ]`gc0iP 0 <КG T R ]P0DE Q[c(-.0` K1z@ ٟ뙣 QdZٰC gp!T t W 0 P`Ҡ {* o* *4@4Lږ+V*J F _PP R` R`RP  UpT TpSC#DTCJ D *@:4ClyD 7 p!k) B 0 0  xjPЦ R<*C ˠP@ ЬVPZ ;0 T@ ۱Up:/<0p  Z4P SBz尳xF*4B RT@bP P@ `ڬ@4ꀰRb;:/3 ư^ `p^ e@H S` A+j z``y;PS ꫽JP+j j`j ͪ^vP&zyB РDs+G j`J:4P *@*P뵶[fZ` <`C#F ǪpઇVpp+ëPP0TT@ @B=D]F}HJLNPR=T]V}XZ\^`b=u phjlnpr=t]v}x?|~׀؂7y]؆}؈؊p-؎ؐpؔ]ٖ}٘mבٜ-o٠ڢ=y٦ ٓMڪڬ-ڧځڭ=۴]ۥ ۸m۾k6 }ܭ-ܹ6Љܠܸ }݈-ݰMv"vPm i mP{i-ݖݯM״@0p )g(p xp ~ g- x0!"0&]}pB6Yk#0߁ g  p g-,f P vֹ 0 - N~~ֳpֱp^ ᔭC@P C[ kSv $$ִ@ {0{"p p $v` nqki0᳐,Uo& 觞'@"h-ɐ EBrN]v~i h (m yh#Py6 #%g0~ 뻞ع ?0 @Ş6thڰ )ֽh*{l` i\inm`Nh}h]J^{lp/6عm {}` 6OvMTւ0h߸Ph}2n,+_,? q.ur?:oq?SCoظ~hsm0p.ւ- |֤u@) f_i  $gq8ٞ 'pָݯ ؊6/v&# #%-Z,Y_'-o*pX,O/*^`,@ty?y* g$XA .dC%F"Dhm1^;!E$YvT6TNAmCȎ& gɉB :$KI.e+L=a ݕPnUe:aŲ9Yi R8+@XU]#˴VdB Ivn^^W\峆%ȡM\ӝUkݚ$+Ța]mܹuoބ'^qɑpsЮ]fuٵVH(<կg{'_ynP@o!,&'r  ! %$#('&)(',*)0/-21.532865:86=;9A>=B@>ECAHFDLIGNKIPNKSPMVSQXUR[XV][Ya^\c`^fcahecliemjhqnktqmvspxus|xu}zxFG HF G HMQS!V$Z$[([)]/`3d5h8g=jln psz>n"z@lEpKtDqLuOyPwRzU~Y~gdhdmjqmtqxt}y*>]ZE^cfehjnquz}q|c|~{}}΄ӈІ؉ЊّҖԖܛ՟֛ޢפةحڵܥॹ᭿㱫ܻݯ½üýὓ6,*\ȰÇ#JHŋ3jpw rIɓ(S\p@0cʜI&Kh"mɳO9 JѣH*]ʴӧPJJիXjʵׯ`î*sF 5Y۝hA._p7ev׽ѩ;̸Eˆ#Kf pc7N<^qb a.'Prq^S2f 9ȁPLЬTu2SҸ C/-4fUoqÓ##5ns"MJlЂ;X#6|_-Ƙ(8 А!-@ ? 48 :dF >Dm`3 <  2pb3 rf aDCH10E=`lL+nJ :p%- ^ ٟ tH֊9BM=4`- c<ʅ-̰db e $X v%dADZ*g\`csb #t PA7Ԁ.h$Nߡ%gǐ2ȃ$%`CZI!+1pA)rqߞTve'I'<_E%^\? / ,$l(,0+T4SQ8S92 DH$L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.a#8gw砇.褗n騧ꬷ8(}no.<.o[7Wogw/o觯/?8D 2`@3<4P(lC&P2H#퐡(@B=D]F}HJLNPR=T]V}XZ\^`b=d]f}hjlnpr=t]v}x׊9~׀؂=؄]؆}؈؊،؎-@ْ=ٔ]ٖ}٘7ٜٞ٠چ٤]ڦ-y#ڪڬڮا۲xڶ}۸ۏ=ۼmک۽]ܗÝʽܻmMv=]݁؍7m}7]޶ -mޞƭތ7p@ M p ~ ] ެ ط@ )@}M( @{ }] {!@"& ˀX<7n#P}= 0}]@,@ |@ P׼ ` C d+׶0״tNP/ Dp D \tP$$׷@p ~@(&0~" $ y`!q tn@lⶐBNkr0&P  @p0'p"~= FPC ۈ،l ~ (p |@~M@#|L#P0%+^}F O  @@@ A.7 >~ )`~*@~o ^ p䤮~~`~oGENLWϝ `㑍 "_7%،jׅ~n໰~}H-BABo 0Ot+^xPiO`Yν=qS运.ׅ@^ ׹ׂ) N| + :τ}rN~ '׻Pm_ڠ7،&##%Cnp,po_' ~p*pnBE,T|E^L Q)d*hgG!E$YIdeK.ּd-OAhJ֑$~zVztqǮy"%[Y9.Z aY;]yCׯɫ&LK"^ y%Oaٳ.0z35){kرe RHm U-l ]vo@\sѥO^uٵowŏ'?~\ՓկMޞϧ_߾>z_r=L@T0:t+pC{΋pB!,&'r  ! %$#('&)(',*)0/-21.532865:86=;9A>=B@>ECAHFDLIGNKIPNKSPMVSQXUR[XV][Ya^\c`^fcahecliemjhqnktqmvspxus|xu}zxFG HF G IMQS!V"Y$[([)]/`3d5h9f;iln psz>n"zAmDpKtDrLuOyPwRzU~Y~gdhdmjqmtqxt}y*>^ZE^cgejnqu{|q|c|~{}}΄ӉІ؉ЊْҖԖܜ՟֛ޢעפةجٳۥॹ᭿㱫ܹݯ½üý߱;*\ȰÇ#JHŋ3jx CIɓ(Lɲ˗0c$(͛8sɳϟ@ JѣH*]ʴӧPJJիXjm)̏1dֳhcz2۷ngh񔶮ݑnST5 ^' ߠ۸`-#kYHf8l4LN_4rjk 3&$c/-6Uoja"pPZ_iIr{S#uj^EDB?l*}[TXذQN#a50TF NHM" Kt^}&~ zJ'G (4zY9HU=Nubp{}v'R^',s~V6"1 (CdC yRg@bvt)u@ kBtd 16_&a,_=cWCbق ?Y ضpf'Y])/b+0Oym{E G\S'^ c%w ,$l(,\M.PG2ܐG+٬*@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n_=N84G.Wngw砇.3㣧ꬷy8#˾x/Îz'7G/Wogw/o<6 K@ {4d&4~&Pau19g@A;'cD "Hzq1 ( 9(ra䎡J{F 8K OryV:z`!p-8<F@Kl%l"rKB\@NK\ hP2QD|x`2x68 6*ݱqɁxЂ$񒽓4$wD  LwÌT7a8㑇h=/ $8$0qH(ddhA'%dzufD_qqfYIEnqAƠs>l7(Dbg=90sEW$XC.M{@ ?uhnѰ@~5 6@hHC:XA a +pC7ޑm 4Xx21| Mȯ (w-oWp,ogXPݠ0DCdgt6gzKntwZ 8y̾xڼ Xe`@)Dy@@V^ ِ0D3[;"083@`Z-;x^3 c26@him/` n0gYPBMZ;ʨr+j8-;p+~?yxq:wG]7Y4\@#9~a h0;|{wt WYqT 8\dwkgs@77 pg7h8@Y@u PQG g@w1Ӛ^i>;w?sW_>hp7v\wυ m'xG ʺ1e,h3[޻4C}69W6fZ yo?whi '40v3Ƈ|83Ek}AeK7~lp-~@lBnv&p@74:"l4:4o5|@Ӏ4fu?op@wp}@tPzn?`%kj85t`~v?3g3 uop@iGcLX|>C4PiWt.p Nfї}>@P8~` su(e8(ە~>s h,Ƌ3>ScwP_8 s0\Ȁb6zCr z@c&aiH_>ce;t8'op]Fⷂ> \xE3P \\!@i &f4s N8qW')4|%p j\8qs!3pn (+ P @ՔD 840EpgNG4@h>ÔEӕ fIK&jٖSÖnN'vyxz|ٗ~9Yy٘9Yyٙ 4 /  Q5 7ҚN|3-07pz#Iyc Y7)7ɛ9tSNmɝ ) 7yיnY/ٝi6[  Jp :Op /iY {I2 P` =g@EK@`*E p['ڢep "0 ڡ<ȠAD# U S0 [QPCRY#4-.P @L=z` i4? S3 q*A s30UW@ Ā3W@ v0 3@ {J 4 4X7 bJK0 E@u00W03`P3P@4~*4QPUQ R QUAV4RB0AmRD:43N @ ` > z }SH3O Qp WP pjP Up &{V0 /@B=D]F}HJLNPR=T]V}XZ\^`b=d]f}hjl=0pr=t]v}xz|~׀u ]؆}؈؊o#؎ْؐ=ٔ׋}٘م6ٞ٠٤]ڛ6ڪڬ-ئڙ٭=۴]۫ ۸زmۼ۾ڹܧ6}M½mSm-lÝ}؝۝bpw ״w ׄ+om}} $  ِ׃ ׵w-|mߞX X`Yhs~0=tp t  5*t@-pip @ 0 `pppm pM  b>`~0 $M@k6.2>tp qMKq} s0p bu-#} 0@&@,0kn )@kPp`0 >pv, #甽C `>-.~)p k݀Ap p W>νS>k>hF^b1p@N-A wDp g* ݐq  %`O?~ n pw0 @p'Az>®-ܩ)NXPj}zp]pMmp 'r _^,@^^00p=_|?{ j@\p\@jo6X lO ?)" qMgߵr[p PW^/>#C&/pp ]@]ɿ=eS{on0>0oPn=pj/%p+'_],^ &$0` 2DyPA%NXE5nG!ArFG59K1eΤYu99^dǍ"7Yt7TQc'bЈN#BMrUY^duIWy7ծesVq3*[ݻcE1JoW׈te[ذLxk}ncȑ fC!|s[E&].BPQ뚉MϦp]jܨa){ '^qɕ/gO^]8soK'_yʭ.n'w"{1}g{Уx#SpAo=0!, xvt\!, xvt[!,ywu|yw !T,ڋ޼H;assets/img/forms/graphic_designer_contact_form.png000064400000014370147600120010016505 0ustar00PNG  IHDRC?PLTE%%%@@@\\\www333֠NNN㮮iiijjj ߼@@bb00PPӠt tRNSx`PPCIDATx0 M_/ (!:赠7VK~Z}IBϫ <ƞ5Yg@N?KK 01A` c 01A` c 01A` c 01A` rG4@0 _&&ȧB1` )SL!B0` )SL!B0` ܳs[v0QsYkA~[M3iNP{^6E aI1f'&&sZWoZ렾,((Q^2G-J$~Ojե&S_Ւ5˾ʄ~M.0u k]U"#E%Wzm^}Q 6%|}A/وGNizIy,H12EJQ_JRy B(=u&^)6s?{ ]@L &ǷM'f"Mf$hO|oA9gGd=͚GuZWҷ(| 8^1S"m٩dCvm" *r-3LL$t<9/YM,DChNvi~4h$pRYGbH3UaŎ@|-LTc@qX<4sqQeO\FVm9S\i|+5@(VյfY%4l}2T*@ĶF ik|fGTR[ލ+o_^J^egTχ.ɗK3*;$h|Ca q԰iLHo Q[*_dnw[{||DŽ* (ј.<@5Řfu&x@dl3B3]_Q -e :@7vlM0-Ұ{k(@/Wh.ǤG E F;rt8:9݄#'r(FEW6oH)`!YyA}:4qA_%1DkoEG9Ef[E"BI|s֩ is)("Ӡ1  OZ,ĚD2[6k iBǃ$\*iW=@vB+htyEk=zR}ܶjw!! Tn<^uBfR4ֆUX|mm΍k06A3BvBxMy@GD=2BVK^y*|"3Dg!!B/~ y'|};Zg^҄зiw̻Q#U`TcӾocޝq2\_ٮ>k1 h%<=y|,u$\`Ò(9)Ú$][̽ y(0Kpd<#1HԿ c#LYR\Pl@X \!?1ƀG @HX$Zb9,`c'HI-:cMi?[̻Q ,jZ1ua#j  AR8qlx1գx!o#N0@V"Ѯ e(SI@LH=5$StH^<  `D.AA$(E=tgr^א@`(HLmĦQPɞg\^,4}@u+)Ha)Ha)Ha)Ha)Ha)Ha)Ha)Ha)Ha)HayyM3p/㿵xzL)r;Z RVwխ صa@GQ; 6FAb$FAb$FAb$FAb$F "dڀzQd{34[ 1#H 1#H 1#H 1#$7Qj@HHƕ_qBcjFSNlp[LJDE:c!3B:c!3B:c!3B:c!3B:c!3 Yt:DY0]jǷ {x{?>B3+ `bQ1?*i~FW*N!biퟅC}27|фBvWsx>NqI0s*&2v(𲮉fnO֯5e@ܧeqDlJEIoMHՓL%m-;DRDHqBmV gngl 4J L|;M̨*\kX2IYg e-×/@ǘ s̀#!"P*/%$y4Kځv*r)8M`6!Zr`aB➐Kú(=ʐY+f[䔐ɚzrKȌFb4Y0xO(ꭙNr3 Rf/w ڢ[kKrSrJzW(~#hskj#&۰1"=*ħBhB62|3D哾m0rBb8Q6B2 Ex!iAkBQW`4! g)n" ;I(,!eMOoN :˫#;o/&z^r ߲jmﲋP>ȿ/)j8k9- 8 -j4!jO\e4%o2[$j*d- Au i"6+類Iƥx!Gûo'/wS| TU !1t򋽻q8~G VCQ5zr"Juk|6y~f]ٖ-H0 A0 `nr<8vHq{ܳȑrb,K ` a0 A0 ` a0 A0 `􂠂y>B9$OP^}a0 A0 ` a0 A0 ` a0 A0 ` a0 A0 `V^ZmB!E&owC\h/Ew YAzQq…6Zkucv2{$A\I59yUnWVZr9s~9޼} ;ADh4Y/k'?_SZ gZ[4NT+|SE[lM];j9lj 6jhiaCwf6h6FΏ w1kd:t^|>L ~wi jTdvum>7M1r{APT'ᴔiof~KԖ1HszYiyƟnyl ^dXm6ɻgS[E4}Ulp"x b.Bv3ͨ,HW][ڹ )-A7d{/H2ĸ\ ;Yu:RA%HI"H3,12ʭ"Hq;Dj/n Qd1Z0ԪU&n xKM" ⼖E[j+A\JuF 2AlHۖCm*WOUu&곢Z~(A7~&0 &j&"xN'ߠkZ(אa~zUy-k+,rkBև^r.j^3OwAA0 ` a0  Kjvj,r!ՉA;` a0 A0 ` a0 A0 ` yz re@w uMTr Ņ6Q~F4Cs3JTHwb 5$T~LvQjI=8 XrC=YEIP-OG<̯@v3`sQ )_0@<&F" ͟7<vv1:r9I_髀d),{FKFH@ ď g(H@f$ԋ] z A / OȌgux~i3:@튑T'l\@LȽ`Sf):;OD:ki6-".LH覂3M !`jԓ7K2kvftM%Fa_: qŠa0y;lmbl4K3v-]㑀+@t-2M.aaI}Up3W ~uoJ_'{3.RAX sXg$3!"q |.%)ĺs_"A~  :OD;/cwH_y$@tyY fuL }*?GL:4mCkiuO# ' HP@23L 0{}Gk8ҍ0p ~9\D[uRQ+.kՁG"(P ;P 8/E|UTȨJ#!H(18DG[JIj*8VR-L@DpKR'8>!DuL4+Cm0yLiԓ ߂}k%쵦,44N8pt5!;|ȥz| 49u fzLr3=@n=sY\AUB kW _KhHzܣ"$Zō{!3B:c!3B:c!3B:c!3B:c!3ŗXu7T2iF3EZ_u6-cF7<#$yB{ŷTc@!_($RcD9B8s^d0MHL79`RpcmןmKx[G XRYP!J x;^; 11)(A2aœi %CS1;%\H/G Sަ)cH< i 3`l7𜐛 A@J[ 4yC"YQ N!g$5u_HBV5i x?e1v!5ʟBI?f+tBԦAs+ o@J)߽-Z}9zԶg|CHg !1tصca ۆ$lQBNu>KlJRLIvmClh{ f9mC0 R ljr ↗_aQQQQQQQQy~_<9Կ,GǟʕP.{Fu~))zZCc(((((̇m۱}MPb`vn[ RO]dM#Ѫ?             ŒQ% cp dcH3J"`,7*Ҏ܃h /!xG N߃B@yU9ŹG, r ] }Tf.aBr۠ 7r`_BsqH4'~ n+kvSߡΙ}#.2=f/_%H!vBbs"IgK&8M`総r΄԰asNӹ>f &.ρ;08FgBȨ`!рJxK:NcP.<=v콲%&p&"D>54 &Fq !P5ͲX_yryse K!9cpre B䒗G"C0C0C0>/W)٥XH4^{yI[3                   Œ#BFq$I$}^/_8qryq}'_(D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3NMlt1jW5m*l''}A?(P|MHrdd\h_zʼnI <\BLK@R̯g#%}.f.$ |w-oBXdL\0J,sh';ViD7 .L"@-`Ǥ`'rZАn6萢Z3g8/>;L`9g}D@O7 1%n 0v||=IeAѱGS^"MgBLX[`@ 18(m4!:mdzIlN7pNV&}V!uKOH𦼰?̄VH\{UӠ'(!&&ٶV͖U!m{d7p degre3 Yd}:g3B-P;CBvEHvzPK iBfأ| eel^b:89%Ȑ7!&h#U] 3*W!I9{Bfػp!u6CwtmYLx{ 0 =(]K!ZLwB U/[M})$$Oԙ9(e֧J9aOn4BDD*Gq)dP*2CƹV:=!I=4!]3,>:D-(BZɂ7PhB V!`t^O]kľ MbOr㨠Q3;wՍ`Y *8:i~Yy<!     I|I|H'7$ ^fffffffffffffffffffH'3$ I$}^"""""""""""""ٻݦ( op-/,M2JQwh@МOj8TUa0 A0 ` a0 w>;y]/}wwߍ,89w.}aeUnN^ }鳽&Ƞ巌@p> 1T4f|.>On ФkN|:9H'MG2Z"ƥOQwE Cwjw>5 P {d~/k^C>-&7‰yVM."6ӿE=Kݸ]ΧWi Ot;gG{ݢ*$`g ?v>}MiL ξtщ\q*c/r6.}JԹiv>׃h 2jڹ+.Mpި ^3qF3x2$ c֥ Ճy1=ܵAz23i׺ⅳÝ$C۝6Ȩ{ χ1T;8Ns!cuM 'ק]gw|6Afhtp ? a0 A0 ` a0 A0 ` a0\åO,\¥O,\0 ` a0 A0 ` a0 A0 ` a0 fg7퇲ϼA'}ANk r%TiAfwA>~Sf!:콘BD8Ddue*4eǻɎ^l fn3sV[̓g׃h4+Al0;eۍ eks۫v3?Q8rf3b-9s/t j?TN%5\L{ & {iG?M9e AU\V! a0 A0.}Ko>p >s{0 ` a0 A0 ` a0 A0åO0\¥O,\¥ a0 A0 ` a0 A0 ` nQ IX4"$J|A` c 01A` c 0I+ȖҳN%d)a\đQB/ӇM~ƼvH<yIENDB`assets/img/forms/support_form.png000064400000012254147600120010013210 0ustar00PNG  IHDRC?PLTE%%%\\\֒@@@www333AAA렠iiiNNNʅ@@ ``00PP\, tRNS߯`pPIDATx0 MJz-hp&߹k_gK[^K L⚃r@b 01A` c 01A` c 01A` c 0y1A ?J}[:l;3aFJ/h3]@:3]@:3]@:3]@:3]@:3]@:3]@:3]@:3]@:ӧ$sn1 Nti8avΨgQY}{/7ZNg&;jm_v'F"n3~p?/]GrbT JP͐?G@&&Ih]%/бyZBOZgFaS'O9" %Ԧv KY !ܤqSj)TQ8W-$#70RI Uwlu$Cs0V33N?;/}yiX&lS;Ga(7L@v=DMV?FE@2ZI =? ݼk֬1mEZjR;mlDm7 /<A'sUPPƩc Tk$bI% !PYCM6OTl2–.ׄSU?3߲9[i乘:XniuI~-ˠ8YLki=)ѡ% zM4u_X+F7]'-ju=gDNjUH4ƚM3c"򠦰ZW 8J7]khP @T"4LB^8(cZļbkR6⌔^ HՠF "_tG -"#+Y}D.u@s= Ddqszh%} 9ڵ39M<gߐ\ Bf{ aK 8<!*džO5(a@aBN;dfwHRjB#vTxq@inmie@d; 7LI.0N9Qe῁]G钡UiqYC4/u7DZb.btKV퀘gob U 3@>m99F瑁p|}jI&C,ԫ_:bv'QI;U|#}i?/B!OƋ'Eȓq_qQao>Qmp_Edj6+DՈ&]z8V囘XCr۠BJ>B~|Q 1t2O舕_$#S7/pt/ˊO @/c!i`4B&Bl"E ˯LQyt׋|y5YhK-U)Ejd \hDf\3 0do@ ;0TU!(>& ~8xM$}+͹+d\_СX!G LSҢȑIvJx.Z~2iW!Kˈ5-@UfFP6#YR0f>C>]N K~ݲdE!6u),w_Hc]!JBhB*"ʀI5㞲"~"+PX"St5a8L 1v!cR}yo@*DybҀi?'P|؄lɥt4fBdEW!Sy(Bp+I- g*WĺLD)5ЕcݒС!D6-+&b"t* !DQi WхC$Wpn @N(8 A=BK))]w)0N]!V]`FSHL,7 ?5tdhvK}[HLTDBr:i;\.I^0*[鎤Rm a;xDŽp sЉGwsSF 2ǹ[-[G!fi*}vJxGH C-TAar>qm!19NJrz5kհ t-(馐mG Ot]DEKD3ǣx 5v_/ @ %ВmSLL6;={K',A` KX % Lh7A"^{sqb[N2lXVn0 8AdE?rTajҲne8ҕvi)}~Rq%h ` a0 A0 ` a0 A0 `)] r}[߼ǼQP7Wyya0 A0 ` a0 A0 ` a0 A0 ` a0 A0 `ĻB~bu/dd'UYNV8A{y yu7n+_1COC\u mx;MZyqIժS脲qjV ZUض"!<!Gi|OrY U)&&.ȼ4r5Dds<3!T}߲v0>Ht"cncPאAUC>06H{k #2H.aJA 1 A0 ` a0 A0 ` a0 A0 ` a0 A0 `̟x[_|%C-{*}}[{ݏWm7>Y1)*]μ:r3=kDżICSب Mf^LjU MI4(U/\ڜ&FpbP4oŽ=HzԸR++ⴱTC4$5wR7ҊLyV^(ն:amN>AgB{-\^l>YET}'fs |Ayd)g$15J V6lh)RDLfoY Ҩ퇬J9}mCmM./^B Rj!SqEڤa Q/itGHqmoݎ?`1A\H?X 7p1ӅfA Blur AL,H^~.'2a$gM3ԉi n Rh)8$wnz+mӓކA:1SVhl$n>+)_hok)T7e C66Z)IC_oCNן?x J(Wj҉Y ^cAL҆$eWNL4 b\]rT7C"6B dr׍8^"$h A0 ` A;䰓x3ތy98(s\oA-y c0 A0 ` a0 A0 ` a0KeuXdi@YqpGl0 ` a0 A0 ` a0 A0 ` a0 AhNn($l/B~-b 01A` c 01A`J -s@FVhIȲ <ž}+n_~d{`ZIENDB`assets/img/forms/complaint_form.png000064400000013043147600120010013457 0ustar00PNG  IHDRC?PLTE%%%@@@\\\ђwww333NNNנiiijjjhy 9;Qhi tRNS`pPϪ<IDATx0 ;ۅ%D4浯6k_䵔 <Ɩ5weM/~,A` c 01A` c 01A` c 01A` cfv܄0# \ؒǒ+IjsPڵJJ`slr0N!r0N!r0N!r0N!r0N!r0N!r0N!r0N!r0~d !8 5Ӆp$1_7I3*{G_-ج2zc@o\':¶օ8i=HRG_M!]Y"=+lfNt(tW% "HRy{^F*W=kEmNAY1>sE^ <.bQqBsbIKͣtD5-s]e] 9țo٦h9-mnN)TrŘsa(LB.$䴁)Fv!PB .oLP3r[HB$):tg Ҫ Î(hie!wd `q3ɚ 6ⲤFEjڄ9B "Mt+N& Au(@a12|)-Ҩlh|тV2 XN/Dqi5 AzƷ\+",'5G+Bt`F/Y yǻQkВC1ex Lyz"Sz$i)7!R*v%t%1KDc,hUɕ!*.h3BjAn?JzRr )=֪cb͌T$P,B2zCJP`)!%u Ip%n!%x8&7wH ʳmB B}! qzj=Cօh _- UϐO o%9ol@ZTImDp@_ـ b|ɥ[/=uXE)rG'2.SJʲVڇ\Rjυx+j O_ @DZ&B>a_(n C'2:]CSdW%4az:Q&#υ4gB{@T!- Пq#,'v7R"nY E novE0aυtG6~օ$@wZ89ΐ@GW!}}:L}&B|ةYHwl\BZrLp<(S0K*)cLHYmg($HHu]HU"C!.+I$ŵ|% BFA(! dQ2 BFA$<;tUI|*DP``xnD쿼Ƕ60|-1?lG"ȞB}Ps;ں c 01A` c 01A`2An6AVTdD JPISCמ?}.pl}  01A` c 0G2#dFȌ!3Bf2#dFȌ!3Bf2#dFHͮ0 8RH`ߌ!3#o7faSP|?B>gB\B蔰)5_o|&$W>IH!"5<"ʊISi^!N'B2zK' -x ކ Itv&Or)AmVeWjrsxUFiS'g_&$F )`8]LΚByJV@U1 Y@UZTB(w#QBwIN!{"=~総I= `fA?+ɽouo9+zY-νp/ѡǛ ߸}RSbK?V:^H±0ut{!p\`xxŅK_7!xb!2F^HOQsbҫ,!癤wvI")I,8ke$BDPs YaL_&dq0ܒ F†TMaCe! ^0{!ӟA'j FNO b8E炝 [3L> :X&$߾\g@Ca](J_|'`(d>c\^~/PSzbhȒ,!/ o QRhb*&+?UJk>L*(g N۟Z [IrEhXғ]8fxzP`La08On{I ym+@d1,y+ϵ߯w0?nqb,?B~wMPǹCu|$S)QԨo_%c)CO.sZh.L c!c Rc8 A0 `L5zAZUApۆۛ}-.g+A^_j{^ǝf]wj{ _:7d0 A0 ` a0 A0 `%Y^mo W`eqf_ r^H#f__(to 7/Yܴt% a0 A0 ` a0 A0 ` a0 A0 ` a0 A0 `>5Пq!;cWR̶_p0 SiԱ0=]LfkP$ȥs~pDYTx]$N;Dr/jl[:CꝬIujDd^R&"u~ٰ%W] ^֥Qvz_"wWzÔ5NaHՇѴ7A}t!hUDlڏaΡ' t|g.Mi.X/HNe syE :83'qW8jypKEvwA:-A~{-bcDe_rR&E5k :q=HFT! TkӀ1b\TWS)'+JnV!HlUq)ݺn<7w~p -Qi| +} l;O=yO} a0 A0 ` a0 A0 `#AN ӸAI/9rg9\(Dž' j^;N#[?  ` a0 A0 ` a0 A0 ` a0 A0 ڭa ? 4K(Z01A` c 01A` c@ZF V9FK0z汖 a_tIIENDB`assets/img/forms/pricing_survey.png000064400000022143147600120010013517 0ustar00PNG  IHDRC?PLTE%%%jwww\\\333@@@AAANNNܲjjjȼ5}Է~oR&t `&sDpp``@@aPP}00`0C tRNS߯`pP?H"IDATx 0 M o9kadoc4ݗ4]%+U8ZJ{d=<-X,-% 01A` c 01A` c 01A` c 0y5e7A(6~f@/L||@ֶM3&qePϹtq2FQi%kКFG/QgZs[F0-z1@X4$"d3!libIPQ|eY i~(_3= Tf,BvX-Y"ݑ@!J(Ͱslՙ1cjXFl%+joVRjxwy9.<~=zNcAZ-)F% k%beRZ"5*erKDzR}MG7t7)-Ƌ͵OyUS e&D "Eak!GOFK,pK- Btn}ޖjh#T"b~"qUByt <ݨJ7S^MBXrSyTX"ucI͈Zߍ]:.7Ng!dL䚂 u;. "+!mf`i Z%h52)(d1tjoh9’/"7mB2Cj/iW *fLllZ]z۷T 疷~PBVY Q5K4!BH <.YĠc|H|IdA-b,潤DB BjRM@ňZI"]X_P Zb7K/fٛ!I R+[,q59إD6C#Qc#S)}!2l{HI aBv oG/m`XBx /ĦFjq'&c^A1G!sjR<>ChBZ!F}x ` =$6 A2u(` ܏XzS :*^R*&qG4ꂷ7OBH IIkc=$.E#V6b吻U 7r ;U;sI =;N!կ7ʷ)B Bň='އ #Qq.=6X!: )0[q 9q 9q 9q 9q 9q 9_9a XǖʇyUB! $VCʈ|3;_^SHgB:8t)3N!q SHgB:)!hxR|TẔgxy~-247\o_ޡ =^ E20n wxqgR)0gNv5G%rM}J D5|CRjaL.il(8^:d3p˝`P`;x 0hLF%_['B;)Xs`Dh $^L\!ׄPMH9 I~!D4BlrNDlP<4)4_~PuRB ac+v(Ub Nw2"51lXP|qBjWHc!{I d#[e\"z1_"/=N8ղ Vr_hFg"6nl{^UX#8@لj C|DzLՈ$sy ׄIy?i44mT!iî g8l`ԇGw؈"{ӿ/D"h"G?8t)3N!q SHgB:8twv`Q 𹁏lAZ-.:4Y 24gQR/1 |r^[ВAUGrˁ d\)c#>$om@Uc-DHH׼ьHkD ɕp\7 ^"DHM$45R`k xNmSk+ypn3G0)w:+^@$l WquD R"H!Ծ P H{`B@7t-FT屫@!9HarelW^I +yn,d@$=^) p #/ȽkO! //SJYǷ" +`U'wAEo$WYr% h$ Q0,1"_$He$He$He$He$He$He$He~o7 QC:؅6$nB4 (K9:vqf}!1AacĘ}AnC;7H -r&Q?HV؊O~*liy@-I (J"a;QWo$rgRH{!^6I*SmK94)D!$^'HeD$P2IE=I*#;syD׬g A_Vl"Apsk:KB+HE", +#$w:؍H8KA  hDPE)+K(Aϴ: 8dя މerJIS^ APk> YQ9< oAnq/@z$.M;: W11 b  01 b  01 b  01?Y0O(-?iyw[ d''TjAZ$app?BFEs 9q 9q 9q 9q 9q 9q 9G!ʢ0 h"W@g%VP!j(T|!XZQX2AcJY%FP$:?dbxoG=Y B' N;8'j%(_<2 MIl} fCCJ>i4I|ŔCg9 `tZ5v7(hOVd[zw8cmL!/.x_O5ZyBR7!' xT4A\iښ,ɔE#հ CTgƠ݉tI\,EVe% 1&m1"獊mH/ELRS4a ǫ_ÑBp]O,z6@^mh1IQcsw|/D3eByƮ! aʳL'Ӆ+ h*.n1 2UB$I 9 &2$5~ DzmB{ DQҧ iDW Lu aASLp`g!-i HZ<-^.^nNF!>0{+& (dXԅNd@oP~ÔBU-y $2Ϧ \eq]8à I7@/3U'߅d?3&O/!mo,=bZQB8ܙHgu=yuiNeKpdٞ]:w+̈́"fv3cDRaQe|Ba1ɂHùJ@Rt9D5=DO/m0;\:q 9q 9q 9;hm8 >X/qĵ&MhZ6c}/ZvFFV1hAI 9OE  A a0H`$0  A duw8n AOq$6GoS<}\I$:o[C LJx+SDK">=Õ-1JI2b mljClpdX$[3gAVx1g` g~*%XٯczyR*KĚ NggsOw0Iuk 2FoAAٷ_[;>:1H`$0  A a0H`$0 qAnrSܙ?ȗT%x2)(6͇$y m 483~>$鞪_ZUG/pyky)^i$c|LUje@RK9 ?2GG\&Mh1~> wREk)=b-yΈ1z>Ě+eMd|rI Ru͇pE_ԛȱD\QJ An%Cj2 ruR1~>$U 8 6"妊i@~.eo| VmDJ߀>?r1H`$0  A a0H`~s.9R@>_VvIE2;$[,']`hiDE:T_Yԗq 9q 9q 9q 9q 9q 9q 9q 9q 9* ~š/Sy S 9<㷌xbsS=LH9xW%^rhû>~|  98 `Yxn9.R[[ UgǍu ~]-V"ek@/ aDh.[3) 8UQ1ϕGB+7x; Y;"$e Fzv!enI LSp1y\&|I*9l- | Jy@K\Zp .Sg OŹybѩu8Ȇ57BHAnIKJ #W4"1޼ŻCRTG!,@XR[|tuChPg$}u.L#F44)79 U{ `^)[Uޚ=z./fYVd6SI-_N}jwVrxItUrCa_zw 픻'=MN_q,N8lA ;l+@e!+A.)#HXܙǍc[e$+AB^tLjW>?V#ș(*AYw$\ QɍQn@]_@k#x}~^=ߞ|D1U "- Dn "GcUL|HJw(QG<@3?y2Ai8yWuS:Cn0s࿓R݆L R?'Jb % *\`r쵑,q/"$3(B2Ɍ"$3(B2Ɍ"$3(B2cwV9{v!+>/Jv!9˰=9?|Hm8\o 9ë-? %͇ԆP 緳y@-OCmi>W5Z>,BjƁW0'͇sT|js|8v'!6̢kin]ǥHa)bevܮ(ԡ$Sja| sv6vڥ|E>$ 4R`Kp:~ %z55"C11Rс\!tԬ TyCZOt 'H/^JnϪY\DuLZo>Z $$b-v2 kLe'!PeP?,ua_ C$ @͜fb>[ YfBTY=ϴdf?jX= 1Jc#W rTfBB.K߰Nة=Ee2HTů\#Bǽ?o2a[ ]ϴ);y[!!|yx>Ooq2R&9dGEHf!QdFEHf!QdFEHf!:9mg0)!:赠 c 01A` c 01LZ @zȹ0Z1\%,!\y `;&j}?tyIENDB`assets/img/forms/conversational.png000064400000036054147600120010013504 0ustar00PNG  IHDRXLi pHYs!8!8E1`sRGBgAMA a;IDATxYmW}.Y@l BϕB06HKhD㇀$X4yv!ɕν& %8`:sm0`=U~?i]ks_1[ >|g fg^^gv뺻_u*3m-z` @puu,l05dv f!7G,\Uw iK?<.`f_.X峐sw uϾ|`;.d;,\;rMwd֗!> Y7&‹: DdM[pXfN0MP'tTíYO:rs2:J X,b@1 PL(&` X,b@1 PL(&` X,b@1 PL(&` X,b@1 PL(&` X,b@1 PL(&` X,b@1 PL(&` X,b@1 PL(&` X,b@1 PL(&` X,b@1 PL(&` X,b@1 PL(&`;[o+~駟޽9眎ݕ}O:wyx mvq^ 1yb:9쳻j8V85 B'rrx}}/t}_Pg$h]tEK_O|Dž#ʱFwm: /6y{^0k_C_W7M0~P;"_guV?}tE;;xs+ai <99zaj9 XI Md=T ڸh/Yi6 NީQMjpHK/t5U}{Ӟ6^ #0e֢p*-4%ԅկ~Ĝt SQew r#5V-\k0eVʟ_S?w}{i,+ǿurG"*6&`*Ai̢pJ-AjRõLg8Ns_:gצ{b.w X,j:JМjn[/4N3oonW~Eےdr._7٧S^jEs?!hѹos}qhۜc𒗼dgrl Kʺ7ٮ|k1rvCy?Vni}^lێy"xq5_}c/xcie$h ,ꫯ>n8/[3ۗ. zԣYȱY^v͟,hz~#+l>WS}|R/_8:wNms3v^5s:Jfw;Z熕lG^d7iS>?Yom~WDD1C;W_7oӿfEg>A1qu~̚BfhP16- WmgHݝV.؅t0E,Mm_J:=o1kw:,G 1ex wSCmZ8mO>. WтmVL[w{wS>7٧U?7 .Xߥe<۞Urfc"R׹*_q_?BF fN;ȥb+_*| kZSɺB$~" )S5')s~n[%i|`}\u=SoYvN{;>%Ȭ*lZѾإeZ7J胕_ Nʞa" %L FeS\< ;ecXjƚV 5X),3ۙ-o r Ie;h&9!?nӜ?V 6\^M^mGlLᘝf`Ey؞q8j(bX:fƚ Sp /;Ap\LL9<Urq W1s7k篾4 U>vgnj.gg`Ə4ɮb속6^LӎqC?:]˖y>OB>^ܱ߭e׽s7Ʈ?l=76:`턩CS5U nӚ[75 `ѶonVXMeSs2x`0j{:StM^M >c>Ӌ>Sӷ3n2jK>j['nBS5c_c6aϱMhLȔV/̋ƫZ7L y:q*``}ͱ\֌>N4O}qq/e{ [8_S}c3iY-Ȣݚ6^WT^W1 -l0UsuNLObFWމh;* J4R fU*jƺV)Dd[^,uMSen*fyUxd'Soj|N/D8U]SvFR 6V{5ĴWkZUGnO O;L4fLex֖偃kc}[GU5).9z25Bf=?LЪ#vﶩd~&j;nwܧݰ}Ϲfؘ00vhJ?d. Ų?4CW턱cT q/tzm$ꏣԚ5Owj Mjn:BT8cEBrf/ E\-:cG^6.„ Sj3VY9S//S!jSN?vh1,@n/5e{Rpjj ; {1\5ced0EwN{c ޵1=&kl.O5 ZP"4v0krpѰcAcsڐ ,2_$ǂT4eY^^Y~^OyS&*zN 8vُv/:~W=z!MNvP>Sׅ;orVQ`eTВ ]  Sy%tgS(ƚ pa=vjΓѤ6v۾EB=Km,NԜ,k:YU |m朎lݱ>jYpTȲ8J {Y-Fܞz^^Bnm62Fߋv]k6g#<5l1>Y9LH[/~B;Y|E!kgo SXTlQأuRe,@- nTP˳TajYcNinԔ-g={d}cvC:dZ^.6Q9-dmQ_yK/tmRi̵b8V9nn;8gjٖ}t,DD uk{n1[uپvua;v}M,oל뜟chJh[%e[ju{~QzL$?Vld&!(mȄ k5ûN pjtR+r sbBL{OWȫ=d?fR[켵σXqg X{i-H[X۔8͐4M S0:㑱ÚܠC6Xhufv^E2X9m(eWjĦƝ-wyS  pj X=Z51mRF{PR!_5g?&O?cAZ`-(kfGD^lN?1ӏjJBX؃Zۓ$? ү;cQG6 ^ϣf"o[`rNf`dz!lՓSm4h2匍ǴS!TIsilsQ<ߴ2gc'FLh~cR5?ߜׯJ|Ԋ`O{V); idTJ<~-U{8trH`ȝt WWBİF+jj@҄6R2R˕;s<9:̈́Gd6d9N2<R5")} Ỻ{7mNW=̮サuxu}m՝qFl~|ˡСC9[F؈p3[u#!k#VjNpYBmGv޾>Wwup\tIپ޳nU,e=:RsJvV{YO gs[t׿]wumkj6.`l:- X,b@1 PL(&` X,b@1 PL(&` X,b@1 PL(&` X,b@1 PL(&` X,b@1 PL(&` X,b@1 PnC|e|[ԭ7v'AzRwу:7oPL(&` X,b@1 PL(&`qO?[?4ϳxhwу;U6kٳpu,d-wѽ{_:Ϲ>fSNżݡpz!eG] PGsA_`w6 N_߾tN;K&3qyߟ>qr|z? ^x@>tǖNWO~K XΚ p֓~|}[oNDw'wOϑfǛ}GwϾ?L?G#`އ]?y'nh8ڼ>e8&%Tf&a<]{wOyS:X$n@5kw sNm7&$}/.|yǽ>Ro]xw/Y ٧?tN?ߥ菎yjvꪫ=qȘpU-[g5oXK^~BMu*YMԕ^SÔ~0R1u=y1<<&%K!/}i^+/h-VW-=ϟ?linLMYgu2wOH{SF,dm9vx?݋_c˱k}rg_BNGr\}YƟw*v+d}y|Dj4㬙IjwYv^'ܱ͛˾[t_x+!+5Y2L-x]mz6Y ~-ڕW^yO&ӗ}^WZa-͘m9~5[-7r|s Ot2DvڍA`3֊n#fuȴ Lf)ijjV:giR|,%lj4xPI-%PpO MZHxJA)ҔyRKӯ}JXt|i.kڶeu _EOha< _|hMB^ۏu[~qh}4k?8-pZQBP6e4%,?HiXxjZ'3fS֝Z6:i??1P 9I բ#+#}2] )Ϛ1)?}$05-r G~pMj3O?4k3]cxLߚ!2}keR 855iξ)v~'ԂvM?pM)_j(53)c˚@mGA5\_>*aUX0vмV/a_x+d֔ ޼nξ)>0YI ׳*^֓5|M?v@_E3|:i:OP֙&?J{ Ú6}LɖM4w@sQpGͰU֭i6|wexSu"a(5`i;^)z STUHjV ' @)̿oΛZIj_/U {(jRs6V mȝ}>!&1n݁?qKlMڬǚ7SΚ NdZKxY}Rjڀ]qXhGn:A&ǰC1V ^hvb`X1ͦKZԤJN}矎 Lm#:j>-7ם7LpۀQwBUN 9[d~>[:Rg5YGj~?6}Ȱ"ScUU>9#7$TڳUBe3 Yџlם&v]Fvu(視y?R͛Mp w{ӻK~}lkC2dwֽo߽ p^wٽ??nifiZݚL ѦO~/!hMsj5kyd<,BֺQlnaUڍ _޺c;iZӑyRh'D2պ'm+mJR42LB4op&*p C)b1C pWN X,b@1 PL(ֳO?{}GuC;N?IpľX)='?SNy˄$ǽ~c?w;+}p+_Jӟ{c=яMw;|_׺[ouO?[Wwux3ٿȾ8m}6o{wW,]zWҗ%o>7^kDW}UW]uLʲtOӻ~:.}< e]Y&zԣ_s^r~+)a6v:$T>#H!Bo] @x+~gjAK/T֟՗egyxh+m,/j%`@iBװ*5D-]|W_=]s5GVΰv_E]4=m2_׾v^㴪4;Pڑkv!Û8RHz[r,|*>O΃:ے04 uk SJE>밉*?6'K^f,y{޼&(֟} 7-_V~+QYFۏ?A>7n֧-vz3Vw XP=SHclB2>RpV+"A5յ0Қ훓mj`6;MahaÚ/BgXAsLe~L b[V#q6%5y1mo5і3l+X?]c}ƚ3,_Oi7)SȦ_ 7't$Z;Ȳ4Bx7E.Uv)s($}L}{ 1 YBb֛cض%^jrLHͼm,iY7VksB`G3Ӷmzs~t4`$Й>&GOj_Mc:VKf;-$8e5P;?ve?r̳mHb]~sk?\A;[^&\$C+@)~R%o 7`@sZѪZVCk{b.o~Xi5q̼yrǤǤyql9GE?V۶ʾ$jfַոk(V 0ܡHLԀ}ru`?5y׽ʐZumدjߚ ML;6٧%jǣ(vپ$GZsW ~ci?,O橼޲⭟P^ϲGrڢ۳UGov ;گc}U;æZa>vj1Gdhw >_W^9@\p|YVU)dS{GJ`k|PٲP<ݛYn[fٱ/>XLN]X E뫓 g+́SwFklSז߂Ӳ&lSk~~"{IHPբƭoӲg)5Ⱦg=q8\Gu7ՁX/G>6L؟R{ɏ90߼]b>6{BTm$MvE?ןu>>YCx|4cp6f_^`L_rwf:֢9gͅξ\i2<8V&Q V,l]8 ;C:/!ȣV0IENDB`assets/img/forms/report_a_bug.png000064400000013647147600120010013130 0ustar00PNG  IHDRC?PLTE%%%@@@\\\www333̲NNNiiiՄꩩ@@`` pp00PP<k tRNS߯`pPϜuIDATx0 Mzar^ {3{owڗ*!lĕR8 遰%bi) 01A` c 01A` c 01A` c 01Avnq/0!@MmIvEc9U;8t)3N!q SHgB: @с@2C kB{ص!0<*cw92Bs-J3s13C} :EdY~zD iIDC$#3-H@9B^ghb5C>HPK$'2U1'^K%nzחbYHgj@Ha/ZM0\* EI.k#KJ^x2A򄐡f(r WN uc{BW&("xrv7eڳMnRo#O1Ӂ9; ]_3&h9R,]WA0VՆf!B3/=˥m^LZ 1"˚d' 5Rs.b4{M}t`]" FHѥVpjڝ>a'玽҆s003g"K< x&Bƶ:[Bbu틭֩T*)!>!,Ɵ(#mCl-odcqq#̏!+ZMiPm2y W)g]<7V!(܇<윲6|!3fiv;Bt| X[3ypL+-|É-|GH;Bf]WB/l:|uU1)Tďe %7ΒE嬇o9ؒ[B—{!vu窟%'3Y]|H k`.)p!,ږ7B:ȕXoMHZ dqla,2Ca<"q}@**ZT#$O.ƤeTH~v A_,d!!NA aHC<>Im ݳ? dBcƜJeGu':.#d\^{Q Zk QxGG/KD<;^Mp SHgB:[m8iKU4ۍlH$7΂$k.$XB+,KA Ra)DX ",KA Ra)DX ",KA Ra)DX ",4cw`5v~C̴n8X\ԏ' -co mP pږؠ lb b1;q=0;S̀PB2o3wu{`iR w>HЗ<{w2)c#/HJ$rH }f@ڛrkV)tf|oruU|s$W`Nb#kbD .Pʣ$aW)L\8 ;;'r=!k=d bbo/#Hߕ Եy@`]96Eb"m|劶}q:S:d;qL/ydy!CXADtK .QW yh.MƸ>]ӺU *y)DX ",KA Ra)DXg|VNr{k+u{zqMyk+IAdVAd Ra)DX ",KA Ra)DX ",KA ٵc"a Wƀvw&F "dڀzQdw34[ 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H޹ a~15amzzTԌ'Y- V2nj0d*0¨B )*0¸*3"N2Jӌq9 k&lB#kp&4|qqOkؿ&.d"!zDqÿOׅqPDȭ|>_x׺AHyM$rVR…MA# yE9L]iHY:Bzne!ͳrFB#:/?~-r]ެ: 93rdC`XLR8&sܑHg!"d&- `YmƇ|>qh9Z ˱y Dgmɦ,`#I u?kӠ%$@ RCH7eR]KA&5!=ž~b6V !3LOpOCzJ(DK^&ҼQ!FbO-ėV؋S`3B1h2$fg!M#$4J#ufB< #Mr=3$:"$DZ2YhB tz`2flm^G5վpy\ 4aJ24AhsyE!;䵒$Ok'\brBeV AGa/&fN‚|Hc^,DO 30'r':!]m" RS#-C312Dc,IQq\,D}bjuDܶ:!!1 BbS B0Jiڵ|ן7?t,BD:m/n2SSAUUHaT!QFRUHaT!QFRUHaT!q7o_T8R_ VRsy7}*,~w5 ǒX% 7FAb$FAb$FAb$FAb$FAbTit3 Jvrqsƚֿ#H 1#H 1#H 1#H 1/{t,0z;J!!3Bf2#dFȌ!3Bf2#dFȌ!3BfĎݬ6Ca>YGI7MiBi"vp!㺡VTGk1H52I3Bc*bL񌡟$*%}[d0@X/χaXd~Rk-YG+,~g8 g6vSaEvܿxo5$d5 @+Av8bW bB1 =/8_YZ*)NR۪δ"}uL0 S/Oؒh YhER >)lA. g MxND; Rbb3 A:c./-U9Fv}-H ㎷+ 0 2κVL[d !Hzx&<}S ӆ qvj(9[b2myUKllAػTa(7*Rā_>A(UUfr KAY^֧˜jW?|}u/Hb2]psZ|kS8 օ+YFK5 c\j!'\ "3$TzIb'9GV": zH;F?A s_%B@1/*] ?QJvϹ (zQ/IY8hH* eDU eDŀzW:Sz) <0$6Z $03^\4&Ŋ DbQ~$9U>kLŰ:@v0/r7:5*5k6 <$TLGm['a?@gr# c@ruyCva ,8 ,8 ,8 ,86x$8+!1A` c 01A` c@Zz g+K %K#YXXK3y `&j};r;UC"zIENDB`assets/img/forms/student_survey_form.png000064400000017006147600120010014577 0ustar00PNG  IHDRC? PLTE%%%j޲www\\\@@@333AAANNNiii 5}@@``}`KOOO00o&t&sPPpp tRNSx`PgQwIDATx0 M_/ (!:赠7VK~Z}IBϫ <Ɩ5Ywg@?KK 01A` c 01A` c 01A` c 01A` rk6nP 3˶d[ B!I%ZA}Cӝq q q q q q  1U2ɹtӦ;O:Q{JYz aaTt >1zv a֪ڊ/ª?"frۀF *:$r0f 3nB{(;j p[i_z#]ɴ qTXъ0?,p] KBtbDJ>F0C0Z/!I҃^U+&!if&($'tUcL堡[@zxlřj!ؠ<@m#dz([Vx&D:}u ABu ,$$At'8i@l9ȝFd7k0ZڎPՔY]VԲ,D"EFDhdQHEbbуcJIB?u#'iL[lK68uAkb<ͳJ35E!L=al X1?V%)|<v!u!H[x/`WBLƚG*9*x q8ѺIbjF9AU!(`ٜskXBe,$I1Yci Tx); *%J ,.nb坎t,1kEώMZ@Fx#ZZ 6@TsεBLR-bq 8KrU vD .FC|s!kJ" BS&eB;֮ ?Qa&$Iq# !@AKH+oPM}Pht!O!ɢWj "[?̈́%th!y .pùrD 1'(X `_ȅ\Bz.ߓؔb3% X-R 誥'Fv܇[c_9d";Ҍ#\aaaaaaaaaaaaaaaaaaaaaaaaaaaaa<,ĺp da_U2g@ qX,pq2b*}aCSC !K%YJ!oB>\Vѧ;rŚ%]˳oo] !w*OPbj;zXRo0}8BXoW*cؒoĻ˳q@!__:(" 2Ð,STӡH_cvcm;х[c?6L5B(*GR:iU#e!!C<_将蜅 q؈USQRT'Wr}Zig#TYï08o~_vc|xeGN^P-KohF캐 ې{a&z:C HX/! rADzEއx§8At(_a4s 뭾 ,H\l8NO̼'TRX݂l-'Fr9ط]AzY$YI^1@>< oCV X9Ȋ=2{ZA2 VܽBdfkB^!ehyUd N CD=q+AA"beJg(ޘY YGYtii0LC84bA3 b&찒C _Ѝ!`9- Yz?mAgYtyt!+-W6I^ 4`z݂LD>l@ <=6a KD'iit 0czb?c#,0cu ̏[]1Av; f4 "cѫ߲{G/ՂTL R2-HeZʴ iA*ӂT8 q~JUCZؔ&PڢOڬc{:hB* &2hB* &2hB* ;㼼#)y5"}EOW3"#VhuQB( @Se{uĒ o@+:Jn]HC?m!g, 2((31 })d+- B N'ՂN:,le!q( 2d8t6X 4wuHx8UcmbրKj4n!y/BK!2,+!B 7dM Z,8P`F3O#X2F#'?(qqcFh2 Pf|QBDRC, [d!SK) @R1U`>e^ %jUȫ"X`u?,̑.!Ƅ!52X[T`$,H)`I)ܳB,dsᚐ vk!*nYNk!IϴRTs_-BtI0J7\CW+D= y#Bx\Pd=㦐<η, =&U!=ڵuy{c+ q-"H"iBT ⵐ;  %I({} #!i>%؍H\{-Ń.S,h)Dfw:e7Egr_WFٟ)h#qE"$R)teyh&"cB`"pt.(Qg5f%٫FA_'W:茚+^,vqEr? B:]w=rEm/DQ!IoW' jXvTGRMHe4!фTFRMHe4!фTFRMHe4!qw{F4lMüN$ ?Mf0XAk_B>"[,q{{ ܩ_bĂBe}ވ9a0 a-!BFٿZcA 2`0oFd{ )ǝ)aBT(Ȉ:>Ҹ4d7Fe1>(éKgJWi '~)( l$99toyWR@ $;O436%nbO؁S  s^@L>yhl*pGۥ:aG3nvrqlS9g@۲)X*SE )A 79 yX!17]Iz=[h7|K-O'6qѬLB>uMӞOJ %|eHHGϢt_ 9ᒲC6(Up}R&[MS! !CywgwIyeV"~FYD&dCd^ C%B XD|BY'8\G$"aRj8_ =BU,Y 14'K\ ˈKJ z RR&.}1uY0aB|V%JKvh}d?J6d>FRIY"@s' y]o`)G'#V@D!bBۜRzRڥ`e!10b3YHK1i0bTm!8.?\|9\diL+ F/=cZ]KT/!VE[Oƽ|_ FEΟPQMфTFRMHe4!фTFRMHe4!фTFRMHe'ݗ^=_;8a( tesLjyE겛.,۴.- T[#Ks;<~|R%7S^n+8@q r-S0H dq qo<챣ݎGl#"rjp_d"B>S} B i-M>cCGȟ36簆wF 3Ìi۰6av { 簇]Z: PU!O4y//I<cWm# @4i1yIENDB`assets/img/forms/client_satisfaction_survey_form.png000064400000023551147600120010017140 0ustar00PNG  IHDRC?PLTE%%%www\\\@@@333AAAjNNN̲ҠiiijjjOOOի᾿0zﱲr``D䐸Ϟ R88Xe3 tRNS`pP%;&IDATx0 Z؛ױVS~\}IšZXJ{d><-rXZJ(1A` c 01A` c 01A` c 01A` skn;n@1!Vdm c;IURx챏mBq 9q 9q 9Bz=ɛBVa1/G9bzj 7B_I:[BZ+4em yZM#<=5Ս@k+#)2MI7fBm X!<(@) !(xNdF8o2<ΐ@[! c[XH~B-\JI>yCS<,D)p_ οT D!๬S(U{QrMNQ0DKڦ0.g_Zf!+r+mųNm/CPJH^VckZ)[:])d@'WԽ,ks-KYd$ea'B8[ Яۦ‡`tEH3 1%Fr!wYHjd0f)U`w*gA lo` bN/V`"^_wa!u:Уj a$޵0#3l:ZwI)`n.bȭz&V-{4TsKu9fB('x.DRN4q]Y Oe5'!ΰ60V(t8\NyfHQR 1 j=/ ]M-`F*Fitu!`[7i~M!.+ Qy){7 ["~Bu=GQb2_eRb4VMѴ%/KJmMHSw ?BF>X BD=!eXDԅ8.7Ԝ~&?Y )T//t) lb { -ޖ=+iAFex2r B25u! .$A2dw)B1K3y!y!`W(&soXB U8օXF!eϲ<Ӗ{'k J_dF;ZZjnVjʼP2t&Ө@[yj5X^Bٕh`:x0*˘:^u,,Sb~4`!dXw*+BLtN-rN8~.]r 7>]l)pB)`B)`B)``[OcG)$dFȌ!3Bf2#dFȌ!3Bf2#dFȌ9A ^Jc!@t ߶2j'kȟ߱| :۝^;|j>Ck|!;UGO 7 O`4cByk =Z6r+|Je5*u(FV&GXG.."K0ϼ |lh@ʆSⵙJDXX8!oY5!*ٹ.@$Ju9o0׀4>de`90SN)8u).%vEXp' Ac*:qH3YY/ܟ#t;O ǼwM1+ d7u]Az틖&\D"8NʬO9c I3u(xUd~B'$2 %QH3靧&%״BeU}t|y\DPL uvWJ~[( | ; Q[K/;O- >BY׬\BGf-O@Eexe )W D5TPG tbn-Jr >&6o, [5s˷h~+x^BL[od^u=j0*WpK&!"i+rM zӨ3zĥbgfs5D ȃ'O qu6+Y h-_œNi 3@HizZ@!U&:_U[ؼe8޲z6VPS+)UHͪQ q|](r=& d6z@xPuGrUm +A e@C9&=9 D3 <$NXKT $bd=B16  AIHqfTiy%AfS"'#7I3\v=j:|KW@bp2Q2 }6#HcOHK`%x"~Q7ЧkۋQ,C1Edd4!FqJX8 tTsRW8")A= !.iFo}WDy X65IJ[! b+3b=LՇTi\1Tu)i G;!1Aq>jr`?|kk WՕ8(Tr_o0jpkBw}]i"4) :bK+MpB8o)43"DLtzsбZ#eܒ~= Q֐FƠ!#f!FEHwVNNs!9!oݕ>Mb9wFS}v<|h,AM5F)TB?& yʥ!r^M!2?e ʛB4\KSk^7(yzP!BNN!r )SHaB R8)0N!I!QQ}Fݪ47=tTʂcAs, ?NuMg0irWhc܍L$T 2,MyIc(Bz/.z喙[ZBzp$u:K\NtZދ AKMYK}1>dcb7wDMp,DaZscSS FZ=sa_;~#&;cR--'k)2*甲$}rއ/+ih5xNdPM-pSWT4QC"Jzפn77W [+5D7ѠF=.B (\!n!߲P*0Ew#%4Tn+5 c7nrxEq{!hHl*+ѷݐ떘Eȍ(%q'd G'QqZSL6]bV!pfK5!^q$4*:Rv^Gx*Ze E`sPBkڧ%>2ǫB k w(|-ƙ~)oF֗ ;A EBe_-̴>'bC 1#H 1#H 1#H 1#HAcel1&\]v*Ⱥ0!H*H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#Ḣ;XM8өI Eh=Ki%tZ*)26 ` a0 A0 ` a0 A0T5KˆWWM{:뻯 a0 A0 ` a0 A0cg I:TrWZ}6Oc'K9PWTZd[VCrA$?)J9PVSv}})v)>5Ua @$ME)e.,7(26Fk vLL/BY*\_) qqs ^Z/4(%F\5"BvϦj 1MNަҖ=%X;ߏL..P=^UU԰ G,G#ʡx.n:=ŴEVou2z&Cr0!NC"IG|V3MAIGؖWAYgkM~?~~@ 4Cn7 !AlD9 A!oq7=hX}bچkEsHO2 8.8P82Hp J>d쒣u-uD͐[ IN4L"ٔ"PDr| @G !X̲p 1cB%: }9ibz2ۇ+ #Dc~,.HDPH:nhr\"bӏL9p:NUL~ B.efR@;GM, (rp"^`E M!"6U a.@%NyG},f샫^狌u EDY@Zr.8d/YR - YrN kuhA)Z!.uYolUz@VTFޣk>ȉGF:W!@[́.g Qߕ)NHCA7^D &[[m@,aNvl} 5 5 CQF 2Rb~kiO ֊Sg@h;zڌnɅ?)93!o0ōSg倽gD*1R+{ E"-VU ئbHK$S%W."7;np%YXwȑrr!ybxv x, @O@m@lϵ޲""3v ` iv]VS]Ꚉ@ av_n,,Scsg4~]/+ms5j=zsTlF'g@,UA ^ZX W+mQbG _٣C  !H0τ½@ *lec 1$ƐCb 1$ƐCb 1$ƐCb 1$ƐCb 0^C·3ؑ ${D(ʡ8 uvZZfGD Ʊf2e7fӇ,C6Q] Q?s9^F&P?ț>^Y!` @HUѳ}O xȇoޜLP1G8K" F839UV=њ˨ ;şa ^C/vdG)+=NTYB\ƈ)0Mv-ؗ"Sʏ52*REX$j{*/y^B/۟gH}⓮f^dYcVd [ eYD VlOz0s! >}x <@. ͆^OҮg{!\2!US[҆[]Cёqҧ?3d Ʉv+ d y*RFcDڒhֈ2LѯK0yU^|'mHdk{Z/[C3G/2>Ti'K6CjRoU1Ӧ5e:͐=ڞj ⽄{9qf`Ŏh]%kHAȎB 3!/i>#=:>tw@>$ӄP-NIlF#[Kd!I.%9RӒ4#?J-w tv5LzNIGg7 O0C2R<]X泙Ȫ@PH28I#9EDx4}G` "OT"_GYXw 2xfIyFH5#B1fBdj`ִDE)S_R ]Q}O*c ^1:??iLHc ;@uu iLHc@SҘ:ԁ41u iLHc@SҘ:ԁ41u iLHc@ӟԟZ+.榠κmP.Г@BfU='] @3q)t)/>f לٙ' ~& KGiXY#l7n] 72U_odRhͳ xwt#4LU,Ny=Ua?8`? -=zQ7Dk1 - Ȍ/3sщ x'b'9'ig H6|>蔈=U@E,N0S!$\@MQG )sǬщ@v{*lI "\p n@6Cw JIq=$4=QQ$i HiwYP4+z9(8 ל9>̐,i­PYHC nh:%N2ĆF?0yϋ(kK-UĨB  diZMB*oYcu?WQ`N9_``}2_.|KT\+5ױ5j5X2ʓs&BoY9+\Ԕb>\Th$2Q] H'XQ] ,'12Yb@`t}@SҘ:ԁ41u iLHc@SҘ:ԁ41u iLۭa ? z%_ 01A` c 01A` c@ZF ^9FKr0z展ּ a_t Ci(IENDB`assets/img/forms/website_feedback.png000064400000016233147600120010013720 0ustar00PNG  IHDRC?PLTE%%%֒@@@www\\\333jDziiiNNNџ҅׼OOO``@@5}%%}`K&sppoPPF tRNS߯`pPFIDATx0 MJz-hp&߹k_gK[^K L⚃r@b 01A` c 01A` c 01A` c 0yأc"@bP #$FH!1Bb#$FH!1Bbr; ;+7CE)P#1 v>ty֑rerH@&cDKǝ蕜R_oy&KrW#%2D{ J@/k9!#VM0aqt/c̺QM RX G r )(D4iB1 n,O= TA|FLvx6rgmdÆX)"=u4LmIw]{XbyԹMjޤ{ sMb⶙rF$uZAj[,O{D1d ڀ\Y#tysGM̆ޥ{ |Fʸ] P~|i8:Id4 L7 FpM@ {0ߣ{ H;f4IfwHGe}A$2Ր_rflu&Å1czx0 Q>>1']7 9M@*^r`jPo217ʜm@R6rRv׀UJX&6(6UxV"Yo0truE& HC%V:|?;g ڄJE/ S{t_yɳÁѐ>׺3ǯ3A#/穹 L<,Z/C˜Ǐx~D6GLdG[t:I nGyĂN4a/C'HP{R2kY/TΜjy;q!nh@?sGy p^t&vԝj2 +;18D HAC zqᵀEBj' W+H bM(`!VH'[\#hmgT $V>({(D2!04Ad?=`\u kRra g@x5 Ӆ&pW/'A\b4 mXq+A | Rv'Z0qrDpqږV TfSQ@*@ (c q&%e:C|51&̔UDPu@-@Ą>10d )KrQGԭk hWQiq?}$xIGO"e]ymDRk/V$Ik@F]gʂo㧽?eut͑Jp2YcnD裁#FKR/a`];Fa(|0:4mqz2#(Bc ?[M(> KNy2Bc 01A` c 01A` c 01A` c 01A` cf?HfcSlG藳iC^AnlFEck|#7kKDٱn0g8ލt94(Ymӥ0-IrYV!FO2P"j{h Rk9:Xls (]x0aQJOOϟ$5J)z:HNJV:c;  ::ȼ PUcXrЮ48&~targ&Lұ(hxj6=:G=rB˟SV@,t`9P8][f1F\U# ɶG8}e%zHz`eTm^dLAbtmӦo8[˯md)n@{@?b1?A,Nyܛ Q6V(/8S]3DTF4%0@0ٛt'8xA @ /DGk%˩%8YپLmRH,; % $j]"Eζ u (eydg_vme߃v3r U3cxfK m%A`2#C0tA(b11YHT׸tN@ڪKBd*BF#V@'۞@0)CX2|}}q}; o5̿5tvutW;TƺXw=: h 4|Ama+ر00c!0N)c&Bv~cKb!0c!0\v@j`PI,1#H 1#H 1#H~u 2m@=(W?}kGAb$FAb$FAb$FAb$FAb$FAb^̦M?=fhUE]{hiƆMPY=xC*0¨B )*0¨B )*0¨B )*0¸+d4*Go2=g`xi.߰K DhŒ}6"` O%<|3}!{<[̈QJ]><|]!]H:-%!Du1tC$'<e\LJdCc*ih7@7љApE`)1k!tq0Bs>NTqUa{) 4&UraX1ᐗ581&mBġSHVS7nY퓓B Cdb X⼧UHηZFD ==^HgoͦYo(niRe'TEGejb2.}1Fo˯"*Ar2c{j+MSuuϿ 2 S[h"Hf}3Zq ,AѼlaVF"i֥I}pK3${7zeʆveAtTU +s$"+ø3#0/hͭ_(kfn2䉃850KdK[HeGѫx=pUsehf_Nbsu+pX!p$KD' |2nYQ H̟5Y.GLe*@c9qte @nAeo%NAbmw(I&jJ'  yc>Hˊ9dG2@# =0]Xk1ѓ%TWH 45E@&juBWA :"ly~ijmס#Q^nXԚAqvԙf3y,bvJdUdP&Ŵ ;2ŋ17E2)y<=B/<qRe4M' w@Q# yOV7aVVvg':A'q:R] .F)s3L@,ITdJ_y5sȳj͏| #-+Hn% g s䃏TxwWОBJ;M[ūpּ߬ :%afM[V}nH l"'e`{ryD[svx"D}~xJk['iwoi@ׄR k 1H dzy2<@Lo O7'ȓ 5]?϶su2ҡ-o[וՓc\[V#u_L %XWC@?l }GGNiW|&# @ fƥ5Ote$/"wol]ZYa6^~uO@+JŎ۩¯Dx(`ϝY,΋(rk~S;ٔ; 9o>۲ZjS=ز0h?1ㄘ<#=\,*%΁^Q?9P A-WW?J6303GJҀ-N׀؞%BcY/U </SwPa.=SE롎uvn<@~ ş*:L-v-7xc3;ػJwA81OOܓǽM, (V/: Vd"  0"  0"  [uh}_ =jAwE}]tI+YqF =-%nAOhp踣DUAC֎]i$ݮ62lYb6qkv!lO#I*Ar"l k$[v EˬAn#B E<"R6[9A()#dS{R,|F$*b zKIjᶈe9\5;^xiaRe-"QG6GQ[Mw; U8w<kBc.e :=Nߨr  ΍v-4ჰu" AAaDAAaDAAaDAAaDAAaDAAaDAAaDAAaOm0 1Hq~  01A` c 01A` Vi%22FKr0F.k bc+!kˑ6U?.c}7sIENDB`assets/img/forms/finance_application_form.png000064400000015005147600120010015457 0ustar00PNG  IHDRC?PLTE%%%域\\\حwww@@@j333AAAŦѳNNNһiii߮7~u&t00oo@@RPP۴ tRNS`pPϪ<IDATx0 ;ۅ%D4浯6k_䵔 <Ɩ5weM/~,A` c 01A` c 01A` c 01A` cfi)DpdUd`i!`i!`i!`i!`y2aVa00HH`MRk8a3@栱+7>W ȗ0(5zMKZR .n;xx' Ĩ.Wk]nڨ-XC@qywkP{aCb{@ 2Y)ނV0Wȏ'@ >'"P$OYS`дH'Hv S@ OǍACL-"DYj6LD!m^G-`P,{ GU4EW&wnբXo _7O)Rn)&2eA_dV͔g(G Tk)6>.@)a4Iv Z9 Z #^@fHlڂϮˁlZAEAbZAn3}z1K+#H 1| rܐ H 1#H 1#H 1#H 1#H 1#H 1#H Ovͦmÿma4@968PPǥ7j4Wq،dKyy26!+c26!+c26!+B{cLy<ﺾ$vg3;q]wJbchbXQy`?0ǨG -GПysznEDP.pQWoٔB=93Ap2WXdTB1B̩52^} y=lrh}Z NXʴN= Rw2n6J K7][3IQS"@l R LY] Jdz#Lr ۣؒ} X/zWF3WzZp W8]%RPB#/#jC5Ct0e~\pKtn_JüP,0@DU-.m3!cBb tX2 s߰f!Ve.v|˦leM؄M؄M؄M؄M؄?yyv3{!O>ZOVawgL ca[LTipI$-KB/΋5d۝J #‘i0M?`E\C'!Hmxk)0{gx}SVLGw#ҌۣĮи7uB?Zk|z\K$z!FZ&HMb-B`[O={{?M|zB* UH/p409 S*DwaHZdUHY .{|]gW!.9&'!!B$"Y&/|wOOBX$$w#S64DلY dǓ30&b±W PI|%TBȋw_ XNB@,C,-qv┤N]Y<4&5oj@'Yzf&Z#$nFZwwnH;c$#Hx>Lkp/?$I=r!b|C]0k+{;rczɺ~?Vg}wwia40D "FA ha.y_܃=2ǘ ۏJs]by~Pl1 x}=s!k˼r52Ǎ-8G [O0Ļ"ΕdYi U/਋ '?qgUH![6vmcKnᔢBB.EB<|$d,HFzR zE K<⨗ġP^S('Zn*5y1amL}bZ 2x p$0"*YySiԋAa`5q>NAȾظFW i@;3"& 1<#ٿ|<l9 .{\`~D "FA ha40D "tP 0P> )Y$FAb$FAb$FAb$FAb$F1cCN$FAb$FAb$FAb$FAb$FϮ a ~!HBDRPV)Ta׺Mm ]Yh{ )KHa\B RM`=*?H^'*E:|DcMs grůZ()skسFUo{!GҰ 1xLBv}}rf A3rP3"A78n6!:t&g۲gCP!FFz u[KK`,Nw^n (6XZ:;HwqqNHoi}pm#6T쀛e[O0:oSƥLgI؆UHz?P0Y!M :$,ºm;!|%5׀'@_YChX$J!C-ÒJK"9!!EbcrBjz$jtH4."&*;7N] 0C+v^\rBfV؆e0訤W!VcF_ )*SFD:=<+8BlVyz\2B >:#SR6PI#/D+d8ʂBIoBAH_ ql!Srg^Y q]$ JG!3 /d` !$ 29c*Dȋ>VMbyߒh|~!q$-^4ñ< %J 1fѽM*,hBde3[K]/32.ߚ_ƏrBpc2BPZƸe84NJdHQ<ЙuNt:2Q !+f Wld#wN/d: I6`4&rdwNo QD/s 91e!Ė.g@q )KHa\B R¸%0.!q )KHa\B YQ0|SBNAmB~ Y]uLІW&>SyYGyYGyYG>g-^*\s:zk'Z%Ȫ%PJ6w%_i'_z{l0AãR Mz|!Tc\:^^ﺷ K->Гnv/ᅬ AV.h1=oķ@Uh83O%N@kGb^-8ي\ ҄\ V/C@Y "`D%Wܙ8iEe?޲2\.L=fs- oReT9HR (c> 0qj_O18 q&bV7)IO9Hh7 ¤8uiMΣI5@`"4drL!ei11H1S#rv'A2nB jk1 i6IIJDb%ISA CzD$r7.)1/Nah_?8w3"($B!ќ֥q 1HB6DK_ks&ә/Ϲ1P.!f\·fτUG&H'k}G`ajG]v*ۉ}}{Ywiy)_s!DU [ `A6n@$oBڴAFܫ­$Nnwe#.m\hMd$Pr>-z;P7!Xd2MoQCLD|Kݡ)r q@ fn,dzDWoz" Љ x40h}8B=D.!N琮߆HF(ZOBmt듐x Qy* I8X<~L პ!v&v &0BnLZBQ!ɵ;!:a c 01A` c 0i%Q9@zђ%*Ay%+,{>}WmlG2ݭ&&}IENDB`assets/img/forms/blood_donation_form.png000064400000015256147600120010014473 0ustar00PNG  IHDRC?PLTE%%%䒒@@@www\\\333̟NNNiiiDŽ`` CC00ppeЎ tRNS`pPϪ<~IDATx0 ;ۅ%D4浯6k_䵔 <Ɩ5weM/~,A` c 01A` c 01A` c 01A` cfv$0@I8%xe4݊#km6;~;MCqO`[HeB*Rx?!c`΅<-^ejے-DR&ֲYm8Ҩ3'z'tk[ Az^:_! $\TO/B| &'2B?qįB DX ak#DgK!xRg31s$(0O1#3QdvY侍鷸. MRAr>}PRGz=tZ.a:B)'TE[r Z Ȋ(`8XC)5A2n]Fp$+!iH(Ѩ2쾰x~X\(*GPbA$IO!wzݥ!U^XGan  : ?u! %Zl}"?A(r$~ -m1V< bDHSneFI!r op]hmq^2\+v] Lm" ĉﯗt@v!Q$ih(Y6[Q }p""k 9% #!1g͛Nv |tZ_\^_>#$k5=N'fďu:^y{%*mw{ejd Z.[;DO/?א/{}ґs"o4'Z2cN#*dB=Ne t Uhy!RXBv 9/Ճ2X[!}C#+V!z ڄتN'Vs?Q>!#|m)M!bbyӴVCBW$e/.U!+Lf{KF>SNQRՄ5;OkBFo$:0;0\I !jhB *u!eܭێmRBH"<,$!%K"+ޅglp8'49 )ztdl~w)G!CaRE t;WV7Ax"ϓp$F8ҿK!J 'FH:/ K!)@22iͩ+k]BTn&Qm8?=_;A PY"QPGA@c 01A` crR݉ ݥym> AV)h 01A` c 01A` c 0y;r(kwPc e)j Mm 7=1]hz@(m[?ʕ~'l A4ViX:Hcu A4ViX:Hc#z Qs|IxI'5}YMQiQ;&tf{DC扥3S92!:C_)A _%$ RFQ%K`@J+HntV2tmlіYʴj,szueQJ+ *xpRJ!ö |R,*&n v#k4hNg>N= 2"%5WEN؂̅A r∣*rβDNRfB*؂aY0WtˣdbF!)v1GX9H (& s5 x|lL:Ȼ 1Sp1YNd>QOY /XhJeЍ@.q]` 5O1[O7vAJ'̍BQ FW6䈥 6 s"6 VN{^F=,uxK/A4V0 ́$FAb$FAbn>ǰƏa1#H 1#H 1#H 1#H 10Əa?-~ $Fa Va0`-K69vɤ']V[WWn{het!хTFR]Het!хTFR]Het!хTFR]Het!хTFR]Het!хTc!ڬG rf/)-__Xl#T9$y8-1T$x^-# WvxZF $V|NN禾j"s!DDj#x# sDtz;`h hB,$LL{^.QCWǒY[4oΟ+4!:"B^RS )q.e܄\ÜQ9s'9_v빩"`=HZ߄NL^P2wBD߂2z#dQJ%DȀ30.O& qDj!)@Sey es]D8sMORcH"3dG9 G.x: g7q4%T&$c߄3މݿ̳E bLhHhdgssdLD\B^ZF}O_0LqAA/nmO00 WƆ`rд_ciEEuc[ {2Ɍ"$3(B2Ɍ"$3(B2Ɍ"$3(B2cGKn:4`? :Oh Nsjf`'7MAxƫ'8 տ^]8vHᯅ$|=U!y/4[Yۿ,2Y1,PgXf3Ԫu<#ϚCIh=#R~)~3>.}h1urV;1R @jpݿ}>_2*!zypd_#\q#t: ׵Wg Y !S:TFl&D5y"YŹVk\<jY\ϾC6Pܐ(N6/c''L.Kf؂%uBhC!T*PYZ๳QxqC^ޤv+nWeULA$Гo4RsBI7VYNDsQ!X*ȫE7OHD*N1Rb"bZ RmU-XLr&"R>L=R P5.yQ-W1,QI`u.%լ*, !4`񆋋e˽%Bw'D6#RXe)k!5۵άR?^[%!v7؁0bX т<THb7m!Է2jj" &!j"$LH@7$Ғ? M!mVBjnxӘ-@ !њC{sd!1ٵش~HBFl!)ZMeل$r搆 !=]WxMRP ~] ̊РNV@Sk瀴Htڄ֦- e PakP6WKy>TQdFEHf!QdFEHf!QZ~wD s-do7^ڞV㥭K[Ab$FAb$FAb$FAb$FAb㥭K[/m #H 1#H 1#ȰgFn0?8 Rt6cid6q gtw0n!q [`B2d |g΅xYg?"դ-` tX ɹ G%J31 pHiyF!ҥT %O{W'8#y^aD _ 9J„Y.D0"wU!2b4<# )qnL2rȀIdaɶ%®YQhR B M_[}ey7sڅaDQ@BBƢy=TvV 5*!A% Y3W:IzيIKR^r4KBeYڦ_һ>7! U]Yl fZ[滐u:rX*7K!Y֍tf)dg Bc!e MV*>Kv~ 庐om}FL'Do !&}nYˊQhzr(s >߲y_sE~c'noYƹeRv+ [m_^P-%J 9*!ԦrQH?A3ya"DŴH?ܭdC]RbiMt!JuC%H (!:t "Bؘq:)r8s.e!s [`B2 -d0n!q [`B2 -{wL0пk0B6Fooy]-:{ 1#H 1#H 1#H 1#H 1x-[t$FAb$FA:KD_ c 01A` c 01LZ e@l%c)a${ gJkk ʫ˞O6UۑL7MMj꨾IENDB`assets/img/forms/room_booking_form.png000064400000012444147600120010014161 0ustar00PNG  IHDRC?PLTE%%%췷̲ےѼ\\\շ333www᾿@@@AAANNN ɠ@@``00iiiPPoop| tRNSx`PPCIDATx0 M_/ (!:赠7VK~Z}IBϫ <ƞ5Yg@N?KK 01A` c 01A` c 01A` c 01A` rg:@+QlpaKB@xe`0!A*?4\1l*CT R*2THeP!B*CT RB&12 t}YWVrBHƐ?.XBlƯ-H# |`+.QCeY &iފ '#BhqV2'{X3Jٙ,.q)0,dxqp Dw|fzQMLlxچ'AՉD^W"$rEOyoxOͭ-]^ =|d "R~D) \҄^Uߛ) #Ĝ9a?Sl:&9V.=OyiZ<R-d51%dT!R~VyS&&a;3I @tɁ!&t)^-C\!YL#-ކȼ;R*2THeP!B*CeiaQУG*#H 1 <8 Ab$FAb$FAb$FAb$FAb$FAb$FAb$FAb$FϞ٭ Q8XHl]-}i4VLw6'~Wwf/ʸ.$ $qjx;n*Cp]HϊShd5qo=v_-_bj &C]7 y, r]H_[g™TFpx)DtrB?>]v!b+.:ʈ ؄x!'rхt ( E|99Y;hj8RJd4!!)JaPiB> I>ff/\&$θIL0٧PDF/̲LuF&.v:_k8LH BrFP$0r9rg# YF|r/⪐0edM3B7 t _J-+*ҙKq%d()X/f<߲ Aasȱ d:@t ;:lOf6Q{Z8&T~b+¼v6DR{r  )/AC6!8H[@}l*P|ݼR[)i].*$ 9pwe# D*dP"M!v[q!pBlӲ\VRSSH`ZB03) WH +hkŏV^ù% gka!qkbxƦμ4$ŝhjTDf.WSHGGGb{Bp6 k!uIRZ> }Sic)ddQ}1:2S Xrw˚l :+kMFʤt*C-#)ĦP" [4RrqGzVzs- LVXل8a Ih r<}s]Wrܓvz0OkGW!B~G50 $-rǠF%,A` KX d^ lUvA_D{ 4DAn " ػնa8p,ˎs٫$0?!ǝQ2yi9FXPDANQQSDAQ9EADANQQSDA ڛk츷ljbdVklMMA(! dQ2 BFA(! dQ2 BFA(! dQ2 BFA(! dQ2 BA 8@AJ8T q=$$ Aڰ=\c!qo(FY btw] @ض"!(Ht~|@ArdS3!Im^Ar$Qxߵ] ˝< fd|떕AFA2]>H떵AzT=dpWA fM5$Cnse??! dQ2 BFA(! d2oelkتKTf \^SڮQ2 BFA(! dQ2 BFA(! dQ2Bdm@/V嘜Q.پiQ2 BFA(! dQ2 BFA(! dQ2 BFA(! dQ2 BFA(! dwFwXnpgܸGrK,#nYӢi ܲ Ik-[۾kV(\c=5f87밊ǣ)HoTa2 pa9g{ YEeŴ3~ٞnEHCώ2>ҳ}|/^9 r$t \H1.=/~-\qs@Bpdeg6$QB"DI\8ri~RoIl;6Pγ7~t) YATo?>Y , #ڴ$L!E)m9\ȓ}!ټaA4O@";>NkN? ) CXNPGD.B~PԿ9p#+?I鄘(ޤH#޼/9e@\?40;@0I K):qv~~SXgx h]t2c.!_J+:rj6B S6U5֔ 9!M@YW"Ʉfi(h.hͿBBVQLA6nxF?BF"#g@d]߀$dOun8k 8=S2H\ 9"vZZ) | 22p.r'd|$?ğrʊ5DA `SJRdֿ+ ʦ zjDV6a)DX "R9Wi>M}a-g8mW(HCĬDL)~dnSjKaj4Mb jˀMT3~֌b:/ߔ;U* ;nxאu%Y KaQEԼ7eS"V ko 0y⮩] xh۸voN,f);+JA Ra)5Q O6QNR0=՛.KA Ra)DX ",KA Ra)DX ",KA Ra)v@ ahfa_  01A` c 01A`J -r@Fέђ%^Y=؎|ƴɯgy2 nIENDB`assets/img/forms/finance_department_analysis_form.png000064400000014504147600120010017225 0ustar00PNG  IHDRC?PLTE%%%𒒒\\\www@@@333AAA뼼NNNiiiׄꠠ<< }}``PP[[[1j tRNS߈`pPϥrGIDATx@AB&.Ttm<轭߹7,E:8Ay~9c!/e)#H 1#H 1#H 1#H 1#H 1#H 1#H 1|5A ?A\ E2df8,6Yի\d5qL3@vtٙ ;dg:L3@ve v&uz}2*t ^V@ڪ]$Q=1FI>UꯟQZ{$ξm%%'#D=j;' Ki Dѵ˥IpBhvp.YV35(%~I١}A]յ ^4+$*w5:d-V5m/ÈBBMEyj< ܮkq@G)n AJ\);f걤fj.H4aP7TS KME7S|zdf ( ŒxhFoQЫYZ\t&5qW0RQcF>RETWIIpjN<|{I;,)MwjڞRd+\82 Gjv y|^q|[!T._g <'(QX\xٝ=&m. wDL_fy3r;qA@ph{5&nvZoH_M:ItC}oZloa1Ncqmwk*0A9mqLC/ @Ce;@ĵʭ6) x=3BnLD] q=< r&?Rv/@zG &IU H<{!N׶obĴ:n!X¨fbb# x0NHǜyX!6tH  |n߱svȠϦCì1۶R&:Yb-{+@P fL3 F5d9)(%셣o/ahxd jھE7(oBuBXQ@^ea9s!`-5+ m?N#ajY9߲jr緬u;ֲɗ4ĩ8}OENjo/_~r ;my%;=Rb1OD8TOg9~?o`';}zM!J 1#H 1ČAr 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1|ΨEqӐ4 C6PV|Tݕ3[u߃@~>L>(tx{\ 7(!f*Izp;. 1$FʼnR=SP`45B4I|rXD9ߞZ! ԅŲ{{9Svf;z!艗k@d{!9ZM6VYt)y&+Er&u9_sǹY[<@A ~4e= dN`cI?i'mFȫL*1iԉ\_'HfsnH>I A 4i %wbc)Vf5ȶ<!wǘ"+Rׄimk\ ;Z_cCt!IWkBX%*DZGyueZ,1m]z,c5J:ѴVYȿA|_B>_B~k/%D $j![B:y洰0ytp c 0d쪈Af+ iRAX c /vL @(a`¯#H 1#H 1#H 1#HzyX؀6n\(1[ 1#H 1#H 1#H 1#H 1#˞8aߢd J&==?ą:=ȎHUv G&2hB* &2hB* &2hB* &2hB* BژPf5ckt 3Ua ~m!Y҃ 5I^Di1!фTFRMHe4!фTFRMHe4!фTFRMHe4!фTFRMHe4!фTFR_0BH0~Z1C *wGwRII=~9x\C0%e<τL_䌗J&,sIoWKYdDF !۴EBba97*V ^ŞV,qp~-gKr%o4h8e9QVOv HoCI=F=1nv!|pގYlc4/Kr%VX<jCҀϺ(77e9 9o"DvbĒ!iɱUqa 'fR!VCp~)'D[Gآi_vr)$ᎁ~~£3tsCO!&MgB(d?FNIQr+!Z&ў &ec!X8I;x(lo+q&gYL|BO(ѷBr2};F18bR*D7">2cX8b㽅2 'Ă_MtpBt-iw!z&o.1ٳlM).n? m/GHؔ4.jǻ1/!kT- @WHLxK yM|   -<}HRdB z91ٶlczv^WDRhB* ( DW B ! ""e\wH6B4 )< 01A` c 0AKs9ŨyH4Ro/0~i1U 01A` c 01A` c 0Y4AKs8yQ?.ʑ7zuq c 01A` c 01A` c 01A` c 01A`惬KW 1~*Zǃ]h>&}kژNULڧ[.?S%pMNXXVִo3BV6dNjB8yxvq9I߯,zF,BWoB`p 3/ʲ"NH\eؗwPᄾ 1 ! H0: ٹ^4f|al|d! ¯APK Z)$q kJ!R3A # ooZY8ҍ ˟hu 2i :zcI噫WV+ sWM8HF6-{KHު!Rdv8>4zjl#214ap~GB+O=r@bB^Sȋq y1N!/)8ٻ@bX6ְ@},T@ c 01A`do.@&GE;H- p, 01A` sٵca@ o¯/H 1#H 1#H 1#HzyX؀6n\(1[ 1#H 1#H 1#H 1#H 1#nDQ QG^ XY䴐M` c 01A` c 0I+ș2FKr0Fn i_<.B5TIENDB`assets/img/forms/donation_form.png000064400000020336147600120010013307 0ustar00PNG  IHDRC?PLTE%%%ַ˲j@@@\\\www꼼333AAANNN􅅅iii؄ 5}⽽@@``00}`OOOoRD&t&sPPpp"b tRNS߯`pPϔ`=oIDATx0 d ZؿlkDMtG+S/ɕB| }y ,D $X,P c 01A` c 01A` c 01A` ca\v0 Ć%F E)!'Kպqgs|!dg-!Y:XWX/tcUEf0p4w qz&ڌs Jih3_ZHM~v.U٫[::sAu ل ~+S9ԛc,mĵ 81Xv)_0N;M~k R& <b5<ޔcb(HQyb00w)=BLwfĨsY.MiML+_5s̛8,v^8e"O< Q@&iƗŀ0Bn~)ZPb ZCRԠ}m4hKȫj0!IBpoE/V9L7湟Xkb#*%9κ^F#Xit)Lu=o bɴa48;yАc2Qh,ykbMZט~aDD\CsⷿYlBGX\:I'?ҝ0bB$D VJ߱ bncA"K'5E`%Gբ)y<4az!s4/eUͨ!2a4\ yQ8‡t(<$ VQD9Gc(W{)*z,tKV = Rץ%!i9ӳ6@ J%'Y#!'!#'9mxwzq*Y!7!]HY $L` ,&9AD Ir~X#v7 -aJ ߐ2Y%0o> A.!R5_;UȈ,- Onn `TBJTQ0BJ >HYqW!s?'K0?-z8]FxrU_F&}#p@Vc2TAVʍr}H$6uf.ij:wŃskt!ۅ3vZA}vyJ_ɽQ_>D_PwA"x%ׅ˛v!!ۛz=HGJU 铣?/BlmN$N)iH̺yֳB%r՜yΣ*!g-mu `| 0J+Ws#Bv!;!;{ qqqqqq=su|K[10! (v}M#Jщ mB2c؅d.$3v! Ɍ]HfB2c؅d.$3v! Ɍ]HfB2k"=7=;l}bt0p_HňdN!K|G[n0sdPZZdYg8 TσB޾k/ɏ*dz*D||s|vvz\Ot@:'G)kX#\9~֑H3_ė +Hc8HGCMutcTɡ 09bװ:!6slYcgMk )δ @Agů y Sb {c,FT )$1SPќV^ÖDžVM0e9 > C C0=Ù+~op+?vc(5~ݲj+: 1rӌyď!"O,B02ﹿ A" )a)7}Na!?|9 o#_kc_Hyw$VBB"`ₙ\!5nWZglǍmMypssgNBAyG9/6~ޅh\C`A"qF6uhYH7 */e વBƒj`|fN@wB?0)yG3thPu=HNbc+麢>녙˄KAH6~YH:ח!*M86& i!B#_?4u7lf=eby]qxʲ ѥ &brwZ,$MRezr,$-Wxo˺B?S"x4M«gLȒ=rl%A,~r3 R# %eGPn?Bx{4D]q)T^tE+QBr c+d=!-}!.a 8&Jh@Ⱥ/_vOHdSCBn<@0U2&'X`΅ҍ?3&{ò>8T0T0T0T0T0T0T0T0T0T0^ ;|1kFxu|:|WQo9[*d&*D)T Q!SBP!*DLBT B2 Q!*d BT*DLѼ;|g k5瞯l1wWZ4*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D/lmdoEzuD2ηf>/Y`ف0JhO_<&i0f>/Y"+ph q[3-Bswf6BTnB?f6Y10y-Qo<!K0D$TlM— -C5/(9P!5G!ԏLX$*P(y)S*ss!^]H~6rXXKd[Z.Wqbhc9G@߯>8Xh:  zK6ΰØRl{5IH̓aS #r{oDHF2y`hM SS ͣ#B )8_8fFn -/Xl5R [7jA3*Rdo1pk!AI:aWHB &#B؍=? އ)8 B6cΒ\ۀ"3(񍟲Fݨ1DlpvBhdq. V刐ˮ^԰50*f__D>Z(Be])G&B*eGaD%S"!߀5g!4 ؆hq0G AƄ?«5\{(f!3/#&"T+_$#`z+LVaDH;Bs 5p(ju4b_B ɛh?&cU&X X `>? Y: [e:B܀n ?Brˆ  ?Rd!|Vց"3E}4\Sɣ5l@=yEVb_s9â/F4#B4ρ5f ҷ#BBC! xHjit B,!>C3*Eو./Bd eS)s\KZBjh3lRE;P2?1n` -̎ Gf!S',$Džsؙ9e.+p-;S:> c m0=΍0|l[9ޅHldM9ĸvrعGG@Bo2 8te!J-IġBBBBBB!W)k ύc5\-+Lr<:7~wP*D*D*D*D*D*D*?v@ܤ3M,1#H 1#H 1#H A*Ȱ-tM\ɂQ3Oxz;#H 1#H 1#H 1#H 1#H 1g7+Atᦖv.jѭB prN8r$^K$!rrrrrrrrr$$Xü* }M0[@Vp) j m^"ȪF\23. 䭩eR-o o2cyl̒X' 9O-{$`R} Ę@dYVy-T Q h Bƃ+1RuA&r{P1^,b24<l]R9 8 KªNda==bj'ȱ+O@Z@h-0A89O \@R%W-@D mG8HQ3` ; HPXdE mIKƙ\ HYW )Nd´HA$f.%zGR01 : G۳S>@8)Vncp f蟐@nİ4J GEVM@v" 6h<2^@u\A1x;o3k(_w#?@k˷ FN}A]YYYYYYYYYYYs[n0?A,K͌I2pUx &t-%! єA Vl";1"0!)EHa,B cRXƉB.uU7d9ONrέǛw_ohUSDaU z̻GSRVN(z1*8.ǡ ^sIՋT$wݬ78@f688ħ> ol-2Ȯ)tFBy#Sb85J6B9UWW{\m)%>ҩ # p.^a$W+qμ&JѴ=B`yZY d!/?kߤBH> ɯ@#a oDEUJp=d/FS)ٱ6t `]j T>t4 ߮n!X]9D`!ߙ`W 4Ԝ\\!oiMgbJYhq DX(+Zδvto `0q= nv 1 eZ<TX&KH~do6'\w VX+!St^Lݝ+fYcF7s`1R$b譕58Zp {F'\"D$Ʈ )/\x p:f)0Unm [QWVHO?I\t$Ϋﭤ14T!`W`g\$dKg !}=UuUȘavLS7AIx(Hh )upeA%ôY2dS2Xwq٣RX(! mͱIQ-W#\ Ң,,ձurHGF̺"n`!$w9s-VSَư߶)Xh] CMqv";٪;}P_BêKWakN2%uϘ16F88t8PWn6fS"kƓsH棇0pm4Wl ?&s IaM &u ODVșMHug5*7~죒HpڎuNp%*xe/dpOIL NחAu0_8Zgaz5}1ޜqN22RBȅFH8Ac4)gB~g{2gCzeB }!z4dCZBz{1yRB x=cބQڹ-v.+'0x1zeB<9@ !.jζgΐaLP7!=6 * D)rϑD=2!>?) !dB}`Vkp*UŬ68'}ze{IG!$޲2~_XWyG!jѹIi\&v !vM!ux⌟[mq/u-t.#iBXG R:94xrܛىitϹL !),:Nf^H[Qxy)`죐j=B fQm\*$9.F(A4 㹄BBI9HyZ)ŌB0Z`ޅYs5l BN:dȢy7x] k'_;?yhڶ 1|:`{0An~Jz; p-:94t)$S*Ŭmk?]';6  @`cGw/ΣIM)ҝ]E#_?A~cf$f7 .؇[{1#Po)bo܎heɀd؝bEQXݿK7f ; ʋ@&!\j|: E$I[;Kශt-[N@" P7V/ᣀ)q1T T%;1hr6pͭF "vg d8rԷ3aZsНQRC?蹗<8vB$Ef# -]E^9z{3:* NsR&{πɁDi!?ei-48Έ!y@2QzS&Σk`6DXsJImjeɴd${5$լ1=lHͺYe58  3ʄj{b:<&%tMstubT+ xo7B&a"D>=j-TeXlZ0kZB+Eʉ"\lw9ZY %1X]9$B!ûVH:be 2L!PG&icp~4 +,Bȍe"QVhFP9+#"?%; 1s6:$&Y`JӪBX(ᅣ2 ,"ht*$7wu !9!cG=df` 'Y2p sK*U}1iܔ2(&L3ΐxvW f){t?*ųWz]L 8CHeygO"ɞ^B*OwtJ g/XznR/1m{F=AO3RaĒ'ΠM)}G{X9 ?\=A62;$t2gXq" ?|<\mYma~~2+  ţ 9^D]Ht!zWM.֔#7~Ӗ 4B_"~BC {gCcq4xz??.Y!r&ImP S Ҁ)P!&BS+Df;mi=B^Z[̈́bJ=!`XWӞ۰xA@͈l 3GX \hY^*><3&S @#9lDD\eEHڶG RqXy Z"I *Wmh3~N3ACHg !1tCHg !1tCW 7aKy9r! jgq,R" FU Y @^ q8BA!ΠgP3( q8BA!ΠgP3 I162 Q&;QuJTIB6ߩg]})6vAΨE`úSVE|nNIH1 "dTR V_Y N,Dd< YLtx>Bmhx?j$딅{]8%$Բ@v 5H}k2i%MsNz>s#$ 9k!:cЫ(`]9 `-~Bn7=MSzQHyw!=::,覩C[B$9cuԫ$$w ŷM!"W^5*d!X)$L۩ޭ X*lr#执 (D5 r'{M&wP3( ƎRhFȌ!3Bf2#dFȌ!3Bf2#dFȌ![)r0x91(zKdNgnalhom'O L@>>|0=dѱJqGN&z]s̞8S-2K+Dǀ=Uk߫# BPˣrLHW%ȁzA ~ $>S> zLxu2_@X6zY)p=8V^drMg"̕LK8\xm T2d^3j+5_Yv ݻrs&C@ _<L.v d .h+l h@-ˤ ĚA\kL`OYءcMref ׋h2y"H3 8s?cbȝ[j橙+MմO=d,ɹ:B >ύ,Kg@0Nk9Í@$r͊G Zټ_V^M!Z`>V9s}R&?M 7 `';lKPZ._7nN/0%–m.㵙.bvu~Ƒs`:Qz9\vvQ.D L&ʦ إ,anNlIXZ Se0MIbU!E@L* SKG1K(OKf"= ۆ. q!Ҍc32 L:U5KЃ܉P.2v,9~\<ȅ&[Ђf ܲ?!>{/ 7fzLr3=@nn(~$kTY}tu^ / V CJR HwK)(g|Q_MN_efWK<)jo#cD=-[5RnItO_ؔ"DzRȳwo`K ÿ_f"1Ly#E 1$Jr9q%n/ۊ$kJlZ=yx2jNQ e(;m%;lkMcpHB,LR$YY̲'5I>(=W9Y5u%߈Dۺ3*o]i4BskfI @Va=P@5P Єkp3Ȍͤ7=iׁ,&Ńo;<_JADSV<% ^- ͱg.җ@$5ݏ3jkTxC!&U@"Mc rC~PnGCRV=W^3EU@&/ ܗwHR9ۡH:Ѐr+^s!*IHcz`:d\~\nYѧ+ b5gz@b/|%.#a\V$:|2gf55E3v@`<*[jf>I#I-@v[{l?n9'sT]jsN QC2Ʌ4Kn{sU@eFvz|ei!M?R 7#$FH!1Bb#$FH!k!3̜>u-e#$FH!1Bb#$FH!1Bb#$FH;` l Z] g#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1#H 1sd?,jL%Gğ9e/?#H 1#H 1#H 1#H 1#H 1#H our D1UD_ c 01A` c 01LZ e@%s)a$G gZK[[ aͫˑO6UL7kkaIENDB`assets/img/integrations/zapier.png000064400000010155147600120010013321 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp BY BIDATx[yPW3jc-65VIiT\7$} Z*QQDƫԔgBVe4he&J DQ)%SV6#agg/ѥ^Aw߯}kB(m/>W[Uت.:c{5ub} %н1`Fv?w;읯G_g`SJxnufu@3N3@G#a1&{woO6(e9 _1x M?\?DRr"7{. c" Ǚ 'o a$, M >=#dz4eS~Ů܌6`M\ %p}j@qҟ/GQ3=3鱃R{?Fv !v΄a(/uGZ\%M MlvҿELJ*c[oKajg.Zsu5DKVץ- 7khaoNZK$F7 {@?zJ#޶B[xF_GXƬHͿaQ*)4`:c-H|U_wkVPiy;R pU?p܇Sf7`n{R]v5.Z:_3 CL?ƏyMhkݻ_|:y@Y5v-* `NwuBGR,X.2Q{(PFML#ᑏҽ5Fx wxN|4otj@aߌ FL~ \ \q^=pN3Qxq{/3'3F֦2zY)mR_`KSkp >G /S;#+k+̶H0\&=sETeZ-+@=mȏANbぱ|KFn\&&4LdJ3F Q*A#.T%kTΧ/S' CVʻ0sPQT@VYBPҺp_Aъ3L(XӄF{;*R'ka{Un^}ݑ]CJS Po >Cq(R ȓÁ_ Y4^W1Գ `j,K<ϹcD`йfV#3ۖҐ(+BRPAxw(Y 8.SV+dXJ4d5DGv$$vEHl>:y۳Jf%W|)DO>DJ,RbJ  u-Y#6b hzB ^X&_$a/_df 7ALzd]+V\mȥqڨs$=#%kK2/ER?cMDܰq3wF7up05DՈPPy2tQwNta ÒLިHn3[)y نӢb),ji1 %fv(@1FUO-ލyZtY5\Z__hĵg,$TR &:3k9P ٪6 dXj$7˝Y@ o|3!8FEQ P BJCDP)b%Jqil‚i)9dJfLܺ%)LV&HUt٨ bk^q^9) gMT->FXƭsfmΝ}3zŠILAn7Ϊ+>8<7"LXѬݣlC'uW\>ɘP_lMP[ BXߔ>G5/îɛNTթ*PVw'ScT}kރ/okϸOt^9{o2,4%;7ioMfoϊ oao}mi(m,hoIENDB`assets/img/integrations/discord.png000064400000011655147600120010013464 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp 77 IDATxyPxk$?154I;mL4mɤә6I;H6"EqAP@DP]`wݳ cha5}y>|Y$am0P(?LV?#~D_$KlQ-$F! f낽=kwl+l˃!vJ)y-+D@ %M/oXF> '([+|I5'T1 usHZst牢._MG/JFd 2gUg฾K~F ʺ=28]2RyON0!Y=C{|x#KA` ("{v04 e0a(!\IoSX˿t=`AIQYsJ5EeRM R,\/)9]Ug^q.c>hu_v{t:$w6ذ[Sټ_ђVsng<>wPo's ) dnOH*:KOH&(X1VO3 mvFBPmHm:?Dw?A?eoaX;84VMB&v}piHA>S~(rA.&IJ|_5'6L+Wq=zLhԢRHu1p  gh01B{$4e|KťV8h~lv]WCeadZ3tFnENnL2X~VXg?y3hp5ru)DfsF_Mlnm>MN((Ρ걀kS} g&zj0@aW;8 Cz}.neСPذW!uϦvvW-~_Swo?ho .|x(!aq0I[eŀ_& BL(w{b@b[R  b {~i3V[ʹ5P(+3nٕkj;HP}PQE`țEBη/6ހBQ1d&W{+&3۠(?]wĹꝠ[ȇY 5k$hѯ%FЦDa6/qa ~ƕU~#8k-vMJA!i9'bg{0xN~HȔHn'N۸W.^|(4hPEhs[̺dxTz'rB@[!U9~kJږ Y^%9֐ i \L.9O<1 [,T"@9 MdM;X9δӄQO`c\w$HىZSҒ0% 2y>u3& AI Yp2hPEiJ"jO#*ٮ*%BEDZ0c}fH26& #r"_P9<ߜyD@7ʐ{<(P(YŠvfjބ) 8钏M<0+(%s9 ;\瓳+6~r:_eGE (;kd-iAN֛)1h7-( '͎!B*Ӳ W|@٫ƍ=r&nJC}4 䔁HCР}=Y.ej^wS>r_D>BiR=>gMPBDiC\f[NӨlo5 Ƥue>)@#UzFPkMPjx bEDpc6ǀ4:wP]v!W mj |\eی"u,5 ɌhZmclsX3wJݿC~ ړ2 PFH@] 9˅h H?+BG5F+j%* Zl,눚IC_RN!%ZHa?bR8`l-j{]}u9T#Mi8սtA>+D]hǖ.cdXf].F׳(%mj9ydy[߼PNH#$v;f$k&3лsԎ&C)!m_~߱O2ao5o C2 %* j8zx$*/ǣ>nhLoEːl w`B(VG|ZG:`YL9n1 W'#yʫ[m{r9;h~?Qg. #rWzK3kWZ1 햙mGNRuw/á- "s %[#5IDATx] |Tչ;[f$!d,E(, "j]Pֺ֢Sg|VVʫZ-h[Q#$d2[f|wKnYLwwr|;Dб^ޠUB I0qF/t8йDخXٿ*[9w,aT;wwz2 !tGe3D>p+Q ! ` wS0;d 2`SETZ`8ۣ旳YLaY>=qrYmcN<. R8Q!++ n!3`SOyx͘5~)-QU}(wlꝭPjaㄧ; ?4"z{{ lf%'#/kn̞%ޮÌ|`3dZ6Vvipۃi82 aLX~)ߔsʴ> &UJL pAx w:1:V\ZrJCuVEKXY?\Tmm-446Jd0'޿?H%Vx{})We4=n8iɁ*4`Ôl6~Cf-j*;;:-P\Tyd0 S01h0bz:}NqzS|NW<z;:.e5'J- 6o0{EV$ N A 31"0EdgͲ0r+ p4fhtw@̂1Ӂ81<4: M՞CL]ر3dA#FgPj1b$sj)W%w7s ־jz:s _sW>!颿rZsnۡfPl"X)T 2H#aU0i9c Kd%J-q @ć!f5ؿO^< Z=[37yV\2C v,h&ɯRzNJ + ~8pQ"5|!28+FIhK>+]oPur`5i"dCyv1?VZY@g/]G?~d>iܳ(N~>au9"eiH牬IiSŵ q+$e0(f^ \Dz_EIXNT/R׍˝++f  3֖ø68!<|DaX@G:b>+`ef~H; ۇ#j):ŵD,qd=U~'oL K 4Iӽ ک$\:X9P_EF0Pi1`ZؠB$0s֩ Pkj(eh@u90.9%unϙ[D;X9[ F XYw 'L|HRO$G^pgн;%wO5y!iFAc 0 K;Kٰ1b,PjU4L o~ʅ6 ܩSh8wYC@TdKdDOVRQcʕl+U$C$tKFҐ8 b#FGFE <v* bzE^1Aa,>RdB[2Ae{ R#/pCrC[&'d'%SuIRsp^kH^Lm*K~>H[& [oa=XqdӬStP$بl"Ju7p~^&V7/LjHw&y*wT4Rn'" 1;d!"BF:h~ED))?B4 ~k&w3%sTtI\9a 4ZSUW2bVN8e 3g=j9GsjLSHX^ ꢏW()ѨV *'b^TcC 5s48]=  h 5#Ƹ |YD,Ka.'Owom#)x+~RˣL&SU9p`Ly̸3:71YLHXYXB * k7E_ }ImAAyF&G;5P@ȗ|F4<&qD0DС'anP/Vxae*/ҪA͂CM5,f6@C"mpkgo;̱PXC$-O; vXj0F$+K\"Vt/ɡ)UMӠh0ZG:'6^Q8~ /F4cT);~sd׽qa 4&y K8 B|ǧB 0锅3Zf  Ql)>h`KcNX#,䋑{J à@΁i:62 zK٨ D$N:!\zkmCdhw=J67>_y7`FhSPx)A[YJTՁͷނp ,8V [GL , 4И:hx=]x;|biH 34 Vc-{W:o/zL-wYұp={š5k0{,) S@鴍ʏJV0ؓcSoAY͠/ h{`teⲥث`s%ՙAË[1wwhȅ7oٶfλ㓧.[LNʫ_P[MH\5ZP-7y]iA4h8Ue5#h~ %tD& #*X;m0 S:KNW"XQ۵Fn"P<C]^6x|5psA.1wqŞo #>\o)97}Ep*}X6yO".^c1 `ѣGK]PC6kw08z|۟GQ:Wl!,e aa~ Y}VG&n(Ƕ«M+uϲwvSF뭘})\;.ID 8j?7~_Bh4b7_x;:43i|z<2̠- {S"DƑA8YAEjo BX@?^$.Vվ(:C] d&@ :-=Ty|磛Bin]>[1,?3! z'xLq+TU3@b̆rXa=uj(J‘+h{q  G)hѨDra|;_+rFRAG<GLGa!0[`Xc 2cv2[vm`Jψ,/2M !Z<~ҙl.kj 19_^0sr4Mk74m"al To<X̖XAʥ|8€,:AZ *{ʴA\!^Fx0m3<_AݾCPPPK]4*X#W犀sƴw%11~F[@<Łx&ӹY h1o'snN jHEd֯p 蘿H!*ǵu}y0r"%+z(!0C7@0x=,:Cr/#tl[{b[|Rɣu`3b.,:K 4 eK _6~ҜuFp3Y'', OYо[VpixrT0GpK31:G7ӻ`~!ЗqR%<5  A$zsη^ϣQ#ՓzQv [7'8l_Nz>Mde)2'OuXGf5w=D$]!R26G`do:+K i<˃d _3ߒr8I; f9[hpUpQA[0CHQ:vx|!pWAF5O0l뀊b(dJ86rC8bۂߣJihWJszc%-i~SbT>>#\C3'T[ES4x-t @):1o$nd# ~+%BE{Z]HI8n%x%^),y`39,6x:i,=FFۙCIN @ f/-Э7ήqeÎ&dAYqJ${9TEvbQKogtP5lHƀdNƞԓ:ft0+*kQSO;<̅1n# I]?G[˩Ҋ72r*T꭭tl/=<6DD 508Hsߖ?zZjٗ=?RXT<{WJL8DnHt5hswH%6&E;I 8DXTBiIY_u36Am{+/g]9|.fՐoP d,pax~_ B#&!rߧn "ޤ.nz33e%/{<股 X ,T _aM|્Jy[R5Z/EY,JϋxIt{]Dg1Wj5$b}v| 2`B9-ID 1@""ۡEb AYdAOAqPhҪ~8&IdpÉVж4)B%gf!Ud1ԣZV&t!Hܢp߬ᜱši^< 2WBQH"D`բ/Z^S 'âS-V08NX < 21(h֕s0lag^}fVPq3x?)(eBpSj F8Z 6{< 2qp L'yU@$m"#wp< mNuL x1a U1ޠ ND0=oe gCN (8 o0FtžHr2)^f(9d.FW}% ׀ cp#HSLz95B}CIDt.rk@N*˟y)}O0D֤'%C fh`/w1U  ] IDATxZkTT>ĐӴɏhiVYiVӵF1IlLbdx̀FT/4 FE#""(yp;dIq}sDphG (APA %J (AP@9uaPBDT df5H4C.~4D^û! vB8q< %|W?+!\.Q_z y !^ǟ|޹2_uouj+ hus:ޙE{!V#q׳o)㦜 `ݿq!e>r,NB9H>} ؟Cr1WP wǩ":{,u5(K'7i#mݹUaeX$ߓ$XqؗCqoebF+?e| ۆsiѨbzo@z,aEgr4ӛ0j6rx E}@9WT !ۇ4Fo4aV,Z2RYf 8K݋0M4o^GJVd Ai͛Sb,5˵[^$(c⫕04s/ P!zovy8(q\T '3gz <Ġx JC-BK y`+&A*nelKh9TЀ|UdM gQf*)<~_w #(Lҷnsxvd.wțRU6g-)|ȦweNe"0%yxoQ)hAinT[GXLc=4E(ẮY?wh5"R6jfw w,1߆bpz =ú JBs;.ܖ%CQwυ3IoJ n.5SgJ|vLK ]RSsz9*0PFRtadP(MHtS*]YS <zOgLIqz dVg h.95w2ӱr* R4;bu2 g6vu:K mb J1K=v}x>nQݎVO wXu_ -O $7ۑj7,ӪR0(Br(m(?[6OnZw5Lv۹nϱ7\ػ&̊E%/( ֩S)q-YyQsxb/#&.Ǧ,¸ۢ4^5['2хh봫2Q6l ?iÃ͍01(Jc;t57?Jx')Z HTwlGTݳ϶@mlœx*?q#6 A1JVz| JK 5eڽ+~枅7umyəKC$0q=eZ2Ei\ .tՠ]_%mm|_.fI~^"[7J_0hFҟ:[κX٬Ν5ʘl՚o ?3=EHP$~aogLn+Yٳ괚576=>I6{Aw0eV RG roIQɳM4llfgGgH/:0pš%eZ-LL 걂nqV/lj]d"& /[gOPX?Dā͝Myos'e6TqV,^J2N)9C6#$|p.!ۆOssf`B^+Mn>4p1wp|p;r1mNsMsvڦn;;yܵ j>XvYFI˧"VB7}Ŷl R6.)@֟c*?ICat-6-%Xo3ЃA %J (APSD_RjIENDB`assets/img/integrations/inventory.png000064400000032410147600120010014062 0ustar00PNG  IHDR$_cPLTEJYkJZmDs*G{JŐد<ɡ[-ÐœǙʛƖP׸ÏX׹~:J^>K[rٻٻh˞5rֱԫÐQۿ$MVb.Q+AZ/CæS^lIL$4I8EWTBbkx$Tŭ[ir}hN}LWeCO_LPЩ6ZdrM:u{EI;ԯė}ynaJӱtvYNʞ}>K\&BpX̡ƽ䳪"9RJ:㕊]aҾϸtվ6,/W:/_(쩏èzgH0E*;$g#v};79ɽըԣ`E:2E$ԁG,>)3%s%Z]L'0}p[tRNSS +EMmD6y]lZEĄh`$ݪ}KˠѭͿƤ|ɭ۫xv׷BZW1hIDATxk`Z/l:7;27|ŗQC~}ʦbAۂlPrs%(^=V<$xPzUYGa|y'QbcB(&7vTVm yʗ߶;n }S`zAP WYD+r0^hk +m%ڪ^b#?@P&G_9Ibۆ3(Q{3YejS`,Pkof.g@nֿZ]mX@WK-~>6m]{[/Y7Ajd3Ywwu8`Sy m4!f.F%˃\?GV~|_(0DPwIlٲ}βQF&p%'a l`~Phſ,C8hCT}W-u_?㕿~7%U=f":޵P\wd>O%qO *\ tku,iuA2,Û ;F/ KuAY .$O p,4S+GIяmCzC3PgTdv߳`ДB_g)y@M>fOP; Im0U34uLda󟃽|W} * DN4ߏW*EA yEpg%hE 4ҋң 4wJ4KCcM |lg.Ok#kz4 _@o@sȗ!JB^oM16T70_BUr W`;yvh!_P)p!e Lj!NoZ ԭ1y901 GX|<0l`\ä0{ݖ2l $L.)BtJ  d L_8aD$"0${ 3xD`@g }b3Cx٫q +I'Xa0q5^.Akj 8i s7I59uf{bHҤmhrW$[ @޽6ATj}`j Z=xЋ3tUhԨlGBE!HO֢⥠уxvgdd{|fٝAD@Sґ(!hJm{'v҆a\ P8GKhK ym$ [Dn n@ܒ@[B uQDZWDGv$)pO*JV"IAT[bKrex?KrAL9-ށR-$txL:i>n E^A;_0l'ES7F[o~#)(E>RxCRRԪ"We1| m")Ygp9 L#J{@\|8(I<rh@oJ#5N)PXP'Pl AZb@*6B9`@7Ej@Ыb ^iIU!11*"*] RDH] 5눩$*QD~A.\TȶP,Wt`2AZ%b=2 @CJj+] #X?խNj>wV'tc@M|j |Aao{{h\#5ٽyTY_e0FMRupeĸy_xp{]YUw?jJ.ZRQt[cgCy3$nk)è J*u3U^_zR`noa<2{0 M=^'*c2{c6Qº0 PPzW)ޟN}-VMnl8v^ԟKW`mh5XvCġOfWD]jb)Sیq mPwDЪlw̵wd[2&AZ]?X mF U>=CQ e7zH<2na7 cN\u~o6w,i F% 7ok0 6p,[_ΐtI@v<0OErokwz\X@ % H? 6S H p @EPQ߆D8>P!2c`k[@@Ƶ@ `0Ї*ʗg spN@5d#a(W/翑@<hPp4l xrAՑI'َrb&  T&|S/cj(-'P~G<8oSd'Lxж(`PG|0$3ASx/ •`prxto\$)f6 `kP 1=*g?@(D` oU `$@a0zΥSc F;d5 ?E@ˤw( jCJ'@F 0V(XCj':[Lu0]'P;1+M@`W9vbGc@T zOgP ( mP(O߈@'zĊ8Pm2Ǝ(c0>m0εN~nv:}6k1ṷipd?@i1Ġ/hj =Wl̂CÍz @TvAΧԮJ7sIPlp@ƽ$j@@ #F,PNa?<7X`4zyL #`B1=Żtgߕ/W9s~p6~ >o5>[x;@'iBE4NG-( oWhLF/yRk*8wX[_/PiuxJkEMTO:5D1 ,0ݯ^ޞ)o 㚳лETNho} [jGfoJ V(`'Te4TҢ:`;XlM1w~} ?G~ `ebdՂ  5O4;[ZLAqp)k.s `3nXu?O U|U`h <0O? Q`? qN V82(^i䏎kO>ߥL|= zj?ѣc10r]  T#@stX4sidb(FE0h60;F#T*?K8ԤRH,3wNfoU:3fP-XbkfU"ow$T9T'?I9@"5ͣfO/u@3" ġqq&^T:.Q`2c. )bG #Rx XIh\h̏.KX ~Р+ǃ. \4#Gp.ŢF@m@"Ky+X f r85iA@@}$RÓ`(XC Y ` (XMC Slv8:! ]?Gej$&]+Ñ*4  ;uTEuH=KȐ-{!9TӀ a(j: Jo ɄxtiU()Uz~qny"̈Il % B 02ܡǿKygX4n"c"5DUp m0V*J a`u]lvXV]2_ԀHd* `(q.xiؼgxJh$JtS!%D9 RaoIJ!/CTSմl_X/B~dLgH o>9LZPv kĎIf_KL'*3kB(_!vId,ˌqVr+(Cc !nYdhP[s" q8XmF؂w3m?ˏ }h=Pv<矇x d$2Sa-TZ6?r2"c@.l|v-&NxCuCF3弌MdHkAu"G{86˝v1vI T4P?#Prr ANُ{'8k0 dCnM)?)`l֙Ƽlzx}&g4pxEƕNt7oiZGY2'\XWgDU|k`l{qı*D1~c';77"}}z$T3rÏ*zqK `s_'!'B8TGfqXֹxtg5G&3Z>`Us!d!޴sbc8hQu'q9=q;@ 2Y쩞i9=ӔvGR-E=9jNZUUu'=4EۃD\_Q|^ַS2C$B|P?^v_[o嗤[W <ҜeZBZķ{K_[X#PcYi4+yĽ>݈\4e)>$C~ &UW['Nn-[].g8aȬO>~d ߞ&4*L[tSLPx&u;cMO&翂N.~OPsX۰)ͦm7+>] _]c {n}CkR})p1+ϡOW{ 7# @@r4g}Mv(Po(C`5U/Z@ 7pi5LFCi`>(;W- 4 c67%ʨ5,@Z+(~W}n Gn^o3 PǤ1,~RE؞& mcٗZ/5L!C_o`GG_,KO*.?)aM%(@Zg\ تq?S od7At L}n ɀN ~"|SaCMe hv4j _rXK0t-8/SHQ(@ڶ,?Ow=<)2dV @FB],W7 捀ڋ`eHPS 1:>{˘* ?IS |q(@+iDTQfh hrLsz @ X~Q[>C/ˀ'Jw0uv{Ҡ@@Kעu<Е$: }uN6/DiD6-?[`pJv,N?n03`@8iDX'660)dI=, O=y sq@]YbԬ1/d'/M-@@,Zܡt!N?[An 0f½X`1/G/@d9*!VwXp7,`R`r[O݀t+<~`oM.0%-!]tاb]/疀?NпN52k \ H6s;yPA) 3A3`&p9ce ?3 +g=2BaY`{9:Kl6m ?3Hk6Vcaǀ3q-^bi@V,NWK.^y{Ά*y+`XjNbւcwv2% Mi뮂h p ޓSE([}P3 V/!Igj6/V(?yf\?&@78#{JG ΄il@4h~'>Ȟ9hHY;IтkdL'{ ~E'97G(3?Ӡ<VPLhl{T"ahAt='Д6 A$}tM MB0 zxTIa D)aM .\6 L @  yU{}!~\~ r\ Dï -Y8.i64->"JO坼Qx`_1ݝ9y3k>{;g.~LI>YJOesnlV =Q(A9Iؾ$i (O)dn P q =`u5ЗT8L!O`K;`GN+Ad<*`E>I;,]!Pop4@͔n%yr=& w4$ȫs#4I`X:Gܴsw0źYӁS w'I'My?tEaӆS{3|9̂t7h\C|OT8I!~rT06Huz ~s`_d>|7 5~;DJXs Fo{9P3V4@UPjĤVV/{j0֠ˌұP(H鏂|V6@NC-+砈 '[n!P i"u]6m>|;&f&`ڸ6}do<@{Pnfv@s:?a$ hC taÈ&W:9.jFi,U]:W"bFd{>9!T{,8jԀBhXmZmv4؊cƌկj쿬W5W+VĐ 2+S2>N~K^֡CCdLj=-3ߴ_/,Ccyr|;|%|ǫcY.uL}fK%O֨cc|4uݲQ향k!<E$Q:YQԡsʲOFgt}mN@$l𻏑:4E\hkK7D}U4mX p IDATx[ 4] OCԟ]FKE/]V+ft3(-BJ7THnJ7tUe ۇsusϷ>d2ЀF 4RHr+>}Zؼy}}}g'뗴nݺɓlܸr߾}™3gyh/paݺu²eTG5k曚 t+yh޼yȑ#8$Ν;mҥȨ ##7Ը_w/WQBD4kLKv22R>pӧO zSSBDEEE9߿W8tR~p#kK:(..6u} C ?5XSSS,RwwN-[$%ӧO\(:NNNgI5--B˗-;wNXvzjF _rM.ܻwOHMMҒ)`ٛ Ѹp]f N8 !444Y.)/^­[9sS!@׮]!x 8ڵkٳgL.\t j\R?.cǎႚ6669"ECCC8… \8<-yyyƒC8NrIM!<<{"XplDr!>> }Ө'''GHII"=)S%)-Z3y h\RR(cN7Ç'رC %,!ܾ} FrIٰa$pc??Q&}*M=z9SNq\RxnuV! &pLL )xӼK B04IVxzz/))6%I${- I"UV)M[ ( ֦^lY ϼ$s͛7\ KKKuNז&M|u<;V?+|ȶmۘ*cn",MTܪ:R.d`jjz;2ն ~=T y*h$"I(GK,3^Qe>|XHHH` ) ,5j!x  Jcǎu8r8 Pؾ}~16U$E|83/廸F XEQGQMlQEpEՕ}GNرc\2Zja„ [#""D!=G?r,\lW\2)"1(ʍxh#+**J#%%Eprr(,Y"a:Jv^^^3_6qxJ, ޑR>wn{ί2|PH- u3G(yTCe읩RAG\R]^Oщ:!~+Q)?~dJ%^VH(E@,{UA6T &Mʉdge(l߾}Q"WBe3:::A)%E*A9FO;igJ.edd ǹk.VVV*^ K1dFOqϟ?g IRB|||6qԀE(X`ܐQ>J,uRKGKbѩS٭[+fRS2uIRLGIm@;vi@M 5VB q Bs7 rGPh1aܟr/~!XC!70`""4Od 1-߹{$ʟwIId rIAŜb|?jFpSW'hsQQQ={IlqĸAG*QO3,,nJߐHA'džf"}m`kk}fffut̘17Ub+I \! b C s}l) "q?~-q{:1 100q =7 ass|ymٲ)BH{4=x~~qᏛl!B& qCk@hX,\K Ekc`KL!D^XXBYeR5}*e XeAX(T"4E)v ~c}S6HFD Æ ˬ !4^%O]# $7!ų]I#*6bHˌL<(kλH_/HAجfYrܯ%&ӔUdB&1Ǫ8(ޓB5mSSӒ.,d/H @(%%e%x0ƓLJJbJHiY N:pIENDB`assets/img/integrations/google-sheets.png000064400000010202147600120010014565 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp zv WIDATxݜ{\U?{籯iJXSy/1# MH1!j F(ֶ**Ԇ-m;ܙם;mfvfv9s|=wi;[ʋ(CBr֕OܥR;dD_}tC+P+'8hJq*3m}C뷯ٴ[t|z AZ%K6ӹ [.0Tw{0$8"5Ua*3wު?/-(YS9=עa!tQ5zKVsRhZJϳKL|Œz@+E<ׇM ,7~ LS;|~9iS (e@$mJ"c{+ $V*\E! P>~e.a׹Ŕ:@Z<1Wr:wQe*@S` YS 5zXk&2H1q,V='mٴgPz n&TVUzhBY:R5*@HWT}R؃%` @@Sy>HiD 5DŬ`ZCz8ː:Z5`ꉃR X6f&߄b5P'ADtK)"(4fA*?' AMlT(l-,0:n+]##~KG1fS&vtU];2GլZgMūL*=ĸ>e@T3Jٮ)%P*p*7͙ܙ J;YQZSZ˳"Aq]UqT)Oxc`)`4uO-VWJuke 52sXC# c zc}pyزe4{iqX>Tf!<+ "KҀa47Dnoq޸PS4O*ƱCNh?=r3 u ! ]p\u#\ry1  IBe#}plp-zB;*,;fDYkޜQ8Vln\w}T(MQFLEwD931"7K,C$$GI ~7ĝpWR(iŮg dGc<.NsY$UrXܳiGA0$f;|;GL鉄EG+Ҩ5&oR7GW=FljV0EuL RDm}V7ߢ/1a*so}.Fg8&i;ǦHQn '^&!y]FZϾӐ ^ HWkibnC~H1l0\NŠφ䕉F"@?o\\r7#I 栐fN68CPHcLeC@B1CtF{5xy19lx9~qýZu%dXE:!m<m؀6jp#JW@ xꜾD?Wh@ UZ^KjjdȢO9o8GNe¾x7&AkQ fJ\H\ģG^W`T .*%ؠ,V%0v[ ҂ hIDATxipS2&?&a beXf&I!t $ m@f(ج;cL!e ŋdK61^e,KfI/V.x +?l{sm"'zf3@'uixt`Llh׉X~TX珍h^/+\SwݕRbnvK]-.lnvHbf^[=-rE.íM(oJm,*0B6hm/,"oM Y*xjd4(ن LcILȯ1MA1 ePR?)2.U,V[I5ZsL؜'47L>_&mjCkvv5jj( LɑkʆaPiL)":S787׉IVWTo<2s7Sm Zqc`k"ut d8)3Nꅴ 2 H7J  9_+cӡh(nW etUA%j ;^ZXCAֹŧ ^]TE&׳`[dQ a'ނjhUlj1gGMA,@0N'( & /NrPHQd*`(88 xQy~V*z fZ[O֣9AhqxEWgFyY][MQQݺ"2~Sގ>r.O3$WBY}v*E.N." eT$nAA.]vNohøP4.iU$ :c*ƫg y #0t )! (>*3?.>VtiLNE;[(TWӑPEAƤD7  TR9"ٞlgS'do6h(P $gguWOj@=t}; HC;}9"Z읟X_ot7>t`(Mɔ~|"گ檘/SF^,ߝZnFy 9~=e<@Ÿil@ Gn`sB,lFNA34* ^;^Ѣˣ'?UP)1?DLk}Y6ttȌMGb ~lfS%(yzBy@0Zٚp0`fW׏[\mٕy0r1`?Rt:&;;]88^# :>y;GOý9jV-aP5,#7pL/TpԸ{{E ;Wݟ'=\Fho9p.U=[j5>Gބvڗ~M䍇 >qs~oE00 aZAZI'XcJftjcFFN(giX?F^aq|jrk7xx=g^֞TR溁X(qc?VDʠ0ʇ%O~GR SFۇQYogbYAi _z u4 '7UKO`3`( hdA)`gB**&G^(9c]Ne|w* ez!<&=/]<_a i?ἯM0ȯ8*Uχ Lj8 m%Recv;r[fZhU T11reV9U<*|eP49'M(Gm'^#vG-Ϯ]&'W HvtH~(-s.SUsa*VqfPsGH\ PZʟQE;ΉoƌZ˰6ȪLcɯ m(kq|/ڄ_&/<P0Ϗ]6@W?Z(tnVG ʥB݇' tw_[Fx;:@?ka 9s ɟײ)ZG3Z)j\Ǩ7¸P pE-v8NTj]xP7ְ⚥t-I$5Ka+ӥry_X/@4/l;RϔN c7ٳA66bk^QK0-UZ~p Pc`~CA 5t n[CKytt*c JKY+MSߎ:|yIۨ;TF@tx{+"vd^\ mh'9_7_0*9<>@_;k1u[y7`WV(o0 ?I{jQQ">|c͙',c%2;m[pd2C ;Vá|~.O/]\Gٵ"iҙ} 24a؛ إFa;[*n q''Q#QkK%Y"^ha_/>9&PdZi:V)=L^wK~-YrTZ dӓ IDATxTW7KvfKX"(e@0k* P1j4D$A,D4V X ( },`Q92}޽;?,=z@遢qPJJou :cb~/mG_KK[/RL ی E7Jk4tc99(_e\z}ҹavk=wi ֎I%i9OX?D΍OX+39%=B1UUP$ #bn+y:ld~7 gfu (G1#3| $,!u}puoz"'~VXT(Tb]m"Ea@h>v&$m:ۯJ?ېa/bNo }dbI)6w AQ66:+瘭 `\̿v(W `i!cmg*Cʃcv_.ʵ60w2~<܌4 ]ɳt]Ƙʪwewz14tM>d]>C(6@ý<7i{ZK}KWxhK iJşCͿxf(]WO s!%We>yvPJmc5 C-]ĩsF?Ѳ͝ϔY9L2erŚ ѱk'N<;uv֜+7lLtNaU`¾ߩwwB3M?6V޽Oi;^22m zLE?oPVVPLKoV/ ko`mk̏]| b'a CaҠTe8P17mم#-0h5H,(m@PD ̅kNW0l=q~͛p6N>svpRgboW5@@!qVhG sofYXs"dEX'b_<1lKWǾ4ob^(bj\xL oK3"lqYbQ⮒ֿ%nOi[ߢ'X%\ 5`'E")-zI14j2CIitŨPu(zQTGQR ` Xs' eF,qZҌ\wSv=CE`S*me00<' B%g$!g> D 0r͍g%gSjOfvpߋ;gT2UACP"JD#eZ(EF&Fem*6Sg5+HI`C'ȱK!i׺t7[} 1ًjBPEti Ӟ9d@#Q'UugKޔ_rI9U!V?AamS veG a#ї9DP'v='b7Uf$(45ۨFKN@aY[tmˋKnS vi~Th.1?29O!ZԡA%ZʭCJuI4%K81-9TԨ]vP ;*GP)RnƲd6Frnھt* (2 #&&2l?!բl=])T[j0!MB,Ek$[HZ?t|,wPLHaNuk;6]λ K3]'yuD갷a0ɗOM»:/F-Z^4|h xlzWv` .=zʒZ, —:m(p Ő;YG˳5Qq͂~*n3}$@k>a+/W~қe:SUڈ"`嚍s. ҩ0k$o"bvshjjsҜar fF->kKX 3!"s߹;^ZF#i ֶ@gxDࣁX6+g态c!u2S\x* mӍ~aw~;ū"YuT<Ӈ5UYye']VT'C0= S|"Sv^+xkjjgGubV W:;#8MH(Lh~..GƢHK|W=-9h&~ӣ2iZX:t!p\[w& jN}p3DY{$_TFc6\k/IZͤ"6~-D٢<1WM YP,Iƴ N6%S9282n뮽߻e@<}©Nf|h;`ݍ<9!EAa BmPؚ"jdKbR̨e)?i}eS'AJ)6=6IENDB`assets/img/integrations/clicksend.png000064400000005241147600120010013766 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp _vIDATxLuwܦKT+J&r&*Z?j5[.uC'w8#&kB1E>ƾ܎ǽ28 A(PBQ( ELQ7s&6~oY) []]A,?&xʝm eG#1%k$5(*d`0U%fk":75@\҂R"t$60_]!NGZtR^*I%:@7J R/xgNb;owI |ƲU%8QR<(OS'2w>eJ!5#n+L03+<5-fʨP<0 դL/(Gϐu^v4P#Ge>jЪJQ(c;G Z>j*%(_}r(X+eseZ(stja Op&-AQN~f &V]DErIA[Hdw 1:+A~U  =,^0 xLėcy^<*g!yäT2}|*+:)vKq]-k]ͼ=Jk(zXFds0CH&ϱAHXu Z((F0d~JH)HRNJ7hI!~ b٩ JbEo6^}E8sGoM-:(FXOIA V/)Q^'CBGj[.cg]!ry'WMüאLz^)2aY*աY_C_[+IU$`9<-zqUl_Sͦx._$E'gz0-FaM|U,oεuna =\,UD "tn'Nv,wp~]ާf2;9]॓aed@qt;ӉHM7qe(+ϒ$fŃ4QkgesM ePcyKB\Z@iH=)M.d^i-hfBQPʤI a=syNZIENDB`assets/img/integrations/stripe.png000064400000006566147600120010013350 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp ;KIDATx\sSUr7Y,T6 ,miAD)Ψ`ٔM(8Xe hٓfiry)3&/y ;s'w=|97hTn`R21{u1Se*T@ FU6بlJZ,YdwJTW7IUf+6ф52.Ҭy6LfzDefn0`Y\/P|,R 𚭽] ҟ(19ϯFKo WCtO;l|AI1P,|6!Lt-DRJ;M GyP(XG~MAu?R#Mô}&,QWz1HtaH8V2;@Z{H-pʀ-SQoe ikYWJ`!zI+P$jƵNr $]Mc@a+d|vC7 N4Sדhv$= ݀`0NV{?Y9{@(ޕCq>ZI5lT.6$"ڢZI>4]R.?BS{Ξopf Llł۬褣'02仞bT5(8*?/\e2RL\˸&g+68釋gWXc3ehJVR'UH;yy j !SbXXù0 -V*n1L~ix|cr^=ȑ:0wcȎ[H"g 1jQ0)zK/͜g3E8V.(%=Q:q6N@D<2OhWaÁf6 +Q@)8t"V .r2LGQ4~4k|1kn:U VĽ" -7ᨰ0/ B0Nǫo,Fįo'>'U{ ?yYcZ|/J(JE|rgIJ:NglPa )&)¾/d$t]u {miOXiX|⪄$[zI gXggL.@i҆11K(CO0R1 E%Yu޺/2FSN Fœ ?Ղ2eac%Ů@)zvH1u$n.T}_`4rCBUj Ӣ#hkJb1\!΀aQ`꜈cbX r_8LˍK7֗J? Rdp3=W{A 8A3G7*q7$A/VM<~ߵ &ʱ:x#%ׄc_Z[eyẍ́pg>8y"_JN|4-ǘ;J 8;LҒzI;/[Fҹz+r2hM AE74Y0 2u _ nxH.9ʸr_\(ߙ1{oJ!qO=ݓH_˟6W|80Q 0rF8S :4)2AƲ{RzD>Lf@e ld]Ó`dO mƲ`6WnuhY3nR  v1PR.'VIbl^<ׇ%;şM0ń 5-R%'GE:g'I ̲@ a|/-kXk73tX70Ȃۺ9:i5̋#\4m8pw WN q)bJժ+\,W$2tebeN[.T<:8WnXT~,ţ\(#{N4o}=w.f5pp}k:gsA9J)(Rr-z}l辝cC_s6e * f~!)2 AŢ( ;q˳zh$ydÚD݃zV:fH#]VcUſ-&n[HA2:PV7ĬdZ4x/=~o?6VhMÙl=2AwFq'nކOݼo:8: x#~Um?d˒"W]a7-s?|lOϿ/%.Z0(H-HKuN5=ã}1$q܉)j$&o$z} 9-i QmU_\[ۡ'R"SQ$Fl< 5'ǯ1 Uš% 28eq$Qx4q$L LxI9<5;)lo"Րo^h o?́gqYW!z ޛQD,>8 e(ȿ23fҝ,m'2Tx$eeG@g4QS<-:֏rzc8; Ӿ@<}ͥRC\ё۟;2RH?Ā7Q]Z)rѩ@'`$-*8V@9`{AAuNB58wT{OےZBVJ絎ią+Dɝ|:c4 8V0@iMK/rI;} dJU`%dz:Tƺ\6gx.ꃞ?m-+"=}.U~Cwx.tJft;Du.N @"PFX6{*.8a3!%'ꢟuMݏ"A9Gɑ "69ꄭ@sNG~ڧ㵷.s 6gZf3*P R*dS3I@CY\%ޗ vb5WP}mOrj㙀EAgwZ BvzZ)U o J ]?CYX)!6-*uj~Cv ^dI0uŸaהK Z eUx@* dt foѾB=W3'%5}߲TIm RgpX~|Y|٣"NO`<˨7--MJчwuO:AMG.k%74;+X"LriJQR< )MaR5߿pn/#C0Ҋ@]fCXuUeҮOBu:+ !bAܽߗɴ@/P3k9pȔJ4ydSDsƪ#ƶiyERh<4U-e^pP@#V/v۟Z&3^`!o8hhŢohڮ,d Y R1 7@(ys{8s%) MZ&n[U t8e> q$^X \7f Ѹ.dE!"ƃM5/{r(t;>G7&7z9H+0l]M @K‰2k@gꔂA9|4LYiţ9W֝Jp b%Xuo2nQo,\6I"9γL_ڹfUCS䊾TjjZ{N%z)a"O֤"4]}X %#dIw˾ b .帝.k 5\. 3$Am<궮*^;q ^s.;EF E *[\ѠȇqAH*! T) G|޾2i{hNΝL$3^W- ^vOSdv&K+nn؊'jXAUE[+8| 0I˚w??f%P.r K BqɌJ-IENDB`assets/img/integrations/amocrm.png000064400000002176147600120010013311 0ustar00 h(  @  =Ub _YX*f*!{IN…1assets/img/integrations/trello.png000064400000006064147600120010013334 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp _U` IDATxiLWUVmԤVc1bؤƦm"~i*KJ=i6؝eC]Ʋ, XfD3?yy[{"zcZoNG{B'0DaO]mo/UOI+mYe _ŲU%":L(RUwXFK5C"s,X&0,3x$<k0J|~ i"1e%-DJBI;Fɺ>cCZ r3K^DAKvWڭ2!G m;SzؖF /?Puj'V#SnH GO~ACqa!E+f"жf%y'2 c1myeə[GQ7NeEBȮL]*cVtiucB(GBA{+1 8 j-ݗ5.cF vȞ*]C`"7p204o=ޅ0 Xr-p>ca\uwXPsr#VPzm, yE@PE@PE@PE@Pe1(n )OJqSAIœt*4<19 蘲xPtvTVk)i)F0iY/efk2 '+[t +jug˘DsQ` Ho§g|=[8Ε"?mӦAy43J2> #F5I("("(LCQJ5'(]fXz}kP蹯%hke%0wp%LBM=b94w '<Ŋgu8ANBy7Q [MCiєȍ1)Ǩgw%gJv^xLp$EUL]Y`a%0kz啘Nm=$lV9P~EwZCX|gʤ"5KO}Nsinׂ|be=ss?۞ {tX~xIENDB`assets/img/integrations/twilio.png000064400000013274147600120010013343 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp e[IDATx\{\MYf7ߘb!$]W&^*I0 rH]$0r_O{.ωbX?~ֻy74yb| q6RH:S#P [ޑpqKƄt0S3>ʪ:%̡d`\ ~!=.n6m4ajAL)Hi:l*8u[!31f2F#6`l5;fdZhM5^֗pptfMVzV*!W|3ljuAnuHǙ?,k n{7zT4G͋!Z5?VCO+ӝUE:6'{ˉ}vz-mFҵoȠl`_=RCa }%cCk>VMed = =4FEKJ/vj7P DQrC].G4S >Yiĭ}Hq|=a7T#=2V(PȆ*~^2mrΉ`G%>@1=YFM@Eܕٲw8Ɋ4'FL 乙 Sɻ/"A`=-4ThB1v@l vv_*0ȑ\꧈k]y[U4JHzG]kY^:.11lwK=X#D 4pw0bΒ} ^X!S)*ġ] ;[ݸKxunT@EŔJu*%#5o4WP׿ W!9+(DKq)+ -E=ܼ;@iprD"R2xY_{V]:3w:%5Dl!Eu fAjїhM;u]ۊh'NJP<+#'E]?I| #x@ʸ|U qFtR6QoP1C tGTr7jJ]ۭ٬\3]N_dd٨dE+bHSx ']eHgP;@_'m-5hbS+8eE%dž"^@eED?R8zK4qp KN8=$ɋ\/=+u\C,_3(Г锕SrQIy:5# `A KQ˜5(fL>۹݇_iг@oLs_ԍGzFVs7ߕ:])A[IE~Gylaz3cKܘ◀KݵNL)ođH0>ޒ0#d߮QUVeu JFH4tw{- 9AʮD IxXߑ QB9& ˆTIMmY^$o6}t*`9Nl 'QB&T ڑ爛QU6DnDuBOAPuSI3@FgLWg-.5ͳscJvY^-F)PE1uA?|/^ƗsnjMe\M- kݽkB~f3FcGg[2Qäb{ 5vAP³ds-7ow7(?x!~G>-} Dku~ F:HGpfA*:NoFցUrʪd5~Uc#\\>BB}PTp TņR*_U\z惻qdū'e63±~ʲ ~J01E"'a?E"fV`"筗-Μ8klm#юAu((mEoVW hcW77>SΩ*ˎt G wHȃ|f RHXi7]*biQ^@>q縺ZO$1Y9۷A忹قS[c߲{S`\,#ݑܳ q⣁?ҚK(:A+f.}ta(dMU믹^"*4 T;">lnuUۢnu7@}T Z5mZLV[[]khB;锕Uz6ټ_2v&^ r\t |D Fˡ:GxEJ*LjoVu?B&QIENDB`assets/img/integrations/insightly.png000064400000036107147600120010014046 0ustar00PNG  IHDRaPLTEᄒ触NKHc`]ýѥuhILNQROTV\W c_d GZj(g#]`X _U l+B;Af%Y*6[?h&b!h+@&?3<a0"/(Co058LK+xu7F{?ȰI_kT&SJͷ'λè`Eҿau?<Ʊln5KZMu~Qs5g+/&[S I:L3U ~FTdtRNS\5BnbmJ˂("շh&9:IDATx90Y}(N>Z.KDJ3Nw_/ͳؼ0|7M],7Jd8#ʼfGbIة014o# =k FΑ1;ғ#Ӓr`Pq+IAJtT1(-riLWa0EIDQD g $c,*oKPėG]"bZ(7DTl4i5i -c 2^@D  {lrIseڜ;k}2J<; ޯ,?βG!0 X}}p .k_,\bMɯ*.+#% M_pGDg 99qȲiG"7.yɯqwhW8+زȈ,D#?QLy''ER" E DfH#I$%wP)i.-zQnxC,xA|m { U rbAV &BjDuTl95b +CxxZË@Ra yE,t›D3!m9OstsǑGTG} a B$BVmR,&g"\1R9TL(&ҢNOCV(W,A=kn/!@iqTJH, BX"Ծ~?뜙cw;${ےwS$" 0ȥ%5lEU!E& AH`*co(@r͕D &a $1H :Eu;A]"F06:DB b. 8afzq._FR<rdEfE2~ob(Z4V&D _ b(Kn3?˙@l }=F;^AVkcEG{l!e3VCp`)W#C{.@Λ(Rug$M(Zh~Cݯ4[dU&⛄ H$r_(b*!?, 8݇1W7uz˂aA׈ZH1 ^_ izǁjeuWy px:,B\ZYwKdḞCqrdk 'hxp8}6 b@Grlv) (Ł04U1~? T-H߾3EGDߠRPFfVsJLe"aaA5plʊsã t`}j$`?<9恵I"C'{y>m!@nQ ML%]`mj9|pweƹ yH+X#UX:bD%RLd1a4=E lb3QXh4,|龜^iX-4_9@N<(U+FMF[&0NƁw,?Ej8NuoiCק6ٜl&8.>>ШJ{d^Dggi5.B.l~?RٔۃqWO1:/5Z-&$oq~f9\E΃n^+<zrhLaB8Djmxj;Izq{iVɒ'3X@v0JscJ(!vI q\V 3;L5bn@ijpӳ>ո EYw!1(0pC?RdB,jDlMqIΤfH+:KT wnvPY+[ob`Zu.iä<7哝>Fª pa-BINQ! q<8+!1 DszNrt11J* ~ 不#cwT+ǟr%a3{cjT%jX& $lYCr\ac0yl{?7xqd o-VI=ߴ9*bbD g!#b%vQpqx`q yk-hOe7kk3E?֮]B gD*qI\Hqy!q ƓWL0-2Po1ꮜ?:f5LЌ2F`6 ~y.*u트 )qu&+{zn:<1gD0-VUwcŕf<ѨD(3E^l>@ٚ 3Ac1U9 JDoz_d]o_ү)2F k9ή\;Bx,R 5HEu`8E>_hx:U  iD&jU?.ʴ{µ PvLC+y @ʄGIlhkCʀC OF1$mYd&V[ǚ .2űmhpq@KZ\"T{T$U e{P(EC `XRYs'A{pխsͫ @J05 < 8^Ql1/\~Lͪĕ#W9@"Q"$v,O6k{ Ԉ/ab\7Uqcp+ͫ\ #G‰LrtU;hb(B'Aף8Mf0 7WW@L)p1>q[zղbtH$HDޠCWp΃HC}^g'Tzr!t20F(űpD} NxdQO-зnj֠@F  -T`7*ZWɼ@-pk;ܳ0 ̜>>w\` ;gA+)s я6 riS @ FI_a h98G0#@[{#T?S:Vb* >Xa`F4ج$Z&9t{p1C#$S`;tGfy,$DP7ml$*L9B#"̡4⴪efbWD;wk_2HQ \p\ù)U#={ĴDmF|%dcETB /<$!<>?@""~l]t4|͵8 @SuԸTyM-zȞ́7Lv[XJ^ w(ir& LGT,Q=8[E6C(bKhjZ8믆i;Vm#$w'mbqH -iB`.IgpY2/d8cʍ#(%nU9%JOMho<ǟhW4ZiyVЫ=A35ڛ7wcC8Ou h<C^ LFvG\y  jV騋[qX RD74(u",qkUB oz>N w>v_6s3Vc rCoWH{$nIxOiPPLPҦ*sQۂx%x"U&04]կ~!nNDVA.,Ňk hV٥Gķ-&IfLiMo/݋Y Y<˄@8+3h߶cE>KA (! !QrywD"P2 ]"<:ͪv|@e LrE!3XBCz"|"R $ r"P^\ٰr $ % uhA!K2W09!3@ p:nv8d061VkkM^).QǩsR)`m8HL\BDFvv)bƠrp8,'af˛jk;O@nQJQ<<=nN9MSDD"F!.ƿiaSBz2E[)N`Uri?!&Iѫ//>?~( 7H%UC037ր":,+@Hf?NƑ[=3LZϵȨj/!;x8i:7TQAzc i졉8]VHDU/o*PEtՌXex'sjC9L4p85V|l7W + p7] rkZ XNV+Hw|PVÐEC?S o>'ӏ$yP3BQYVZՀ2K8_'n-R2$2ہҦ?̶{ IPƮd nˍ=*/^/u P͡(Nhg~KAj]F5GN5da D4DbD1F ^Sa6aurHOkȹVϓ3uU8}ōrEq $$o.a5):&׸Pfnr +;-WV—;yG^%gh_ʴe G-d8nfHG $TVbA{Qq0vtу/[ⴃ 2aBBLNI'i$%ENy?8}txf -!3M"xL=Q wIfCL%"ARZ QgxD ewK_Foq]|BaBxN7-RƇy!n,Ow6wisn `loo$8T|(GI+);rM'ҋn=&lIm|uUbBph߄YfgHܑ| "-P.@ݕy!n((%<|g/TK|  |#T ]N|@>| h5O^H.trqN1cMEoYL5~yaXmC#y!JJ?JfGԞۚV ?Q\!"%9E-X4!<}usr%/U3ܧNTt|LRD`8>g%0P>3fKE1P*DF2/Σ~4[3sr&JBPʊ)D]dMOE&qU3<\麀C=舐I ۚsMEՂ^-6 ͆jt0!6 ?9#|Z@d vѥy8'YoORB|8;H43DهSEhBh)4 ƲVsd9HWu, $ [ěOf\EyrH)!0rw6aݰEGy%,MzEISc#Qq '9Qxx`sMkHL tB0wK)])  NC`){j,Qұxɽ'B{4 ehU$6K;#)dpy"m:sdU&2k Gs@mKEEQ1\pRݻ *!Bvz'qםJWV|5(lO(3 abY:vۜk56ܐYMx B+1!aCȫrGZX ެh$S!/gd-)!% q!>n@&lXjP!3c!CrC#pX4 ߆\`(BCB+cY 8gA琢4 tBޓ|0MYMa6./CMc"`T ao hxur= j!%x.#k1Bibl—:@ i!4 GԏP35$KDn Icrĵ,Ĺ ^z/c![C yZcP]Q])6b]x/ >n^UD00Ԝ(5wZH lhV:?tbkxJ*e-tGHD@uKŵp9j->QUJ٥#B:@!T iƑUV+3!d{ٷ¥N6iiOCg)&vN5CEm |,DNߑj0" X+rL4 i<Rt6,lsO4 ɕO=f-t Ϝ\Lޙ6 aX%d|Ql¡$ (G8[BC)4P( 0S8KE[?;޹v "}K5N@nH=KXbEk !~%ZޒwH2);AZ 7\QĽR50:4@R E.b৶GHpF^t&Ee Gs 5+e%Reص5>;@0vDYZq0e8 @3e   i<>;7S@@q* C '@o$T#3ݮ^(rAq¥ES ;J2NkD}/Z}wじꞞ@n6s\zb@)u$xU , !'5B, ?{;M4ښYnCF dP}2ӟ/*݁L7%9 *6DHkZHjȕ1́,}@(CBĹuo+ 8密A4 PȞP( ym;T)Mnح#$JtE4 Ѡ@@@/*|G\U瑏[ȥȿ*f5Qw@A |7[=O ]HO1oo5!*'Iqry*52@@) oR 'p VĀ8?lxYƁ̶:y__ͷ:(~Bf`ݞd܃[NnR 9:9ޤ@J94'q3 }:.Ņ@T{ 5/PJOl\3jLk2&7+9,eI]y_>Q*| {2z9W Bi4{km">*EQogb*N,(ؙ2*bSCK$DA--u^813 RL633<Saf*J]g߄Uaa?RG Ƃ몀"X+U/ kb6ς&M.t9~"ZaXsN 8|D{ ć#A o=6qit)"yyoDoݻ>\aܷ߳roZk?<,HN))3?5X{a՝ٻ'~|"L5s'+h̃GaUg=_@ہ<)k> a.09% S9m{wXh ruw\d#h3 3i #b R!} NC~Z"$+QO@FUFF@]BY \ORFh<@VcyyiG%46o,!nR6w -7Éc``I9Pq7!%O)ss(bRY >|=iY9Be?S5x:ږ.SI̽Cj(cA= y 9wĊ`pLPl4x ig#b| n ݆,]Q%t ܟ@W#c,yT WB!@j<HKdLJ ypOONUyDf!#u% T#%HJ@IcvUȝpm.aՐa6Er u=rbh#zTh U L36IQIn }:3 *4 ؙSrGz~0.v#_aZ j0D$ m@VضisUajnF, 3SU`F'MHޞiLHZ"C]t|n4z+E60/L4V%xIVrdWzte]kA$j" <0+.0C'H3Nuqоӝ+DK4? TZ?x:Pjr}zXgB]av60[$IPCDgaHZaEZxS§f +f:\@ݗlq{*qCI zH o Ul=f/ pV! z Ly!)Ж/+Ǿٽo7+mDQ|'ԉ/ڎY,\dUڅm!TVڦ^Ϲ''łD odX'(m1lH{4"6%Y %xkzlJewIIhBw`N2"D屏R[CCZv$)Jȶ<9J 3-HlR x$푕((}>W%B3z_QNh?Tyb iO~W# X*ӢD*Jר҄nPeR^U"`1lV{-a*٪>Hy6e9H+z_ r ՎFC$)j8 Pۜ"15x5yI釣+FzyI*GN$Nw.Ѐ@+hјȪhD`㠙"/s4ҳ4t{W2>VeYQʝr|D]>}>OXVQYd,y|erp|&|RBZHjDGRTңER 5\$4>=[9X.E& 5N,cĎnvh[`O"YvjM5QXdkE,kSohPl Hmw]d _Ӵdcwdzl̢;bXM%UUZsT :{m!q1Ӑ>oC5sdJ5jjyjDD4e@iE] %}|qKċM k mAv:{*Mxɏ[^aO&`FH+rA<Jr!7Uj=QyhOEn5n4*<j3h=`[ n<]ڗ sS^SrS3Fxٯ-aDcMjt9j7 8.\`Lܙz,#=& 0򜚕^TSzlӿ5^3/u&W{)9Ó" ҬjRq OӨ'^@aξj]5 Ӕ;V /hNoU.[1A\}@zmY7k a?o+YlW ϬA`XдMfy3B#g:06$%at}k-K6kO<Bżz뾙%f0Ja198 ~>abn5wfa\}I4Jډ~ɦ4a@ ->/!"S I,2W<>9-LkYS,j-p]ѢTX[ۥHM рﮁ" SN oKgHĉGP=m `X0a=5zyR?=Wц<} J!qS@7M#.COa mܪiIE&Ae1,vC+6 ,X4_Z,L5,guYOㆊLY"Q%A?eѨAm0xd}Ad4^~9i;` Ei^LhoKE}g9d^I<<D %|TM^<3ŧYZ$x7S/xo+)!p1H*2e sF|{{<)YY2?\%ڶg3B2 Ml(HsM珬_J~|VY(?\PSk,'mvk @8_2^P?*%y.uEzX%&Y۝X1mo7zs=?5Yxd'k 7ܥC"y7\3+ǏiOO\_̄L͒x/k)j H6~'˔^C.Qs␺D3XS據h[4dw iidB[ C/\y>w{CD0Yz 5QMy)+guq튒IENDB`assets/img/integrations/paypal.png000064400000006347147600120010013325 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp mc!IDATxiPg5Xr@mEnQvN/cXQAE녂*U"#* Lt7Qfͮfd*C!P( BP(@ɺVB45X'pɏ>$jk4JTrÞ#qnO,/mK 8z=փ9,j8 m(0o]kϾ~Ao"x@@e>4X(Wң>t &LPlDjջ2AE Nj{QZq1iQDcَa $,R>|e,H~t"&\̈́s^RZ^gFJ}q B,FV{5k7,?`UdWBښ18+ aZW۔1U'd Ltj.kh7%%ʂ ||p`Y [`16tE\ånBZF6:3(f;a*YHv; U+ou! JדACPe}dRSG K1X7.фuD =(J@9׎YX%0\u.t[كSI  E9;@9E1 'oZ#@R_`ͮC %ɗWʛΣ. J:.}V gHbU[dњb`wòt# u}P_rA؈H+ۆ*ڨA?;>B׀$tLqx /7-H2lt~$U6 ZX9^,E^Ctȅ$˴ [UXQƏ] L=@V 冠qQBcr9P,=u :oWzV1{5[M)$CT|dtBu[T=(k|28Gq?LFh;uE¦=b%Ѡs^)L@ Ax|!c-L3_`§|>7wvL %lrZ}ü7*~5}QZ:u 焷>hϚ Zŀ/Jk3ʤXJ,i Uç3 s2ǿY"sZ"%3l^=ar^7-U(WAnM\d:p6D5ʗ^ن4鈌jH$HW_ _qQx_"Y. ]3ItFtUOўe'ɗ"jCh'hr 2R:F݂dX6D6P9-}ӓԔV"ډEKDO[buC Fǚ)U× Z|L&5]΃'t)-N$Pb)(3o0`MݟG7˱S4F4}^>}X&<{9LQn{>-JOK\?!8~ "ZTY`ZB@RqQnwi4JtJcX{̙nBe XrL_-H%u;^QIw>xgε4YW5zAtr~keodʻeo;lPV S\ӄ| Uv]JχdW}?lPnl&HP( x7"Nd;B}߇BP( BBP?ijIENDB`assets/img/integrations/openai.png000064400000011260147600120010013300 0ustar00PNG  IHDR=BPLTE45D8tRNSjƾ ( ۚ-#dא<o[A|V4Rt_M7w1EI}|IDATx۶0x@D񬥞]"$$QIgvzǺVtUu\MY׈Mq)>^Lӡl&~ >M(Fr)5T$f$ΫazTLFCR![TRG(*!yV; :dP)dQ!v;Vqר < *qY^r9,rQxKzk%Q9>PO_.^alk꓿!m~,]_9VJOF&0FJl"oP^۪K^qdi$BYMM|!N/#E`rX=xw|!Dl$ef 1y!iI>:(5RawP͎X4HgI 6Iи-p!캮TGP3T!i.Jf6Od(كhmrnĴT e^o(υq1R) Z|zv*qO 3 T'>[K~cҩ[~I?7N}b>QcE :C86 OJ8~ j@ %0wrt&mHw-rwcuQ\-9qF^^C~اxmn`DoDv 3dΈ2k9ïhbKQ RP! &̹Iv۷i^w16`Y ~}Q$xKHzF(*%ɐ \@A6(^*pdb,`hZO3Cs?@jum%}ѝ蛄KEGsTE %Zp6r8` #ĵE@tb(vzLOqHV2a5"uLv}l2/wJ `ҋϣS"j3 W`{ـAK0H $$pJmxl X ܆^5wʃ W~GpJ^lIQ8*'2p a&1 [ʅm@4P 3鍿%Bf9Ch`$9S:T>@5kON؏ e&T7 7Ȅ)_*IA3G<,F2Ҡ80 ޻q *[ u2|!T- X$OSFm0 $w"S??ry@Jo`Ap&t[9ۉF_33!G2 3J 0KI*雼 `Rn F4``.͏I.]0ZNu3.$wpG߼-vD iaj8|1" (TE6 F+*@0B|5FCݹu AXv0s=[HhHe=/yPy%J=,fwv_\GKB3 }=RRrFQnp݂WIVV-$Vڈ+5EJ 0&{"HZ 09a2/qfH5sp?K3fQ#2N.ݺN=Zq LeEۭ~ja4o#FP82%7IU' A%ՋGT.Q*0deM"n8icWHtfş=5.%mLQdKc]c꾂2TR$l&7%@k!qlzl_)zd'Iux((c.WI@ɜ=ʱ hH氩nt5~5{K`)v׳!6?_"Uٶ}B^StxͣԒxs` Wf!fD)I,X]B*X3|PG)n7 2:;!%$4l8@D0ϱti_Yg3``P<<g# h[ O[7qʛ H@V=x*#&[ #X>,<8%̱d\!''pjP͠I$C-ǥ_AnTä$yO~F4(0Qb CX(wnA' - dZ~XyAug.;" \jgnh-opOeaơmv;!$zY*WupQ:*Z]N7%:{PG߆a`#pCaf  \ yaHWbzܓॵ9C/$`!%.Y95ߨrl*&#`묌IDcտS$?"tx6Hu6v `f)ONHc F"s_|Y'æ^ʉpu>Q;q .o ;qTgFӠ=_fw6'1얍>T88da Me zZt_1M 1,Y(Ý(Ovw r&]W(N-k/xMZrVv1K` Y)pdAPJwO> ;ivN˶~/Ž^+܃^yg^>/{AE/oOp_?SRBSKt{h%d?OM+T-L(3F=8iS;Qt᜹{s= LƟhqhID/oc*c Ca.zc`Cy?6+sؗm.z/_p/qtQt5b`@1ُ}ݏmq[z29Rd;ꣷ{狆VgBlEgbώKUD/Wr1nʞ!0{˅ۀ0]LT`x``r+XG`M ^"WjaNKr߃2&9hե1y.;51><2/ۆrGd7A | bIDATxytToX<j{*zTUh H -d5BA@,$I&3$n}/H#&L<ə3{_˾m] hO=x8,7.|}2`I6 NT;PW@bܙ oێ̀ytM(/6ٴ\!e5LK|:LF>]_6-@ٺ&uo'sAq9rvމMGSJ?nw$?q8<1R(#>u7⊷S܏y=cJX 9q]oO-/w U #P6™xp=cJT²pbOghּG.gVJy^r[LB1zbE8uM~?`B4axgOƭkdb U^ dNcQ|Pؘ>0%iΛPrv=icoPI`ƄVWP>^.Ǭ3&}.PCsC/QKIڄv $Ϸ#Df7cEsf=H( ơ:LʚuX-e˪An|ymH@a{nE YL,kJ0t7q( aPԠڪXqP|")$KqqR)(%yw*ĩ %+Κ:xJ1/9}Gpyprnj!$j1i=wķý#ԁt] -@fGYT&?2=@(@O ~qZr ¯xS2ZYݸ{2%aʹ[Ɵ~nB+ԁҜ-)75hԹ*bZ6TlRv1Ps}Ɛle9tۤh.dkJo.ﴖ7AEPe<eٔ:)oI):PfO9/֒z ut:N#`(x:PܬI"pߨHbǧI}Ʌf9遅y#Ų:lvUM1x+!fXXSXhtkg, S:Ĺ1%iONvKՃ9 Hb&(F,R^U%~g ˕=paݔj57$}%oY@%ע*PH*z`C#LY! [HrPħ*y3KވISnùTc7|C>qfg܃ɋId j8Bcr>jL@it Ƈ"QEapZm p~Fܶ>ԯ(57m-N">orSEZN}L-YB>?ECA Ք!W16I8:Wm1E6 jLl*'Oy'TvBLp{PYC*C}9(4BT@A9q-TQ%]Ք PzC@BM&~%&献#ԫ49s&or0%TuBi/\yOHl9z_"$+ex2c,FoD^%ho4"!FUi=zQt:qYFuVK>AՓ:^ ^s&ezVjөQ"s8 j䏟e]FRmwJ(mm]P J-Ay J[EJ׿wYTjsIENDB`assets/img/integrations/salesforce.png000064400000005536147600120010014164 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp _O3IDATxouu 2+LDB(.&9bQT2EPQS f1:u,/Gml+e 붺]xSwr~ݜ}uwÓ^ᄍt<7UlogoCqny-vP@k hmHcx :9 p.Jݴ W[P4M(%3F.`,RWb][}i)((Mq;2s Z07dYy erƊN7p;RP760SciO{S 7 w7`ɗƼ5ZoCX{Jȧr짞3`7<' hI vY8P@ZAsҬG$hc Z}0T1T`Zod*v+I4=si)-o(h#fzNro.!(Q Rfvc&'V$R)~ ʆnY"C(2| (H"5)i/ CsByR(k:i (Poyt*޼[#Tc:A vWR(R-VT(ț2!p'%i.,I3:d? S58M9[C ˨ y Png*\WuYBZ s);?ZvP,?suf\NZ4 4@}ݛŰC#ߥE{l;# lW|m "˦;BAc Ք=C[;#ZbRyZV 4_4qnk ̗IDATx[ytTv(&ڪUA ZH+nK(ǢVH$DB$ HHHXl@H[ {&3onɛd&&='0Lf޻wC(E|PZ@i嚀b_uWrC#9TBePQ{D// F ]Y8D}lh0r>q3(RKŸ;9WGLQ-}AIw(㉜H;4 W$b!$K<1Dj\ePB5Pi=ԨOUft:P~J8'QnЎL; Q\_ r9P]#kGo" m)wRBDkb{GtI+%y? PNછnWǤ5omc'pS &w47`ִ5gԞ ZLDT3b>MV~$:~4a1V 6niݗJQ`,/PYNӆ!2Oս1T &Hn7y';3{;n,(PC'jŒ{4< W62*OS%5 srKk҂Njo(#wuO@3 $>v cj Keʩ{6fg=ZbTjPby 9|Q:zidlR^(?IկRuʝ>)DtAF $paJ' myj[u4*)Ax#FR {"4K8}L FYޗz8V/gtSG;i"GTg%HUx`:-@Rè9OoԥO2Aib⻛_ueDu\Y[LPQZaxoАF_필I)2e@ C5Mn?~Z: |8xvz\ 3LtWNv()3xEC RU 7~ BM}b&x-ntݴ.qIPꆥ͊1ORCkCP?S!>GtgMRhOp/d5NO4̟H}\\D+-A cpImP͡&.Niz04G\83I!?Bl]+mA43an:\g! ݗ*!3`dLXEܑ1=ZwRwENiXeO([7&Uz`&~%(|Ay&(⮫۴M6[$3.^fUA˜QK=Z QJ=3M K9fB zT]ba+xHJAQpaԙ2gQ,Ws<9!4OƻHЛ[lߛ$anzsK Zq:(Bve%ğwɉ.qQ0(Enq6x{modfj`z$&">Z$6C̈_dom$~AQRZC֏SMr[e6v7ٹc"}-K@^󴙚+5%n ~jgʅ3bd .;ʼG=TTw0#4! m{}u.$Um쮂]:Nof,4=#]65"f"1I|bM֏m?~SM^p FxgU{spc#ۜCOԍm&k.pKsv>|jyjWquVؾXm Z\_8s4!C;o(>0, n}MBHӺf--Ħ6;\dOLwun.`2vŅOÂ?(|was |bGة~me;a 8!ڪWRvͤt b*q 3>o9!VJCfVO˂:bTEz^AM$VĪnᖗ6nLDY=ʴ OBYl}_,;H?b\-.fp=)ju6 hq7EMBTrӜ} l}3B5g+ xRz82x =K vGbToqldid~lk'!TZ6DcCif27UX/s8(1 n-1_](fʷ ْg-fCcM7CZ7}lX"KxL^QN~RR>=NsV2GPKܣe3ĚDuU_%P.eJC˹r߉c(f'U Vc`IDATx[ip[u,ٖ=c[vRϴDNܸʹI&Y&3in&8dZGq-[򪝔(JDIEjKo[}$E$g @wHm"&bERIY$eERR :*Q}F)B}Քj67t:%ѢZ|vpH]_P?jҐ8uH ua߅TT4'/SiHMugzy2UkѤSSNnSyJWTJ-рˠ˧RsWg(WqNK-:MosZ^{T``הk ]R.e#*+yFՅʵu޶.dǯ iryOpi0bӨoEJ3L* 'rN(46&J5D0d'}4&@];54+nFGR:_6! Io"a$Dmn.sh{IYRUjOc3ɵ vw0ݵsJF]BuFեS\%xI}o|7'SسI(ddcۂPYCKJk o9]ڽQvi|R?4Ivh$a,YO|H>,V=mb< q*"B3E=| E4WGyݠ0S[?RZ [`quώHG Hz‰Ϸ `;.QcK~{V|Ą 6}D-UI r{"8_=$/%}7,(d8D$쒂DeQ_h,IN /Ʋey{KtZu ?Mv\AquVNݷ5]VOÀ]ҷ{::eambcm֪R͘\MP>c:3#%/N)]=t|&]·`2vD)|B{68=k^=K(ؿbpU+kX?" ^ad/pIȼH{>^hd!ƿ /}="Yjv\U3 eD : Nㆵ}42uᦶ5m:'Ѥn|cCHQ'}&<|Wuc WvZŞl:Ww+"&=Y^Ζ* .)? YOfTxY%QeC+mfS75p! {e><1tZZza֤"yσEYr AL'mSFDT1{xyI 7Hj5 - Cӈ$>^q$mh%#>|GEMWfFJLrOj߆xwA9th(l_f9B8=8*`ll#*Ɍ;_a2jDA N* 4{^Y+'z"u-؊~FB |ۻJ*+SyPH V?.QXܵ'*ߏ0]w\؁<.@hMBUI 75:!Don%{6AO5D^d XOTV^9'RN MDT'8W~#yCHNM MhNVjG]pxr궙r1 sZ/^ʒs8 'lhβ\QɤxJBbrOW(W9-8*X ܑ).( XbKWxx2`ѝǠя[`"Qw8J Ecs'jQ%t`q֤%I5V/׍z(\:P \q,??j'`ٝJbM2<@EZi7nBXH}b=iZtؖMӢ‹^:Ɗ&Ee;~H8aR*`ͤ6RF~T7 HPVq|\p3u"_R`%왦rي3@CW>bXps D-B{)HLJ ҈+NY FZ>ʩ3e ^ՓXZiJzXVX:) }ta芄<Dž(:KI-)E*[2L" r4^<ȱTTZo|Q;SHR8ZME%Bvt")[`y*& ԰Jn.du>*DkWд>.p j?DRFٱzo ,#Fx>c(ZϰN !`S{[?L= RȄG< yM[0lm 0rE1ǂ[7Dy2OXQӹrĄc3z<_PtHp()E&QlO9WD9fčLT&Sg2)@{V6l 5{ۛ~3%^G)?p.o=U7 ':NiC:= 'vziQb? ;iiF).%Nz8.7g8GQq^U}S1ظYxӣY<_%|sj;ۛy8鼏iIg:V2Q'i}ЩXwY&*.)}@HAQQ:մ$OwuB>24o>}D2z:ceSuu+EϏ8oOC1\a JH̃)v aռYL׋ۡmwnr+)E5%~1.Ϡ`p2+RXP5+<7|8ٗQa˯@kS^T7‚+/)ܷd.ɹ7$ k]E],?v\"Al0#"= /G|<$wN{{clCĉ-~4tb}G %<4|SY(v԰аW*8+uj=pPx|'oc,(5o]VS'+*CmIC#͗phq8H 안7y|yXl58񱹓9vy' e گ?<8%|c$,H"){ 9IENDB`assets/img/integrations/mailchimp.png000064400000001427147600120010013774 0ustar00PNG  IHDR$$ pHYs  sRGBgAMA aIDATxW;1},l NaBp{C",'QD^B"9.J!iflWrzjuffj6ef܋Es+B[NMl&`">-GB(0I- $g`3I'Hog2+"b},p&b$AUh&YKӛ̵ K3Z \\-F߅D2v;y` W i|) )!.hnjr;ዱ[Dƛ1m%BZ^%0i &a͂p6G8mue# $}V^lވAj&?H,E\Je@{M$O`=X蕝g+L)ZZG!ךOE ۋYf-L`۷>=eM pŁ^|_o('h%ZWbhdq!w _nSmR?Vn5Bş-mN}|v输1*b3ga0VAcj {~/< PJT9l1G- j>ڛWaBƿUǠ)FG xW&!F՜ 6R&BIENDB`assets/img/integrations/clever_reach.png000064400000011044147600120010014447 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp ? IDATx[{PT1-mgښf(o|\@`Y`AA) *FHNigѦMjɨijI[58&}߽ ]1q^{]"R] xA /(^PxAyV@9iQ4\ʢhq ՙMkޢ-R4y^$x qݧ8J6QETVfJI遗(mU2ߠSdO2ϹIikIZd#kR*E<^a llhNJ:xuqXU \i)~*DqN^YBϪgݦ5<̠7xU͔jϿDW(uu^ɿ aC >O^xKDۖ^s: 0|Q!`+b<#Ǽ(ATof+@P`!Uqp id3~_ m'UwZ͞H U;(k cy#%@1J)<2H$ b )LP ~:OPl!#8UPߧ(OU/[ j=Hpyx@ût~,@,OP0٣4k񂁞}K4(_lxX;(*g@<+(5.sZsJqM0Z`<笕/K(kN$L~}5lT(aBYR 9Lpɱ ʋO19O]d_7^r3s"h)U6gEIýԹQb"CH&cb>8pE^\5j3+Y4g;\i8f^p%i JHۖ^`#Ap(`EKߚQˊv)Dj@Jp]k O.K\t%q5I΂a.Rr%Y'F?\؋10iᖥVEOXIQN>qEqha isϹ.u~:fD8D JU  mFlgɾ8bu*m)Y6-fSMBQ{}XB/g[ѺRWPL3)kl* " !("Eky+lWPgoSrO9 vT4 j:ThmvvQxR&ϺV>s`J"e4Pbr#,RGSnO{nG>J-O *dl!@"m˔<ʣ1@Nӟ'7v 9JBwMй!Z.&Efx.sebfeJΫxkTSVp14;٬ߜP8lw @-{NAzl~Wօfi a^ D*ِ?_o~4*+']r|W] 6Bnexqގ kAېJ8wߊƵ [jo& (g+: tC]bQN7U(EE˫As3 Y_ + P`&5R (Zz( i \Ҍ{A4^dBXnPԭIQgSPXy_i*&- oA  Hԉz|3y{ }!.<387ªE3 | %ߠჭµQ64Ez#%_c!D/)kQ?쵐v ォSb/.9㖫=zjCterfSp^zN|:Fvp/qOݦ9 qً2Ggfg7oprcBzm+20_V7!,Ǫd{% }gC<E5KT&]1q0`k5LCpU;q{/#gI}߇hckUc$xtsڽBoa1,U&A Tժ_b5W1,mu$EH`=D(DkntCWfI+XGIGc 2vQc (ڳ`|V[-w @~CƯK )ҷ3ehmFak3;jK яEiֽ>3xV6l+gRp쁍}[tv_82ԞcI1"`ǡ7y&@m$sg>6F9 慶&;zgs:G09AL9]ԵG2_m /(^Pr?IJqIENDB`assets/img/integrations/slack.png000064400000001240147600120010013117 0ustar00PNG  IHDR$$ pHYs  sRGBgAMA a5IDATxO2A_+{Ia\`YP.@XpL` Pb@L`-f2=yBJ7~yM`C}O苧D<;7 :ԞvU0}ЫsVhXߗ)q ,^ 3acx  T_KPԬ>d40y\ͫ@FJlbx3"o "+=QsI )ў@ϑ+՞L d53vO|˘u壁~x cnb >'@a%S@cPvBH$EĶ h׀3k ӈG/jOz-lU7d8LrsXy.d/̅S0ҽsΰLuZrM` =q8~ =Bw})_BHRLRTCf<]Fd~&PBx)߿օ^AgldBF+ f ak)0Ǖ]G6t*wsfnQvIENDB`assets/img/integrations/mailerlite.png000064400000007521147600120010014161 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp BI~ &IDATx[ylTE_E<AhgxE  F IDQ9 vBZQ*(hkJi;vyͼci&ݝv7 \=w J'(TZS'}ryofOo Xnk=mZzxYSi}uO۠$W揽x.} Wwx{bpp )1g+?eP*: \C[0(D|b)eeP>2tuAЛ;4JXf /Ye솙MVdTPT #~\1g8l')!eWiUQۓafOuy0nPu \f3JJX#Z!. Aϝ]aJypjKh?^[vHP y6E( /l8;C腘zf+ -iI`&ir&Zi5IxuPRRPGW \Pf⧛¯@=RsAaz\񯊝Ek~FͩA>őG(8pE7km͂|ϸ ͫ^,2DЛ=)Ф[}ܴeP6(~ϪK|`ɻpfM>$`nHږ\P"1k/b~\y3$x}p'/?tI fWL=Yno~iЌ=Hq5e狏UrA[P=5HɤܱzU0J88}v'uf4@:U3\V33:~@PoQƳQ) .4"ͬU"е~lXqYn5p>w猆ٯC`k꣗]zp;pf?H'|ڇZ}`.q (. 3vSxH74J>Jx/y 78y-{:`p,tYtrEeRڶE)~0Q/8tf4qY ! W)ltݚJ Y3Vϲ2Ԝ>\&JI/t\9fتW =cڈw0 d*"nNԈЧGvQ[2_ $qج:2$l"៸](̇K|pw[$Gg)Os.eL7d\y AxѥBB%Ab԰ >#;r NK 7u XQ^C>Eo7>O0Nj2O-MVrE%ƛUIh*yMMN eKȈHUzE|"%"G"GB\)LulDĤG%(㢂Fj^D$/R9>'FX)ye0 '6z\nn=eV4މp:uOq[qKwVfYl`%+w`EZ\X7?Yk;VKЖ_ l>VGp.(wAK.ry5Kn|X NP:A\cJ[IENDB`assets/img/integrations/salesflare.png000064400000006455147600120010014160 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp EIDATx[klTE!  $@* BTVBh4#(P$R+&B}" "/5`dEm$""]<ݻwǗ3sy6D"t%%T*%)r9a!BpG@J]`O@J]1EG)uv\Ah($[wHoBg4)D@?wJ2ʛ2) 0~&tkr|c!1)Ҏ+ )IlKhchL>0賂izE@eKe@yc"g؜F՟AxQdX_w1O"~J/aAtx(EypêEM —TɁl3,1(ٴ|my*qk, h{8i=~Iɬ6̽IxUnXr5ܭHe ѷʲe~r1Z%sd ׆څ.-R䷢ce"Sz! ~{0F4[<>WrHgђLr!k.%X^_FsMU[v3B^.HFwE?JeezȄ!03)!R>鳈h~9*Ya:ЀV-$$}`Z.i"LE#%2e-jIX@k"%HiNx>YM"RnȯLog! xAlȚPp1^ԋ)"Ԓ.]\$(gJ)e81g*uZY&gR2jvG!}%*w} )!s'ta,fc`g'ZW7D\fF~LO'IEQߔ҃:0u}"Dw:XTdߓN(9AQ I 3[).c& [֨%:d%1.-VDĸ`Z0I6Vx9XOƪdj@L但9;yZW4RԠڈېLmV,HMC!25f37m;qH^-أ0gE)ra'eq-k|m7T-QNWoZֈ)F9 d SQØB=q+Lrgע0v1&)͑l:kV-ܵXdȹlg+raˇe-SVq 1ja.9 :p3(I/RRRRR e:r52IENDB`assets/img/integrations/telegram.png000064400000012552147600120010013632 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp (D?IDATx[ypu{ғk,0n!CS2$) L0% Nda:mN2NiMf86`1edl˲~˽|e-aCWs%m9;Ǧvqś2(śr՛QIyM xr !e9 T5Dwxö.S=zl~qCle>GkkUa[4kAѦl+N-M7W5o-:6.l[a*>҅%d VP6Z&6d$Cr3$&mKq7Z0Bͦb! 0aALA )IW&q$~Œ"鶘]E_ ؤх_ 0,f@s4iKz|\ikUMs E,A 8֌s|GOAmycHA0`ˉMh&Xy9xbXSR54;_C h Gr=yCR!hd̂K$0? K6XvV׬m4wm:?4R[;=r{d c }envolPA!x/Ul ]_$@Cv喾fB+$Lq=/χ˓&A.&i&pW+;:ɐ.)a8}*fHAzL==T>gK=C H纋ٕS 0p;3`Ϋ?-}I37tEN7^D WHA0h 1`A«9YzhnH13 bT#[M{z|x{1CY5/I'0s!RDQQ7K16ϾY_rǼ#41tMwc/$E]4 `ȾՕPSEc\Iwp > 2Ivv-4Ϩϸy9bjF$m4bcm`Eawo@$U\ӖP(|}2 T7.!BFS*@`~\`UM664bOe,BCYG:&[%)CSS_Rm19d]@5G X0f7XXh^tm-2-PҤCq%_Rm;{ʟ\{f)w.p8)3YfCB C iX11ܹōm64X ' @O I7a؉|ຄ\&Pͫn!/_TUgK hI ]4rVU !l bؓ($}XP!K6!HA@_YPQAX`bB;9X1w 4RjhHY39GaV>.AjXE@1X5М0Y`ki {?%lmspߊإ_C3CSƙBnPk1Kf6ocR:[mv&k2aOA>q(\S)jI!+2rZRVTG@Y4:2(E"JJ/O i5`wW_;4/w6b[}yP'")t%fB&y !/lCRE< (!s\7P|63OTBQ_c}W'+ ],HUǺ9TqǦ4em0dvTLv@=;=7V%,KOۑauhw|E MMX6g0U Du%ik˩&EBWRX6ˇ{' ~W{O![- X2gKWx2(yvNXbn:$l`Sӑ8g,ln8),m͕p B8R7P6f-ҕhZF3Rʱ'_t]Klc#:j4&P!3dTl~U qSk˫k\,!&q$|;ۏgOVV4*Qʠb f$mk`@y+%IySn=?>SxfrrsБ;Ͼ9⩺r5MFwWS.PQ0?i=nkW6/?OXeR `FpzMBPb@Eq(ifEV7YH]<}$BpB[UʾF¬Vhud5d=Ip@P<3oYÚ̷j VȖ< xJȨ*OVӾ2H4 bs{'z=6Bi1i>n\<3e-hOP\7Upjíǯjl@УOLӦm\@J#nJ+R{sޟt[CioE7*7 _?u~sLƕyx!ʿe;Jv֨S- 4D}da܂ݥ-(2tEs&|lEiazmgƀb3|➶I~ʆOÕ7M(qpӂn0>_( (3468r6g1+?qϖÅUP X*61.DzD13 moӭqٵyf90Xk~]W~EDP%#?*-{|KZC)mVajfEic=-A!D`Jmn Oϋ};@E!|E2KuhuN>x}C޺aoCo[RՐQcP9fB#3֛ZpUWo_̟é2(nX*8IENDB`assets/img/integrations/webhook.png000064400000007677147600120010013504 0ustar00PNG  IHDR@<։dsRGB, pHYs  dIDATx tSUi eS .,"mA MtR,mm\:Ȉ8#8( GqAٚ-DEq7tdSv56E9sww6m7+~sibX5hp7y&Mn7M:mzX˛Z(hk&Fw_kR?< g@hXր/ q'oFoyӯP>`0zu's+ "nFijͧ%`Ao5­!߈ݡwSYilè7ϢvOzP&5X8qWfxsl`` _لYˈ>Z"`F0{a6`*7fK5*UGbOhU/}iLq/vLI}C>>7yPֳ@fjw Q%!<-{ݓ@UMa?I2n`?G!w:4m,,G}z+4-~⎵iěsXY3zA0 `1$E@iƍ;4:lY.X;W9\2wnWu77EGٲgOoae-|~rbXo)sXkS]Bj2K~D! [t]Kh"1WS XN"#oaeUzE_::W{YBֵD$ »ϋ,5F/ذ\> v֦N;5ޜJWCº>WY9Цuw[09ގ 0l̗B{iOoor +HI8Kytowe]I!5`;5jAt3=h?2z~0Q}i^ ɧ _=VP'g覯_V /-̓]ڟ*:slq՚BhK'6Y.RQ2U|<~5ظ!̩̲(lor9q!C~_a놸T[*<P(jᣀ!LIM _?96L%ƛWJ,שR>Rhxp!H;,#t:8Sj}Ir]"=C?+ %DZ  pſ1L2ՉNDS{- ~gںύ _]g_njӕq~8+ \P#;A/Hcׁ/KybXZ*n{ݛW*}q dͰ_ K^m y~r~8tIqSV %+{dCSiՖJ٧`JT/5 B[O:(DK< ѯSdjPaHSg! .d 4;2M`MKg=jЧMs7 CCTs._Y~zcHqD&8%kL0:~'#!r2]Gge~=" 7 ݣ#pUZPpPe^፺}< c1{ǷTlbͰ_e[TM%cuH}BAA0|vDW&=.;"4T蟩F_( :h%''8[:?֑y-=H=^P5c .1T:N|A|/ rfOܲRxO'j.Ҷ;(Ki0B␥{r<*uJVrYlV ޝsA^* xL1u (9\  wd[C@?Z 48(1*Ve9q=ɐ?kD,FԈ7Ƈ.Ǔ3yKU<_"±*Lb_K648;v7 ҽyХ7|jv8~jdw4CaK<(otwUiar l 2j笏$}Hߋ3!T ]h*ރsKyrriazu;C+$3ߵ@᥈|T#Tj52v6A$bz0@ҳXUpMrnC5+:ez'u.e^mw0g-5pv!X k1.? Y-כN,ZWVp,A2j ȫt=BujS| \Gr=ҩ9nt$aA4ַZh,IŏDZ6g3X ّ)0yG2Q7)y% c|<& -f")\ kuEV߸>c0s$ohRBH.#CIu1TT}"_m)qj3J,FC F\F& Qm/IմqainM=x*19_tti}{}^^bE v>y)9%Wɓ@4ُK$hfqw仃 b6ӑyƏ7y7Ar.帔yΧ̾Ḁɣ y>:+2Z)kG$C'9SYSZIy-4/?fN } {՚`hO2?k[TXx:E]#T7?[N@iy1 dd々ߧIJ> [L^*7"y%@gOo9ʲF<ҖOV+ڮ6ڮ6' &#dZ)z 2fy+4d=wx. @&+;UO?į>j!#DoE M3e_Us{~3~ނu";42wu&:h68zG!P%x|OqȘ7qh-DJkx_-gߎm&MjvylٲaEZOFWh_xGW}.-q8sh. C{k % qZj!sA:e}]QF;BSuhAJP LqKn":>t.eCT^|}NRV0X@Ti<IDATx:uJ[NXFvr>վ0;Pk^"=3!C1c1c1c1 ydKc̹.3v)^8>\i1`潺qV!3ٻS1ޙ/DÙt[)Iq); 1ނ;|C,5'Dކ!a<4'3;J40v<Zh\δ[4!LEkX5%ǫ;3vh HҀWΕ" N{WkX,x[Bn++  d͕BW˧y$bI^ C w*+T#q]51Cs 9M>Mt%a]57XARWD/2|B%.1>bǃkIw&_[-Ƈp'lƗ_$2v\-& v#a(׵,B$@. <|gFȂ(i}j'PN0-xWl)X1U8ӊoѫD[O0`P ;7%4b\ Dmg4% d>x*9o{]$LjB^>6F4pPKKrpvq}kth}^D=h|M6LC`N0Ic*#z 0 b~w Uʇ% me|N؛±bl>nݣ) CNxm,I,̘y?Snb_1@Z#C.;ߎB1ցiWIy WM# &1OaG3"›Q4pWj,)yuO3Ā ^bl(cUF.訏CNi A1r%-wCrT9Jˇ 'ɏ2H |[J,؄ޙdd #" D\W鷥;[Jt'~]dQ.=@|X~ZNTs`a ٍ& " !V Y((T"[3pJb' q 931R_ߦ&v rD ~?_?MUŋI1MS+bъl g߮*BNqAFKUjD6U NC 20|QW:Bg$.e1X}3Z@ȵrĝ܇h*9ll'۰)S@4+ ^vA^w\K*VM? 3v(jn-ykȈp[o=ZL!MOaM z"9ED9vUZ,*֕L&]OQgd;<`nEp K݋d[3 Jblz!Gon,"&{ 5MR3A݆ jX$u 6Eb)mEFmjS*~rX'OӔo qUX' 4+bW⻉~B}OqE \,<vh~KA~Y@ EͣXucJlȏ1bŴU魣D~(@f 3ٴ6oYJlZ{_Ev&љ=3a‰-&[OdX >_k CV܄ɪihCe_R/̨#ﱶR#cr VVwKĂ%9 (a9JYDF9/NY $=˻i);'{Y|Dʇ}x.bJ)Cݲe,ej3d㠯6{yѻW N7)+.0 ⻕dd닿9I<))0FW7SE> L` Ḗb8ڞLANe591ئ(LI9tgC?33nq}b2c S pªPAV=K?Nu+1ֲ4Cgem JR#RH@c:3btc{ҋcx_߾Zd֐\sYs{cpglz!x!o>a~7˦cC')@R]\Y M/(%K1V).ѱb.,*VD/ ⟝᷀id ܀b})J v ojŻSUO_z>?C>-~AH![kX3JbLJ=nu}iιK*cQż <@$_:l>ҿ>iܮSIVYP ^8>ą1!FV`I9a{vp]g^߂n;tlV@C@dsA"Hh6|1?^ "hZUL3 @d:|zCKkYYBL+@ƞ|0!s1x~DՈh!Ԡџ(DlH{ | @ye$mc/2Qc*d%~|0?f u<Q|0=q|ybk^,BdF)Z4p1X#:$UTZB-T }۞c  F%0,щK+z,r%lYpH+!3[ܠH3c2DFTcȀ-5V<NSelt(V/ DX-rI&3ρcA.s*$  JTL/E> Ś́]Y=;f:4+].p cy痹L\g`R,]4YF?S3B0QlR`"Tm:M YِllAit~K2Q|JZ"H/tuM_U8m[vA$vX0-Aع4!PP5H[oF*݉$Sn2f%&(JU2M:6o9XGDi W6QQtw1?`wA2fpXvur>XR:Ym۠qO.dU&Hۻ Hdg/y26 T=J cJď} `'z~"")7|!o1e)cB_!kc"ƈWz?:nx%*H⫝̸/CR׮vbPk$ԈE"~S1;Nz" & *ޑ7Lu k !©Q[()Hu,&J47ꅂK4Xa5b䥖R֔b4ܰG0r ,Ƨ5 l#E݋֋ys.GQbhcpıf ZtTѨXњ ̯*)DicQM&Dhb#r:Ƣ0RV8("L9ǾMVښHRZT7HGe9"ңBUw$ZL A\cE.+TҀUKz2dshE&`B]"D8Vn%e Ta_("ZC~+ԥ9 E4sBScʭY;( O`  T3; |@ɳÀH' ?Wdy߰Ss"2Jvp[Ehj*^Pz9(UĪaY/ߢ^gr#)BҙfiփH#]029©= ,1n+tapTiI<;Kj+CV$5|fa*$'PedT0[hy:p nz6,Q͉b{ z-hH5o{ϓ#Ctm XxِIZ>Eg3dVH{b/xö֝&0yqS9~o&c:TL.KcCGG._'?TRܦ?ejsLk}}3mgykfR#!,Ap<00ʼn\ۨS߯XՑb֞@pv# {y'araW92#D 2xB_?i]qw?Aj̑RݥEr$0Hn^rJ͗Aw(EP{r!ݢ#C#鈜PP/CB('Qp|W՘*dUDz]ˏ {.h8ų#NE$2 P'E-@`tMG|Ag$$^VM/ vt9E'bCP9w^ySi0[4TWrTT&@7VEG!|a~!?eʀ.|=`!4m7OG88=f!xtPqa'70z6QfXXhT{ې> `곮(k$qqcrXE'p+`"'Dxێ/ >G7q@.MVcG2IF 0M;ܴ ƄR `ov^\HXӡ9hAŕ^BmntLКqt ,cmcUɍ {'"eG[nՙGiyI~jKZlHx(7fάYM{*+He}w},pxNi* &/ŭm :qOvOM\u%'^A^\˺;q.+3BsZ"^>$D"Hi  Oણ7{yIENDB`assets/img/integrations/post-creation.png000064400000010444147600120010014617 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp IDATx\{PMko *툒2#]D.tVrI?>}F8i"HЅl}rm/oi7k/[2s2ڭw=뷞}75Po<@ᔞ~E8}tpڴiB333M2WO R8uT0:: RyPJKK4i@ ]ӆ &<}'O?C@937V !JJJ T.R| uusL&3;//H@qpttl ޷o߿:JHH8r|%_\\\=GKXnoPPPސ!Cxߊ;v<3I%@68pqNjECpݻwVᄈZVVftP}-]`C'LawҥJ9dnj?-\?SSqfCCu#p~<@rɓ'+0`߿iR@ٰaCٱ9sT@yG1[Z#iӦ?N͚5ԤC1tGy@I2sL6Ƴ.ɉg舙PGAvڕuֳ7o$l˖-L~72 ^|+@y'A⇅]WXPAcxBRΘ15R5OKKO[N r?EEE8(C?P+{{{۷o%@ٹs!i+ 6:r?(eU'G(-ի(P>6T@,5(DI χ BA?> !R+`<%++هӗ +u;B@qpp`s8H9r>i5j$͛7?$s"eF2( LQѣ'NBq # h'DW'|LLLohh(400 G)&8hӁZ@a@Ѳ߿OEP 8+WxÐrwn۶m/Rq4QbCƉBR R8B]3--m p AVaB#رc#""R%@3fbPnoQʰzKmB}D$}@4+ϟ?ŋF#>lP(sU9P0"9$yxx0)?EUiXy899?~KnyyyA:J}WW |1&((J``TF\\!1Ʉ+jJӧ?DN虝6̙,F(V:褟?uTĞL ϢeP9%&&&潫k|:օ kRHhO~~^Z@d(˓ ޾'RkD5Ѳ17 :j}(y[ I?F=3]Pӈ=,,,ׯ__B>{PzY!Tp8VsaKp\>qF6`:¥jVYY}, Ud6${xxI--b#։OdOdrYɩ tݻMAAo) 9a7(YlA#JTT(,YbH8())YCttdXXX(/xȸH7q:t(\";!=3 fu y˖-A<|׈xZ@yu]b=NB-2L}gg'a6Innnk׮֬YLl4 r|̙_J)9---\WWWq>Ŕ*YnJb+\A.?OT%P0jjj±͛7b9~2##*hѨVD#Z4g?za=q3t{4rl lQ<\ǢFcBT5n]ll3|9mhzÔ Ȃ,@ kЫ>[?F,ʗFGjBw<ˊ_tyjY,qбUK3nQ) ^35/wΟ«ilWk;IEEeXdŒGs%k*{~4u Azkc?Ōr~q 2l'.c'lhM4^] V_-H wֻ8@"2S-)3AbōRx'IοPXxȄV8T%Fb;,A̱hʥbW⎮ޑ˹^`&QZJR?"(ݹǢ. FXd Ű`~-"q Ʋeщ iz{hԊEOl/ꥅ)qkjaȔJ vOY"O(T3!3^,|y7.h%,Tܞ"ļoWJ %(I1w5/<ºVJ ?Bh5낥]JipoKy\M#FDdvxi"AWܹut=- R0t5nۼCԐGnN_߷ ŧcQfhpey|o 9V !KjBHb%J*;A)9hEa|ȟn.9K:)Ϯ,f8*@$(>^I / ːIȤ>|NS{rK=)"rvI*;@s0[D^9!OIJɊ%,?>/)\ UG%_뽡sU2F/;+dM\VJYüT0ZeY(y+ڢ.gTG^4Y$f)J|[E]bjءȂ<`!$< [G%J!Rs3ĭ9tɞVd"70?,af#u,%NyMrq4+k 2Xf)bb=1d8$JNv$βQJ!(RJQk,ňC"g ߠY .%▵Qd|`Ģ$X)WIEwh:eD\J"pVWҜ*t#DԔmF,OYvVWX? t1^}*'3KenNT .IH\֥:TN6^GsC^ J,eԭ=MS^ y+jiB?=g\OʎW[k}@{GWBnkR.hطݡ!KZ~ũel,m=Vv!HXc/U=;s(ѶDjX ]V?"G<;}nvgńtzv0qB` zwk|>uk[:O:\Zt^5ʅ%ɼjgQװk\: ,I}v:}>v.]"F?VaȈ +;2n~,wr^(ٹT{1~ʢ4 AK@Ոvmn?f ΪdW(QZnDEҊBN;tmw79;i&0d;vJ'L! -XB$6|[}Ooe$ȅ#"-v?^z` (jap .!r(Ow,քh_͡.=+ ބ=9.^B;]n7q˖Y:3{ QC^-)WC%xM̾|d: {!L]g$/悜3(cq3:QW߿0BG S-wjʾ#Z 6-!-'zszȵ hBDg}nw=lPx{lR-:f:%$P9pqo[3dEqrɜ(vyZ:ihֹuunsBԸ=^V>5"B %_ e0f[AG[NM л/,_14@+kR8O_hkx]I&=.0Mŗ{,U>TcJ2{yqOU;t|t \A~a[Cv@ON69}E/Q=n@o\{ϓL($d-)fi 4Mֱ 6K37}hNSe7/rU_[ !^<9zLg&!8#K pTdmv52vmGhn Ϝ.E-ñvH? E1=u:g>y]' |9TREծ~~T(%4?]6l?n?Fv7G]Lj.ᓟ-_I%ęoNbW:k. ).R\\<.;+B'l5 O=2lHw.Ql脹嶡[;`O6d.nbv40eiAU}_>@4ۢ6n}k2ztWJf|`YBd)sFɎC\U#763I\: ^X-nP3}G(Ka=08bue1k0JPBE+UM{;[-P"1SvU':L_p,QPnſnC>slCybY:~w<֐ŧgȫ#CsoMo(NnM 6cirX\@ʞ#a4kq FQ/q΀n|/vτH ?~wz|_^.;=!37-vȕ(f;$[:4Tz˖-yaj%jH$+i^"'l#)G'P#M<~eKP~gwG/Z]1/' v331P~rwm+ڋ_-oEN]~7p!xXe!ghsKI@-[TYmjb-h"[n@{V.ʊN/Puax8JbCs m&І9Wbu5O*C02ir)"M=wy1ўnߍ'ƵtZA"'T6fgt4׸Ƕ\hxȋoCWZB~k|4rL覠f/u'͊r#sA+d6_Ce G*f':r2i,.Ǖ{zkY4}Jڊ$.FNHNd.@wZ 7R yʙMDDsX H m ,8sYP8,n(VlET01Hm?{0KioR@ug(srY+MQLCu'Ck齇ح# ߝ:8y3.q9]Ctȿ @#T$kVPMRG@P^?KX$o-rJ̥1B-pFΖccS7R\OeU@UcED E0AP%~ l$Wd_,eY h:,MDKpPu24ol֮U RS,`Ł܈x!0r#T@9[<{ǵX!'|Fum!BXwesv .S*7d($h`(Deڥ`K[ϼJ]ܽBr|JPL~ۚ 7CnG8')b^s#/o:Z[&U> >*'#6tzWf->_aop{k" JLNYPxjB:glYe y3k 99I6/&Lr̎֩Ub=e2Q"0ޱ~NȽVM+FeN#xB"Y"dKUssVR_er9zmSCZtFW+[j}$نnIyI<{b26 S!![MTy#,+kqȻ2<'I|wgKSs {fvn5(n|:SIjZZEM?z&u)&W;sk 䮥K_!0ۏ} &Ȋp uTp "(_kZ ^~&O yi|uTsK}^T ǡAYv&eﶠ{< ȍ("%6B:=bzp*bCp6uK2d=ڃWD9dÈU{qk7m2=瑎[eibp"p D"č?V;DIX4U{Pޫ( @U'mVp{m;DB^)_n2Yn.Y!#S&|D5UճR]~R7Νh*)B'/Sh~IQ^LI:J P?n;y. ǐO#q+l 2) RSs}ق਋kN<{ ):@Fwe؟CnÐBWZ)Dsh?nyAo|d7taQ#'$CB2; DfO3)g#*#}`@ YSLA=rfiə P>NY7xoiQEn\7ӭ~>ЛDQ`BA4LvvPߴ!Sjm_v+,sfV͛G61D%+fPilh;3(g۫!Pխ>(B#qAP6֋"X N QR bnF^wWAeֺ;TE:~p;U.ne hD1C3o 9ZِMjb)4x;Y %?KbքAl;0OygS;ܐs[$H*]@[ȿf#o-}q4œ(&VK&\ЍI~ʻ|aԮ1wXgR[d^#[D!hT(P3Ks2&Yxftk(E4VzȑH_BG6f%\N,3Wˏ8%7R;!I9+$'RdsXg ݸ߭,/H%hrw)fU)F s\, fVgmJ9" ]4>D$?%o=7Z4SYЇkN~=u#&FK`ŋQvsY{̹a>m}zN[Ș7L9Kh($B-Jw_(=lh)\ř:w[7ZzF$c*V/쳁c!^zg[ɡ8J3ҧo8 dVT=ܾ7O!^3N-]vgƝz/g, gMTڜ|&NbO^caC!|٫e^+e_+ջlNAC?qmJSrg++y#X_~x*f |G\SC#orar7 yx9$N%ؚUThP ʢϰ^N2av2lԪ17kMcmF,0m}R"!&͙ٲYWdLsDbΕ5RaҲ$Px2bpƑ4L6;Iv]e~}Dr~<WRД1RpVl-.d~Cl ;vm׵j~rh:dfAz "]H: a`m["L"0P(44T93ս>=^؟/,TdGB`(sE^꼣0Xh(7;07w…gN-z{{wtܪ5;;?׮]~}۶> }k?$Ҥ>gIENDB`assets/img/integrations/notion.png000064400000013455147600120010013343 0ustar00PNG  IHDRæ$lPLTE߿ ```@@@ooo000PPPϏ7GtRNS `@o0PϏY_IDATx읋z0Bz[WV.̄$Ι3s" } <`yQx" [=F{<uK"ߵmҶ+Xö=ؐ ή!{0Q"t?8c g' ̉Ne .GG ܶms]Jmn˱ Wďjɿ-1g=Y-8C[gĽM}yCr@쪈2]J<N◈ &[*}?,eLBYF Lߏ0YяӁpK 8 TriQʣ5Scyjb.PٽlL3pG_5>Lkgy6ũm)2g@%*8 ́0psvT HB8qvtDTAg? 6;YF4.p[g7:Yf ;݀6G`sv|yM=&9&30.EA@hc ׀G6w٥h*DO ܃B6_=P@[rW8aS@(i?dP͑r2+5P2½@8xCœ@8x o1@{p T4ET4!oI[* > )~Ӗ<ϳ ~l,=ն}%/CdѪ@Q(y9L7cy[rU’@][gG"V¡ 1'o0B.0ᛯPs|ph9!ڒeto|FrE~$/M/7.@A/&wܖ>#}:ncaI\Q%:2d<#%757Z13K͘1ƐCa)𣁁p }81+ a<lP,N"6;s|#H̥g%0wL[}@*bﲃ"[LՎPZe#F@>"0b_\=F*Qޒ `00-XE `[^.o &x o/owxXIG`Xmvf: 1Eo7`0 0b& o0(n@ `1# 3C"lMF@ "@f3% `"J*,]bV- 0bb[@ 1{;`` zV4oAhE? KZ$%x+hyV@# F@Z!t]=pb @+( @+*VX3NVX68h` @+0U%߂Њ xmOZEXZ\[PZ쏀;E=qk{ݺժ f8 k8#: _L̒r!;Qa"J"#1p# ab"K((<#v$\H`rH!ȰX8aD#C8R0@1 p-OȩOL~`5d'*NE@<`%1<.Px p.E1C*DzBF^P`/odn{Q$0(svfFG!2)FKD:(KA!? HU6MJD)8 ^Ɨ ImM2$$LI u-ta[ˠcʞI ( J@=9p|%%J$x =J}q_V3<( 0y)L!ϡ@r̓,xq̃1ҏmLx$_֤M/7\h>QV$G 1m\[\$AHyOb;8\ @ʃF{wɽKm |c𤠳~. C@ſt?u8 N-4VGMȀ +ƛl@6vgPkk'Sodo 1Y :۟vmAs \<iJ*ϷCTI:`g']rDphC~R.}`ȭii ch*2dd<2 MKaY NHqH/)g2&y jvR䌉Mg[ytnRn0i^K zvssGqtnn}x|6 kXLo Pto 7K؎c6.>}OZu~4//zzp6sz^(vUMv愝j]@W]tN!3Fh`IENDB`assets/img/integrations/drip.png000064400000006100147600120010012760 0ustar00PNG  IHDRE@L@ pHYs  aiTXtXML:com.adobe.xmp xmp.did:c3845339-62a8-4397-bc6d-53f023bf7c50 5oIDATx{e=nkfVtC TL!5b2B%1#J D2(W͢T@I-bXg]k93s9Ǐuyf=RT489,ĀoDl.ʵ- gREn| H9\Wj Vf'TDJƒq4b dyC .,VQzg@g'ZPV57~&Tp69 (Qn 7 y}yݱ Q&eYlCx|_|ˠ/yUw_:8s0[QEJ w_-¬"J9ƥIіx":G]qcuf("74 ]@Ѡ.sy$`{<sC~_E JYX5bĢĢĢ}sDcr+o 0ʃ` ua+3XDց]*C`NdtsH\?mW?+i݆FUV߯V[9bnɜM&tQX G݊~,W-aۊ~;aݘtr#V[!e/d':ioThf(oQ(ulcn#9;D2LQY.ޱj˘/r'iMmS8\y0)aB04_+.RE5KY~,{̪n)qNB $Z ^gz);"ip.tOQ^2ZS6E⑪'5AqB e( X( UK2XJ/R\0yEQ\(,Q҅ArX1f((-\2$A$b~Gs]߱"h_U݆АDCm xef6Co8h{Ps]fj˫(+ *C2 M:UiO.zA,=Ē|># qm|2}CQٺzvd m]Wkr+0a'^t˖jV:;G%HAb;2$ cr ˦oIEL֦9Qgk¨IC3!nѪA=a}Z63v  Uɐk V\t j4xe;[,[Ӝ9}D-=hv+to0_9ȤK|T9R Ӗfx,,9._dzL`t@b)Qy 3fOHI~-à٥Q7]"6xc./6KViJ3l04 95"8_1Ja]0mIENDB`assets/img/integrations/mautic.png000064400000014452147600120010013315 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp IDATxy\SWֶtNۙδf|-u-V[gZ,]qY@–= ,U6wYdyA$ -}}O@'{~]/8Z /vh)H 1Rk)vP$^S܀ ̑ t8睿NT|ɏL~7 y_ܿqQ]Ffk`O(aZ1Ca`! mCSg0uhP`p7tF&uw)(Wb"X}L;|`n/tŋO&}(Yh`v zgYCioo_?M3ŌMd%BaL@+ҵY?ѷ Bh~[ṵ`r߮tŒ#y&"mF(F_PQTK~I PK/`'* \s~AD*隆"ҲO+*k3DS8ھ%gn ʭ`Ǘ)VИڸJcsdb~kM#܊[ asxXU030v@5 oIr)e_[8⫠t@sxn蘅M2 Y]o啍M7xjHQ.=CEu^%\P(wge>~މO Dd~Cc˧"r.+sBe$rX|7K}[HQȢ@t/l?Py˫nlTx07I-. ;O@lzPW]۴הGEn"*'/`mD dm/H^ɒOCvZEJB؁_[eV4bE/˜PZX%rzVIrH =aCyƶ'퓬@RS9P [;JӋ<2:$wud=Ub 06E!`5=Դڄ]stwJZu"RbnW %u|Pj3 .|abN { ]Mz5[|f }9ȟEƳvDL0 ll@s f sNבWP" =aƶze$}<@T]GkuLN{ճz$>3lnIittvmQ-I`v&P:P.|7ӑbwYĽ@>hIO7g +`#veoҷgα} uCWā\I 75WM;aLuE!]^Ы@&Y6!ήt.EVך3.VHF)yEgQ;Lo68x+x.oJ :8m`L%jllUE{yr:)0 ~1N#@m@$mPUxeS=7=&(Jsu0ћD=D ??0׃a֣< 3zed @?f1'";zVtjO4A' mHlќ. zkz 3FCk `2!!b>UfV|!5SuʈtMۡ;DbWch;2yن]! е u"6P$EY wO]:33Ήت`g@lr煒K>ss$\Q8⌯8_#)%vT|IbޝФ[ J)j*oe fbhڥ^zC!  "o7uwk0r8S*+| _nDP\ "u`8U̷o+;^3~mM 5 9dn?l\#%C5`PTҠ&1R>؈#@475=[y$\/6aQ:5!sQJdfG0OaQ|ښO26Ȅghx1 r24GƔR~jZTǜ}VEy=Vx6uX 2W'} N+BvԘbeBA4II;( LVQnmLzq0t4LwLe'r KÝgex'T^Q75'L! r#i(|GE&+ay1Z8UW/]?N7O.ls16[F SwIiXZ4,uB&s\ TȘLwrS}諂!ڷO c'`̻_Զb&,&=o5L%Q/0:V;jin|,%Obhae1Ʒ 96b([qx\YE?#yDMөzXW?4e(YmztysRag=L'z By0ОeT ,gA(~AZ%dcԍrȍeˌiIjݒ݇Z9V)%̛ٔh ICɞ\uy'8ERW7  ͽ[dBOdx75EGY.w\f8c3&_9\ _fn qskk?SU:S[%WGkU2&;:$𳤬fBF!Y{d BwDR z[J7>^rϖ%`Ufнeox$ƩMn0[N|n ąXI){ M64ѕg'𐪉aVb1Y{F&#c LZ[m$b#?eE]u?x|l'`'E1$"YVvuL; C))){W,{灐=D8?O['g]n'?<^?%5p5DZ?Jio GеNvh}R]!85uC@$u;|w9([9%.:f*OIr<%?XXXrR. E i^@PX+/ E\{nR5>!)L$a0_Vvk HYy_.PfFj|‹6s{%(9k [@Yk.ߟ2"ԃ\[$w Ф>3ܸLdt=V}I=JgCI>շ %btsA(Дzz*HktݩKd1eجQ7~CRE~ƽUN?4|\T\}HXkȖб;tipvRT8MkY_(\wF".JKwB7 BWnhCxl/s9KJ8HH8O;&eY |B^^xDUB`E]#ȼa}AKjWgwrOc<%Upi羬-mBa?Ece+/U&oIvuȗN2bI#9c -ϧY:Vt) |qD vIY1-< 'r1R!{bQ⠑-q}؎gbO2wl6us'a#e'.Fŀ# (Vkڔsը1IE|ldY )<6* )ЕB-8 뾧rJX9VGSؿX$9&IENDB`assets/img/integrations/convertkit.png000064400000004415147600120010014221 0ustar00PNG  IHDR@<։dsRGB, pHYs  IDATxilUiD,E 1qʦ"hK\#.qAyvV> D@Ѹk/hP1(Rw B:[LMN:s==sڵkkm<4ǴRD,״o~1*kYe|> ۍ%ݔ(*4"7ᘉ SE|BfUes= ҀAzCEdBj9FMT1$ƾhBVUDŽxD{7^[h~UbsY~8R`DO s}75!WʼnΞ1M0x,`qހø= c|oD0z\^˂w`ОĠӐ v]Ĕlǹ/]2/"x7߀5(? R) KlH͢c?KP2Z<{yR`wvGн rBFAd`ߛn{t{,"]x~^<;2 ^ {5!?IKZyafEϠ# tfaԤ9<^"DtQ; +s n; k)?0Eޮ;{q eHڰfg_0 M;FLtaw_r {hpۜ"tFP\# Wmӧop7i, ` ?mPi!g㥷)`J! S%@ i$ -f{lv;F  D9(yM@ѯ(ޒ8~\$dH'<.O@,,NwRG Ie! KM;*xSKP)y~+Yz9pS~UWq!E->,'{O7ArX#(ro%AoX]+*F?K^9U rU:*# *yٲ-'ć`dV) |# |Kp؂: /Q&U FPMlw3c pfؔ< 33 {F>"'f!EMP8d򏟻I&~g b۾Jn|"/W{O܄kx#J z=1Q~n! Ng;$w[ߝ 3 assets/img/integrations/affiliatewp.png000064400000011175147600120010014325 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp ; RIDATx[{TTO+K{ݮnU{׽KU4堼 DK*IT, S1_&("J(Bsf ̙3~{kZ5,s>}>as] (.P\@qᇺ!ss2ĉp?F<N̈S˚GZt6(0“&Uy#>z2|߉h~t 7iĠ e8-^, :A,ГgMw@<6@Ⱥ>mH+,`<<&TjFZtBY^qKHtB̚&_Hȇ IӜ:qy``-AƦL}3wk L"KN6JaM!{]tO8qN#'kxNލu+u]D W- $!}I+/f" aʖ{0(o0EWv:QNw,ҹ_af2y<rcC}p5]GMn "%voMzꫫ^֖?}I\cgʱ5 *˺seqt.M*tW AIRGVfbˇP<+ݺxAhɺ+(*8<*?N ӦUL7bmO P ٳDg[_613JBiHc۝QjtgN(IHv|y?T' (£}鎔E7lxk@B#X;e!<j>(Wy쬝xA!j<ߍ C B>L5myAVO7Z-c[,fö=* VqF o,#(j=ڹ@XkNKcĘ%;,_tYj/yB>o^D| cߤ24}ӀbI]Qz&=W#)ĝ4=Xs20*FJI׭(74_Ee|'G dr_{ PlM{/`~MN Z @6Qխ7ڊzWEӃtʣ h=! bkdq:Pם+)))}KW8ݗ {yg7 ;r?]fwIva^q!5(ΟiTneľn̳[\>;LlnEuB5\uj狠Jɷ|T.ŶMǔ4 7&Z;(frM7lA=SGE*ъ:lLv޾&ɡ7Ҩ:?]:靬6sl<oA ׫4 C;tHb3EI/]p(P;jCP 1>Vc}Mt<ky&4Po\Lk(D3;=u @bjk}v p)Te|ډpp Z]Bmy,B>W.~BSU4aZ\S8O6ϠJ{i?! 샔RŎ̯Uj1h1KRΙO_$%Y]ugZ;84-"ppyqLǶƗ <}MA- ѼVC@C׎0li#x{(Jx!bj/UcfKvZ Y{%C r3a||A]E hn b@vZhՑցcXZؾy?:9J7a~]E\õ8%-4Ey+mO t?2<?HIڒ }$]!\\(!z֤ @}Wők.=9ndEbgX<2PLJKw4,uhK\ԍzw]S+N}ՂE]1P.U>:V&"UiʻUTS#ņɬjN>Ϡ a^fgpc_1S,6~wr1yҡc'չ9iAfm٩y\=)`+h֜ѿѦɼ}l zJ_v<+Zk5ͫIms ZR+מ.oF=L˩۷ưe a>dܡPgP6KW/G®x@-V+b:/'ؓ 4 d-i1{uf *'>3Tsz0̇,DsDA۵}zԞ;G{Xp;8{h""^t FeYwZH}TY"~4~k+\^dG bܴLSj}4=c&}>i+P?FYL^B(}7 \GJzpRlUí7CSPͩE Y׻](J w;`SDsq]dzp|x[*S_FޱYx}>KR}'C4;Gua 6GiN/ d |+>W(v]ϐ,KAM"]؞8!]05Y]l1HAڑ@W4'Oo\wVB&@(U26vuMdG+EqzBVbEzJpP ` rA@q (m@PIIENDB`assets/img/integrations/getresponse.png000064400000003251147600120010014364 0ustar00PNG  IHDRE@L@sRGB, pHYs  NIDATxilU qwhwbŨ1G"Ƹ!#ш;n b(BЖ}2-*[)]hvu95Jj(5!pj 5Z4rT&VKBLZ }I3zS.*{n5C|Gy@/t*`JY_m+BGUym(0OCO] |(iA x~hiOid@&7N_<G [ ,>bu Y uEg=EWE3Ў$8xA&#zx!rLe?6̙6 כ%-+CL4^A5ʛ` \Yh# wz|QbcHG&QqfyHpO|`cMti* ^}a)\~>hYd Ҧ@鸿J4, l QLgiv{F)MBm:>յڼQU{Z_}zTSDbTrڂ#h4Z󄼸.y(:ms (}K$%5 vtRg&躐77RPQ2Ԧ}]*y_P`4i7)(Y[`j|% EVz@yvnK9sGUsP f4upPwlAQ#G< .oy*-j-:q*Lf6('&VNQ `N<[o5T(5Fk <0cO5mf.$5(w  V xw+z̦'R %YvW!L"SC ]w>jw>R ER4$6P85eV.Hq|gu-1K/E&%s()5US{]Rn$XG*Jj$5wJѬz(V\ZTcMWg
    4jD(i_P}LR7RC~iΜ9s̙3gΜ[lb IENDB`assets/img/integrations/landing_pages.png000064400000023751147600120010014630 0ustar00PNG  IHDRX pHYsbb8ziTXtXML:com.adobe.xmp [I"IDATx{mGyZqY'*Q$E ʫQJR@J@i%0m"Ԣ@*("$UH8 ة6rZWU@ bO}ȿQ?P2G"\x $ _E4@TTh(]fUo(&HDoԞbzu|?\@y qэH"J"@5Ҵ]{|暾!2<$%Eg¿Fة<U {|~ \Yl@i;û4w p']͙]W DHwAPpbݶFCO^78r,X}|  <~dOþ>\@DAuIR|D/ b-V E@1F. 6 $?rD32KBȢ()ATɆ̟zPQnEA$1IaPǠ:@" N!bp:tSEqJ$A@m{ >Y4p8SG`T`tos|>\@Fj~ڄ<7+ `x} ځPhqYx= '6.ۖ #l/*Yு(|hn9oߑ_,|K+o>* mLw%t3vq2֝' 1cQLAC$*3NFx!‹ws 7a5̘me.80?"dv $X Ԍ H2C;6 nrgR<"-D~ˆdŃ520X mB ƶ~Rџڨ|f-u6_ aD=з+AUT!Cj|©ܵ5*ŖaYQuQIOn QGM,Qg oWI\kb#X[&AD^z;ʸ̓V| p}[ϫ9`bH(q%lަG&b!|?MIQ"SJ|8mTƢl zc\60)jlodQqOgBrhK$QdsĂI7Kͱapں_&54X~QT j!^ /N/uTl/r&3^; 4zK /Wj#M"5ztHATAO Ɏ@հtt mw␁>~Ə g`Ώ!4\[_g`ǵȸXD0MOJ$RTE:쇉bDD D"ˑ#y<MHd0/L$R2/+tK>4N#HP̿qsS~Kc6N;LQ?OçPfF"S`+1Y.QH"գ:#(T *nF~r6]R㸔tnu-O(FIprŧRMbTp\9ƺ%3$b4ljoNjX-ȌM;D{Xwcj>=a~ ,3 ထ&ָN*i~#W!XzvL9{CKTQI'1u]k͵UY GE?\Q/*as}3-Uxh:.&oa]{TχšXvņj2s&ҳkkAo!1KJnS2@ە%A*]"^ ^M$гkxRJ6JJONQˮ[!PfolԃPxmrhK?=qkc\gqcS8Sa +ꅤ]規p(Ȓe2 7ܑCi4GJ?c\$&2 5󜝉&8XzQuԡ/{M޿ `5kSlU kzᔫ.ඣH< g/X%3'i 2ljiǼUjT!GIgPR?0^GQ~F7=Gd!$cCϜkNѲ7 1㋎݃/56S7 ?_q6mQ\O=sNKcUjiriɯ|AP2Ña)oLa2u:K 퐙63سj7|bsIqrŸ}7Z{ܛ_F?;bAs#^W [Ԏ 3d:eom//pWdГ=k͘!'75Zg~3OõSz$}sD[2I@3:oB䷁%u\os`*)F4x֓[4DZtspaIt A IvG1pUlZNRZMi2ibO%5;Mru)N ~ɝhyVHt'u63S!<k|A3uڵqRGM?rFUM4'ڳX=qpt =&ܑ|M" . U`zUř,tM3=8R:<9RwWIu\1xF8Ҫ=+|L0w|d~+(V;*t9raWzgJOԆmH٬_Ex" $2AΘHYv21lVN.MnԟJ!!$\OMϬ7'k KcdcbX?BWNQȥzs=faV R:(3 6.-sQ1&[Tu@V?( I=K#Ē{8i`UmeJW?s>makuww'}9a+/%&y䥧ü2AY1~މTXU>&}B\0i,C) jAD5?;jxZp@W+cQ«(M@4X3 Pp 3 B 3:pi֝Ĭ\kF-;Q%Ţ'/4Y1f8*Jqz6oE3FD%)"Q@DIup,y@4G#[ 3$(%D'@̤Xx٬;Q-̅Y DsA)ū+\)PpA*M$jr&%?4r_~6*\K |ogL ?j@[9Kġ%N#ÈqxV)38226{)qX,hn*WؤZ&iءp+23BWq ea |]O++U1\@ًc\@xK% uwbp!Qivcq=* sj/gU uZ$ת,jzRH,wDJ-W5*JՕ)#΍qk6f8|@q YŎh:H`&$Nx;-8-gV) lq$3~U& F?%51 2V _S YZ΍r:S'QePZU*ebЫAJ9Ismp!(  ʩKۣZU *,2㿑 GMY3NT @(WA+q0 >N!$sWЃ<|(pBVӧ+Y7  \K-wlYq^_YG|eb?PSTڃ5#Džʈ:lvpx&֞-J,7 X8. H@D$y,=-B?@3 }j]0( zWܫ/ =J̺C":;?HB8Zn>k-{ 2-f-OE%jPp),si#ZDͱ'A7kbFF4:qe/WзQ8#X =՜XRojdc8(הV#oK2ćgݩ d[ěWD'<>QHFP? YS&#o:/̂,Qį,ϣp 42R{_4,F}4Kz]Tp,(";#Q)ByMhbT M+Gz09,1hbynBHrc+3#^'ͺ/U XI* "܅hMf/0?.S-?r&xOP={QaIdF+rA=LI0W'<7~=[=?ZĆ}jC0 8'H]NS-Ic8 kr@jwkDyak NHuz֧41ANȃ|WR@i^}-RRa#5HK5%xmNz6Z'7mVYQm`¥v )n =SS՝^pHl\ |/$zkyݨZ^5W2ġRMည HjMN۠Vh%JB9tKQ` ~v2}9V(*&vkFidE%It}UγIX뻫ևgrfH9J78&I`~_C#!7RMVٵ[gyDDOJM9!XHr9XgW ϔ)>h B(5/~h|b*}+ܨɞ)N4$nr>+JO=&,e>PE*ATͼ7+y]\8n&pRy򼧅ׅ[n"elM:ljrO}SkVkG},uَbT'?uO8]q|\ld[  {ˠJBR)޾yk +#'_ֺe2{Y%/FO:ޟ?W!6_ESEKy+?/6.}70p=9M"O*>ëWu-tPpCM^gƺX-wC548/Gǹu^<3X7fN4ɬͭW5I;15 uF$<:zCxw2;&!խՇUOLjp):3.3h."v֨~nE=ڇNYf!"b;qI5x\ QJ=`n=<Ɩ&Ft']녣o{_TҊreI91h +=vA§rae<⒂ UBXwJa}IVW2xUވ)$'yƤ0epoc+uX gZy!+ ?Drwond(_5"G&l[UvPHiR-.-mRUA6Wt//)9';\7~5_sj^&ֽp\\轚j{)\hok 15Pf{%^hJHT-(E@ g}_&[IǍX=y\mmծOiq|)M ^tC7<.cV\ZVηfIB2(V'> NZ: ۆF?7cCȨYx|IQSŶ16d:\j*ڲ"36<됶Q_N";F=g+k rzD_ \^vRn r5ɤyǼ_Hڜ lb+զrseXJweb>ذNz0kKìAH֕BH&hnMl%8Jz]}y~*;UeǕ%89FfljMZquaK\k('G2D|"^[<DZ43z"G{ O-)*J'|5~\++= 1 Q,wlU Oi <N:!cKg|[oQS{2#dȥÞoQ4QLm׎}"U@7*e٣039Y ="Q8!jQdcR-:=*9; ć,KF'K,v]g~e//."5ڙDO\82j$?<CbbTd,0*ƴ½þ;T9-"EHށ+UD 8CHR'9G]cĆ)S~awAs^G"Se_3*aoӮsˇ\$R]Th]#Dހ癟DHTU*rRwUy .NȌPx\Լ-9y7"#1>c(_PbS!5fkEA7E"U%k?'N,KNpHd^ȹH5 H$2( D"# H$2( ?sdMIENDB`assets/img/integrations/mailster.png000064400000000630147600120010013644 0ustar00PNG  IHDRo$PLTE+++***,-++@# tRNSn`L"–IDATXMAPs@ JG7?n̿œ}bwF*?N %Ge#A @ &|D*FdP.*$1mD X V> >C}U)* kjDW`7A Z[&7 Sel7 UQ` `\!%!h JZI}TiC${7!D~esM6pf>#q~;s-(8֎F`W)uzO}h ԁRHQW7 ƭOC-!xʻz% AO'"@VAt ͉%{2\w"asȄSMp;8*[pB4imP%.Ag٠ $Ai/O gԼO*7@^WtxawZ pXȫHFa(yX86@tpB0FLK@ `xVDJ`8 -@Ixw0|ZLq>S1bV]oo/'߬_x vuA9g`r}]| tOѤ"|eijLQeN1o+NRdM4-w:2 JF 47݆!4W_͸~5i~F{{"JU;ka7>沢 |`,ta|s~*z}Zc ĵ-& yƜd pQ/%s~aU ^WB [# !huA\H=O͹S}`xƂWjӡ=fMZD/Etܦ 3s4> 4ϑ(rpP0Kcni@еS`hYAz,} wð5Ÿ́!–@%0V}v,!<:FMSO1!~w/ۑGB'P] XKMםn﫩?`OjY0R2ד{O!Ww[0U.Ѷ\֬#&zr5ԵKcA5X8 <^(r 6iFt)_ 6 Y@Gϔ#Ja~8k,Ӏp'2c|Yu㤴US3`t'CL5S+)8[?`%Dok%mMEg& ʸo0U*ghFrS(PqI3+Ik:{h(9`=U`=`*Wb]^!XlRY3g8k.F}a-`CXجv jbn<[=>{)Xr$KBf T<l5` Kn}=SpsJ4 3;`K_MG' ,r[:qߐq9 Oi PF+-{E #ʭ LȬ"oĠh7@<Dg? &somUf/`6h7`]KoK@)ewCw7+]cZAigDCv'bwÔl4}^ca/l xo9nVK܏ tc1\6<<'.5߅H[(JG aP1[υLzq B?)}v |]4G%䡩dOMbx'A\+iy 4)RSֈv8H y@QeeNmtܟm0gN9p}'Y[X$:Gc73PPQ*f*Uńa  #raNig=Uӻ& n-0.>>q#đk-8[7\<]^.!,Qd~@ዔ;wB)ڽUM 5np? eUȭ,iBnYsEӻۄ<-y:c OmN#oi!8-rNrEȏH Y9>)d Z OW+1egxƘV% ~:mr}C,FaY ifXIDATx{UU?pfF@"AQ#f`fefDZiVfO+iieeIYb P31(qf{N}~sΝ;sY묹g{꺺H{gF;%,.:6`leUFuИp4RLuʟ+V5X<)AQZTyą JWFjA~ .JըQ-#wN[ IYs*T5^HDېka|RQc d29v1Td R@jg0h>7@ X<6u 'Hy7#* (p*W*y@'63<lwn斮Q@+pS5~g +Tȝ"J3CZm0E 5k 4Qanl-r醼 8-8Z $cH0hQ#Nٵ|^Lpvf9SOhsT5!4?OR<xSp }C_JT7{nCj@PF$Á%{W {л1. su1QBbȿ?ES=7Fe.fx_zi77+:Lݰ`'#e)p X̎#cG)dSw7B@?IoM@ƻ_pR\XrW~gRO#JϘOFjȹ˝ _n0v*%#`G?r)? +FP׋|֨uuԕdx=NisJKO}Oⷭ)MqW-xE߂,P@V((@EaT8GGx8[w`]Ǣj4b#e)}}~{?zsG.Q'Ҁ:5(}lObY{ssE&GFх-#=:S3{lG98g'zwQ 3'>U;ru0 B8@CnE/*N>4FT9eHf$8 uoRu`1=h:-~znA΍k6##Jt)-/G̗<ǓF4Sf= Mo8Ln^zd.#p@0ko=Ոl?G6h=5ڝHxY.\|t((H2Z'iB1'`9_ %K>T:j5zN!p_O\nvlRBF/~0AӊoAZ&VjǐG!v"RC:=]Pd>z`kh#BP؍ _lQfPKhn`ܣ-g#՝[WA*%#q'޳cW8nBFRYI?HvE/|!34s4̙ iDn_l,CU\ lzS?> tH3dZ\~qݭh#{v]ȓN νoF#rء4;By(W)Cm4۝)U!r*U(YCBp#eys|2NtGTpj`uLA +%q垠7a\#ۡ0:llX | "[pG-Ro3J9uJq5*u^1ٶ54uYre~Lǐ2h# \ԷƱ'l=m0ʬ춠2vde v2FmЋ\i;؍6we#8eChMT OcrI I.,X2s&ks_G]D TIk&тmS$Jǰ.^i2 //7"0Jrk[K<;G#1y'B;!dY֒JU6y*/_iQ6:d@nkXQiS>3ŵR:Њ"ȡA6e^䞝c3n/yd#+T(+w]AdfNFFz'ʝ  RSO܈m e>)K>#9 ^p1[/4)$$aF|JFK y yH -qT4z(S~;},iV :V3PbFnCjG+*[/'- և _,"1H+g=Y-r]?<*u 9 ;=XF#8An4)ӱ3;npa?Q)?\$:8H ({scgda:lw6/P$ iU bEfB .Eܶ7S@aF4EMUu$$$')+(ꧢ\RXC,f˩<"ᾃr:R-!gwW?E >k^CA@z}=Efl}[DzL24 ˹`>eU_d;["(!OоLv/7!|EV+'Zy>|CK\8[pUAcHD R|iBo,q2i(zyZd${TC@Hؽ-6ҭb뺺V@+6$zzAH?@=U51=To.sЈ¨E{Dz&[W(ȋ.Z}"m9(NߋVZ4<A^[(vM'i iCr3zHE0İyue0dy/q8ա-\^_=IENDB`assets/img/integrations/airtable.png000064400000013342147600120010013613 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp H~ IDATxipTיܥWuFX` 0 ؘ`cNvmdU1ILUR񟙚q%,d챝26/`d fڥ˹-lȉl~{=13ץK#2e8q(PnI:F~? tȁC0w³{5zPn ˆB!ȜV-x][a? /30 euCA `\>{|@iSn)`uY*0{+; ^|qN !߀^e2yZ&ӑkWó'p{'K9 @?O˿+}T_ c*wO=.lW`ʽ?Rr+˨rC1{/@_8ȌÈ݇@#r)* _;],L +Os~7}0b/mR!P&Ȍ M_gݸk^Nf)|O&t@g3/9DONF]& AdPoR~B$&0?dߋ`DKyhulFާU< ހJ1w@(@f!_Dv{.A1t1h F5<<b\J7D9U#TϱUv|Cb>O藭 WTEZ@]u4p%X^w2dZ+U[`WT#(8C2 ]K}< k7D_J|4-ge`u8@䪇-@)@CZ`"a  /ѡ#4rp7pKn{a%΂roLŋ]RoN @v8."UM#gcҧr;%lU/ Bȵp90WmQ,S  `lRgrJ2C /&z3X<]#ɨ+Pr 9Ʉǀ ʨ!d=6 jh?"Rju)u2%A߸p! +O=L߫e}EHe U~@`%A /?p9*%oRjȵ'ן p/ H8ڌo?:³^&x*Łk[&ptݮGebED 7c٦zvjݮk)̕-Y8.V2e 6wA72J'Z߳ҸwKmjS.vcޒџYr7}u?G&,}jݸՈwy]M> @5Qp_FVh ?*4b. WOet!ʯx&" oS5*JE]6x]޷Kp֖k;8~1Uwe]>KV~fzkon^hϫ^NoˋtɝmfX;("-Zٺ9*ٸZQT ,ʙ92G @L#X, d&dN' O v,[V 3Db5VZQ 4g2Ӗ[cb90xo*KBz$rD]ÏfNYx벦M[Dy]f8}l*ݕj(}aͮ>UQaG澃ܮDЌƠnN'<@HMy(G =GR}(Hڨ&.^rOfdiCZ ?Ԕc{|6?OY>aĨ `Wq$ThUv6qj /ٛ?tu-on UnAgR|2je[:"S#a\k((.{)kԅvĥ#Ǻ1GZ,tsd5KQe%@ >@'1 : j3b &s! q2` |s7G̲M]/N[{'.^p6`h7^lYzog2d:rhD@VO?OX޳I6wJ,.atg$Ԍ YP+v$0x*ux"fcŗ@YCDpDau^Ba=Dh0wB6ܝjh_mm:ml3˟T8g_\IYHu_rdF*R֦Gʍۑds#1'gb+~}έjSj^k_O&< EAb0+(ӥ&ftgϫ?A#Zj&D+ 'GoAOsMoF+oypcf^ _#b]hed/VĞdEZY0wn|x? ]ϢM?o-]T7 U!u>C@X<ŐnZD4A K}ߊb'| CuθkS3j{1qyg%޿*%.'/(|S<\' !YY"x_>t75ha" CG5zù~yΑU>;IBUVdg' d >PM .fw&VFPi(V|a`U*w&d1`!eAwo1Vxv/m+Q֑/A𘡘ܸ^e7*+ NL3L º_e=at@H/I&'*k+ #3,dtړbaV̿K8Ō63C۲"nuZnWRk3iyo$zmlkӑ6ahG7k8q(PơCgIENDB`assets/img/integrations/activecampaign.png000064400000005275147600120010015011 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp ޾KIDATxilTUAApID$/e,&,A$.@Ң 6J)M6Pjk*mTP@@Vh7oy73o2zԆνpL39 LL(W^"M3tNVyuFkp{Є9<갨`SV o(Sc(/@鲽yRȆVwEJw+*+/ q*/LXP8(0? \{Ӟ&*O)Փ ͔ؔT{ͷ' ,?i'h[:%ҝ(0l\S44?3'jrv}ϚGQ`1-i ba@֞wƉBz^\j/ ٫q">O~,ʡMy|ԋq ' X8IW4C:Ց3+8nGhb+Rԓƭ\o&G|SF-`n5ʡ6<Z(ِ˝ҍDIC2LP[Lﵮ4_ifeA@ P?۩Cy✸ps#(>bU‘ie‘i&ۈpu.@Ἔj!a~me hydbfʏzKՂsw?3۵V)jV͎ F ?/8QPN7t$$bP^9jUxw: Q/Dlz,%\z^h 6xgp]a;A`6"@jϗک?-}6MÏw%8ё+Hh`osDm>p6aCD V;ӧ7O.|PbRV+XC(nf0 Yb~y]A WpM(& 4 s+gIENDB`assets/img/integrations/pipedrive.png000064400000013136147600120010014020 0ustar00 hV h h&  h  h(    ;{ 8@{=y7w7w6w8x7v8@7w5wtp6w7w8y:~8y8v3f3f8w8D~l|g|?z2u.vAymiSA{ _go?z7v7v8y8y76v:~>yniSjTlWk;x7w:~7w6w8z>znkVk?z8z7w7w7w>znlX|j˳jUoynkUO+aieB{$6w7w8z>znfP0vJ}7fӿ¤eD~&6w7w:~>ynjQVcIgD!6v8y7;z,sQ;?|3u:z7v8;y/}S@¥_GoB6vU8w:rslg:zO5k$pA5wUU8v9y<~?}@z!/t)vB={6uUUUA} 7;x8w7wz8w8y7(  ?x5D|(@z 7w7w7w6v9v69x4yqn6w7w8z;8z7w9w6I-=y5v7w7w7w<7w7wAnmZQ8:xC|&z5v7w7w6w<6w7wAnn[Q9:xC|&| 7w7w9x16v7w7wr״Q"7w7w7w@6x7w7w7w7w7w7w7w7w7w7w6x9q 9q 7w7w7w7w7w7w7w7w7w6v@9x17v7w7w7w7w7v8u2assets/img/integrations/admin_approval.png000064400000001152147600120010015020 0ustar00PNG  IHDR;0 pHYs  sRGBgAMA aIDATx햿N0OB>wxwVʀDx >}@HX`J'=^;4 mSA,&c__;ܨm!I ìB[T&f CD4kG>*Lc\; y11~;((}J1Fo&_.$ۢל| 0)&Ev.F%4L6"H `Lܾ.:eXM̶Dq{*毨/2%aB\E%'x{=YߵCE}l*SޱQ0QhóWPp260vymιl)60T߽cmIjF FnIς;~ G(IGUid(;Z}i 2< ۋeL|}Gtʇ6nCm 9cLͣ!ҒpC4~%0{4.V/G  9ZMIENDB`assets/img/integrations/getgist.png000064400000012313147600120010013473 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp XIDATx[wtU'!  EE (MAa *EAP= 8&%K "-uf2Ifd&L2IFOg3|{nnZh"uPZ@i(k92L+JR'0wOl~"E5+EY s0b UGPçA$dB?1\KB@~ԢB̡6*$n0H$$"VbKL [,(o+[Um4 `t: =|RQm*ؤ5p!(6-}@Y/dhFY=!AA(e)AJh'@5RP钆x n֠-Eǟ O&z1tdբ"-(4%=rQ"7Zz%(6+ĭX]g%R .Džp 9s&FfF5KPvᅑٸEL,|M1̓/r[o"oӱ4KP`ӥ 'z:қ~ vdqMX4.dX(}O[uDXJg=]33MW`]w M ^jV 43+ai\|MxWb@Ws@k2|Ԭ@6MNO?Nسep/u[>tn2הmxNE6X\V@\ XeA3a絕3}Sq-&LeIc^8VV"[Sͅw6wZ꺷};jLߪ7@S+LZDeBG{%Y )*]BTV "K}1fw.RcӾ ]E7w}\/H 1N=1vx E|ߜo'7md:4N')]KV5<|9OZoH `Pޔc/Rg]/_ qmc+lĻ;(8=jk=*Rweg}r :WRjT,rtsk>|:D'V1Jjh` :A4'eۢ{D3xPa}VV/ Y+޷} 81"; 'Z3PmpJs(e*UR3fodB!g ΚQ\GkN\;P#cFKwQ$Å9Hd% =A:uZ Kf!#P// #r^ե#SqzDYeWy+:0 ,LϴmTA#T_}30 fG並yîs8w@aM)SyxT`Pc;ƪ ㋿) D^|7Y9+I=_a; U+_"I~FPE WLY_w-@龗hsʚ9^Bb:Jts'ZRT`{5wkwU?2X Ë `FJ^)MbAIٝp@\16IlĚS 3MI|uumPN-bHrթgŰNh,t:B뛕wO4tRr 0ɯ8 CرWJ1Ëb9ȝNU }Cltu;.y_/>b$RF24blhyyԪ̉tz MR4m^YXإvjQP^l2DA$=-鰀5jRGbAIB K"^ce`Kvk.l)4BjJ&=Yj I 3MT-*l^۰iFa~F}%`۫2>ttJt m1Sg[g =B4N"K ;^Abd2]t;tf%#qa5I0uf1RgҲ\!׊empje8Ɗ excw1ݞBD=YQY8G=#A8=G_`8v-Xצ-J (+mIENDB`assets/img/integrations/zohocrm.png000064400000014447147600120010013520 0ustar00PNG  IHDRE@L@ pHYs  iTXtXML:com.adobe.xmp 75IDATx\ipGc&ވ݈??f~766oI Z-<^㱙Ŭ1 %1a0 dNs[01-u[-uK}_VUwWWeuu3g:"QU_{/_qc>mSm˿白:0} S,^T\MW/,2@_pPVRw(+Nu(_0PoZ曾d%>9D5meU Æ-grٓ9WoƯQ][Ϟ*VkW4,,նlxi6Y 7a d&Y$*{K{~6S""}/>n/|',w~DSq.{e_iC h,d{IqYoV}$5vR 0_\#3R.sJ{C.gWh;i9!#8"}% c$A3Ƃh$=z>|uZ?%ʡ9#ճtN)q'G'ooAr2քJNh{G>`ڤ ,֢.LvV@X$?$"Od i#%d+b *pj>PX_{oݭ##'SŁMIvQkI0{8ZZf. MW˼+eR41gy9Yg|sf AVO_&:6~LK-CP2\;U(8vwގ+?_dgtJ/QenudrAz4VvJ';Goha֗\@ <4Bdd1d@ OhjBȵ.&1o^Tj Lڔ3wzl [ǯ|,xGlhbN[(Kpitj^Vy:"od<=v4}:رk짆^3l`?5|<GW7S'z"keSI=U⩘Xd3SYȭ~vvtg2^]cϖ4Ԟ[ec=~꫿mKkl{Nȇ`gk+],5IR^nD5)"YXPwF? n6`Vɫg`#s+& ;u; ƛdO]T#J͏C,iquHJŁnx āCI ?#'>wЎs&K^=!.x*%g!60Daױ0=?vln.7 6ܩiYM3.&i~R.:B1:C^L.=8 _2ꁨ7fϴ8Tuq0s6Zxy>Gn6,h : & m@SJgU]޷k i-R (&1~ 2DnUAMuPLq[2"aP 4A~.hƇX&;1 ձ}f.)'jA}!`0jiFsYq~ƚHu&>Y{k#wҕΏ-= Jm]cAA;>vKGg,H^c㽣[5w"ZM=ڔC.\dj=,/Y$pzT SmХp1nJ:53ZgکzLILT}`@Q[,R)(N IsI1eh Xt__0ymfH۹F6qR7.`;IUǃIeTR~@R{EO)\<+\d3,P&΋4ͮtlbj:@Et'N. xl!ǣb YuyTϝ12O>_:^+69J4.<~f&pMb pe~n|ص.G\Ys{8{j,TgyFQ+TcɻR)fz 뎨Vw>eSU0<0]כPzVY- , *Y΂ 464=;_qK =SASsV[M_.^tSQ]  ׯ)<R%p6ac~YmCչnD?$UH+0|#*-8tqW5Hx^Ȍg hx,0K1񁨍YɫRY}} "!C(C*T?$Xg`ȭXN Q䖅%`^$W:=4D YNT,T[ J])RhXV)$ղ6俈BlTFm݉Vcg('f`4㻌i5d 8\!n`fLzD`a55* T$xr3pR*dAO-?!ߓ')C1hEMzH Dw)s[0v?W K^VrOTx:r綃#tϛDrjh%D1hN]\=|89Jb(dg׻9C]++zSr$6;&^P7h]k}V I$"lF-S|7- 4@;֍jQ>~I'Zk4AlE2"&wR"R:|k>KQ}uW]u;& Ckd=} $v~%fmt*Dnjp㧊M/~0WՐ9,G-oK2q俄:֬"YPҝb%x[I+' =|eޘbu߷s ?xg`kب~ M {Z ?,jT1PŶO eAI&zAoS~X/h< qA^a9e}Ld,zce Q/H;[?~T8;MD̷.!g DkRl7O/4kņpHP|/6\_:@[\Ud/#[E 1¶H$Q䇆t=9g Bw7,JIs@Ķ l=ܚoO}2o6Qko~6 1mi ʎ7?tZߥ?b4 ,2EKIENDB`assets/img/payment/stripe.png000064400000001575147600120010012312 0ustar00PNG  IHDR pHYs  sRGBgAMA aIDATx=OAw{18*BhL,FcB4k;ccbiKCvJ(t( w3{wN<2LO/wH乣&8W9hL)Zx8^+pru…q@s$]m`\@@s%q2HWF 0``B+a!!|u B.͑FԓyRYu#0eqD1$yB-@ S&/sdoW1ϥۻUB 3wD9jE q6+-UJxtljՑrk[[}}^ +)"b,?BHfG索ծ9  5%~)J'ud3z0~>KF#bHKlmLiexXq%ZCy6loW 9ۋacC.x_';T Nsh7rAocWjiN,1=訴0kE0[ll4kyحM)fJGR#.z;%J |.@R~",;e+&:5:ǝ a52裀5hdh;@DHV(S N!&3cM-B1PUGaf\zܺr/sEgS22eeBW tX!^L=_o C7IENDB`assets/img/payment/paypal.png000064400000000731147600120010012263 0ustar00PNG  IHDR pHYs  sRGBgAMA anIDATx;OPr&A#n] L\L\M`2R`SJ9mIsi2W@nr _Z(^3?1 (_"IaCbW\֘q+ ndu~\>/p<:*_ LJ2S 1cvFĺ/}[9$y j]Y<,] 2_o t/{s]r!L`Qx<^DvPQul3+iv0obpp4j7fFBȝs:Nm)%`8PM}֩Hm2Ni pB swIENDB`assets/img/payment/offline.png000064400000001000147600120010012405 0ustar00PNG  IHDRVΎW pHYs  sRGBgAMA aIDATx1V@g6o,@ivzz =ߓE;Zdɋ]Bǟga#>duB.c^ױ^n/֩jJfzeC3 G؝U+T %C@V!3e^J[X3BB /MB5Y#V x2^a>Y # S}S=n*Dqė14GiR?qA>v:H5#9+yD\pم;zLA/Pal{.ɒ9cv")\lm"jkf5|KDL frW函9AbވwL*1U_xV;)LyCIͪ\l}pAS9 /^-p46ʡٚIENDB`assets/img/payment/mollie.png000064400000001211147600120010012250 0ustar00PNG  IHDR pHYs  sRGBgAMA aIDATxUKHQ=oRmcIKmDZUnZ[pE 1׽q;Dn͸*\HVAA1Q=8Iƿsϼ{}aG*|d2 Lv,(:pfte ;A/*6CTߖ[29kV4.,S$:*E#pgqX pN8o>|҉5(p9qxbvb8IYN9WSl{z;+=rH\ߦA[P=2߫ebcͺ-]SG_?:zBٴ>?\W_YƖeFhv[r}6wc&683㣸0ppBAlK+,3jb~(;n8t $g9I`fpL2%ТI G8Is[4"k l̗KYaոo CZڥ2D'It.}cOCƗ_ L<@ˌq.&<“G!IENDB`assets/img/pro-fields/chained-select-field.png000064400000061573147600120010015330 0ustar00PNG  IHDR&b@kPLTE~ݯ!`bft}fhluvx鏏789pqt124؂|~5)*,KLNț*R[Fĵ=>@%^^`yz}lnp?teEEGUVWQRSL{ikomհ{h;YZ[`Њ؞uaIDATx1 }$p*P6~5~8v`7U lf+$D.DӘZ5]xilgM楠ZeYeYeYeY0vt2X31`AI6x!-tN*b @?2e~ !Ŏ}BD_T_h;nx*L2f2@ٺ-g8Jיm&7М[29AM2YLC6>Hgrl=FJI& @p76%Kte-Lgr_L+ QJ[4$L P ^IH<l8Ւ4R<&e AM0DŻPuՙ3L~4F)N-*,(PeXB{23P:Ɩc P`.ՙ*/d2+S9b`m 3]dQ#a@HhR,%d@a䳕KT<9Ћ&gF0쯙pG,{:cFɣ9E!.YYѨ:zIoSD~|]}"8u/CɩBu -HLMp1lGgrf\QɁC˝jwT\mۇJ>\]-VeEFrr 9:z&RL4_goAL>h3ylQԝf2*5Uk̄@S!g|Ew Z3鉌%T6+bA$ू*ԙ|foAy5&%"$hIHMUrvd]O.B>(EI0d@Mg, &G:>L'4 Ђh2:sĪ |0ͺ]6x&477hW9b=UbxY(d: G k>&V&ϋe y"<j8d:4k"_BIVK ƙIEҢ KBũ T4Q+Uc\"0y؝'&r䗶 W͚lXax36aQP5g⤒&B]tޛZ]9b&KR%'E<$؅IիfMffeY3v ~둟tSI- ~u\m;IB#j s('̲4k򼰕pC+O! Q]M mMt˝rMP1%>o+J9tSI9HñddM(5Y!KIZS4<%1JB<9h``@@禒&pϣ$VH"4ǖUauv?⤉߅i4c>|$ޭ__}v k4T L`+ @Ēf^)8(̷_m#NjM6- `xl%朾>8Ԃ443}(O c^ ª?!yNO Z2_^8<.Inv"xv=؃ FPUUUUUU@TUUUUUUUUUUUUUЎl!@u'm0ߺ/  `Z@ƃ,Y w.x4L[qZ -y> h{7 e1?^":AҶ)ɜc{[jiLIdZ}zޛۛ~29 7Bc?*}Lt$5w֛IRo&[{LIeI0moPJ qCϦmzne&v<Į)*ՙD?ix& J"Pm PPZΠ}ZIBq[dRl@qI+)VdҜ mA7 1LH'|v뼃6w$I&eh=LZH-ɗZXDNEH䈱fhvm >߀Rl~^g]8$UJmf&Nn_u&@XN;nL.D!1LP5:!L*ԙ|TCpKDdITR I&$s R@!u=fVt1pɭHM"U"֖I*^.N8EEv竺&WgE ^ ~I"p@"E`7#as'3ip#"1>^\őLߛ}I&$ \f32 &))1ɵI pwL&LBT&i'I<L&H`>̥j991L`ɗL|, eb-aYLD/~݈1٤Z5olbAPkE&co:I`f/d"Т4 ]S7vxKt'1Ld8 ELΐtaq&z9;pOvBK,s"?M5?ue1x)|a΄5=I Ba&TgZp 0+KڔL6}[ D+22SJ ӝ1f}ʄ"A$k]c仹 s/Iyo.Y;|2J'Im]¥HgdA9 &v\^xH =v.49Lk<ϡgp<Ϣl**w&Y8riجJN)߿XNʢkƐceRq? L3G#SIg@gBҢDU fOTz&@J% e `ޓIL,ԇV ,9d UD fT PƶYBjػɢfz͏};qd"F B_nPmmcWbwDQ-bbeP!)cs'\LUʪ3>κ$f~ev3J\oc<QcNQt"GL> ]\ lEPDXu2yE%| k&;.^^%p\ t2`j+Q)P <.@'lWv$Y=oL2@)g4Wz_e`{-a_=}EN&~t^"_ѪJe2l}AS5a}j2ŋҩ^3)\ɤ$-53"붴XWIΤe 7ܼՖ7As\6S2 65੝I^$ >>9{02u`jhgG`f+#ͫ2q$P:~C,Zs26zetH`^۷LNyk)gj dv&#(oPѬ욍&hk2AA8w2/-o^$0A/7& =P6guPs&}RmEo3))o72|I6 MݽI ΄;c ^ 7ӍL(mzs&C )3~dB IL;]D%Icwdf 8\y%!mV&9p]LV^1cu3h\Q?6+AfıdT̎ϪT#"dGҾTp#`nH`<_DW>f?bEjWw02l_bM0DŚC&Xt%&73)*|!_8)A.tzGTrR|M_&4XA;-gҦ:rsoy:J s137"ə \njJ΄%,ȵ Fa{ Z`res VH=1x888ƾř0֋3agX/΄^ c8zq&LJ Am !`J8yo΢h#1Gb'w}:)^aOo{F 3mSp` =gqZrՔ-V5agYHvd{:z'ј٨x{kp|R,<ݘIwcr3LV7u0!jr\)$KIopKS&6]8Ze6 @dLd-q:yFj.YW7$639 G_Lp($YC&eGYQaYfd܊v{r/LXG-3uęej ulhL3͙h2ɁnF FGϐIQn]Q,-r_ pI::Z'I&WgQ.u=3Y9Ge&>03)WXgOra,3|&x(iyTe 6}LP'ؓLS&yЙ2+5c _1k@C;H b&SJ:$8$C SS,s-W"+1X"fc{O:9)yIT V7=|$ߟ7'YژLF^\[~/=^סQ8nȤn?I`S/sw 2tRf6f=@dvhWFՕ[\UkۘI9+I8lXIX{#er>z&)U.a ܋|7Sg 2{ cRp1Y-S7.2YLy~[sa,R~6tw˫\?PK%iioebq[sQ:6@ˌɮ2T֓]d:E1i_HbZ*.BwPI.@; j1}i"\M* L&@e۬qdnȌmE Mzj,dž{oƲ-cc L:2TdP "@E&L*2TdP "@E&L*2TdP "@E&L*2TdP "@E&ػcԈa `E.Le/b$-΅;}!$(J2L$(J2L$(J2L$(J2L$(J2LJ9\{}J0n;|_P}ը5"g` O9$so&QCCnW5_ݞ Dfj\vR~f|crOLԧ}R"5뽝obBLHP52cW3H[DdBN L#2!*Ovڽ\fZ&h$w^+9VXIMDGhQ ҇"9>⸝R:e9iV۰#OfvhT@GcjhPk(9ܘ~Adrd.NgL(0W\fv Bhe0"\3i69MeLd/_ȤdL/5gـ4\qdS#say"=.= Ǯb@1<6t6|2&!yn-2ͤGOD9'(yrL֍𦿗T/SL۱̎!2ͤO_`2IʤuKlJo}&Ch6: BL*dSlU&LG_M-wɵ(M(e6nm 퓮}I*R=` p``}&% n4If2Z#%.T=jΤI-> &m Ǝ_;;! /ݤRND&$N{)'3 U0/IVg$3κdfo 3)[0ȤkL&B3鑝6y1M&fw&kXl"̤CHR~n.$22u&y32T3cYܾh,&2ЧLdRnKvg <5@f*ҵME^#9/ Hnbِ4u'd,Ou&m/Ee/lo"LX20-yvU"7d||4ardLv!팁|rT&|uSg:V̲ eQe$oq iR+L27Lgr99\ Ԯq&K!#xڎykk7*+!ֹb+M\̩Vß}~B+X|A7ܛpw[^X+llQ&/Xf +57TpWSpCNZ\L-=.V{u2X`I%B^_|[B!B!B!B!B!;;w1CaX< ,e-GK ݏ0XLux0-*%?a*8$-vjnr67>k1`byLafi&;KiÂcU~Ǎd,"WVɪ02MB9i§wv(uu2MNB A'L0A̤ &s" &>,LS^@&d @&d"(>} ٹa(".,tﵡv E!tD;-;HϲL4}(ȗ=O'G@ez3Ȅ/0e˗}Nl _^&ϜLe \d(ȗ=M'2|ٷN&<T%}%S1rZjFΑXq*'ؾ!\9b-'l_WN] m1rMl[ci\ZeF!bw:gSj-1fSEifʮ nH/v' uwy dy4f{hA hTmBim|5pد3c1c1c1c1c1c1ceYZ׶Oh3.PJ@UQsd(2iz{Qx!E&=3)yސV_L i&痳)ۙt -'#O3٣ҳE)^dwRnu&' "; J44%Q V[hqL9$ 0􋔩|9ort<Йr-o!)B~ACRe Ԑ.\虠 -M )T*ki@ܔNwٌ]X{I5\P>{L3I]"#Y'/d.@P0\RseQr+3)?L;1LDm$H6Ix2х'3hSHn4Њ2uTn􀊌(pLjzfe&)S'6nџt&Ef@ l $IWt]f{UW.%ƋOړ']:i= 3z\EqM&~191]&F1_4Ɣ¢ԪL\bD $',pWgrgro*7'3Fm)Uu&4)E@:98/fPAd~|#6E;$*J 308@d29u8zz_YLOň%zz05A[+0=XCHS_gRqo($|(Gq&7j%36~]КLhӒLYOݙ ?=1!03/?6kܶI2ܨ&ŚgzZJ ;Sŗ*ڏjfeU&3RU}R{bE*{2IM@ L؟`oǪ A`t&,9' bG8!|$sYXEbf2kyɇzv`ϋ'mvx9][+'a;?{/NWD\`[P!s jU*qS%9Ӱ!Cy⪛*d꒖U$2A,8 ޸Es jaB&HK5*;Τ˿s JDblӶ8|E?"m !0ځDY(IÖiUKUUZl:狱k9'{HM&/"5H"5H"5H"5H"5H"5H"5H"5H"5H/OkIθZk ;h'Wט[]Zx|kɫ0MDW QySPُ i `R:؋E44GW4en<@@+r)~}DտŃjbc~kiSt[z(V )m IsYH}4к&Q}5I(Ҁ3x/~X^V=8PsbMmMRt4-sz(@Nq# 7淤Ɏ8LD'G{Ԅѡp?3ZlbVF謣&Yӄ4ww"zGo}߻̓6;rJ,ZR&ǣ#5ĕ1_K(\QV!&WI*SF5QGBM&[m"5d8? '4x6\"嵸|!Hi,jrBq M XHDZ\ I%# &lv:Z:"2hj4 0:#!ݔ /Xz)Wdj">0S0u/i&nVVKDp^SS{Ej5CW{-@ Mm׳ kWFl"F-I NaaDh@5 Wl4mdMp^0*idrA MKb0jl1^$aiyKkR̽X]jRzl]Yx は&;SD鑹t97р `MtR&u@z6X)`z/nPMr-Si̜akb8ydib1_ 0&zeT,r4Ql;u4 nDkk^D}"GwW׊7ANoZ$wzO h8tvSiԤNc"1 |D9XA4FjRv ܘ5@q[e!ǚ'_KMHӸ&~{;TP+)UZ{u׳jeI @^Vkx1ƴ&9^bЄlUI&@" Mr QM^: BR_$Ow8qόDh>+bVi"b ݡ^)5᜼n7ӄ݋&tӚs,I=LMNc ki| s5iX`M486Zj2PAv^Mh@q'}48XMBքQa& &ܹPc$>:j&Uߋ[ C&F=M3xڰM@t<]k= _]I6 D X$g&5ŷ /q=MhrNSxP5y t41h:/>lMx q3t0Ulގ$+I(Ф $f.[&ЦׄΝV{B+&yh:7 <iR<;;SF|?9|v2ohė_?4y]cXb(ۋ E-0&r\hʓip )% 5-3),MjMez7}$$M"ܾkYmn&66ˑ |MF,S_f~oqUKILpt{qǹxO}M.WXb-_ gɰ1 $\Oa* ƭ.V M߇iX%7^ܼ7G5iR_ב޵\uq9V!D@tipxٻJonT*mnpvmѳG$ж2 |j5QKج4HiX6f!6B+}!}фD=':{kGH k2ZGjtɪٚlW>r5d&\H?MX!N/Nsv謉(RX6G9DRN'UH(^ɹp$ᑊ԰~6Dw Z$T9;p ]&ӄvW%d*`Ma&^Bg+I2RDj"HM&ح  s am!mD#*@8Ʈ<5kd"D&L8~&6]ڙc.`Lm3jcʚNΑ +km|y]2aagpzȄeʼT…TEp Ze~~828mq50ċ̃,0x])Ƥ@=N>c""""""""""""""""""""""""mߜs◼:.gWjN ȧU=ud#I\TT=Ll$ D gt;މHp[G,3"VB>ߓI$>N틑I31儯RnunpnIZ՜ //Xf)e&:Taƌow=#;eهM8 ;13w$(A8d _h y 9.p 9tLZIV&M0=D&=]C0|F *<{00W6db?I,\8uzA0|.p֘`n ~/f2Ha,3 ,e쑏a}tӅ fdrapeR) Q{N]J.Vwc&|X40D(Y]< ZQ O]$w@dۤv)$K^nޞwW3Y?4kjpXd ُpݶ0ME~gf?ʌL,sD #ͤAf7A xBƸ330̤l\X#3H *`uv1,AYlsX)e&%}Po791-woD}ؙ8s*!f@XB-Hke}}eE$_ &8)+?YMfb?\_epFTSVg-[q'g3\Lq&#΃&/ ǜѓ#)O$ePIfHr혲B+XL`b3N>_d.#pQ ϱr0e:N.Y+ߺ"O&(9ق1"5'Z7M&eCXneҽu7Ds2QJ']qrv x+ǂL&e>jyt*+8 Ա Kx#&OLex1 ƛ'8h6굚Ѝf1_@\32g0+Q$LMVg {%LƬh]6$gҐ-*60wN3oVfu/qE4ə02ů`q_4_Sgeq<͸mO{Q%`nWoB;ꄙ%Z-K\ Jae'T݅Dz: 39޲wACq&MTDuǨv!8p>2f/ʈdCs%O#敼_ڵ[A%/G%"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""7NOhtavi]W#ED+bqYVieLkm4rɫoգʷ?|۩,}h'*t9RAR6gb̢E- -0`}G9}_z|d_A?.lPG@?; dl`LnȆZa N!"+҂n:cBbI.ͫ%^'ٿ5Bo% 9Ůlng dH~k;i~: iS@'Ĥ.I^Ă  am=u AȘț1'&Iry!]ӅZ:hn{==E뗥aG"{1UUdc2"ŘBQezޘ! 2DF v1~Mf)x݀ئ pd y' S2&$|}ҋ?4x #|j }pd|l21)rfe.W#y%3b%Z_ k)&z0>x ܉{ bR,B:OY6&a>&%rM&&Ƌ^^<_\釫ms#ᘌ/r1)هi\Nֳk^61$Ea69bmU;3/#mXft`AcRy`#F\^c|q]/, ڊdo'Tm"': IV;`ݘOzN/WތyeKƯˉV鶢bLRɎfҰPJR*.,ݘ*A=]^V7Kn-^H;uEF8GB=ߏ8^ʘ h'C=  #hǭQCQIf21^fCYNp ZrPTuTml_ {?e|g>h8&%QPR[0~[400!&,gb"upᓇϨ @gʌO@O3m7i0d?H `b GHwmn\jiiiiiiiiiiP0^%;.iW,K\G^,8%wֻfEg2 #DeLJV+E,Ȥj]`r7yR?@Gz밒/A*m|^03!S(%l KkjNLWq0*Xv]xL5u&dX*>7Iug\3Ac z0zkW nGS*<!z%103{z|-bj"1\$cq6K{yM_#LZ։dFoerhoRCd*ij7Sbw܈m&fvLD71z&x{%)Ic)GXNd~{p#3r *xŎ'O#{{b1`esX,β7DUcugAÏdT% L7|g=0R᳛TANY"Q)Eh G1d@i晸6̸2q=2/0 ĩ "|7Sx،8'ΤNt&#P0}yO*edr0;L y4P*965GtW|[q&+9bh&r)`h'~&96X~ElI"|g`&^f,23܅Zln = FfS˃HooS{gbbu9YQ7qnΡL 9yȗy&qZ\eY2Dɲ0fۋ!Ɵ|wٓɂѭ40JISKqwfu_A(76餫VHYPL1?Ǐxɬm.Iœģ$ا\9r~V-߅gT{J&lhgvz|xͫ9{;)M19lJn*<[ &9_-Cr\%k aqLB Ÿ$W_w(u/ب!2U+'`M칝1^^׭<~Q $*$ \c/&@W&KgǭX\_R`WVy&!X]v2I)Cvg3x{щ]>Dh&'/)/lMLA}2B٤ U_Fe".@gu&}ևUe*)L~~L 44E&Cy1Mb4ykZgc] SU42 k|r/.d$k\ Z9:>nͣLnO T D&RR ,KǾ|6%.xo8}t@bJ(?c z"8ήLD+,GLuNvv* Ovx/eLdg&Zn-qRY+5ӿ%>ANJ|/k!9nqԳʄj HVL@&LJ H]h5(Ť A&J&K&LL]h5 A&N&K&LL]h5 A&N&K&LL◽iq8|L=0ǖ\w;vIL'}.$7~Bͯ/w~Q~;qI 4]}NˌX"&S7Z kdcC (wm;0+';;lNK%VUN>O͓LNfIz0/#IjβW93OMWr]>ug5خ u%\jL5%gvGa/˜{§m[r.>ވ"&Uת UfI,0JM8!&YŁ~s$ z1'ty8?&1TrW g|JnńCYq|oL>§ Q4]ϴbL_ݱ@@Ѱ,,l`` ʴ`a490{q Z4LiLN+c&\dRnķfr{:&[IGdh©[Tn؜f C5w=.*欛teҞ$WeeRW&ILIQ&u }LzO%Edb3eFl1G&ᇄ5gǸtq4p 8[x A&0'X%XUR&6\P6[x A&0'X%XUR&6\P6[xٳc"b]#kh  dL j2  +i-lצ&޸ظQ^PAc֦I?8쮫Vm.=$/6[A!x l&Ф0 `FC@ɣID<ț$Q$hW+eʇ],ksVCɲG [(IX#DDK0'p#34a }Deyh^',h YMXcMzIҤX,N7'ItzWvIq?$@jU- "$"Dᐟ&hjRF7_h'Ij6<(&4 0빺 nt56ϹpkthoשY+:e4ZfZ.'Dө$і8%&*H4X%i2I^̩IhlMz5"&6 W|t5)94(}b!viA(vQ2'qd1BƇyD(W[O⬵0ЦQi5|4 a& aN1Li+7q<$ɂ&i&INCnM$IQp6_XܚPɕ{m+iRPq֤%y&!,oWFEI~2xʣf*UˇHhtBap8jiOV9Sgz8)/hv& $gJΤ|,e+4Y&iMZ٩Yܯ?!vՄsdqy&׶-qz9.Wl۷w@ťIL*0b4 b T_(7~5Dx4y፨E 0!|h 5yK$WF<;_KZbMa~MJ.n+MLvܶZ2@^EkRY!<=| j8 ϋ5pO皈vlVX76\7_ःxFJɣɚ:T2RQ_MX&Ĉ3JoY]kMv'ti!)3@ٛI&UadC xF~?w&9X?Ҝ!6.?&_5 -"$2.>%]U%k?ǃn}M]8MMyCȜp{515i 諒F[Nni28xG(+T2ʼn &o' ໦9%"4!mblBC"DB`Dv %N'0?Ylx=$Kd+V  Ѥ1fI^QЄ1 M^;dAQוn"cS&kO&Ȗ_79+BڼݤM&#k2fwn'viL9fn2>פľxnɑ^Tgwl7 $1 je7M:UvT?x?K7p:&7 Y|69^d٤d>-?j(k2SΡlFpp9$Kդ 2+OƊ&!N,q ib.:!IgQ4p%ނ=& g. t-& >HM`׽bo&04ەaH 5e"֑../ENoʶM~7!/&.2-zتΚeޤ*$5 ܶx5у섏QEU#^ZMØ"ÝWQFWطh5!K&$ KDn5KVc;]q'DÂu32`Х cZs3#aQq My-4>Dф$ ArR Mm}4?/H@`~^DESEB"Sy4O9Mp 4m#~.r.cdA4?=S&h~` ,G󀗳IMRkDG?Ix KJMpSڙ.>DK"(7 i8Zz&n^uKdR(m˾rCϟ_'A73FL&Y,&T,| 䩘ᵍ-b(8/T*"K_@j.XvxwKTjB%Lk.X`@ E,;&&("_;w{XRJ)ү|ל<ۈ<Ƭ/ݶ'Wf2ϠD!~Bo{8R>D .bP aL&ޟI\<[Ljw,C6w$br m?YH Xؑg@#P٘ ~ͫ|C1iۅ5+ yf۰9 2DIĘć4ݓQJt/6y\Mଟ<6 n絿@RS vdO:͊(_2-1H|NJm\mq#en.0ތʶJRcxAWhSF)EWVKhMmVGEl7 ۖ2d!K8FeJzPŘ%}r Ltqq:ۜdk;^'!3Y)mL$7YAr^ۦɵ!b2b@.ɮ(jL% ' 0a&*u^T~0%C\XY~T[ i`,`l?֯J˜)Mߛ $;P՘Hr9 i$厑dƫUZk s'\u8~A4*@881*!ٮh )Kx"(rL Rb29f` `>9+كXڼZbsĹ>ORQa ,u1-u[n*;f> y ݑ bJ#`Gz2Goa !Jůcr [&t@X5 rڨxđkkXk]d w=6#MzLfQƬ9ކ;,ocl2%v[?X;y!Fţ/a.궛x8ޙȵ S(rLIұC%=grbdЯI`-lT<ɗm#OƬ i%IT::R^IA~ %KM(m#%y9 @.[ IthiALiK=s|nnV5# wr1& z9)KH#]˵MObRAiG g-ڡm}9HQ0&,m0\E PKȥKVA3O3LԳxk ۖyth;"d6&ag1I("fxvj;2V=z1&Ar ,bĭLm8'.lɮ{uvjT(&k)%۾Wm9p+ğܺk-.R2R%<) nW[3]kT<&M:qx? ӫ$4&JiL|_9D)RJ)RJ)RJ)RJ) ^^%O;IENDB`assets/img/pro-fields/coupon.png000064400000024342147600120010012673 0ustar00PNG  IHDR6RPLTEll(EIPW`bfQPnnut/Hݲݷht֩V\c@TќppեxwLRX΄aekᬮXgɿH[ʹegk|}QX_릧ssvy}cqNU\ӭڲdddӢ̓2KijkQaÀlj~~wÁ޻Z`g{zmsy}ņmoqدȗsx~_m;P͖`_8N$$$֯~q|flrlw ʏ\biYYYJJJDDDVT...:::vuljtqq&IDATxڿj"Q@`(! b&a  6e:ME_tYZ }8d_'63i+'W+Ku>VE+9Y}DuaUdy a]sbShNam4+w!,k^c]wb_nDzYwYz)a~cE&ӝm/߈eM궚zT؎Ez/Tzӯ!*җ.)Vomc:o_7!j\N*ݳ&,nԱQH!ADR؜\*$M &e ZH7Aq<W9*/q$黐w_=mc(]K:d7E:O^o?fMM^^I@XXej y35B*!7鶈H~7rxEME)>7qŠ5L!Utc&'#I70kba̒u!>HDN}!BSIǟ\[qAoBT3۫ B[ d\;K7E'2vN1! h2Y @'-u?,dN!J!W6ꉞR9IbJz_hO!IsꉍwK\z͑$3q62Mk$c}D{e Ф.Bgқg/&tIȘ kR 60N 紿;Rnן$//<\߽iG7Iϸ0rF^M:Jnp'=/[],R?+qqpn=b셛MƣKR6`?;#@Ji]&zNHE$$68 #쥇5  +و; GMϨF:^pS<}fwfG/> / 1 m.{Op\EzU@t$߯W?ݺIG1wߝQbiA&9S Jҟdޒxã+Tpksw obĴÑU֝ۗ⢫BjTѸG|IxKI2xgW GRT OLqIHU\]SӼJW0,ɯ@܁ͬ+A:bAH?PoELovQ}?x[%qW^'=/P-H2.6 ]4fRu<-+cZ\f2o :kNB |Ap#t8NQj %]Iֳ4plr9xx_ ZbH_y 1Ǖ#3NSX[c9o7 |}\xqǑ},HR>.qHj7Ǥsǽ?j.^V[n~/Ż=&ϗ"1}t&H aJp" ܉{pqѕ mfI12$]ҁeHːtI!,C%XK: I7 =-Y` S$- ]-wt`w_L`珞,Nz!5 NcF )+ L_@KݘcбwSקo&25>+G]O'wT+jdJUc]=|FŨd( [NF`sa82L>>pX"⮕tY5qd% ի!ԁ퀎1v:/ SկlPHf5 Y>v42Esࠐ'P (%1c|68}*kC))=Kz}Fw(I^}|ڤy:c |MI60SԚ*9K3]'/Z]8w 0<EK/R+jIT%}-M}VC !)z;Gj'.WN4ã3+3-Z=ֻPs}~cfc?l/pNS'ݾ)0CR҅0_IeǑ[tds "u)vPhŐ6TK5 sֵn"Cʹ2_NtCz% ^ko_k`xnr}cK[z >~"3 rk~ԌM7̃o/V@!ӭ䥡zX;hrYrc]˓;brS1XRIߌ"UܰOUS!Y>P3G5ަ(Rq͈WC܃&G[<-5gو1&\&R{w%h>QVu,8"FJjtޙAOzϾb^hNz$LuQ~T1cIAK_P2jMeᠦD`|OJb댟춓q9w (u.zۃ,}7 $10܃O佊Uj6KnI4hۂASK./'}'AWh^qXW<.]2o?q W|H,pݣOg49)U?(}z+M?'ܯuk#5IoUē}ɞ@ץwڕE7I!m~6I,MՂXy('ͻV H\9J\tПRt:4IRyFIWDo>83Vw`M4ou$dOmIj3 ;A5z* -][R@It:U]ddjh7re2K|]-)S"PFDSGՑp'Ϩե2鲹L9Dl=|uj(}|ዑC7+q"ׅqQ/=Mw7nַ$yM)}h/o=u{/J߁ϤL{UF;ݞ'xQ?tMw)vhUOꮅxIC *?R^9n o("J'KNy z(iab:%Ҁ@mAlU͕~ 3*uOz;œtnt/P-J+ ¥ѽ[u'E˷7a3{{/\GsS'EN)u{:8/Y_UҪWcC^[@,Y^ٓNeHu_D Ik.\wOhTg_3+A]Ĵhs?,5ٮ&喸h)ظnD令kt;UQNyeI~X ճs>uJpbOTɳШn{񈴑dX@ն Zl7mFQ4G]*ӲSPK.dW;>a{{9JW3@%NMWmh J!FLJn~TRr .7&i:#7u#]!{*RGU(d71۩s -Gɩ)Nv"asҚu[VJo8#mF႘_8+qoFI;|4a(+=ԛ^q+p]<Ȍf* V]?(va1jcF[3) %J7lR:t10ϴ)+6!N*byT^omsߏ7W-"ZGߙ դӄ(B %q]:JwJ9 TF8'[ae'Mϻ X!g.db2?1{P ::tPu\89RM&y+(6Fۈ<e^+=vqF. TSKNv"_ Up͚ pނ+}^Tud-Kݦ8f 蟇~ҷ&(lȅ˲^+P1")} F_)}j;.z/JG5z(].'U!PxJ[qƒ xsX8;춢C5xw#l& p]uvG64b2&?"z:7kTjq-.O]O(ϢtA0&F?_骲[I k{Gk#VzB%}mXUa"`RλIElR>& tg 3EX7JeSnMr;GxNiH7:ץMNנtCQ \+|!>rNԔ#H?чʇ+=q:0NacӯOnsƪ:+m*D*(]|T1FWFIұZN-8\4*} üKJ`~;aWS^@'ܡѬeÓj=S餮gp՛JFAc3/㸾 (7C.WőoQ:du4Rt31Q/5JnjNSyJ7c}To+(q"/BǧQHFph3+KNİtz.{,hKU{ 2ƽ?>Q!{Ph8ї)\nhJoKwUa12?*Zc͹a+s7*}g+ݫ*;=UdB{YDc`0qLTRMVP@J7ucJ'mЦtt&p&fE.{gL]aՕ@ Y5s -'S+uïp^gE 0ik]/lJTY:,RCYJ_eYx;zSgBʇQ/3ڦ8zެ~8r*]ԪҭU&+tJ~6\Ujnuo_L!X5 g6!36#AZQvtj=Wji{𬺡d^ZN~pY+bJV( ڸ]Jҏ#K?`P=FuFvaA-We᳋2Zo)уu`JԮS;J:DhE4О>Чib#k(#]$ }Z2!&/FAɽ4 oA??|I{"UU|Oގ'%s:!{V*/n70ht&eZ=d˝m @_(]wE.e |D _Q @ۛgcY7yI +$ynIENDB`assets/img/pro-fields/action-hook.png000064400000102350147600120010013577 0ustar00PNG  IHDR,Nlx PLTE`bffhm~prvmortuy!ˍ~ۛţߨwx|t}؝z{튋Һ䵶ӥ567!Ql7]*)*,vB[\]zRSTABD|X{:IDATxM0aK^|9!Yߤch:DﳘdKl2>>>>%a)ZբhXW[C֏1k| bV"` |MX.icޒ61{W)7e~|F-"GS. 㰃ZǟԤĂIdtQ_$aXrb?,"ML c8b,]zcWcYϙXuvWUfW#G$ޜJ%vR7SjLE^XEDBՓTJ_;5jjq^![e6*q!JFGRW2uAϱdy%+r,,7],;;M\%sƟ{eԵY'2jԥlu}Ţ}ѻX6u/\cXYſ+`-m7H1ݤu VYLI\9&C,q$S,gLꈱH1i],_.tEC,p7uMJ:.YBFi@7XpЅt cMuvŕ)`-}Zy]-;q'=~D?OH,2k2tZXRQǧ8diSǂy,aD8_},Y,awgWV+DW(`u+o兵V]a18/Y,Kl>KʝIϷVb-k^wRR,#z72,ðD/O$ęme6epb9gc92BSVkgBW[>. {3.8BRYׅXNXg{cFXz[6bxoYYuG5e3j:,}:&ac5Bx o=iCQωBjܜNvA&_{{[::Xՙ|X#-Oc1c1lǦp:G 2 g XqpFEF8v3n Ǝ{ceZ9vkbR1|ǎzXCb4=ɸ9q~bҚksnك:}1`堳TSVNzncUˤDtFHDWX3IL,b,Z>@5%POIE9 QbcKhnډEaq\Mލe\Xe[#}%NiccGT}kl|cbQ6c!p,, Н .t&F;ZXs fBDI怼'}XXtXvD_X(v E;OgP+z􉱗$QP-&% G!@t,I+Vb/lK0ѱKKʥuW3Vj\cUH;$gױ|cd/N种4Qo6':>|R)xhkb%IHS\M\5( *)/y,V(}X.(VH*ei]{Ɗ;0$" ԲXbFr$dLdx.cUsa BB3KWc NН^ct=ok6J[,ŕRYlwg|ֱ-ay,vL3,^fI杅cN~J06\pKc!N@DJt0rP:Qˆ;X "mD6(vȖ.Y/ޫX}X*ǮH3X&;X# ID ז7Ei,"Lci{h`,zYljyK-c&+54s6*e!XhӞMҋ۹%Q{ ֱ #).Mzd|v9QUά[݉^%6 5i*Y#o,iݾM9p'Mb1qw4'u*HkYo֞60J5V^[ak/z3K686˩0c1c1ZCQ'm Vj_U\kvA}&sKwm-0{;iWz0%^/9vLhZ+k֗jٓ`jW׸]a~kLe{=p_ -,=pe?=YcOHJ,  K,X!Cb叽3mN(b0G B BBl=ff>٠]{X  d  d  d  d  d  d  rz^/SʶS;=C`:nOՒ`۔+Ŧr =q;9M~ٝ^m[oާekw%R+`iRx{tr$~ԺD[-Xv:bQ2T9xg?Oȥz$dߡݙI%zbTí…lii:Q,fY|D$R^brMe" _$eeixdd֞xee^%,#9pt3[KG'Km˷u-{yyx:0;1FEDƀLKgz8),ތmYzdQ:ʒpe`H"oTeMWPKhﻘRD_o0tqI\PbD/.?v^W^ea)i$,Z' ƌM/vK ʓOj s#H-o>Ynal Yъ݆O2T0AVkENL93c'tTZ=v@]y4{dQ3ZYe,m*ehpMYNLXʖ;~,sgJњNRHµE:,ş1Qv,R%ˢ4)Tg3]e EaenK,&#\A{p]15#o"5xg #pLF,3(,?v>rVR"C,rT}b _L&ʦYY̛ey-%2%y ٴa",RCAdgnjQ,# 3 jeiå)A9yY9.{&\XYl)9>>DO0ʎ%\dÑ&@bםY% ΗE,]6$FEe1\q{zf,xkKtE`0|uV[3kVF,2gQ!ԱJd'D,-U ,IUbx'!,Ig'*&a%3^,v¬,vFdgn/jYpURN—NPK]w`Q%oI*K:զ j x$ Gy0+e9d7vPW>YHg-,*æ\i[ꗉ+ʋ2^o]g،ÝS~ )M1u\ ,O!3,qJ3pR\нcW. |NJ@7    ~sG-mCa+tSnv^M\GX?m:(LpЈ5y@.rrH8t$H,БX#@Gb::XL¬l0mq*;.mf^v+s&.o ekC}EipUgvTüY[E)jUoeU[J[ֻ,#U/cXy-02v.즊WSiyh:켹'vMg7*tê2w3mIwyiyO\f~g>eɨ2k jYģE]>ڍ"mƲ\X񽨓|!:z3|1X.2~rb9j|ɼkƲXc.aLǡ(+˘@P@H)-X<'9?׾H,ݿp\unjֲ$⍰\7V6=#uY)v1 |Kexu~ I;Wπt¥:)s""5`Qf|%t*0ۼs}Q16^;vRׂbjw3PS\j;ֿ7|~RJ1r($TZqkZ’KK (t6'-w4OP},?RV?7u < /{݅ȜG"[@܂,!HA/hlcv ZQa @Jo*W\FUBZ.7V7rqnV;>5,^ya[6 }P7M ’4ʌz y!G.pܴAiNccGe Eif )/-?24q5ЀC4;Pi(&~9M9#E{'W^7EKO5]@,5Razw+ )KSi˜Dє"1(r .Uа D" X,-pUF [-6EpyIr^HaЂE~S,c< ^5Xi>yn.H$J`e`h{ڎ`cS=vr8l+aCo4 ]GL3_ Tq,zKOF>ܹMÎ u="Uq ψkIB/ cbiUfx!w޾sͨ *=GpM?臄`1'z [X4.}z&q%?@%#:"4FQb&i-wWbi,cT\,c&Y\Ye{D>#KD{#fqH'57ב πX=i`X[G@fsp4w}zv_;`yy`_86z,~vEDrjK;3eȫ@Sz^TfaK~Otb`L+XB`CT*;_p$XT)򡛷'{o*Qo,R6osYCe\ϞټTW^Z՞>g$OZ@ca/O\Y]2F=l\K4Iӛы$ SVXtrhsli2C3LuBK !S)zmwk,u׻ nLLMjמ(KcQT^Imabk UsYzi;%,f s5n>OGb$h]f[35`+O"s&)BXѐi̢*XvjBG@K Yvey X԰-W'\ ,^Vx$߇ʁvQK _\boMpo Pm~Ld5~*.檿7~$<`Q,=b5`yc[0/:.1%]qNˠc3O`Sբ]7jK9~MignJuK4áÎOX[VAYa9vgbweSϔ`1,?2"nQW9X8bZ}5JXpGB; y XƘ&j`K!*rR %-r{ %8; (Xф Ņ |z*-!ul,{b Bǎ N10YBhVHk,\bbхPHQsO=Xh ާ+qlA˰zU-"].4Wv21?}ę&xx +dj X-Ya"iuQʈitF? ٧\jwCč3Xx!k)g=N:gӭ[o;6'XUەS|RΉ xtdZ(cbo=s!v5aaIggy]`!,6?MX :gG>b((W 3 1矺 -KvWϜFDjeHZ{̽5μEoGFM hh Vr5@ޓ?9>T_ 0R){A1my&-` R~}2STPˣOE +'O>V?K3eٶaLop181er$]WUT7E7k8Ӈ7k؂Ʋ_Ō_œ4632 ?m_hX7;w D1`S#x~nIڭU+"-֪T{DD[LF/>0w h9m9wa<)P ZO_ڗ$ahvuoymBNF5dYy4L-egK!eCycsK0#yIc߮8+E5" z;v^60f?BE mqf(F82[V-/B\2,,\ ,!Kj`ߦEh|aL?@? 'UMm.2i6+3/|sk5liu@5љr%S{_+b%SvDmqmM s#5t#+ ` V<, ^Rh 4jI]'{Vzsz@6Nq>R@Î鋷s9UwjZE/dI&~^X~-|ql8>%o^Ǽr1̓\gVuf37zkKbNԳSPLJx.fnyr H=^C8yz)7[_N^^yA4gx;8^KbeJldx|sK}mߕz&yn R=bq1 `P3i&L%H{T{*0g\mwT]d@`O$Tt#O9%4W_RK@L,Tnn=)՟2?Sy?]y_-ݨ} T{طԽ@#HO5>gtW9gaP%B>hZ)p9g$XkIƭ<W.Ǵ K RRv*1?OnO_;%EN:Ea)G]ˍ "J2 )ٰ]e,"M!%@iNdkS@ah zVvCK2ni HgwgaHUdEp`r bqFd֯ WU "X28 uX}u2ֆ)ʌSr6g?ڲk!fG b${dI3nW 6}zͧa^5Rh3,Gtz.x=0+ Bc DC ,cS 3{)`C~8 `a@=wMT~(0ڠ,_;m{cIT.#=Pn_//(72me<cgʜ{Cڭ,6/!ϗvCK]m`D١rۙJk=@K2Pߟ')Nn3J ~oiYX5p tIUy&4æ2Zbٱ#`U;6T#RrI uUr/4kbP tX@0G8/hRûaʼn&LUBFq9lܾDdRjGN BZjKh2y,s|JK iX~S.nX akK`iuor9,wBAU_Ԭ~G;#68\j}& `5`L菼Uf%&@;"?7Q՟_oԧU j)C赸n|~-RCEm@RHnGc ܇?Лӹ؂hPbh't EV5D^K+]_TFQṭa[S1ލF7}ŰWv`Qp&zo%EaM r x#(CmKDa=XvАJ΅/VaDZ0 ,#n׃8YX6'hyެ%$dž,ym%+iT%X ak}+h^ K螱dY8GRɖneZ:,x,(Q"X"h*A]C@>b4,ke , l0z JdH+JLk`qj,@oTFX aSSWS-Y=Ks'v *sҚɶtՖ߲ƔUn  7yh(pDAI=VҫlS3&25P&XHp٢7'/v %*v?f]J[L+HYStXn>˭ 6|N;IF:S= {4iXg ό[xS,k[:^ћ9X-QJzrA (m4Xa,-eBC,I|Hyo&i+} .VOSj2Ir ̅3MJ5 [:@m-7?!PcƅvxSZvo]+`ќA)dƆEN0솙`9o%eX^L,̴'2w9)cc{,RPW*zoc/m۶zӕdx'󱐞Qš +lx{Ɔ/p,X(dIa Q"maGwZu1\|, NS>YX2lZE4{ Q Urf0++ Ep2<-9ǢW)wmSMwi.P>Xt@S.'MU FRX1k(2#GEs ii@hvKd"4X@L<]>e5Lf0@{3G3,~4OvJ{vfT_%B=KJ=,] K}7oZ*k%"{W4tX aAG`Qig2JFW =O'V+"ȑxM7zK@\DgkKŦOݿR6CeFr (#>: K 至0|?,J."{ԋa`YtLʀB3T/,|&UsBU@͵nC?.} )aQ1f_?~s^HVr L#`rR*)hPH~Cufp4 EVe˶#~8Ss&.w{XJǢk%)8ӚiQ0vIj;q,bkjIBWSzȡ?)Zy4 b[P6/k۳ľz]WNm.}^%2gM.m saq~?JblQO>? B/,`*Ej@h[|*>O@*E=Xcůkrgf{1Lg-+}F\Yj+UTRJ*UTRJ*UTRJ*UTRJ*UTRJ*UTRJ*UtݮsPlnyE']WM&;9uVLmvWn쩙tٟn`WWُ3XsJ'Nl.T=I] !,S8⵬H ^XO,{ktt6Ba  .1/罰t_&Ϋܛ`Cu s]_<0YX1"X4'aO¢r~,F4-r;JkD]/&Xmذ)RآN579=v~Ž4|\!JlQ xs#Ij%6E `+wt`r:q }.{Yk^= px ")d0Uw" >E}oD ϼ15CpJ];%~ԃ2<zC4^Trзm,u/r'(c_ ͍A&ڽB;~˦MA%$#`^ Wsf8tDcQ;KY,Z`>PπL,Tv58bQj9>@U^A{ =HѢdT#BZq2'qK9!X 㯜揂B^5wI~Ѓ4naU$Q%8r ϒ7D'þ\/ -p,wbv2 34 V9âñCOH)X-g}gt6WIނ)5rC>4*Aj` e$k}˒ڹɖ\E\QGJn՚; ]#Cnރ40([0#,zNOR\~vΗ7@!?f^ z ,B_;qg5Xy-& {WJ )VL$ Conxa֏'Wl1x :#HNSa1:?JCZQd(,>t(j_hэlRW$VkP3 ƻ.<vMW<:-PKyZ'|zsR?|Q##z$E<=4$ơt}hFZQt}SRMvEj\[9'̝NG>c_+8nXqn`%>eMtX"GIJ6 ^VrOh3,mѬW7:j2Di`ѝW7V`}aQ m_{L?:飍\ 1bXށH6Ӛ3#pr;{.Ix|Xܰ )^@ފ{ %K{r׶Y*jX҅˲Hz$9A vgoB),tlEoR5*=E`j` f]b,G|c J^;&XA3@ˤ3VEsg`Хp`q) !!FX1%Y9Rp-7P 7C "xeXaY0]&Em,o%o+;.Ew>sѓNתOnkI1Ll֎7W̿7Rsg`ɭХp"*2fj`1 KRıdY_QOk%+,t^i9."W.B S`%o~9UzC:8*e,u9,}IOh-`4OjwЂidclL$zcSsaYC,féJWsNͰlMz=_2i49eRڥ-GHp$ G%"[ǧ&4}ڱۂ/;[¢;OtdڦjvMPȶ 6J>MM%,h K_K:,7b̩|ʾXm[,Kd'aiBhRVrSNbv),]\?r8BSy%2},>aa|{E`Q`? SK@oP`p9,5r 9,B3Zn:4/âeY,`1tb2#sz9,>?з/:g !cބ*}= -GPm+^ۓ|́Br\X a*މ'&Xܙq `X&X<_s41qXK3,&?)FSʾTנv-Vu6,4Wv/&Gꉒ(*nO2.z=7ݥ<8 TNl˱X)vBݶqto-==9XN Y{x&X ]j ,cSNuX8iz]'/DŠ{r8&9X#iXؐMhPTM4[yevp5f}ڗ5jȇo,6!?_:,-`%O^L*- N4f[b<)ťGpyPK % 4T9 Aku QR!E`1i? ؂kXkqA?yn0BXdFKaq`0BZ-eP]cr ν)q yBBE *޿;o۰Y9+){{ҤY|UR1^Ȏ9#kd2U\V#X@~\Dv? iibI-D˰ n?C?SҤ*Ų&:aRꕼ܉w\,| " }D,v¯$z)}YV ^ a&PrlǭbɎ *Ce5n~.m(a;q8?lL,y~5#HH}BF=RKVңvVJ,,V^<]"-.гz˵ 3)BZvjM*bv ɦ͘|vu.%FwX:2dEN#@$*MnW֜f͞Xۙj&poœegVbǛ/l2WIk`\F[|Of xUm|2|=dl!p#Vr};c`;, x3і9yp8p8p8p8p8p8p8~Yocv;.f'nwOOxW[m)%!ȎS <߲4ٻ<_!K?~77o(aߝlii8 1+> $x~5KKM#=+¶j^'>쀂WeXشXXٗs?$Y@& `Bv 'CPb|XXWtGwEx=Xxr1 j S{=^_itmb9>\˭"=T:f bÉwBV 'E1 XMmVW]ڲqOHнd 33"0tjxcjا&9TW]=uΛ^Β&<vbʖ|3ɓN*Ң_'LEͺjsI,vᱯ#@q7dIT6(G3tBHD^|2=?DJ]C1J(7~nj{͆z(ؼ#smڔ3IƐ+C}*Cfo2`H,1w3H; ^@fmJ+W"/t()& >'7RWPzQ}8O@Wa˶,X1M+a@I/]!],]o2\(%/zn(%1E2IAbE,!Ƈ򌒵 j_ * g̋CabƬbm{ K lMTW9JeDKl6ђK.b١7BǍT.0"bX.(7taQƀX+k@GvYiJ,>*өk*(뢽  0@. bQ*E: Q ~A'z6XMڍhM 2VE!-m%+rzn@l a'\3NSFg)7:s;cyȨmZHk" Dy1|3!jY1ɀN,g=ЫN ʷ scux)B>QU1ZT3!@E1]eO{by-uYN:-߱Hg!RufX{G,=҂r,挶K)^GCb)'yy) KEЉ[g;ڼc2M1[ڴ (}KfU9MjSi2>}͋7*6s_&uUذ?Iݖ USA:lnK1b˨#g nw$bE,bta8/ʩŢڕGzRT:x}Lj[JoZ}&6iG5|?DK]}JE,}u#d(PoS^aXVu=WR% [j5|2x,k{NAMM䕧g!СIOg:ғ>M Мfb-jԸ C,\y\R27 ,..YhmZNʿL]gij,bEMjT{5ԓ5k0ΕB=Rb ުOE]Q{b1}7ȜjS6b.raO H>!VˁRt5h॑SC,RvVI]) a9,zYO"&K@U>KSX[b8ѯoZhzګNU #f;i%kT$jVmqX#jO؄uGi cDz\bɁ Fa9B,=QG EXbɨ>K̑U,:Y 5B=A3mkD B e$cAgbils_菵XXh1 PYjVR,ÆXXXȆ_ ,޴XB ƌ72 mEs( F,V2Rm9$"޿}؛b10b6 E.m( ~4rLX> tXVlڳ> 5hV}:jJ@fC-GrYW^ dZ,u ~F,QøZ6am@]}bE׎ @~iϢvV.,r_* &΅Uܞ6z#Nk1b-zkOj IeNXn_Uqu Q5<싥b OXh8/h7g*dKGl 5/{ĉ ݬzUU 46jGݳJ_]R QbY}eE;~z:IWLjm|6'fq3lG"2Z;`*rw/xiMUs(T"MvLPTէ̲4łqS,8BߡPc`f^+78p.by+gDhIE wX[IГж?D@%Q{O,6gfbHA聹   PW3le58^,;Vg@4_T.-%XAMPm7*9pW/1IdѪ̵JO2pO Y@o5\]qÎ c$_u4ouV&'eS,6:u>.M=nC:AE 9]eT,/F, 9Z2Ǿ"Mv= ofUd %qBGgP/x-Pe>"Y$o̵J1S%J(HljD̚E6:"bO,4ч7ď zܬ8XhW?X$ڳG0=K~֘&X(b̹uyYTO\nU v$J N ifuFT;H;Ֆ:,Y8ӝBgxba:F@lyeؠ UW?ed kճSH6{{ .7W4+` 9oTkG7^&zAwh*{hwrx*Bd0oF(G8?I@ zս<,-fWZE񇹝y܌vlHOӟd ^ V,[FO.2ߧþΨy̛>5aVMv7[,7۳N7`yyk$՚0bGBK*7A{w90z\\XˑbٞYb'n,dڬ$wq8)g. e _D,89B7.0bc@!7'79w7iBa߻DDmGfZ8taZ )liXa1` XE| K#& 0" _(m,v{٣%>R[2D ~{LR[b6%M=ؙS,&>aen $Hmi@ДÊ!l؎FSKj}i=k"Q]ŚZ~_lpgcѶ(0?bY,)1ֱbYKA8bb@* ^6@#XH-B*Ƣn@B]n,+H#2ƢnPVzk8tcZhb̺^HcQ7mX6K X@fc wcyF \^SNb|ӍE2ꚿrpY,!@>$@ne_Xr<4֡\؉R.2"O(XQF*/1T2}?Lx?(g%lL94_rXRرC@^p̀C{{p *mWH0BIyDV~/L0gL;KRT*JRT*JRTYjmq'RO>[*}K%NaigdPӷ͡ҟJ H2`1T=Cie]7v62qM/3'nOO}|5[ݲΖH -9x9ɩų8l=UUq7rqUPL ;{[~/Rm*wo6 PW{v K4^Or#Qaůpn$u3'UQNgU45NUR\SrS VZ ޽eZ> %t2ozRxɉ|8ZBZATX*H9FK* M 0nI; Yv+אt7uZl%VgLdR of`!>ol6M_khFtM[hw@sW>LkN?ZHlU1٥>q,|]WcKXtBwZ1c1QP{֔s2v˨C4uԇ[ewi~<ڐ0Wx:ճX%ݳӌ%3 Ha-A2j3)a:ґsM&?.XtZPj 30 64HL(pwwЕs Uz*}eZHdxe1ج})v "o[Vw Yskq~pim0 #zy:a%6 #XbuǩXnsWKЖ7'ȟzF_ҳn#\dZrcuE,t감AƒD=t*}i `mBL7F#2E,X Ib9*wXF姽RXV2)bXWF5Ii}1J4|RH_~S"cT\2NWHfL% fh^­rs,LrX" _Uۈܞ%9~% OSKKB%jPŚ69W;ObAK12 ܆?)VΒLZ1VS,^gF+9Ai,m^:(=ɫ;d+T@L~H>ݘy|F<ߤ 0 ޫȱ /xyyyyyyyy]dr-/wq~MSml]DWl)..+"AP(;tC[O~Z*9kO^WUv5&&wlu^XiovXf#FH׮ܤuJZjH{ 䯻XIBJIx]o+$S(;to醔%dnqcU$X0ӍXx.1&ډHqB ھJ %3T-@B#M`\\ZaQ1/rʓ1?ǚԣNöV(;tI:^nt[(#s-0yvearfDfk{^6DEfǻ^LYLb{jHn@R=6VcFu=}Vrd J2Muݰ< }eG);t$h)1q%5/ٞ S"+&nDW%{Qa},EZDM-%jӘ {(Lk0H>ZUo*tqBgITqޅ">,%M>-nayX)qTa%%a鰖T+<,yaB7a9|v֪8 K OaCJjAZCʲ<,j' ]geѓ;Ibn1}òĨuqz-D(tOCORlKrхYR-L^F0,#9&Ga0R5(,}&yyB0}XV]⊶t뇀|_5>,x3\ dXFMġH&J²+z-onD7,?a8cUw)!ɰtazK-Wp a*uh!sӨ[Ӡ ]n.:{2}D=a7M5/aQ \TL"naYXX.;J=ȁ[:ӠWЍ誰7> gw)NaL[&:5?g;\ʴ`J{Q ]%SXQ,, J-;, 5P۟ET#kM^F(,_%VVR~=Uv;L&!ٚ෫4,_8enӢ T@GJ-{Nc-I *8yð(h5]}@? K_[ؾ]BM-qO\vZyvXAְ0৯NZB>+,N١ӴEvp%D95]HaQ'/t#~>&-KOEYug5bi~(قi/tq;z4`[=".? *Xv6-US$p[\*FaB? ɋ݈WDTOb6uGS!Q a./ yѻLuv#Y5BZ J-;]ls?0|{ZKA\fMHT]j3 =xCdB١Ӵ + FRnMݚG4;yQ }{Ku@*vvR`o$㼪RqD+˒.UIg5Mn&*D"0 Dl e&X:):MS!=qc$(y:T'x_#wulg=h޲=b;ZHa_Z6(PR[&2'|aWQ/@8ґjgþuq<4~{XF/\T qd F3`_R_a>l١Ӵxk^yݷ=|4ߥYG뽎Sw@9]ݍ@ONz*EAX<j(, x Fk~:,y*¢4sLHs#8 ,+P7Ao\~RGaiCdNIa[9C9aQd/ -F*I.:H]!P@FA4@I q~AMRCmrRsy*$q+<IFi|k g/ |I1/ht(r-9xwQTX"9;q+9I9qqqqqqqqqqq8UB?E!:Rp:Ŵ"N<)[h}y: *⻼lXMe 2| Ę꦳[ri|)~h=ΕPZx?[ ePhfLn^ŋn>s,qcw[Yq)OXYlJo*jP?ȉQ7Lz^כG; nfLƓ 1(dxwZr%E3m+`ʰ@>_ފj 3%'"¸N^rKJ,Ab&ReUh]c& [v4Q6a*֓o}co('",ٛ`Мr!7h0ߜEy3a y>Xpݪgʰ?k =61OEQSD1EvWA*">Lۣe>#&BX*5[D7ӱ\5kl5Ľi$wZT/J?BK"}[gVqhD<[9Q5J:tODkj,µQC˟cÒ+0a*ZN (֏ޢvji`~z#<"TdʕWOIG ~#XHTUVS^mZμEM0?xhjt)i){g7J $^Săt$"0w jdDsxk>,}ĦX4C'gܥ[ڈgSm@( bf@I/CaQռ7kD0oͻ(Y~q&L%=IXOrn/h*/UFvUc0o&Z?M p%Ȣ445'EYl{*KqC+UτE3KGyE3WD ! /%_.,U K(+r8,UEKBz3C!,#aac~K1{C6ɭFm"hL0<=ߎZl>*)Y4o|ٜ̭owJ'۬2)mѾ"IL4P@lT;E]p<k<<LXB T* "-?ʄO2ۣ崚 RE$"TbQeס/y/T;;z_XjX92yRC)<~ 9 S]Vݮ dGVBx&1R8T5h1_X4&:( @COm¼8[d!>/a4 S%QVg1je5YXּJL(> 3!#YQ]2>F}_t*j҄KQX~Bb5bh3fO T,%oa$KIep1fx!$Lan%,Ghg_ \K,gy6ӹ_˚nlX]cb9$тٰX=%9ux-Y`%UXpG<1""RX|:UK²[YXBƶl.fǛ$?Â<=%9o644ތXj,.A{i@ lnH =@J.ukXr <0YXzVι܃Xj>\4QXwhEƴJ5xRGP?f/+-|GIX&F|ACd,+rNBa;,ײam*FIX15a%f)r hXV\k^Zq-{5e,J^N⧻U ʇ%B+jEzDV2bu1,vjo?Ya 4$,BS")rMCt.,a|o2=r.,2N'*x İ~U2,yJ5aCV5 x#6 @>~w;v61}h"{u8Jʞ1Uqryy~D)9Y"ugW9<%Ƌz~~COī֠Uc TӁj^NkOJ)6"M25w\,D-m2 C%trդkq*+9"hmX>1WI9XT&Juߨϟ:+KPY\ϼ$ ~:SOm)ok3G<`ܑN'g:hAYR%1vm[_hv 䲢Zy9T~%\vߦDBCQKg'5QN7/dTg:Y^÷]\qX&|У%WJ+@@$s){7`"'Az&75D7[{"xV6{#e0|-ye6Ol#27x; (JmY$l 螟YvQRk ?դbcExU' I5^;E߈f縏QUZVo~kcwciJiEG5>}[Uv&)'Fv\|O/jRMm.0)FC0tat5@H[lzr:0yC;>URv"n*+ehiL_Ҝ{1u?8TgSUhttM]àQRSoPt2 #3i*t'֋wV*GJ}5)R_iOS$^'S;]|mX3qqԥؒ8QSR(S̻4gкoiBJٰ\ڰl+@$}aLਦ}>'hV#> $ -=S*<'Ixp2麰|5TO`ym ֽ2:k2p#ؙ[FYΚ0۟1*afqRveВS}@3[NlatEƸ 䥷;_ W 1pݚr%5|o>3j} Ұd˞oWpݯK1r=̒ʩN+Edu+;=O\M.1PY|;oAg mF|Z1.j)n쎤5ejO잣45*-z @\݌ygfjt"n%ɔ j*)/A3j6|XN[w:kFr^a*"cvW;,b{4vR$iL̬?0] ]Iv,_y L,Y b.TdkMEnz#^ {{g+u5˛bsg^ HϞtWQ t-w.,_y3լWc`ĊNͣSF GևU/l_T{X [{ŰY;P"Ҟq ˹ވw{RC-dwόK>VΨQoPBW%=R₰eqz؇%oG5KV>HbJtǒ)s09=UioMu;{ߒV}3<cY.,'9z0+aH?EPy}B]d[y4.rV_N5BOh=OnY'UڽՂofEY{=+,̑Ȯ_JJNY[k{\[nyc w&nЮv|Unᣨ?/~홝ᤕ99(~YTMu[6< `jG%F4pqzӈe]DL ,j 78M@GVTM E,u#tE?DDXTnJ@#Rw>4/V ivz}~O4@.aw[ZO;`1&%IENDB`assets/img/pro-fields/subscription-field.png000064400000065314147600120010015201 0ustar00PNG  IHDRz:SPLTE~`bf!gilvwy789bdh˚t})*,optӿrtwƮ124moqڂ=>@LMŃVWX|}кDEGyz}jlo}[\]PQS^_a3~&esϻYRJ>{"X.i4IDATx]OP_~ Ē (!ԱX2ղ7F(%ύP|szJB!B!B!B!Bfx\!!UٳZ`O#xLc.QϧJlG Cz%~ysB,p04~iV`_nB$*+[Y:\}e໵j"9V/zi*Ć!4d!cLN~Y,˼;ٮt <0da6*$rktyr`h5L@ A3tp^Be[ ,d0VBD}gcgǃ[Ɔ3Ȱ`A9_qnЂb~q97Cvr9+If&ss !+DCч s,F.)iA: &/ 7ۺv ٤_¢ Y\,\jj\ SUp9`ES< 6}jn?"r`$+e20ÀS l<`%s:~ B|< rjcLV:g w ayi|8iU=}KrdIـm{=zG$k hjz-cH'9.V|5k,f4L.S)h7kBh*޺,,BY`~d=UAhC0I@ȬʢENga*L΢ H m{  i=XEj5Y]oM1ν,iH6UPg-D_CUu􋿲0PZ!b瞯b. 24{]B( YgCQYOj '>E__E Du r$}nkq ҵB,*_A G^e\eYxch6yv5}{ @#4ESԽXbܠMW \Gw>>at>8'OsQ/TMmlV3NV f-lj!d2"m3uF{<d Y.D4ݢlZzB,yKB3f}7dᾏpl[SF&wʫ8!zÅ,N@2gF<#߃-DzśOY }s !!9#T8&zeT%I,( cY b~*,E:Bݞm#'gApD;8#/"R/x8ZcP,E&cq- ?G45- <.ɮFG~[~Z[2NՂn'1pe+|5C(QrBo@E()Zt@T.-NU`40Bj#qI<"-[W҂thVUp1-ϥpQh'쾄!"^=B;G"}Ęaě436o5ºʑI6@,(uu4^ZDqRp.܄0s[hoWD AQs-!*Z$"uCjQ{.rVϜ Gj}-ZB,Y`->G0-:H-8z# x 'PE4&?=kQ@<{(2trӱ 9dZVC J8Z=-TT+"=:Fjn2[pkaȎ=]:u4tY҂ -S9kAwXZkUG: !0ٓf74t(/E? b_brs3Gkte#yJ屧q-HcMj1s1 {ߍ4KDo-L5>'GwrOERv_ Ș~Z@hr.U CI4),4PάEʙB^Q0ѢZ tv4 -m:.ƣB0ZBI^XJϜO&n\ ~р*iL>ZP skdNi /"-S+"T-S:Bm-#ѕU-B6Ը mVE PZT5PO;E)Ziq>RBтɜC]Lh$>xiZ<-Nn`O/_xiAk+$=>Z$Gc3hA>譅\ͬEO>Ztkkj1%GRh¥_%JS,Taĥ9+yisQkK"ȖԂy'U-^"y- J-0imf-rBa"»8@$،ŒΆJhAqb.-^hAjmԨc[ .S2iuNPzV Ԃ<gD5ΰKbs+"v}YDBdm|u_) ެ!EnF-D>ZXzITl7|]rCk5G ok巠qiAi`Nl)]<̫Q7G3hAiyZPp]jAQB ӛ?(R Mp>\A$ q}_%r/-NС%7ŮD[Dr҂cWLEDfX bE(Mu`o.tW S lUm0@Ul\\XI8I50޲p^|Z_7f 8'W,7[?##07.6dej:LݦsV96RQg3]yߦ*wI-X2R_S-:XԨ߂+N}_h6:ڋ @b ߃R/AEijkA'sfk9~wKO-Bk-V&""EEE@@@ D9h/;v0CQP İzf|mH."Ȣ\Yr~΁,G4Ȣ\-u!:s|FS/ny[ov'm( !ݭ-B ti%^-[13 ~ކګ/E{[ڢ\+QOWCY!/DwsssFK&h!7<6?П4:kE֭LsfQYlp7BĤD0 e^:C,0X?Er^~)+@Ńs:dqNYLJ,`I,.zz^\\jv6n혷TE^ߗDF{BS`Et,;L*bY]nݨL*+͂[x(׈ںMVIbGdte8' t9BiOouN?aL ʢbfg(YN\: Y1,orx2EEYPY&5V,TJ/[ɱ i!y;,P,X$ɭg,,\,:dBr Y8ZM#Ⓨ4y$},P 79i2JӋlJ9F0 gqf>"D|(^__inl$ bbuGYַw{eRBAWc1޷U楱,"EI,j,Fە+LN7IwxO޼vpZXdMpf`^eÞ5~!If7/'ڗPie/͕(^,_wz[aqdt`4;#He1l,*BQ+'QdYd||0T-Bsq(]*"FlߊHnp Y1H~@[gŢNaO,:,r6乳Сg4,wI.du~tb,'c[1.ʢbMo2: 83Yjf,h‰,F Yo5xjR,TӍ Y4l]f.ZxzE,VȪŏ\S{ɕ1hp޷ݎ(EzP]ADyUDJCsZR=gaa0,9nT!{mwYS*XN+{;M"0X@b\R,RQƴ(Re-ڠM9dgӓyCQ~o*W_N&}dr`h4ZZq4Rg4WaLk#S-Xø9|X#NJ8I/gm}rYWZgt5- 7Bd wc= JrY ,aDڠa‹[h7E}sqqU 8t2 ^gfщQj{Tײ(73e7_Mntgy=[Y[e9襲hd苿sl-uvpxBg q U^oYnTFϜgii*\,"8X=,J Yt#,!s2 TJ: Ad"j.rvStzne{`g=* Fzgh>[ݎoۧqN b86g]!.|Ye'-gĶG@d"wd%Y\Y< }fvof׏ܴ ,OݐE3;>f!wc,쬴E ~Y@T6p=\?HH<3+p|s/KLVYLYh,6"K*d1?kYΠXE5{dYm=E `:r{I@dHY=/|>A* mC|tƜ й9YF0 "¦{t.-E;RYVYf}`l, 2fd.AΎ{3'fzCA* pW7erqKE s,F]r3kx YT$ t',ĚdaM͔ܛ-șh 9r d }E,;!6[nA3n1?HeQ>* VʿB\DӜm$W9\nsKLS L< 烉Jg;g"r6|WDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDo( +""""""M 8d#m]4NccY ʔ@4D{8&مv!9 eYhI/ Ȁ/挥mlG:sch) Ul+YHCINYdKfNYE,FYDvnVi7k,hk+r~xR,6dVYD WYrzsJQ+S0EKʃKYDoS3sHN:ٞ yԀRYrE3<W,,>j&;N4«(˧ELO4Y(ݑԸEJ,Y({MM ᇣ46DVY YN"/]FRZ]e1Q ҡ"P{r Mܡ1uYf1ȥ"txdk,E+g'.9R3.ΝحJ$ZoY,ͩJ"ȥuYKz~,l_?%P"7dLu7F> ,S͍ (D]ҚeaLҤwf<_dQ/gQ]r䮝\R։|g,~.Pj8Ua6ྨvGqZO+@=  p/**ۮV*5KJ(kM 8~+Hⓘ8G0+cĖB-yKn0yDœOւzضT!j³m Q].X`y_6Bi_% Q'd!DB˜},DHBHBBBcu$WA8GQn av$,#L5֩jJ-^^l0>k""BI6Y(OHWuɂfsͳ>~7-MEr?!YR^3TLjd@ڛ,l%Ju+Y,LE}5\19HtVB> @B hl>-h*v3YL8d1ֲ9S13(/+ytKo'ΧaHvKvoNNr);f1l8pȂ0q MTlH3b$uo1orۓf1$~:@w qL"?$- W(,/F>#bmwlێA12f,.( WV9XVE )13) LxV,W,\0. =s6)r)O6~MUP^gSe?#c ,G Bt0cs  b806TN^)S\eTHۗEFZm"Ycb{eWܝE^Ē06 $C˻]Q,,rˢMy({ apIwsTd3)/{pɘlI,3Y=uFtŽGdE{U,\6 : kN]B.>"L+vYSR]"n0z_Cr);6(`0^ w!^ QbKݧT߫{D 8fY,ʂNdcS ژYck]iJ8.b&آ<% 7Tݵ[qci`]X@@[`?ʮ q2X24;7Jǒ^-~a3BzLҖ'V]_*r-? 7<+EcI 醨E_հ݃PV5s4Iep%( P`#ؐ46GJx`,4#dǁbOdW-!xU%6ǡ/z,FXWR yaؑEe/wJ 0Rp|JW6_Vߩ?c(*{bvPs^؃nGU;@v+=OVnߘ/\8?έxޖ=),; "luY3ϊf#+!؎9;kN%m\1%20LfQRHڎ$pgbȲBO҇ ,n؀Wx 5&s,gaw,>EX%*#}YsYH:'e5@H9F eipjEP}9j^' 7PUlNV: \v\U(J=ưﲨ:Ȏ7~,.Lwv*PE9AXS,c~toqA]_r1dg(؅{JSbp{eQ˪g;T. LPz J \˳Pڟ},kYR/"leA;QQ!EʙBUSp_ZuصUfѝϹ/uԫkf,r0L U²U**'Zr85S7e]#+/@3[ Y ;w' azo:E 6=ҟx {1伔օ\PKo9}YYt9 "fKWde)nch+'Ve닜}ݕ؅J5Vq{ADQ>d0bi\K8 匠*oF+e;J}]-Csf@wm<-C|0MP+V5"Tr9[8ȰHD>Q˳ $p zZ݉Z!JY̧.bJ5N؅B0wkC x@LwG`|I`ΆOa G[vl,3pb`6q [ I[ ҞC|_nΧj'2N_XL`Uع^\,B| G-irЁ f0􃴋EVRُy|g,˸ݜP3q^5 =!nVbiܺKX%v*V7Gr%_Ḍv<\ m$EcU,Bs_,SQڴ2 utBR@R>xԅ j"2}qRXr @n]hDDDDDDDDDDDDDDDD0 1502JEMiIwK rZh.4jZX+?TzIv#Hq*Jo霞V{KM8eɎUggT{;5\4Ղ+r$on+`kp+ ŵZ_K xld]XO'@,╶z Blɏ|W[N$`y,fkkfQ,3 _T`WH 9U*QS` YN%'݆d Y(P8Ju f1V|8|1''3!fl.=c"7oF.|Tf r̔4}e nhsp.+adBO ݻ,R B_euߐ2n/m!?F'XGzIg$‚c,r9cIT' gN6 MY&P!،<W1J1V3DtsIk^+seY0UY)l+L*=g*3܌=A+CMҖ5Cw̥R3CM:EE\ES.DBħ}67v^Hu=;{;܎[ϗ}&j%Mx9OTdqX%Fh JJhy^*fDЗA`+ecY,sYc3R%X6wV^^M3IN^G%B[C^+5fᄬ m/agY!oV5۰?ܒVHa dBO,SM='j%k3弽t~‚,4UnREΉ!03@T<]+i/0λJX a>$i. ^,4fq2lq JBGʿ.?2kRn'YʲF{I8O8i@Qv 1%YL]ѧOS6l|--""""""""""""""""""""""""""""| qxTOmH>Nt$Y>!FۥlXn=^x3Op%- '[9fm(T-[(KyŲ/ȫb>\}@|Hu][^ZbVab=@Y\.VOP:,#rYIdBRV o ì9=$aUb: jZmdQxso¿bXtbaABn- 3Ż^I0DJͧ[e*a(#0,J9.,ֺVيOγt⨅ݔ[vpp7,6"߭,."YjMJI~w ,b-+3SʫE3]HZgaD/ֻJ$'-b7ޖv46VZW%F\f΢؍ba)&mԡQZǶ,*u曳( `ӽ@UߪA{(ndro1C,w}Ïa#"=MeaC }u[ܝ ^~- n+zVJY\Yݬմ6n@n/y*t;ќnU|(FO:3yar: 5|dahx"iw%]PM^$^+,P3zb)w]mJdwkG/[<>P˜ +"8N2]=4Y4ɠٝ5P1Psj_Aղ%D\"@,l],.n<ǃ/[@%@7=8= :1YTWvfaeՀ̀z٨(IJ)B@S[9sݑőaVf1\/~`'RŊoF#t#ING=ex 5kFy,PڈPo:sǒVbYzx|[:(zc| zLʓ,]QԢgv[b@p߾KE+,,5iPqh_؝9d|hRi +Y%T5?NNNFv;{}t"N-*+k<ۓsr 3Cg[F >Yêo L~O* A,="8m``0FfFƾeDvG PvTuk&69]"o{n\I?jBKw~A_=04bCS\FEfY9c*Z xIZYﵧ]Ť3gfyU5̙YGwEɬQ4UzI\ CJlH- piT\a5FdWQt( X.;v>v:>ohs;Lځ$:pR )LgRcWZR"WP,-H';jxAشBGAhax.JȜN.^@ƒ>4T#z pvpMʾa9 P2)2E~ %/NZsLũJ%{uv P:Eu/9*O/mwn%e 4@;lB ]3b=f>>i|=`J_NeAK,GJ;`,&.F*";tߍIJqn#Q?SߛI0j'-\׌_CʞaZprK.Sݗ-(|S6 w#^w@@bnj Y%߻q-̢[+x~WvTOt;?uqڰ g=`L"S'?,b=skkawydnߴH [ע"dyp}, W> 6y]}n֤HT;P\eeiT=eڇ@2HSZr yR,x /B-J ^#-J!E܎h:LaZ4ĵ8X #m0:LN~KwHI->LZ)k}2^[OP;@hj#1ɬM_z6S~)ѩ<\ S'cb"j1f8-)-| 4-ZxŵP-*>lSkz")˩S2]Ӣ9[قB < >09r(?ܩ8{)1`R OuAiя]ZtI\OۋN e!Sgwغo0Od-a]qJ!Z̋E['kŅx@?`4N(F%+(TLōq; "LOHǰ_N/"˺mZL4%yRtc_'+QkZZZ>q]hxX&&C3䑐}m-.<##llHp=tC%hqA4ߨN|vd-axU"3%k1ܠENUwH-,F`Fiw@b\(r NZDv|M,^7 gU 3d-գ 00l%J(UqMpZvX=m*q@$AܗNN@%ZYoU'G~y[6-b\H+F$Q؇a'k.&iq)Ҋw@+?kщVu?**WrD+"22R@v9[h}Kth(2ĶҸ=+V bEvZ0Ҽ_mXnC m6Yb$  -B #Z4΢-KԿrVԙ,sd%pC &J #uk-ZDwTkqHV5G/"?u'h;OChQ%]8!s'pEN=ytDdM hvչ7]@Q cK-~@Xڪ{S Jzfϰ Y۴Xt:nӇNVI>BӋ_ח/$k1k_<u.hSN-9 #SDd}S |DʴԂM>Oʛ#EJw!|-M 3d-0-%1+2*X*k{-ԚaN,Q;j3* >mȌpD/ I`k@4 9 n q[_/-Nj:6 aiZ6d-(-"|%#J״aTg h*YCL &&kA%p܁Tc7x3nٻֶ( Çh. M.mE@R(fQMߩ4S+(Xc[:5c_$NU݃eI]>˘bE.)cd\bwB+:eÅݭ-Crbx|RDWw\ReHSp!D4O ]9zN>ER-֢յ?]/b$lqZ.Z~l{X^lNsߝa&1NsT2gͽ$G]/Ze,}XpZ,C>mZ<$K>Wf5h{Rm>q=MNYQI2Vrl)X@'G)YJQMf(LOeOw](}<%*=S)rrZŞ'S `? ˠuT(|uHBA5NFv=7iVf{g) DQK6,,%<;skLنd&muoaT [d:oz˷>B"H5~Ȼ-ơK# #+O bl-vb6p{u@䤔x)X o]8m2@_)Q PKLsVl=YKRjC)V;)ex*@Ĵ:5Rg 핲*0A^^bkۧٺ|E d+JQJPa* fyҗm˜RV D]Zq_#5*(,%;IEP./.d롔ӜF>1:::/rTa&7c(`CJ)eSrĪH&t,nD(VE`&Β0 NHҶz-Pj)xo1iVl} f[K*i5&tג5q uKQ;J{ [g*3VQY\C3rٺΰbZse^S U;q![T/ ?<3a@٢R=̑[-yb"7( m"f/@>=Ey= Yܼ+)8ÀXp uD;r: xָDP$\W- F 1hڬ,P$8yW^!6 /z-E 3`mEde7dQ({?Z"%1K c,!(=y$-6͘-re6-p&`,l7tUʾZB}8@SVJ@XdCo,܋o=m\-{fq ϪYYHuUal$9qQXd, SQ ptI%|I _Zm -* )jFjeFb%6;PKQ08E%:B/:GY,t`N2XƎףFNRJ9[qҰdjh.oJ&F k{0[ Wa0}DH Xz$G>04?{5¾aa玉A - } 7ZH{:#nf:w+ Q90h-i ZQ+qN(0 p7{' iO[ D7L5B[0e* DB}‡ |Xdo ,|fR,[BD|Hp sLv:;dg sLv:;dg sLv:;dg sLv:;dg sLv:;dg sLv:c*`a Y{L9Z%/fA5U T/Y̘J@\#?b,K^%D3o'3 Jfoxw hfqΐ3 Jc:::#́͒QMh,z昊7`Qh*fAʱp(!ҡEx%D3]fA bVq,(!YrP1 Jf&p LUAJj{9p>aKn̂v% 7h:_BhS]UCK}ii8>K`[-/(= MDto؍jc xw R, eD{[+N ,nf!c5O*E9娔aueyn"ց4k++ʌ x߃=v `bnȿryKL!pd6ŋaXІr o]"v0EƬ)u]A_rFJ㩎ŵMc"ܐXi^Ƃ["Vj7 Mcq D1</bq=_˭tOGrCBs3X8쇼%`78eZ;[ibxgB 氨Pd\*QH&{ԇE8&K: 2':=Lw.YbaۍŒF=ﻱP4,<%۰Xv0kE,N!cܓB2Нۏ;ptzQ5ӣtL?T*6rճqh*h? c1K7h9,:fqX/ڲ=ڿAc!3= X ob\%A[ZƸݠewF{(?fWrKGǦ } M>+u(o-0YDsԨITF7 B::>Fa!έq+e+_[OXP‚KFĢ<-`\K_4m_)F=7T),4t,F@ĢNa< cSEb~ūj*n ?Gb؍['~Ca8] #&W3N/U=%{6, Q.,e\L6)))܌ÌcE[*DY_,j$eG ŮthaʋEɯoGE+lY+x{eqXo|RcÄ\@DD(%`N ,`aK7{ϣ K)_C2%IJmZO QBOihRM'renye8, -uT; 'fq} ->EK`Dc-a-yMlL-lH-"?Z 4ҒI 4+b2ŧ`.7<9Xsت=֊9Fct}{j9bkxӊ.ZN2]\Y;0|;q^5rHVu+hQsng;QKu.ʵoYxv,7@7p=l(p-_e`c,/݁8kշ@Bb -yR&Z;u%/gg$<#U%dr3l *ॴ7Jk&"bUW!h!-jo:U_=kНlmGjVyPd^hqQ[I-!ml{x68qjl;H[pKxr,^BM1B5]A•J DstP:LR1KkхBNZdA {lL8*3QCZa}{:\:*ڳ]yyVZ v=~eTF1jx_;\nb!sDd:[OTLB޺aX&;jJ1S`0:@WhkTvt&ZίB0-⣜ {l/t*pr:pOLxgׂT?USjZn2muy 9s{C_ SJiCv!b=,xgKP#_2iYЗnicN@>ٯANGep z3SnX&I -nt0O}JIǴW]Fv: --r*Ǵ%nn߬qɤ'kZt o2|ϰ/oEe-- -*i@daY,0O W/Ot NtYiخ-^Vg9)+ ["(9ٱN( 'C.$Q٫E:ZV.yjVńx(jFƏRjұe#nwI-@#5: )BHֲ#)VTSh{6p![fHuII u}TnnK%P%/[G.Q:2/b 6I-uj o;}7W eiZ)4w܊pd*uiG4ڌ'`ŵHhIjQɣps+W^2-Ԃ&vZDj zFZ#8J [uU>Y&ԂBtɅW;GVMi1#g(9q|`"]rP-:UtJRZ7yhv4-eZ2)AޘX}§H7a-qز5y=TG4lZQ5?]txZ{Kj!q^6 ֢G1Y-Z~z`tJ0qň@ DDzU6,w nqK1DuE?ED vN6{J(Ā=ϫ^նFW,9Zjb-գǬ)8E9 ȌӧG^OՀ).tHG+ߌ_SƗ Ղ,uN7J|mnp& 4eauOրW͔ޮ]тB;6Zb WjѐO[jK=U!8EG䱺!Fh=vsHz@;cUg٫+ГA=q4-pKu^YzR;x-a%:i{-9(أzW}*ǵ@tbtyou?:/Z􀉫:دEKA-:~BOZ Z+۲^>T7|g-hz8!XK8l(SΘ{|ՂJ״O ;_eH|(dnJ7ڧE6=s -"zKd, Œ?٢QQZ [맂2&%1ftlGz9S)OdKWsSx!:z0x<[CQXWi-΅ t !'>[b]ǖ L.0Xc R"zr_xSA?쀏Je-v)&N=g?;&7'xLj1*b$A$4\P62I̫l)=mݝaɤjbZo$l-ܓe?,h_}'*G/VN7~ͿϰPAA1 1/Pa`ݻ:.9hTIENDB`assets/img/pro-fields/custom-payment-amount.png000064400000034521147600120010015656 0ustar00PNG  IHDR&TqPLTE`bf!t}fhk⟠ttwbdh789124ң)*,pqt|~iko殮lnp<=?\]^ϸyz}@@Bvx{LMNRSTEEGŜ}ګwլVWY苒ȆI8(IDATx{kJ8MHc8 $24U+ iOn 7j &a&/\?i9c8hι X|K5|֏˯{d"'#P5frpߗIG~H&ł):MeHT?$xkGf2M@/cF° `x ob&_}e"ea)uYH'&j;aGukH+Czri$GZI"19 l*0/fp)$\raB l5͙F{PZ}Fk\=Ld9ʤAhLHJlƙt<*9F`'R/05śKI{yVxN$#MH& Z'+oyy2!Omk1" R9 /ʤj52^MIlA*#EI  LH#!U&WEY+Tx{ogbUHVg!eM31ɺ StQgN0G$W&*9eڙYK^n=47;w&`) iNZ5*/l6֩K 9Hfmfi~r$Q HL.UȺb9W7;3|seq~3o޶T#ZZ,h!z C` ؠ=<.K]?vItzl(bוvxuv;zmnhj2amsе< Wq˦L{[V=+T//f"_T52Z5QǍc}${Z^ITڬk E5n&"Web˵zGZ_ɱ$)c3u}nݳr%=OuQ ?sXUbeY{ArzR ;Tv֑Jt剕'_f%v=r;q;peO/tRI%h?*э[hZyovC5lOA{?=\ > 4LƾLKvjG2 AZ}8i thNJg 4Xi B%8!,Aph++ڡPpgLGlKMBDy^EwtF\|^L4/ND'Ftn;{ I b#5};[5Zb&5\J&->H MXatE ]f2ɠum&/qZ$?w9"ro37{N1L0~/p/M.23҂lR a\o2l3;atIm|z&'_w>Z@C6 V+DxlX&s= Cݶ\ J: ^g@E&%2L3RXuRs}*ٲ?gb\d2)?*s2))Ȕ5kUE&%y5͙I}|z& q8:ŋL(?w2)΀X̖KD΀KYS+2)hj̤6>=V8D5|%Lʷ͍Ct&Ƥ"{ 3Od,p .L"`d zLʶb+ngR>ǍIm|a'C^gbW?pt9n&3옭[8#)dπb&qt_]쿚V8XH,K&;q^MX2Ѣ ؼ7 dl;EjxdInd ̤6! #w>J%b,ͫN&ζɠxPA~|gFL܁9Lk08Lt&S=/S88N&'b߼|؜f|?fo M2I;XăW`)%ۚ4c^C'g4AǕIz6z`0xfGkg1d"CX:߭W'gDwC_7Cøfw@`LL$ ,D|vdWf3mw3h۱S0vZ6$ןAj%6]6?˛G~> R/T%~:`{DȾObD^f@HF%gBL 1fBcp"D̄1?c&D Q%fBTUb&D Q%fBTUb&D)wT7GQ^G+?ID+Bt^|@byHjot!NAErċb/C6^Ob܂IxQj*9PP>ߏQTG/DGTSi$'f:Ȉcb  ط0   --mNJVi`5iLܳw6 jBͱme5P!mIKh; BLh"I<1h<Ŀ^\_(:x`8$e"dWX&:B"^ }LP8vh!R"RTV̕!^ oOKeRV"}eeb7lP9r,C+S,va5g^Ήe8>G3BB!Gur>d`ZD03r}>[\6~!RWᛡmZ&_=j$橗 Pz&ΔZ573 pk2"=&sKgBC|6|aJ6n3}zKJGg=ri0~818>49| '1 #22!9riՍeǖ !Rc2g egED6 'g#lǤ1n9"w"=&][`#+tbԀLDX""3 ސ %d KL0Z_ɺS<3)4nhr3َgr !Rd2ɓyLJ1,443)2.U+_ז!Rd2Q쪧gR ȑht>T+gGI^;7c 6Y“3wjMmnVf_Of6Ic;\fzL>,>'}DBl{Lv+lG:3[^uVP. DL&G T 5.4J&.l~Ow?s5ܱRp6/ԅ`DLtZ-hԦ=I蝮C5lXP+Kۆi0OaI_oC?G57K8^;_.Xh|'xDZMTN&?rEzQ!F0[W dfiWr%ĚK݉q-YNs]x!Q$I B"B!B!B!B!Bfq$( vK. rO/KVjsZ-gOXT? GO\/g#ݙX3* ӝOҞ#f4l1;gAqLCߪ;{xN 21-|oel!S&  ' dC2!L`H&0$ w7 QZ 4](jCbBbVz}Vrf(2I/^|˿.{:ρ4z23n3&j[/f*f*iwic']f2^H=@b+]f2aRg$4*{4ɺ#H2LRnBbUt fV9IgHɓ`t1dRJ. #e&}?xO&G~$$2dܚ>ۋp&Y&ARv8,_Ow•td i3Oeb7Պ`' 3G>^ p%*$s<"L2" L(2" L(2" L(27{wl1 l04w%Xz>xLN:N+1Wb)&W roj%i[5버'u bm}d),*r z2\M+#ݓ6onL]-`5=|8?G_?2<[дuerp._d{5iɤ&&Lm7ztiuhwC\seaZLx3M)KHmT{nbao+l+y%YyC!^iIH$ 9l0,-gp؀ Lnw9w`]#-902܇htoI;3+O={{ހK&L29 (4;3ͤC}g( *c V@Q`kzIY7&//%4]2apH@ a#mɄ6[r&(Ƕdr8!'!2$[Aq ߔUf5 r41bggچ! S2[I"K&3.`A6LvG^-rȭ3MBN#&lU691! ڹYV,uc$~@֑Ij[2i!^>ِLĕ7̀cH&ٳ0璧Tdy&y&9U ܬ #ѵFL,ꁼU8D>P8![q&[,?9Z1䎯aH㴳VnM^﷖3coLT-!iJ\B>Lg" r"# WcHPsd98=F Y8'ܬ g_#M{-|>@Y' ";39yN1e$w( E6-Zy616W}6>0٤* 7a큑YEF ~誒vnVFHU'7>:>L/Wf"rI&]ry gJ+Dɤ#vnV33b !NdZbDV" x+3 9"gBuF 9!k_-(T'ܬ{C|64m?g"l:x3bZ"0,5iwo@.QDQ@xQEﲴo{7M"^Mceq2گ*1ۇ'hDObr ")&)&tk~Wbrć=#] /q_h+zJ=ݿVGYʕ"8O*={d7!" Y@ݶ7%'9P%}Twc2'7bU47.BΣʏ8p51!c&CvJ($@܆ɗ2x2 W%˘<(΄3DyLdUժqE L~sG U.)ްz$=Ѳ^]Rat3R('ۈz&}DE[[m4%ܙHQIv10l 6 vLݓ/w S\b3l5yu ua>6L,IN, RLm[>7 &5E6hK#3f)OE;|X4>9^ɕ@"ˤ~g,+Hy3}ӡ)&L:-2@\Ȗfٶu&]+Vɔ3f2'0 RLЎԞら]3Y"Lt%fjG?ڭN-H׼$טح1tDN.+H3=vI7do3q[q QqgJu? ;_[MC]U HU+mQr"}8#Ҳȭ:[g2Gթ/e6~w&Æq/2I4rA0s&tgv}}\\\&g2=?ˤ=Ϥf_6T/.9K@ʵ7R4Lz;D27%(56r3V6T,#YX!{qki+҉HsrM&Sj {AxOWCh-j'/2AZ3yOxmii @ZZB,01KrO 5IW5":tV.»I(Cno,De2dL & 1vyr8UNHםD!^q|^7DS"brV"B!B!B!B!B!B!~sǨ@Eg ۺ˴,JBjS^Fg7eݷlZQ0#{f=zTΚȬGy<5``kw's03sYܣÒ5`x5۶w.0jj\;pc;0 LL@&LI&$h 4dM2&@LI&$h 4=_&ٹD(gN`ZubűjiYL75P3Px+^$q#GL~%|"Ekb@IJ~3-3[NNĴ^3yeBrϯkhNdE&1D3QFnޯ &ds|DD3!9Lb^@Į^35IOm0;g&1Ld j#ez2Y#8G^38%Y2YS8379C,M @!bVLpddr3U&b ]5%} kHLͣ"K7i@XL v8/&o'D IL2n}t ,79mb -D IOv,"X.\ت(҂NfY[-U}9z:r?m2Q&"R&"^DKx)/e"LD2R&"^DKx)/e"e)ɷ"طca"va@P7Q*W)<$_~s^jy ^I[byc,\ K#W-ik%3򄽵d =m͑ZvdpH/;25dqY&Ϸә\AEMT &eB4ELW>VD $ЁcOE!caƃfn3L5JD/gN%gO !L8%ǂ}QV\&5o5gYMf_Mj217,cbdFD;ƶ5R4=誐nn֌)7o ل#@<" I}L 黪ҝ;˘>U&wn!ědUhg Z,fd͆.{{Fڰ=O.ckL\!ffv4/M2I^&6_䆱2.{@s]0oy5rdbNr˜5Y g2G'b!: >y)$+x);$9$o@ݨuL_𬾶2 &e@ޙ[܀&j4H77+2Fj>Z*XϲeC IzS0>abPeРqdOY9loVdg"^+sY&SXdrdL&%.v}-=h :{MEn \nnVei(\MRYRQVSwdZs};;+g}5d!tO;ܱJAyhvk&666(AQTS^Ǽ_/Ӽ+ϛvs>eut_!˜S!1Øt.ШNЏeܥ9n.cMeJШDLgHINа\>]E7Ghоcy%Uw`a2ҩ2̑+ |`?;!};FA(<;w&,b*EX6\4"$dNOqNUpL2"D&L&2Ld0 `"D&L5d]Sra LD2X ՛̤eY|oU|Dr AfT9UN5eQu/?F;J6턗 =Sg]k@OƯEv+  {d&k6el<71̉(fK8kWI5] zXRQ:n kI9r&EbM2&u$;ǚhKEٸ&bM%M"d Ǭ!ftC*5a..gm[IS٣ZQK'>{j?K1e-}#`\;$T仗Dusu9|?d \_ϹTk'=h7 ob¤ 4Ed86$pX\g :lERlSMr=#!V镉yŒK%&̬ESc|;TI &mhvSINC;*p}I 4Iu,JXz*$3G*ɻ%E$$ЈbF5%֚e5 ahٰHr # r.ˢ}" =O5M1^l .d4lQD%֚8:IEWM|α۰v~Ѥ;[.uZz\T.*KM|{[‰~kG1lc^ŁT[k"=W$ek0\4r.Xo\p`UI6ZR;9yMqdW=[4Z*J5a&/4Q,QZe5$bcQ0E.b_5 5yIꗚ(`>d-n5jq>$k 3 &RBujRX\ ؏akr\s@BMNVy uUs{MqfNM5iji8-44a|҄bM9C4VztV#| &e"jL%pX? GtԤi  ^)4<®ixjyMDڧQ&J$!ܬnk"obFɄH6N핚HюPvqCI{.X^'{~Whj^.Wj⹸>Wh2k5y{mFa;f{::6ޥ&{MdYޠJT_:@Y $do7 In}Ҟsă&͙&~sN}4"o4aVuHnywv^3MZw&- >d Ms&̔1ut9$a:t>`'&7ޥt[T^>B@_2M)a{j"{ 5Yd64Ų&C,v& K%ƚ|Hs2l]`)z~]WI "O⿊{maY\wp/Ge4B+3"bՕ$8j"iv ZM(?ٻca0`1MXp|rp@skzX(>6似5wsO2lsj|{?Fx~xpFt ddM2&@LI&$h 4dM2{d ?Op Sl(G 8"w$f.s`x{ׄNkP> /GI=gtGf>al9b_DgX{R"1{peIրA5ʜ0dcW{p@ ~ + AIENDB`assets/img/pro-fields/save-progress-button.png000064400000110057147600120010015500 0ustar00PNG  IHDR!DnPLTE?`bf333~PW^!YYYt}ɱ埠eeexy{BBBdipT[bĽegk```hjnԎLMN789:::]]]HHHjjjuuv}}}PPPTTTqswqqqmnp>>?EEE|~†VVV)*,666llm-z|X_e]cj~sXFh:]cnpsJuzrv{hnt|wiLV}|QoΐzFIDATx]OACL ]\[a%`D FT* ~êi/?z0&vvwוMyn^3"1c1c1c=UAƲ,A1B@DpDi G)Ч'ZrĘ$Vy! Szv*C#0-xz}+QYǿDL"r3`EVTE ^M^@!ȇB{BV:EO-̷.:jb5m lRDt^J{U:I[H*QS_#x!ɗ[o|BeUv*M-$Ho} Q. e x:{ JVȃTǮ U M@T79b/]0)nDaJ(u iʂ_B}; aA"K^je#1d/ ^sx@c~VM}e{^ր X_-˺,4_Vd ^p͓w| 6ZeCci5ftkɭt]R+~0 @4FBQ%z \1p,_*$Y="'zMq 8$5O${+ڃa^>[L;M؋#`4c %FAWO_]f#_~D hϏQP=ORU|&>^)sQ,jA՟B,O`Zt`LJ@|Rq8Xnҽt D(Qh^\B\߹DbLƖJD:gԀEv!G$N׆B}KigA@|@dT%Y+q7 fz|7%z@,{ #`PĕoHb4IS1^*M6GIGM ӊ`{_ԮB̆aIMf\V ҁ}TĮO^JF)SWJ|R&5V\sjv(RFe5r_,%6'2@loKWrX9!߼^eZ"7;b/-Oa-RxmGlK`wƶ?oQ\.;}`b#`<0@(VWU ϲ"cnWZD李D wWz-Md} qxOv) yV;P֕[8sH=G |5QLGH;@8-jn ytl*Rʲ &OX(WrvmAJEw?Q|58cuankWr%{jg<r^YḡGLhoo&G-#w{8e{Kww.ǁw>ڤD1ߎJ1c15b H:Ƨr )S"{ gj`j[K\ :fnu)6e8SYjf=k~5``"%`hK}le0[8> yFb@p5K<ڨkYnEnd#Os Svp A @ _LsAL̿_syDZU/!lzV0|zq(8D%ɮ V& Mv]00ƤT"UEc17ipW=/w(?-@tgst+ց;TZT @zApYA@E~/ zVN ?V/bkֻb+yC (|H9ӟIl "IVH& 5(~ZAG2X ҳ(7P_kn+4V(&N+#B;6 .Xaq|sw 3dm n𹲵Anq 'j*bw;= Fij<BաpFVVK#_/bD ,ED.i\D,.$qz2XF2qp2b1ʹՌHBV>(7 Q'jRW[ik pZF,qV*^0\Vm +/=ibr=k8zN @ +π5eȩaE?k y>Y}6{0n[?ժSZ򩸝5W.y 2qfz0jZS $:&B`QQ.-GnսC@HjKECm :nq X8'n{?-#gyTP;`Տ0[ k UDl캹 Dh~&B[>P,NFҐ)Q,Y @lRREh3Ph GQ@kmrs 7]178N-yѐ§E~.',ٯ 2t&Nlx6LK!}wD6ڿyO`ߒǥvq_N+M )QF0,P Ïd@o3ݠ"R-%SOC5b|RxpjjbAx8NϩeT_"H)_I8mJ+\F"XI 2] \gﮛB/;V+l`{v'BJ)ܝ%}:"〘󕬷5yS`-gN{" ~Z/VjZ@m_9O$@R6πP> QJ[[GtD2j W"n@2 sc kY~ ƆX' !%4)bQ@XD"L}Ս/r\u7N+ j 8NDU<^t? ]IgT &JWdZ"Q Zpƪ_m4F)@!%dm=2۟B!E(!@tE@Eݽl*nPpJ 8N ĕ^zO1WWfBYͭ,x]JZdrSib٨6yFH2ic1nX"T kS+An!;: C=0|3-#T 8Ny_!F:g=˓[BU'e}հҀH  ygQF3Gf̨$e@H7@XGfk1H^ (@}%n]t"Hdh~ @t08-Ę\rH |,. (jѕYIڱRh*s>y+ pd+aŻL6'C ش'`Lzㄪa6J<ᝰz\ti&P1"-=4iy4ゔ6P"za h o5?3Sqx=;|>ߍgB3~bv7B8WM3+f۰ҀSG"g^!VmC`am N0Yψ#4ep} (Q^N%zRf$/ZK+B ս{5[ro4?3S!YnIJXkKӖ[mpdwf-*y4kw<-۟34 ~żv͕Ay2yA--zw4n:L<=tR04MưZ'esGe+@ȼ{tk)AG(ڪ־=쓳͢ON^TT3@\PqjN?#2n(t ` Hf~gVڔšG$a6;` ƣBĦ`.wK)@!%%eݫl^ypş,X^e3`%CVh+\B F2OˆD@䷮;݄a _]GU-[*:1 lrC@Q8ù)`XMxyL(:_Ҿ yoz0ǓB̐ʾ^>E%ta}G5v2Pcc="֓0X;#$l)^R} Y_Jy\ƾ< fd ւTՆA"M0Y:QfNRU˲/ȣА!n"FJS%3@̠DLwY1E_iE gdg6JEcRC]=m}? *)Q>l"S[C89f[D94B#0B#0BAMo@7GG0IiS$@"!r)[-:kvqq*T,υgfג a$7!mY ~RFH ,G^N& ?"{[rNp-;E9,w_ى VKK2֋r!z DIpmB; J|`քl{i{uYT9PZnnT (W=!{3ꞻq$swV 5^1M!j ؔFm Q()!#K%B$y !/W]Li A4JyUWyZMoi3upb)գZ[,>Ȍ Oʫϳo QF%!ɨ"xcJ ̶紣j-2^xCkhO8y-k 3ƌ!s6J-|"70MW7z}NI!e#2j+!:~2\-8ekɡZ=!ǸE W:9p|qQQB 'W_ىCiBQJܶWϵu$ṖIJ&Fi#.!$89^[(#C=`3ZȡZ=!q8rO*ỵ}*Y NFԽ"8SEZ5\M\Tc2v,|S pGA\+0k3 aX9`!Lr(mOʉ /8E~@񆧔HC^FԽbLqoD B/Go aa!nX9M~mw@E-B;@J17B],:yBVs*^hVE~W;sܿ*W=,Mv&\0|  ";]_g \xF\&5O b P_ 9G"hЃ+33C59kKX;zGy ,8,A''Kj xM~ DL"(iDRצBDt<"w4m rAK*,"X2a7}=1S& N e?W$!?eaX3o:q_nF+y@-bZ#>BuALmր[ B "_VrZQQyiiZ H/Zg bt2R'FOQA\ ~ CA ~֕=G6N/"f ! gK/~ik٬;,`AdaOkׇ l!RRu0B5+T܌4vwEĦfOb BApϗi`RNFSds%NߘU&A/Wa0 pJ->Y6<!&= /mǐD12D8D=+\>x@UoM'x ?F JQT:\:O EL " $߲NX,5gBA,vtp͇g3M\-0ƪV1W][du_ 3I>6J⿶3C%yZz6}&9!B;v 8}H_8HvPz( F8 [nQLEk}xB gYt˗yH0y4 r;E6ҢDǣ‚!E1k:yydf}#Љ: X"Ѝ&;:7+;y/Bf% B@U     h,loovҕ'+[y +1I iD8uasҬf+Yq" .x BGAHڱƂdZUW߃߂jk1A$eiTl.St:4 t߹Fݸ*dx@h J-ؑ,ت権Y-i"s?[s-t$|g} M j-u>D 9w[h=$Iz#+RQUR 5,σXvn}Fh lqVa0WiT bsg tAHA+y}5y9i:t 7' RHҬMtϑ9#>z/B:hDt9Ǧ=s I{VvodF z+zA$4e#)7L'GcimZq׃n`A4W- v`} ̉lJ\xfĠęoV9܇ >=i\mOȟo>^2@A@A?@/X *JAAw DcAaADoYtaQa ٯca 8vprDnLӖ~uLUvT{o=iaǯ&ף]ANnNsʢ5Ne{|b_vOaXFn3oP,-/mB!B<HBH-KVO޺<lcKjF?uW6}:&vp_!QNl biᷪF!TeZ%!& b1+ \]x2Iri t{ BL67z$\s#m JbVj<W*~Re57{L\Z)GUzbf"xKE2_.[2gw bT'5vERg;Vp%CAɷ*x0Cxd\oR~^뽚ek/mfR *i@n!T8ggڎR/?D'Ĺ5S?#tX1&5'>"훁 /]EldK)}mA t+\ ‬ɺnΖRn&ewsP*%F !Ap3PA"H饻K3-2pAGH~A]yŎշvWI@i\`,:SDȯA c/‚C&2UHg ,֝"kq e "_6qC<P >p fz=DhA)؅_U}$CTިtxFD4 bxmvx v "pnOap5bf܍ߌģ+UA/!/әxu '#2l! B+|AR @ A/AAA{gӓ47cz"E 4Q"MtBBs0'!lnܹ\p?y:^zsd~_3Lg+Ųb al`id?RY9p eyu}7yӪBi4U|%Z%4ӿUf$Dz{BEDɶsi#T( NGd*\ q4U@e@xD~"B_(-_aA d)D]1}hx}}>Bи)T#IxE듙!I7iYa^]6D@U!(vq'k! GF.ID?OweyٽG#~{;,{5+D=r۝`ɬE|8 I΀F-ɛaAċi)f!Twށ;0ّ,X'DT\텇BtbO=7tKUb{ѩ#t!tbbT=Ǻ ʇ]jDr#&'Q%`X29#J5VB́C"O`-!B|Ӆ@`Ƌybӎ}jNVDVhB)!"0D@eZIUVq&ZC D1IQ' J6& q"-*+!D@Tզ0ug`,3-S۹ sJ1 !f{rBG͑9Y@n!h Ȝȣ]o^RUr!0@x':pNP0$*!%"+^^LL&DRw % q{5.p).d&ĚB@;B~~SP''xRWw]N̥c5jJWe:hLTB K\e\4ebM2 JH")|r?At% #; ] 朾8 ˭V0|U]3 P[=Fv~ȣ10Y&b ɤӺB볩ScBo^*;.e>@ԧ ؘ=Hbuc!$Ǻf| jd !9*b+tQ={gBB KeX*!º&!BЦǺj } PSG&lt7Y<B $ +Bo^RU^z:!Z[L[Qxw"mUd) !xBU'0Bh5!G1U)s沯Bg[ K\eC`JHފB:Eܗ'c!ȏYOjSD.'6Fl ()b+wVwGx^eո#B}V7T/*.d7)0LnEe!9V`]c]B4pC`B4"iK~BO1 q @GHnZ_o ̟ҰW&!u!2ŏ 0O5ƜAJXữ"n? >b6N!V(jj^Fݿ#l<_8Bo^RB# >0 #]=*!<'N50O5Vcej_)B1sBO1 !^Ӥ !*Q˔,-VzIULYS=*!fch_U|Ǔ9 ,?+bXbBX,V aX!,w&@@?\2HM %8 i%p!p!p?hW{=S 2-ܫ}wԡش/Ɗ33<G2bwD-{S L1KnMjrJmlfN~tKh4^0+G9b z <{!B.IS"/Ȼ%A$_&0y]9SAd|^`3e ~,?ȶg^y`Ι*DkAaAxC.fx:#.۰:yO][dלhV |-SČsM.d "1|@Gr-ܐOOdƣ$:4\ %rd/5D2w1D6@ n'S`, 3F- E 1Wv3Izf o`'AU!'tpyBw˥F@g/.Hs| e%+WdLܥA`wI:uN}9Cj1к}cY0 _ $CoV:SNRh=ڦ!*2D~M?wX&i^1GY/>>&3ɏ!ĩtTU]ao'f@BE Q9M2EEm#*BW@eY2qӍq4)$ed_0Nqzӡ qa' LKiLv GJ 1UZDG>O$x&9Y[O<]9vF!lBlye=:+:afk>!vtZՈfu-0^ok4kj0J.FGӏ.-I'^|=w!Džgw+W\>bIŘ(K&TBV!J[J f}!k1hƢQ&Iݪdu,bV"lW}B1|<B)y PP,4H9Lr|є^T*F"ؽRBy]\-\fO_bt"Da ̙BVߙ ! -\~zL1v!l6&e5z(DQXƄƠmQn!~ ˭fO NUBu"|B0R  0XuG[5Ècم5]+v-z<]!ѼL55Bo;ëu`9̅hhQ% !_Ӆ]ϊ$lWCĘxSOBٵ6Da8aVmP*b"*U?/TuX0Ā%K *ʆ"^z86uZylfizqsg26=AG)QrnB&T.?/_ u1)BS(OXP B/,ق bQV#BˆIRU&s: PS( /|l8!dL,UstoT!lօcȀL+4mB 5\$.STWhF&K!ܰ!7QB!}~k6!l ,BqϢ(4Le#D ݮqc= xABά%Jb&!fgbxֶXi|(QTE Sckcn0FiB0hubO;W"N4t$|5KF35Ngg.8CGB5hqjN\<)ߥ B8ȁuRA_ 4E5LBT=KVkBLmb8X#M\:z?ZfH4/Tjb!V `!ԘD\Ķ!l汯#D5,,,@V%̒FWEtKi(|!h܎YnHfE,EȠL/" R!rrjȉu?FG/2YMeUANcpm?E!ư{R'xBCw#Tj_"B@^_QT8(W 4t'KV 1'JɜgӖR}.җP93eHlۺWș~=ZW:Hs0⫪g :5| !?E%sqb>thq)R |1i.>~kd7%~m1B LGB FCB"DaaeqCؐ`0Ĝ2UE!ؐ`0,D[]Էa ?#AEZN/@+aЇi]O1BWj! F#{ws0 PXF L0x =4(};<$i B]k*W3͐ ZMeZLSFDb#٘$$42 "1AHӼMF3=a=|bؗpY0DXOhœ"k0     ;{wӓFq|1dΚ,OUk$14mZpP4WY vs̬9A, ai0,` A  @`AhAhAhD422=wd75#ɖIcl+t1bwGlnp o[yK?<#,Sȸmɟ(D(DBS4A$l"qIG4A$aYuW# n  A @bvuF u AM|'ߜzP*j)v"eyL1ֆ9qY B{]AȖ# u]rBɫI{d' "u]V\PcIFUI)/6b*uX2Vޮ j|VnQ({7r|TJy3BaUAU.D&>?jAdH}*E Y,Ù-)Sɚje'99ʔm驺/ِ26ξȑKXE}”ݙs,KPA84ֵ}(t~ [@}a>+^wI6ћ,m?p4Ɍ='F|`8׀ǭ1"KGcrWؗ2W14" S~JX .8WB!n yOkoa!\#I}\,"N -S$/jRBvɼB7zALBT?jZ%j '?a>^V[YX wm p[0c_aa DK0b1~!i!V8E""ski˃"J2h aw0'~+Dq;ِbg3D73 ?"!NSC<_ hj8%0BB7aj@=!]]\IbfƐ>>Erw˴C؇vUL#$-˶4=)WBX@Aڊ] K Q+E KS $.HR]t6h,40BE< c"b'5"8-]6~%" ē*^txfl]?#38Qh }H!Y_E!"QM |b =vsi)ĺ#y .S&\ 0$gb fE9QoȌ~o Q6BI6u arBXYFG6g8WZ5J2{C;)Mb+0+oĒm%D? 5,"  $ìpɽ^]@5K9 ]_cyurNG ArB+Yǡ^X񪯄X\Q!c$nHb!+ѳrOR *_/MRWgc8aą6I"*@ YMw!jg"VlM!A4:žt\īibz8K0AÄI{9iḫ[E\A| [7f0Ahq=}!I#? d>pOFPC Cqԝ)+U+I8 BO$.j-9hԠFz%X3e$CH y5<.QMJml)uIx$/b幁ǸY3I hT=hMaUȠRAtKĚ`o&*$}Źa3 zݺgh!/2X8ME;gLX8ϑ sdidrLL+&TI l> .w۸ɯ04_C 7)nʴA)ĎخS nbJΡ74L){TXP (I 1%oZV ll52LægƑjvi}aA\{ =<5D1y~&9rpG6wLBwhZCKΓ=4֍j+n \**rZ& /0D&KL94-ha*Ѻ҃Z֛T,<+Hm'ف.Hz}q:|6>MCc74fpa<؊"A4P>nBdW/选h"֎Ho҃kP>5ΰ6bch0!AWy 9үhlhߨ4PW\}ɃDF T0]u-q6tMzP.>S^g3=SVKbBᮇ{+K nc15w&f9(57}/ i<$.ݪ|Fu8~.^:rJY@f.vzMFge_Xq 0 `p!i .C2M6i[,kD;cy\+ Ia|HS#g=g=Rm{=]Ԝ >ci St߷DD=k6ĕ"7 A A @ A A @ A A @ -zc9kZ˨mHH/eB BpĢ LޝDQ?^]+E.Ci<Q_S.$ź~ qĪ BuҒ.լ /GAIxV믈qux_x$C(OA CBp{\-m2WV]v^ASZTy 22WfwcspM8XG-aэ~FtE]?/-1zkX뇊}#oZk_ ǿH "vяɥ(EEKg|N->.?1+F on\&)G73~\"}|kك(fw.d ")7)]Ihʹ4dN     A A @ a aݿ꓁:X!!B@!B@![! B B0B! B! B! B! B!sw=iaoN:jP-ʋ%Jj` N1FfG+}ۓcѦq~'MOz>w*A)A)A)A)A)A)aN7B6Z HWY(Xkge4 be,A؈x-r |5(DX;Xd4A|a{)MTq|d"e bK0zϲq $3ۯba2ti# >cvđmYg &r l1)T3=S@E.1xN lKbגmJ=UD1iA\ -\l 1J @]PI ؓB|t'0jiÀ_(  ̊ Lj|5A'{nŋ }B|j+Д LH z$t+i# :ȐКDxP۸OF$-ޜWz  Sb3=f8I*E~͘B^C U@gn+U/U4E6^*x¯M1{h e4 Fd,>Y:>,c 0*Bkh%p蹘 ?ͽʺbuj };A  x B M_A]u˦-F 'aaqz6lUxsn v7M0A @ A@B !A@B !A@B !AeU _fhRTD +orCy]&URdQVvgAD]眛ʧm;OZy,JQ2sIП7 rэaewqp^D||$Q+iG:炘2{sevG0Ha95D8 !" KهZM Mevbn""*6?/Ui-*]%OHI%&I=՟sBT~(ĮH>IW`&Z ƩR0b%ÍU e܋mU]M$P8ؾHt Xә5[|Ăb}_ zmGQ*iKj !![= kE(CGzZ!u@8M30ȊNGWuQEX'Iu+Cr/*S2-hˆb vFV)y˃T m(V-oЊjEť-rWXg0#Gh;ceyy 'js(0J NWlkN|2ުŢoQ~:mzN l%JCѡ}Ĝݫ9ž H5% ܑ93V/0&F,@B0 ,*RaeBВ%D#F ɑ{ZHRŇ}k#7o޵cƵl"DQJM;W!Dv=%jF,>?%UCSB@xbwa0cQ[u0?QfHV>UBҧ} SjfdVX0̨w\HơvB-y3)ğ$Or!P3>%\Kuq>?Cdz#L(گzGQt[YdZAA⑏N30rX&)d=XoC2i=G)IDY+2_ʺ6 ai9)u>Cɒ$ʦgdy+!(~f3!7d@3phuWKa_yxPj_EFYnfceA6 N`5܈ҚBDugr_OvyQvQUGBl[!QuhvYC׋ P[!(!q3!dAۍB'siOz}|`uh&&`>$D8^[SW QR12:jhq|$Ķob]eN qJ25=^&ʺY} ƉpD~kx13.aq >9f,RмtrRWʔ(Btmˬ\}VHM M8^&$FٵoC\ I]ف:dW_kBU g'`C/^S%yͷQr#y=n>ʁsIwq׿7{gڔC*!bvX(X1YEYA?bqSu!>}N?IlF`g+  [9ӏ55afS-IoZҩ(TW m6hAl6Fz v':_|eFkV:ɝRk?`59u;g `T-ej^3mZb'{XP[P7:Ik{}50LbL(aZ %R #0iA# +gQG3BЅ~xsaag6 -/Ɣ"35+kPIN[.]:9QCCH\֥}ȵE ݀d9SwԺ#F `M0 ƀ$R{ZI 2-@518'Zjܽ6xbCcXWl$iIL74"E!_ob*;,Hj}j ?G/t )'%VVDFib] ;Hs&eGP+)Ii։'t~3q/y2c҈ B$]8YIނH!ι,Iނip_*$=K|Z!vb(7IM9VX7)\0>C:|^!H#wԽ*?nGjz> I!$)D!H8 B"BH$RC !pH!$)D!H8 B"BH$RBh(1#E"IC :F/# HʵwlgNQŇ33XTH0VΔB~L?cwTi%eBK_حۢZw9f\_7J/uB<tX=EW'I,\?cDdPRƟ)f(UpA QIQmؚ gOfFev5z5aIL gBnJL0 м8UR T_#DPD="ڏGǁIQ1Kig&4Kc`wy6Yu s;I mPUƀ87)cm8>+)C "!ZpCU9LnPOA8G2aMAn^)%BBK! } z@㉕q)!DBK!<} z@/n>pG )) ܏p;D}_ NW;{,.fV) [K<|ކ{9ʎ[E(B(狀g۹0VF=njf{jg:þyDg|9 ޾.ś Q*mo E*PgB4k^_5¸xFp.0dl.Vg){P#.U\XXU[߳p{&9soc͸ӟв p[)ZO9 ;]GB$4`%#!ķa!jsvnZw>JJ :G0`P#n.Ig፵ԛZ7 HsWJw.< 1>pMD ޢitb}/Qnv/vp=#Nt>; C]3\_¸xh` 01\* &V`7ʻfS803Q>|M,[-sZ;Rb"`7pr)+X ! `^`i۵'mNCu/S'}gG``P3JuϞd’HieTpJUȣbBy0WP20 B~UN-;fAjf(]LҪ0+wl^DL \zdT`=Fwr/yxOa\ "j/_dZsBؘۤC{m=sFi֌r lA)!Tt$Dl\cQBA8}Ȳt_ sv:f}#PD  2tQ!|Fb|I0FdDS`&0ט+U^Un5[,R!%ד]75[jENm-V¹3uFB8*lXbaբ*m;`p(||gݛ/=H(P1n&晼{l >DԖ0غ̦rW3܅})!pd6 !rb|Yq֝KQpv:>~_!2̳&))vF rML`'}[(ޔ5tߞS{YJ84y\Vvv0 6)e(BiVu&e}l = %pWPq#%?MX tֺYݰN,W*fS`e8.l ?w>Fp.狡 $=wAZAfqmro#Lׯ?B jSBQH<#㟥,lkhM=i,X !M A N$᪰J KC!ٱVD@;hh*Qq <:sxTw( tξ~@he=[B@1bwUչ`K8F&pdSKG˭'OBX}q 1B$#,aR~6qrYh䫄WLP! yjˍ UUc'J"vF9X~\f`v?w(@9<:ћ,_QVim -H~Sִp*Py8ꜞ+8Vbl}2&KMH6? Z#W8H ߆ Ek2q{Eւ8 Dj.G@;{A\\))G^,J| )zs*>'RGj8nl[k.}NO)`%>(\C+m*6B>)$DR?Ă}U}Q>-Iiyy'!f~+Z5|eH)D"HB"BH$RD !H!$)D!H8 B"BH$RC !p|!w%<߅B h֠ m+~އ;k\>[3pIȜH#mmz!Z+QTD/%>ѯ2tl+.Iߵ~ML璆KO,D](/̈́ x)ɷ cm"sH]SFB!>.3_%_ͻR]βJd\%U$Z 7ݡs3DTbx[Qt_lۅf9";l@r\NWg$ůGS.r:`/^N fōb;oEPn}:%U6GtDšϹs Ѩ.\%ّ֢n[;*џbǚO+!̾jBONgHw pwn0y`WDxAޟ_i|$4NH;0OSYC7m(~c\*Dl\BΐVH6^nYΌoo 6ywyG7+#J }1oWp2ԀK׆1-^DFA ׇ|2[v-!@|uB$)z?"g.xJ/hU` 5%?>wM/ BЈ]Bw1y @Qoc׀/Kc S0QˠR.D $7&9RceyOQ5O6y6ȕ#Y&09u!` RԁB HW'w AUonYo2 B4'BPƶ'ȠD2gޙѡ 5pLMCg,7i#wÑW_gB;H[1xKj7Cxˆ@v !g1!?-xbPO.Tn ATA)axs}ؘz!Y:k}B0Y5"K,Y.V 7[@LB̏%ѡ'x*vO!*@xg [V!d`pn!~w7MTG.!ҝY, [.d qbXc[C'|ᯘq5KC(ڴEժJJ:Ik̀\%FcyqCc!~!J$\ܸ% 0ZicCskBD!X0DQׄPdNx+<5+ 9㍉uwzG}p7_ 񇅹ɓq+gecB~'lJLj@k.qZrm̻΃'~;U|Y8()]y9mZC2x?bNƜ&՗pKzё|A )&MEl0\uy djWǯ/'sÃ'UJɡU+<#gL$IGw_$"R\kM0Uѓht`]#1o)\˜.Юr%$YguGi !`)BRn3KSNW@?"p]Tf_ йO Q; ~N8"1$eܮ،׮m!nR$ W5mNjBu=Va^=IDsseYD$0WY bdxfz`TG~Fc,0o׊uy6k -0:|bȽ7 T)j ve4)(4961A@q0 RQ ?B@P}M9Op Mx+&@t؜>%z4xD08 uGMBG'"J[h+ $|suH~}]Kt?5D"$E3ŖĠ*#')B[r&GYF'z#>OY4FsСܨC5q^B!+M+Q d)a_sx#e@}ˇBy>%. Zm=1d|X!;:}V.jI؟E)Ca y!!B!BBB   "$$@(DHHP!!B!BBB>@\~ &b<=&B! B! B! B! b%BB N!"@!B!"@!B!"@!B!"@!B!"|;M4." q9בAQaS@ԋ'軭y̐ivBy>Չ07K3 "]gD<2V $9uY󼹩 h"=0!  AP`牂' B| ,& B| '¯1 = Ͷ}Y:PekYl%YRe /'zmM[}a3 lUŷXǭ-i>{m<ӁwmK6KoiATze4h=%PxI=.s W W]8ҙl9? bL00RhdZa]c5l;agyiNqurĻyVNo!N}1i+/xnpEM۠(WѽrMB̝}Yk(Yv@,9kWXn6Z <)Z'6T5Æyߕ[Cy. 0ΆN3S kb):wdG`5@q NXni <>,Ul&03[~qy8r:Y/W^osTS෼wcRIENDB`assets/img/pro-fields/iten-quantity.png000064400000050240147600120010014177 0ustar00PNG  IHDRbV>PLTE~!`bft}fhk789qsv124ijmٿbdh~⇈)*,vwzOOP校ɝĤ<=?lmp\\^RSTz{~HHJ@@BWXY얗opr{wXCDF_`aG5H€|)QceOIDATx=I#0e®b `-jQJ-$Դzf&Mo("`mI?R2{,˲,˲,˲׎?چeO1lby1%L: b Lcu,,eQ 2$~VsB>fltF ^&=,LR`!Ulʣ=q &Ɓ>Z(@Hd O{g§䑻#uoO}q-_@b#X]7.eу?,/J\: hLȑR )N[bPKlAN}r츮{QVL! G8H <TP\W_s-oSv.5p(7P*Nސ,=U J#ݪc܆dc#cTuu9ݍccȑG8Br>8N3{bpdK9 @]uR͑6O0M7{ ࣣ%`-8 9+y8 0GDű?GOKqP۝#M%ܜcЇUZIQ*#*eǦZW <'~Ḿ_Z>q ɞmdYBzD481r/-TVdRi=Gd~k:=9ǀ@*% >5P@_U z'/Z~Xsddyq8 (Z:qi2rV3A2q%Ul߸0qYo 0qWrOt6T.c;dH|#uLMѐW!Cl]"ʼn|tLYVR˜KI#O41&ΏCVՂL-aLi2i̚8;qN0R!Pq3u#[5!c5ch/Vđp"|ykxd}dCYY#;6!C({sd(`<qB!RG\ҟ@L!ur Q]GҀ,qD17^<(gs87'rkx4~!T35?qlղ&<@"q~6M`X-f6BQ$Beo07qlQ6n/_׎kxTv1;q3uRC6MƑ%3xhC~ Q8g/ٹ$0O B HY碫iz!Y;9̜/g9&fP&5Vő6Vg۷dXg0g}E00܈#XQV)xaK1q .I8V~lu fNqj+&b(]Țc-c#CC@>qPZsp{Q kʛ8>Z@kiiaE۷YhY'4td0x ylKS(ܭnq̯b1qAxV8xH8NB5e[_So|NRDV$8(Ք?ˀRiynydT8*o39prw*sS@q_ ~;&u5^qX|+>nvW^OGt( v!ԱVđշ0}^8j҅M Gap֜+xQJed~~8ڸ։F9@U)@t~R}@Kl,n+7:8'Rޗ"~`/3`nkQSJColk`Zl4k8R=8z]w";رqL͚C:`tes3g6Ght\vjsM,ı ҜCms*Ⱥ1pŽ)F~uL*&I:RjM9b:m^g\~J/rS?P$y)x9jLQ$to$=/KLG8iQڛVv7((N-T#m uɣy0yF#HnE :oq\=&vswgzKG(3☑6Tk5MZЪ' d01ppj\C#L5k8ڛ㦕A0'ol}\<"qQ^98nϱ696!@Hzs0ޓmcַ{WqH>BU}ү:8TuDV΁nyT㐬#煏oUaK CІEi=ht] ',ϑsMyAQNI!'qJo(ǖC2i_O8BhӺCn҃=M=҃TЮBN8_lT_y8ιуA; 80aq@/w&@ımF /?qZDHEUU-S 4!`co,Gve〽Z֡՗\(3NS!~(urHGXGve_9:b ^lX(ga8q62}lGve〵Z^]-W\!/3㨐}hM S*hh/SdW>XK͒G 8Tf8^xA#ȷ{qXdXW?';ʬ/shΌn-shqͳG2ıͭYyq97\O6yĀeɫ]Zdpoc?K[MUwȬ<F80w6iT}LlwneN8G92; QH5r%G!nȠ!qWb!,,SWTa*A<ߏؔ FeIQYAҨ iTV4*+H$Mվ[; rfnzfc-#Mд3V?l,fdiq蕌T~dv7Uc vi0 \yڍmnm2@yQtnFeĐHbO[Pa%>^ۉL Q5oncB(4q$WGES?8:\uc sA"$=c|DZv6 i3IqxM(,$QHps+dG+s2=[ޅi ZDv<&wqp(t΍ Ǒ z&քHJCwH>78+uڀVRվ Q81Xky֧sl'đ3*5d 9N CeEy9qq΀dqqH"+ѯ =#7\ xVnTcXΏ#}8L踿 D2/Kv_f*yX3.!igG:suG+C,ha V;8 k2989(7Z}W#M1>7N#}@BB$;qu;vX.cFaꆍmrCL#yv<_HZلH80EނBT>ClȻOe?/^frp&4@uHN1 F6[l Iq ('_nX{ZWϡCXA S[8OG绿Kt3U٬lQ9OL,qD(κ(nxc{37}DɏE"#A5dFY,娝ydvȈe#6$RkHЏo_dĨ]\Yk{Ϛ9yaeϢR~pӨ8Yسqt/[ PYJB8Q$LK+iYј]鈍e8q|g(\Dma׸$=ŁO]eJdNxz4M0!$CP6S6\E-,XoS_qt'J/}ZcZ>:(4o";aVt 9:Q 8Bs&f*ݛ}D0%8~ D-xQYrl%l. G6=Ǿx nYwƁbsȚuF8 D=d8̓/%E8wcxKUcniGuҁp4^p;Լ`/F綸jB×%""""""""""""""""""> DQ0U 7]_)$.KqU VsjT1X=~k^}űG:Dq'ܴLJM 8~r hAA:"c{9[D ҞӣҰDM 6;=m@qD؄c8V`YD_p~^=bq\P(U@*uK zV?: V6:X*ӫ*X:[.`ݿRfdNl9Bq̽ @ 59 OZ{$ ? 8klzu9%#Ŭepf 3蝤fNbq3E@Gƺc8fh*<]Ut9ܭgM{o(05kіIBmq1q!ه%Pmȫ}c(yh05k΅c| B,7+8P$ xJVrjՎivQ9sy~V= ԬE+ǩ!MOȲ=Iۼ"-r%א!H+#'Hd&T|_ǑO^U=!C3kcU3sGH+>Wd+bqQ+ o')h':19؁fɝ:I@Gd|Uu ErM߬Mrۜ$us 2qxMrPkt/9f{$\`5iB\; @ }h< ]\6974,AsZk>+(,`KD@zFGeIbtA8ds*9cb}%aSFGeYRz{yr$;118n͞㠬M=^ \$:p8c`gK8B>hQaI @$qGe]a1h`Q$U`ˏ~šuXMe ozC0|zA| ctMho( L3šq/(;($ty0^ >QnG`%]<}3he/zC.7[^*|= :H^5>C^!n=#cƙQ^6лUL@k0B:YVUG2$mD#8BJ{GyB|U9 %5QmEJlĕ9Aح!pP2%_ed:yİiXln]adn]|D dM F ]`]!{=tCVq8ā8ā8i) ' 8 !H 8 !HQU?Jp!j#70F+}X l1 @ɑC5WHGfzڲ?`-(#u*p+cFt[) uwn&wP#;8[KjRa+XHjtdVq~uz z.?8~Ik+)\_E_nz*rjA34XIˣY?ˆUrEgS̡Lf.T,!f#M3{;8Ԟ"7W,ˌ58vp;G?8Bi3q|"?xr瓏R#w1t@UNv# .]+cS 2־;ǫxb2Y2u#,vb* BL"BUrqLZH)&&8o'Ss)6 r}"3#H>wH8l҇vzq=DBLH9LıXh1p7dQW8ʎ@HZub7cJbL%C&xnEq䘖Z9z*\!fayͺqE,H쾮Ԫ$+GIJF-)c !fāWCr>;! 9$0JQNfTܪDBLyHZB&c0Q`:(tXPXZǸ pc1}&`/v!fāġZZj/g1]8Ĭ9Fő#? 5]'M)k 9@-y\SySj#=tOv)'UobMxzF\IBĬSuŃ"fvUbTz,<"wvE ؁t&x:E!|jO`3Oo|M{2,-w$.`SHr6Zt[`kory]o^]7r-9B T&o8gxӦx-p:=ɟR p%FwcƘK8Fnq$t!M 8t~qYvqH$p8V౉c ocU H852k2I p8##ͭKsIQnG! 97jK4qRj47q>X ?"13}6qs>p&rIwG"amQ&Z;LN/1qN<5Hqm0VLgq&qx2 8~ٹC\A( fJ#a5}AGLB/#L& q8`B0!L&~Ǖ ʚWx^ִ^N[ ;H]_)O7x4zZ͵=9jXı|\gve f6@)6׊N.kBXtq9Yg>-rCF;, '9l J;GAb"c1!Nb} /mHv;5B{Ghg[D|ܰq J { "c($qEA_pf]q3O>V@^>Zq@Hl J8L^Ckkı.G!KjpB9禍chVi}D#8p,)Yq0ԦnDs֖) _%O:siGz#Qu?\A+-Y8nV/"m1j6mD~~$*ghtAvFapEժ}&!b&ͬg u}&ЬQ+UqI??cֲqs'.Љ;^uZqg ; `o)D5I9b/و8vJ:)g^0"iAػhIrسg %kQ+s̳r`paqbg2y$L9Dvnnzhְ_g:k&qU(9oSr=mZJNd_GC\O*[!~9=O\cO+9{#rg!"""""""""""""""""""""""""""""""""SP)fDw=iq?|kK FY 0`"Œ} {dזA(GLj4xm%DE=. _~/J"6"QaсuJ- D- X"cojCk+kd/.w_n8ޓGa>8[QЪ(!R9CCCCCCCCCC9}]'.$yqy@ߓ?!88@,_M @p`WOn<:) d# kޜ cM߈0G뭃đ?< Qđ_%G:ktii6!sBGNsl]蓏e~QF}܂F^И8cK.npJ;э7xLiF-rQq' 8>q z Գ%YƑ0a_鄉_gj8c]c1F?8FtDE'VVqq;Q?펃a_MhOr |%kB*w˄:ͯssM1&S?~!kY!o;DEGd˛:C]d#jNG)6v~z&gfq\Luzi8ca|q,ú6CTD9q`ΤrmqϽ$tNw%zmq6%#c-09ȷ ̇8<ﶢ_-*8A/Ȩ4ߪǿainNN+6.7⸶ǥ3G3F&80G~q7τ@6afqsjt?oaiiث&8j }(/& 8iFfo\D7G8v ds\s;s5$y&kޓg(/:>niݾ;1BkcǘB=8ajWwg2J-O;qƮ]r;9t@AY8tWTӈ\[?C~ #,H:l;@dhIU?jO-.; \p>~I?!{HB8HB8HB8HB8HB8HB8HB8HB8HB8HB8HB8HB8HB8HB8HB88JC#Uunq|c?Z@#P9!h+K<QyOntU!*.R1(ٓ[({H)8EeymA_ڱ AQJu+!]tK.L;sݟFZ[Ty1 I 8~rʆ*22psEeEË%&3Y?Ðsu,sY%+=B!B!*LP=o1[__]\-(W&T,~Q,:$ۈZ$w[晣mJ"a6_dh܃Q&OűyL@eI* q,]5r(M'օIq\:|J)h]rő8#/w'* !PZqB#Z%+C|hfpj=P wfI2 dx;1|Avas @8۟˞.Ĕus;kW rÈ&#S+(d d˞J:l6~:p܌_B8NS{Tq̐ov:(dWE5&4:p*ookٞ%j=Gnı!DRl3T0R񊬡Ov&(_.pqsJ/ }xG!s DRl&$+dn}KGk#WSf$I9ƅ9Hc\BG/PUf* }DUh3SxNa|7u=9 H3 gq̮έ7ā% 1]^{཯wz>8J$E̅ cA8-F6l5^ <ץ1=L]9Np++HV<'"y3|ƱB!f\|8?DO۫Ǒ2+bXEL "Y8G>%k0qTyf^:fHЮ9T9L9qY1 DlqtK::YEL'_aRHz9[0R.Eܕci!dV`#7}c\D̺4a HB@VPKKM!3PHš8Ϥ_8%Â"ޑ 2.9CV ƑDvW$s6_"Q6tup0TQp"Z mG@z*㱃98_3%teǥ߬gB5zÃtf8U3-^s@? w:)]9mn;swlLEk:֡YϰIfrbAdi1/|'܉=?RS"CDq(<,:&H\);%`,<2u R,Pq8OddžvKc:`VFq<&qMgΔ&FgH n3|xt1%?dI>Q8G;Dd19ڸh#G҅H6,9182qOAhHN rsZHJax$e @ɢq8fdƚWO Ix$oaL)lWdR8< cfqHn%7"YT,q,a*ɪJq,ZVIFސ/ |HUcd=ʽZjG$RZqlBu:dTPz|v^Dͣsy?ރHf%<4m y89Hv%Y Ȼ~{ l/j#Ⱥ\/;оGcp˔5Y8o3HkPm4/H_;!ӧyDQ")Cߠ8DQ")C7`Rm 6=qiN4(M8 "Uy @8pG)g#ܣO9,W\S _\lrn%YVmrFweޕ5+6vZ/5Uΰuٮ~0阯Yxo=u_kP^~@ž q塝Ja*sCBƇ%&[_ڞӂ4xlf\/jLNd7OKsbOIcJ^BWQ@GYq0՗C4N 崡О~8EhSSдgős8l!Ehm8VS j'rͽL@'2aMʛf|nvZ٫ NbbF`n$NдűJ Ov[ط̓Zdf:U(GƑ_oD9AK Jצgx)@y'Y1!wM[d bSQW9 ,8jU*M) YR.'Y1P+CY-0ە-t -%Rko"y^]IMQ#9 u!Y V6vWx%sa#䮺tveqo8nn&дA'q7 GGxvI6dkdWqlY?I7h=P# KZT7yNl֬[#r62"д<ؐqT&FN#pHd[ђj6qd;_,.yI8~9XW5F8j2L:E1D<PxG~WqDO?I%E2+iDI:Y3Ѕ Sh""0$SҒw.PRqTHZ92=KZN*C ؚ,+҉͚= y<[Fu2?O{`܁+Dݢ*m'* itbf\#pcDicʑd"&+qArD~LF{L*Qswg҉͚r%V߉G7i! r aM2&9D(ҏj\ƱWq@:j\E#RC;q8d}r80`%[Q&6{@O$^B% *2}݃zfHPiNi0ɖcqi(d5T=uw]/.g šìRŽlj͚ue>l#47;0Xj*h4^EqC Dܸ=m0HCs̟0]8(0#n w>+! ᄂxM^W\\ҫGӃmV(8 mn3R,S655t6qvDD@$Vl. >>ZR J#S+c. 6L8 B>0$Pq<^yEM\ U[Kg2j陯QS4S+5=#_7%n!ˁC]?0Or̩n#S+K$GNbC t$.i^Q7@6 \C|vϚzOH4O 9ֺ;]Lx[n;wB1ax&GS !. zK3#; Td'ӆFs=I>˲,2]J,U]J%U;гMn-%d*wرC !i"Y)W3 Χ6\\Yƙs{$ =G|UQ{q8@ 4 q@C4 q@C?v%q0OglyYIE!kkڹ#cV=>>3רhTq8>ϻƞN[adKe>2Sz\ 'U|8.?~Ză2-j7U_A]qa$m:ceq#A 3=($SLj$dơ+[fő!cyqϚ…$/giwu;lOqHv0^qC^8.^,ܾ/X;C!Cm=IS1q缁,g;5|WWp8ٮ8 a8*8FT8sz F ٟN>dع('m34TBpX#ݼהDFPq>O #ۊH+: LHJP_Z5 k}~q8Q{ pG ) 7!"<`N]/ ^0aC1U9V-q袂0]tC[݋C*qg <@or p8h c40]ml:)C *qgi@921Wx?qd$`|{Α5M7}_c~nx/ G L3%'QPxfzÈqjxq9/Ŧ0iYW#րZ,wNA_0vk8888*8p58حca %.R`P&$0*\9  @@8q| (rSPR.[9G@#POGڵa a.>- E`}2T}b&-ݿ{y(܈Z;NNvOc.ŐHl1[]+'GʤFgY(; {/Y?l~ t$Z kIENDB`assets/img/pro-fields/payment-field.png000064400000041411147600120010014122 0ustar00PNG  IHDRbPLTE.`bfKLM!t}~QQQhjn8X騨|}񍏕泳egk~ࠡoqtklluvw菑ʣlnqyz}789Ҏvx{qsw124WWX@삄)*,n᣸>>@Istxݘ\]^b]w[ڑi׆DEG[)׿ʋ|RH6}򤫳Ql¿EcvAIDATx1 ` $AQ@C B49dw(U^$mK̬(1u=&H^յMi*RK9f!&i?H*:1]M 8OҤD /bA&B+W^KoԶ= LIW2Y]XeܧWjȗEC4hm?D X9G*/'Ѥ.3C.oMv_ơG bUүV8RjuzqNRțr:hʥWbȘz%fM&D}\qUbGLXk INv)}V5_;=N#{c<WG@N'tocKV.3撎솮W%?C(R+ s8.K֜QT&iD ;UR]mIPY2 (i`Jੑ-)٠'iRH#_.r080n]a"ԑXRp|#bԴ5q8.Iv8ADaUXp r:mS/OcP!-;sw" /.N2]O:@M#5&_A^Xz }$ۊ܌#t(%l֒aֹ ) dR1W7WWVH!,ȤHW;/3˅? xЖ/$@QNomIjK"X (߶ۤS$b#t2{І|D p4ŏ&9Yu95Gbt8Nɱ86dF }/zM뒜5D1#E҂Do捘ڢ98($Y /L  즨B>!Iw#I.DeCs 73 phi:6*o ġ'>UUDƲ)e$C) O|sHZp~ w@β R8ޯ " H[%2C''SΡ3'6 drFvm/u", Dq( @82hd2EV[yJKkG)dG\e:M8<ɇ1Г\C 25r'~'4òsCsr6GM+taEkZt/K;9fz0pRd84ϔnZ_TX4KX튜*qH!Y;>NOT&i*vűlzJjs+'#=qDQ&9KM1JtXǁ̆hmK?&\ .sx6\#-]ߠkҹ6B|DZ)n;>j)x>7U<<<ѱoY1/Kͷ98 JIkc C^tݬ6DaHd1I$H .EEw)]z )zMBLh~,>KAЏqԙ#sݴsoT疬W'ok{lEy]ίРOM{ȳ|]xnf:~͗LԠ;Qok4mt#ڃa bw~X9;&K8#Z,hUāU-`U q0p1XB \ VU-XŤEeZMU3_A r1Lwd0b>:*ukZYS#!(m:-5rfcq0&#@%K2Ȋ>4+QOPONtlۘ2L@ l,"“ogw{o7)]`]N[|J k$cO񯮗||RMX- gkLWlMYK<:E$MG!Dܿk%vߍ4WˆڑӒpdbn&Gf=?ӖSnC]RDlrԭv|!_#{'-FRM֎倜 7L]n9P+@(<%sK`捐y("{ - I6]9vgF C౤(Y䈒8| _|RuX_g-vU$l'bQBW֝ybk#5B9T,*ؚ!\n{sVaX.)ȸKjBek>#Uؒr ,PDd:P# xڛb33@To6A5JF(afO;9fdr$c?TuQhiӔq>wq-w'Bn5(S3r4]b=uj) rK qX0r˭r1+g J69%c< Q3<ǒtM6.*ԶSB98UiK_hN, !n!HO4'f q9sh~)c>a9VlV)NPD3B!3 {w6 q8 ^X30cP(cK0?ϪҴ#HSI?}f5ρKLuӝoWj?a,Law%<5\]H,m +l]81g#M9`ĥniUB]KɊv̿²2 WJRjׁl*VRI>~Uց}{sc[(tчפp\: (س?jc8fO18c&2±Ԅpd01 &R‘PjB82JMGC `b(5!L &#yvU' zz5=ͩ,7^5<0Qkڌq`A# -}|,^ئ }!^+UyHzz57t9% 8Ց^ez^{EU 4T-l^5[]tAՏj'Oug0ЫTD׊k"ICw7@HSL <9/_;];c'gc8-g B ,H\yBGmu Q79M@'!6A k^kx2Y3M-O!gyf:4h1AcDq #jcQcƈ4FǠ1851h1Ǿ4 amn]޶1模/EGуxڹcjW ^0;BSCNM~o83 Ctͼ@gy8(kG]2aK#J!B/qhGfng\W q@ck搷tlWBj `Ec$ā8Z2.F.Emn# ]8BC- }JpC'A!ǩ^5uKg!2YiSm L8v8gcXӶtB&h m Haaso47a~`ZUZc; ]4b߂\K \#g)|VhOqfq9G{7R߂;f3à[ad%vH7_wgכDЛ=+ +,,AA*JIKFƧ>\ktl<]:ܒޙœȝ_䏘aJXRБ 'v9tm<&QT ƞ(8cjN֎倂 _n5|QQ+Q]@V ^x&KۿVѠ<.d\1~D9ja([7! pGn`Hg_*ɔ l '0mUURe)Wzq&>oGݢ(&өX$7GƧkUT#!bWM5s:5^B`bmP9>Ο7|q#'hI%D`Zrm< t3wr TaX Ed 3IhH o>p[Z?ifE0FJAzmVN=Q`, _rt8 n I OEdTOomk/{Nrb!7d.ǧ$S(Sa) $rHh|Ni7+8C9_*h Bc(ĀhFL xmi櫢HgU*"qy7\9&|"w,yLV)ڜzC=/ޓc0<kx9 Os隣 )3n/|L㣵 G.GѭAJE,:Rsf rTt)y9 CO搖J/fvmk:1՝hb8L ۵ xjخ,mVŇUZvFIՄɪ͉.6Ԇja.-$yVoVk1= Eԕ ?,+w@OL C;1fP'C-!%QKeQiJyۆOV5 #:r紪U3S[ϝh9>L/EnhQ PC۸G#P,r}[9l/jF*}pAdPӾ<)#GKB9`)nan3^I5M6l \g_33Mٳr"/s+G^3ٙ}'Q-Cr(f00g 8a9!] ũ;hn{m.QmQ[+#(;c)F",;P:,Z1e@-@9"r,b"Nv@O{چ|x\Tm<ꋝo=(9d .rt6]8qu!Ubq*G 3]t-QmYחڶ;L"+rx~-,=M [~cWf)rcs'r}ؐHr ˥@V>q]nw{?Q-9!C"Gg9U(,R>5Wrxi2s)Lܚ{lܚ/a ϽnX~'GY*Ŵb1EL4Xi.Gn~+I!9NhqϢQ$+<,w7XMj^Yуyf3FA販BHb\R[x"XN;0B\Hl_ȣ}d?}̠gB3MMtՁUu5SST"{yց*>Al>8"xN&Q /3 rrfFAbΞ}@<ȱ0j9H &C0j9H &C0j9H &C0j9H &C;:?+a'k! C]-vsA~9jŁJ+Ƌ{MjvE /~HHɆ~.Sz|hZtYRs}KYV2ŇTSL9X-ƈEVҢSD>z7]-ߵdˤ{c)ֱGLR&{ϲ륾z9qUV)BYxdGvzS氓cl昬Lj'yԁ*R$)6A` 1A`xMbƊՍٳW33L-gMxŸ oo'm OڮPҒ:8P~ɌKj/NYy*pS]oҌI! ͘PҌI! ͘PҌI! ͘PҌI! ͘PeLm}d5< 受V'CD*Irg"~l| yor!@Yf38qc hJT(v+xL!C 9N2N76>qk1j36R9Hr!&ŎOe錕@RTβB>J*G*<˼76>q fFXpA|xTT-yEg츦N?xc4]gʱI*Ǜ(BI0ϩ\+1vo_stPI.^ѣk,W AZm[o cqNq=:o.Wp~*$ )ڽ*O{lZ=={aqƊ9j`v/ɑЛSTPIE.KkhRH NRn?#c/;;SЋƎHuڑrY*0kIr<O*GJĘ,vTV/\jriJ[9r, rh9 UIrl`ȤPK`}rdX1أ* h_mǗ&y/۵1:.q]H W'HkR&+qwr]uYUy%yW)rT<̕^(l_W+ƍ}{99O9cyr`Qy /+:E( ̉\zثy*50^`|6WkKa jT'k3lw*g9 ͯ5%"/RkR$ r4bc Y X`V&S V(G!ռ-|{. L_1"Da _ZI@y7VM#WOI`q&_׫*yI@7 ;YwT0¬@U2cܵ,0G<|PaےX(fMm].z.Y&7O%^_oX1BX\9*'yT@n(@D&x=?Nu~wL \œ"={E|g'G^jvI-`t}f/d8'9sb9ظ*%9]#G+K^,Q/L=: ^(w0VIx"NE' /Ch#&7!5yr*>=($SwVNaUOƥ5Z?X P3m+'9Lz\/rRc Sj᱒S4s=zrZ/R&#kGr&ȑs b)U'\M{L 2YuFG,GX7HLVF&Dy]Q*],R$.aRICME3Y2qj*7e"^quꇚ"|Xrdѳ?1 0 Qr ^FK.{w? jҖ.:gug.&C˱F~Cr10]*4,hO!\-Ǭc939~"r>:*GrtYCZ4A#9`T!rေ~/_1U;<CU?߿ޞ,p*e7CXg}i\"[FyhWr *9Fnp G"c9& ;ZM EJ9c\@ \aYt* qy#JAoO0M&MHan"p39zⲌ,'' [vf}b>XaR''9+px>~Ħ9U@W9ZpUU1~+娝9rX@?(=4E2[)tx9CnzDFU^-z9sx*Qrژo6O(A:kVظ,,;-q؎쯶tm3K|_'oʷB!;d=pU"[¥7kK#oHiÓ\ppeҷ5HFGb.O>o8 pb q~uB/O+DT[j\P.o!k)35 'jfdBqO!`Mr0ۘg,WuIШ%Q( v!rw! `kZT2+&9Kb5Gi  D8< 9Ylv6AfxKp+d-''C8ixB} y4mǸ461`HPE*V9s~ywVZBew\n +^ 4 [o=Np~ GC+@Ne;GL61KjwҬM̸;R1X(:kbU !ʵsb3 B,%gա!=spm*A;ܓB!B!B!'{p *?k@p\ўbbƁR!-6d+ -<[wGIH*+| l{1ch`."4Sכ 1){r:L%De0cO*-a ^=RNMpD$Nn8d2Ӎ&:rTƏtV5n* UkB X8G,=s.n@Ɓ{p *O`OOvfVХ~`i̹d#H1=sY<N8.>Oy2=cn:Q_-(OL5ꗓ4 쬬yCC;qxd:8P`{U6ٶ!n0&V4aYCbWƱNFIojVƒ4㨓tҋVnc*Wb:_wH7NoG2@FݕcԬƈ ?/ 7;wЛD`˘oS ,ВfMԦ5V"&i$4M^ua|5}*'e:ּt(3q? PRNvris"\TKR٧%1esvmmXr7ς>jO=զ,tL}/ ৃ>e9aޒ4BI7lm/qoAu`q|%E8qMN0 q[}wIzQ5.u-϶t־MځL>)o&WJR8rdUqtBĚ+_dYhOgu$"#szmT$9zƒTʽwށ#_AGn(17$=ߋx:Nز8 MAƷ- wc:JBqhf=g#7VzxoS80+J8NS^ѹ,8i>C߶p8>mnhN΀Ex (y7Pđ!I+Ts[3zdZqvdqU  B֢@@OfG~(5%*pg'?e2X8Woe%nհ)]A]g`JqƊ∕ 89$8ќoåRCV 4rV&lsׯ0쾰_8y.ݿFۋ#fGey%{שEvqX̀n\ s68A ceL 8AqxAqx>t8]SJ;)8IzaR@j^te ҁs\ZKL&@2H{=9B3Dk–XG]9 :`qF2r"NJLb6H Hv:~0IENDB`assets/img/pro-fields/net-promoter-score.png000064400000016315147600120010015135 0ustar00PNG  IHDRPLTELPDDD쒒GGGPPP WWWrrr^^^;;;ddd~~~IIIȍ"""lll襤iiiLLL000www@@@666́蹹zzz***&&&nnn}}mmӠ4IDATxiW@{&%K!"(*Z;ą>_r e li+l8^3&M6nx*+a 37foqy=EPgO& (JRQ1#e/AF"fz|< m0WfI._ߧ(~>_d̢(AKVVC_h)<$yNz@B= CW7CݹP w7UlAB}ElokJ^)EꦘƝhY:5Se&{qˎkVoWpPlԮǡl|HiϋyPO' 64EI=L(<]vM=%8Y6ԓ9#z]-Cۡ&yIaJF: n\'\ u0MrJrZd^@#Vp$ Mr:̠<3Ϳ꾽;o~.'B]~3\Ñyf$L6 +я7+P??>%ɚۡ.[5+T6PP&P;鋽^/#+:eF7t qPxnB=-vKZQ}jM^_7KtU;S$-KY de݆/`E&st "%#.^ϔV+혋Ȧ{JQgCݎi-<"oˋQp.6Iף.IT8Y6iXnGr]r}lӍbP̼4TIozDP;*1qwS)gR,١ "tI[ꬢ"bѡNPϔyzEn@=~'X{7·)g') /AiX$f K/mm+O2 bAQPkFvLlS6COu +nveWgh=:JЍ~P}[%'k7{S&< T}6koKiCQ'hJQ@)mN6t֦QteYRJ)RJ)RJ)RJ):CvDE5((tdo9ztjFuҐ({(!{)pvCR ^Eއ ]$͠'%TOu~'ϫ~ R_ˡ=Kf@ׅ[.AC4JwU΍ՖC7l#do qEҨ+WNQ73T Q6}煨Soz!1LiԕR>aVTHï3Q%{3J0- %Tp/"2%T\b\4 `lNu%zwO0&Rzeu%[ȆWHW߅C08\RB(EKGf|h*kr"ׄ*Z,%2ApCDw52QJWG]00L:6"e(ͷY2z@G9 CW_ CLM̋D} b{q|!lʉ#D~.}?);Y9u'cGAm@wHuyQJ7D]2B~5n&ɝӤ9DtV~z"Ca .1>B5왨;`xA>St\ة?MƳ+fgG=o?k|\_N+J)uf79˔eShෝzb6e n"8.!ݿxĒ=u]0#ۡEWhEQ?2̨aexč'[6Rg~,F]wiq)٥ѐ ]a+1dF]*pب/. ;/r^hvdϋz@ C*0(ԹQ_׬pEF}(F )Sm^>s6dH8g.EHۨgHhW's1yQ7bo$Ez#WQԟĸ$~9ѐ c$dDݾE}>ؔn^u&dD2\RJ5zRYta*ChI,ٳQ/T 抓QNgGUO=߂aEd(  AAD(fiHAP6ҋbhDmoO+n/2;@Y8왨UވE}d>C|vt0 !"2w@3ꨇv#6fkb"왨1v14fv$/EwzBԥ:TM,1Weh˨) $VEV ɪۋL("{&QW:* OA`/fŻ0ۻI'@1l*%#kQ/״^6ǧHVŨQPe3Q#07!4ʱ=&`\僨;L߈ RR$"vz ̿›GD]֕Q "{=k?ʬG,@v?# ,1{+DD{Oec)AD3 l/b`,ٵgk ?JDI!33333333333333333333333333333F_033^k}aff֥v{rV1*0t>@}ˮ~]g,a|!*Xv (KmkN?XCT>B65Ƃ 8ƧeCxc1 Cc Q 2^vv1|70t>AƘ@ Cc Q G}6CT>BQ 0t>BxgC0 1D# 4 Cc Q G}6CT>BQ 0t>BxgC0 1D# 4 Cc Q G}6CT>BQ 0t>BxgC0 1D# 4 Cc Q G}6CT>BQ 0t>BxgC0 1D# 4 Cc Q G}6CT>BQ 0t>BxgC0 1D# 4?s__.|7?ͣN ޹ Q؋I Qhjhi8f>Mʉ/rd~l~O G*X!Co̧Հz8 W]c XCvQ1K(f#*Կ)oٍp'NDjs"G D8ivQ_Js GN^РfiPU]Ҩ@ݓ7prX([EXD7}AMS2"ZBXfJB}'-^J.'VXZSPT`UqmW3HZwJ6TZ+kX6(P uTBm&hDžłS8R5k 0Ѐ 7[Bg%%4,_&AX=^/Uu_2n#_/OY28=0 1yP_ɋ&OMy ԻPFƌ`bۻj @L+y堮#._P$Am1,MEt#A] !1n.]i]2~G0Yn4RB}ۦ:Hu;XrPU1 AbrQh8ª]:NIߙP(P#C/[#F=nKz@}cw6ԏUuEܡ'P7R)lhnyT uط8]nTt6DرBJȧLΡ߱=W T9Ձ64 !(Q:@je#F@ peT y䌌N[w?sࡋ$C3PoU:F.B ulM< DV'<\:%P]RI#x1Vy?OjpVz:+ bߖB;ǖC~EP $yG)pzU(O)?S~Z/Ox/lZe12D*byb@5-E\}nJnjrPFʐmbidHynm9ujmuƾJ\wmJZfu[4"\)t_`H((@D!(Ah0$h~ "D 4~4? A"J}h ?E >4 "DdRCFG"2AD ⛝:A8*ac3 f!vm!|!πAة!98>bbކp Dzac3 f!vm!|!πAة!98>bbކp Dzac3 f!vm!|!πAة!=ul0 P: v"I?[V*<8c# b!r 04!䏀Q71?"bK704!䏀xL:vc1 CB8f:b@0 c# b z}5ӧVn,ahCqWTcUn,ahCѧgա `?G@@AU]jWl, ahCїjǥ `?G@@<~/Q)>RJƷ+RJ .Q'fIENDB`assets/img/pro-fields/rich-text-input.png000064400000222003147600120010014426 0ustar00PNG  IHDRiPLTE333PW^777YYY^^^DDD֑dddQQQ>>>III񽽽ɹuuuzzz斖VVVpppԙMMMjjjU[b}}}񡢢о mmmNN==rr**󋋋$$ 88xx__dd44//[[||WWllDD2SShh22HH`fmY`f%%%|hntpv| ~BSamv"IDATxOP&ʀoU@Qt3dN5ҺdK}.^}INx<CVܧWL./{Q;iT4%*/=trM_x)HS2HA:a8.\֌8gF6{_^|PLH$zMKgbxA0FߑU yyB?ȥ6aU:F|Wėn ?dteTnDɰT_ID4 ee灛\_:s@!F̜fc6i[356u NMSu=EP.Էgmv%C2dl>rXx2%[.O#&Cc]G1[io!;%@"o>jسb6o%~Ȣy_ѭ>}^ bȧϳ lV~-"(xYg@16<?`Qoں/d4Aku{i]TDUy|.-&ȗCie@ۭ|M,Cy'mp/E+F5" ݶhO*9t|mAl;$dL6&2zX3;Gjb?\w3\ $>Rẍ́wukW'>QӲvFiu{Ȉdxlx%:K|"]ӧۉO8/qy}$dԗj#$`ۭ?xeql{k,oijGӞ &Bgt[wJ|`+Ǭ wKSKx 6&YSY9=]&>" 2.nI[n>X^^%TI2"5 ͻjnų<Խ4\<ɀĘ_ٽ xxhgotɏ 'h˱Y?Y~]HF /ku/ϓD2{"7x_pĻ~Q1kkA`C*v.YK6L|fLB@1n5%ik_9U-mj`'3AlY vj}j|2zx/y9 k2~ ;ɉXKrȄ=szŸNr::څfD֤BuW$`;pzGo'vM/z?F8'&!a!ָ 7;ul0 ,dd֭E,"< @WIwԊ\FfDhϳh9wW<@C)`,x0R>M| :2OUܷki_xOm7IP\Z9Rt%G+Lac4U8Zz&>A}^/),-ꇡ;ɲSSz+PYs+vkCf%5-'sf2dVJa;r@}ⅹM/҉orھ_)DCRn7%‚*@6=/#@'~ (x?G $^b?_ǟK?-cx¨?ׯ붎%_EUߞdf(A<^6G{Ԧ4ԥ9&P'r'M2'xkBF۩&Wh_ԅe7.?qTnpw>/uBz#|[TLIw,_t#H|Ǔ/e/h9ħUsܥĖmҲmo[$5PxHXINg £1FC4Bzъk' b^qͰ? ߍJ u>F(;a;T(6#&0M-jӐ4x Vyz%rlh JMR=cHZ)ӈvR]ݻ8 .╛h;EgVŋF0H Q o1"H.ĬK\ȖE>hv 4wgZ`WE7&gFI )IC(;sK[ /k{'Cg1 57Ǚ;nF ./7㧙Q5E֊?^aq:f_gv7\Kk\k?@e+3 h8>CNARBJ\eaMf#?5llqPX8[ 2BK\{.SF($ߣd3{ԻĿ}[V|KS5I\FC{XFHnnvAmx#\{Y$L5:oQg )GB'1q !.v&2 !ng x3/[ X:ݭJs)}-('O-+~F>31yS4Ojqg (X4<ճ#º%2/9f)`b@*M: dQFx;Q&k&zYT-~F ev8h2/Cٝ╬u+~KV2в(=Z_H?O+>?\t&WYmvfPh|YAqD/j IM"AZW ӕw SNj4zbQuw~P^-cۑ4U|456$6+|fxٹ>b8*ܟ'~Pxؿg,ظ8o|ӯ{u&?$jmwnKt/IAM9 ed2dO>Wȵ[a.NG8泎 10J4jxY)\A?Mn=sşsS CvʳhTX32d4chKb(kKD Tdn3=\\4a?Fig>1D1yâA~Vs"뭟a<7x}ÓTjdZV$>qpd1R Æ]5a]V@%tm_ɐm/)&|0lOx~_/p-K{xEIyó[6LNg~fj_^2ğ 9⋘Sr:5?RCz?A )5=U'_>/ 4+s* Ca0 tS[goSA^ɠ]$"ɗ/xs;C7|ߪ/_%UnNX| m.桧"B$-$ACw% cf+N 2h5OP׵;PihKc͟gx u ^Aw,]][qI,UwunI$'݈tI?tl!oCQG99HZu=6{?0txk\;$F$tZY[ܺ'ih t`|ZVL!]}Д0&<5L . ]0m9)lEAf~]wQ</i7zKd ?tݰ ֭iK| Rd:a4?@2<:3&^,Pc]HPh j4jl]qbZлu}+5nt]I|;%x#kGO^n);1!Zݺ; ڴݑf#S%,O|)O-TIN1,cHAhxBHr"ƠsUjt$HjFQ}{qze-?4t}KGРg h_cCUd\"'Q͖. "1wxˆz[B_vͳۮ+ FyoʤIqN$~v & xB2\p$şfL4HI˅]տA"4&&L N"^`|܅B) mO9sf{2*X hlZ݈Y$Jљ承y34='^VM |7ۤW=j"s<؂G FT+'SH8k$^^(}``qԄ= UpZ'Y0Ԑ Cnj/O׎̢q?.%X@_onyD- tTBFp΍8aID/1歿+G/QL^N\P*6&RLxp+,y&v$aDǣ}9N>m4 wš S F[Ʊ >D/JRlY'1EubYq%s4՟a !cačL4IGm'R.MBmu3@Th>>_/m=V_7z_-cDjeEȼZx`N(ށp'>CNZ>'ٞJ8 5'A#;3'b'Q'H BjރqdvVvSVLUTfܙ'wsqJ Ƿ 2*TE+j{VZ^[kL_6I0Rj4$6l6x֨;NB7\:+y/*u}Z>gx*~zpNdjfVҐ;Q]ς>DIq|8#硅P(1H@t  q,-wPftX2|B.n;w~b<4J*ޙX2/$Ce5GB oIԣa/BBx, */q^aq( G/{9 &†mXZ>_ hɮ5G)9+b#75_O6ͷ(^Ty?` RPWrhQ:q˦ LRG]U^|񘦂rS>dE {o;( &V ߤ Dqki_*\(倐p=)P׀8d.]?mr$GnNC2>-ϥk C]sURgٵr fBX4jޠKU|2M.NC+E+qn;(w9Bݫ8`㯧0Sؓ}cr7K/iK!;Ek$n rbf$m*1/k3B5?!yL@[0a=EKgDDE۰'t&O֌gbN[}b:y]ځ"~ lLmx|iMLpj (n tP"w&^H[ НJNz~ C#R)*%:ӿS<8I0Id"@کxI 6>T&w(^$_x%;<;t*>l,QǠgĒUWl %1%رCT7h;pC*1?wPkZE,5%wH3"NmQѭV-w#&npr-B)̔PUĮxRwA+'Bsw}D|8r_9zRoșQw,y&̮=(JIjё/P u H wh;7#Q0Qbku֤:8!O6/ <\ "nĔNMh\jXÒ(~J| nS'?)7^$4L*>1q>o6/фvk%#oƑ(*ޙ)RbaE:lGE *@'iCN()U^?*qs/š{߫xZLuRq GV%;(6Z=t(s7gbdy爂{u1c)6aewC*'haq͓k(y03AJDhCjn7p(t` DZS C}NпIcu<@hSصOEiI8ф:)ޭM^ *Q e)~q5I\u+߫x:ȮME&.WNx)/_ %ʊ xXurXyF0T\`'r5ekeZ6ܞcS[Q*~qFV#XQmPяDtaA5zDJYZ1sL&`S56Fᕅ%=qn'1MA1DuT| [) \"wύ)Ltߞ(\U־W;duP<8j!+V;œY S|hQJ7Ƌ-F68fGu) g_emQŒS5p(ԗ] 5UnygR̴n_2W^[ c9.mW| F74&kwVGloX/+(>),dA >x) \7)~?'msG#3^)zEfP1ʙ]'eGEĩK/L[wV){CumFYsDAWYכkwC*5W\]Iػ(Uz6O]C5u(w+{j/t wk'"ۻ GQWCPK3h1o {T|uT9/&$ٖؐ`I{%4CH`z4)dg?xFMȄ[ިSʮì|"m 8k^.x{Su*8-EOu 3̡9# *3(=]3x]|_OP'Ww&]&Z *VC[Qi⻦j HL`~/Mp b)K剁1-;eżΗbY!T n>,\A|d %sܩ([oPyjq`BKÓA.Pƌڑޯ*csR 䯏msXb*r@rJ[ c[ dx͍rek*l(ah8߉ФV3*夾ZѢ)6y/*I&7% KDlkpvY}ن"e/q%68;l-_ڰzyZGMvF(>&p*i=Y"U=ŋ;hrDSx{#*7}WʕD3M@C"/ʏDmaK7 xH4DtH̺'^Bb1-'j CT'{̽Q V&AIiWsׇ T54_@%)G;(CEZ. !f槢QR*8o ߶@DXuXzE*X>c9j5y+ӽ*c/k;\G[62'#Uu9mAx0!`ݟˇ9yyǓى,EjPاuD&PQC5Qp˻5䊙4Dk&K Iv=~PT5G nnoS12;M(IzrjG)gtuw˗{ǥMV_3aI(XA_zz9۞"|*|uhEcMҾ{"=(* I(bGhȒ|اaj?/,FEsu`$:wwEI?@.MΡEɴ:{TE MIKktѦ31J:Q0lKrBG*FU FdrÔJkM -7JɁ\PR.شw-: ?D8۾@ 5N֘2ɕ؃sf xMݾkx`&$|Uf $L1K3p^ѿ;ٽas`R 'Ԉ_C-,,]*({G& sy=e,G׏pĄ v|{T)|AgMiP}dc- efb ^7p*EA=xH+Sve>MU}p/  ,JB:{܄Ox4-lC~UMdH@[oD QuX,Hi{ ^~\..iUtMū%p޻!hŽ20d߁O1W:䀹kAt ḄE.oW-d_+.!Y.T``Ÿk_ȻۋF2H%o$Z[~L\%]7 - *l%NN|O*p3J )GIjZ[ b`c̟KN<;+~P).]nO~ݧ{?yhM%}UY*~u2B\5Q Řmٕy %rڑ0LIXQi`u*?ʿ}{C*#fhOK0^oOFPi jAt*?ʿGW_(>SBUWFї88 _cQZUyvG0:3N(Dz|aSPEh^7;wӒ@`̩ɈQŒLMRwZA ZDEiqu.Dfy/~^ L6SJoUC1vp&+0b?,;i]">g[UިoW~$\WC^Vx'm,3|Gƞ&Oif M"[*:|+ēI7B?Jbėq)BBg Џ{?)1r^B7b5:>7lO'!^uJ KWB߁f* w4'SPiىP]kõz'Ӎʜ'6jP~fl6; B+d.nf E*#J=94vtYiP4deP2uLjKcK`J5Jۙ(l1Lըoc~kgk7hދnNJϯ6N(7_m|LOa}k댱'[[[[?t3wԔ-=:{|v^=|~ m.Dk -ByMYd;<ۡZ*}٬78wkFęlN>KjX5:pݦAfC)44W9*>ޣ7de^FYHW+px,( +lԪ1ѱj-cZJTQBA9ݢHr#)Ahb ;l^҈+tH,8ʡd![b|hk'Wgּ63HT~LKf,.a(w3`#'2b?0m7grIF=ƛ)ok-v >tGxrďB45;W.?<!t$=2GRP*y*?GB(հVL\ cI,b`GEwd<>r~(7xkQݽaWnīE„&ڍ t[ +cA1DWVH!BtAs;z^Jz"A @ө|`ka\@KS9T({e?^1ΚF}:Lbz3L\oqrG Hߦ+6{dXݹd '(XvkWM cDPc̉-ԩp19Q"/FL)#HAF H;#2f8-Yv+@`WGDK:lvZsTcQ1<iժ:h$'&BX@ [CJOtڜyK?fMiLylυx8+s-KSB '1 " "8(c䓄Z0YHcV@r7b`oU٬-@??槻Tkoʼc=Q bRLԐ_ml"bOG>ɦ}0bs^_*y*3h#ȯcI  {xXD/h#Yn1Ʀ<%pp"{$Zp1Q5uNp)#Jf^}:AIashc::xbBV(ETHS E'ms 4bSA HNVf_o#di$hg]E6ӽ#cw ~'O 'dw kD.GJo n"}p5L.߷?zDz{NG%?uuM^ 3Ʉ=]w% $U .wkbB$8.fBѽ7deޱFxyui ){NJ<nk!> 4}#* [%!ݹhrԍx_'=b;⣢&;يy֬&:.$q#UsN*sc{IiYdfoKx,7 O{ĀDR) բɁN(p%<%reaNEbO7Y'~VlR DăKuk}F/~dfqϞ f 7Sƶ2&X^^@x KOB_%ψGl5\?q>o}7+YBJsSʁB.A<4[Ox+-[4ydCj.~eQxTBg2\JD|[W bQd_զ9!/6/A|seb7c WNXqQ?0vL ]a E^yk#USp/A*n|VG1 ^ "V@#+vuZ,!lG}̀ir 8bFs2+أ(i "r~ݐQq!ޱ$PO ݸe(klXte'AAb75#W4a<ؙXclTFN7vTf$Z![ 4 aIħ2|'Aț3&iT؞ EkݤC(]ycfYNvNHǺ1l0v4/~BhTtl*tbSG<]61}p s}Yi#T9WEgްjNW|WA.S7+xn4^)iJs&6_3| #nr?bjz:O}dֺ{CV3yՊD#C xn %EJygu44B>_+ I9fC</4E.X*;>o7?!ü\ST9$k-+9tWvYtLxPg"~Hs%yEr9rjvB7Rjf8DFGlF  ,) BG]GJMA@Djz[}VͱVXR0[0Lq.PRcY %0k _Ύ3řy^ܛyB[<8 ZyaW+Dbzeg?UG7Nfc탱9YwO?-a=[7`oǿ{z V6茝iؿ#c+Fe?G~{qx"EQqD 'SbXH;D$@)<;Q$ӁZm"rz⊺zD5Qƿ^""nBTy,Bm67.y}+ykqĺ"*Vv5"3s,&S ClU#[yӲf7[dH}VSyZUSл:[RL6N`50h`'u$l9xb F<% &p 1VVP)b@l" 'YY6xW3!ÆsTIw"~>3]VJdOfõ`HvRH*°ߐ<ӑF<} Ml'\!B\`ֵ"W^\_B2T}28"P犕Ժ% PJl Q6gZiɵc( [ʸ/_\ d/mOq߭߾? 6ܚm/G8?F&u=/B31Lݽ]~towG˷vx7w~xa| 6R8_9j6b]w&蒫9jiNwhȠ4L/7Z NM ?7ΖԾ?rW[$k IOAy4M%s">[*DIיZN@ۉ)MzzV30<㛲EqŁlz`l]9Q}'HoqwP߹Opg5_^&}xyX:W\?5ZI,,'9,%ʽBvC3,El*X"U9~%Æ2N&Gs󊝒 '۝o(֘Z~tK^A;6w}:.eܨN}D"ka"l0]Wk8Z ӥ=ղJz]/0\G+H$">`[c/8x,d) KYR<@x,c̛68'4#ǎm!9В \m)hiLO_+]+NLRC[xo (> }Ue]C_ GfSyg~2-T9*Hd֯?^x10(4o7jS_34%b4`貾DfOɐWq6M+.Z=U% ,Dg{m{(lו]iMG^Ϯ>!_:t.쾸߫o<:Yj@S|`K`0 JsQs_,   61z ū|Y8Zlv;xUikZs`ՙT`T~L@

    yU|P(ޏPwdl?7M'ass_h7)Kv~oފr9 4,6CT [z.W8:vЈMEJ #y!jt"˰tJWW2t,ʙJ3?7E񻻻3O@=T<vV|Ը翘n" ȥ%Uu5r3I鵁 ߵĈBqWv "D@el@SЦs qWv=ޤz.]]+BͩxHO; @ROC DY3R;)u{N'b0}1w@_5@KoxJ2:ϫp"]C: RɡC.(> P+~ɡ◀9(l494&>VHj/ xo.Z9Z*EK\NbP]Bq\(oE R3 /Ƕ[$h5=́t4W7u Նyo=Wz=\ _̾Qqut+Ҭ&/[M 6w w}L w#RJemR )>ۈ|X,C~a"R1:hyI֎;FUD 6Acu$G[0Wk+P2 b H>U홠5Kvuh-g7AϊFCa;aJ,4WkV۽m;HS0BXc]H#bT)7,CϬPHn5VIzA*'<2 Q#E: sIhɝ[~մ7nݺ#_p8|{iǻ^{_}Ϸ\x_S=I|ݍo|Og}to?SOo7ߺuMtkĞR4ŇWfTU{ W9xE7bEN[>F8U6\#&2+"D w*lʰ.BsP Zl G3d4&e˱M IG$Dc3Y}r\W< ܉V:4|jQp4/W8R Fu[L<1HJL8}{Ŕh\֤Zb m`WL'VsK,hUM$ C. J's⌼C$v}Ȭ < A׀z9`m1'x3y\xTCIȮ-6lzXY٭q3ʼ -~Yi2+gHVЂ{P'46'W׾x1qjϾ]u\꣗_k{m>z?]Ҟ.&y*~E3)^M8P>JL{&ŀq$oI)hb4dm62b`(җ:K@QlJX -,јĖP|#o{(ѻXPWm;91G28v^5ЊD*jey-̥(]=ӤP$2/Hd۟hoGe6aҋ>:@Oe䇾B ſl\jTE"=9N80*N$ŧ;zyu{h;*D"y#2p<*4[ȓj2]t- I b(ӣai:3ՠ% 9-*<9[wY(kMMhǏ?ý7?F~z[MO4c"zivzݑo_1.մg޼}M{ݽ'v7|wm~i'jmzWN-(Ib@7v!5Q.iI SSPxw,ɱ^v;gFLX98.2q40N6EqɹD8x-PZ$b A6-q,ԹoL,%'g@WVŵ"&8%G:sƉ^N@Qn4L"ج+aCy,21 V_FU_q*nw{X 뢈NJ\e`"eP󆒛 LLz 5FZ<);n5m 5k:?ߋT$Gߖ#[+W {ZQ%gڮv^T%MAܑϵF%+G'Rct#̤Մ[Вu G@Ӓs%&ߤFkbgPų#1ŕ2``/y ,ƣnEAĩ w4{+$4|Oђ() åN YsSlOwk&(mȃ{i> Krl (w4᫐DlW_nCcp)E@-]EDh}%5FoNjfvA ; "+hKU&+n$_給}j;>~~葦!ScM8/t?yi8{MgMFӮUSRxWx5D&E M "qLS$t.VZ!{c >>qr!$]&ǒ=#~3_]ij/kfPwje;*MY (>.E_;!l'6tBq;X׫f"g(^+&NW|W)Re٭5._ym  ڂj'}S:Su|g9|rG͗_ټ%|")USZ|Mb_& E7)ŷA*~ "kge U)1"ROW6M}/W޷KeUͩ[@[N)ː2M4W|gH*J[R"1NuY8NH+WQilsawJYҺӇuR 3)3[ n-$1SQuEOn;6:i;ߕ%Դ3WitK*^-ΫB"^ՄZ\fhl_8 ;(?&@oDlc΢xZg搤E%MQ>WRY'FL3''73BHQsLҔx׮RgSڞيORJļ% 6c)(yGhn%>O(M WLѵ ^q^1g9WW|eՄ6á3KS<1BM@n:E)3(oH?AE,JŋbiXfu s:ǯM*~eb̊MJI^A:( EozuHeIJ{f+ק5^,Qɼ)+(^tgYgفjPU;j4Ҫƾ;?|]2?c88̫x~"SY[YE5Ts3HPPDzj#-˱ oU'xiShAi%JE%/]!eG@y~s ]}Xh[4H3+,M 0fGm Mc}6MW1*^hVvV|G% s97]>v7rwKͫ;6MBNU( 7]`]";˿p?xMS|K}HN yQU<>M#5`ڤO2(MU{2ؐ{QKU ^u3άxޞ3)Rcky-b)>ĜIRCj|_OOnيߜrncb׳sH?ϫ.*^-NU|HD( 7]Diq.@{\lٱOdmZU|w.Z 7)ѕ;ҡIů5lcDw'pB {N ))[LVU$3(ҞYn)!_S]f#i#UhdUov+AS| 2ˊS(S)Xίsy$L?V9x5+>5 (#FGc'gk̝U7!o2ǩ#b ]N f+>. [,fWd͇4x.4V!J`Ӧ}QlEh-F>:*Z(SQqne`-LUm ң KTsF}WMֲ,Ee}V'/g*?FK, Nn%~7nA[~nztd'$ߓx:ټtHz8U|R FQM8U"96~_ L-uWts2gsBY %K:s?U-ҽ 𥁽cZr bs\kDbR[I${%Kh"Vd08 Z*PM?m*!'fEm%ܟ JE\Q'o3yRB0 wf\/%:D"70L6vRpB\Pl[ZGƾn ƣғdRx]@?{RvA꓋MYդ<^05=~д-ƗK䳯I\{(>ݱ>2\*~-Vn\3 U4.⼺x8=G 7I;'ҙz#|}; !1 /2 6cbԹ)>NX3Kًi>fN'r/vjU(by[جöA8@BFdGD wkcbF*&̈qi^bo(Ѩ,i\ҥf.RYkЏ Hw(,|7پ o a#WP- !vSKNΞA_cgI/2yxky70TkL2Ocg0-Z(-!%3ROҞ y-D$yvJC=8 ?"@S><ҭu^XodRE}?΀hk?/JnW[ ^/:xۆ]U"j4= Z7F ?e do^_FtCŇ/џ/^sgY?|i__':.e d~ҴkFG_}zGHk~RSc٬YlS6%EI8N ݌iHhmW|6Wh6UHg`3 9[iO 8I"}]Zla!b[2 | ,D:.P#=QSpw2ɨY:(%i0'Duv;]+~`)e@%I@+2H ZdN6E`4%r&X0$bđ1 }bDҞtXabf\ňI,&bLa K) ~16J&h;Kƌ < nHW'AڔXYq s&.k=8rq5?Ɨb_vvK5tW$z˿w|xlv{}' 2v, ՄA[lEѰt( ],9A=Di ڔSY,vx1U9υDRtr6q D-pze6c%bϳY[t* (*H!_No¤ڏ-ԚA J{hnX[ig5._|K89'3eQ'2ȟb2WPբ/F=G~#o7_]m{q: |rZ4SB Y&g!,ռPּIZA} 8+!]|0c l% oc`pVc;us|IAY|T|iN4LW(଴M,m S| 4Nhnlȍ8z0ωeCr z">6 ar i~Bl]LT3Jk"|{xs9UmPMTq+gş+0n m$VrЩg TZf&-Ńo (> E@-dd[+x-l)`K[R<xb~_8kVhdIP!Y,Vi2!R`8R7tqp`n!0nMx!P&480dlLV8؇ă\ : rA0xd˥3]CdU?,*!r&",阃uN+~u3F5zӅkQ/JW-3x3%fd=J7eٕJ1{J,J ^zEXJC9.$D&E^2et \~a,$G Dtdp*w 0Dj*#g8Kcl$_/ b+?ܝe7b8dOzbMWH5޹6Dapz (A(DE B55FkFcdՊ/=}zlFw-ukgO~z&u6nE9Cz;}?Y]L܏J)!o#zNׂx5UAs`n!>G.w_` }_ c_76%\][l~V MtŇѺ׃3v&vo^!ޒ{g#8 B|1qy 2kCLyCL@ Ƹ2gGPLdn5$}lvz7ly`So \oD{e]{a@O9877(bg Vī ׂx5ݕDAG!>C!#l;_{;S/f{ utC=׺ fnFjW$p=Y-U^xWΚ/be >8zNī&_]2kK!bl -[y{f"c!ŝD|G Ɩ'K˷+ ީc!B?oӈ_`;lV ~5]I7tbN \m[tx!>?o;?7inw/𛋻}րtȮ #q!yG;}r𗨱MM@<џh%[K1g|{p2ٽWF~=ۜAGlJ.}Y}zb -N->ݬF7M/6Uq~* pNJ#= ߨKyzAKHEJw+gvķC0_?|w+o׎jO}I7|fEު/BF*d?肞d fU} sI yŁzV 2#=xtׯtV˅t"1XifkmOGsY"G vJ?#i ; ojq& _il T&6LA)%\1f>C ^nP !^ Hb.񔷒8pOVU `Zŀ2)OJ 3F+po;8g`OzShpnYd:#vGG=JYzɄ$(7,E&+g^;ctO܈ 6!G0"z:"fRexgBݧ"ۧF+k_7gOH$ښ9=zbg?nC`N}ƾn65 813tԔ@gU7zn,cL]tl4a2V@U9ΏO1dt|%Adӣ1沨_@JۍhrcL»f7>_#h0GYEo>WAuD7<CD, z*zQ0"b$#Wz?5>=hHRΪzR}6:u^Y34#I"W葼t} ]ldb;l f};5⛼N6? a:܏E"G/D=UxV!&b@ӆK+PQ `P>R6B<rIb7舘oѠ4,_Bz;sFƞG!td.dͨ=(q\L )IL*Uh'b~_<|fSћ!b dE7K!ME⋞hz?blIa ~c}gacoK%{{{Suf_y;3lD| =c#v7M׋%cg{Mi??]ޕOO֚9_npn鲗}@UI7kAnj;D̎=/* E39DIUDetA?LD|[rDD*."n6b1rGI7v#Vxzk3d3۲W‹TqXc Տ}ZѮʤʑ9Ӿ1ZЌ +ɪB<Έod@uuL)]zF{ {\Ik,) kܳ%CVgU\()w CcTP5[ܴu80.|=uw:)5?$b\ :x5 bfܢMttLD`(h~o M{eU6_q8qQ#>hu0 ދ^#3ڃB146G!51>XT+zS ^W$_ \?AxB!WB<0EHOkCK|8_u~}Y؉*E^uGm>Tr~mn+k+}E3"iDݩ"^Uъxȱαx'{R*k \a102َ(]VICxQgU]\A$^q=d<_o֤IhMM6U9? ^52d5 gͦ#9V*fA<{hOʢRWtrSy$]Odf&ʆqpDW.-Ahy+IE9>OtG|39_7LⰗTc;YZ }_.kPUog槸{ K ^u5`׿2 TӀZF =He0~J"^1BC^vY 5{{?i!,Lѽ9~'[2F?b 普)@A"5 KiGF}*/7g]hM6= ݈REO@qR=2d0p%2 !Foy\zapUN k ~~G<;Mg[W^|%-wtg0<(z\羿msm}f6F8fW~ Y5a"#^A1 OeX 8IGu"^)*ϑ=U1?3i/ VEu#7G5DO^xrOQ/=ΈW>B -ėxdl/8D/C|d(CZqӈY eC| mBiҳB;7۴Ac ۃ.0G!tÙD"^u+_bų?ysߏ/3Z&6F^kɪ}6tDw}ס[\T686BgUa8 JWA| S4Hs9 #_P3G5U%'׿ 0}~g;UZyYO V.G| 1fq]@;v[u-C|cb78n@Cw&LmQ~~f9| cc{BCB8' iB 9&LjW☔Rodi۷DM4q ۧ2%AbŇX=ᶇ?ѳ=!BL!XtSDtmɔ,^L7$ӊu)GyސѴ DVRΣ>Qٞt|U8*l[43S#FFbG:A1abr 4.i ̈bfEE- bj ?"9;_£uv.zwnM ray)Շl.&!SOޝOzZs1;hZ_)c]Œ??O}h<ӣ :/,3!䣩=„;?f44⻱(3*[ |sY|ԛ oBG UUa"fP MFjCBXuLZ2UR ӠPBQjqvLaݲ^R|7A&2/[7Lo J1j4"fM}o|tQ⏱nF Z*Rg7E̸:4kIBPѲV VĖנ1z[F= :Gb(b4=}ۓ~ Rҡt4U2|vk<#9D:Kle=ţܬ4&>WA*>PQZ ie=ڛtEF}㈾dRزvl/T*I?YFPGLWGڌ1v|-3?1re(>.G1s^wMTq OIXY%[q_Ka#5@ ~X7d#'p;7|{.i,bkNgKɡtnN?m`X]'Wk`G1 ?(yAY#Sɓ窘H" '//p:myABM>fpdg&9,?EDfjbҲ B(]2GQ!mď ȉй%k M⧣4$й_+ m@9@hǣu/W54,78؛$>3:f1W53)V hGigTj%k >İ*ȑh2:ruMST,i(+G) f)ZySy k/TT u ~6nOc xe 6#BRbekӁᗣXj (O@2Ɲ`k ]Yzu7`|[5Vk뻷BٽP H:(nd{lgõCpٍ VYVj  tĥ{p2S$P%?եR9?DQ*z*sY<<ߙ"uxپ씒.G*@lDlW'Wqg*3G%fGϫCBYy_*~ٝ4bᷨw9Vzm]ê7GlĆ2"8ֳu(?P|qQxGg<@*^ 2 J 0Wg&`+ap%[SOjřΥa`} Dx/n0G󾻁jt:͍΁MZdz2Q`*`2C,=ҩg8;7Z%q?]A3ղߟ^( RANU<; 4`-j xO,Ai[(U>#0s, hS堯n$N`PQ`c<g`bƧç#) 6\e,d Pi~> I0TYP*[:uު.Ʃ4}ɐMFbꍒV|,Ȋ8J:] ѼJSD >D ^CDEG( QS'*!z$km΁IꁅIDIc 7}Jf~i!"vzYAk9g#Ў+b6)I> m#bh0AF F9h@+vi"tMJޟ,g:(cZ!lїGNDX%+ CF(n|T%BpQR+$ PDFD<)VK{`)㿏w3-b'B{߉o_ c<"[O{7>|dvU|9؁gDr:^d >pƔho=7#hF&h+Ί+5c y"40 !dj^l!G C/' "ꭴY]_;ƤCy]_I."{[!9Yy>7XZ[^U85"Cٲ&Mn{ɫ(g/Fe ~9{yL ׀;$vhS-& vZNA5 >QY{U֐DVxo9IJh1dJ_^A*n 9\7k݃89%^gldĴReB4#OQ[bMwH",Q)vT|@4*֓JļKq/ cB^ 7/\ׄ&0^Hrxȃnc+;LG704n5/9;?{ tktHiİ:+KIʕ&NsHKcw{:$/3uY"zD֮{U֝ISі肧oOumeդT>%vkn_t®x{LBIeL z~OM12hJ]ߤƨbiXԧȨ,bۜoEQy'J5M[`B4XheDؓ%+@cɼ-g8֪ Mt[trwV7j6g|`Wk$/ 8U\y8yS,v䐐["gb6!/ f-ؐx[quV|EAnwtETLZVuHYf%E0nkĄ#4i7{gԶjF^66>u M:I[6mJSf4mjW"BKݷOo%Qų& {CbtSdbAR`uX T6I $K1 2%KMMRAعѬCY&da? =-VsY; (:A+gcA MUt΁Xdy* "e^J[.5D437*_aWQ@NLӞW( c= V(N6 g*^56Gj$ս`Ɋ|~MnTZj bxXCy/W#PkQwaw~'RB\Qޕ!Ck8ܪi-#&|*;@Ke+*R)H PQ#T 6X|ஂG+ +^<ߵ=w]~/xwx#eū[)+^*.OsYPu>V|@K_$h%&H_ P|QV<+waŗgSSK)AOI7BІ%Y1&p:|eK:#ɆB\PYr^C6IKBf "'+Hr*#+>$d. Q*j@JWH^=|w xvJ<;gXYP$DJ_nx$FK'GS|@`\)UaTO)QquL'QWy^K(^ 9?H`f8(ˇ p521CDvlxbIe3xPHCx9YS9z(!dKLsxj{owq vQoy^x!p垤xq#;71VRq+>x}鳊g &4Mu/Cb2 V|Q?GU1p뛡$"&Hs+MݲW+3cj!!AxdŋqTQ!h+~M7i/EzkGx`28B Oi 4YB4>V۶g.G7?ųs =]BJx^UPD癗R9Z ŋ7`y.M&R<UJ9"%@k"*1Dxa+H%~ſ[UX| krѳ@{y|LſqVfgU\YDv<3D*.OUYUϛb"T|'9S9s|<~IXYg^<.۟*W=v ޫ?r rȎ*9[8VNXO"+ A\KbCZ˼-A3:r\XƠŷ@44z ȿeu/3yJA)!s* *RPICS <جh "*rc"f#U:щ'!oo 1ڧ,Y dX]jL@fN"JFuSV.|J1 bZҗz%S&"NO%yV-Xe5(ְ2l^ْNX-LX-YLH4&4ְx4rM4jW DNu4e NB;ΘmI)>eWJT jqI*&iMcAś,Vd6k)m(r*Gؙnbtߗ-KZ7G4q8(K_ dw{mR/ղw^Qn)}w"<~bkzmK@Sa_+ʛ>=3v_g(?_K^_ymWرX>o}r x6@ZLN9D$T\)Ѳ<b!^PS7Q0'hӺrtսWue晠4׆C[=+Ե<`dB*6Y1Ŏ&:4`ػ %FD2ʣ d X}(0+ R"꽣b- T-c hcVNEd,5MUKu$j XB"9&AC{b5hoHB'jc`X,@)8k va6Lk3"r 'ɦ0ta!9C"i#5OAc&KT0;y9FhF" $YEn04U&`BCH3 bVK %;?b { 8ROSS>'3p6K@Ʒgk>E{ʫby>lx%TY@IU@ wCLMK0$5hxb;=?4Axnm Fȷ' @c꾃QS@jMYZrA&KƓy7ʨM:RͿA~^u@ $[[7q"|,ڧnЦχ:XFy|Q޿xT.?`[|'d4R1[@jqg MVǪ^j Fz$m~\G-sʛofS(\?2vJHj Xb=֕s8]rCy,*\;4<p%4"\Ic Fb[R|}wCA?=yタp$1Bսkph$ Mkf`n5NJpm'hfy`-!@)߾t?ipqT{%qt:ikFc[JEJ,jݎVH c5l3YķJ 'HFp0V-b9p]H"C,į}W+Iltb˵, Fe1cƌ3V1cfƊ3f̘-cŏ:o} x-l)`K[R<x:I8MòAhC*".X{z؛Gsh9q"ɒ !ɒ !Gɀˆ_\$dIz/N|Y]&LouvsvI]>Mg&LPŐ|zFoU\wR5)xvG~rc6|]h[lW_Y/5~T|[q2T]S?L'oݵn1G/)?TOZJ%YxuěfDm+Rv4!N?/2ķijc/wL| u&Ŀw.#A.ƒ6gx7E)Yd]ɤSxef gsswUqp/':0uA_MoACA|fs2kp}!qF֯ Q_25;]P?twՉқ0Tn@򑾵R;2K~ I7[-oF*YpTa xn6oF|z/>=X{w +G5UJB|4uIӎQLZ3h;"W-*R}75ߑW >R_Yf]AhopvsG|MNzpfUjw`˙uF!Kͫ} -xg:tN:V/ai*owރdO)Nswu4 [{O7!ރ2C= |3k!tGD;︐ -)aF$UNlSq׿ D8^%adp@L1Ā-d#`\bvfQꅥ1`( fT R$h]b*EPUAXVkcQm\SR`wcQ?#geCz^2?ߑUkdqL;PB*S&'Dr?G+:Q\Wȟ8.B{w]Oͪcg&ܼ o8pKy*Tv1"~T'P H?wWG+/z5g@f=@mto],v@eGR+r't)p#A"W H#-0)Ąh.O*lm~FMk3KcQ@^3"(K>$&U$f#dO(k6`,-0Z 2k V"Ppfқ߱iˏכf&I bVzB&\?өWc t!Rz#^sg+h %PSYuT05V">lH"_CZz;殉ƝɯB|̽JKaNCHo i7&Kf$+Ճd܏J[`r/;{fEb:1o UGVY5s@[76SIMc\Fu䶁Kԑi C{&w3VGmd.żi:-QgYuCěTP?\7njSki#殉ƝɯBeUMR6Lt0/@w\=Qz+Td\ e`*Q*|J w<و o*5p@ZJ֊"H.x޿=4boOZ0\&@ܰTϾ+">M3!>4(9z@ u6];_{O?F|J(vIlFO©読YZǛlwp'خDU䫋u~ `Sgo#!+G<,@0G:BěOEå{EcS'Y[ M61#icnyM?sD_A-wF|\{Z*0OkH+jj7D!-؄~񯀰Ys??\9_ ;O t[|xYaA<_9;5@hϧƆf}F❑'֫bķ$Ygl ϝ9X{>B*j8#80$;n|:] Mp/HYs0٨9T_ ;O"[Mn=x}_!<<|5G׈2+EԼbīB݂iZ:qgwETz?Ir *g}{ Y+^@ =mONM42TIU@>VTsuxn 1>tMjjhZfP~Mv&5*cګ"WEK}0;b7U=zb+6mJUȭ:Y7yMR`-:~cxh_=Tԃ0Ri"x^lM*s]sxe)LsᖉNW̦@7;UoV>>bDd9҈Ex{7"[m ?՟6( 1Cҳ:&7}4 ;V.aě#tCC(ETz0st;i}H T D+9(ywjBx:66m,&Ru%uw{8MRO B&#>2)2"6UZZ=rI?VIj"o\FJ,ʚ6<<}K$&2O2#yq;$o"UVvCr)HO/4 7UXr`;79__<-]/ !NKCF@^xIhw=,HqN}(ǔj?81Gb()9iE{0eCTXiJL/$prNvH cXSY#X Uckb81c_93 3ywQ6Rh Hzo ć/?iz-?f'Pȃ=#$ u\X׌0 4lj\zo$+NLNjI$"=uDt-],UWɟq԰E]-s!NΗA9YK (7m!l1$,?" $[xISlH|ćWBt"rf#q+W*dq5O 0zU yHG=*Ȉ [p8 yq;$/ROh(JEhnFR& qӼe܁=>/ JnmOx%aT?{ClYI33m>>OқkTDwxx){!{h$8WH aqc:t4"ޙ ё8|!NEQꈐȐN`14մ4;1Ԣ+W#rXRGGn`E|Oމa;}7#A7pjcIꇭ;O>21kYW+1l։(Y@|OPcY‡訑8&4ZVOÄke2=hJ냩a3~c\!2 ՚1u,5;ځq;*]%#=h]"mNϗ~{$91qƻBjؾbc*dk4ԟ-"g y b,TGkJġszK^yV2N^I )*:QRlW9FD Vr yVZu]S0 }l(MIPixG6~4#xMꨦENh%LxpF;h_͏(UU I[ɥa%mcKsjlU h@O:.UGn7=su2L|,c nDBF.b=&C%,ww9x!&Fs)=}FG41((Q C^L2gryBkzv8 rlVBC vG qWMBB69cjzk,|PGxrL:'>>h}6K%SjAniiMVd狣ҵ*ܔ/֏Lz9ke=_h*'~̐x;}Hcaf4NXx$l) g+Wge'1BYYf.Bq0f$S Ϩ[J\^<+>SRD*X}lC]bZ(]*LÚ^z-?-׃55Nmn~ݔ3?:: nmD,~҃O`U ME3NHie|b` $48\IxDIE`5 :@.~`1DA̲0/ Se9Jŗ% &[VT$&!yjaO'$d؃4435~'^}/ mS? N >a7**L{U!N {p7y(}%_…'rol)-P% f*U7YdYߞQygO={3͟9_][6{N( EK\>ُP2w~ŽRNs߈ IfaAG `xҴrBD}ɕ;VRʖdT]Hey:ū,'@GlsA0Nz*ޔ1~2MCOB߃gSg | &Y_A@z$88":zxj]3P~`uS- !}]x.Z =>S@ބnцqXdAa RO|~e$Dwn-1ќl%xZ 0:@唬HynZL{fw *G{dlQjl \}cGQ~+8ٲw&S8ϖUVpih_e2VFSV\>r计TU1`UosnflZZBȜ6܏8.}ɕmv%3B}e!HmeYJ). Xa褹pzSS}oAW;[ț al8+ѪS _@tlm}^~P_"{j⡋vnf5CxCJ7" Қ!~: #x F"$vH0 w[808(nWyK<,ƒ7=Rrl3>FJp5x_O5)VqYͼQ}Cc(bi0b+GT~G+WOXO[/_(WQ*+~X$dkfo{!3֛D #|v=*O` J#ӮYOtۈ žrZ hEUtЧ@pV^؀ Ajְ0/YNVCnC1zj0 /V߈x~.hi:Ry Cߎx׈G|an#~#@ؐ @<@:">-tA‚ˆT$ #K܋eS65NTb#~gp1ʡFUZ0̝PS4l:]K i}a*{ A._[ah79~ma}lCrRHfls֞ӥB]>SWuȲаh\^̇\Y~9 !G+(WK:C&HfM*+9\qeVO)i?/PS%"Yl^2\ĊIHAfW91DsV\ܓTS%3jؙr [#sCJ//,4\,G|p!%^Q8l/8QɁO>\UBU,>inL/[ bi$:*ՎY6V|o߆}?[gX^F<ފQBC"?x݅1BBD$ Un p^} DW# Tapl k-"˙=!;JfJfR\~&*jy'̾r9:~I@\RSљRr޾H \yeaW|@ C/]~@u-{u>d$NHpȊGڦ\&iQ\jXߋx #c}hNlas],D#Y<}]&IxUBކx>;D$ě3g AW oN[POzf t"4Q/!+V\xnfx8C%PD虘K_}W64#NSq9Cv4q]W.'U¼9Rݨ5 saJ wQ/@|7ZN$<^b@k9ѺlvH;^!B*5+LXL<9ZtEߎxfc dNۣƻ%+&7tCWxS@HPF84*Af֗w?d궢T.-W8vs >2Nͻ>m q, m1 7cțmLƒ2>X<9@Kf1n B6> IzHeZ̠ha(5\/Ʈ_hI xㆽVdī3Q(tQ㫁yx VīFC !}b1`X |}'>}\ ` 'tNAylEe"t0dxKc!${cX4XiG/_J2Ř;⽼f99$nKaiQ,}dٺlG~Qƒg6i=4BI꫊}Za؟-h3JU.Hޔ̤:.ooH8_q]C-ПnZ9{E-,>\ ܒH ͱj@8 p,c_K7׍kvH{ t!\6Vg BUm|L9˦nTDRp U%,'GZp,jǡs:^U'$+=!ܱ8v~s>a]p|9ŒjB:[G82VdOQe,X\Ҷ_ghKEO|]'9Fj&PՀY>`H\Q:b84q E8t/-ڧ~g[C{Q $IDKdp@>-m-/>^`$ 4)8XǀPO7^32:;AOǡ {%1<3j[msc< Gι՗GTU$n|Z:Ƀ'qo~h "/wx#wvȷ1Gzh(0Ws2bs!)Fkr _R]wmMV.[=!Cq18dk xUs炲LՍ2I'߫41S>7Oq4_o]֢ɥV}|xzy.3l+gRRZxj=d\M^Q/J.=߳n+m9Li={*{YpzWvSenUjF[Cm5nPÚ6M @ }ymοsu Gf-&R"Q@溁5\"5FAXvԨNyZg؈4)f$)AR%>4_3}$gt=hԌ8%JX,`=  tT#36钭)C>WIwp*Laiwx4el xFŗhFbPd㥒`1q⣝qNV1G;[#4wtb"ϼ>0J!S]0EGaeYe6,/ phGp{1"Q75 ˃(wx j-;Ey,{~}:%Մ١ӴO@;-&~S0T0n@uwLm8,j[؅~ Oz+ X=}qިt @u^oVnM{c]vhu#5b3}!)Do>+w{qcNE-?R mR8/ -67f9A:cɕ%<;/MSJ.$W# ՎΚA#n5O>|8`/^N1_ u" ;OWΟXN|.uvӔ6S~(,Ǯ.o6HLpdO7۴;w*ڀ NA)Tħy{GyI0:8D,W\"$0D!4c'Hʉvcx٢/Pf?ՌSI'?%'6[rbYcA?sS[o!>9'?$>R%ێwa,qy(%>*sF62F{MYř\GO3]6[ú "- 'KӅB W7qsߕu;˰'x0jxPZ$"H<E@-jxPZ$"%J;,Z)Y%?N,VniƱ/Ycr&+We @X2b_s8_$ 'g?=pW-©Ͽp7C|x62$JUBp59BȊkУx39PW3 K+"U8esv(uKwӏ0n ?O^-iji2~/G^PG?iLF 65_ "!FV~L#~4VvC|/TLw>yHM1\ҟ]Ji*"]yhcIi巰@:${JuNNAQX=}7ճIar N]Ɂ=~A7"|0>!!?s'(e6 ?lF<&YU]q~R_&$= I2u?wtR헾ox&?k!"n ay?Ue (BGng?4CÄ!#+ Xڤ~:7 WC#Lr:1rLbd?43 (|2^t,nLLUA.\ABz Pb݉m^C,0Shhg}PB~ ܒ,XUB5CԃrHV&+iA\@H 2ؗ+2v|(_Rt4惞¬b r0i=1X)#"*Qzl]D_zwM8~,= `ztt_<:H]E+۟)}d?ԾnwO7>_}pl?W_̢/?||vs׶p'#]?' S 4ICב U+mbp7UQ!_p%fň` yYgB`u@s(z:$ZQAڌN>+F&<)@郊.GߊӯW7w)ӥKOX*^e'r~c~ysMy2ryz$ϻ>ӮU.S؍I)Ri5GCn`"!ǂL#~+~w ;ߡ|3ʗ'pCM稡e+ `bib52e?85$aEczRH0X-V`Udێuxw<5Xa洉I+)Y>.&AHvR̛-A`K-;CPxT׬hD$8rHyi)eLpaL^$!~X3D Zu'dFA^M-~I*JZuX䗢R\Ȉ%Jb#P"F R! D_AܸϳZlf,jz72.d}+fyf%4HLf~L $0 #fo:#Ь/,1 >AOze31f|E[^CCD|ܥ(,79zꉈ8oe^twrE_{CCOwnelV{`SuLґTl+to-)$%ԍ5,Mu h^F+!3F& ԲCV=5}@1-JI6z(kF90y3paM =b2[W)9F\Ww=#K$XLIfQ4N$1*ږI_Wj2xДf $î?ǣQ$mͼin8 rC|m?.*+JToRJ?v\|.gh?QNM!'SA/f/-ɧ)5[L'9)vne0wDCgȠ1v$BqP8JiJאGBVqq Y"RmG(tVD4Cñ '|L3 1̌IJ'УJ{ws2yWԎGMwf&q.apm H(w/ۇçz#^ X iZvZYW1Qɢ ذ%?),R2,1>:52*{|: fc!k"^ ԑґ餥9n'mYhZN4 1UQ8#< FHfYAnB¯F&1AA<.8z97ϒxckgukVW`jw]SVq}$,η>.wwKo7`io(>'?K}G6#fw|ir*i&1>nu qV2Z q ɢZ0/OȈ6(COف<0+zW߇$*P1*Oqx%.9'DeUīeTY,wg#^IiqhUGS#N~Q}ƤtYRG ZۄdXkhlA֨IH8iɫk-A}01u:'h uOkC,k +x‡9ICP<-7ղpPA0t]250:*EG~2j(N0K;̦@_ %I cq@bjxğ =vLE|}a5H$Qx8d#J{u)xL_,zL y{ۧr`blhB:2K4Iօّ6DG剠)Zdī͖͘_Iтj Tz2!\1!UW 3n #D _mm>%kgBؑXy z#> o>"^,;O7=]Fg%b͠.ܾG溅C[ |Qg$VR/v|u,l$YH|'W: ^7/ x$ʀ^!S>╲*2xaZB-hiċNEIY<ƮcQ qI(˧ AYs,P 햊/"Mo)}<8ⷭ+KWQ{^ y&.{X>ZNĿYL[_-:~-b{ء&clE5TE['#~I#6$5pɨ1*/Tv>(pGZVEXFX*I5ga?ENO8\!~"XR/-i8Zr>6!9. -s$4/gۺ28mZAAs'qk0#ihnCOsgɺ|ףs;tsGtC<ճ<6=^Y)3nna'H)>8jFM.O ɪe ,I.fSY19=<Jk1$:īewx5U]FX&JfF>uB*!ǰ8`" e\1WMB Nx-(olL1FlV-bO(:2wDZ chqy|ŋOA g8\y Rf_|59j>_k`*NY[ 4A3QQSZks0O>Z&P`%_%"I7 jTc^$Aڽ>^V>,pGZVEXF|z{D#gx8 ׀oTEj>;.hPw)T%~N郊x9^cNNK}FkmJ +>SswwlSvx\Ys =0x[Re]JN!#<4 _~s]N6%{cDQF ՑhAslq2Xv}W4i4dHjybį(# 9;ϲ3S_?&ʀ^aS;ղ*˨#&[{lKg]p"~Ldz71j^3Љ/%ZӢ&OexنNȖLla;PVFΧVL+}8 ;_6_ S ~9dNM~A W.;f/W]ݝ+G iG#7q杘c6c7$Ӳ;vBL&:jEmӂudF\Zol%M- Q #Wc`Վ`_}bqZ h}$*{MuDW˪W.z,HB5 %?`v6 sb G|&݌sQ&!+,n崆`Ռ :&#(]}K2&Fi3!96- U?KNfg1DՉ-T<6 /-b+0f">u6&gG\:9׸~ b|\U~ 1յ%Y{q;\G͗n͛-l}l Wt  J$S_ dXv%2e)v1@< OtZevBU`3jT=^?*wHPVY0׸%QV41"͕h ɩ$OM"i FghV8RgG r_miGdP7oOv` QZ$ObE, U& uJ&W$V-F>Ƃ^]E)}|eFOߤ/S1j}t6}ȹze\}cn9f=;ۢ2+~-6#3 ٘_}.<\6^~ĥz#gb]e ^O[UN1p{Vٗo`)*M*r] J5R(5 E6~yXENrSaW*B3ݓ(ߎNXK~(VIY?@:Xa79c]Z\$E+^p&pGip a$,?6 &ةT*`Y'uʂ1c07-#i_:O=T0S$*pT׊iM ,Olp)ZLS˦xք]DI_,O)DSBA|D15VM cwybt9'KQAAZS_ԍN5+L aƬ C%kZL7b!W B:?U(邩DhAf536 &uY!gA()"Fj'ARaYX~;ᐹ3ZCv&KkJLww5s| =T @)nGܠv {S8~3/t繗oqm)wq䍻[;t ~s/ThK] V.u>d(i+:1D1 h*ǬHx"HeգhnaGpMbHrJ$slUqfbҏosysqY> Bqaw /g I&}N:$KA(A1/4b;c~1,eA¿$/y&>HU#e<.sJ`MJ)S~hRI_,sAZAJ1wփAX{?޾\Kemb}{V5_pl}j+4g}ï]+ci0-]!}>vf|fGDQGg&sT4{.d$ifC3PƇy:1 15*͎PôI]o voP/p*뒾.J !56ό8'Vx:N%Oz@'4`C4itIPd< z!=y?0>t%HЂAVӰدcC<I'6gG3i{= %,?ZSc^x5z>>/kDn6eԄWRvhE<6>`xO3(.oSIBzBs5OCW)ײA&H7VLUӅM\#D 4ߞ NQ j%#>D'q'B>S*"s 2D>:_(|t]VH)݃fzKg8ejV$hf<u =yC&j5 Fr.5/@X-J6hSG)B "(рŜM0V$* 旺nX }pEw) II3:Xg?L:I`bvv⫫kKEjEG\]QFJ79<oVG{ӾmZNqjn@ ]k>zf)\%]CbFE]߇x0AwC-؞̏5u,-~]'dS[Ʊn_/-'\Gxk{ޟ-#_ lh9e.~$>j5ć9Uiߛ.Z$:}E}נZN@SlRtbh\_)pc"j -Bt5?Y%w5P H=vҗkN"^)p>M(wIG<97+\!uϒ3L1A|;nSP_t_B"(: R\{-1\!]כ6+Ƽ驑ӈT?# n4z*UTeNhĆ#-,c}epxYZY&t>>|uy1|iK.}yK+aAj fg/A_֞ovho֗iOߟnN?_uo14xP|{ܼ=HĶ$_ʽx`f cFxLᅜwLü/ZZAz4T+C˹ojw Byl^&Tx3^"'aOKRb=>rS],M[G[eluË@E=tkŻz}˕1I?GI׷o;GW&9`zͻ9Jݧ}\#7j˯_m߶xŧj*YLs\C"StM_xէj*YtXV or32K;Nyz'`j cPQv/ G1cPUKU*YQJen͕ 󎪉"@~;U & |sy;쭪 s1uM=+_c/ٷP\.k[AegnBB n]Cq a}8s uʄ&QA4p]qLKu8)!ZՍ/Pn> ê /El&)aT]@9FAE|#\jgd6W(0ޡt>rs=>ITzۈQ-G6!41iDk[R~~ u.O;`īQK׉ 4FP :`r-Fż傚 fJeC IQMTogT A;7ӝ.(k/,Ҫ*S[\mFksnmcrdƨ.oGfCtO_݈F@pN ħID3 ݐ&.|,AݠSGA!ۣ/a\ό&A\t;1 5DE!C aHvx '&LeK`@&+䐔NF5VŒ6>#׀k܋( dl!J*wD]8kpOE|NJg( y>kΩ2AKE}LjCin}哿W_3+~~TtW~~? U(Ā9vO#f p1!5\2Z"^ ;DUU 2#֣W/iUS[Ӌ/֘sŨ `jYB}B)ǥ"+iYrw //HH]!)+j.lkdCt @Ҽt fOMg J4ns)P߬M2[^B<N|e:?p q].q!CA!cy\@cwƎ(FEC"CnhjmEy dhy@ X#-}.ڼo GR&/ HnX$xZX?o鏴k厂x}8|"3cfz[={*a?͊{c 8'j_gbQ}ī9x,+"^M;3eK5LE$mՌOY5*ߖ#KE|lHׯmt(F.lA$<+35 e/_Dkx_|ޗ5"KuݤuVVk1h3d B"k#6+l ˉLL+͟mP׳Fs |Ri8?◨$4tanCc5Q.ޥI-Vub7/))>->\۳!^ 9+"^Mx2DqAI3?\S܄1 @3Xy&aUqoSe"'L"17,MNYZX"V.(0qh"m6fPVFSaR:n/˦{~05K"Sλi(-2Q)O BAi ăV&)9}|⧩D6Zeܦ 1.W$*WNL|e>UZg*ͽ/1] ˆxܼ9WB<E ^ !^ WDM@%%Q\4YvXT ]?ʩBTN{o?W{Eg x-Zl%_5n,v+< 2 %/#^:dgͦOX_IgaY;0)tY1*!D!ђC|"n/P V!>ZXij%U1N徰Ǚ%~ʗ5O#L%rE&bct(Ķwmk*!Sſ9Drg n x54·x5\jz4EZ"O1%Q#2]VHx|jֺO6/5I\4.pXMq:,I_.z rX05CӃP .- ^{|I˿?7^6, ?T+hqFd_Nb9=QDyy@FIDPfjʦPޢ'if$w4V,(FVy6>̕DJm5B65\M$uGc݀&ڐ!ΤG=c=26e|` +%ŷEA C9|,օJ lmqv ٨H(8ثb}wiL z@G>?-tғYRqGqm CfafQi]xI54,Ǡ1ēuuQ WDV5je8򓜒2glg3ф yX@g:z2 keR&ymĮ?e~s c>S_G40tka*{$_8WS8 $|s < x=6J250|4 ԥʎ8B0qs˚yRXog*HĪ %TDݼ,?y}J}pJ.$|3Mx>{8͡6r'.ԝ~ȗ{y;#}An(Ӊ^EB=!.A*2a)ƎN`-)RGg%*93fg4M ɁiŴ8ǹEҼn1s4a}(HM҉zL%OHpWRF-(]~wt̬㷯َ')5Foc}zxmx! }6,?{͂ݍ=:!|(e L۬&'/ӽ ЖG/o`mҝ㽭הU2 |h|C|[Aٗ#3Ey0eF?l/dn8Iǀ! VAy\s]j"jRPqHWTy1hOhP?\ɗ2 /!85Wsk4IJGK2_wep{Ƹz=|nMpp ]Dm{Չ R\0%)O=ID'A~< 9]E ()""1tCfLtLTŬ_, xW')qL^4%~ȓHv)^rS3, fpq? #VfxS%/>t;nPA}E Ln~'a?Mr&єglI4[F~A;ֽށ/rAeԔG 0Z4A_f@-N~ivuMNm2|B"i@թ<+]~&8+ ;~E~zY Ozm{=_l2\ibKIbJćj[ؼ9$? ڧR $Jht H͘y3Q<(7igCq͠Vc&jeCzbЯ{BD/heOT 6xN08H "ɯ;$ sڐenˑ=V)ڊ mGU`>Ĉ@kL9# ]k<YוpB;Yr] 7z2'f`WԬ֤${\кDo->v#rjJXςYcחsY0  '?2^_8StZ}Q-Ndo-WR?a=;+e^9AU^ψZVVةJo-򍪦gp?l֛Ã90U1wWlHwy/`B[h_jh1gkQI6+OCWDmބl2 H{7z"E05ӗ/foL UWe—~ ~Ks՚[+U.D|GWE|C?:Z!t}՚<!BU-D>>qqr&&&xxx\\]NNNlmm:::"""eeeYYYJJJ555EEEBBB***iii{{{uvw}~~GGG߼ /6|dfIDATxJa| si imz"@QzfƜ[.qD|89\vqsn!10r%Bca̹KnjØs%n1K.23c-]"d>fƜ[.qD|89\vqsn!10r%Bca̹KnjØs%n1K.23c-]"d>fƜ[.qD|89\vqsn!10r%Bca̹KnjØs%n3[^7Kq;f$^АVUU%8yƛem{Ycɲ!;ϥY3tK0xO6Z[Nx!9 :מzlfe'}̸ڠd41B{s$# sqv@nq׌H$F^[$",38Y,nR͌1,%L{?{1*uMjUEMcFC Eqxd~v&1'-Hq5i}Xf| dd3n䔌+-.dYک#B8̫q$4@dԑqWաZ+: d{+;3ގSWٶzߦCl! %&Bu|S"s?Am#of<tFf\SGٖk߯aTu2㟁,q^iȫ3h'mdqy |3?b "+K>c5Z8dluߺVߒ)q@_7u`2ލ19 CmYqwxऱP[e5O1 :#N4!K|R3nv2朱9bd `Q" ֻ(ϣvB0N@ȟtI/1trg )эG̼{?_=\Ryq/g )эG̼{|\ߎ[g )эG̼rDwDȽnDӘPHL8`tly ̑:_rYW, {jґmkAmҸjmaoW6ɴDp̉ЄDԃ=4nYDi-{yx+/OpwMd;aj,\:W΢{ .>dE?tDd2PLcgG ֧&NR5@WD\~@E]."/xEK4~Ju"F㍤xY;9?ӿڄ_qUɃlxFd^q{ӑiV#ۆӸ|CB`k<HOD%[9qy(c=Yh|AIh~,-~J(mf$W*lƏVkx]xjӑiґm:k5tc kH0ocwfWTÛ.WgF*\/ZS|76Ą02\@طBh`4ns:2\:Mgwl6!Ԃ؊m{rMY"L%XGfs&EBhkܮgG뼘Ƶ5>jNܐ 06f bԢfk nnpC2fSJ0^[SD2Ӹ]g;2 ΎlyI״COL㸽[ueZ/:}X 06g ?GBG hA)C3~!F͸y4 qj@u@ipVf{ =%M 062Gc૵b:-Kw-\{.eQPy4<8YQU ѹ5Z U쳙#U(8S-κDe3eoqI3nq*COF4X}iَLÃFV[DGG@^7|̎Ə^=$A`lvp8`<$fWLr( A5NBiَLÃFV4;ޒ… Gz J51HT7IKTμ?hiSkיGFV03pJy5*%^l]O47seQz'r^z9g?/m}5QDYxs:4VpvdjS˭qɧ?ƦUo՜{4Nm W/?Z(u(,!jAT\vdE?N?RZ݋!M+)|{Coj$p$hƕ7^Ő>R0Ըrp? 1"4mfcYN.*Fk{`di7cbE!< 8[ Vݽ2;ȸ$PMs!5O>X$"5NB dԌX!#2dij3i# 'j9@3JE |)Ji%݋!󷋌"R"SiA,V 6Xe_VzEZ"YE4Nzю+{1dvDbB8i_a( Cf€ԛIhI`X|+a_V#& 'ŅBC$!LJNN\'0Vݽ2; 9$IJsOҘz=ٗ0}=BI,"J wWYy DJxCoO?n@UfU} D""~NE'&%4$kwBdǂӓJxComXY n!u䞪W%e. bUᫍpQc8J(G,6tW? ){1dɸxe0L!HUAd#@UČW7O JO|#IhƕVݽ2[g,md )A둌`C(6k6]kƕVbvbml</I ַ}S6ީ;s2^'ԍf\i%hw/2ށ3I2^v/呌B,kɸ{6WZ=݋!󷫌2>K(z/3S]"VEO3CoW2Ewab{T3DffgBlWbn O)>ԟ3xIUVfQw7#|J \{-E)ã"/ԁL3b+aܭy3>y_qj5#D( CI1Ė݊A"/g62sV݊AZ# JJX1w+ike|G]>RsV݊Anz5+7+aܭyqN˕bV ҼJ\V݊Agsy[1w+ig9]nܭyq0wsbqƙ\V݊Agsy[1w+ig9]nܭyq0wsbqƙ\V݊Agsy[1w+ig9]nܭyq0wsbqƙ\V݊Agsy[1w+ig9]nܭyq0wsbqƙp+9v猕;BR" 1|%nG[aBPb,PU9  '3d]ΓBb*_?w:e99V*=gY?Cէ?̭Pxyt">깋cJf!ѹt&?y|.\~,ٌLo)y0mv u2㟁+b6ZI/kJy5Rƿ VνU'Vg6PFE)I)\eH;D̸d^x'R.dVpƱX;9%g,J{u6~?~.{kO 8ZVΆ%<܅n=EQ@'s@:I.dVtI˚!0B&HOꎅx$7_XP[sb}Q[f\)ߖiח?/-2 U˞Է8LX. %`Kf@3~0e6Dd_d_ QXx\ US{JIedr̫'.HL%)_t@:*㍐ʟ = I]d-q.dBk2*d< !g|@Z jO4q d3pFhe"1#H[2ኋ*?nuS6pOIƻMTp%+Z"-8-ɸh`ruN٢2ڕʜJ8T*2q %@r%V>L3.I{,(w]QzynE܅8$Am=]2t}+ӌ7oqR$qW4F[i&+Cd;(Ip)v1Q%= ۊ%Lb#NJd6yWUqq &tLb>:+|^EĻezAڅ@RUێSe;9t-%KgK5=:pV*!;M(IzWLߦMጿ _x_)W%eMx8a>_e%Q)o'D*5>Ůғƥz>|Qu<<^HTtQ%yKa*.03~ o͌c)h,T&2Lp3-Hg[-?R@$"DĀ *U3u侀MJh~I`?NFN_yHKoq +td~sE& )Ώ55~Hr`1l^+ehkHd9S}k5hzZI (Eh8,S-D`!": xIB\:o8o<z=3aӖ&{ZH#S8CMҵqܖ?ɇ$vB.4* !<'wtp}2%3ZkteÆ-"/H$gL#9G/(. C>;24#rbH DZ9J'(KGV(q!{~:J?xY< ]SV1l"Ȳ\BHS&j>_ƺ׽ғw/^"'m;dk+8Hj&ﺩi޴-EV(q c{S8xFJV[5,Kæ-!Sekܗ?뮞ȹG5zRDr;q`M3C6'EO'"M8\^Su=|PP,W JBѧJ-ȗ?T7DmJrgGϥ8xOpˑ/1֔@Rrt5.؎5>0!OLa㖰g,k9Ɉw!$%%wJ\`7GwMɉܲu4n!Y<;[ۚx왲a5R9}W#.4 xAi-/ߥ1Ro%GvFph`XmXB\3zk {>xxh;u@0kc@Ayx+GtG#f^9;"_71!W׍G̼rDwDȿnc8N+aV,Y3~8xGǩr%݊%WpL%0F9U¶ۭX|f\N9) )ہDFWiH;!` 6_d ғAY[*@+tf DcYSp[+aV,Yb3!9qOw+ Z܅к}f#)iĭk)7>38"?I^ޜx$ iLK@SC8Ǭʕv+,g|0!߄KzC7U@-'쿌ws'vOl 7_iՒgSUVnŒCɋCSbV35j'c͚1"HIID$&Ϯ$ znrQuLOHv6i *WŠۭX|ߝr\&9>d[A?aO7uɽc_'OQSG6ir3&}iM3 ±:$Od xUVnŒ E>RL nu`P65F ,;`DМܼ!X_gђg䐉#mpa'4dX )tMṌp`I~ {pb4)ns%TbHuƱ6d LmO!l-+R<)#.&Zs7 xL_xX 1^|Lĸe,A}\ ҽۗ, +Ulwpc2nn Ra\o"'7L3d $~Yc>WB*tƻ5Kb$wb3zld+JP[>WB*t+URV ^4|O_lƳlwO )-YgDԖϕP!ݫ&$G؛]0>Z-dkw'H!4ԙϕP!_3~e-V\ ҽ5AP vW1{!|>*vW1{!|>*vW1{!|>*vW1{!|>*vW1{!|>*vW1{!|>*vW1{!|>*vW1{!|>?ٯ]O%$Q;"^31##B53_9;"^31##B53_9;"^31##B53_9;"^31##B53_9;"^31##B53_9;"^31##B53_9;"^31##B53_9;"^31##B53_9;"?If N^L_K5nn fk8Da n;kk&fJ%E/$;lQ|%s[Če>1 n$K=Wj<pr2z-gmj.S/5n=#\ x¿L=A}j5@Y&+QP/5E[F=උa]@IVqM/*%noYq 0McZZ>AjStf2au5އ;<1e-̋h;ϩ w4ƏiͥƯhDwQZh%aX~6>gYFs-V5ȒAOd 4އ{l gu5.po5U ~ÑTrmGk&fU>@Sj@64E{+SVv*U^*e)oS-(~a/7/T$aX?1\&Afn-m7eǾ/! pQVƇ@з?INDd_#,UY2eN,Mq@KF2Lqڃh8~%7"퀛O&Ce]PҋqD$ 2Nh\(JsQSpfpY[2QGwÑ n]fRJ%TN{8q @X>J'2ņ'#I$ʔo {]܇ՀHt!e7иx(Z}FYF0aиإ,D3K:\2Rx#4 9~sDфH{U~lڂ.?s|8Y`r6HF"w9(zf]k_#h! j2V㺃gMC-xJ}QTp>xp^k,JmՕmʇ Gb7xh* ;=ϱ(z,77ƽB+W@o_TRK4Nmhl<#,qL}fI@/xmO \B[:^Yr1Ȫ^p>ɜ%KAFkAۏoq}f٠ 僟.$jE[ qm3Ky~:]s0;4˥/и=aQD/2WSwiPz$H%4JR!]_`I*5E~>662H@1{H6CD?|,M"P-lx7bQ6AaerKRj΍qlOQ,8m>Jiy~_ >pYLB@g3Ur}7nWS"![ܡ࿭ÿPYCP) i^y˛F4RƸԹF4R?lF݈Fbܱͳ܈ȿ °!_yx+GtG#f^9;"_71!W׍G̼rDwDȿnJ|֘qBYB uʯ2>fyڣ,w& =JrAO`7;iaF4wO~+q?2i t~x}Nԙ]DPh-QYg>ݲ*gƛ&c[fv!֨91`!$^!$жC{J(4d rkURgB13.ޔ-$8 ǻ̶|*o#f62d|D{ Ό{/Ҷcg<8Q5c7h؈jn_4Qcmĺ/dO-3>"kYlkV'NIZ|{M3Ȟҥsޯ>ݒWӔyz i fHs ɒ>-]$+\;9#O)+{ւ-U3nv֯s y =_ȡ`f@^f|uYSuƋGȮgt1Ϫa_^]$?eϸ4Ȟhgs ϲc-U3H\'U($/:$<,wUK3vB/8D A̿؂)cb"񋌞-˸D?9l4uvaV)DT zmJIEd<.y#GLa=. k{Q?δ+qïM"TFģwtw,];΀ M^~%4% P?{txո_xn),;n>{uPy9h|/1l}c᭻o IN:膼?2Rp!P-W4n8"&-Bm`/!_3y\ $Qgy:0,q*j,1l|~e3 M+h"haCN_K<0lHҁ P`v=:"_Bj|\"Pw(܇n78Lp(BqaW}Cm)2a$h$ȯPR ◶O% 8^b,z&G:?Im l)/ƈW:PK ų[k?Kh|.odYߧl8>j4>lJ4qy:`s7>8 ZI:SC\Kj=(13DSoEWG߫2ʢb #*?Å.fN**ave%쫤#ЊgwTQynx^ ohNM.qaHa׸ _ X'j$]:|%?hFvUp"K$x}%x(_aBoW]&'hlxYx)k\ŭvor~r5VboAJ5nFN;i,ay8.EYFy`$= GqdzIgfhpXgp6Wi1>ܞ{5~#_/$e%h?Da6It1ܽ[]/ָQ4IR5Un [idۛ cų|74q*T.;ddnB7:9k{jȒ5nƤƕ,L߫lZt *e;vrWP4ϻqӠRٛ޴ei kv5kjNFj܊h| ;4څpm)z'%5xye()^Ԙ]m̚3/ 0<ȇ^wπn9xX= vyx 3 $k~^и:w%j\3v{O]kSE/g\%i.<67 lQ NzIjNׁlqdMЊh0~GJߑe~M0 ]R\PX:ѭl{waAZ} K& oMy^zsi,(8jb%+9pկ~Cvvq_BÆ'@3'̒dlb ]ij[QQDte`,Y.(S`3UƐ>ɝq*7(Q vK c~i٣qULG-T@H8 g@>͍%;֚gQ:!`O;| SߌoWkd!1I 9׈I1Yj~,?qFNQ<heмxZ_v۱K1{e~r=!Ai÷-e@Rh7n<@:vBS^r֭L?Kg(@DNX v2xDeĐϏYW=1=g'vO yO|Cޓq-_ybĐdaW=1=g'vO yO|Cޓq-_ybĐdaW=1=g'vO yO|Cޓq-_ybĐdaW=1=g'vO yO|Cޓq-_ybĐdaW=1=g'vO yO|Cޓq-_ybĐdaW=1 AҼI|dHƁ4q MdH!dHƁ4q MdH!dHƁ4q MdH!dHƁ4q MdH!ޝ6 q4xx$ƣ51gMIڴ=uwa9TvJ;8> “/dY!C85d !pԐ!d2QCq8jI/UzOBmS!@{۾&7۴aRą* BI[xT?Qdi0P!gs694fuQm I&+5i+ ;xv-X 8xp'O)wiVRV!9׳8[i4UƇz1IXɸ{8Po9bIR#(d TCB㏊۽XxVϦ7GtÌOܷ"ˇ2nXjgP,4L"ڲ`ݽ6,\RF!9w&Sɲ&rV-IW,(qִ/]\λuȪZy{覕jgqS?v3^ S:zP Yp)qc\o,H}{Rdx/v#k>(]d\^MTYLAKzVj˸.e$m&d d[.2>bw39S;/q$^Wdijd?lŒav6H2~!=ᐿ?mlBrnҦSy7Q?3n|`ؤ.k=2{,mSB}X+,X_Ch%I2XlBrn3݌?:NC1 &j){Fiьod|xhf\C8&0 -&d J(2Vbe=˸l6+שd"ks@ƫ1dOmڬt)V}zRc%!y@=1p2npN q鬧3y@NƩgw2w?m7,aVe~XƵ:kd1e2ԫ_&T\2d3/J5c`O؏7ጇKzaZ} R6! v]E&)_s}7YgeU6qƃZN5ژFnPSbakS v!XqnPs\lBfozwpH W2?});KJ-`y 'd{mqc:{BT 'Ф9mޕ@#&d  v‚tGs2} 3c鳌2*jnƝF169+͸\.*h/±;&d ߦ?fa7\3'JdRzPF?R7ʩe{%QݿY$8VljIuʋZt`cA  ?u"2-K+5=X]wu*X571TK.p85w3sW?-h搕Y8ZIhYPd{ƞ%g$ZB*쩦qW7i?T(vC3nXbmHZ =W mpIٰ0nѮ,WȟgԊ2Wu*ΧT;fV($<(>5ԣjj䞲r] myef4t;ݧPu+Kiʡ(S/jP\Z_\I*~ُ5x\d88dehm(אq*d !pԐ!d2QCq8j2G B!C85d !;GA 4201c7QН&C2ɐi2$@ 8&C2ɐi2$@ 8&C2ɐi2$@ 8&C2ɐi2fHq4kO2dHƁ4q MdH!dHƁ4q MdH!dHƁ4q MdH!dHƁ4q MdH!dHƁ4q MdH!dHƁ4qf3>Mcidwv+q^x:X;gÔ6 |ڂm 86Ӧx.ݺI$ָF̅}2F~ukZ|^|p@3R|jZ;>"g9Χ}%m4IPg5~יǧ.%,1nD'Ģ 8ZM>瞙yDzkE91/ )g( W*ԸaA$[1KW8mi{\thk4y5㫢Aiύψ3/ds #g*xaԸ4ZMw:ckxB;^>!f#^'~hu>P c3r9'DT7niEFoPHqf78Z,)b)t۷#3۝ߊ^@cnpQ?Ix Ԕ3SI|}۸emh|;X w9itQwX٪^frƌdQ@Zm~p@P},Ӹ&[Ƌ-a ' |{R*K3z!58xg"%`2=qěs9*" 823}/THޥqâI4N8(EJ"k腺u49/TsL4Gy& {_~.{-)> ݢFk\ɥqOcv(\TCUƻq5%:׸] Ǽ2"aW8O2ܕEfC$h8F Z"!~^mh#fD` Fthk45>ơչ>E<5jxMoF+*Sh͒ D:xZF/ͨc‚'GjcqCx8<_~GJMT~fJr6OhkWROw0 ԳoUą\z:nߪq&QJաKaPH8s^(Q,^AU2}s$R0l4icEvHRo858UDH'zX1In\67cFXjeħYiWinpo;2֋ljeu3+4~).HiܼD6hkϥG&%O ~Ǒ8KcX+[4>KFL֔:]UoPofҊ rt-)GE ^h&_ Fq;{7Z3:bR"hk?cA _7&TmJܮ'NSRU&5*iE"o3ꤊCJܦ4̛6 _bL)8c 'q&Ə0łs$'H<,Ը/p2ơS3SE3ٌyt̓IUF~|G7q&_281'vk͍T`$ZCݟ4vw^E'U4 U3b>B6<4"&86*wo׸=74+34Ę7Fk\ɭ1Rxlr\~;H+gƑdƧE7zm&_@ܓ_w`h@Q>%K-:jk44n:(&4V6afYOVE VnX&ϻO׻mLtэ^QǜM[ϔ<#U}kqlE枬k9-"+bV/K +!5f_Y ,[j e6'2b!+TVv[5|xaD=s:׸fK<]ty1Fyc-BkCH-bEl&0_{L-j,giIІۘ%s3Xn!g8gɹWĒz:E/ͨcNs%]T+pBaI X r%ɦShBfskg>DBZ+9bUTg cm׸ٖW8LUB݌:fQZGg*M'cxxΌkk4b4 ,}|k"EL]P)ѺnK.n /}yv%F  %_9x#ueRݫ& >R 48vZ0%A@!}%C;˛@SNש]/ܚΛͧdwo3;:mSlFZf?sWm6|I#'ޏY^U~Ⱥ|VtRz{T.,Ty5ICd]~(e.ig>ٔfM ?R|oScVevt|{T#q`Ćd)72 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8_A @'bDZH!dHƁ4q MdH!dHƁ4zfHfM2dHƁ4q MdH!dHƁ4q MdH!dHƁ4q M: u;Ɓ5 iXӐƁ5 iXӐƁ5 iXӐƁ5 iXӐƁ5 iXӐƉi 8~'O}fV;]#S#\ccv8v*xs5f'w?31D6QY5dD>4fvfm kxO*b5I,0k[.mym)ͱZ`8E՟WθP5#ݝAs=BsF92q@588ՖqO-{˸`c\TFG([ KI%7DbƉh@1u Dk.mm43ND; O2P~ꫯ=03އrGSJo{-(l sʷbƉ腠r#iKS]xu&ñ_WƏ8zQv@D|[dQ\1מ,8$(xCTd4gqEQf"fI2^xJ;c4\IPs]Rrə_ 9nq@w<'NL>Z`dS;]Q=!`-=.Y5OqJs]OXɸrPi?'.ij6dF KgnxY$Ykd܉#m-qsEYi#O?\|\ ?5Y dle\vR.͌ YI8k ͌skRqdyCKe}qRƅN<햳|%'0+ WSι=֨q6eYS;C5 >I|0b*kTqwΞfnm6l' ҷ 'dleaG3f>"3 1reהXt8Gx)*l0mckS=!`+r[u̸2>fT2Xz/ސ4 n52߲-͌e/q9k_ʌ_GNZCA kdwHB5ytp8k>i kh7/oufw=deo6pe-݌i>I/\~3JBGDkI/A}j,b>Oqxkq O0+/!k[qkj~r90K+΅2N~ 3"L=D+Tȸz22ޣ^rQITdʏ)bֳ*%ʢ5Ss,smYm4ۺdIS.~rhTާ>1}:QTF/}qđqm Bqxא!d5dw B]CqN0 z"v5@4iH@4iH@4iH@4iH@4iH@4iH@4iH@4iH@4iH@H8ڃc@Om 7Z*DbIENDB`assets/img/pro-fields/color-picker.png000064400000116271147600120010013764 0ustar00PNG  IHDR))PLTEWD~BPB  (2%  "+ -%= 7GMEL"ZaX$A7>6QWP260>C<3H/*F$q4!hipg+i`XF5S/WCuchcymn`K8Z~RSItbQz4o)籌+scUQ91I2?){rtq$z7xjŘnhټǿ˩ҞkV~ݨv쏘߈+gT{Čqӑn^ЄǮ롎pXT8J'ճы{wwcY;G)r~xʄx_^HD)niMcI81||_G<}gѷɳ  1 S rzQ-xH `a l~ L+6k /\L=^xXaz)'MCeIDATxn 1n@[d$biQ\>+`!q{η\k͊R|Ocq& _/-(2Hb6yw. s-ᇉWeqF̶ R ~ʃ~# :]|=VV :Ϗc)""߄"Atd~_s4A.@n 8_BӪ5ȼEs ;jfm]rG7K0$Z f'|HOOs>ĝR-Kak h&ƟuMaoIKQ6XLt7?MC6 :WED1?e CB8!_?gۿ2?om TOӋ: xB-;wihs.?Û9%31AqYx'-ƛݡor`?7$Pw@1݃}G^Us6StSyy(r|>9@b^۶Χo`^ 86|iJay?/6߅Yg+{8:{"bJsr)s@iҌG/7՞""* qNC+n SSx'#~3mv5M~y2/'Oɔ|9؍[A)""_"\Mo {?+fJ lsF[yUU9maIb%%uZq/@N=2Ϧ }-as9t*~3"؅M֬}mNd~2-YT߼Ue% _+"򓽻Ii<Fjo WP 9CpcN٥NX12ٽdy4)]~L+9r9]9!ee)} 5e*~TuMi8ELoO Gm:+f۫}?ưW=\O(ǷR|וE4=\n>Bvs.emu/ҿ*cM51|V} V& ޲=?zqY7C(b 7PpFq1_acT 1 A~6KB UјI@S%wM7Ǜ7OܳgDž]{K ͭ<{;yJ~xD~q`GƑ~q`GƑ~?v* FaXGo *ytHb Գ;?Ѵ()b@8ffo73{;Nqގofv~3n]? }7I?L IU.J$~Pux&^u\dffOOfI7-QwNk}ۺU0t i->ws h335ҟi$pUhP R}u{3>"S 6N+?Qٿd=2CZ6.JI }JofO)%` _~EH0,ˬ.tJENӟ9_V@'0\?ta>(KJY&[GU JpjӈJ73{ki"FwWH}L,b8^5<~mlV&Uvz@OV8)Nًs&y 4/2cM}`1u ~3Hv³r&Av+ };of /ۡH]Zǣ.a" |<ףNOpuwC1V/S]R.fY֜8obG2}R\drS=sr3V߭ۚޔq$v(]?+=1zJ9E,~ 8 P*Yy?+o!|jtur6D1:8؍y'cG 9a|‡F Rp`aÌOwFO3' Q/4Zץ|_@F΃8~U6ʲe=@-ߨ A|c=ǜ!_;!d=D N~a[O}ɱͥɰQTo>p㏎Ǩ_sH)4Uxs)>U+i_p :F##b]\_:G&oik ߯t7ŭ23N t+JodD% &]cf?М]燜(HmuiM;p&E>T"AzqOqm@+=q|U ˑ_fD\!j/|9a r58?'k,-2>Ї:6@ڽG(N)6/#)WtDxAyE!h9T]Pr {0hB=segny8|N0g}V+D:Q'I>)4š@CrϼsvV?Ѓ>+ c9K hD3]m^[<#} 奚9x#B ZϦ0K7m(>fLYY͛x9y+DՏMOhBht u1zY~Rdetz0MqIR^.~~|NE?pXhES˷MV\?EՏݫZxE/ЀW׏LN ^i^cb(OE̤ϸ$c'{yA,к7\+L=ĦÝ׳c;4O;3ԣ;;Iţ^JR||'t8 (OwȘǼ~Ho5 ƎSdGqiόP"k烋Y_>%%п@om+Ns{;Py hB9$_4bU?Ђ/F_3TM~z„O~z@qǁ /~Z>@Eu{?I@epI_x'Pyߝ g;||ć@A:FN쵆~@}*,Sgu'P~b uJ3 Uݟ۩?>;1>eg^?PKܿ3<>}NHc 4 w|V;).<{x{wC! BQwg8oG&:6PPm~,Rfy Lt27|3WlU{XE&~?JgYAyIJ]6AYc?IsR~Lׯ$ԭ͖ď*NJ`ǩ3mft2ڇzi^uU? 8ͫ4׏3M (qυ8I&eUV44pxڑ嵇L]^AY C8X wiwp7?OȌféLO20c?~>! OS?w,ɇR9ż heK~3]+I[Kgrk]?#&=SJuv}D!~?59_9_FIs _h&SMHeS.ObH:wNd5h}+~};ޯ׊!knK/SyWG V\?wI]~zX`+?@ѫ[S>&?zB\l~_{4ky?߻v+Kq{浯Sfb_xa~G2 h-v~|>iH-9,1uO~;&(\Gd6 ˆ2X $8$MyvӆLQW{=,ϥt=8ݻQGj7&5Y~g\?W K:sȄlk%S 'o^4ӼqZъ~wM4 vCilkq*ut~Ua=? w'oޮ}O~3Q ?ic%<5ȫՀ>ڍ{oj+ةʥO%sU4n|X? +~TgJ/uͱX?q?Ե8-~VJ'ƏQ;{q/L (gzح֯!֟~[WdzG7^DŽwn ~- :4?//mV2W^V?ٸ]q`έ-7>25n=ȵnVHZW,i!ˢX>ߎ&5 Ғ!șʏ[[lYzsO]jWxXK׬)ԟ ~3K4~%KXY?&+Ya5Zk~𿌿1Wρ^8R?/mma7~`?6y'_O|yAX1坉_ odqS{7}?˕3">coȏ&Qzp| ?>qZ?.a>'G~ LПg- gJS_ ?7}طp@&?wp `kOHSKW y ?:b)uPpSʵ e^j序z |0*_lOׄ[;ؽ);ۥhφc~*}ogW,pߤ 3qDv!L{>M~;Wt/c+w<-6qn_)Pᾇ ~%>ԗa>ұ_wW]q?~s&zM)+}> mYU`\Գp4xi;eu%VQEᏣG}Y~׏>]]mEWptj:gR+ ~ßoKm7jgv:FS5>hĮȯbQ|0?OoFo]]#ar7BO<"I ]Ɋ,OZ,g3?lݎ3əϊ"pE^ڳ޻]ӻç!~K,/~)?Z5cV ~8̩ ob:w |%EgU.]2}^e~ꏦ ncyhH~`+R}i> g܆{vq[ؗ΍Ms=#,ki^_NE}7č2$( Ƙ 2HI端>msθ}[/9 =cKoy{~5tC^R 9p_uǵ}ȯC|G?ɍ~'8u_ 8z(gϰo'K+F_ -<+~*+wHP}B" M{G5!1vs#OOῺ)s=|<5?|eŴ~M~v??4"]/Wlƾgcق!,)|q׹C|7tU;;OG?.?JVW)N̩sJ_}/q%whkޡRߥZRW/.c5Ώ%3,OC?Hiʏ-A?3^W^+֍|TB~l3?v'%UWƥ'-qٷ }}YnA_[9D秼*?k{sM3~͇A?V9Zע[+K,+"_?jWfBE  Fu?"D$5ⷺ!9)kBt_˯=hiQ޹K7a?k5ڣ9ga?h}FN}?'Yp`MC%Ŀjp9?Q,Y<+^ÿ5[ی#JW8"#عcP_YRJ8ʟ%L}c#I(g2u(ijOm3?G噇 3gVhhgn'VO=V7Lk }}KJ1~~2?>:0I=loSrYs<*wE}GGTVn98܃;e`f>'gЉ3uvZSY}_SO^?ƿO;~\~&7|Z̉+/&|A.w 9dm}y̭ Dvd,~潖1t}eqگ`;7큿- pv|ghE?LB_ `,r _ N~ʾ?(dSTW]:GiYC>Zo{5_, ='6yTjc#L#بM?Ox` c?{{b}tү5+pLimoZ&7;?g5&]P2'[?;4`_>hVl !$b 3F>~ eKl>c۱$'8?JWy?q~/?S^v.Z |s!9JE+uX]mg,M3=}=A| 5"_|uʭ}]춟a }b&woO -r=C~W'8'CaKfmc?jӜuw>EwW˅$O4`?K}gEoZ_B쌺vtK>T~˰=O_t{.ID Q/CM<28|CfoS#/}) ^G =[-VgZ }Y[쓻?#ۈOLm-TU=wRjbg5}OدcCgط#7~Jo-{| =_-vߤ'Q>ډZk }62O«Aդsn;w3q}Ưel0ߖ8Ew[ AQwozZx k?c_) }߉%d}r3l5~_ @_ںo vzߣHٸz~++:ٵZf##uS:uΓI]]Q ~yN #xO)tn-^9zƏtb8$v[fch|>CCP\;NSuW7k^ }Vo=>~G#8Vr?G1SӁ6=6W5ؾeo'?t~_hw~OXNzklp?AOeϞꔵS_ lxu27 6Jg6U]D+pP2ipwhk@k}Y +OG4_KN??Z}2QOW&b&'lW }~F}V'ᇉ5fo g2ZD_ |Mg5XS'b2N됀LSϰ75[.:[y<_cAVw@_yk3+mZ7|ڧ{|IeG&ι<`_a硇Ka}"kLᆵ =4ڪ}RS ?}>wj굇:?;~B&pS|;|[bL ߏ]|{D|}K(\#Ob+} >iOhN9}o9>rM=}}lK0q1-3LJL3k^>/c]U+mP_ʏ?iO:4E Yo¿./ݿt~Dk}fWI??zsgV{l> ?i/| I7VyZ0ߗK uN\ltO -_h;fʏ ? W3۳Bb'Eyy{|kh}Zq7c]Ίl7Xg6b07VNM^#`b+4$wJ;e$[+]CC^ \۾$Pw{oρNk{f.[~6>kl~U7Xw{>`އcPdf\\kWƯzZԷwO}"v';G?S&srاeџoOT)ZL7nl[}0qyd-oh9+}coew˚DK}pD |U{7lBcob*7:&g XG=7 ^tX{F[CC/D gD~A]8OsKOxOpz6g7Opmq/Zg1i> -x~H}C4/' 0}h|n`~+7N ǝ 'xQ`"?~ ߾_hﳴ[CF Wذ^Y??4"mo#gJ9-?i3%RP_y~62C=)g.쒟bKgr|1O/d }w̒PSߘq{,Ga>e __wm=ir|fjlIak0'GzQ؎V*ǗF[F>NE]j`_CY)W/}g~3%S}_m_[}g;{giFanJ2`YBfX )RDlyÝM s9yv>|84";/wrwsoo~?{'C5ĤdF7_2}W>`ٺgCm}s'|pq7ow?ㅽ:3{\9Sj{ S{B{?ſˆۛ ~ħU+~&VTte9~nIB;ע{z_ ߴ =0_}bSث?.Lj%0,O>S~}BOMWW?18M=/|Kl䠫?>o_]\L_{z-7+NF:jWda^q7X|u+ `Օ#ύ)Fîh>[|# `F _I~-32~ߊZT_sm煵'K;ұQ֗?=6{ Oaʫ/+Ʒ«§9zϵyq>}srcXl82퍁P Sl^!_,~qjo~MpEo 7|'ǾҀ3'\[L|-Wᐟ} ?So*+h;wXjo#;Q{S>s7(2IO4W?WfʹD|= IOa ys[^ZX/oDy?KmԊڻ@M@0Nmʣe{DzW \uk_r2i:R-ac <-C ип?c;ǮZ_.,Rlgϱy~5oQ?VL}n>CCG+>[~~Fx2bL|)s_6z<oV>Tk!SiW7iWW ؿV׵<~gh?/57ŦrKǾ|*\1ԧ쭟siuإu"kM' c}a}|eR],2 ՓWA=wyo7' ܫ,(_ kDu&LG7JVxUƾ.E uϡb ɯT7JpV034t:)lb #_aAO/>vvO3 /MgoUBJP=SxE̯KO: :a7ꏯ?wwŻq 1zإ_Z[7}f`DU؉@2ݫ-V1T> TuJ_ų~p}rӽO ټo yԋç9>co<mHwc]6w[; 쯌MO|{.Hw ZJQ}Sw PP:Z'cEWwV-ǭ=? :'^&mۥMQyj jކ>Jqyг >f|7{2Fƈy א34t~A_} {MNF4ޗt`hX+S__S G\ME?~|-XMcQ5[зyzK}%}WO w˄ͽ wxۜ`} ǾJɮ8|q _'=ݹ^w3sF :]Ζ0ﬦrtAFXCxO0Oqc羊"Ԅiu-SW coSM;T|Rdﲽ}Ŧ05c[[+ aczNy_h|_NS?.y_3gWn4 cԂ0^2s߉wwي?ͭo{3yZeV^A_3^Rk9' V?D][eЧ0j4~gh;미kP`wʱ)?#W<(C?p~W_} oأ[5iLu?4tZ0松F5bGIJ6%>-+r]LE Z&]W`Qy?:M4~+7 hѩ[gGͮ_] 7EWs? zW>gLwءZ{)G = + bҨoԭ+9c12[}6yTEu}A|&{~ou`kjt|TTLKҮJA )Rv]mg Ѣ#Z>Hۀ_!~)_~x37/W ~"];XOZ?.Ige~E/QZ-Ә/=ջ}K^7|SS_1Q`O2-Z1b/o_%O\G?_~hO|U/T}UR Sړ [Бi>;0&$ ڎzGf}-hҰ 3KbS/%Sֺ}ɉg Ma.vQ^q/STrQkq߀jqBnJҖ6 El^dG,^ kP~,}g-@;eO=9g#Cٯo=:-꧓xǾǣ4~d~cA+m/^2k-jͪ|!!~F:!Oɧ!^^9A}ƽV,{vڗ7|L I-=eneߝ?|'x>&tնyO, YOp3~]o>><}lmw>M(_^gh|+*<b1@mB{))x[VeDq|~\ִ'i@_O s%+o>|7|Reܙk?S kt4> 'T=ɪpZhC3P_.O .-?7?C{BH *j~p؟aE\~q2 {ŭ{_~,,ۿ>׹O1l:ɞ}6]^Hځ>.9KK334tZpEW}*З~/![_*Ox=~ڳxȽ_w=X/]b ~J S^ik-Z$nK{ޟ4Ѣyhp]~X6i}ZR#}2U+oSu\zvG}Ϫy~GӶbw; cHzX "]a)ŭ||F8nv؟t_ÿ.bSQ*ܧtUDA}Tc?ɹ:}c7iv0;q_i?k Sg߄(NJԓ'_3fܩb Api"d@%mmF!(46Hwx=huZk}bcjlj:S~Pu?E|¡yh5} ڵϒ)umGo јN&ʥEJ5]1vQLA}oj:S~B>53߸QoZQbJ_Չ²x LoC*~@O;X)Z:+7^+T]w>CC4uCa<w|!}Ody/[sN?"> ~ |ufUѮȰg#^tOAWjUA>߮ cS6z_H?|5'?k?.`-'}Aۉ ;6cL[G>} =Gc>-, I&m@byijՏ7%ډ8{G~}7* ?="ъ!6U>S(p<{@?w>hF("\Zt27|#e )W3ijO~G^rnMf=P1pg7uoI'tk+?>b >ov~Uu U?UiW~OSDevtwd5 =&~~VSG0__rmח>}|D~2hYj{_9Ņo~_[SӴԍgGvcXO(쨘ěVFV3W$Wo΋zZi 8hX܊L@ršXB1?W~OSӔԍp~|F1~ W} wJ|q|৫u'YҋCASȋ`?0Ek䔀Re6[v~^moWSչc_9|ؿ!׊\|7eԉ(+خ]>g? j?#$r^`M*Ӿ)2TtCyj?çizßS%J,>=_+Zy0c/L(bߒfgB?M8G'¯=Oe#jOS1Niͯ~(;U-1b[@oWQG-C#=~Ez?gY7 Ĭ˯hR(aj:*Ǽ٢v_0|! k1;?>3|n7| E6eϛU+VO{`/ӟT7:QHyS?Rq|o{y4Uۦؔט/\~iWSSS?ߘȼl%y["ʯ@_6D1AlI=Pj6G?W-sY1Lhgvj!1y@g45MW` Wp+v~/ß o[} ~w'~llgp/ 6s^&xC~vq6~|_ v(poSXll.{8 '4y3|.v0eFf~+7NdCSޡ?IОmgu,Wogaǀr 7PYه-վ75M[]dL p=n`E~+s6u;RlZhr\ř?_@VJl /o=W~ +^-ij:~N{O~_{6=[&ϵoS'(0?),ȯ4J /a][ 텛A'jb͆o>&?T/ġ?._A|WW4oj?,2ijYxϸG]>|%yhX߲,<9Anhr([h7[1>>ޔ=_q~OSTOo5bc*N_cE[3g|3G[nƿ )=rzhl)PL,K>bNu7|13ۺ&V>+ k/jdkD{`D{(p'Yt[&_y ޟPsVL}LWϱؿ~!DŽCpij:Sa_lxE|!.~s_֯kY c. w?7y>s?/|ßBu/a?C Чɚuß_?Ӕ }nv_%suCߕݰ w1gxAx=*A>~ގOTu,5Nxzk=L^4iuz ^ }ev'͋}5qγ\PD> ӟE}⭑^|}Pf-Ud>__ _i:܌#?[?w],?vw\YA@<d_A^R_\\,_| ?jمTsݿ#W?O骮_{~OSӔI `;K_g`WW>k "2 >z4/}U~x^|:` eFk@9kcs)ܗۿ4EuC׾9{K׮N)/}_U6~rDV}`qm=N|w +P3axޛ2g45MW]iIWO. U+ M0a_l_sSkKF}HOG7r?VݷW}zN*Ni[SӄWTڑ:'&~͊ўb&zIL}sf3pS%M|wLײ8cΡ?6y*ډ)Nn~OSӴe=7)Y cg4ީ?.A<<}AB!>S`% Dz">)?w+lo#~x) !S~unXS~߸w澛e#n'kCxx/[/B)/S/ D)Y<0XYy+ ~祠5CS Kk´4u^.6cJ>y}?a22RWK**#V^KQ^5eS8#@_yDlCA~`mu.O| sn lޫhȂzo.VUuC?/JֳP^VJ_ʱ[9VTEgs_[ S7k5j?çiW<ϱ?;p)=wj+Ὲ'ד RE_~P2'׃m)CE(Yۖhlgy?Ayվ75MI]v ?76ce /[=|}rAC|ւM)Yڗvz*b+/~IM|vO=+?*h_Q>MMRKfSC_GR"#;RKٽk_RB|c S[)C|?g% 1oz)Ks/=]MMTgy}K,R;}lߋqtY;ve+2ޛ $]u)Wrge#V뽹== ?.6fq *gk9qgp;Po4IsǗ${>CCWrrY-zo'cT~-5L'7> Mj7}OQ1P_^JP~6YPaotoZOcnɢx4޷?k>CC[#TǮ~V v=~{yY2v&W;'~y{bp_OŠ`,S>^A@>Ͻ0K^Un~WB6!ڨ*/. )/䞠I?}[1-|ſ^Ǣ<&t ?|#_wo mGSz7=xlE~3[S>c+7>*ב:zVQ+g>Ԫ.Lb#s_vpD5=BǢUZ34-M.ocWwCzcgʮ^:ς?מ)G| {=B}-8Lyf|W5P2y#aL@34]MCW%Ρ~n}B5='՟J K/yzLģ[-^]rWw׷[ܗL]4?ߜeuVpU IXRb>Ǿ;.gMv[Yt\.TxOx hlĬ_Zy_ҕYO1,k o mUSǿRᜠ,фrs?"wo3xG|ݗ/|XkXO ^2䷳x>ALbd?˪M 9cg\CC[Yw~eպ^3GؗU>A +v'e[ryqkJB|zS}67R=ִ}"ǿڒ&7#W؟:+gU*5AxPxdg3wƸRA r+(!D, i  +A!—crk/nu3E+)4jQژ]G)10*sљbhRYdоi~@яj;mуlJ>1WiZqE\1'Qe]0 ŒtmZ?B`8xO]~߿)U鯑CKMczÝWRc` '_#RZ鏗P^Њ-Y "bvZ3 WGG?|{E{Z2êǤQ;\(au'tAzމ]#"^W$6&1f'q. 7Ɪwxa~U^6;J@} ("ف9?яɶjd̎N3#% 81[lg'§'ױil6sCY\D<¨L#2S a e}նL) <•S_{A3##(GKqܤAa8|#SW?u?lID?//t~'4"C/0!Vb%+κ.W:=v(]6bw7W H: "ö,¶&6)vU ^W3G?eO\Ӿ/̬5_EHo?q~-ηۭOGY1bLWo~8.4-ϘM >?c^##-Y%>kch*RZ$6E JX0Ы=-~[Z!ڱ|(zM+^ȚZwttbZ3Wg__7oc_-ϸFʗDJ+=%mN5*/f>uWaH.}A.nVb\Y6md3fQn_pTqF >AKr7_\Z/}rdi~uHgT&AJxo.~"OdWy )]~wtՏ=wodaTpQ?PK>F|Eۙĭ]Ի1<>ĵ!Nhy!y*>qw1ׯwttC? oFX-譶g }/"+%.Ns?L=]l͏vS9yg%ank=k Sb_5Q<2H3++1VOfF*~A{ƭ]0Q's٭X}o*ֿç§'9 xqlBC]G1X Տdf.~5hEA1@C] U$dH!o.O(|OZӐٞ;0VMR4#zݔ^˺顉jAmI߷u' V)x)+ 58&xkk@ysdpN[Ū![He[ɻ[gef4=Gԍgo~ /&xUrxeHM;׼~Pkǂ 75n3᪡浽DI_Xef?>ˍF"SWM[ԿçH-1?_B+^GjQeP2syF}0 O_K^?(Nc70ҝ7ޯiAvQwtCnz~W_M>qXf, ߧtђ_\ىk^`)s!mKdfq'~T_ [8 ]~W9`G< k~.,wؒɘ&r0W⷟q{D͊9(*$ )u[)D)+bA>7ier8-]fހ7Whg֔>/#?q3A{3+wttCoު1)CP?R1~[@Å/zJ#B?<Β,¥JC>.)|/3km|O3A}M?8$;}'V&+LMf] i}G { k|lɜRY=38n6\4+hv4ۿOGǑ04Ps{i}b{lnjf^f+Gٿmr\D 9hrrQv]QfrLW^⬙'IUQZ .IWNdqg6>82G]c~LRSmIFr+&kuFqm>9?ƚ{3пç`)gsȘ(Vz'.t6~ Y+`)2i&1='eA~,LE XrL+bE84_:8BwW1ܐ:SgH9O?Äضs6H!(/jψ>GJ?}|?}T>ʏ1hA>{bڇ~ [7xQ^d"l̒`ɤ3xjߩen˽g*O8 ֗`ښb7e:d櫔c4/niR*!N9(N5_N94@CyZ^|ȷGcT!ڒ#X|=I*|wEAȕڻ30pL)ԫl5g fa7*_%VKc:li~(8cYrRk\n01SѬJ%`eM慎}>gZ^澇:{Q(-D'n{ubpza>4d OcٚU#.=e;|Ƀ|Dݮ~K?!}/i{ylp&|V>^ v¼CqL28:*Qޒa5 q1b`迹{՟OPbjz03!rܬǍ}tMS!9],mԗW6,CL-Uh+:5D2X,a-?< '1^?yg>f2CH39Y_U_VX;75DxWrcC2F;|f|Ytگ\僝ᅂw>a#X89LW/٥ebimg`l0c4$v.zwF)EǼcOlZR;z]Y;YzRV/0l  x_7)` 6ſ8E;݋ٯ}O ̄u/o j2>(&_faH&qܑ,z']S$e#ԩgƲ Yd5dG w>J4ء>DŽ0{ `3o~4MILC~P$K-sVPk r׬q؈ [GͰK%=ٛ3tc9bj8^T?}cBk#&m]rj.w:tRl5YUsXJ{1u!˜wc|0\}ANV5:LK/}mM[gwȟZÌve kqKVY9cVW WM_/30p5L j[w9" ƈپEe/*Z'T޻>kR鎄?Yrf0o)#9,;|Kɟ wб;=>c3E3*G{E-tgށ+p39e >y'ﰃɯLk. \̫܎} 3Fym5)QK' S%6>{uЭ{ATWgң]ۮye|1_; \Y1r:,{oB͋Bo+3Yd)R$L9&3x q W 9 z݃Ğ?0p1LvKӟUoTAH:Y7䯎d&]iqđ|+ߚ 8/ sKbV.k3PXS𓌂%c e/6_|1Y'8Z0u_ 'm\hca~ k-۶Eeu*%aLPDe cKǿ~wv-SC1-{Jdb~,ˆ3>dI0hLi6wjJʇԧ tHFyXf#Խ[/S^\~(tȦ׫(=sH ozFSϜ*2PĬ bXy Fy̏ L5r|iḑG3tDU`~)_Py_/kh#T4(%ɤMdN>[ ,eAE(JeՈC1*2:6,CXkLWmLӢv:ӄyOi4[׏YvQ TK'7{0293)c%ﷁ*ÆBc>FF}re)/s<-e7|`a..d ?yS0R6OtV- sR]`ێ`L?$Q]3{rFX7awn5i9'uPU0㠘^p)Hgċo*I2zh@Y-i4uߺW|eNu&?7|ǐ%?wGA{O`D%;HT_/Q}o4 hn/0Do_?Τה䷌;cGα2Pgc΁RT^:ΜN[BSURçx&yr[p;8[?ʘab=$dd}5 hq쑳7|`ɞk/żI\wp_>UК2EZ1EknyisŵçxȽ[)o}%Cߙ d>v 潦pbD Z`^(DtR=]OL,חo%݉҄]SqJH#cAU^_YU"1-P7JCD.KFXֿۙ٤'11( a/vZ>}O 0VYG<^rMiHl,}oCw^?Ѫ /H^dqH.ez|QzFq7*N.w)cՕ< w4’=W>y-]Sι#JTySTp0cg~w~Zf7ɲE@}Uzh<K5Kr]p՜΢)n +&S!Ӂ9q8SIYR pS&}õᇞv>7vF=Ç5+?55D?CS\.'Wͮv!yM}X/L֟f΍ 5$+xOS\iP$v#B _[O%XlKo4V2/l> C!/yXK{̛.y hqT'"|3R a?{o4nCw~b,BZNHxǩW@ iWጪpSQoWǻ[D.GçѸË?3#(]y^W_{M|91yC<<8(t@B #Xa.&[.O4Vy][|mAI:By@?㉼HW.dB 'w$$u@ni4n-YpSe!BB8LZݑ:)esph7@C<$G(3 8A%r0,8sjΩ!/bѸ8?ןx;[ȄM8B=l\ԏΟu ؤoA=Y@e=o4w"A.oB0m$ d ܂ 5s|ydSI`Ƚ77VwQ @y$c*˾zȪ+IV?]\qH%{çѸ!6bXqȅ?[~E>(- `*4]HLuĜNrXPQ}Z3?i4nT**.lc8d<^DTH̽ha'W7c AT"|Io`K)sv-ն˴W0ϼNu疏\- ߜS18ʐ*ө^,ea(O47愊\~p b?_^!ff"5S'EkYpksOqGlپNȚƧ{ Bܨ57Ö'sy/]NJS%kF| \nV;? F./oxjϱמx<} µߧ|o7`m Of@`@,hmdR"˹0!b`ʽ [s]ܑ5_<{$Oӎjja/dFMO爾F):Hˍg'|hq7PuoY|LB=XoF3|qB*Ub93zBtžjU"YЯ "4fHpݷv8 Ͻ`z`T !{Eޡ؄f)ua0"!$-z7#SG*鋇uzOvòݏ !aq1Mꇻ0?eD>IXz7#D',NVk&W\^WqXm\nLߣ^=1eOk&Pg{ݶC  vPZ5ӱ0$%Uō !zaqe!nCOK>U<5Gɝ!nK~!`a#TI)_4GNR^Oo]_4D3|P N!d{'|( CA,H\rBML޳IImre=y_~NֻhžHH*r6wJvNe$yF;>-ˑ1n9V}2l`O6/R?f(>7dž9hĬ. u >P.N~h[2׏q9Hv?6/:|y~zoa;DQ4R~j~e,AH` "Dl,LtW͝š:d"G+r۝,Y͒l#06{έrSB_b +)>Bʷy+hGd91jDn!b6y5~xq3$ >s4{zyz98;;'\%k  WȥE{1Vq>Լkxxox}^îmǚO`>St>wOuo7?ݏd^O7;;wNٛ7 /~E?,R;?o̿woSo^?c D`A#~C76wcc ~~&tM~P?4Gǩo_C_ӱ. &]Ƈ O8wؿDz?#pÇϾ3;S?ow־\C[L4?^tG_&_sSa?i~߬{tG`F?#Ocf?2e+gw3~ S?c?Sn)k'~0Q/D(Ͻ0 mNꟇ?fOoo`(~O-}#]?_;4]d̮e?O?S\7|7>@~|;8ԟk7o>t؟~λ~!zþ773ɮOB?՟J70v}d?ܟ؟#D_H4L~?eyk^sîZSzO~0цÇ6|Џ7|C.w{w~A]L7|E!Ocdtvן);vͮ?gׯ_R?6o~{Yԟᓷ׿ֲ~ e>B"*}qu':c5>?|[o l$m#~wǸ A@9V:4P)r(X^b|k4*Nc;Cso s'| 1S?ޖW\?뷥 jsg`K ]Ts;{k-FtAj1wz-m%rj#>]T70f9Zs||+kه>zlcjjsOU?,⿇ό^?y-d@J1^U?NLr~>71?&|0)DA\LEՏ^?$3WՏ ا3}\?~?U?2| (gDŽ7{:CL ԯQ>((#(edFs>{tq^??{ټ|;RVRZn6k&|&C6/zHN&RKyQC]jA6/&| ^ټ Eׄv@TO)]K]͋ h%U͋>FL6/zЈyyQCW9K6/vRKQcZ.N2=E:;|\ןl^~)͑dmק=rͫ:6~;|`XteKYկsl]vrW!嫷yKկFl^~U^?*UQZlQcl(q+rgӒ=w`Dji`/F?J*o==-wm}5:pռ9N>`@mww'5 XqG=\X'%\`=f9s߾ >X<(ϥ~+<2ږ\N{9veg0(˰obbZUcSUmGk8 d]?w(66/~ o$aE ˸(HX\[7F"p8N>~3OasEoh?)HHq5|@guMfQ@ƈxEO_צo:~-[zutwZ~" {|JSŸrQ:|w_OuJѢJ00QaHd5>b oL ݃Q>#|ݎ\Qq6mҞz;]<W9r4&):)wZ(Ia9o- RWW$H O]%h~\0e9+^=c"֞[Ad| g 6qP!3ܶrt7U=8NU3˷egy%'o2j\à_LL̊7qo'x&5|/:(@@Ε~:"u7cS_[Ϟ>Xyqo`}t.̓ CƀI,aߊO c$Lү6֯)I eL;>,wDgg O)<)SƏ2Y-ƁUռҢ'u+Su HD/;#I8OfrEQr6]GsjJ~2P>E^iYQ<=]b9dء@sqvw#Jz-/wi˿'|~`uCƀgv &?;+Ϲ~iKh0"q\Ni<öY[>ZA XD]+Ǖq hGj^aXVtc0B9@#w<&zp26$mVW%g)RToAΟʿ Dj-ly#)to~Ώ& wwǠ'tM#AGYAWlfiϿNyd>8wL+FޫB[7przn8__8wd--]֟Dn{]#' [;h)>@W6y=\?2rTo{Rןxfǹ[>vo~029VsId5>BIc~tyqp% ':kׇḵ.okq{G-S?iےu<\J?s]QȼK|yh%#Y/||Eo.'4ߕ~8NP:U|i.,겑+Ay. ;#$NE;fUd%yh/8P!z>sl5@r+?՛WMoXE'y1@ ğOf}O"kk 2$N3uKpm0L}_NrR2MKI#Q (Zf;뷯 ~` aU6r:~Xi}o?[f?ѧ>ޞ/~J,v[eoRվ 1zA3}w|/nv=.?QR'/鲔|-/.?t$OnO?oݟ"LAމ*o/Gf ~ VCڲп N.YZBϟt0L@)[_7}i .<i(Bm> sп&CB@ KU7oldkӉISفihtUՕ-A]zSNI?0Q?=K+a^`l2S5LJq.TzI(fGCk>Wm:~ >0K?f릝Z?`pݜ ,01,6c~`J ze_6fK7몳~1 Ouo]]^ǻ]]a޵ >ޘ O Y? SZi]`O wq)]ybv/K~B?02Y\ԥؿ8hOte"_ՃeLLIڣaz45,F~ 8 Lv(=%F{lLHhѴ5Kwkvnq^`lSx ^!fVrOwQ]|?E~6m"OSɧ7UcEA?^*OMi;@oY5>l3f*C1~j?0Pߛwro:s)DuZ؏* 9({Bjz5?=eiGYFҞc)k73Xaa:7 V꽗^PE oX*~Ż]g`{ }Q$O񜳏EcaV,R-Py mQ{ce5xLC׀8V8.WNhVvMʍKʌS1pERwP>]@fO=*驪svzZ5DT'|;*7sQ^L}FC9]m#AǏS!:f}ԣQ QPHO$y;p;x우 C҅_2$~DFS7>2J[%0.\ea6PHky =iDh|GunԪYdh#?S;~BrOEPG "a úe#/Dќjڍr/l4l`kdzYzqao_ 芼P\uQT5h ãJ֪e-R eџ#'@YF't&:}Phh@OL4 }}t|FԨqZC!Zp ܊`ގseLAh,ׅ}T4P&| ِj֨uzHFGtsFk6;'ӻny>?* %h^Kl2yoՀY5]Z5يW ZwkÂ5, 3t7O0[bel-n-lֈZ"ܹ0% 4.oNhKZ+x=0wħp!Hg{1G/nTX"a/YKpvg@;j곽і~ MQR}@%fL2'0ڢl# @^QW{cw XGr׬Tp Qj454DCɫ,{ft]5h; QcF( DGeFCٸU.Ib._#WI++=&)֠#S/WU9!J-LCe}q./ DGc )%M<* fwtg.6(Z` qEdcmv1#rPFKMm3W7Gc$uc/waи ͢4zRPGiyhoKDeGfJLsJdлbD S ,ECuYsTyY5&'Y)_l !?\!v=hHz~KJϏ7'6 oh$py'wn#Yck}~XU+A:wPi09Uϙ+VHiT@2]oih< + !>O' ;;OŲFRyZ^^5TK4Z70eH*G;H_ۨQܼawRfHx6La,T&ˇgҾv bD 4<1 "OL 4<1 "OL 4<1 "Oaa YA` ?Q td?FQ te?Q 4e3%D1HEI`*QQYLH $NQ{&"msiCQ}rAB|o aPKL H CUvS}~ J_p TCŎ1 pzP4&t=lTwD'*j0Nџ*%N| s4UIհn>y-0*v1yd;>}\?=ϰPUy`ǾbH(.ώy)ˬ8_áP>_< }n ~7qJ (1u0/Eqm|7xV&]v6$؞%aFNbVeHuk1_X avQ/N@P_GQ|wVϔadIF\}ȋC02Uӫ`hv}! ޜF@P"qXrd,z!eXmaa!0ʰ2DCi ɈZ>A4Ugi2$ 2S{GNA#b1zP9~ݍ싪47e_z58mXjأ!eD@E҆5ևP' OȏF0`3Y׆'χlhPy3ݒ6׫aF[lh`4 30g^h,lnt+ ̆hmxt;fcmf4B88:̆hi4Bc6[v !e p!mn4H\us7yQC$+F413ҰoJ к N w5 ɤm4ai0? &wi4sn5Sx4Fiwn4BN4B# i6i`5\ .i{ipj pVV4!4y! pف4Fi;4V iVi`5^m+猫x^'sՈig>`)r8j$I λQCw5:jeIDjڙ2?OH(j.т~ƍJW%sո_0dѥhL(g9Hd9Q%p՘o˝t ~*!˘1v5KWPA9w5hX%8W~Ҙ!4.nz>:;M08 4a@b)ShJE0d{T!%5`=&H4!D]H;2Ͳ0N7 4z0+*FY>DU֭)I5Mh /kPmD0}6 e*Ӳ\N_ "UGQGi 7w TD_Ҏz UÎf &_\a dajYTY[ClT sdwٰ6Z@&,đCdQ AP jT@B5.1m-d;t5 %w.D 1\5tV:![2 'sx+$EYDb޺U#F H3Ʒ<@GnkRɘBy sB*ua*фeF!cj  7~h=DF&rNLP5e*KrpXC*oQBSW@p~'wiɘF}t9kO_TT% `ж/j$wzqхJNw cWJ9FXjcnFr~,+j$Gh⦡ N 4@-n̗jh b; [qPfY-ja;  oS? .{-jz ,'':EQ Pv2;ӚFqǬҠboeE(9DDBX$K.%ǼΌQʄB PxɷG8j8Yxqβ=@$B_N4Ce{ ?j`r \NW ְia@/.Q*D%ϼ%*e5J b5X "VHc5\X "7Vȅ rc5\X "7Vȅ rc5\X "7Vȅ rc5\X "7Vȅ rc5\X "7Vȅ rc5\X "7Vȅ rc5\X "7Vȅ rc5\X "7Vȅ rc5\X "7Vܪ.9$B%gV)|`"D_rfXuN7BTj,P ?!*O5RiP)ʖ珀WNZe ۽4*ݮ'ƅ_e_?VLɎZ4=~EkvU/Ald+rp1 W[r7~Vg&;1 ?ӄ@2ixrTc$GIIHI֓U-4FN-qiPňDVX aIb'"j AROXq 4}e]Nxf h w10۰LD.+`gBTjkkxds06?;@r-teDLM 0PW@WiБ=+3)̀p*]5^KF==XH%.fu{yD4Rў:A%F+h 8 +H0&p[=&54dX/~aDN44}n4ZH4zv wO1ì1XӠrW#ā{^ :eOOGV#hvӠrWc)(4@PP|4P p!7;5ӐPY}qϵh 4ZBTjO?ML3׫~Qs1>.DhU_d6Rk iH HZ@Ӑri1:iWN^ +җ rpz1PW:_k.YIkȚJR[`#敟b3Hnxw1xЕ&Os[˻<'ӐxT B%4DVW꽅R^C>jD獟CEjDjDnbώmb0FD0]v`B ˘ ~==]qѯ4M_M r}qi0; V~G`YF^ i0XIj4u5`+V#I1"ҏ_]D% (Ti54n pҨ{ ƞn)Du9&(̺l`eP]q5BăQJ- Z"lDaKI{HjZ҃t=iZ2o^3׷źe`j(aۗ4 @hfEKaU4gXVCpeCshmiy86,?>6 Tcq! fPXl3*nh0Ö>U nu/YZ6`f`X\5lp7*⚥r1&ECUe*֊͒R  TC)U lZQmD1P lܣ+1MJ@ݲnƬ3nG]/F@Dn7sRv<$O[s(Ɣ TCΔ PuP. w): K hQ)' 8,! QIs0b(EcaPݸ2$*5!3m=bj5"bj9ajy`j !5{,qҏfN"af8xhGjtX(bT>톽je0r]AHҷZpJW?X#Z 2/^ciDr8Nqd&aJ=[N#FiV[uq8%H'AЀ'9?|Ǎ`0N ble'Mı=wS. E j`xJ6 cǰWN%7 `n\GO +kaz(LAߑ Ø5 <^&Q'zԘB&=G 5m6ÇcrbSXjLDWJBwMljc霺)ͿbECT]Ua05^XTrDަԈH4\#1r$f7Ԑd2[ټIgY>hsVi5ێ`\/woޔ.K|! bR tVV˅†kPðgwO\x=KY4-l| w`?= `L(Jcylvʥcϛ|gd0a+=qڀ*8; 4>cS\_٫@Lt "n@[AU ֺ@AZA)>93fX t&'9s2p> m5q9JۂAiiN, ~2M 0AnH2Wm`a@ԑU7LyۅK9CB>kL²*5c.5L&MM‰̘}j87`'AZ .C 9?圯@| x8 nI } o0H_rop>D>'N;}:5n_5߿Sd݃IKkV*$sfpPڍjxZ^6`8ɋx׊xfy hMT8ccF.C3߻cHȋ%TyHodsbh'̕b#FRj`Ua-:?<迎v @B_WTAzqgcNlBg }uhSjghSN7U2xy1K0C!DJh ,-;j"^aGy0loޗ}WdzH,$I КpoץtE^F*Te0* |q)t{{RD~S%sg Y7H @j` Ț0CT;?~YF' 2 zAj!4FzjԥҪՐ!}éa6U2'x)D^ CNXEV{i^T#q(ձRM7i/=RexK3{3k+5@^{ 1qUT.*厔jf}c8TKPJ l7~F756y=Apӌo;MfԐ^UT˳p3.PVl^LԳc)Uvv^jUkd(RcuN"}8yLe3h`+{4IMMDvfa Rjp+6SuQmosG~AYH1~kӴD0jVCcx%bǕaDWvPh)Zh50RRSJ5R_)E-i}^@ .$RM,{^X=ȩXƾO6 %WٌqH"M[S'u=5Վ]\Ձ'Ջ:g( 6Mx_u~1 )qRÖX}1}F:ߑWC`8-6Ua9Scŧa3~0!,C^K̠``6 jR`"OY ÑbVf7YҼV6ԠZ2{*̡`ئJԵg@ܦJjwwjf%`;o=6aEJ ,Kf1tjR*I{wJtNe Ax-PFJ9шYoƜ5r*3ܟeq:!Vvr[286nM'ǒd|u'J'15/*-'PT\AZScaJJ/&lY^(%,ry(/5r:FBᡁ7(.GbS%<?Hyl|eiwoHZng@׾0 8)i~iIENDB`assets/img/pro-fields/payment-method.png000064400000062161147600120010014324 0ustar00PNG  IHDR Z$ }PLTE~`bf!fhk洵t}rsw'bdh~Ϗz{~ɼkmp솆؇ڿ0134J^vw{568)*,D:;W>,bG .ՠS@2TrHsHVrŗ)6K9Q˛kJ jN>[UGIsD )Ũdb_ ȎԀ)p[S)o&|OiG J⚡yxJ CKFW-I)̰%YpVG \pJ!K=.XOn.}Q|H }2 1wZ`}nw< ƽ)$N ǰ d fW633svH!f`7;{} ylJ]mVT-<PZbkKb#_Cf{]B~ exQ(!Y(I;Wj;I FvM{uL>] * * * *  p5=O*PGF7cW6 W, #R%ZO -k[k)@ HYM0΢BDpcH@+RQqes&Vuk#sRP*[tQ*i,ZLo~a~]%K^4%S-]_7pI_1|C>.12qq!ǵ  6&(VRKa drZeGei~MiyY($;c5X9"zDh(0ǃ兛M׳)xw^^eSImwn ͦ \@&T*ezc{}`& c]taM[5'Rh?q~lHP~ߜStA i&vi,--{)5#QnG^iVq'fewkPvVY `3^MM| tԅ{rk;bnځv4N^` ~V\9ڇv*Nl BB-i/ٌQ'3@O{VcП`xmgq[4[S}p?,+Yքze4җ? A0!HR)@ HR)@ )Ν0 PT:8~A$)@?Lo9ޚ(`-,A TBJXI!K5,i"S@)d Z-Pt ]=\ Yd*,A 2BjH!K|KaDoPRq9 q-!P^)(MůF-c F]1!45OSh )@ HR)@ ױ 1 DQ&AؙB_q5_ #@ )"E EK(gܤpAaHpc<<)`KF LL2RRtRB2'䤐p)Zb1_iBSkBfEhB"{kM8>C$nBm=/b+, )d7:v7Q*j^ uB\yJ!AɅuJaRH1JAE)RRPQ )F)(TBQ *J!(bRHDSh:Ά4Y.;NV2ʕ"=#DmP h s86pŎcoY-X ZI :Cu6{8-[Js Sw"RCJE؍(rO &Mk V m,YVO VrQMY)-;RSW< ;IrL e bgZB? 7m=z)ױyI!e;H)43$r BBC*BCh;Yel ]ɕ)<^S0#OWLG3y#LfZ%#Y Oa+0)TUljW0˪{oE+`4hOԩ;4^}S0-3~L..W|Ҵ2-~,[|Y.h!:<$xfzӆ0I(GQL*TVvNleUiϱɫЎ?]J(!G*lm3HSK%}'ԭ>ARWg[_=B* ^ l A1ǫp^q%!^ݿ6;WAdaO%sג*. ?-_=kXq^_4 *RVa1X_p h?P3lXj ```MO`GT2@PdbPAuM^%&[xHKk 0_TT8nڍ,!] L!;W![wC*\3KdeO'Z\ʈDT`k@TH J2Q}M-O@rʜkq"U bQ6 , gɽ#):쳌@=v8<5`ɪBͨ#+7?>5+d%lB[ ŠΛ3+bmbn3"8Jsdl8[oPUç/P™ʰb1A1׃bT3HcCc0b Iz]!qL6 /#8}V@ؤb]pA _^E5&{.]5V.d'rbK'fnZE.^wlIl@}0Ȑ MXR&V bB7y EQX*f*˸& a{DL=sUަXt.%;79R@宅tr{UP)M>QVfUy>4b~I0rѣcA@Ō[-9rhqGOyb{Vj؞bp nmuDaܓqUSp0ޓڭmePATZZ#oB^Z\U6CNkOˆ9?Z:U*(&WNCI[g\ʨy,FX*/|kNا{g1ATZ7qI4twUq =eX GH:#x *uJ6_o*sF}mqPqYLq$ Y!Uw'aW4<*x5V$36zI Y,STa0V> R Z_O-v$Sg1Vț*$W.*r#8fe9y@|w(Zd5_z):{窋b&L0ծ I`+5T*> jp$P c7%N[-*?yٹj[ bË8g!jߒQ}GߢcY4o<4}gq> e WM(M*X@rynlw 9~ =-2k In@jRa5`KlsnU8D+[ eƶ/z~rmmA^-gF+haSW퍨J]KHy_BXsBx=˳Biga KBg@Oz->x ]֏ >8DkTHKX{.VPo {l6Z:8Bc &W‰j\ ہzaכϖګST8i^]u0PC%UHOU!Aէ>d*\0rgֻ"ӧ{*TPL_z[-w׫pxNX",wwUh?w mX SlIef@՟*'*t)TX *Gл4^T l R'Q rHb H8C0SKL7͒0LVO?x $n2ND'[Csv s& 8YaZuZô(8q,ceJy*jٻ  ²Ѓ%Risn= $c5gE=(⎪2\JT =;vmĕ ?ߪN=zu/t2ZSYYX6 :1:PeZRZ?<1:M! =9U' =#>ۡwi$iǑ`B,H!wRH1RH1RH1RH1RH1RH1RH1RH1RH1RTLí&i%J;RP,l& =;6q  Hps5x/pbU) 0̚)\/09pZkR֚;RsvL{aw )\yccK<לyw:C qmR}aC?ƐHR)@ H^D )@D )@D )@D )@D )@D )@D )@D )@D )@D )@D )@D )@D )@D )@D )s6nQ>KOoA"@4RfaD wޙL7Ŵ<8_dt Va0U`*0 ` XVa0U`071%yBpp$y>&7/ 4D !Rg;ڮDB~@f G|q%xDZUaG#X2ATI\*# }91Ax*h>*`- UTX7YQAvձX *|>R9Q^ QvP+9\ٶe2*P/ΥiQa#"[ ! ^Os0x*H#A߹Rtõju?JŬ *WѸp '-~O$` CV0I#u]ըᢂm%C4R@ΧS0Fizq]s|!Q g~KGyCM|#*.fNE+XnmtLFxFuv?`Pu;_\/ [GVfz]3LxGdkm<{=L9C캶)'#SFDdA۳Ѫ =S&s TND@;ZF+ _r=(C;1oTe,y 0=U&iZ ҬMos1E%*`z@9ƦDaFcsnj'rY !x~58/M7}/?*<UXķ&ܯ يu*:F6CKnRvE4*d: W/Syk;4 OTWW!K-^A*;CNCp6cm)}_i*bHN @`.*<SU?~ ΄侮@3z1Ɗ@B3v_Ho], k1q@UDf0Jm*<Tp.@Zz*@Y ]wM>诳B᪄&=񋋩*M[Qc5by6 &iVY2Y &|YG g]M# @dV[:ֺiRw5~enUr4Mxr:} DK@~o^LT_?UEH^+tjپIע$#[o7ʕ0%*9·< uBxErݪ]yïL|u}jvi'ְT0%N!13!Mx^]DEDwD*n%U) w¦a^Qoj5\d 5zZڄD-^$- $o1mҞ"9tiogU.Zu{ d7‘tyaMNk5ۓt*О ͍XEXTH W# Cuz&-8;</):k'dm>Jx_hL^PВ8ф Qe<`Kƌ}ɭ16 4a&σC<[)!h-5 Pa7|dP=,86W>nT=?]?*Z9M&rzV=*THT~C8[0(iTE;_=KB.M*L9xZϣTE< ,=a8*]k ^Y(=Z;*F0I2bE/ҰmG(^7p(!*Uzm\&2_X4;`%Z\AZKį꯹EG`_[?4JB/BLBQPhp*>ϐ"hPv6E&HEՏޱ,s+ !Wҫs6+fyZb%'yޕEh dQ_@SJEHP>V7^9h*XfF_˵L:HY~Q&g cPTaM\R3^f3uSZnBj1y8TAq|jZfiX?f4^)q)@ &V F*@.Zxe &MⰩ>f 4; ŒW t tv=ܭ Pz{Bqzd0QdKI̷]`/E8R mC$~RmTC^:"/l[Risv%)`T 4Gz=Pjg"M=LO_RR 7-(QN7`IZV ņadۖThS"][sk@v>U(5Bܱ c~0KvTU`b.ױ\+DNZtsxBXt FIM=UV! g3C%&U(6B.ܷ fH ==)UXkI X}>nU i/졫'__Uw\uS FVI>}%лB|b^_z6Ǭ5*To:2m7QwcC9[ Z'sOo1;ldˍPs;Bu.ـ؃7T /1zPW9yL+˵Ycv^K~8v$Raї/>,deFVeC ̫1R~–J6i4wZ9:bnt}9/Tq 0J. @$JrB|VU߾OB]2@*VUdb g qu]ݻ*cK?j -N<_o_G>zRUjSGaG;D@O@7E}@ m[G 0$؋@,N kh;@aGy7'%BQ@e[_M}]!י}=1-ăXSX0̻V6b%.@aGy߾p\ /"Y&N7HOyW/@a ʧjzJ(N鴗JMw)E&"`x0 StxW+B+~n]Bq 8 ؉埯/:RgLC-F8u3`b ?W@-z 35o} 1$;+^!SKA[XJ8{OUh1w~DX[@痂kAR8[ + Y;| 1:dDp:~UXr@甂(WaxOVT0`Äf:/jwHak\0?f:nIi E%`>ncRt&)ӯ?HNRyFabG `nDfX1 ˾3qߌkNgSV}iz=vZ?KQdRx~0@Ǽ%HR)@ HR)@ 0!)@HS8 ׷9h`-:XJ!%hVRH Z1@R袜BJmTSH Zb )9j)-I)Z{v0 aT)*:Jxwl({W>brJZbJ9%͹B .,RƔK&Bݧ`Uާ`Vݥ`V~Ø`R)@ HR)@ HRA Nom ] '*2RpEuݩupDR(R8^(]n$D+I`&|M *&>{v̚@ax ^X$)9.iSBCjf_a{-L!T 2HZ1@ gZa zM 3BV\GmB UB)0Ęc SH)xL!11Ęc SH)xL!11BSJ3-1KO9mIG(fϻS+4Vsr ),SU3ڲsvQIbD^h b-7 UNN&٘ͺs:N&sqd_WB3 au (v3TWbYn4yݬWD[UxTfW:Bd w9_=>VfAwa*SAR_RE@8e yoU0o4 T0VD#؞6LourFzDUhy[U8kS_]B;Jd{"ߓ ?fwQS8: ~vu2EBa3OU0Ogrk\hT`td½bpc`9T4_s^vr ճj( *(L ] U`&D E(Ǐ_+q_-˝TՉ>*c&#`t"7@Y]UXK 9~!n ?Rv[%VaADSJ 7LVK\"ƒ ̎*V_i&)RTUҜ f($T; hG*r?F'ڄ}1o ѲZ(/rT?LB5烈6kǥ ?MVh ͦA.* H+)`Ux &O ƮH*D %%Ou'g :pDJ0ҳw&L4T92p)hK)S?4011)8)hLaLAc c SpSИ~ٷcBfT]xggwyB{y[ .)ʁ#&)ڊ#6)TZB%g,!P+HV͹ ݹF \ v,$7Rx@yq}NHc rhhf|@ )@ O4=t@PN  *@TQD  *@TQD  *@TQD  *@TQD  *0꘥a( =BK*E%C-ԋCH.ҵ?! DHݾ!@HR!@HR!@HR!@HR!@HR!@HR!@HR!@HR!@HBQP1€#-24( 8>R؆^:BMΗSk#mK ec&ޅlî7܍ HRql˲j&n~]bA F=vPq?`A_\჈lw7}!Q^;`fesBx&UK߹V9y0פ2+ {-"=:4 WN(w*e@G?>U@Y{9lk* LW`h8je'8N}B&|}!\,F J ü$N *qB?_LCt.Iѵ@y1 *l-~XmU **Z9wzU\<j^a3 A}/dTBv`h0.a-pFr:**tP]-bBUP3)I=dj*]ɩ|mwϨRӧOai]yQ;!s ΩVM 'ȇX"KT`IG5L\ Kp"yq#Hk7Ta VTTX'q"=ɮ\Tm՝Q-p^M(|Dzh,**[eeU,Ѽ8:SS58w`"vqF ^t{եq$+KeDӳ8qP筋 αv<RT9cףkPUPDsԟ^8\x| "͵RUTO` VA*h4ZFh4FUh VA*h4ZFh4o!09keM3X8)@ & RH" RH" RH" RH" RH" RH" RH" RH" RH" RH" RH" RH6qLa3u&g fMY`S뒂Y`Os\R[㚂w)dGk.bPg!|HR)@ HR)@ !{ӛ4q_Mw&h T8 $ a gA^7m֙6vz{6`9!T`* )x[d0(=,8;=8;AN)93`̜S0[)-i]>;ĕn*|vcUw /_‡p#ard/%$`a3|l=xn* \o*Z/cc`i2f(SLRHj6`pQp+}s)׿i3%ޓ93ew LUp @)ЂbJT =R`VwS<2*jw :g.tG }ّ:T \>)PR^V)_;%(_L0*+dvq JR/DȎOKܚg0%Zӡ2wS`p6s)Lx99g+KGWvj⛴ +atQD ;$|.R묿bw |Χ*KaA:b ;.2|R)O[RasFEt[-覄0RѿNФEAFse"R@ H) jHH!R9Ctr GD,7HaOJl^?{A `-e-)gMQ)V2D^%Ş-R˰͠,T81wqB*)t)qf5Rr/NE )ĜAG0#'H!aH|H!aH|H!aH|H!aH|H!aAS(QQԹﴛc&ްfc8wB5)8 |6G"h7"Zccl 2-Oj dN)jxA/X\/K10#R\ xNpKH<ڕx)LӻZZ)ᩢ W޸8]RPy0vwSşR0'c G2^oܮRދ@SC8_VnR9ѯ 37;Db(9a`B> E<ͮ&&bb&>pZò i;}8 O3ZZ0GM9BmsKPsM@}~ SԜhHgP NL @!M)Qi$!.TՀBP͍VvcjҪ |6xU8♺a f9p ĎjШpY+p>NjQ$;J?)d)%*@%UPќPlOF\IJj&Ðpcw| P !楲a<]؇r}:uro$OG~Z6AC xnT &u@uR#Ӂm4Y3ωQY&jlQс^BK U*Lع2F. l+nuXHG=8 R(Myl&6UAHdQHs6ZVD= NFS\b]ojl=1փ- %3\1qRTzxRsnmiGι\) Ħ*Hԗ*]'G BS>UyYv2/MvWᡳ$-&M Db=آ UA:cTp8  7 ~ߩП ڀcnDŸʣ9 F2uê@l/U_8{鴩u D5roTkTt ˊX,te o*1V(V=ƪŪXXBcUbUc Q {U!Ua*D*1VO>wB·*| ewTЪ=;6(*5Lt8vwkm c^ #&x+w)LtfmB)ӱ I,PT@PT@7w;GIENDB`assets/img/pro-fields/phone-field.png000064400000061460147600120010013564 0ustar00PNG  IHDR*T;PLTE~!`bft}gilbdhstw789ΤЈ}~124񁃆)*,>>@oqtvx{˹LMNEFHlmp]]_yz}WXZikoSTUڛZH4xQ+sʚ|=d{k%paIDATxMoQCN@qv(V&EL]XJЅZoԘV}yvN ȿہH>'ûa؁ȿ)JxC3Tf߃HDDrf Fd)icOa\:C'_ a؇ $/P.S 1"9s'2YP9k r:Jś6DeJ%$ۀ9Y5!B>޻\b!D%Kk3"[#/>O6 ;Stf2ɕQos\; |{#2{mL~zӀ+Wfev4H\k֐]'mI+y#Y9)Wh|Z2cF2HqH [t1UDr%`T]:   bk*[ԍy,L"^ =+}(4rL=`SɎɕ4a1[5||W9C#ǀͻʎS*WTIDmglB{>4}$+9off|WɕU*|n7n KU MJbO(}){+\=`65V"2nwܤ 񁌞Տ/Jeg*IUPu5?HάS)0}؈&bUZFqB+ #W*Z_{Յɗ]> ^35r!7vJ{ӚYTiS۱j`_B│ 8w)J` :IZ ZH88tz )K(OwZ6 y{͗JԞ_tYJ  >R kK%D&A(tt: I>۽d-wŮý׋07:ܓY;fnhU/pMTEŏoi s!\ QYclV u DТIהRdriYv/ݒݟ'wIɪv{Hz>^w'v< w+:fdMsI659(?&m>.ܡ̩`J>0vLqRZ@T~שS8fHEm!|/D{]T4TA#bwE  h: X1p Tit1O +Q (dvu XEGbT7QR—YL]))y]4Geybfgi,iAx ɧKP*_C/*^np xeX~O&BQE/ngp;ު": QƣH$?hab%&"́/" vd@5}Tdi*{0drUԎQz ƢJ Fv [B\*LS9Si4\O܃6$&OmQ!EP[v= M2*Pl|b09nfܐAjdS!_-!.Tdi~ $kID$w\gNjM@d~rXX5{r&W* SN%ZG,Iݪ#vjnoQ"L5ȊIe\RPNĮ|#}80no[F,$fYʬCyYש# $g5u*(q/S>OO5hEٜvbJ#¬]+5J!STY*H\WH^Jb**b'&N2N]\S(edY9 Vn-K6b{NEeHD"}} TpMx&/$}-L>y׌mHw2$CN fnUnW@S sL5Sq3cRYRMG&8$7J^'D:GF֐0+𥉉Z&K@9TwF*X%ÓYìTLoRIA~@uND^#[O jdX= drъi׬T_ΓT0i`isӈ*&g]dUtxzXUY *βT&R"Ƣ-5#CdUS RdFj5Eng9l}x-ZT힖2W 2ʭ! 4 wLo4g1} _mOPii - bX4$,q pΡ֝f6Hw^Lp%Z_N%{D#O9`J.%ur豼. ?f%j+*4Z*RqvSTf=̍=C9$QTʶ?r*stWQY` N6NJdedof^&N*Q|*zqHS+4i83uOͼogF NFNj  R@BJ<e&ԇ6>ro8|ww&#oCCD7x$MofPRp*qT:0Ah `l'Tz06S'wےm ч|LeR: 0FJm$v{$7t4nT'j/&zK%N*%twiGw6/5PJuO!N.N\{qۋ^ 77R,ͫ,!J3RXR=~}I*%6)cN>N 4uv5.9T@H`|3wN* ܓ@'q[J”|Tj$$م츋7/RO9|m*cIx[⑴/Ӓ^q*eC SDKVPdw镥.t 'gyc NS)݈ R'z^MZІ8yDZu6I0gMe5'2 'SI(XB閟Uc$ gmgw Vir*qN(fUcc`~R,(R$-ͥR2Hs*q.&@Rz쒴f?ye,SsIetm(O ݏc1))I?һe_Y#x~e|LBwx5=r*Jo"BQ:d'2:\rrr򸩠Rgn,2H:;.GJq =u|fXhpxvנ/#a,{ssCh􈳫+y x6ӳ:f#S#YJ^tO/9f SlMsdAU6{1ym {iڟX@"1.oRĘ[2 k;DԅQu#D* "LUQc}ᓭTpJ%D@\N,v;6U|K @,f#/Q{ڣ}J2QFDTjCST!Et*s5!R_L=@?#SAJn]D*/Ee#αeި|]J^+ /QT>K"/i ^*NsD׫osU c<)yy{ vD(6E*O!:`.0>N"`SN˫xgj҇'8^> Fw:PMvuv TĥkhXXT*j;Еt`Szp\5p.R[}q9Y d*CIt*|Z vG*򹆐 Z2>&_@dU#LG6D& q:Ry*kKX@j[RauGKP*6OE>BBS>N ֝ )9.:y*MeʅE)5v(bX61xJt*L SŋY`D"\Hp3L-D&uS;uߡ8R_X2{|*Mk {iGGuw,H04 ҩ|q:eD"Oq{SyޫhߙJ:*SK6詸E}/xj~U*]οE\`B*@GKk s=D"#>눰MebfR}* 7yP"cO sE2&Ş8ee*S59g$r +oܲ8$= JT*OzQvw*'>p~w*ղsW?9b-7|Ra@vY R]Cb˖w5{x*Yk -0jgIZ>Om`HJEi}{-2{+0'Ί TbBEr ai!J*,BhHK%Dj"ty*{o* 6ݩ׫Tρ$zS~^ yӌ\cjL Xs$3N%X-m#ь+#J7j>bS IBZ4WY<[2V9qfR|R7&d^i'Tjsm`vF,ڍͧ==m2zNEgM11gM8|CI&8w!.VPh?D$l_nm?h5|1@A(pu?<{[כ]8.F[jd64Z/"żH cB)Y,?m8!/2oVkP&?fer:ѩ_.j8Sz{94Rعޤ0OZ&j(!K4P̂# !3a)uc냖v}2&ʲ]lldۺkvCfgqMI['ȶ;ѶLֈ1jٖ:8秥xT0u7E]&k뾚~evVLPvVSSQh)Z4VH{8҄A!C{M}KVeH%U3#/Ik7>ۗ.N'vjM)%Tr0JPǬ`"; k!{1v w%YGI`gd_&'SY , }E{;ۘzilG_?h T^M@խ(MZpjjڅ3Pd'N񥀝拾aWXr|wS+ڄ3J劾|%jӌ1)mV(FZ["S&{UU=~٥g]2s=HQ}fS_뉗I[rLag=m>}疊<NJM/^yu o1!տLDj,&=ծN*6̻MQ.TFbZH/UQFQoR)e168 %d*Gf+5#%ȪDyʤmqƖd*+^ߛͮ6N7T6hd&*нvd*N&Ǎ7exty.iS.l*R,E^ HU#5x n'a *{6S7+mmw`x>*.-PU*"v]͌^dni!n"XvDƬdJ{[!SLl#ܬxx4b BQ*dʤpr 5T<^MN!l| ?;ܐ~nVfM ۥ4#::I*=LmH֓TFUW%uc r$ۣߌ xT\vwPfhxjWouu*nH#fNek@6k〬'YN5y`[:1Tk[<`޸vzĐ|r}~BV*SN%F(Nݪ!tȡr[i!R'Q*5,eE90" ˉm@$ܬdjd!k֩\" $g5_u*;ȥ?0=^CbA ُ*4]*LFEوHMPz2R}ꩌt*,]ĮĊd/N%@>0P6$V# Zb:&03 ؋W߫t**KG, K)gOcУWJR#hqdPp yuq*;%FY˶* o⍶Tkry*y'HRg<ÈG؁`m~~֢x0΀FBT0[U֗,b\n#YʷVC|wݳ`{lUy4V!?KeqT>Y@J\C}LHYc䵊T 駪!'*"0d=b&bŢ[Z'MwLϽTd`%g-: df⟥bl'J@e,(%&8^I#zwoȐ7#LV OR%`O//<1{yNרmM`]+`Dr;ԩNJY/gJ iuE+xKe*8 i=K#O!,'Leuj$ ]}I?7+g6?= mB~*γTnR_=$$;{7Ȋ~䈑DT54Ճ^w;=60SRbvۄ0<~v ^#*[^Xr@&*J|7f=T B- =5UmT\A{OU;T|2 zM~15}7ɯ4'ܳuGͭGY4mJjMO%NZ@EhZt|e׬9WۮA);k꺿_ɔm:ЁOOK\} 5(-?MNMv3W˨U۪RpGUh @(b:}D,Q_B61#|>'fD{Z[:Қ&;$\o.%tǞɰ̀(b1"䚅6xGUwkU&Ƣ<"ڨJҹ*cڀJ#bqT':#7ʱa-B9R a%B*^I*9,;O:2A* CZZunTQXJyVIu_l8Ww8DDHm.u`B!K@o̢V7 0b+䫂ռ bm/!k6,v@|* W/NeTTNDngApbP2V QO3ZVii6>JTtYXޕH~*'&IneT;gWm\UiPs,ѵoU98fF3{x[Z u2*2VTq@CL$4ukǙ1B_$CϪQDX竲\K؍>D+`sTQPi". wD B{_L[UKJA B&+D's-@ 9=N+Uq&_w}Ԓ%;VbZh9@V}eLS KVqVxa*sU1EzH9aQ}&)`YUYQIBPQ;`l"W^qX9 e*JJ7ؑaӁU@Rt8G LH0DZ W'ijwT!w QF>nUx,'̭*["*sI[Uvgk"U}a蛅0Ɔc:  Y"froܱ`3ޝUJ)]^ܪHV|ڭ*k#GyI)$8s&U8RT;9kYJ键 $QͿU9إuPeq5.*+90 qՊUqF#] Y^@GTRе_\2+UJ|UXtVMY^*bE2*xa,ҁ6"U|q U'5_ X #`,OL]*v|)zR>嫢&:ܴYQ68o@ku ?:WlYN*Էy"B ؍(~:t7g>͓ |Ց /i'|UWVyzwT <~btB̜U!COeNyM 6y0SE!wJsn2gUp>o=zUQB2|'f&hK`UFe<GXQ?'PvU(0A&~ޖt,Kf@h%V=?yX} |>lQiv;nFs0G{t-i5>ƱkzbF5OWˠ۱ 0A}bPu@Ƀfzp ' HI"RT "H"RT "H"RT "tKe3OqbpY{xݬ|ڱ 0 @ WV C8s7: o83W|@X0lo.-Vm͞ݝӖ6NIlkV2+y۳qVҟ l}I 0b(+ @w,ܲ\xנTAL(%mhl2zvxK"|(<߿d.zU-)IesK;GZ,V˲ (aD ")elIH5gƏYdD %LWk%UU$G8+6?uWBl,,osTbJ)Kypܸ!1 {9N]\zV#~*4㯅)vS16J@{kiSZ} OJnnw#0 [@+m ]C4DN ?~әӍЖftȪoDd-AYHb"(|V(qFwhbcP"W/6qYI*t67/d۳8jF_Wu!5-e r]Ulk\JrI7rDT`3OVK@<\{+(D =+ZCVe@BY6Qn c=2Q&E l(B[&B;ym@n``څd#'0 ="8ʳ4RE\w`:2۬te/tF!z/sDԮ< Y%U#CUU"baPLHHaqwJxBrUe!T,9 [ԥH(9;DHA"|7sDUe,ܭ:=`%UvjeX@w~SJFd{"Q@ E .`X}@*@s]>y; hL)0j#3%Tno6x5\RcP`EY4/t)C!UoP^G)6Re'HZGc&4<:T%E< rW]Kzj1jVIrOv|"+Utǡ9ژB*=d10:HRjGU[U*;>DԥEcZ `KܐM@ee<ЙSP0Sf̻{*'*UJe74)&XL.GU;TeHksE8M45W,*~UTI?Ue[}i̩YUL2 wJ5)fT`:R\I UesU,I{+ =iU<$%ƨ)w̩UpC  -cfkVE.ثu(+Hb<򸈱 1|z[l@+J*.BDf&\Tŗ\ҎJyMQC,+jlyO0WA)ItI57|Czՠb89ly -疠:VrFu,hE7_r)ޝ1|ԙH1_b>}ә3Le%˗gQw, a;CS&8ܐ iARG$$4$[^DO2>[כL0Ε[gdv~6;&cPo]r-$6̤1˸Be1njd=]TVy}W9,^@b)NVN7Ir+VrR9*Ju _Hxk~`V9)ۗe6`*A ዝiM&ȸ!m[na(l.iq5J, J''dAho3d&s)'TB}SjNh}\T" B3A0U<[>Hǯ휟ic=נG*!:30 &AH?'Wvjߊʶ2*^$]i3#hD]c ⁛ԕ<7硦_x0dZ@Fƾ+^Os^RK>~6(˦1*˒J?iw*SO.ueMUM}F#2 (8 ִZI8[樈|,7-Ylbb= dWLz; #HCqgQ >[ Am||&0W#->e"*|C*O?@#Lr1ZE?5y} _Ǚ?4v``Ev`v+^>?oC]}fzYcұ_3`dqA('2*54wHDjyXGE*BS =7D|٤~ dT8\ l<4G%@kJ'C~&Ƭ-lQ**?9"psT=q,(CZJfu$rjuQU",,4F:jJA1y ETD ] v,7G%=8ؙLR¬ojҒQ]I9E^n?1/E=_>.a>gi˯Y| PQR2 Lar܁ #||J̀e9$ P_(VTu*OtGR1zT|(MMe^9kQfu%vwn \hy-E[T>e{T Qި14DU<֯YS(R}Wt4֩TPK՚vL`0R#'J IkQJTKO-U3Rt.VRe*Pe `&IJ(TV`Tc҂(M<÷3RV"i*2&queRgJ r*K30uLgY'j=i1®B4TݲM4+`MTS*vWa9%oHb8vFF_Zw3z%'SEl,9@kύ`ȥ2o֛<2n{nH!YBt?`?_n.PeH?ި;ahůQk1T&^JkѴ7DYܠT*TnIȋ!]IlbR*#Ѵ(M#/;pfeE  n˵K`zk{2f.[J$V$u!6ZXg:2-SJcw4$}}U7;9`-CJ,;4|MNKW4M; tDŎ _66/w(0E29a Vz.|y&0-N3*B<˶R5RJoieI|ýҲNŠ# f&z\`(ĹTp[Eg^upU4F+ HLmam3jY\Y%'ScX$bwwa_'À`@G6*ci5)Ɠݽҳ5,2݃MwXH5bRiAR*FB 0nQTƑJ4YPxBUՠMe1 S%YƳ+;`-<kۭN@ca=`}H@/4H%7Xn]t:;3UG mX$Vt6@#u$1kTJ́M<\}vxPJVG,YynձfsM`Qvd7 OR-+wlnc5*W㪦m`L[`w"Ӂ/XӁUJj)פTd6S09^"g`w>b.xH ߤ2ZRuk)"R* $LjSQ’dl4Lـ#<o9:TfRI)R (_3hw)Ս߆Wv 0QTT\!R1mq*j0oDu[l\TPWH45:26Sَ#VL[R)oN =~SCS5.@P[?G4J< vgSʩ]rےVE)\xY)x|ׁ?^2Rl\sWHlO^ D Y hTn[VӇ. t!y"v59q[_z^|Ji^nA^ǔV|&5N9#_N.;KeH8YSG\J10*3"nYfRG`+1]XCTL`em{pƳ'p5ۖ{-HJ?q8M:TY%i`ݲGN@]HLqG>r^8NM&ѢWxShr:vH8@(hfݰN.l!@pSMv,`}'S1PXwB*./n4%Rɩ=M&)H p"bŷ^Brɯ"HE F2R8HzM0I^8R=Q[aԮ y aӶZ>(.vUZ/lYOQjWYT}Xò﬚nH#5ziPTҀюQ T;'AO3`]_u|5Z5z*Cnc(>*nNÍ>*;Ps0 /-7(-%~>`K*  &( HJ%R@TD*Po=-[x3GFX,[xjf5[rt8lXaW4s<]tˮ@ @ Yܸ ]$W ThVlw3Tq 툧&D7)Ί9i7fFsUy3|Jc;{m-?vד6`1Rɗ(V2m-@lffu')}A)RJ)RJ)RJ.J^,lۖ5?RD?!ӝ_פ(J=Vޔ!-(D}i7b_Ve4U6@ےe5Kk?aZm"ctd&CO0e^ەJm{OtkN2P'KNT K0 A]ą w0 3I>ڙgZ%'"9O*>dew {Aa+,.f* &O;SiT>ͪʩ `U ~Sɭ8$6JIC$E, >@[ [*x tExr*YBXo&gY#NQ*3ɒ=kc*0 $SS$J$|RQB;-┝pIq*w} Z* }t%р3O=$HEb.7Sm͊J  jн>Je“#)+!7T5$}ؑ!Tl[ !T)2Qþ C1 u=_k#S7H m\j*ٲƚqյ5=#Vhɳs%J'(^uw؅OzUNR4E)UrRJbǎQ" g1X=PD,E r_ a.(17ܝHUF3Y}h&Τ*c٬>IUFYRTUs*5ƪJUFYP26jRlV;fڡTel4*c٬v(UfCh6JUFYP26jRlV;fڡTel4Żq~>>#;ړWf3ADF%JV=5ÀRmen֊ah!g>7F~*PuvN<)ޫJj~B|@\C2Fid"}B|E& @ 8\*Pe6dVTI*xUt0'Uxܚ28UssTz]Ur _V%IWa2ζeQ3Y20U®΀U-0ɌV98K*#덊bvڪ=^^:yvp+ RxUl o bS1r fCE$N*C3T5 dM](T*LU\|U?h)h2,\;:J <[lڪYV<.Pt4Hw4_$l}ŒY 0 ,+$k nA0oll+G̫N9 `᭒B!UƾZ-ihBE8Gg@]W-4gz&yùݵ˔xvp<<Pe :U5B\JL0RȢZnzP+h, .KrUɒ1جH:9Mx= Dk6Z̲ E*jJ;/k:seMTyCQͧ %~oOG 8ֽUiM:{['78U,UQd)a ]!M۩6ɠ|o7[ (YT*KŨ[9[4y2ױ[cY׀~HW;Cf5tż3Nd };C*t\I˶*~\2DWfU:GZ'Wr۪\*i^<|s \Y[aFgUt|fxUI;Ru",h"3{8QMډ#X,Z"-/dԪT*X;ֱ=-NN]1dc-e%VEMALUĠ)2ٌٕ31OOzԊ3'NTsryj>8ȂL~mp`?l49n[r\I#xoFPTҭV=U[m=F=~ȹs l?XyoCJD,&R!yqPу3d*2E,Azߺdۧ!2\jU<{k-zhbǶ^z=e˕8"*6^UdiJ)VOUJQ~zF"YCr#oB%s2ޢYǵ*vvU@5f ‡?U76ĸe0ڲ`=Ui@a+9?&4&*}x<p+mG zVZ`0s-p<^zBs]vj6S{1/ZK^ kZ),BUUy-89L8QTy 0fH*m=TVsWԀTI֩Y\!Ejh=T1b$X+))^u-9]4헣7TD դco\F6!2ۭ?x-c:+5uZvGr9 dKiH3U"4'3GKqrd8̓!UX!7 /tsX $sxCePur%b%wurV1.:il>UUȭryо r7Kd&*}U9A_-|nMv~i@s@ 52ÐDaz&fW٩52ePhX][ Nyl!V ct\/Tg2 )D&ބFI.'ڙ%;"] ;_A^ 풅.U`p/.UVuqВ@; 4 ZVSj23noUy :t'#UyBϖ6sa- )2ӝJ6Hu܍zdҫh_?]^Qne*Cބo*̕  \̐ױBʊ|-,|Q tJ}%fI/*82 b'!'UbP)(1Qe(HfiD#(d0RLT 0RYьgց!#ŘxfR0RYьgց!#ŘxfR0RYьgց!#ŘxfR0RYьgց!#Řxf}N0RYьg֏#Řxf}N0RYьgpb̊fL V4c۱ @ѻ.ѹftY!M;H|!N0m%ݦtտׄn>t3d|-=u2 u T[q_XgCf%R@TD*P"( uۚ6q \$1O"eZX`ot- 6;߻C}ޜ?.(uMEh*J]DSQ"bs7yni*뤃SdqޝwHGSQ\B[~*&O狦>ɖ:<aYt͛L0d1wT:.3H*ϨH*6P:GIBRiU ,뷧3IhKns8Pz&o&p/r&TUhR{r if+A<ҮS\* wL?JC %q(*qc3T5Ȣ(lRSR飕JX7V1Ϧ| ^wf|WmΫd66m`N BbBRyl&ݘ6Χ%C ea=eusVlSH9!+aK񃦢A@KcYpR-I;u*3VA2,v*4QoP PF*d:ZqɚBs M pd>;4 ;SٵNSXLwq+2+lb G͎ !ֲ+h gzm7M3ŭee=Bw*۩J|= |}'`Tգ'ŋ4T-Ě~ҕ3)Z\5üvP@˲  ]0 TWYOgI`JEr\+)*zط7L\([JPb)χv r-4&H[lEi THjM*%NR[@!kO׊폕3*@9z <.yL ċpm1 &[^9I‹ x"`.C-tŅ1zPوSw_<1a*D0A LhB4S! Ta*DTȬD(B!"̲!"c)<YhYsc UArBڃA P0_p|IENDB`assets/img/love.png000064400000003116147600120010010265 0ustar00PNG  IHDRPPtEXtSoftwareAdobe ImageReadyqe<IDATx_L[Uӆ)K&b̀/ dĄd L>I2e%$f m1$KfVeLA@[l C綷&7-~Q9f'jp 8"K#N@JYL`|qn#[mXa\::kuR}QyVJ S *ERUYC@;PZf[:%w~QM`|N8rC},ꐤ#9Izי8ht@zR2гTP0vbdd TJ& K1K6}@~ևkH:a  Z~7sr?խ~Y Zou@CjQaW7n.p724qZT]žT_ 8LG_oy>#1chrm]f-Q7t>jn9^(-Yr]y8(Ҫ7.U7~f|a3x@/ Ʋ.{Sq-IY][Oq%!YkHַG޸A^m5etHe Գr,в ?x0Xr~k;pfq tp,C#13_\ k8FVRsPoP]]3g anx~H͠W[­{^^!n-H2؂eUn?h Up; 1 2 1 128 128 y' IDATx\ Tՙ{zeohU@5(hT4[dfLr5㸠&QX$91q&1iAm04Dfꥪ2wnST5؀z.w}-1}D@s *OltTP^5 %8-JīX(vS*DP*It-[ZןȕNTBZ^f[m[t%쩁;xS=72(ڙTdݶl`uEoo{>pb5I>ҢD3b1'u֭3粤g:WpE`3^@0{feYZLə &aDKB+:U kp?bj+wu+"򠢟K p:-p1٢ x,mlCp}uxo-s![4ǁ8n|yce;ڮ@}EB1070IDJT“4\.-5n%`EHHDHXi M-R s?pjU7_0P5ϋ1gy]o*:IJ!\T x2e"8&=Uɯ tz`Ұp`G cQdy?ܯTO[#GTpR X&>:*7> pIIQ-]D'`4#ne <ҰHEHq͜Ea'\Ps]7}I {47r7[NݿLnO$S`nHy.yn)$mwS`6ҧR]&z-}8Z9?dd`G<}2ؤCk/_aMGޗ Ϯ Iݟ ұ/[Ċ2SF@]ؚ~YtlT ϩT.qš`L0 *&ØA 3,:a'b{eAlF\slz9^ 6+x*8v<*ϊeLY)3+.:Q7שk.r΀LVhߕLa%-;j a'HY)n5ЁxЉQoXC 0'7.#8'1bٚn Dv9ԁpAݨ#u: }Vy7/m=;.Tҷ(v)G<G+.%R鬹}vH c 8pk9;eWJs_7|LuL{O;E'ii~$z\apyޑPђD,ҰӗLJzc!PFNmད8aVގjvLn2fFq0ͩכ9j>jKC_^_}0`E2ki+;oȂr|U:qR:Zfɹ'2%W<8MLk3PX/0NǨ#} pD|D`;y& scXvX8M,#6,!fǜt4jC|,r @6ޒ^ }Xl%60d(+G5(Mx7#\!(dʴwS~YD -hN/FU,~.I9םl/g0SxZNP>ŖW䅹0V3N#-t&;{t ֛Fg,K\{%Ey,2"o.CYSrndŅ}i>j!y71/ˠԙbD x8 sӛ :XgdS]ٙZڊܩ"7=9N2al8*Isewne$ؔhU-s1֖8f6I"L]y̨~{Zy9S:ˑUMvZfBzH";3fSa #1d cS0;ݑfs6;CTͳP2I{slDGq9hFrN ='oL݉`Mv,U`Bpı/ϭG0@YR=J!azsī+i2 &dGf}vRYSl]A3c޼ɣ,Yp-A$?"Ăbdo:}{Z`Yðnk9#xvfF<"͆\aT,:I*>]I\؍R5L6ԤmŲfMSj(d>M'}H1n Tb>'(PL6r<W(V4!X B @ꐋLAB _ F|&'th8<Bn1 jK: Z_+x_$$\>&cgI3 s0KԙLW&L܍Q&g"\[|5>}'PtPpʘM|g8Wo %dr}_w`)eg/xu+0'73"L'ëwzDԝ+bALMTk1aV}*u& C\]QIBFIlzFۭhv3x]fr,{Qg&Ĺ "@i dtev7P)\>6j ͈oQqfl>B R!m-r4=Ҝqw#[=+A&UIC! ܟR 8@g)70ؐK+>eˆ%hŋQ04/u,&&8 |2I`Dl d|'JOmd=s09,tA=.AnF@X E'?/bJ͙zE'W6x2)Õ;9cP7{b3g!&~V<.yk4f} Z eɖ@B1XԵƇ[a0q'1![ "\%A#)̷&caۮyLk62:թy E;\ZLD[csc~btVOv>f JW"^Cjʇe\X2"2(ltA :qI2Xxa7W׷>!Mdtg=m7 C}hK&) YXd<oKXVX[mi-pVe i>w0,o<,lyƖIMrе 8 >·-&x;ӟR$3-/V]dX^Kf0b6X%7HM?ix`0Ќ4Gi1 ͤai?pzWjWyDd_Փmts4,?f+kg8@CNVBvEQѼ߈h?z8XaJe@ԝ@L1HSdWBQ=V<OxO}}%7 LGA 1VȠV_^„L/T liĔ//͓ OW3ruvꖾˉSr(W8іS_πH]"0+.<ɑHeI߇56@E37u)C ^N_/A8n:ڇ#!l`'/σavR6Q@"pZSo՞6 ^kW:S i i \y yW.ɂYvFad>Hq qb9![*Y#+w1a~IU'?XK(:Jz;cHASYQOgٙWn1skzWѿ-m˅ps"m7ؾ d>c{!N#!=2p&DCH+>k^@?7O)}c?͛5XO _tX_nR~wW²z\x!/0mPx~oB5!`Bl@=0Yv/{:Ewk=!=cA٤1F ?b91JggA$Sy4- \JfB.MtJgZQOG_ _=ݎ) 6|6.=??ӼM,w!X b<\ (~IH>1h !:Zd,`/#atO_F@ѠСUocKSyvuW`:_)?@2? `>Rlʄq |;dSGD:*br$%KpH)ŗ0>t. 4r✗Z$xLۓrFbm\][^|j;l۳2Y;ן/2a|-&g`rQPUh]'`z揍p8P{-ѡ/]ԑRg޵QBf0 _>P'웈?mmhp]yQsQEy z Z_FEЉE*u[PU/ۇo9$s-:Թ^QK2b rpYy:N(/oK[%߿ٚG}E9@&?ԆH]uԕ:SwALСKmmZر{wOǁ9|O̞aZea~fSBuԙ >s%AEJ _=cʾ|Ԉ2Sv@] :RW\W(XEAsY% |w0* }JsD8+p_|eEEb9>$ ZuW+P7[Q;(3ؤԅ:Q7H] գ_:g>s8oCTKz(~ ?B {G%B,ɐk5 zu/[AMk[ ¦͹_R0elj ;u.ԉ]jY*ޝΛCïz)?)ёwOG}.=8|hܬhS9/JaGA]c󯟰 -NwO[#5uuq t@4͌=QZrkĉ/ʆ..V`ScOs8z?Vͯ6ld!#vU{^Y,Z9b!U ;D$7/G߄~K)œzAujӿ|\,78)C!80rc񥀏)YU;n1/?z{--nk`b-sk`h@-03oZ}t9nѤ>{y|e9%l,s53 ""?aI~?faoj3r%^O6/ٽzOB`[lHQUϲHHgSJ'ըpY+;4H4e&4}ڒGp/OIA:ڏk[l[߱~}_]eGNO.=֒@[H4K:$ ,x'VN9))36Rer@a0sfY^3Ntt=qëUԕ5>Zo=\h::fIԅ7Xo7LlSK>tؔKch0%[w6oZΊU <&׬kci^B\PY|Gft8 wz^w˓5UB󳃅|`qzSFyUz?Sïp!{:(4I1}GR;jIENDB`assets/img/ff-chatgpt-form.png000064400000021417147600120010012310 0ustar00PNG  IHDR]<PLTE /4H```@@@GK]ppp  {000aPPP`_BB$%$o@B~$_crBRG4Q=!tRNS =6!0IDATxԱ 0AYX+k6g]픿LqIKIuԭnPA*uԭnPA*u1a^#\z,kSb6U#%b$x&c7(Gq!R( A-!I4 ʛ}e#Fjnl~ILJDP^! y P-vS;;1#m„l2Dno38!0jf}H6r*N"^.AptkkKٍZJ:g6-OA 0K7(&nt1"~Gp.˄&~K|N6ubTE}VRDZ]dpw./ɦ9*(ǔ7 Mv PK@^\WpND;Gln^4. حF$Q2/\eN PtZU>Ϊg+~+@HHgrd,ZiHvC)ut bVgŽOjuQVZI/Z (n\Gr@{*uj7R&Xh5a oT M-z(qaڙ?cI,+x`R )v`o[Xg*ໆs|,5#jdk'4Gs{u JRnpLv9|_Wrm(p%Ny{쿃(w`$&T~?T~Ep Kc(dp"%sﱫI_C^$j:1|~tx1wG$LjWVnA8W"྿,īvBM0Ƃ1iBmw3ӺMp2vs%ݹʲWLbׂm$fdf&K|fa1JT .ʤŕ1EJ޸XP͋j/P3bA7/U,+W1QLF%I!8}sI80Ζa{ ]䘮$]mOtT=\ýxy̠$)`-|䦮cs}]ט]J\ћͅY.#{U@ʜ쬁{t̠aNCt0*[GUtm#bIתU^ [mt ? ;s]d tZ#\&Cz;!q6OG0х.^d'wce?fΫi ¯@v2 @+@<  DD^9b Pb|ΞoS7?xa  yFf[]Ƅtp=& حFR\(7e˽Y+BD)#mwB˳;&ӕs[" >h鐢ۯ*uMWEmHNZt흆A7(\[8W?GuA/ʠbspV&D{ S=1%3eM7ts.i]zpמu#JpQ3 \erc"oގ nl 3E1o%m].\s}zQzQvŃBw2TnnMx{C>4 w]d\е<^{ Ip-ˣ]U BWnXVM7;vI"uL2':+צwR:-!;.:)][åtɊ:bw6^t5nhA[%+Y!/X IW pt} v ؚpתׁ:zAj@Ydymst#P.(0nw nfnѭ1hӫV.{_ 11Y/\5+_5& ?ESM9 wV]C tWGtdI[qqm 1^ 2ډL7n۾5G}WJoP>ѯ]vۃ6-qoD}`5cn]c;-̫tCh.E"1h&ttWг:j0vACJ+A`3g+p_uv56]G2op!u`Еuty8xaȱ~uzUQ};Ou"Nn=A7}O.Xtu{)=dVw=Kuu۪68lmbPAwD6]߱%]t*`M Ң+9ӧOoqݖzV]ZYBOEEz]_XkԕM=t񘬲Mn1gVnIND<\ GmF9ӪFg=B7@FIl;E^N I1_ !_ִ<]ŝ t%%F2AVtR. ~Miuzk}Ê+3^,na ZpAWFƀ])Ew[;K  0^h,ѫ!.2ukJۦB]e=p}- kH:ƺU3sd~~ey7cIbASt*ZЕ"I͍AvHطtmX6O[fzZxej-.]e9*]=s.8 D\fd(YomA鳼֮gtT ^N AwOU߸ 9e-M0֪6H4>]Խg:OuzU'>=6݂EɎZ7kN؀KQ;[ CoEwĀ3DL8C*n ѭ7 XRЭQ 8 [v7薅ZNGG~^n8ڙ}7KXj]ڋ1_֮`r[=sv=V?S3hn .'+J$2r/53s<mvf$$3, twI׭5&t02ÿn(8)0oӅb~u_͸󷵛hs?R. EqATdva&,UwݒϴNjK ߃Pxq\Ӫʼn_W̝ݎ@ Fo0Te&ѷ diaԺv#}aЬf^2[+at3ZY[~< s+a fwh_>3DYQڞ!Ryf86>8 sK]&W}n㓹UHESB=~ 2}{AwZ {kR@ƾfrjL ",$y#|ki>w8+ao{72OHWVJ2^ (_e$ 2tWm+U.{(>ÒT3N KwNOI-agI4s 5֑|^4'Uj E6nE]/-75>Ur`Pʄd]Xm9i ;v{yr%umإf4X֟7F\ftpVVgtZ$:mL`#]oӚҕqƣ;''s;0MV89iX?~StH{#XXOIM8E '#<WJWk^/1{z} ;6;~{z5rSswԧOj7\L>NM]e@{u~~/pw bapQ"` 蒹q'l5PQƛ&z{ ;և'洞=:x\Idçསn2p]i/P-8y͎Q1́0(Hr7:”!3#acoh%O$N+2%o} JS^@ktY:tWFws&9䇝nCZ"}S#x@.ZE^F-iūN"(jteX՗k qH ]X#L2 {b ]F(/6s 70@mi1޿ pjt;-u'lXMлRwg(xOyc.t]n ݜ]- DbʼגC''\BQv)b}e.d$C%4L(u"R\.F|*9ag}bKt9q^>6͇g \=ݘru!@2% C6u*?a]N 5+xNղ…AJNU.@Kנ[{(PDؼ\mx:Uԅ Z&2iwđ dEpB nvR*.vQ&k?BW~zن7SOB"ypKF-O V%Kx|….B:wCsUzPjI=h ;eM9۩8sӪKʏeg8MwpWE}&ioRevT;nNV]Jx?$ 6X<\560XjssE0#CV`seOcS|pLǹDK(DQk_Oa9STn<]Sr `Qa [ t17"Xf9]kal[[78@LvtZ~vn;L1q[y#$deI5=4^6&`|4ypyz'UѺƋ+?;˼{yzI/*#0wYM 16нb]v/y ʠo=,?NT{Vw i|ƽt %za[xlZ@ckENݫ: S \71w\ZNk9\REks⋐h |/4LtlY&t} e)Uhԙ:gjӸ,r/6)DBB"I87hXB$KC}z Q#4K,eO-_'*Y#5k[:WJ;l(xLkSxBaѸ9]g[6zP_:by{X.<;THE21lY:l2и.޴j5Ok B0tl^~ʠ-M%x”c1E=O$UohK`2ݐ-DKm"*O}dB\V%␇/9Z2< <]EOkv!}"{.>R 9[Ha l<≩-vUyF uyw^>*R82~HHG;O8jxJҚ,Z:kt|QN"VZck #Qؖ`U,dk>7D/+%-햪;GN+>4= Xί&u`] -qdˬ/d|r,R5k"5ۂ.Ԙ˨ Rl, W8AŘJx7¾,|npC( DꥤyO5[q4 q%KR@ e9&Ձ5ױהn9dg\d1R[%z/ XCqw8ވx7J#T-+,)T;yXnՕHCLPh6ojgھ2>5Tcb _[*3^c9J[x=&ۯ)_n^ߝYwlס&U0Gcl}Z^9t=/A}]mMӝۂ.'z<|Srt tam} ;Xyë'}3dZZcf^R+釞FYZN͜6rE?}xAyFPrĀfa~/?RN;7IENDB`assets/img/hcaptcha-placeholder.png000064400000014165147600120010013361 0ustar00PNG  IHDRVtPLTEUUU_їgjM˝KroƿTbWˎݑ~~~ᵵxxx꼼\\\pЯXI˙bbbTUTU˝fffpѐމsssKYYYҫfa}}}pppU cƿjjj\___ߝſ ~~Sʛlc}||oaiMjД`]ΐmqY~aљ*dIDATx=n@,IҀXOer<3k nC{Հt!^^noSZu,!ދ~煖sjvud{4fIsCbAPZ[@ q)&d9D&=;@ԁsy͚B)Fez9LCc:؋_ϹҜF4jŋoReȓȔdgMg+^|=I@Gעx-a<{L aŷqz03͊_a=[jR^tgwZ/kgn ea[8XFB6 -ŋo0)k>χQG~<~e9RGݐ04,0m??2Fޔ6YDuX(gU?l>X !E 5?Z#Y_ 8/!Q|XQ"~~D7G/(@]񪚿?ld?Aw0 .k~xbK.bz>m&*gjw0KߟAnhk=p%M W=u}u}^,63\{>/'/L&Da$K&(%B/^bR 9U"(LV(ϙɘo\~7J.)KA b5xS&J5W?ZVnK˘,&MM@ϯ[XPW2}+ * W4%Ie9BʅX6&Է2~ϐ Fi3!KReoeA1Z JڄN21rlC3kb&VWBN/}~a~Զ@j͎5xX8q| =[+> X0?j[tzu^-2uoTSLTm󕴐onmсXw\iRVsҔ[ V$ߪJ:7GmRiDX22`L`ӏn| w}, NYg Iug?A49Euq[;_\Me\OmJ牝Uqmhl&y$Ѝ[+[%s15Ys"SaDXN_>L?)7O<6r!zFbuR_L]!jӺyaxyoM]f B+ryjyj橕rj>u~,VʡQ+є`[Z弲?3<u+9ǙVI?jCY<x+UU\D|C"6yߋߪU #<7rje귪rʸ "7*;?Sƫ~9>;>(>`h{{Axc&Q {WV{E؞n3GCK"֊k*J#q5FEs/g4jt.lD]Eb@t[c&7z΍i5q \LuMBrhRbA!(QO{+x7jKi6fP:m>S[98arv<,@n\Jym #ܟRNCIt>ha>MHrZekN.NJ.Gʯ*[y^֋wa@|Ȼ0]K?}%wف.ћ\ϏO!]rћ|%j8ՇW;I8GW<I8GW<I'9=j/ioKj/ioKڛ#io+ٮf>fHڛ#ioGV'i6v WS5I_QŭaPij_^mBۘ`ApT_^Xw_`;x|m#Gbׂ,w?Z-ED?woM~l٢mm$.ُ[/%՝Ɗm̀b/z$/}ZޟƊ?861 c&" u Kګ;V=\X˾ go˩IZ .)GK籢V |yJh^D4C_^m7td"G FBT\Qzm؞ /ҟNJz$c%He-S"I{uVX#ߠ3!QFnk饾sŌS+?Zcbm7-+ ֮@oܟKګa\yn!N.X8Ӽ WԟƊ8NDry36 e~Y8y՟8<fηҮ7R4I{Q4I{} &pV8!IENDB`assets/img/pdf-promo-img.png000064400000023621147600120010012000 0ustar00PNG  IHDRݸZ{ pHYs  sRGBgAMA a'&IDATx xוϽUխl$HN0#8 g3Aq?pVI =]-Bxe#º1I oTvGT8er2&lu%vѮ N5t[NIӄʀd Bvj女7ʤ",4壔}: S"BvqZӀK'@ugs^"D:jHlc(uR%npHy16 P~\@< ÐjL7X#\UYy)CX ǁAd7szbV>z2rѱ\'5^a,oppƠuȆ˖hk薆0#OqUa}.A >~>>;_[k@ϊ? D"¸e砄9 aa4@nS,OXpTQ],\EaE p'^L|i:(P B "հ\UxG|E2Zʾ+>]ba|lUاD9tA%".))RW#WgD:de/'*E\&-K [{åއ+&$ĭ\_B4HU#I;m ߀מ P~qo[A~pCJб˞``]T댮i(Lo}tH\srq`(ە-CD"#rѫ+ u5mU^& |; 6O#A(0A1*O 74\q8Y~[ǎ2ԧ]{C-b8{]SD໅v ] jDF^4c bAjJj r ug=Kz/\y<*1! tW54kp6G(L>7gNJʴyO{NE{ީǣs0C* (D#40Q"xC+ D^¾/l4F̦c>帕"UO WX!FS=R6tθ̂Eœ_Vo(WLYbN- JjUB7 0,hԖ]ݯB})h,q0l헒`03H y-h=S .ik'N_LpZI%FWJb+`ܟ  JdžFS IY9.;% <5a.0z (`2P\<9y~ 9%ɅAE倌(w'ޏUHr!ymZ+ *jħ%n!9 Nfi#-1l)! *b$?i8伊PJGFoh~c1#قcAi Dz a.KĖKZ0B%WI+B,fBc  #rU)9|pg+$5}>X) -v^0[U4q΀à%S(Ԛ 4u%_WY+F ye֫yA^#`*4( :D,m#Gih[}zRh>\DM]54ˮ($BLIZ*eU D?ES?6HPj%Rv8C'.q"\X1+3߬eU*fvK) *Ǧ7*^m6s|oWTWjE # ^RKbyYS 'wT*K WTe"tDm}_z-XJktVN80]Q[p&7,jH0)TѮ+m87_gg Sj<5Jj %Htnɋ7¸šaTiIgQLJ³ƫ/MLKƫ+Zt;Uw-{xש#0бj>._pcx #a G6ˋXYk16L6 uRB* cm+ZW;*\ V|)ufv5j1֯g3oF@B؇5ٛUL?]b}(]j@3eo"1q0cծ{fUkY5"ю7A@[}LǢ7LXo/5z!R4gQFp(xvE|ᏁI s"qaQ5q],h[^+Bt(Nnr}~Aj#ObzE}oC|xu)Da+V2(s&f"zAV(Rn=!/@^=V/"IM qMA]xr@dH)~?޲nzN;<@-࣯qs^ /S>~Cpf絣OSӊkQ<1!|g㈀L6ѤgT4?7 O\zzbdZ@+˻'>O_P 'Ì,qqƊk@+M3X̊{/pZNGNIɐ 2o*O_,8\5%5aF(6 fM(54ejݘuH+t5 0 D:MpΆ%O7ÐQ|2]:"U wD5ڣY *%V-4$.(@$|BN"7tR5A gWYoH3WoÛ9MV27u_ǂP/H!F" LKM tS B\W_o}Ⅾs)WEka}  BCR~Qo~3s O ZH+d1ql(XnpRv,NZAD;p2܍+&>5pÑ?VI"u>s#B>H9=ɽ"jJZ!^7D̢M,{q / ?m˓տ3ۧM"RW3InKk$rspWl b&nFx7Zs&ݞW&ThbW~M{l~p(1N[A$/wLVaޞ@#_^!+!rԎCI˳­+EOKȁĖᯯε,iRpk$ "1.}=ϟon:uj( h(>3B Xi$H_UVݻa֭;pX:Zjk !I[{aMFΗ<|MXfiq[vm1qÖkxR,p Iޖ/+oT\2[zz4- [ZcXbVX~΋P#N%G!`p'<Iql 3xUUWYR\pzngEm9ázd^ʉ@N_=A^xs_*J?ՌU:ߗB r% `hO_G KݕQs/mнĠ -v 6m7nqߞ={ҾlIs1 <'ئ^gp$5>58'F.(8\ W6{43{8VE.c1"(vÄT&,.q&>u 2(0 $ߺ]#`qD+rV]X9޻V>5.D8Elٲ}۶m3]Ow٩%׏Fq  |3S4 =W5/3($i³xa+ |OŌ-uW\9"cE\ْDkګ"tU!2HN'0 [U 4"g)qIi+Ǝ"L%暣n >t0bw `nڞ!4MJw8q[$+"S@&(6I,r5;*el&/kkPYNڀIWFƜPG_205c218{21ǰ ~'9Nti KcbYA$5O"n) q4c݋9ctK{#cCtK".#tDx7`>AqwOCݟ"YxS!aȋѰm*DLq! 9Bl;w'~YkM1 LOPN,m.TIcQ1 [s“9#.'RxpEEca08F>^@5g͈ÑR7B%ePR#"+A&wx/`J:=Ǧ[[lD 'i77+c%Y`7 [AĶ!@WB%L`җ*% ˆ%۝kͰ!lS'R`Bc:K WdEƚ (0yfR# 7X2+K(\ma?2] ^3k4#!#[d%B/Kʂ <:a0%]je럎=99JQw߄l,jj9!@ a}$"S&iZr Xg4`COx({z5ͅaDY0 Za7k\[ ;YDjKj&BΤ/Ɋ{OƀV+edo:)S.lcdђă lK h^bUFgՔp~>J"犷9(>(E&灩b({,e󏃊L! &G*#œ'x!(WJT_2[d[ TfXfh\;OYd?u0Ր$_])GCaM֘0:miG]zz%)Z!c!Z_rp_u %:W1PBM|_%g+F}@9 '{W`ߎwx]s=!/`q}5 .XriNRv-y&o/X-ZC'Y:~Xv. ZAg2cVk9'Apv7~oBPd1~F 1ҀjN\~RAx RƸ1p(#9DL6ccD'ƊF;TnX?U8o0#)v[w֮٬Y_Ayey%3G]&}dhsڜvUsaR„g:n+ <;?KZ`ë| _ ZFTkYlD8RD\8a6.,8@N"4`qRm\_|W1$m93`F_Zǘ%x{m ,<(!lSR!^G[D`'ǂ%UM+ꆜdx#죄o"Dhcn,yxHk9^IA!63,e qqwcerjAѢ@_O-㸴|@9|O=x X1bn#jULv){kٳ^?HI:zL̻ED]}i,Y/8 g4a:%-YB'ɰKO$BLID" sK3SzRPD~F)%!xj ^kPF`DRTJԚDk8H\M5P J$y$~d@J+(䑄&R-{| CN]46e_$;NS |Z9^ ʈR4tgӊ0b}/y}L/ܺ{#m.W睳%A Nj?z Z g5St/ h=MͶI.w6 0-M ּ$ KrWH!w/wUPl@!v$kIai5~['"PII:E_{0^8jbc\rMhq&VHIEF@"Q/߆!5SbMG0HDž>Hr".ˆ+.z%Tйi1HI"ęb8$D_{vcs*ݼo?o KǀV 0\s i u#44yκ(;[L,} 5A@P)mTySV!09)+su0  M@Wr"OΤ=U\x!a!VK-(q_S RHAXIƵ '#(b^o+bІ1 ERjn&6ΘwLOLP8] kz E{u.g*F4T!%BpYZ2yϧMV-ꁓn\M-DC)i鰍bG&#br㖡06Wcn- vSz+0JW {8gݡ;2NuHwr;~ V"zoX󋭝ٹϞ<E-X=e{>P<@tPlYY.~b$Sl& _z g\ BHi]hS:eovRz @ AO?[p2Tp l;N]Ixpm/,Fu DxZBε$*?/v("\Xd D#avF xq\sN۷$|굽SP3 ž^P[KҠ@RIENDB`assets/img/conversational-form.png000064400000014042147600120010013310 0ustar00PNG  IHDR];:sRGB, pHYs!8!8E1`IDATx tq紇s9{ iV>تm b}vV<BIA7Ty?BE^$! wf~;I#s!3ss 7dn23ө#++s׮<ե%KLM$l*0 7[Eg]2Q&~pvS.]unfeu RTRl5? ]/n.L)@[aݮY I Rvnr D=_#\;ػ{^!y%nAzufwsw}l|L|[;-_&KC1Vi8@Rу}呫걃ԭ)sW= -o\mck>XGc{%qLpݴ;bnowbl͸߹В//_}<^=%2h@*u[W9w.OtoZ2mp;FtU폽^?*A\hɗ~ѿ;|(}29@߸ +ثYv;Z%]隘fe]"C{_-kFWjا4ǟEW]咱z.WovCm؄[ޗk/?5-72K߱LGtGD|*_+--_RR2p~pA0꾌΋My$@kn/&DQ h溍-: 2YyѭgCEw3j>Dѩ=Kt >"# >"# >"# >"#r6Ip(Kv36ʭ0]Cdkq4M~2-"]$tDHT'@iHO;'QgHI ^;~QSF]gGCtPѱl;\j).WS0 ݚܾR^]$nAT-3Ԟ꽩 u>E&1a9D7yD -*L<.l:-j闫]h2T1CtGt2 ZpxMVF]-|5!57]-|]udEesn.u>XEtuĈ>hAswGǫd9[ i"H[o'Ewt$wJEo>~l]~V yh.ڑ!~( EBTCe]F]$)JTsws¦[D73u"DJZ\E+^XGjbÕOuKAt!Hݮ/F/ uk֕;Ba!c鮨ƻL EB?]ԭ) >6պ\t3m]w.GWMi%{ HAt!H(ޜ3S\CtPvy At!HӽvlTV]ƬB:=<ώ" E7g4I"N&NiOifh fT^[TD _#7$ܾ9ȹl H[9#!H[DAt!H[DAt!H[N[9YLD$ u3As%w.ZH]w.ҖFuP;SRt]w.sE"E"E4o:#'y,Y* ź ]]c!y|V#<0z)? yh..t,(ĵhNJis}@'LeU"-?.ƅk25R^~!7M=-Etmz=6(5_Q4!o7mᔣ^_[7lM59/',ooͳen4Pwսa\z2?#2 ̐~ 34N ]WyeMwʉw] 4D׆?.2 ѵ!LCtmnEțua+7b.2⮵cu˯|GEGç}L-]dk46d,M+ktKf؞xW?/ӥM6({n7O9ql:lskԻL+GkOLCtmF535c<#gIic#tN=}FIgnaa}עd/숮 9`i{T~N)P N"]'oy V=wIѩxÏ"]'>\tGD興_ojͼ0:.kGt{=]n M+ V]LAtmzl5+ )l^\:MgnmNtxŜ0Pyl& k|}g!]-_ʘyiunA=$y#!F?~; uzo ѵ:#;{W5 8MK+ڱQ2]v_p{6ݚ:3!"#"Vˍm8bTO ?}nѝ͐Ggj1_Oxr]Ʈ˔)usI#;5l7?*8&?F"I{w+GE$oc]ѵ:<4(efP[wɎWH:sdH,hWm A5yqyTH#GQwlN#6~^XSdXgozmM~hF.ouohֽFtQw5;MJm(6>g3omHz.]?O[aXKT\[zCM<:Dי d/(EXj;b&;JS{pn8~*$OiVNWۅ [橶 kڱN#R9G^!6]M'3=^W}Z,?c:u2@t)*G_|\*Y{?2#l]TGK|>tFtm3j AM)#ܖUНɐKIKtOEeȺKyl.Znu9yk}ds@^tt`5Ȏ"pFtm+_i n[/kTjP[z_eL]pfj+×[ϵF,h"Ґ,U+o|Xv>^XS'Kw!JڴGtKA莎՟K::]\Ot\ht?l ;e/:.ks!U#\/Ktڸn2S D7v]dk&p]=м.:6kltժJ) kLt ^KtLCtmF|ͺ]g"]UPM3 k4,COt8 _ )zG99Mt8nes4vADWy0.2 ѵq]5f塙oK 5RGj]dk4kuuMzK޻MMLdv!Q݇4.2 ѵqQn֑ K +P6.2 ѵI6 D]E!6DAti ]dkCtD]E!6DAti ]dkCtD]E!6DAti ]dkCtD]E!6DAti ]dkCtD]E!6DAti ]dkCtD]GeEf!6#WIF]z)ʜma) Dfj?UA(3FmXd:]o3U?n /~S2АRxeC/Ia9q\dBEYYF~7A~>y|v\d >"# >"# >"# >"# >"# >"# >"# >"# >"# >"# >"# >"# >"vӧa SN@;n=~x? ]*RUe(Ԯ=q}ܮ-++ hf{uR=^u{̙PZ) ŝG{G׮:=y$ p 57cN-T*|Awx-ƌwx-ƌwx-ƌwx-ƌwx-ƌwx-ƌwx-ƌwx-ƌwx-ƌwx- s!࡚;3 ڝ;RtgcAL1ʆ٘QRRܰw xرcYAw078v~#A507siSx)-5]zs}=8zhVIIҦ #)mZ0w=mk?  CIENDB`assets/img/shape.png000064400000002236147600120010010422 0ustar00PNG  IHDR?4= pHYs  sRGBgAMA a3IDATx_RVϹIӲ+t]ҙ dV@XAз>!<YAD;G61`Ȓ:oF dIw9DWdveEy Ё1i<'+uEcHKTM@_vin=b7"DztFRk+cƄ\3d "јPxG1y~(P^Q' OSo,~5i.OSTh{oȳ3*>~:br|[&O+D籴 L^V:Za5mqx-}=owt"^ď6{Dá>îݫax:e*vӘō]71-*\{U @Tt~vaK}9<-|{]2V{߮/Z>}`YƶE#`dVtRz7U&\ޟ<@.s#ȡVh ֩$UuёUu*6"kLC")T¢(+p](`'qmBct%̓.|D/~.\&x_{q Iv?4.G\Rrk 'd8$ٻP?_pۯMƿ~-tv*p Ρ[jT|}:4q}B$\WZ^yred[z3)KmZ,σ')G-l! +|EґmfS0qBCI-?XZ@t>YX .1 ͦ2mo+ ?\ln_jٿR9No>lsgK3ϲ?/ݶYX,/Br5ה]+/b71t+d8!.}\ңe3e'~^k~iхfI-dq>__,,ѻꫯo}[o~& :}g9e)?u比r_=I>B}Ok߷X7}Fҹ馛I1-LҌ `]~ɿ[r` T97i9}co,-? ! k7S )YNIr|~~憲ߝ<_ʟt\%)?s_Lr-h璘+{bٻqO'_.{?RO^GBYޅ/}MX3! @WyxK6w۳w;~L3%lHBgwK:i.pDr3e~zv퐭Xx:b4 \vuR핃0d:ך o4Wѩ({v+\:E.絀$S”%y<}WuAjlC?,/_x饲$J}:!5S} Q$d8C58W?g-+=p I X#},7:M§)5fKo6` }fB%]y+)O{gC)v`Y$˰T]%d?aX^xᅲ7v^GJ9-7X'! /wyg9s$l#?{7ӧOO_/rz뭇QM6O>T^jkJu20/||S?YG?ZwHC|7}ceQE?'AL?`y[:NQn}ˁV`4&?iQ,qwmq}]eO]ygŋٳg'S1[n°[z?}5?[ʵ*Nj$P$`I4ZFB:Ha[>Y#g>}KtYPvߩ>0mWU@MPF?8XDAD6wHPjq,dh -c/dW784VPj]O*G$H&Cof4MͨD,K jA`s7Mk ܝGW3o]뮻n@lu[&]/l"Y:dq>+˚2oiW?#5lV]kmc$˴ռet5YyyϢI_XvﲟL\=dhV1ܘgn 5Pvz G>w}Y|P*u?#u#;s>} {m6yޫUF1Z0|̙yd^c]~'zhfS진cu=yeej)c.ӬwYGydTxp]w]d'լ[w[,Ki^{}5ZUB`Pj$ RS<?,A}@]k6t !p2oZ@x|H?2g/v6M UkZ/aW,kL-U)'3nm,i[uO#h~La(hoiMWλ;[վnR.ׂޤ%k>pʴ$Hżkr?x-gJlϱוn6Y\kؒϙz62&EO?l;ߪ5:۟VCUZdU(}Q-3X@'yf9WqjVzmQn'Iȃ(l}6pz嗷b:Niaŋs<3Ws|KvY' f:(^n^yw_6>Y=Ӭ預mg}vuٷc:e[lz .z}_Y[nyñ=fsni<r(xq:d3<Ǽ>^,)׏y]zg94e_o}:_ccQ5<N9f-kw>ȼ]9C۴Nks{y8Fc?6[-] n̈́11ꏥOE{YZ.iwl6tUӍ~͉1}kCL{J}Zk[̓㡻mfui-n1_:;cSk-{ލdYre{ژu蟷˼_xMD̻/ƼP֯[.j?Id,u1ϞֱsWmGA8Mjc ?l;! 0UjQMRVdl5>[JwlnQmhQ |MmEmѭ: CγHжyqVu=vyRkB4Gf_̫E+c xO2 `a#l|%N[v/ìu|"dZvCwԕ/ki'I1˿UZmnu>MijmLc Qλ~MUfCM̵fy~6ͬ/e qIv<$?\%:ҼeM}[Ê,6v7Ki:G[&ԩ IL/nAlV~ӑYO7_J}ԹM lױOwO O#-USj|ͬXEj:,baSUZ:[v4 xMP \ŋg??SKd]אdhYTmhYΝ;_Rhe_~qv;;3p, u?=xXfb8eYY7 3fg}3:F~7&{6c-+O]i Mz'yO=^u_G>hλZU9J[v{jhѿ{!š+=fui˚,oYjԄuľΪK >UVϲ3i` Yj~xKqlꤷͯCQBp”67(>ݪNm9+O}7.}b출9[j\ruC8-kjklCτD.7ϻ  Nnӂ4_׏ܴA*B`MR6:YI} brV C5HM5:̆MY{6O!9_=PgWR ?RW);o(WvjnC:/pwUZs_,fze^GBM̕/zTެ_cFK;m* kf{Ѻ/|n YOЪž_ۆ$fBE~O܈Mu4\3r@%S\(5j9O ]1 25:QTÈn*km`-טm@s UuL5~gxTkr3Pd:Zey7D0}mTt+wj-~_;9R0'9}9&?5Ȯ]gvi~濵sWBeyw:6N.P%_)g}/1Gمk[nn ~SU7ǪPԴa?7eU[8fUi}#zҞ.Ra9zww2ه_avRKuvk?E;&2_ɮC6kU,gf\rLM#dFSZ=7<5c{Z m#~&CZ-Re~1F+_k `oΧ_`ol縫A/[GG'TvBn>|YƬ|/e <; 5E g*87t>0C26oi(@6DwW|o25Xrllj\ vQf;{dfӹ6 WTJE |Gndy3cZ[]unL{|Ԏzʻ M:Ʈü׬N~7 0Z18@<8d1;hjﻌ{>rNtִ11CE!ejrC%jƨ~1Z բ$dMR1X{ n͎]1\ndYj59V 5˒m޽["7'O :冫y' O쳎,* 7ɼmeYWȒЫ;zλ1Om=r|fCO߷AIGBy5rmShk#U9ߞ{~=vB\i.YC/-k.kikyd7 =L Xɒ vȚ5ּe_2Okܴ_G=ߗqU^fx4]B`nVeZ/-i22\#$e2Ϻ_zokfG9ں={v=盐uk7Tvƚ/uorӟ)DL]/$U_ JӼ'}tL9Rh1g>3󺵬-?4)['J]vM 4T~z_` =}[Ii[Cx˞uq}W7^Mjr-ޗu֮y=dYs>.sm97T~ 5qV(U|\s{ &%&6>Y ?J?7SCOś_rnЍ25jr'eCצgӂ1Nnsܭj{fY fЕƲ(=2I;ﲾC}ҽOG۪v_C}s4ՠelPtz&//f%gPyPSyC}c~(v,Bj76UȓY_ܹkw}~Xr Z5/meɍ\]旧ӞXty_sD>57)$cN]=fU߅.W{GWs9cj!x5\OIo:$|¸Mw~[!Ș.kyʲ&͐zir H9gklE@ MB˼ oq-YP@cix79mԧlϗ~pU{ ^87X{ή뮻.7\7y駟.7kN}>eΟ?oh'\ w_z'?YjSO=5?1o[`g)/U׾`.'>QΞ=[jd]jE_oԐ,TvۤKc=V&dM}/\zhR%U/{キz뭓Uԧ&?Ušy5ck3gL>+e%4xIo^MS_+SQwٮg]?.'kr|g{w{t1o_Nۏ ַu~7qSPMQ̤o2E `2C2*Q^WDBD$?=,)"y_-˚RuWmZ4W;mٷE>_O}ww:\t5<9=I ;󪠫?/USu-Lye}c,h S~pR0>w֌!SGŋEy5֠RN(wB7e|ק`hrPl6 X_k<>پY}hD >祆-y}y'ڗ3j(~h2=9N_usZ'B O>$H!x^)` _"D U )'IHSk,t u y_j,sjD=0@ްluޑo֣6pεHOֿ I Zd>5uDQ~Ӵs{Kޓ-p\,TH YMGev4j 2RODU꧅")w E%WE-_dK]x`M n 62fZm}2-ȫ807}i2-l`-\Aak4~v9ik$S]7Ks=7jL3Tz&DH֜M~!裏NjL Z.m(L,Om_1BJRO^ٷaaSY~i~uj; *q%hk-ymwZeBx )ЧP]MߺCm!)N:M]Y r,m{9l?! 014˪&B uH2TS$Dj>CnIM#!B{|n n]uDj--uZӨ0PM!86 RR[6J9)4# XRÃi#̒ely )ȏdNeZ4JPpC;g48V)~?jS&3JBlRÃ6K[o=Zc%MjP*֚8֘YuԥͳViֲ%v| &dUmޑfC :I:# SEjĴ" c'KŽjH$L$$͒QRH}ԑ"5Vk:Ѯݳm>e8)5FҔ(g>S6A=c6}ĺ*ǮjtkԎN|r/O?}$tk)$5=Z*I>Ν+d{֎}#`cS:rt[f~uO86ZKo,pҥ馛nRߛ,cj~ӓצj8ٞluڦe]vQ:G]{W&)mmZVN! @O)f)iTGESOMFՉ,s}~-[CǷTȄ, Y4 dh@Ѐ! @B, Y4 dh@Ѐ! @B, Y4 dh@Ѐ! @B, Y4 dh@Ѐ! @BT*ϟ/Q! @{ G& @B, Y4 dh@Ѐ! @B, Y4 dh@Ѐ! @B, Y4 dh@Ѐ! @B, Y4 dh@Ѐ! @B, Y4 dh@Ѐ! @B, Y4 dh@Ѐ! @B, Y4 dh@Ѐ! @B, Y4 dh@Ѐ! @B, Y4 dh@Ѐ! @B, Y4qVIENDB`assets/img/loading.gif000064400000220762147600120010010726 0ustar00GIF89a  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///0001112223334445556667778889IW:[x:g:n:s:y:{:}:}:}:}:}:}:}:}:~:~<AEIJJKLORUY[[\\\\^bfklmmmmnpv{}}~~~~р҂҄ӆԇԈՉՋ֍֎֏׏׏׏׏אדؗڛ۞ܠݠݠݡݢޤަߩ! NETSCAPE2.0! , H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXj)R굵,BM^]Eٷ[1YK7 VpΩ[wNޭ߬tkt4jZ3rKfĭs(s7jb[ѴZ@٭eQYM>嫥 +yKSc U8$/m%jS>E<-IƪD u(`+zьba@ bDxKMzgm<:$qЄ&:ъ@Xb+<J,1 8HefN8Ú( EXn$Ә1 P(#~0^ cs6jL?87+hE~{c;D!cPf2EVH9w,k J.,:xbI!'|N'w` K3'NYqDXZ=FE|C# / 9YG-e<$( EI p uA[ѫp'"[BDC'\391d`=yaLp{ri;v0x! rD3CV1jm6;ԇ$NjxCv sBy#P:E'N8$7.qpg"isv'(rJ8u̡ XDBfNaR!`LÞ)*u΅ | E˼Y'|9t&t'^CCW7 FH8*\W]O5DQ F0к@zaw_xcƜX/b`q If⍀W~CVX 5ZaN8'"!1ݞͿ}90"=1q[}8B8!}2!alc8;VVHP ~ѷGsOVN (}F}p&4r~{(g"P} t" @ T8,-U(}B߲ |!G(b^z T d*jkW A THtAB Poj 3 ȁq Tx]  ]0{]" X 1h3B X  AB (H * p~ ׅz >{ 1SAra!$PV߸ mt`x((Ѓ x{@ As7 r|8Pyx&r 8qr3"V v-` 0n"XOHQM -8PA(D^ 1BRxAB\GIAfWԷz'{pxyu|ٗ~9Yy٘yP! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///0001112223334445556667<@9FQ>_{AqB{AAABCEJLOQQQQRRTY^abbbccccdflqrsssssttuvx|с҃ӄӄӅԅԅԅԆԈՉՌ֏גٕٖؓږږژۛܜܟݡޤߥߦߧ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXj.p궊MxpƪhY{kvu5l\m隅{\^TElUY6M W<<2aBѲWX3 M;t)c̳j,`/TGscyX&3NE5.'{ũF"vloS/vݴE0뷋zO0G"m q&y͒Eق@,Xr (6ąMahL3DA@Ӏvb/Ǭ!Ds(27LI$>ІW{ؐjMzEbCV.dH>᠐dxc+XhD&[L6&B|G3ۍ䁹B#:P3]chAf!&hL8gATfN4]sfBT MY2zP!dA+Aքw"10;\J2]"cA&d'jPazvP,LY&A5iHmz0&b|!ʋ>g\ΨQ468𷊽[> IG°-OŠ*bzbp KW CK$}S4p3Ǭ̲D0AeѕB#^ W,fғ55dz|I3En] ҤSDt"4qtyRnO]!0 EBJ$Q^xx⠫ ݹ YJaq"'N̄*t* #G(Q +JM&:Ec{ sC\[1ԉ]$B+Z O$Q 2(Up&_0Xc Qп+ "}q-VW0(pC옐pFܚ+aQpNC("$+6B$G4Hc7:vȁ XD'JъV f"aH(C HGOU0s*,Җ ~xJ 2@vitHi'Ɣbh!P*sX$!Sծ(YV U@E^MkEP{JW*ok\2׺ XzU>~*Jثj)\MlWc8ETBU < M1KRJ6&JJWZ^LdI>Ϸ C Ѻb r!vz:ЍtKZr1u$+$F4"8Qzq3 c#" bBͯy-A2" {`A~܈M'胀' 3BF+&S(oep!;X "1Fa*qh U 8Ǐ(~c4 T^L&XT2$|3ds0pS!j$c2"GQ+w@eS7qJCЃIelBT61DvO`gL38M+AA1U U9(ֈ[MaDֳf'c׽I,JNB"ðTX ^6o$0 Wb6D'Zh@Bmw>!O`NF@^H4:[+ }5Anc{v(RI0Fa|^aE!*ߤD2|"w|BŸN-fWl!8 ~v|ع@㉨fsNV9yC<w[dwexʟELavq!"Ep y~U B ?óyRK3R GAZa`_ PrG`)`J |ކ:7m@Gr\ |X6# Ёk sB Q,hzq,g{} mْt w;xz qrWhz NXĶ%pJe'qNu egq@%}%셀wa Q7tzu dX NBR x%8C8#HP8 G s h( rx8B$yx1 ~0pPa Xu {1 X~÷χbyGXz@fsaGH" 7  H j~`h3q,a ז;؃+;(P vXaA9yZׁ GAzzj7xwxoYvyxz|ٗ~9YyiO! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<426GQnGB@ /-"D $yL)PVme*bRie/AB|I 0VCs&A>QJ)f P!v@ć$}n+=E-t͛dC{Hc̛5B%JꍆHBL_ Ui2 fY 9b8BqBxeT[VPews_bnA`nA$+Ш.gk'$t$\P`j-@>FyՑ7GȬB{AB1>y'S=3 -L)05] Ue%PI#TO! N6a\(Š?`|0<;YH"'3!הrd =tpXctP6$yPXP1@(>NJ %xxĩnEAF87\}(cp &x"Ƣ B!kC{4Q0ȶ\Ox6_8T1=n@ˠBA6(B\3g\f{AР Cqv{rlv*eT"N1KPQfPbAJl;D fQ%yUGZ3 ;X=K<1J)$ ]tݵPKKQ4pLDa0?YS @ /Rt5~Z|0r,*l8KOץ 5eKd uUXc1n C O`m7u0`J0St8zw7O#7"/߄q7Ս7E5U#RDf7)H"J)yn;D ꧧҋ .h~ 7!Qn{):];#B:0  ߞNL:+:$Ĺ(ӹG9?BtQ])C.kLI;q=s^%zHRqEvyI-x:U,#|J!%A&& % ih휐X3)HxPw;ֈgD._ B> QtxN#C(MF@(E \bXC*2 VxQhS ȅOLP1֓\ T A}=)Zh}A\PV;-аcOEt|B' aw_ "D1E*P3R{ZiAk 54n 8E'b>HF3D5JɵV"pJ:vH(r'Pg\ޚw|Kb@."j;NҊ  1Uz$'u"tr r%eAAC UWI&rP: !`\ 9\f8!lI0(@ &4 ͢P2+ JA@hҋ>g0QxQP  +NV'Є]}aHdִ~(8ڔi$׽/LlO4"3n}qD+"lV'avz' "H7"BApv ".CvB q;"xqBt<ݗ2H|y;\ޓBA 4t[6qF!qmI9"P\><=.^3'Р' V %NXODpoRe8KBo~E#OnK8sn yB! \ y.dj|ʡ@{DZaz vD !O X;s^X Am L?8H vAt>x~Yp?d"@Į-܇<%YB~xBLz[6#|ӀQА'FH% *w~lc] ȿo+d 1y'o nǗ sгNhEG  tyhbs xz>/ 7'|  ~}K 8G :V tG. w qpXV+ hc aЄN  (d MWB p cH ww  q Mx p@U (p!Є(pe uȇ2҉hI !$} gv z 1 '#p $\h tt! xX(1 l a yPn y|} vAWoA ׂN2 w18Hxw@a r/px'f!B+ FՕ:ȃ*ٔ :R  xCy\iǁA| |f G~ xWxvyxz|ٗ~9Yy! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///0001112223334445556669EPM%>ɫg%f fi %MuHBqhB?zy ̘)Tg*h+;z"Aq'By &gkh1VrA-A7+ya3/F"3  95N.tr)lLћ82\ݵO>.(\Q7 )K W[ Y<cXw-W)WaŐ:^ʼ2YMJ/aKO8jڃ66J|DXKó( ߌwB˽!ڡ!j[Y8bD8KUlݍmy Z"s܄7)7^ A,0=;tč5IbtC`# *cN9 K =+q(%<|9*is |37YGs} j ,Q" %GeX`r! M(F-<(B|1\].jk{xiX3Ere.-Ę.z` H28E(*!Gpc%QP{ 4 Q2\ C IHB&A l$Pǒk"r$' Qn8B!7N"K 3,1RYTJN*R J򖦤R *򗯼BJr \sJ!N%84h $dPBizPB690pӛ '9׍$f5ru6 ()f<̧,Ӟ,D AO\bzK%@IUd5e*ʅ X#!8Vr~Q&-:#a,AوN:XcHN$\ u(BӞ@ PJԢipQы%H BCi!(T )paCPTC 7t]!l xD%vړe|ȫbKACe0ŒH( \Ózv xK3D1^6`?gW<*@!LK[]]- !⮴mo{ҋܲ6 ȢS1 3) !emOC.m-ԟ!!vicVwbQA #նa?Ei XC@( C=[J+{sL,!~b+>k5bw.%!f($9 :DqWC渪H.P*!I8"A0xY H)Ġ(a'x Neupr$ax!s< J.MbA Dzlȳ1\~NJ"X)!DHԤ)ܝkҋN Q 6FkBb E㜇0 6X<͈V+;a3f +2 < LW_d:aQ7ʈwz읐N]X{ZHD=X3w5 V<82G| Sݯg{8@`y!Yn;>ݯO {K 9W^o51XꘄeC!}H'Z~/Bĺ!6tODI^b .' px!& xav~p{+& xdw7% xV0|D Tu0k~Q|GW# wyPX j7uPG$ w7!we@$]G:Pk7b wPEw Є,]wv ݀p ;ąQ(7 pgg hqG$հ6 qv6 ewq! LXeP^q1 ed &c8gyPdٷEWzgTQy7|awwb't0Gv4WpN7qnoXx蘎긎؎8Xx%! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///0001112223334445556667778EP9Sj:d:p:x:|:}:}:}:~:~:~:~:~:~:~=DGIJJJJJKKLMOTVYZ[[[\\\\]_bdgillmmmnruz|}}~~~т҆ԋ֍֎֎׏׏׏אגؖٚ۞ܟܟܟܟܠݠݡݤާ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXj姎ٰ^1S,Bin]LٷZKqp"[Yޭz+߬ev^k6* ZaWf(s/Б,qTbzZ!۽l<ӵMc4 RpsQ쑭(推6U('lbA9bjV,jo64J3X!Ƥ (8#ۇfpw2CJG0.rF88hb:Oqơɏ*@mJ626BK0'}_{ =n PởX0{C Y $U JcƜ%VK\/lC%k1 Y5e<8IrL:v"&Dg>L 3a4\! DHBP* mC#gtB̨F7N-*JҒ4 xxIልtDB ,8]hxp0@})#xgL!H>JWS Ԫ4(TOO@EV +CHpT ֶ! eE+W5XG*Wz)`UဒVRu U[A8,P/̤H$ERɺ3JM1{S+pb%ŨgQ>%#%BV$g=OT5(Bۚ+;:ЍtKPH AdAQ )P ac:eڗPzc+ R#a!ƄH;ADDfhk kXÀOq x 221@qw,<6+@ lLd%D< 1D&r}$ Q(G9Zc5)D dqCkf3+ݝ!r^8!ȍ8e' EF#eR'Bw5a.$r Q3bTGX?!5 2{PD! et$/TU0ZO|"}L#`Dn5B"PDۀ8 L^Ĕ?=N|+*`{4QƮ >8 f D@m[&p#Td"@NsGPtbqe6F/h2wspn͂ AI0Ns7 HDȌU{["ʗ8DRZ A`Bo QijbSfL:/~f R ?ÙRun6D ?7nO"1;,n|wlFz)X!w;}_$D3E X#2X#.Ghx`jY c}XM3_ygE^6T̀UE)6 č(gaM(6 Z7DJBAcs(/,7 4!'Q6؜}6 l9zD0>3Z$'0#D/9VODM6ۗ).VzDi.$͗`9P4+&Y4tnِ6k ) zK5TgBI[q (:*B}9 DL![ d-q2v*gQg1J2& =Z9%B Ui fi E{$Mu~Jf-6AB)L L0Tg"K<}&ylBqVcB)L;T %ƙ +$-V0B8;-|4j 9^1P1G(6L͔9\ݵ3 .T)IQ6Zҋ2NDn$Q b6G0Jڡ9NИ;# 0,z& 63۴CB3:({ 7|\4 C esq`?6:L acYN~ @jjB0!І:%!$!Y*96юzmGF_O(MJ AE LA1pP8ͩCAʧc@ *GlBHi!:)ERRZX)JBAծ>4WͪX7ZӒ<«h#2ֶ$HWur*XS:$j^jU1$1XJbN9Sm┧RdgJTu(K]jz%AдJJF7;Rͭnw4:so)ʆ)a9 Q'JB!bB s S Mu[gx;F@(`z[&a,AU(ூne(Kh pcaT0b t(,VA<^)Nl+ BeS|_b4>(V<+apSv$DēO;((EbH$'m@ e| 3N#j61Dah$B<řR%c@Ppb@=J.p +!A'L &Epˇb;=EQ=H!F19m#z)z'Hs \! f%ܑl" UvF!Q`ENl; %nhMl* tDv 1Pa":wOcl) E #(B z:ٱ@Aoj! [ 'o ԎI)QhR"C9o!+<CP&"ŀ}xp7q 7xlb7:((8x80{X$0a7q18 Ӑg؎xYodo xAL"{ٖ|) A VjX(:! *eD9<}>z{P|YQvgvk`b9dYfyhjlٖnpr9tY! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///00011122233348<5BM6Mb6[{6g6p6x6z6{6{6{6|6|6|6|6|6|7}:~>BDEFFFFGGGGHKQTVWWWWXXY[adghhiiijnrwyyyzzz{|~с҆ԉՊՊՊՊՋ֋֌֍֏גؗڙۛۛۛۛۜܜܜܝܟݡޣަߩ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXj'n-Wn ,eT];kٷZKWUmp[WWޭ\߬vk.ts5Z Z²Vfܖq(+ⶅ<.PbBZzڍ 9űMxX."(Qw'6wˊ"q$3шuK@tc,?sDb6G 4ˎĹEcK S@`(lC&Fטb&AeCˀ&-"Dc f'>yCw.DcF.6aY&xc@ K E1z8*>2vz3_F鋊󉙭ʐ`8*ACYvC5玢(fy8˛ ˜-Tg*e+P9(Bq&Bbn9̜,gɫ[d,f-BI(B+-F(" ٳ MZ-nTNxAq $+#[,,$bw-4dbTN4 13luΏrmEь')_m-d-Q撡E4Ӵp :ux+H+Rԋ'WaP8`Mb30H}-yWI,KĎ)XB7iӏ OT#uNtvG}-v#M˨."$Q 'V*7.07⊫:"˅J$3O8EC !msw5SgOoxhD|$O̢z%1rE[!H缜b*v$Cn#I9ьl!3"c+ s8cOnC9"q64D '`D ehbfbc,r -JonE1.RƼ"Eg *!Ebf 4ckrVp9CPȸ-}M9F%G 'Ll1 sOHc\Qa+8s4F3Hc 8ȷ#8d-wŽn36h!(8f4Rhd 2Jg V^ J8Afp5ހrVlS(X16? Ƞ&Qq2bMBІ:D'Jуl"чz i  PRa8эmh0Lg:mpAOO!@ P +:MԦf<Jժ~t{8ԮzU܈*I!HRկ)H\qֺ uZN[av ,HAo3}H!Pb'{ .ֱS$KZ6$Ŭ] v ]E[W6E_?rG֬HR[n$mUlpHz~Fm R\fbEE3Qǎ'ŊJYRjcN+|K^8pR\DW<` 8a@1!Z0D3P. \9[ vp$ #vȰj?/pE Vc E3rqOb<1xq$!P3M!XP`. ʻ2D,9aAiL@px*H͜Ub^f&cbsrs2<{ %v1>Q@ϹDl;q)PEmfK ڠ0 P9hEa#R=PW(0,duB  P;t0Š"F<93OG"sNam(v"2^ c)-ܐVqNn!xMs$0/B"0tJ =:0 Dg#4FP 3 בc@Dja'۵61Ƴ"P,H;"m9;5CpI6Pu[ҭD'Dæ(R=6H/^0!,4s/w+0!eMp! |ՙmXԡ^VCirE ;TiAbA.tH4Ǯ zaa+pm=a&^J"=a|mȂ`$Ё<11&2 wrR `wY7pkz ~b7v hЀg Q ~0'oRugb!#~'/TQ8&O v0't&Qpuc -؀s0rB{ܷ 8,*d]@  Fr k}_8Hp*.X ]`tRc .8;ȇF j 8w$`R'@XÐ87&`~'tomQh`Y"H7p(mUb ׀ v q8x#؀kpq x~x$؀# h0(Ǡ(Hi"P#ÐǏX9(`{M' l[x{]Hp~wP%0q$!נ9YQTWudrfa a@Pj+2행Q( Q8ADx!QXl"% \9dzvI7ؗ}#8~wyyǘ9Yyٙ9Yy! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;AEIKLMMMMNNOPVY\]^^___`dkmnooopppqruvz}ҀҀҀҀҁҁӁӂӄӅԇՊ֍׏אْْؑؑؑؑؒٔٗڛܞܠݢޢޢޣޣޣޣޣߤߥߥߦߨ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjM.Wp ,iR]KkٷZK7Ukp[7Wޭ\߬v+.tq5z [²Vfئa(+ܮm<].ObZZr} ;M<6ff,\/&h̹w\ܤ'eŲ]lfEBXOQlhGմySZ$plw64Y\W+Vj$AqITJqenMcMpԣ ,JUR1.`uZkd|Kͯ~+QkîEY%? m'FLwF|YCPF &y 0; fbNq !1:!`hP6wVcɃ dt*ālDL9FjBT#ye-3Y5-P0fֲb ArP3?(Di }2W avğsDgYB fcҖn;B Fp͡4Oj&#<ŔOc>(siF+ȽI(cLV)86{Y3 Cb$. K;Ɏ`[Hn dxB@BuwmB vINH66![] /[ V ko I2`a"Uccn+Lsς$-#(bVӜ%l&LE\&:r1ODۤC(w<Fqs!  Tm)  F'011K\$f~uOaj{BA; E@ǡoq.8qPI&R~NxeX1P_A ?Xoq@hD|qs"c,#/oN,7!W >jOFpj0w!͟9ۡ0'CPƷ  q0bpB !X| ^, tpG q #8/ g`w  ^Zmpc 6x^7/PEHz A nNu%7ZSx +%% `V +ZB ~0esq Yd< h $>(׆S@  H a + `u b . 'w 0f0Xȳ旈ˆG RrN}s[ eM0u oA '(R 7gh~0wq ̷Q{pz|&~(!8$=WRtA (qnч! \p~}A6xA U6%h( a6Nh 81&xXwו1||b0zwzg Gxxm9tYvyxz|ٗ~9YyY! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCKSDZnDkDwDDDDDDDDDDDDDEGJPSTTTUUUVWX^aceeeeffffhjloqsuvvvwwwwwwx{Ѐ҄ӆԇԇԇԇԇԇԈՈՉՍ֒ؕٗژژڙۙۙۙۙۙۙۙۚۜܝܞݠݡݣޥߦߨ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjVlC,BgR];˙ٷZK7+mp[WWޭZ۪߬v-to5Z Z²Vf㜍(s+谝<1]ObbZn]K:ѵMQ0C6aFSd"LI,Qr^De%я fdC˙c>B̈́)=q (X Dw&C2hr&vP1zn?ȧ'5$Ai9 ̙驓 g˙EeC_LJCZث@WbKCYvC)<# 6g8Dx'=Մ^%`n0 Ђs8F@鵮&PD׊A3>VtT]CƱ/|;WHP)h ٧pc/d{@cC22ȓ[`Dqz[ :E(&v"ud+{(C{Z\1V+PQ1~JaF+\2fehX#OvWH`-*#0 p&Q:F$nXdOơd|r+"~v@[aL$0D"2AL8(tcz`F-Wo(eQA}9,pE@A2iRqt`MBІ:D'Jэl#Rюz"*!XS*3e$0Lef8XeI񉍂@>ϥʘRTe@%"JժztLJծƴ9aղVz:նv(YTY@n+SUP Sf%*`4ðMLOyld 7ղ,+7[XĒD]W敯$a$RkVHt6)kum[zҶXVuTq>GZT5č2钋f4)IM]3 l Mz| f))p?A j'L;vCH8С߿c~]eH t@/X&Lb50>>>CG>Rd=]yM<6fԵnYd+4ܹVǤ'eCe`BbCx:m LGfCs.d@gT) vPwNb@w#&5ByJ1T b.ԏ*Jʐ*AXRe)ΊA$*Z+PiP^@Twd(0g-T ,^r赳( Cqvz@tb%s3APbY{@7pAR%&&XT̏@"pc|Q/FA)vA0:J0c AÊ"L +"W쑙,$bw-䊗qbO/K,rNŒ9'  #ʑ$Z|>8J,O-TL)X]!dZ-UVPW_5CxuEܐ Omy#d=GĨmOE0 OS"R2G 7b*Nn|! Q%*1o},l#Dx 1o_o}2 Cl]);D߹x%wx88a'B1rvR(EMZ =q G>D'JъZͨF7zbB8@Ғ'!*! a.t8ũ.v ` á+PJԢ"Tዜ:Pͅ.QБFͪVM\HqQ Xs}تZڇu&e4\kͫQٔaN&G:žPi*`[S," 2$ld ;٧TֲH")\{Lj*؍B]$vHI[v-]:HUS\B,(HEYԥWL؝§vz|K I~ Ua f02áQ~fC'C'7b73 (Lb3$B>)Wf}(EAbvVtx A:" UE&c'(EdxhWeLY NTb!-?, Fe0 $xRPAf^Q/cF) h-KB= Mbr(C͜*Dғ6؊"Dḷ4Pl<י'`e wn5RǥxQQ "̵(~-K(7B6C#( $>deH{AIm9"P Mxz#H2 U#D>vk" vnH121Vƾ'~\Z!6]0[ 5BAQ)Nqp/x^:\nH)JsE,:VӼ%entZ" 3ui .L~r]h"ç} to&ew os HzyX8$"8zjW@C 8 +[W&g98z ruG o@sS!(~#(ð_Xx+ka|?Ƈu9mv*ȃW 8v2(%o8 k@~xqn2 OpAG7q у◅y B}rЀȊxq g !X~v'~ i(x6o4y6hvphq/(`QX [`z!huɰ8;V壟+؂%x!Z+(0 X~8: |X|D } xWxTYVyXZ\ٕ^`b9dYfyhjI! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAAAJRBR`BYmBfBnBuA|AAAAAAAABCFHKOPQQQRRRRRSUW[^`bbbbccccdehkprsssssstuvy~уӄӄӄӄӄӄӅԅԅԆԈՊՎבٕٕٕٕٕٕٖؓٔڗښ۟ݤߦߦߦߧ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjW)MN*,e,]+jٷaZK&jpͶ[Uޭ2߬׽u^k6Z RTfږi(s&a9` G(`Z|?HYJu+Xu-tM'aGxZ+YrPW_5CɥEҊޘ:"爨BwDTm#7? ޙgnN|nFR4>bGRc(G g 81czd2DBHHDl2?!#{(3Dr9C3CG+(s8UN.$0wj9c_FzWDr2E"1G-@Qc~$i| 4!+cPPrg(H5xq5~/gYa]!2~p1SBJ3JK;^*(`d+|HBvOG]ĩ,P@sEV 0Xdp0h)0DcE/`c숢 Y4{8J4,8vAusE=!Sԡqb HGJҒ(MJWRmC@Ӛ7CaP/vqZHMjRq`(] 3,ZX}%" rC` Xkqe\%VVO.J׺ւ45־uye9raŠuI)X֫)0d:N`)&z$Z3KZ?@4EKҞ6I.^.O6Lln Ց$C"׮ءIҚ\U*r}Xu!>LսVjàJ\ SV&Ṕ5+#OF h2y|^Y2 LрNP5'4>9BqiLYS ;dt#ByM=?y68?ЙHuP5w( ^0(M,˟x4Qޡ.K; I&FTC*pƷnB䶰"`"9-qzV/N.f qE*\" y8Ao֐Xg\ sBa }mH΁uBQd<.7':Ȼ~lHxpasi<&Ǹ P8u7CMlj2B 1h8#ב^ ;dz2 YP` C_9ܹO(>^VM@3B^Åc>dN~,H9Խf&ÒW>!ˀO><> Bӿ\O8|ef&ΰDPLG]"ɯ{]tp۟NL1e?"X~['=<1~WCw0|epWxptG J.p ǀ[`wd`O\qzgz{ $ z)(z с(vr h`crQ ~  @עBz QH w$`eO~0 h%$x= хaS3b $cXzO0χ# XTu ^ @j8U(0H8xЂI@ĈSkr $8׈a׉y$x hGr b`pag%`X!h%x8h|#怅=6xȈaxB8 x8~g(Bh8~ڰGׄ!Ƨ+ hxu 8W78XqPQP&GW#mFX @eoI`>i4)FI:BK GR)X hXYzוb9dYfyhjlٖnpr9tYvy! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDCHLBP[AVhA\s@`|>g\9lqBbB$;>(Hb%'x );V - e CS1fxBQɹmNY"5?ExlE[J7: fp*(DdC0F NQKAuʫc+ }+ΏK7XE/((a+aH#L%AsB{PQoeQq 1*vƳ>tG /Hr66R srbͨF7юz HGJ҄pPDІ0KbPa4 ]ܢ@ P:T\%WR K!PTN# V[0á&EJֲ 7tնU)HСڵz@GNq־U- *JX*bPX%Zvh4"6*hkˑlSB;Z˖V$Ema'ʶv.4`eK>%UL E֮S$XKVJemk.g>/jcrլfW80YrҔ3MSt0!LNpь"eK͐:D12! i@RCdX6"ܚdhBNм񇕁"fFhwC'pL d`#oxdj%D2AL2|x8QVFr KX8YvO6 6<4YA1ۜl *xmcnF\> zfOh73LY%A(tq L%VHCn>F6 )\Yvß] k7'cCp=hMZ(0F Ig&6p n`6ww ik> >ely5ф̈E07-[D{aP _(#";򎱻ah| /k,0k>qjx\&Ϝdd@QDa}@Hر 8vB}g&X((Hx=ћ;} Q5zmdFɇ+B$p؇%tyq։UmQJgCNFW (:Ln"ܻ^bB֑ Y/"͈BW$znw>qH; /vSdPvs0L.#nQe8#9uWGl(Cqr˸{I6,ýH˃.-O9¡s6_xC:cTC72}"7~s6w w@GSՖ0~~| X  W@S ~v!X -(8ʕ؂s@| 7ȃ=0d.(X2ƇPC1}3~H V8a1X2 ]s>g 1wpp g8̢ 7kчpc6*@(L ˧"pK'`(LJ}MGV)pppf>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIIMQFZlDfAp@w>|=~==============>ACFJMMMMNNNNNOQU[]^^^^^___`cejmnoooppppqrw}ҀҀҀҁӁӂӃӄԆԈՌ֐ٖؑؑؓژۛܞݠݢޢޢޣߣߥߨ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjKLB,Bj ]뉚ٷUZKR%ppͪ[WUޭ,kI߬׵uk*tS5J ZRrSf䬑(%沕<]-Eb[rZNi݉X<eMF0=d'p#Ǡ^pb`DblYH^N6n)K"P5dyڮwQ[VI?؁G/ꙓJ mxQDwxވ=Q i!Ǧ%mdaR!Hґ -k$%~yH8H!簆0f@݈VDj $⨺+6Aǀe;Rk`C!sz:'FmM9"{v]uH:ax:?&PD!芐]7GdB쁎rc@ ˯"ƴ, ۄ"aSGҎr|/aW_ro5cVfx(+.<C?߭r[dF5z43'xw~k~wAs0{et@쇀'Ou0 G0Ggi׀&u|wq.} H@ 2( Հג緂|;|4h1(l'wAK|Q8A}(Hr P/H@`C2H (xvҠkb B؄cwP} x !C)zHO؀e8&kx~pȇ`hwQ(JT`~A ⑇(q@('Sx؋Y8w(7bGHcBu戌؀zX>AxhH8XvXH`6goaև yg1W 8"x} ` +$X `rpnXcXp=`XQ`KȈJ:=тYT9HP)^|(}fz'{kr9tYvyxz|ٗ~9YR! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEEJNFVcEhEsEzD~DDDDDDDDDDDDDDDDEHMPSTTTTTUUUVX[_bdeeeeffffintvvvvwwwx}с҅ԇԇԈՉՌ֐ٕؓٗژۙۙۙۛܟݥߨ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjM$C&궵,`](ٷ ZK gpn[wSޭ;߬Eu+&t15* ZI*VQfτ=H3 B-yOy&6iM:{+szK$loʸsޔ_hM-*wH֦'t|- 5b])3_ygE^̀RQzw487x@h! JDaDPrwh8P  E#Bʉy@X LCDBs(P1X$>'(C2F DuNB4"QI1eя 2d 4əEBĦB)&-c\܆#`w`Z|9DH5 %TM')"]}j[ 'WaP4ar3Lb䐀N(Q:(yGDوu5úS^ǽ򀁰7L%C7OMĮ.'- 'B2=$ʳ!01a{M V3D"ħ_3/'Dd Q> L{<1?Ow9C-E,$6o|`PD.f` NZ .OaH:`|C%P0q4c@xIpyjbXLM;Ox}I0E֥<<>o)D' E c k'tvr["x"  J1]KQ\I7L#Zɟe+(TNڇg/XeL t\PIU"輟4#UbJW?IG3&4YX"\!Z*o5>=I{4[j$Zhc>Q h+uYntfؐ)x5Gz HGJҒ(M)Cu< YLgJSz y8$ XoCD'6AԢG(Zbp%DjJժZ hT z`'v VMZgXH\纉Q s$HZ4$)] O$b*CBZrJW#YZ$nhhG{>崨'IYZ6Mll VvucwKɂ$x^`ܣt6KrV妵 \O$QugUJ+ziNwU'V!LNenl'0X TE]Tv0x N1*X! u"Pa p#Xw X"رQ bX"[1y!PY > cA+Z*e/as1xyyȮTYȹp;83A Yţ@C#Z<8CotC a9۰ +{$.V 7rFEoo֢SCb׫^ UpeI_dm~vYle#;#̐=͐gF9Bm\oIG0-_!pFü xcqFoq+"޷ qN5ehP+h4zȿUp2Vrg!W*Žmz!Pˇ e !і) a[6! :ѵMg(׿G m;+ʮ51PCWƃg_9Ԟk;/f\~߇ށc;z^|+!8hAM!ޘQ*QWWKt<=Ρ s(=ra@R>w,p 7FS!ܰכ< 1?D{>=DB."WuyiWV z}~wta dVyy!z'z(| 's!!{Au U{U#x1y*vX~@dGqg6CuN sڀ~J \kI^( qb$ pWxSVpprQ c!ƃ (s(v|iy piRWz1h qyyXWzWa —|HoxruWxhAwFrZr(CWq7Șʸ،8Xxؘڸ! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDCLT@]v>j=r 3X#`4 u8qbBhB"^4)@-7Ԛ|2d7f,EXyB]&؂zyEɘܐ+ :ir\bD/ %d"T,D:;qp,>3G ]"!N $_Nn<`9 (2J*0o=:rg4D H ]a%6C*\o=7!gdD0K^!$bZ}ֻM0́u1fDdMUcNLQ]H9z\`C%-Q: t_t @Sz I}h<4TL1/q둢<фh=|o)DE}вˆc&6'ruj!8s0k-8kTbyb @BnSn&Rg Z)7Rlls$ǟčT1 4\>AQ'ARFEHCeıP UhQ5'È(TX҄fUPq@>ty 3Fx8P1t7>(ca ș`uxԤ&cSʑe0bͨF7юz HGReM,,M9s`,S\f#qjV['MTNץS5hTUILRrV4)VrӞ(+nBL<yx0S"7 lpC@5xQ Pb$SqP(Ɔ7l f0p)xϘ)16.@)xaб_ɧFRn(&)W36Xvr̵U!a1:Qƙ\^@w'vfϥkb$9YJt/zFFyx4R,0(}矔#ϝVP ";j13(ū LյN17Jfbg?y2`+^J9ed?y;u,AC{rm68퓘CCjqøm:1-n(OF3-rCH,ԛd,;͍qH[,L_ /7(,rl[636NdD#ܘw͈06ab`"ҠauH2famMb7Eoo\19j 0hR%8{쐮{}&ψ4tZ"C۶~A~w P0~a(ߟo,iRg#oƓQjg0FϏr |" [Tȱ@Mi ɸ5ׂx>/z1e#E6pRB?1' / c1)3|>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQOX_M`qLgJmGuD|BAAAAAAAAAAAAAACFKOQQQQQQRRRRX]abbbbbccfnrsssw{҂ӄӄӄӅԈՋ֍אٕٖؑؓږږږږڗڝܢޥߦߦߦߧ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXj}-$B$ڶ,B_]ȗٷZKepj[WSޭ(߬Eu^k6GPf̀5(s Ԑ=sbrZɾE$k [Ej3$nbD`Lռ{#jjN>qyu_?*qWbvG^!WQ&-#`y8. gcǃ EM%v !q(aD؜!(ɊD!FL#22gJ sI$XC@ 9HC$!L)P2V>mnO"#@yJL2T˗`;da4lx0{ J1$BX4wУ#Q+e>u&4 *8*9K!_j⟫!hɗ:xVPi-x@P$ R.g-#_*(CqB} -g[e듈C@Bq6iB}}tP`{3@> Fd =!;rM3z$u|QH\ݵPAzQ8X#<"K6?%SX#`uZ|?<و%$P 5'D #Y]\)VPW%B|)E̸ܐ32:uhRD $0 1$#T -D:qt,N.&?3 }㈌h*0.: eDHpDȘ",/F$Lw3TI5##_oMt|6Vw AƱc|v?yvXCbQ:Xj%(ECЂ}IFxDgx E8T2cBH2PA'P!=exZ7'Q;ũr_$p;y2 4@x~R ,^ 2סEI9Ep]v)VҖ.MiV YNwӞTH,~QHM*L j">TY`c%PVyH%XQ%\MV2McDEIrT5P\:UYw ,S ,I`RⰐ(:6WZٻ),_cvv=^EW}$MfV־u% lc>%X7ʓ+MR U4 fJR\b6id5SȂ.q}Ơr{o,CYqם}/Fn>ō;aFspV|s {:G 8 &&ug y H)0yW~ ynw{GN g pP`r , 4y AP{2gWC  9 A'4Q%9=`b хa }`S /} 1 9xkS2Hy"ttgU /\8>'"| 1"h7q䰇vWsA !~ k{X#vr8(Dr>}r A !`e4XO5d X#vWaG b.Hy8!8{ x (2GX6t' ݠXx*( 0a_3X6Hl$X8! 4(XW%2u7ipדa{{BG}wwưw}wL9TYVyXZ\ٕ^`b9dYfyh"! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGENVCWiA_x?f;o9u7x6z6{6{6{6{6{6{6{6{6{6|6|7|;ADFFFFFGGGGLRVWWWWWXXY^cghhiknsvyyzz}т҇ԊՊՊՊՋ֌֍׏גؖښۛۛۜۛۜܜܞݠݡޣޥߦߨ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjLTvwb]2_yzhwE/̀r߁ {5(P7i@hP_D(rsy(@sxh%"R()'>NJEbqr2ш_m@l(#Dɛ)#Kq*ِ-{HG%V KfСND^2)"hr ".-.G1oG.~ t 5d(BX#ߒm') )?9Ț&{r@),z5 KKCM#biXfICqCyIbݒtTfy1 0Tg-Ԝ;P9.I(Bq&B*eK).g&t(L:d)fYa 3$$X.q$K^Ez)bAKG 3P(@HE ɥ] "%e" $/{5f  Fر$d)_m-dRo~bVCbNZp1qe uUXc1d\4L)m9 %w#{KNK0qS2(rtF紟D Dwt'VQ.n k+a"!"eR(鲉2wM4|0*8Hq!#}FD)t=6#~]TRND0q"A\Dُ{׼4p)"H#Vb"xb-PyDA TȢ*.b=HEyKTa {FV&Q7WodU)5`D|mkS*ݸ:b$T+ӫ>)[jwQ+mKCkS+=iPQˈHl&JLNKM7$lc!Q2l&ovox2ra)w)DqS%"D)1\X bTŞ=XpšBCK$3!Gj;D0Oz.ΑnPWwD g1)Ƿ1#`Hps!@E5M|\Dx#PE١^ T&5&-f|zʸ;DvAww#{Q,C3?krd;w}/D븀,p /;xBWI9a !I[z Ș+Y,禈=Qt6r)Xst>s3&$`Y#ҿy1xPqߍdcg ~'~7{H7wq` H  ~j 𧀱 @u ~vd (h Ђwv ` $('G*w 2胘C( (˷yAdBx ..*B( -Ҁ ( WZ| A - 7| Qwtk #pPy S&0| 4&,b 7 ( H~|(! z'jV2 7}a&g%pkkG(Ȍ1 A("Њq!1 zR U( !"Hzx " 9 2H L7H @ '26H|h8'}e82W DžQrܘh{~+rt3IuxsЏ1r{@A P1FqLGpTyRY.`Zd;ZHn8Q<8x9ׂח||z7٘9YyٙQ! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>>CG?Rc>k=w=|=============?CJLMMMMMMNNORVZ\^^__aeilooopptzҀҀҀҀҁҁ҂ӄԇԊՌ֎׏בٖؑؑؑؒؑؒٓٔڙۛܝܞݠݡޡޢޢޢޢޣߣߣߤߧ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjw-S3fd,Xp] 'ٷ}YKap[Pޭ&߬tt48vMff831RyG]>Ki){'qbK#BosɈsy_H /*ǘ7Ӧ',t|&/ΞΔޥvwaN2_yhXE{Ǟa$̀ir_z w0Q5z\5E%"}bs(",,P0p\$6 D9ʦG0B􈐼QKQ" reH?\D%C˘UDk*t e &d :T'Bδ)d9"fBg i眊S W^a_C`ALmb{2iAY } iB&**&4z7}iƦӇ4Tg1T 4K-% F. mƙg m@)BqB́y޺m"g&TP bfF)BB%CǕ^P0*6F|3=t W^PGPs贓rF|`\ݵPP|6FmI5?ݣ\SFRZ|:i@ TM!xN|E\B]}X 9& vGކ"Nߘ=D협, :Y䨃“ϘgNEƀ V,x;tOğ1""12Է7MO<:lѬRHʬq>T&W9 ;DͳqH$";P>nT:aZ={`_ JQ?BޒvjoiG,H nP-H`\"cVN.gO*pHh=d`X{y$f{HQH=7J(Z"8T 31bEyG%Ј:8bDǡds&Lwm\##O`HMbpNy݈ЭyHTڸG<)~H{pҊ J-M+'w 42Bed'<ʋ)'I ꈉ[4RQZ68a(˧>~ @JЂ65! g8hDQ k`|J6R GBwHGJRD,Ӓu`Le* l*JӞ4JQK DPi"'wPX=*5idEP5 OucuJ*V%8\#*hx%NRԹNqj^4կrlS;X"b!+bZWܵxI:ٳ)kl[StXYF%U~4 QQ{TJp-TaNhMoT$&^*E1vՃ!Tʠ xKMz*ŪP;! _bPj U(8D%bq|c+E܈T5Fab(ńG\DB08VN( /!n+nq}Q#2#o(þ:q|{R ;@ VС$[?ƓWv*ذlPcOV-oxIdy4?v7 8?Sn)Fl<&4,Xm:uHGɌ_Q1 L9H!>dM-(@[ '`u:Pc:E5lvȺ&[}2 `e7Nle$v. p#tG+ @3D6ե7;;Xv5bzB=:dJ[#]Jޅ/Գ/jw,"B7cGOEMd夕1Nq]3(cTH,^Nt\F$еqr1qY#_ "?pTƇ!rZP<߈5NN!pѬÛc6ƒ#|G0bqS"`H6NtU'B^qſ0F6ސo~" Wwŋ~SLj0Lg=A2``##?d(Jp;E_#P7QvL}zAh!} >3h(U~{w;!` }oq .' G%t (}CprPf 1 }p  "> %{wX ,' W0l a b|t !B81 Q 7}"uH kwB{g \r]z! 7 W)J pT)pz gv`TR xs 11 7xp <~xA + „Wu 7 ( 6uEG1 *V 0Hz\H  ~h1 (d#]H!p~7 "Pq | X 7 Ę(Poa }p bT(a T"Hu u qrY#qpr6p~A 0mE߆3(RЂBH2(5AB(V(G`yW9X|H}j~xxGz|ٗ~9Yy٘! ,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGFYiFhErExE|DDDDDDDDDDDDFKOSTTUX\adeeeefimsuvvvvwwwwy~уӆԇԇԇԈԈՈՈՈՉՊ֌֎׏בٕؓٗژژژڙۙۙۙۙۛ۝ܣަߨ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXj'0`T,Uj]fٷmYK˖`p [WPޭe߬ץt+ t4*Z9M_8cQ٭dkVQW/t:j,) /ocĻe[ DY.xKk~GO9}{m羺bsyG2;3[Ny_^$d_C[Xҁ _A\H Bax8)cb6dɈ(lc1.ȈhxhgG8 ʓ!i 2""Xg- aUf Fa%lh)̒ M%Y ɩ`(~`uB(` L<9_ yBat$1O8H*6`J\ݵQ6ؑh2?Į:4W[ 3jw.뵼BLOxS췪~L]}X )C!'SƋ"$Z*Q(1 Oo9DaCk|a\I,ulK B "(aXNt5T2hw!)`N2m@s>)<1;e#t؀6L-;<3dܓ7R 2=KS8g=Rɮt,Ox16<*Mn$tg5R8i);RSp8JޱmQ$,ܨ˻F*uO;QoT:NlC"<:dPr<.N51ϯ!PVdKjTcV$ox>#?z[P8!Ty81 b'w~C, Oj +I/Q5P9 E|5#T: %HL&:Pe( .vP2aè`x 6p 1N+)2>QSA:LZVIV?e-{Tv*g {ՠdn5D-\obPN"O2~(e *%-.a͠xB*9iVwELu]Z8z^&DQ kJ'̈n{j *Ebአ$cUmV$VnOKF( HC:"l,$b8ҋr8m+2d8SыrD#\O>xqиA [YǵF7E1.q*bd6Fk#r+!F%LgRL$ off1LzdtN,( W8gk :9&Wqώ3% x؂-_ "x=ZiBSV#u5qb0#.wRbxk2jMd#DX(@ \t!uWc"Di ^Ұ4D fQF*8AzI%_a@[)aM1b]*N61nXC0p+0! Yp˓F(O-?E*2.f|B'B1?*2c\,H h?ꉺ*~ "Yx+ IxQ/Рv"[BE)c*Qޣ`38v|d'5B~x-^ލk9| PxX25 ӛř BgCR_(z*Vz?$v'F!b}e=DXo*?Dv:_ C!-2mu_;_|K$ntِi-w 7'~t5Yupu AW1qN' i5@u:'*xd^G|ɑ ' Q @pg>tf f7nWo`c48 F Dn[ȃw^ NC`: 8HjXƠ 8 )PbAyxgy! bwiPdxx4wwx׈vg}XwxwatXr81v41qYq&smFmx؋8XxȘʸR;assets/img/choose-template.png000064400000010712147600120010012411 0ustar00PNG  IHDR];:sRGB, pHYs!8!8E1`oIDATxpU՝q;lg:v)ŨJ5 `U+:v?R]-`Ah*F@.bTR@r?ys^^}w=3>0曓sϽwР,@ 08/oO [T6B)R- d'F^`x( x`6`]n 0|_/٣]+aA𚊼a#\ n ,)@2!е/Zt }u3o/Eߒz .7k/!G%}픳Hċi}GG|#k'w=ZLylh?s WDNZ~ Z9"|q=|ijxuYC^;KoM+FX?Г: 977Y\ڱ#GWW(oN,gϞfLpLz2ݯ}<9*g1g^]'b^;#eK|pec\Lt'VJ]ZE7$:_;}i{=qtum\HtO?SN^xK/^8r|> ¦=w .<Dwh`|uwH%Ǽ6&sǍǝHqN~kki3&q" nSsb?\?INO~ѣey疱G//F%^6ӥd^ǖ%G[?@Gt sϞ=_ZYY9WgQ.?a7^w"*CREjto+KJ8]H^NYnl.nPeeL͚L[SS#z6]H^=Jt 3\ !`.Dt ]0AD "`.Dt ]0AD "`.Dt ]0AD "`.Dt ]0AD "`.Dt ZGzN練m7H_/}PUD5ʝ/g24$W>˗ S5ڕkd֋-RP)%AmM+"FLd%e4ɍ²]>=@,"Kߢj[r]ewkU cvz3nom)?7ɱyoۉ[jDze=.eDƒѽgC,|3b,jKtQ8$!"sE"n8LtޯoSr^ #傇,5t]2LtxD8L^2mw{hY]OM 7wy=DXRO?ubkܶUn]_DT^R_oPm5Fh>pu^t5aK7hx ;0fxmE[dVEW?T^mMK :D{x\jy*ndVFƈ,g'C.#.p_Gxݘڜ>YϙOp Gtۓ>6$d&EWbY+run"zA\dVtR/۬4]Y~AfCt7}{X,$l/jEf<ci!]&}6H{N&?&+ 5}E#rZ]koxm{a:5zRҚCWz^]Q3ܟ>;=^q2ƫOa^ ju\|A)(V?8ׯ]yޥO]XP.o.>pUJ6R$9)xx-,.knm.t|3^pzrCѧBj@ODM+i\gwÎ9^kvm,^h]ZZv*U/c~CÛha[Af@D>aAY9($WO-vrC cu2 vr>^z; Z/#=T|Q/׭ll,U\1&;cR@ \ bf9g'zshN)!gYxvw ?nl^כ7ho-@.Dt ]0AD "`.Dt ]0AD "`.Dt ]0AD "`.Dt ]0AD "`.Dt ]0AD "`.Dt ]0AD "`.Dt ]0ȵ;vݣG~3uG]m𺵮EWjfC^Hl`W[]]-&7aeb =܌nWx(֢5܎nw|9֨6WbA=G6 ^>l٘a`@l̰}0 lw6f>m;3l 6۝d vgcf1l٘a`@lP_PY`1C}A=pP [*lw6f/P y몫lw6fTVVP_XYм ({{PBrƊ+a0Hf!$p'-%2dyaQrJfdG BF]n amp 1u?/OL`e]t\."y\e4h̴$ wӉ4ݎPC8k8\G^Tu RL?˷(-2H1E%no^ej]ۖeQ} q3hhxlV~2Z)L\">u*.FIENDB`assets/img/check.svg000064400000000761147600120010010413 0ustar00assets/img/blank-form.png000064400000003137147600120010011353 0ustar00PNG  IHDR]XSsRGB, pHYs!8!8E1`PLTEʶ殮ƭͣ缼Ԛ尰lmn%&(hij!"#! !#ijjllniijƎVtRNS$~ˀ LL ~$ L kIDATxkWgUB(   6Z+b[awgÔ׽ 3!p㻉)XTo~ݺ]L Uf:{{6"%5{'fboQZa{Қ;D[Wg2ޠԨD]%*QWJUuD]%*QWJUuD]%*QWJUuD]%*QWJUuD]%*QWJUuD]%*QWJUuD]%*QWJUu\֭ݽw~a—. |ZMpYy58\տ|>8\GOQ6evc)uwϖI5UlxYЄF{n|+)6bFzIbO4{i0e.Jɜݬk2ǂFb2'̱nQWJUrRczWu Fݲޫ׆ pReݥff8'u7ᴤi8'uM㮍JUqnIQWi;X=xsv/yU݅GDZcK(_5r9;l?D]%*QWJQwqzNꎆgOb/7_W9z{!ʸ~^|jS_^u/1xWjJUuD]%&&_ܿ{X՝jB.UwPWI]7{~D]%*wiyN7i8_; i8 %[@]%*QWO]s& ;bf6뼛̱ٹ-S76:2FԽ8gvRlzL/KeLx;-vtbUݿ%ג|7Xr0uOs_ רUWw}sD]%*QWJUuD]%*QWJUuD]%*QWJUuD]%*QWJUuD]%*QWJUuD]%*QWJUuD]%*QWJUud J&bPb0?{Ҫ̅OK!ޢfOCOg*)pϹ*}mMN:+2 'JsIENDB`assets/img/bug.png000064400000003654147600120010010104 0ustar00PNG  IHDRPPtEXtSoftwareAdobe ImageReadyqe<NIDATx\MlEl$P ?+U炄 7XD in%EHH\)FHEb@eS5i~w<ݙn:4TC5x8TP!NJqQ lArO&Īh8N9l*q$ ΂pyz{# &.PP[THW05e1Lg2*!7 k; T[k38%)y~c/9uˍA 2\46sLF=&ڸ-]Ҭ;2``~a I D@)DD`,𞷜>r3~i.Hޤ׼H-NW@2EFQHqgE]9f1(y٤+B=/g.da#1Vߌ|В(g ВPT*1[%)H(a+|iT3dIA T14rhZ*7Hޗ;3h|>Jc:(,G0 {9 *t% @E6>6 gW:3Xf/py&F!;{#=h۸U {,~U<[ŎwMgD}ݛ48)_D c|u#+PXDyܓ9" V7Ά7. 8FcW0m);1>XUh3pi:}:mܻJ u0x^oczBrƤ&:HxuΪӯ-b=,x6׽Z{yeQ;kGE|UX4?<>BU@tl&XiG:iIsv#Ҳr dd4{k%fAe=HpbDi /EtD`JTe assets/img/sample.csv000064400000054523147600120010010620 0ustar00Year,Make,Model 2015,Acura,ILX 2015,Acura,MDX 2015,Acura,RDX 2015,Acura,RLX 2015,Acura,TLX 2015,Alfa Romeo,4C 2015,Alfa Romeo,4C Spider 2015,Aston Martin,V12 Vantage S 2015,Aston Martin,V8 Vantage 2015,Aston Martin,Vanquish 2015,Audi,A3 2015,Audi,A3 e-tron 2015,Audi,A4 2015,Audi,A5 2015,Audi,A6 2015,Audi,A7 2015,Audi,A8 2015,Audi,allroad 2015,Audi,Q3 2015,Audi,Q5 2015,Audi,Q7 2015,Audi,R8 2015,Audi,RS 5 2015,Audi,RS 7 2015,Audi,S3 2015,Audi,S4 2015,Audi,S5 2015,Audi,S6 2015,Audi,S7 2015,Audi,S8 2015,Audi,SQ5 2015,Audi,TT 2015,Audi,TTS 2015,Bentley,Continental GT 2015,Bentley,Flying Spur 2015,Bentley,Mulsanne 2015,BMW,2 Series 2015,BMW,3 Series 2015,BMW,3 Series Gran Turismo 2015,BMW,4 Series 2015,BMW,4 Series Gran Coupe 2015,BMW,5 Series 2015,BMW,5 Series Gran Turismo 2015,BMW,6 Series 2015,BMW,6 Series Gran Coupe 2015,BMW,7 Series 2015,BMW,ActiveHybrid 5 2015,BMW,ActiveHybrid 7 2015,BMW,ALPINA B6 Gran Coupe 2015,BMW,ALPINA B7 2015,BMW,i3 2015,BMW,i8 2015,BMW,M3 2015,BMW,M4 2015,BMW,M5 2015,BMW,M6 2015,BMW,M6 Gran Coupe 2015,BMW,X1 2015,BMW,X3 2015,BMW,X4 2015,BMW,X5 2015,BMW,X5 M 2015,BMW,X6 2015,BMW,X6 M 2015,BMW,Z4 2015,Buick,Enclave 2015,Buick,Encore 2015,Buick,LaCrosse 2015,Buick,Regal 2015,Buick,Verano 2015,Cadillac,ATS 2015,Cadillac,ATS Coupe 2015,Cadillac,CTS 2015,Cadillac,CTS-V Coupe 2015,Cadillac,Escalade 2015,Cadillac,Escalade ESV 2015,Cadillac,SRX 2015,Cadillac,XTS 2015,Chevrolet,Camaro 2015,Chevrolet,City Express 2015,Chevrolet,Colorado 2015,Chevrolet,Corvette 2015,Chevrolet,Cruze 2015,Chevrolet,Equinox 2015,Chevrolet,Express 2015,Chevrolet,Express Cargo 2015,Chevrolet,Impala 2015,Chevrolet,Impala Limited 2015,Chevrolet,Malibu 2015,Chevrolet,Silverado 1500 2015,Chevrolet,Silverado 2500HD 2015,Chevrolet,Silverado 3500HD 2015,Chevrolet,Sonic 2015,Chevrolet,Spark 2015,Chevrolet,Spark EV 2015,Chevrolet,SS 2015,Chevrolet,Suburban 2015,Chevrolet,Tahoe 2015,Chevrolet,Traverse 2015,Chevrolet,Trax 2015,Chevrolet,Volt 2015,Chrysler,200 2015,Chrysler,300 2015,Chrysler,Town and Country 2015,Dodge,Challenger 2015,Dodge,Charger 2015,Dodge,Dart 2015,Dodge,Durango 2015,Dodge,Grand Caravan 2015,Dodge,Journey 2015,Dodge,Viper 2015,Ferrari,458 Italia 2015,Ferrari,California T 2015,Ferrari,F12 Berlinetta 2015,Ferrari,FF 2015,Ferrari,FXX K 2015,FIAT,500 2015,FIAT,500e 2015,FIAT,500L 2015,Ford,C-Max Energi 2015,Ford,C-Max Hybrid 2015,Ford,Edge 2015,Ford,Escape 2015,Ford,Expedition 2015,Ford,Explorer 2015,Ford,F-150 2015,Ford,F-250 Super Duty 2015,Ford,F-350 Super Duty 2015,Ford,F-450 Super Duty 2015,Ford,Fiesta 2015,Ford,Flex 2015,Ford,Focus 2015,Ford,Focus ST 2015,Ford,Fusion 2015,Ford,Fusion Energi 2015,Ford,Fusion Hybrid 2015,Ford,Mustang 2015,Ford,Taurus 2015,Ford,Transit Connect 2015,Ford,Transit Van 2015,Ford,Transit Wagon 2015,GMC,Acadia 2015,GMC,Canyon 2015,GMC,Canyon Nightfall Edition 2015,GMC,Savana 2015,GMC,Savana Cargo 2015,GMC,Sierra 1500 2015,GMC,Sierra 2500HD 2015,GMC,Sierra 3500HD 2015,GMC,Terrain 2015,GMC,Yukon 2015,GMC,Yukon XL 2015,Honda,Accord 2015,Honda,Accord Hybrid 2015,Honda,Civic 2015,Honda,CR-V 2015,Honda,CR-Z 2015,Honda,Crosstour 2015,Honda,Fit 2015,Honda,Odyssey 2015,Honda,Pilot 2015,Hyundai,2016 Tucson Fuel Cell 2015,Hyundai,Accent 2015,Hyundai,Azera 2015,Hyundai,Elantra 2015,Hyundai,Elantra GT 2015,Hyundai,Equus 2015,Hyundai,Genesis 2015,Hyundai,Genesis Coupe 2015,Hyundai,Santa Fe 2015,Hyundai,Santa Fe Sport 2015,Hyundai,Sonata 2015,Hyundai,Sonata Hybrid 2015,Hyundai,Tucson 2015,Hyundai,Veloster 2015,Infiniti,Q40 2015,Infiniti,Q50 2015,Infiniti,Q60 Convertible 2015,Infiniti,Q60 Coupe 2015,Infiniti,Q70 2015,Infiniti,QX50 2015,Infiniti,QX60 2015,Infiniti,QX70 2015,Infiniti,QX80 2015,Jaguar,F-TYPE 2015,Jaguar,XF 2015,Jaguar,XJ 2015,Jaguar,XK 2015,Jeep,Cherokee 2015,Jeep,Compass 2015,Jeep,Grand Cherokee 2015,Jeep,Grand Cherokee SRT 2015,Jeep,Patriot 2015,Jeep,Renegade 2015,Jeep,Wrangler 2015,Kia,Cadenza 2015,Kia,Forte 2015,Kia,K900 2015,Kia,Optima 2015,Kia,Optima Hybrid 2015,Kia,Rio 2015,Kia,Sedona 2015,Kia,Sorento 2015,Kia,Soul 2015,Kia,Soul EV 2015,Kia,Sportage 2015,Lamborghini,Aventador 2015,Lamborghini,Huracan 2015,Land Rover,Discovery Sport 2015,Land Rover,LR2 2015,Land Rover,LR4 2015,Land Rover,Range Rover 2015,Land Rover,Range Rover Evoque 2015,Land Rover,Range Rover Evoque Convertible 2015,Land Rover,Range Rover Sport 2015,Lexus,CT 200h 2015,Lexus,ES 300h 2015,Lexus,ES 350 2015,Lexus,GS 350 2015,Lexus,GS 450h 2015,Lexus,GX 460 2015,Lexus,IS 250 2015,Lexus,IS 250 C 2015,Lexus,IS 350 2015,Lexus,IS 350 C 2015,Lexus,LS 460 2015,Lexus,LS 600h L 2015,Lexus,LX 570 2015,Lexus,NX 200t 2015,Lexus,NX 300h 2015,Lexus,RC 350 2015,Lexus,RC F 2015,Lexus,RX 350 2015,Lexus,RX 450h 2015,Lincoln,MKC 2015,Lincoln,MKS 2015,Lincoln,MKT 2015,Lincoln,MKX 2015,Lincoln,MKZ 2015,Lincoln,Navigator 2015,Maserati,Ghibli 2015,Maserati,Ghibli S Q4 Ermenegildo Zegna 2015,Maserati,GranTurismo 2015,Maserati,GranTurismo Convertible 2015,Maserati,Quattroporte 2015,Mazda,3 2015,Mazda,5 2015,Mazda,6 2015,Mazda,CX-5 2015,Mazda,CX-9 2015,Mazda,MX-5 Miata 2015,McLaren,650S Coupe 2015,McLaren,650S Spider 2015,McLaren,P1 2015,Mercedes-Benz,B-Class Electric Drive 2015,Mercedes-Benz,C-Class 2015,Mercedes-Benz,CLA-Class 2015,Mercedes-Benz,CLS-Class 2015,Mercedes-Benz,E-Class 2015,Mercedes-Benz,G-Class 2015,Mercedes-Benz,GL-Class 2015,Mercedes-Benz,GLA-Class 2015,Mercedes-Benz,GLK-Class 2015,Mercedes-Benz,M-Class 2015,Mercedes-Benz,S-Class 2015,Mercedes-Benz,SL-Class 2015,Mercedes-Benz,SLK-Class 2015,Mercedes-Benz,SLS AMG GT Final Edition 2015,Mercedes-Benz,Sprinter 2015,MINI,Cooper 2015,MINI,Cooper Countryman 2015,MINI,Cooper Coupe 2015,MINI,Cooper Paceman 2015,MINI,Cooper Roadster 2015,MINI,John Cooper Works Hardtop 2015,Mitsubishi,Lancer 2015,Mitsubishi,Lancer Evolution 2015,Mitsubishi,Mirage 2015,Mitsubishi,Outlander 2015,Mitsubishi,Outlander Sport 2015,Nissan,370Z 2015,Nissan,Altima 2015,Nissan,Armada 2015,Nissan,Frontier 2015,Nissan,GT-R 2015,Nissan,Leaf 2015,Nissan,Murano 2015,Nissan,NV Cargo 2015,Nissan,NV Passenger 2015,Nissan,NV200 2015,Nissan,Pathfinder 2015,Nissan,Quest 2015,Nissan,Rogue 2015,Nissan,Rogue Select 2015,Nissan,Sentra 2015,Nissan,Titan 2015,Nissan,Versa 2015,Porsche,911 2015,Porsche,918 Spyder 2015,Porsche,Boxster 2015,Porsche,Cayenne 2015,Porsche,Cayman 2015,Porsche,Macan 2015,Porsche,Panamera 2015,Ram,1500 2015,Ram,1500 Rebel 2015,Ram,2500 2015,Ram,3500 2015,Ram,CV Tradesman 2015,Ram,Promaster Cargo Van 2015,Ram,Promaster City 2015,Ram,Promaster Window Van 2015,Rolls-Royce,Ghost Series II 2015,Rolls-Royce,Phantom 2015,Rolls-Royce,Phantom Coupe 2015,Rolls-Royce,Phantom Drophead Coupe 2015,Rolls-Royce,Wraith 2015,Scion,FR-S 2015,Scion,iQ 2015,Scion,tC 2015,Scion,xB 2015,smart,fortwo 2015,Subaru,BRZ 2015,Subaru,Forester 2015,Subaru,Impreza 2015,Subaru,Legacy 2015,Subaru,Outback 2015,Subaru,WRX 2015,Subaru,XV Crosstrek 2015,Tesla,Model S 2015,Toyota,4Runner 2015,Toyota,Avalon 2015,Toyota,Avalon Hybrid 2015,Toyota,Camry 2015,Toyota,Camry Hybrid 2015,Toyota,Corolla 2015,Toyota,Highlander 2015,Toyota,Highlander Hybrid 2015,Toyota,Land Cruiser 2015,Toyota,Prius 2015,Toyota,Prius c 2015,Toyota,Prius Plug-in 2015,Toyota,Prius v 2015,Toyota,RAV4 2015,Toyota,Sequoia 2015,Toyota,Sienna 2015,Toyota,Tacoma 2015,Toyota,Tundra 2015,Toyota,Venza 2015,Toyota,Yaris 2015,Volkswagen,Beetle 2015,Volkswagen,Beetle Convertible 2015,Volkswagen,CC 2015,Volkswagen,e-Golf 2015,Volkswagen,Eos 2015,Volkswagen,Golf 2015,Volkswagen,Golf GTI 2015,Volkswagen,Golf R 2015,Volkswagen,Golf SportWagen 2015,Volkswagen,Passat 2015,Volkswagen,Tiguan 2015,Volkswagen,Touareg 2015,Volvo,S60 2015,Volvo,S80 2015,Volvo,V60 2015,Volvo,V60 Cross Country 2015,Volvo,XC60 2015,Volvo,XC70 2016,Acura,ILX 2016,Acura,MDX 2016,Acura,NSX 2016,Acura,RDX 2016,Acura,RLX 2016,Acura,TLX 2016,Alfa Romeo,4C 2016,Alfa Romeo,4C Spider 2016,Aston Martin,DB9 GT 2016,Aston Martin,Rapide S 2016,Aston Martin,V12 Vantage S 2016,Aston Martin,V8 Vantage 2016,Aston Martin,Vanquish 2016,Audi,A3 2016,Audi,A4 2016,Audi,A5 2016,Audi,A6 2016,Audi,A7 2016,Audi,A8 2016,Audi,allroad 2016,Audi,Q1 2016,Audi,Q3 2016,Audi,Q5 2016,Audi,Q7 2016,Audi,R8 2016,Audi,RS 2016,Audi,RS 7 2016,Audi,S3 2016,Audi,S4 2016,Audi,S5 2016,Audi,S6 2016,Audi,S7 2016,Audi,S8 2016,Audi,SQ5 2016,Audi,TT 2016,Audi,TTS 2016,Bentley,Continental GT 2016,Bentley,Continental GT Speed 2016,Bentley,Flying Spur 2016,Bentley,Mulsanne 2016,BMW,2 Series 2016,BMW,3 Series 2016,BMW,3 Series Gran Turismo 2016,BMW,4 Series 2016,BMW,4 Series Gran Coupe 2016,BMW,5 Series 2016,BMW,5 Series Gran Turismo 2016,BMW,6 Series 2016,BMW,6 Series Gran Coupe 2016,BMW,7 Series 2016,BMW,ActiveHybrid 5 2016,BMW,ALPINA B6 Gran Coupe 2016,BMW,i3 2016,BMW,i8 2016,BMW,M2 2016,BMW,M3 2016,BMW,M4 2016,BMW,M4 GTS 2016,BMW,M5 2016,BMW,M6 2016,BMW,M6 Gran Coupe 2016,BMW,X1 2016,BMW,X3 2016,BMW,X4 2016,BMW,X5 2016,BMW,X5 M 2016,BMW,X6 2016,BMW,X6 M 2016,BMW,Z4 2016,Buick,Cascada 2016,Buick,Enclave 2016,Buick,Encore 2016,Buick,Envision 2016,Buick,LaCrosse 2016,Buick,Regal 2016,Buick,Verano 2016,Cadillac,ATS 2016,Cadillac,ATS Coupe 2016,Cadillac,ATS-V 2016,Cadillac,CT6 2016,Cadillac,CTS 2016,Cadillac,CTS-V 2016,Cadillac,ELR 2016,Cadillac,Escalade 2016,Cadillac,Escalade ESV 2016,Cadillac,SRX 2016,Cadillac,XTS 2016,Chevrolet,Camaro 2016,Chevrolet,City Express 2016,Chevrolet,Colorado 2016,Chevrolet,Corvette 2016,Chevrolet,Corvette Stingray 2016,Chevrolet,Cruze 2016,Chevrolet,Equinox 2016,Chevrolet,Express 2016,Chevrolet,Express Cargo 2016,Chevrolet,Impala 2016,Chevrolet,Impala Limited 2016,Chevrolet,Malibu 2016,Chevrolet,Malibu Hybrid 2016,Chevrolet,Malibu Limited 2016,Chevrolet,Silverado 1500 2016,Chevrolet,Silverado 2500HD 2016,Chevrolet,Silverado 3500HD 2016,Chevrolet,Sonic 2016,Chevrolet,Spark 2016,Chevrolet,SS 2016,Chevrolet,Suburban 2016,Chevrolet,Tahoe 2016,Chevrolet,Traverse 2016,Chevrolet,Trax 2016,Chevrolet,Volt 2016,Chrysler,100 2016,Chrysler,200 2016,Chrysler,300 2016,Chrysler,Town and Country 2016,Dodge,Challenger 2016,Dodge,Charger 2016,Dodge,Dart 2016,Dodge,Durango 2016,Dodge,Grand Caravan 2016,Dodge,Journey 2016,Dodge,Viper 2016,FIAT,500 2016,FIAT,500e 2016,FIAT,500L 2016,FIAT,500X 2016,Ford,C-Max Energi 2016,Ford,C-Max Hybrid 2016,Ford,Edge 2016,Ford,Escape 2016,Ford,Expedition 2016,Ford,Expedition EL 2016,Ford,Explorer 2016,Ford,Explorer Sport 2016,Ford,F-150 2016,Ford,F-250 Super Duty 2016,Ford,F-350 Super Duty 2016,Ford,F-450 Super Duty 2016,Ford,Fiesta 2016,Ford,Flex 2016,Ford,Focus 2016,Ford,Focus ST 2016,Ford,Fusion 2016,Ford,Fusion Energi 2016,Ford,Fusion Hybrid 2016,Ford,Mustang 2016,Ford,Ranger 2016,Ford,Shelby GT350 2016,Ford,Taurus 2016,Ford,Transit Connect 2016,Ford,Transit Van 2016,Ford,Transit Wagon 2016,GMC,Acadia 2016,GMC,Canyon 2016,GMC,Savana 2016,GMC,Savana Cargo 2016,GMC,Sierra 2016,GMC,Sierra 2500HD 2016,GMC,Sierra 3500HD 2016,GMC,Yukon 2016,GMC,Yukon Denali 2016,Honda,Accord 2016,Honda,Civic 2016,Honda,CR-V 2016,Honda,CR-Z 2016,Honda,Fit 2016,Honda,HR-V 2016,Honda,Odyssey 2016,Honda,Pilot 2016,Hyundai,Accent 2016,Hyundai,Azera 2016,Hyundai,Elantra 2016,Hyundai,Equus 2016,Hyundai,Genesis 2016,Hyundai,Genesis Coupe 2016,Hyundai,Santa Fe 2016,Hyundai,Santa Fe Sport 2016,Hyundai,Sonata 2016,Hyundai,Sonata Hybrid 2016,Hyundai,Tucson 2016,Hyundai,Veloster 2016,Infiniti,Q30 2016,Infiniti,Q50 2016,Infiniti,Q70 2016,Infiniti,QX50 2016,Infiniti,QX60 2016,Infiniti,QX70 2016,Infiniti,QX80 2016,Jaguar,F-TYPE 2016,Jaguar,XF 2016,Jaguar,XJ 2016,Jeep,Cherokee 2016,Jeep,Compass 2016,Jeep,Grand Cherokee 2016,Jeep,Patriot 2016,Jeep,Renegade 2016,Jeep,Wrangler 2016,Kia,Cadenza 2016,Kia,Forte 2016,Kia,K900 2016,Kia,Optima 2016,Kia,Optima Hybrid 2016,Kia,Rio 2016,Kia,Sedona 2016,Kia,Sorento 2016,Kia,Soul 2016,Kia,Soul EV 2016,Kia,Sportage 2016,Lamborghini,Aventador 2016,Lamborghini,Huracan 2016,Land Rover,Discovery Sport 2016,Land Rover,LR4 2016,Land Rover,Range Rover 2016,Land Rover,Range Rover Evoque 2016,Land Rover,Range Rover Sport 2016,Lexus,CT 200h 2016,Lexus,ES 300h 2016,Lexus,ES 350 2016,Lexus,GS 200t 2016,Lexus,GS 350 2016,Lexus,GS 450h 2016,Lexus,GS F 2016,Lexus,GX 460 2016,Lexus,IS 200t 2016,Lexus,IS 300 2016,Lexus,IS 350 2016,Lexus,LS 460 2016,Lexus,LS 600h L 2016,Lexus,LX 570 2016,Lexus,NX 200t 2016,Lexus,NX 300h 2016,Lexus,RC 200t 2016,Lexus,RC 300 2016,Lexus,RC 350 2016,Lexus,RC F 2016,Lexus,RX 350 2016,Lexus,RX 450h 2016,Lincoln,MKC 2016,Lincoln,MKS 2016,Lincoln,MKT 2016,Lincoln,MKX 2016,Lincoln,MKZ 2016,Lincoln,MKZ Hybrid 2016,Lincoln,Navigator 2016,Lincoln,Navigator L 2016,Maserati,Ghibli 2016,Maserati,Ghibli S 2016,Maserati,GranTurismo 2016,Maserati,GranTurismo Convertible 2016,Maserati,Quattroporte 2016,Mazda,2 2016,Mazda,3 2016,Mazda,6 2016,Mazda,CX-3 2016,Mazda,CX-5 2016,Mazda,CX-9 2016,Mazda,MX-5 Miata 2016,McLaren,570S 2016,Mercedes-Benz,AMG GT 2016,Mercedes-Benz,B-Class Electric Drive 2016,Mercedes-Benz,C-Class 2016,Mercedes-Benz,C350 Plug-in Hybrid 2016,Mercedes-Benz,C450 AMG 4MATIC 2016,Mercedes-Benz,CLA-Class 2016,Mercedes-Benz,CLS-Class 2016,Mercedes-Benz,E-Class 2016,Mercedes-Benz,G-Class 2016,Mercedes-Benz,GL-Class 2016,Mercedes-Benz,GLA-Class 2016,Mercedes-Benz,GLC-Class 2016,Mercedes-Benz,GLE-Class 2016,Mercedes-Benz,GLE-Class Coupe 2016,Mercedes-Benz,GLE350d 2016,Mercedes-Benz,Metris 2016,Mercedes-Benz,S-Class 2016,Mercedes-Benz,S600 2016,Mercedes-Benz,SL-Class 2016,Mercedes-Benz,SLK-Class 2016,Mercedes-Benz,Sprinter 2016,Mercedes-Benz,Sprinter Worker 2016,MINI,Cooper 2016,MINI,Cooper Clubman 2016,MINI,Cooper Countryman 2016,MINI,Cooper Paceman 2016,Mitsubishi,i-MiEV 2016,Mitsubishi,Lancer 2016,Mitsubishi,Outlander 2016,Mitsubishi,Outlander Sport 2016,Nissan,370Z 2016,Nissan,Altima 2016,Nissan,Frontier 2016,Nissan,GT-R 2016,Nissan,Juke 2016,Nissan,Leaf 2016,Nissan,Maxima 2016,Nissan,Murano 2016,Nissan,NV Cargo 2016,Nissan,NV Passenger 2016,Nissan,NV200 2016,Nissan,Pathfinder 2016,Nissan,Quest 2016,Nissan,Sentra 2016,Nissan,Titan XD 2016,Porsche,911 2016,Porsche,Boxster 2016,Porsche,Cayenne 2016,Porsche,Cayenne S 2016,Porsche,Cayman 2016,Porsche,Macan 2016,Porsche,Panamera 2016,Ram,1500 2016,Ram,2500 2016,Ram,3500 2016,Ram,Promaster Cargo Van 2016,Ram,Promaster City 2016,Ram,Promaster Window Van 2016,Rolls-Royce,Dawn 2016,Rolls-Royce,Ghost Series II 2016,Rolls-Royce,Phantom 2016,Rolls-Royce,Phantom Coupe 2016,Rolls-Royce,Phantom Drophead Coupe 2016,Rolls-Royce,Wraith 2016,Scion,FR-S 2016,Scion,iA 2016,Scion,iM 2016,Scion,tC 2016,smart,fortwo 2016,Subaru,BRZ 2016,Subaru,Crosstrek 2016,Subaru,Forester 2016,Subaru,Impreza 2016,Subaru,Legacy 2016,Subaru,Outback 2016,Subaru,WRX 2016,Tesla,Model S 2016,Tesla,Model X 2016,Toyota,4Runner 2016,Toyota,Avalon 2016,Toyota,Avalon Hybrid 2016,Toyota,Camry 2016,Toyota,Camry Hybrid 2016,Toyota,Corolla 2016,Toyota,Highlander 2016,Toyota,Highlander Hybrid 2016,Toyota,Land 2016,Toyota,Mirai 2016,Toyota,Prius 2016,Toyota,Prius c 2016,Toyota,Prius v 2016,Toyota,RAV4 2016,Toyota,RAV4 Hybrid 2016,Toyota,Sequoia 2016,Toyota,Sienna 2016,Toyota,Tacoma 2016,Toyota,Tundra 2016,Toyota,Yaris 2016,Volkswagen,Beetle 2016,Volkswagen,Beetle Convertible 2016,Volkswagen,CC 2016,Volkswagen,e-Golf 2016,Volkswagen,Eos 2016,Volkswagen,Golf 2016,Volkswagen,Golf GTI 2016,Volkswagen,Golf SportWagen 2016,Volkswagen,Jetta 2016,Volkswagen,Jetta Hybrid 2016,Volkswagen,Passat 2016,Volkswagen,Tiguan 2016,Volkswagen,Touareg 2016,Volvo,S60 2016,Volvo,S80 2016,Volvo,V60 2016,Volvo,V60 Cross Country 2016,Volvo,XC60 2016,Volvo,XC70 2016,Volvo,XC90 2016,Volvo,XC90 T8 Plug-in 2017,Acura,ILX 2017,Acura,MDX 2017,Acura,NSX 2017,Acura,RDX 2017,Acura,RLX 2017,Acura,TLX 2017,Alfa Romeo,4C 2017,Alfa Romeo,Giulia 2017,Aston Martin,DB11 2017,Aston Martin,Rapide S 2017,Aston Martin,V12 Vantage S 2017,Aston Martin,Vanquish 2017,Audi,A3 2017,Audi,A3 Sportback e-tron 2017,Audi,A4 2017,Audi,A5 2017,Audi,A6 2017,Audi,A7 2017,Audi,A8 2017,Audi,allroad 2017,Audi,Q3 2017,Audi,Q5 2017,Audi,Q7 2017,Audi,R8 2017,Audi,RS 2017,Audi,S3 2017,Audi,S5 2017,Audi,S6 2017,Audi,S7 2017,Audi,S8 2017,Audi,SQ5 2017,Audi,TT 2017,Audi,TTS 2017,Bentley,Bentayga 2017,Bentley,Continental GT 2017,Bentley,Continental GT Speed 2017,Bentley,Continental Supersports 2017,Bentley,Flying Spur 2017,Bentley,Mulsanne 2017,BMW,2 Series 2017,BMW,3 Series 2017,BMW,4 Series 2017,BMW,5 Series 2017,BMW,5 Series Gran Turismo 2017,BMW,6 Series 2017,BMW,7 Series 2017,BMW,ALPINA B6 Gran Coupe 2017,BMW,ALPINA B7 2017,BMW,i3 2017,BMW,i8 2017,BMW,M2 2017,BMW,M3 2017,BMW,M4 2017,BMW,M6 2017,BMW,M6 Gran Coupe 2017,BMW,X1 2017,BMW,X3 2017,BMW,X4 2017,BMW,X5 2017,BMW,X6 2017,Buick,Cascada 2017,Buick,Enclave 2017,Buick,Encore 2017,Buick,Envision 2017,Buick,LaCrosse 2017,Buick,Regal 2017,Buick,Verano 2017,Cadillac,ATS 2017,Cadillac,ATS Coupe 2017,Cadillac,ATS-V 2017,Cadillac,ATS-V Coupe 2017,Cadillac,CT6 2017,Cadillac,CTS 2017,Cadillac,CTS-V 2017,Cadillac,Escalade 2017,Cadillac,Escalade ESV 2017,Cadillac,XT5 2017,Cadillac,XTS 2017,Chevrolet,Bolt 2017,Chevrolet,Camaro 2017,Chevrolet,Colorado 2017,Chevrolet,Corvette 2017,Chevrolet,Cruze 2017,Chevrolet,Equinox 2017,Chevrolet,Express 2017,Chevrolet,Express Cargo 2017,Chevrolet,Express LS 3500 2017,Chevrolet,Express LT 3500 2017,Chevrolet,Impala 2017,Chevrolet,Malibu 2017,Chevrolet,Malibu Hybrid 2017,Chevrolet,Silverado 1500 2017,Chevrolet,Silverado 2500HD 2017,Chevrolet,Silverado 3500HD 2017,Chevrolet,Spark 2017,Chevrolet,SS 2017,Chevrolet,Suburban 2017,Chevrolet,Tahoe 2017,Chevrolet,Traverse 2017,Chevrolet,Trax 2017,Chevrolet,Volt 2017,Chrysler,200 2017,Chrysler,300 2017,Chrysler,Pacifica 2017,Dodge,Challenger 2017,Dodge,Charger 2017,Dodge,Durango 2017,Dodge,Grand Caravan 2017,Dodge,Journey 2017,Dodge,Viper 2017,FIAT,124 Spider 2017,FIAT,500 2017,FIAT,500e 2017,FIAT,500L 2017,FIAT,500X 2017,Ford,C-Max Energi 2017,Ford,C-Max Hybrid 2017,Ford,Edge 2017,Ford,Escape 2017,Ford,Expedition 2017,Ford,Expedition EL 2017,Ford,Explorer 2017,Ford,F-150 2017,Ford,F-250 Super Duty 2017,Ford,F-350 2017,Ford,F-350 Super Duty 2017,Ford,F-450 Super Duty 2017,Ford,Fiesta 2017,Ford,Flex 2017,Ford,Focus 2017,Ford,Fusion 2017,Ford,Fusion Energi 2017,Ford,Fusion Hybrid 2017,Ford,GT 2017,Ford,Shelby GT350 2017,Ford,Taurus 2017,Ford,Transit Connect 2017,Ford,Transit Van 2017,Ford,Transit Wagon 2017,Genesis,G80 2017,Genesis,G90 2017,GMC,Canyon 2017,GMC,Savana Cargo 2017,GMC,Sierra 1500 2017,GMC,Sierra 3500HD 2017,GMC,Terrain 2017,GMC,Yukon 2017,Honda,Accord 2017,Honda,Accord Hybrid 2017,Honda,Civic 2017,Honda,Clarity 2017,Honda,CR-V 2017,Honda,Fit 2017,Honda,HR-V 2017,Honda,Odyssey 2017,Honda,Pilot 2017,Honda,Ridgel 2017,Honda,Ridgeline 2017,Hyundai,Accent 2017,Hyundai,Azera 2017,Hyundai,Elantra 2017,Hyundai,Elantra GT 2017,Hyundai,Ioniq 2017,Hyundai,Santa Fe 2017,Hyundai,Santa Fe Sport 2017,Hyundai,Sonata 2017,Hyundai,Sonata Hybrid 2017,Hyundai,Tucson 2017,Hyundai,Veloster 2017,Infiniti,Q50 2017,Infiniti,Q60 Coupe 2017,Infiniti,Q70 2017,Infiniti,QX30 2017,Infiniti,QX50 2017,Infiniti,QX60 2017,Infiniti,QX70 2017,Infiniti,QX80 2017,Jaguar,F-PACE 2017,Jaguar,F-TYPE 2017,Jaguar,XE 2017,Jaguar,XF 2017,Jaguar,XJ 2017,Jeep,Cherokee 2017,Jeep,Compass 2017,Jeep,Grand Cherokee 2017,Jeep,Patriot 2017,Jeep,Renegade 2017,Jeep,Wrangler 2017,Kia,Cadenza 2017,Kia,Forte 2017,Kia,K900 2017,Kia,Niro 2017,Kia,Optima 2017,Kia,Optima Hybrid 2017,Kia,Rio 2017,Kia,Sedona 2017,Kia,Sorento 2017,Kia,Soul 2017,Kia,Soul EV 2017,Kia,Sportage 2017,Lamborghini,Aventador 2017,Lamborghini,Huracan 2017,Land Rover,Discovery 2017,Land Rover,Discovery Sport 2017,Land Rover,Range Rover 2017,Land Rover,Range Rover Evoque 2017,Land Rover,Range Rover Sport 2017,Lexus,CT 200h 2017,Lexus,ES 300h 2017,Lexus,ES 350 2017,Lexus,GS 200t 2017,Lexus,GS 350 2017,Lexus,GS 450h 2017,Lexus,GS F 2017,Lexus,GX 460 2017,Lexus,IS 200t 2017,Lexus,IS 300 2017,Lexus,IS 350 2017,Lexus,LS 460 2017,Lexus,LX 570 2017,Lexus,NX 200t 2017,Lexus,NX 300h 2017,Lexus,RC 200t 2017,Lexus,RC 300 2017,Lexus,RC 350 2017,Lexus,RC F 2017,Lexus,RX 350 2017,Lexus,RX 450h 2017,Lincoln,Continental 2017,Lincoln,MKC 2017,Lincoln,MKT 2017,Lincoln,MKX 2017,Lincoln,MKZ 2017,Lincoln,Navigator 2017,Lincoln,Navigator L 2017,Lotus,Evora 2017,Maserati,Ghibli 2017,Maserati,Ghibli S Q4 2017,Maserati,GranTurismo 2017,Maserati,Levante 2017,Maserati,Quattroporte 2017,Mazda,3 2017,Mazda,6 2017,Mazda,CX-3 2017,Mazda,CX-9 2017,Mazda,MX-5 Miata 2017,McLaren,570GT 2017,McLaren,570S 2017,Mercedes-Benz,B-Class 2017,Mercedes-Benz,C-Class 2017,Mercedes-Benz,CLA-Class 2017,Mercedes-Benz,CLS-Class 2017,Mercedes-Benz,E-Class 2017,Mercedes-Benz,G-Class 2017,Mercedes-Benz,GLA-Class 2017,Mercedes-Benz,GLC-Class 2017,Mercedes-Benz,GLC-Class Coupe 2017,Mercedes-Benz,GLE-Class 2017,Mercedes-Benz,GLE-Class Coupe 2017,Mercedes-Benz,GLS-Class 2017,Mercedes-Benz,Metris 2017,Mercedes-Benz,S-Class 2017,Mercedes-Benz,S550 2017,Mercedes-Benz,S600 2017,Mercedes-Benz,SL-Class 2017,Mercedes-Benz,SLC-Class 2017,MINI,Clubman 2017,MINI,Convertible 2017,MINI,Countryman 2017,MINI,Hardtop 2017,Mitsubishi,i-MiEV 2017,Mitsubishi,Lancer 2017,Mitsubishi,Mirage 2017,Mitsubishi,Mirage G4 2017,Mitsubishi,Outlander 2017,Mitsubishi,Outlander Sport 2017,Nissan,Altima 2017,Nissan,Armada 2017,Nissan,Frontier 2017,Nissan,GT-R 2017,Nissan,Juke 2017,Nissan,Leaf 2017,Nissan,Maxima 2017,Nissan,Murano 2017,Nissan,NV Cargo 2017,Nissan,NV Passenger 2017,Nissan,NV200 2017,Nissan,Pathfinder 2017,Nissan,Rogue 2017,Nissan,Sentra 2017,Nissan,Titan 2017,Nissan,Titan XD 2017,Nissan,Versa 2017,Nissan,Versa Note 2017,Porsche,718 2017,Porsche,911 2017,Porsche,Cayenne 2017,Porsche,Cayenne S 2017,Porsche,Macan 2017,Porsche,Panamera 2017,Ram,1500 2017,Ram,2500 2017,Ram,3500 2017,Ram,Promaster Cargo Van 2017,Ram,Promaster City 2017,Ram,Promaster Window Van 2017,Rolls-Royce,Dawn 2017,Rolls-Royce,Ghost Series II 2017,Rolls-Royce,Phantom 2017,Rolls-Royce,Wraith 2017,smart,fortwo 2017,Subaru,BRZ 2017,Subaru,Crosstrek 2017,Subaru,Forester 2017,Subaru,Impreza 2017,Subaru,Legacy 2017,Subaru,Outback 2017,Subaru,WRX 2017,Tesla,Model S 2017,Tesla,Model X 2017,Toyota,4Runner 2017,Toyota,86 2017,Toyota,Avalon 2017,Toyota,Avalon Hybrid 2017,Toyota,Camry 2017,Toyota,Camry Hybrid 2017,Toyota,Corolla 2017,Toyota,Corolla iM 2017,Toyota,Highlander 2017,Toyota,Highlander Hybrid 2017,Toyota,Land Cruiser 2017,Toyota,Mirai 2017,Toyota,Prius 2017,Toyota,Prius c 2017,Toyota,Prius Prime 2017,Toyota,RAV4 2017,Toyota,RAV4 Hybrid 2017,Toyota,Sequoia 2017,Toyota,Sienna 2017,Toyota,Tacoma 2017,Toyota,Tundra 2017,Toyota,Yaris 2017,Toyota,Yaris iA 2017,Volkswagen,Beetle 2017,Volkswagen,Beetle Convertible 2017,Volkswagen,CC 2017,Volkswagen,Golf 2017,Volkswagen,Golf GTI 2017,Volkswagen,Golf R 2017,Volkswagen,Golf SportWagen 2017,Volkswagen,Jetta 2017,Volkswagen,Passat 2017,Volkswagen,Tiguan 2017,Volkswagen,Touareg 2017,Volvo,S60 2017,Volvo,S60 Cross Country 2017,Volvo,S90 2017,Volvo,V60 2017,Volvo,V60 Cross Country 2017,Volvo,V90 Cross Country 2017,Volvo,XC60 2017,Volvo,XC90 assets/img/fluentform-logo.png000064400000013162147600120010012441 0ustar00PNG  IHDR63T pHYs%%IR$sRGBgAMA aIDATx] Y~B$R¥܂*-BR& VZjGm֚ z+Vj-x%-h#mU0%!P!@䜝~-?3s;^2*^8+89^2'qR8-Oϡee?un[6e&DF՘*]oQDBBBTۭ:|)\$D6,$Q+eGQUmGj%#8 %quŮX<6br ܂7HHH(QzV6J~.F*OZ׏F~o[]jl ]Y99e8_=֭l7,R] kQ h([vGPK\=|ree4vD1ařV?_̌Kg=EY/˗ʷ,,Dr0B;o]V_Lu]㾟7[ܲYo߉j -%lz uUup4(]jwew̆ jZBvќEC0!X$%!,3ȵ lZ r]{5K];m]89)˽up oSu oz69Z/frxe*(}N;q> q s oq}{:ҕL㬹 $$Ls0ȶk)#e?oFԁiܶmRV}%Z|9ZBq}ioE!?sTm0R8 YK"D%f ?C/#fȄQ ڴQ+ }llS6Oqm\ iqKbA228Ws_݊^{k,?Tl}F{>{ܟDܺ= F󌃀w8`]BbRN-u 3ב z\~< uj?<;<.d^f2 n@y´G¼n2hUV0H6l(0޲ %=alk;]dC_9Sq95[ȭ=GB4G4tf2MU]<5E:qLغr3]{twEAwH(.rȒ)tw |-e dHWKD~Dz|Jp޶O44E=_Dn &rȫ#Z̑7+._,*ȵ"}l1Eq oAxTfow(sD^xFK""x_DxCzv"yDmDe=E~Nd "xyLdȿF,g|v#0" b8R>/Kbo`NmWB=5H~\ 1Wg Cp60# gqq;NpVH9Vs(eL.):="9=x_GgK?%4Nyny=76~$m+ix~s4qH< X0:$8"?s/Wkz6$e"kX8sҪ!wNJ { xʑV{^UjVerH.6%׺=Hc͓8Ȼ`?JB3bb'98|;J'D*" rY8NGBͶ&2;~;#h:Yz [D.Td$n%~Dt;bE 6-'xtpL?[έ{J.D>x:F| ObӴ &n{~UvXLtv8D! iL`Ns"+ ,9 %GA x$uuuS@{CVm#ؿ@3&ZL=`B ߠs%1V(zew4HЖt)ϚkƤ[?Hωv3n4A |ϭ8͸ 56ўiGDeb 3f#u8;j4p0mxUώSFb8` *-A:M\"r7 GU:o@4 "iWd& Z7lg@ï!bV90>)N nt E7]piʚ64(H23DIp'ɓYE:w\Foe&圖? 9y,ڜfiFS=?&2^@ҽI neiFmq+$إp=y1znD 7Kr n6OO⃧Q6?)$mOMuS]XOŲswbYtA'FcWwٟaLgD{b{)#8-eh+FJzF4كo-،0֛M{q48J1BNOcTMu_͕l˰p ?3yL7n#0>fY]0Z@/wcp0>(5dt;C9Oȴl2Mv[k&>Dⳑj pZ4Ґbة#7TuUVNj\}Ʊa +!h|u2ݙ0CKOdTD_7]Zj~#>5ȉ^.jq> {(: 3A2LprFwna"{91X2^YPՖXb.| kf֡|7p^7ߨѿf*w6 4{ 06 XCV>bH`,ٝu}jS櫞[QO<غӄ5$.`05aE' F:NJGR?c̶2 {MtLan[k [هqާw;<ӿ 1E j{Џge0 6b!S0A ;~\+2F9xx!M Cl n 1IndMVS7 Hj^/MݥL0a#ǒw>*:hA7s"4a fHمZy4A G= Lfy-r ̬43 >h~]%k?L[?},KM=ÆNHl q\)YTk{ 9\o[{+Q`z7"AHNqԲg"^M\>(]Y/ߕя^3Ɂ>8+~޾,/A`ň>6S9&2=G'a"$l?/d|s샧K@{55n>RlXG:07G`Cn`O(ѵ#d8'z=% C^W~Sx2AKhF;U=ͮg%@&3nPӒ)8+vlTdCLʘ4M _:[G0Oa]v?>+`a49: ?`XcY`ti;u{޹*_.EH k`j.V[)ejqTzV@>,:{Xh%" :?Vb`e5"Μl>p`9$9`KWC0Ǯ*F}4]c;̸j|zedb/>x49ia ۖev?H'V{݋yfluNcmb,=8~)Ms}|{k|+s A*& g=H73wJ7M`e93 tw=tjE0J&8lOn-EZjCuSdKHrdQ{隄_;O c쩟Msp~]bOHH&a;Ԉ޲;Z͘a 1wwewE1CO)5bbkpz!|BBBI}.1%\Q: +[Ǘlr?( +satlʵ/V[HfzBBM? K!_/^z@[tAZ6/5xJֻǽT>x aMB4F<ÌROaͤꓖ|t>Q͋ P|/ZCB`~Iw_Dvu=iVkhɁ]1YysLq%y[}"O0_ۑ߶ cB"xBB+sK0hS崷%rq_\WNB 4oe7u>_jx߷.k=rܧ!!!@Ys2#hŲfN9Ҭ4R3d궩FDsfl jЙ9^tg{ݪOt s]sifmRGfr5mvNrڦk_=%8Q홃b 23!Ex:r}X*#hsD' VꎠyͧjၪhLX]Pp zii4V&pTS&$L+|]>k1tIENDB`assets/img/support.png000064400000003754147600120010011044 0ustar00PNG  IHDRPPtEXtSoftwareAdobe ImageReadyqe<IDATxML$E_7rp61s"F@㚅&& xxDA=l &n/fc e".Xox5T==S J0tW~B %PN5|DNO VRX,^KuK+m0'AqV+:14unڎ*L1c HK+V\f ' @kcK" -=~~[QxnϨ+a]U2N @\̐*aVzmܺǏeZ\l@),2E.=5@Znք!y (OJ,#a3n;K-K+mB{'$d h(CćuԎ}3NP=FٓP 4<qic) Sʰ Y_N%~8,5ȕ1X-! ?/Ì#Z_$gC4P44)RE1!-%.5ݾ&6#VDCR_-Sy.yC[Sv;V7@1x@im3A9| C5iNʏvqDSx#E8 bN1pHW@$AZ^-$ ͪ6aQTzx3 uk""I.=4yѼ;! !r/Ce-Нˢ KXaK*Is6'-.*js"ĭϧU\02hׇl($n9 ,i; o 9xk2vچT Խ+x(/SkF;AQwd HjzJlm<|pb7ZkOxͲ(z2 ZQLm_N}gsEfY uD]Qg >E+nՋ<`-(<ZHPWԙ[#@&+4>Ŵu 0Njz|i?  2@">'LyGCx\8 Eiʣ wAgDsVhrv@'me$1bΠ\<s!d3!0Y8ihŅ3woDfd4-Bt!<- aɂL$qfVpB -8#4TV H1q,< WsP#AD1H &11I_jX  )}E|CK K[Pqx1mHoB\{DWKP"v﬽&rE l# d+ꌺKRh_oKZs*ˬt[=T-ϨU-U: ϴB6zeuaVYY#ux.,TLPۙxze:)bt)Eٝŏ(iRT86fvw~}.t[|hs:$IyչB{!Z_{}OPALYVdy P++~3Y\:6 ?D :cG`yСBk1Y.M1@M}1E9~ܔl44e4qޤ)Yg.lucLq訑fE50ӉiJ+wϿV8^MRi3mUF~: H4vqNG&D0IPB %PB)/, F ƟIENDB`assets/img/fluentsmtp.svg000064400000003163147600120010011536 0ustar00assets/img/help.svg000064400002053462147600120010010276 0ustar00 assets/img/video-img.jpg000064400000402304147600120010011176 0ustar00JFIFHHCC }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?>k$_ևu*5_I\xOpԒiE4\cO\mOw'\inIãgԟʰo+_3^y!8еK\a&Ժ]?Q޹*4ӿ27`OjVmAHֺ=9R\`Jsi'k-ҹmN.7Q{W'g'2ƚͿbVTUߠ:+sNۭv=o$O5Y$o.)HqW-I'tfn3\YɤܒfY%$MٻcIsɧk5{ sc9+Iu,+HYr~_QWKqmΡÌRk~bW*BIfIh-&wu'w^c\wivl$E'rT^7½ 9Xыi2ӭudLaaGAE.!'U|mw^q/RsHY+JZ(R>n~ֳyǘNFxwN{ʘZЩKi>Y_M?wT 4SNN˥Ϣ|3Bk}oP4:l>j`I"'ʞ$bBa/-eqXeO5^ZP&vSyy>/*Գ_#)-W]Qi:|ޟ!#oVx>?zohvtk]48W,C.j3 'qWmwnJZha$~`x Tn-;1dz5>z❼ D~`(fxUVj#X-oo|G|'ڜv^$bӍ!["X6Df\6JF.mF.0j8iF%W|I~408 Ę:(֖&**T燫R3 dyPq?k{1G>{e&$%qd3whAkΩ&Zolsh+Rq{t _]'yUnZȖ'&'[t(Q:[ZZ]u/0kM+kގC+ulC{5u? lP >fe&(r7v+ KZZI]ߪ☿Wi'fkmAsԛ]@@'jvNM~Mbt< ͜׊W+-}GqY׷+RvQWbrUݿ+ r+&մ7PIQEqVoeoՔ!8YMXLy?c NK6lsߡqwNGҹ'QJ˱ڂN31ןNJ˝SM:jjA:WJrKy}|k.gū;)| ˫RYKm)x2B9vXREBR&r!)){9pߗ]tQO-_̷[rq8+ Sz_|u:m>^! J,xФ׫*~ΜWQɥ=O煇E_'?Q_ϑ;RI;8 ^0uRw Œ%Ձ %&o1wM>]+mwgnq֫uz? \sȻmӍ˳t\wʣ.ߐӽqԚN[v%QI$W x\wz=W ޖN[%S^t]`oF4(ƹJ.{^i rH iqJwW@sJI'iI6]>E엙t=Ͷ}=0ɽ6ijs}:,=O\v߿aOָIkSItt(\svKfֲQx'R63 G"J.'hb0X.q g*êRTc9T)NNg%6JnÊIJ涯ɻ^ۂ Oּʮz} z5=5u||rYy怜i7qq597{OYYhZ},Yx.Q42Ki^i^tBiFb\Wb&GRKiʤa%%?'%ʳRj:/NN"?leWz&P:g٦##?g8#9V%+woK%v^^>̣(:%eJ|QO[gw0YYwwS%@Ie "IcEQԐ50VR"F1i)z6K}|ƍ xzN=I˖۲WgV_z:mf(^&dY%уF̬ /ʄJvvm)'ViBR^w9s,0،3VcaÒ)Y>YN׽))WbVs=ˑ<~>lҖ5sӼiQkREHIylI$OcX~S7 ?OSzJvݵm>f/6옎^M܁QI #$7@30 F.ZZ?=)ei<~ĠQrKj;{[o?3rm/;_ /O?];hM~l F^Wo*mO8L`c^.QQOVuGFZ!)<ăG_s=z秥)ٯ cxNnt9:kR; J$z[[V3=ޚNu`U1g%;;+_/S{?7k߮="w`d'U_p@ 4'Ni]T^3z0SW^h}].菫^ZE/S\iV+|lH fE6YeSORTi|ø\*yOРe*C~ڵyNi=${?_\]_?ys ^_I▞Cc9yku=ݺ ;n<}=y\;и~vzHgQ/wwݩKt\*$N/W7~i.kWiwb__qͶ~:^v%B3`s 8ZUSI>XFR"N\MTNV6}VzGe#Ʒ.cQ;NmCm54mi]I 4I>}8<%?Ĭ7Ulpt1Y[MCug1UG))F, FGag*J};jv^|~?ࣿ,4ߴGVGuTuig|N1Vi7յ&Pk5}6p<8}j|EgX\˦p6TUQR抛4~*JqmR[/o  W׿j}7B<'_'nj]EuOxv#M}-:sviQ(H魂CXp*eNc Ӟ&.qU ʤTe̿(x/iiJiÕݵ,3޿fT+NZH34SWRWS7Ige2Wm؝>)&:䛼?SH=I sTwӷZrk*1vvM9ϟqs;|&3E@2@&.U,8z?*s_s!Gqכ?\KxksvZ#0份o/+Sev\-d2sXUj]NZ]{l6@uYUմUDJ ><+u[W6ջirwXz.ru%;۽JwHb6(Sizw+J:PvVQo58 )Bi,U0u1.DnH0鴷JW=}~_!Z5%M}oۧa<qJ^[Ȓ 2<2C#GLEpZJRdx(m}UKFJ5hեVNtjЩ]JwIki+ijPU~gj5\SvUk2O뱩iq y'H ?>˽sba.ݍ+t~_?j"w,x_zy[xg Of2Ƃ`s6VOx^Λ'42J:X~X)rݧ^]+]?nGno|T?g/'~~7V=Wş5{j8mX"2:~-Ķq٨d%k}",w¾8')gٶ # a%2Wv14a)Ӌ|M3$˱,]iiFxww\׳v_-zs_' ?^=/ >ƑS׼IcZVB xY" KJ/A/xG晾aO-ʲ&<0Ut\>VYƝ$eeNNn((ζdNJ]/#ٳ u>"jɼcLuzW!}w r3UuȬEZ Z#&aWNkX|JTUJYbgR)AoGS]lLNOٷosK ,~057征uGυ$~ί W՘Wӏ|5pɸ=ni_C2eS[}g=E5S/; hoc>@x鳉+Ǻ59JK8n.R+m-,3LL_n룶$LO%CGG-𗀬5ax4{QgfF_ϧ_EsIUyqy.osCxe}Dx EۇĒ|Pt%Ѵ'RsCY4|nn?&$?i_K6? )_gś8)`U7~_akUש/im"mӳ{{gq>D'~7'w]SZk=Eχֲ\tp8'U|C`ic1y Nj^J8ЇԦV/g 9[ҫ';9TKY+rvρw/rO8O~SNuMՂխttۯ#jDdްH>Yiymtvӣȸi+=wZ¤Z6߫5,*3ҹe'gv컽8Wܴ6 Q~5YΈʝ쵶xvz\sv]/Pm9u. N6&o+ ~OT5t\2Frn)ᗸ \-e9Uy)Vx̹u[U(8Qk^=M鴝Jn1$צJٗzWPd;dg8: FM8}nQOaFIAյ 4%o.iGK!Y嶨Qϯ|rWX]׶m+uzEu0멁J* /}8/4eX~48ʾC¹;7N5a]a8IUNjhk?IsCѼ;gg@']q4Z7@hG̑2ɹH[F'X̽]'Ec#kV6[)~ӿl Fsy_Tp'J3ZT]5ewe>WYjx؃yFվ[ykMҫ="Py!^EZyFԄ ¢~Z[MZ>E,d3pӊ;b2Twi-"+vj?7k >#L?%>n|E_D nbk.6]E&~򽖚?bȼMT*ppt ʱҒQT12rӴWeӄg04@AX#"3T}H5J +iQT~IEq4j2?jNݵ%tҶ6Z5k,̖TK^I.*5 ubT.0CK/üҞ'y+(aa|Elr'<:\Μr%/ek?$|Lmi,a9JJUUF$؎H`]e(fFp>KZ˿>򻎖=' KW2|ܺ~uV^}Ȯ.Y}C^EI^NҺ׮+MwԕOzQwtVz}kOxw}w!mrսӘ2BBxm]&ב߇raדS6z/%cso\> +jwʓ:M3FgVd LlWʰ剗ZjM)mt]NsW0gY8O*Ug*0UT"ܶGZg_^Z ^{H-w~񷊾TYik6W)o5um{O뺶aykY^[cy$ m/H ϳh9v}rKY.ClLf ee2Q\JxZXYԟ,?U2ެT[vF|8FNvA*XQjz7~ҤN;<-+{uRŒxAմWZn_Qoyyci79 pvu,[$Q̨d:֥O[ VVEIF]Lچ+0 PiJp-!.[wM[z~ϟ~uMߊ ^ׇfw %QMe7:f >>>! o_]"yfx,x< !sy fySiXJXjU2 ^*£L,N-8c(ŷ+]CS0NJЃ-$8-7ϥ*hF_&+ _ď/gF+z>#ct۝⏈-n"㷛ֶo Cx<8(cqjx|vgɞq}Dp)Fx,5< }:SzpQrʥXBu]j7.Oս+^h,CnI,A,N{rz=О})ƜRkT4vW|tnwu&앬ݝ[|m7|qF3,?hd0F"ME]4%.[^Ҍ xQk^<⎕[w+?#x|ohz&{Ag– MSL񦏡hԛGZ\x3{cܪ0L|M8tĵ5q2p%:i>U|FuhFTTܤi=mrj/ܞ@U2>z^1bbG>:m޿*Uڕ+ZxSQ&SkHX??>9 dϟNֿcY;`թoe5H@GiVwPG|F|[Zċ6nX%w Tg"`bifQ!' e8BT6^nuR\Lƴ*T+ʼm &>ZUՏ2m/; #|eqZzͥȋwzS׎˸EyN7%ޫ=8Eȧ6Mר1A^%FS}K[{>\)-wJ[ 9ys^ѧٯscO?l<K}"'I$Ӽ3[Gu^eI$2K^kl2x,:)MSw)kmɣ|]Npћۍ[քyaeq /`pw s⫮PJ3a/4/151?弽 N%i@H^ynn?0|wijOpOb6N ާN׹:idXxWV1s3sCN"Ki?3l: B%(8)IqVV՝-ڔVۤyh|hdAjiT qT+EIZs̴zt?>ESz4aEnsp7imOI}Z"d`{^_`'ڱM O}Ě"q4ZjOڱ e]0u7cq8Ūiז Dlo҇u%:t(sE.X)B}RRն<JI<7⿈ԴMv:mD~Trz^}UM(ɦQZlu_$39}ZXl)W}9pkE$Nq+$+<q` ޛj$)s'eG iB.IQNJUQk48C>$4{ZF˼aJmBAH$g}Qnޮ3+a{{qfR1nkͨJ UV\ jͼTVox8#Em 15uPW5J'n\_3ZXJ>KX:qVsŭusf)yZTmjE\ !T`^G7-{\5<<~ֿrIvסޓ})_x~?)S_峒fXN:QF,gSCB'HzYv2Yv.*#Sٽc'd׽}<,\_qw~8?j>"u+{FR K5'M^Y9p*R8`q/emӱ¿t*wG>_?ev(xN`xm+6_K{ix1_isIms*K⯪FlEFI%/҅kĤhfRƺiӜ.Fn)ڦ߯zU-ow}߉wz"_ '65߉ >!AO P&C-GJrjuyU,sxϪ5N*>,+/k -Ok;ʤ%Zz?(|1w5? ĶzޗK/x>u e"|)~?X||\6_ʅ?SxO :qՕ2}<"u*GNw6N_R@d??{ៅ~x2o[e2:;Onk'I^eٻKDi-E^:?_<ׇd/x_7#c6IɨעPT [VPJ$ޅ<Ε8oe*|/'+;Z̻n~_N؇߳ok_[\xb-;>ai<'5Q{kq\x#$Xe<#ǿx-,U`*a*kVNPkABviGw)a0Vr--#kU>|RLi5S߮[ixZ^Zh-Z7v3i~-buSguak^8}1X:K'✢fNrU*(NN3F'O,+Ƭa 'eIVWi6m_Fվe6tM h[➩$Rh^[o#ZJ4&5վJIoB4/ 2 RqżS׽C/RuW4!%J7\Y< f7f]K(࢟P_RGV~1ao |?}Ms?xL5OvRP5mw^oZ.NN4 <(<,? \fkis\ƥ:TP壇iB,,ƫW DĜFgq[/3_9ˡWYMJcAa5aJ3U?y*Ÿn?KQJ*I6=Owg;_?$Ծ:|r%j;~xÞ+# Gž ?4xOnORKȕ,|g]S3G%3MU̱N&/זjx4qOQ|s'9uCJ8{zJS}m?ಟWR&?ǀG8_/.,dϋ`tŶ,]/IѼ?=}*k{=FTo'&_V3gSեʅ:T'V0ZBug:ؚUq8\f)y`rӋj]? l>WNk]22t&=q7!R t9VhH-G[c"W}y—N))=>%'vӵ7b|Q;=˄|3u[*9sa'|5"'N i-$}r.zc1?gg4So,](96kwm&vZx$SEG;$)9rJ{4/P@&"uT& }l}qch磉NNQ]rh;PfZ-!P(C:9>c.G!y( M޽1VżIH 'c@vCf:RcNO~U}uoKi}zO3:MIrjcUơSjcLAkQ4 (Ս+Klgag)$߈ZX\ޞIS/#NףpX ],?;j^ZMF6][ UOV5VK7Q裆UO?jQS$0'b:;aVot[(ԪM?R_31[OURn>[=yߊwc|:z>j;C//]3W|ʗ7VO,q0xU*UӥRN3{lhWUӋZ{dN5p"4}Z}:MW J䳑\ro2 'zL@$ׯjTQI)6-m<><2h|Ĺc0a]C/ե*O1^gFNIZVg9^<7pwW1qicijJѷwf=<ۂpR<gJ-ӍG|..ڪvYP嶗}(Q>?N hBcM{1l%VZcy}k*zʭCnM:}'ZQO\G%e6⹉dIHdGoeseAGq\#+]٨6&g῵)ԅ\=XޅOvNri9ǖ2{'v(կdyߣ<cw!p WE0NRIs ;O_+i{&+j2RW[>G+LCXgQG?Ԫ8iwm^M+Wy$mi^vZʓ[ :~?OO(-FQd8VGu$3ѣqUJ׷GBS;pO~S1W-uqME_}SiTm;o;~v%{E=Ue4ҊPOp$Fߵ%>5>-x|gx>F}RךϦuizu-'NK`?3He9.1411QPʌʤj.)Sװ57{4;FR rJq唝g}&i֜U)n[߯7˶*G'(,55,.gM},:[q'\d] R:M}/ktA)ۤ&*9㣖œ9cnTKϯ~qhwg&IN^w{V_K-qgchՊ-ut5uT08{8\/WףOՓVBP<]'Z7齿+%>c^+ϖKN-&]կ%=d#)i}|E6Kc+yxYQT-^R72ƴ5MOqbXOnE8%ˣRV]mm{_B QZNюb[TE,bN yX1-+4oC9ĞOMgԸY]+編G`d폧3^trZ03Vm~?=D~^zƔyWMlmeI7ʵv!=w{Yo9ΜjEW4ԕqj=6\e~jRJ{;n9I- \nӦ-- \%NJ-^~F[mo$ Oƹ[Rn_z??'rZ5g R1Q*|{[oT,SQ z`zoCҾ+*Nw}ul} }6Vkkz @߻a`T#vQ8-ye wjQ{t۱ ےMuOWo"E$|P3Zi95vzE8+!/ԫ(Լn륎D{/G&ボ?iNdW쒻oKYVѴ[{QҬ#-qxEFYTvHҡTUnX7rgXYFknp^atҍ8ap2i$FjW XxwZz>c ʡcXUWjxR4.^eR{_}?#x}nE Vl6%UH'R4Ij8Z1rԝ{|RQu#8eÒP\ro]Ub)QRqvn\ƶ!l8G$dn7'=9R9mdԢSʷꏁCuy\eo{W[f6IZ6kdfN,c$x\o2b_[]>#'f<XĺZ[r_E)DPo$**ŎU6I /'9;$~ƣ6/<\u{+KUk:樂"Oۡ#+GbL 5E4~N6KE?E˲SJJmm(J=W o7[4FOM7ftMZbg>JwN 2R4L,.`kX<]Zq+*2rczRiʬtU!ԗ$\mu~(n(8X ,#uTv/i;עvg},8uWkv9˺;p-מS=X>{|ino{t{|u=XH+-53]?RI?ҽXxA%FJ1V_$SңBڸ,vWb(ƥ*zpJINi~4E~w6jM [ov^ϳeΔaa5RHxW1Y7ьqъm*nK-ӛܻC~^/aAPQ3aEV\C0d̡Z0XmM{?ϧk*&>WtsN{V{z,yޯ4vweλ3[5мZ͇_ۋ3-x '^n|AynV~ƍ'ntj}ٵK[}.+f~9)wxѩpu(Ts\n&*}CPZ**Og>Wۗ%QGz=;/C,7 #kEԾ%xQO㏍4m\şu7Gޭ]5]?]2It/^K<>aNGp\~6EĹuk*dy_S#K),4,)ӜaT8adXiaZ)N_y'++9eSڟX{iG#  j> \Ŀq/bHWחO֚NJ)Knぼan%\řoGJ5p5r<ڵ9XyK*kҖʫ0MQ-]{I}ފGa֟ l1G7K⿇UO,FYK_#R,4B]k7~_G3j3?4|G?\O g xZڕݥxB.orvj"Qe-yaC⯤߂LV{,6^vy…J # K+RZ8zߵM&0f/*yV-$wvVo3e;k⾭I|qmcSé]zG7^1;fg.tN;k8.&u%VҺ&wlǼUC!5q9th+ԧK.bƒT Ncbr,-?k*:T*7Wڽt=S_SMόwi^x_6?MO񿊼Q[WnVIb֫fH.I??aY4p- qL>j`񸬻 ˨N/cFN R~·{+WOccψQH|GţSE4/ xc k ۋXoNM7gQKQwo{|㗆^&Y_`(_:tq4q}>*uzT1dR9+84Gʼnb0cFp唞2ֽ?SI_7>ke⏇> [jzxOފᴿںRi=PK"~y_}G..+ΰ9 9fJT(|*{T%O N֝i(<+ᴄFkD/*z???uO~$- _k~0ko:^iχ'Oh'ԴVH{k ޙ%ռJw0<.&YQyprL DjGb.1X12ź0ʴ#Q¨T^iq|;m:.C/?ߴRa񾗯3o6zn|>',4V-rm;BM<"<$Kbcpx:0V|O ,\9/k9Pj1^<}wvEt_R/_exŻ/4|;OԄWھs{APi}zLj2 mWlOğIxS9x>:8,!egV3:2x|MVA*4*ά&D08ӧQRvn%c`9?lv^4{|' 1}8k[yRy4]LoKhU<oX{[3,O5(`1CqrөRֳzXxUevW~ֿr?&(SO> a')sZ%> _C\Oj^\^.`4K+q,[?><2.Ys"ot<>ZUhѠn5h|ܼ8*'FU/5Uޛg]#n_|_iƁ}uOG,no_ˋ] 1E 6Q؈B,*gf!vSNpWNuU:Wnj7tfPkB0\A;-:k/4>*hπ 8x;.<)?sxvZԾ(Eˣ'4dt{_(-w5ߋxb>L XŬ2`>e}Z?hJ%(S/Ѯ[N=c+r5̺{ンি@o_W_MxAOq~m#J43ϱUqyd1418$pZuѝ'F)rJ\NTM)8CZJ c}~$pxc:gu/<-7P<))uIcѵ;;of`~oGpN+-eXo2cQFX4ѝzt#>j|ђoJ&~֤giIӳѨ{>ҵh~&u_^^|=W%ĺgMZSMb=:u& kS/q},^#8hd~_n?WJxi`V/fg)J i]،]5暝kɔ vc;<%ӵEkߺ}˱뷐G,NdJ&K#hnIcfѩ95k٥ֽ+hLSBQ唒Mw;>^u%'ųj7r\i-/6u}{"^2oQg ƻFpƛ愱cB.4?1OL ̸w1⌛>+l΍JYøTBT{X^;#N?b + #i&]O6r&+m+Iۋu!Vhgԝ˰7/x]l3ed"xe]+(8U:sT }| *p&*mifԲTC qJp/ԥWVKTY}\&c]2Yb!iH .a~P6q~S[xC?iչ)&?A:/l(]e8вVKƊJJ#ͼEb/'}y\SFa_;m#Ndc 5ygM(*ӌp24*N484%d~u>x%nR/ 86&bx_)oW(biTN7fϞI|6@.?Y$ZjbS`3#-IxǖJ/TF 2e+~f7*W?lie5Gn[-k߬xZ^-WZ՝uʙ/og\r+BA*U} <<LJs%h2oNXyF-R_'%c2)SJXX=Tcn]mQW^tٛvÓkܣ^[^Ztn[OͩFN2R5+zVJ:~QYTn-KmY;tZ|/1C'+;?~ ;Tg|H4¾:ƿe$pY{\mCI3b+H/&ị^(,u~qѳ F/) ζ3!N N#0䳻'5{;V8\քFE6S?/Sb~/oŞ'O_k M úׄ|[xZTt KF}BOMT/4ԤԡԴ? p/>MYS+aU?S0&7참Ն*gJsng9n/+”R(.nY(B.:j?>]_d ͟_?,2~/όtA?>'&[{-Z &/uOO2ߤφ~$b3C. >eF/)YƤ0T[xazjR{d|qTcB"Vy{NqZO]?༿_>-~~gxo⥇ | j߳½7ǖ:zJo׈<x&-JokM3cIUAs')_jQ|Tdƾ3?ᾳ1)Wӵ*Psqj`t\R#ͭeo#?ࡶ\Q7 h>tM}_^Ģi/Ὲzƿ互x`}[Z64'xEc +L%ke&Ku!I+J^”䤙*O:Xipn?j(9w៍~&gOK|?>Z 4_ 4_x[6&⛻?\cic[Y\Cij`x/ q/080q$RX$|a8\,NT^9I;Ǘ]<T#ȚEu|gN|P_vl~>|8^O6 ?1-,}VP$O'$vGkW.qЋ#͡ ? x?p3kʞM7Q[4UjYݴmԃvN*RWq= ?`+' COP|q˽.;Xot+K XEo1[Ye##K!} s>ps ᬟ,![QarGcݹjg8|ڒs*0ote0>0|3B.q_? <5H5_[X\ksXhkj $`p<57*⌫(PYj [q/^},$iRP:^ VTbVyT'Fc.|EӄN[w87Ki?Kςz7$~:|;Mƃ|gij>5߄n|aw EKC}+ zCjq WUd_G M.TN69eWK }wV.8ߪӥ:QU*nQ2NqJn$Gkih^5־!~_FFLujvLIzJYEg̏}$ ~ qF+s5U:Y/VK C ZxhS7Q-,Ԍ78BnToRsm'K^o_? _>^?[5d~>-Nñ1(O?ە^O܄ >!FU<>x}~3?¾eXNI1XիN5.^z1PۗK:μXW*q\OW=[ 37O _aNߴeidִ6"v~}:?~tOwqzx1Wf2KZjU'O Z3Ԇ| .6FiU#hJ\\+uZT[k6wLψ?'% Y6x߆e}CcxsXм|{4^xW5Negrx<_ڿU4sHژ' c4ql4r 'WFUү:rt횞omSXy$gvWt>|_IQWd_o5E7&0-'B4|Z5u/S^ߦ&nyZKo<<C_`,ژ OlN(C,E:n3NiEe8SrSN*ԝoY|2YwBZx[ŧ|,>\bh %TF LIԯuq({w*kR\MΡ2XkxTH keG=o_cmaOy{d3jvRů5efIkix'FM׌tzd35TeI`)Kj$vܞiC /i [^}A?_%w?~3ĨpOR|iTwKx .z-ǘʞԟgH?~}ON}My_NY97O$n9^^kx;5koYkGo{G'q?hه@w8{ .}k6%stUN )TK_[sFMha?es:w}zqRUZ7uxN᫗WRVėO67țy52Ovs瓒h1sJo8$`s`flib(JttSNi%NZjpQiZvi֩8Tٛ_È1ռIz pUrxC3g`1187 fTyv"is0&?~ -+=u<RQGN\dԕ[TW /h?'ּ/᛫ 1i^ɖ:vյakoQml繱բݾ|8F#J*C3PXlv}Wei'wIbkEC FNK BnҜ%8BQZH'V?eo8 m'"~ xw >-x7ZL'}W'nfxþ.f2Qx2 M2ɡl,!o{xXqٕzø<.z`IWX?¤9sI~ Imdӏ~#_Ml~^|6 [-G6oZKTJΉ6-3D>xB9 TºNe?iQu29hJ(<~O7,%c#Vuu4]|e(-Sm&Luz&N*j&dcV￷|?gK~ GY' ':=ޅi?f:fj˲;_mA³ʍ0xK<0GVe^]‘xS΋W7lj+k;8lou}^5kxI&9-#ሯFYBX9sU8b0xU 5Nƍn9&1$U$2VXylS۫q?wuew:nwF|~ox>Bѥ~/4˥&|[װ^$/;DK[Oi}-aGjVjx§N1S )ʧBU^y&m/q-wg'e/wi?Ǻo~*|hּaQ6/|[7/Sլ:zosi:BӵkxgKx^^87?˱uWG0O X(W.NTkBeBtnnJxzIN~5E@|?[|CtOω 5_ӧhx#šCa7FR}2_VwG6b8?գ%^yk51]aUN:0 ?fiլ:sbR]WXw:߰e#[kU}%%~|@ݪ0? _6ŖPN^&-5 JKm-u=F+xK,.8/hXarƍWPNT1TA”W\4潤GV:siko>P(>|[~&o5kWQ\WBg:w+H)obZ!w GLj1j<:u0 o&)ɵk% uYaᄩ/E8'RwTܛZY?টo]G<[g<#_| x,HC& \~m[Gֶ:-KM6/g58ʾ,UiU35^XiP擔SRWM-伮W<geoX ~>h^/~"OS6&/t]3N(J~| xasj2rfK[1^p8VR&SNw(N*un_I4%^ۧ?)s<#x{O AKݦlmncj^!ԜݖF0PJk|7$/e5 tpbW&XʞS.XQ,9iŴv֭*Sj*ii=M߉zɪ/Je{eO='~·7Zdf {>%3^+`hqZ\O-aW664cYG;{ nk^FJʛ^g熣%ֻ֯onZ4.r<Bp+ާFJ1nN!&潝8R绗~f}n &?ba.g ~|w&JhKNyԧ* jTEc!d]R0pg^f4kSNQj0pѣN)*gR\-} ۳ IF#x3/xGS_$m'cƷ˺[n]ռ*-G^MþqYo Ƭ.c6*k*1WJڑz%)%kojK_'3wڧ~Vz^xB?Xkv2I? #~eڵ|E<=ѯK4xx8|sƌyungz&d.VݽN~gs<}~z3?[ꚏu;AYvMdÀ~<?  ,7AjJ.qu7QJS5z;8۳ࡾ4Wi=Oz^>Z-֭qݭ0l``f|O,y6ax_'XGpZ%no{KuPM7>,%Hc7lzul$fܛyZ핼mgۧOKJd:qGsה`=o'߁RvKDճFԾ$ap_+׹:zjW[|%ğ4ymOkwC.CI& გG ^hѢw?;Y~~x{ÊRO<\^&6:Y>QVܟY)r;̓8ot*K]?KG4(8ۀ:UšM}$ֶ>oOʒ{Z6c~q :µqx- O"q 4]r[6cgyYB1`!V#ZM>}4{H5f^<7HHͤ _D>l6{<.uG-==oKFxn>0QsL3c.GRqRI9⒊TOU:Z$(1ϴ>/- u#eKԟYVẘQ? 3l-)Ib~"cT#{&b7)~Hח-[4*}pmuᗍ'Լ-p$\:ʇ"vGE MVar,ڜT`ʓ?wȿh5PY^-IG9 Q{k1|Ўj{ۧO:l>5F ,^ P̊Xd+Xργ_|\\P~j<4q꧃^~ё}.>|Co SFkZQQ9;%/Xx'vZ&/BG'|gO&]SLf+qfo*tJ5=Z-仳im-M^'ы2\q:,J|7 œ2QU?fJONwOWSXle *X іqU*CM zȤDp6X{f :4dtY[^Ҝb՟q.^-oa*jSU9SKM3H'}K i$s;T0oSB[Ÿazsַz;I7'v7?0z8꣌~w8ä2woꖩ:m&"zi\;+vrVmrў8MI$v0w>ҲEmQ'R?mWW $~[zvywπKx{~.kDh=h"IZd;4ƀ6'(ƴ%v\7 G'tg$qaGf殤pSZ2QԕH'e)&J [3.c^=Ǐ3ڹ4KZ:j)I[~+<6&_71ohT ]$cg.߫iw?/ߎ|%-e'cL3];hYDw)+.`sG2Wwӿ u=ko^MR+7wvOMD^>|G]:&8|C=I V3;,w:G#-ɧO})ʮ'O,hfu)4hN<8ҧ̓U$߁^q|O. J\?},$únuqS*G8Wէ*|Ч ? 9ak'-cukKmp:^T5?./.iS-Rs_C&+WU_uH;' ZW_\kK5G83a˱l:{،9A/Fsپk.ɯ&y^7M[OAOu ,lo;GֱB<һmphƖg(Bީoo_A?AJ e9EpU⛵f*T598]wq"Xfj3xKXvH{ $/C ŮIž8vnX|4斴Q^v&<Քs x- ~rv'/:$>5^Iy7<;;h۔Y|#2Ȋ  ¨aeJJuprm]ۖUNmݞv$θblkb:X К&5"֛yO^v-]&FƖXYn!Y.{@V1 kSdd'!Q:iΌ# RUS2^K-q8$Zk uh>/vO`-;˭ U8o3¢9 vB66vڱ} r\^#T$g 掝wٺ<-*M3KD ӞF,nm~zo%m?GZ[dΈٽEڿsv?qG IJNKFk T7+F0=\^J曼4a}mm6-sԪddt ';w}9iOmky.)Xq'=?ϥqԝcFHpd, :y^-oEn?ZRz_$%qԪ^ lֹjM+wC}'qԩkUQoer#&3zzux+Memtӥdޯ@]OL+[-3 1`ܓZw#78F2Qe8Xԥ3}-o$F~M%}kY,Ka$>ͤsj.Y

    Y /M_wST-Ŧ"vI!.4y$ ZyYK<,Ӽ\eHZTF7n#'6<8ʵI,=ha1#Jb՜%ny95 8 OCҼڕNZ뮪NxR-NI׶zпEE;g[.xrj v|ë0bM,wO7?ںԸwk%Ֆy" uǶq;'93kѦv߭"IT@],UP:9J 51%hPZhBH-5= &",=֫R:PZNu*U8ƛz)/F+D|% i>"4?*lQIfoFvQ1Y%w|^ougx'`2j.rtVM;$*\T\TnѱP?FOr#~aO8|/?$xK>|.I.t XxR t H$ڿC|mw$XB-8f}_ex~Yg~W6b3 U N7Wm:m?(߱=|Ծ$|?е x><1u}WFnƫ:Χr#Z/ku o1"пћjXLTBHb*rS5'fy6\9$Ok~KoN{jqZԵ+,md̺X3N0Ìt=+ׅEc1:Ugw(nM=]m>_+O> O]{2d?ٺw4 0!o=MEPN|xX*";.g)rͻnӵ_qa3J\.>]MӄlLiA.wtmỈ!<OLH \S 3W`*$/w+<7KvzAy'(^3,zZ{ݾGF3'wxɯ IY;4Y<\%+E. E/-GWh~ rJj_pEW$~򿮻D $ޏ]?6Pv[2z1'?rNbA8z_!?e%-zkBU%A7ָ'}tm,2~UUt~#{)4sj݄f?Ҽz+2&v}~W"n=N8A˥sF.n*(mm&Θ4rqt-Co 5qO ±ڲHd$f28nx9 ݬ0J~/WF+Rh*VH^'z6DՆ"8ҔND?],tb?漍[u.oA>]+?iZ}3u=^ֵ =+FK WWKLҴu ۙckHuS<]/ ఴ[VSOjeT)NJ+%QRvri>E~S/ kʞ/k>*:i>( 47w^z^׮T1þ,:&77? xfX)3L3Z*Td*5LRWVg}Ll4W5)FSkF_{>>>?~9iIˮ+Zi٫u:k)ЮH,0OcwOzJ/fɯI¦׾NNFPQSQi3&wOzl;MSCH׭΍6Q%AԺ爕Ѣ=ᄞF+6;rߒ<~}w-̚n4%%tЯ⯃( d3)-=+cUȱtt#Ɖg_ Ƥ\*9r-{{\pukencuJ!6m4np/SNR: [jOKzҜ*.hԧ=~(Y^'+>WiyF9'z{rN7[ޖhH$cӁ^95JRI]/le=IA=8[ݫ$)%pt?.ϷeF*A :ts[iPtJn{%$vZ?Њwm'V_r흍fuӲEo,M+|[O&#"\Vv.WVֻ:pzU&wF1JϢJMkx,9=+u1˳lڥ#PDjdmባ2ēzt2\qyr_-vM/-{S Y,4j\$+)υ癀nݎ=?|d\Ҝ'չ4>r"SMEݾi8}3\UJM](˖;_Dw׶*ioྚᢖOȳl+NӫÕhsm- ~՟wiqesq9UF)8G67@`<:_x)<ہ7Sʶ[UQfEςL?3rTSGut{ņe}nY'&VH]ІFVR X0_[B ӍZU)4SikasNX2HF:\U E:乣:s9p2iSe{α;kbr1K;+wzbxĚ=O~%tAѭ&u^OӴ+u/5ˤD>g`p8r.#U 6 J|Mj=F*PԔM=gceNf>_SlN/V4iS\ӕIԔRkЇh~ >|; 4%)֮xh `; >ox5KH/ׁ8 s 8Ì8XQR=y;ʛ{?=m/ d37jcmy2]*;J >ZXJUlfKD[UwJ-F뵼+)J)'օ[nOݘ]эZ1aT^ARzټ!זx_eRO~elbN<r[/j>մM¬xSխť懤kv?i@7^of ga Z<Is%3ISRӎ&\\+եR*'[Tt7[Yoc(/tj?~ >l/k#(6af^4LmwU 6]׵'CÿaK cq#pqZR[+98֌Z\=$b0߃zN+Gޗ}uz';XI |&Xu_~2]Z=[k:g[^^7lfi-ft_ zn=N[?ζKV50XzU6 J'ө:uu)>ʊZ0UqiRzNM]HW-C?ǟC>~&IGƟCq.4/Nk'ec%xZԯ+ocJ J' )b1U4B mm'c{6I++Դ[^,o¾ ͧ]mI9;~TZ? uKYA_ ִ߂':s/,~a Wz۩CCoiaJg/~EßSI⌞ %O:F/Jt*tΆ;q87筗єJKM)YeMh⟗SceVj;omLji~-MO|W.Ljtg\Woh]HlkUilLHBr흮I]̲p"xH`Qkg4#ZG{6:ub#%FoMKY:ֳ]9|^n@>ӆw_tnwdZgH$qN*Jj)P'uc"e:%% vV\Ϟ~W_ӴvᵳYo.%[[D!T^ej,0Vʌaug.ʚEwW>fiX$%WO :֒*PRn1Z-sç<;^-G"Sޔx9]0cowa5[@lGaO^GY7JpyvJ񖩴&Ϩ`q+WpYT)(F5M]8?rw5V1.^+i-X ƍFc)޾cqN u+o}r-Y5*}Z[}QYޕrݬ_sݳmAB7R%14%PK;<5G5h{N>cq䧂bqS0gVN,?= JC] oZvA<68'jB@$1]0VGfiߍ' r:tYVV'n^!{^nӯ<7CЏW:R$3îܐxg("O+y֧s#e)ZF1Z:#Ns ^s8SwepMXAk)4[L|D WÿO:<@,<% Z\א!X8fd.+AxSóv__NN3MWFh?S[4[~H~;gTL^wWF7Z,RjB+>Y;AWЧK߂~% 'KvX5MN"ƈ"*` E[B:|kJ-hq5Gӧw+.~]nݝϩ̾H3 ޖY˳T╯y~2Y}.Wj_?o<)yNx?:մ7YEes{Ѿǜ!5w>Gg>-GCյGk"NM᣹۳ԫ!ʲ *4chJXV鵵;\QN4qTT\g E)CezUhԅH=9_fl_@B!a񆭬Yk-jPe-۞q3 LޥU{^{TYu0_WqvefH|~ `ZXE Iby$*^S䋼O~/_v\ ^Gg/1I833elb8Bb%cxşS.cᮚ:GTXOgR7d6ouM["#g/d~^ |$nv[Em[?Q?m?ꘖ>𝂜~ Эu(Twᇙ.b6~:i^/,cR4]:,ۈ+sj'oMoAld.m¨ܙ#\kᨯ7w~[ߔMFMj~ߗ_Ye<`;/@:z2qQ7IyJUͮ_1Ok?o_q0k-wץO *S\|WwWm bZm;)w_+Q\Ii)]j{bҹ'w.Ɖ-tUVsi=.ViwE7o}9k(ŸwG],/`WtM|+0|(Ŵ1^p0x{JVN t;~'Ϗ~x7'q]?kp./9m{<>ߺxc&hhf%g)ҳc}EX\amAV7~!O Pl/~̺:c:+jq^[ū0~5}3JN'$ڵqnT_bsl„o4hNh*J50y|%Jԫ}b)r~mSQuja*㱓FJjtg_C?WX~!\e[Siiiuzå_zF72,ZI'o8/7ͣľq>5f*2I8J*U+ʭhfm sʵ,E $Nr^&Y3(ѥXx)PbpNEa*Jz<2MLJ ?f/xg_j {]CJ߁h-~+eE$ҦgtլLJ.aOӋt48LN{a(fτf9~' S[V+sNTU2FMO ŽeYF!TeUUcHC-)ԒIO^goj?4>7iwsxKN6z>[5xD4=V7^wlVSqqUO?le؉MUNTy[va4ZjPL)RiG߄Q_4epj]]=~|%~>r5/At YS'\ytQ 꺔VRiwwQ[+O$:D -akpCgyBkqQih:Jw8ZY>nwI]~_7?w vСAE /Im&OH',FԼj-渵ŲY\Ib?O>^%V_ˆRUy5jՂoR#2txkᅋQQ§fI?zS[;ktgG>)5_>OOˢk<ңMծt]GU-['<67I~n|Nw~+,2׭7N-ISxeRƍEI<\isRN>Μq|Na:xWSRQS|I5|#H{&Zƚ\x[ö;:j^piЖMҴ;%㸋~$pٽ|FyOa3,mhKR1TXc15(B\V}hSJ7.]*> W6h!5括A Z:vn󭧴6Z;3 12X*J&*+PHBjME'pj8PJI5qVnSF7e[Or֝R1RKi2=?Úĺuj2G]^^qQPJrӮ(Өe u%(F1H:t{zugR^V/(~SE k_Vd?8bd PЬ^HJ=,i=}F<"6qxxpgYeG *WJOzʋ_s u:SlꝪT5muX9/۟P|C> :EGmÞL4 wKiJiWI-QeeFe¬'%L v8 ~,GokmvқJ6]^|bO?Ư<#iZw>0|Fo]Q廃CӵoxO5}gqGs~Vkmm?mK8_x /o^Z,xSa&vvM覣*Qׯ?)?U?f]|T5s}⾁Z—u;MOԼw:ݟ&um8vʾ '?)q^p'6M&VrNw'M(O<ʤ':jo?w $H9' lmP:]U¸8E;=ʯ~Uy~)Y[^_?9i`iFaW$QPv!@bcνEI8NI)5i_&GN-b}ݿkxV{i4*=Y#f 0@w8o.Ug}wFyXF{GR*6̣^ww彵፣R*wqEĉprI;unG ;NT=W#,LiN&$"we,togfZ%xr,㎸[5?uAp`QFJ)75*rW]-t_֓ ]=VtGdz)cZ4"!HH26 GC'N G9$Kȣ{=o+ܟ:*SBl=JSUVtjRq: BqN2RZ>"[Śާ 𹼿QnM4us#v%]| 29>U^)Qqt*4j:ԓZ/~vvVscjΥ\^j՝iի-\V'.ڞ_:)#:Os+v?ˑV  ?(\WԩUsyʶX,5YE'%Exro]NʤRYB.[Fm'($# ־v6ߦ&=xx}¦7X6aѐXAr̹.0FkL=9&ռֽ6?)㈣ž J-L0i^\%l%wnX8mZTo(*``mAӏnnvNmJNM7{7MS+icyFzp?gZ5m<eJ<˖)=3]@9'y8Ls\?YT WZ]EVkˊJP}wBO؇~ ~4P5gz>o՟[Η|s dͣA4b_K73|0*8g,,;< 1XZk.4SpZ#7OC83BfqRi`3, vfI-.V;0$< l"qy/q.Sӊ˳k[8|U8++$ͼ>LIg\?74Y:iJMml?Mث-$| дI-[ľ#3 Xi88nS%PN;C57NL~]D?(~gҕLWYVQW5~x4Zh+?gNk^sv1ii~vaOW[ZY5*e+?lŎ8|:3/K,ZQC Z7*|ܥM+F/2hcx!*Xcxg4pTN+0G9F49І%QnCY)鍧ebs$s\t!Jl0;$m5|k⣊a{*NՓZ?:jUI=z\SGt 0WBFHw9푊#Jlv_0/m_/ծ W`W8 !fU I-cI5Uwe'f**SxGG!knhDe ]]0Fzi1)axo\v2S^OM=ov˕}G/4x,8VQ|]l0G'h0oO?լ6J^)ԛKd;ЌS PjuM&V?F +' 8Op,Ӎol-zv4kԬ䞩ɩl-eE1l,!bQ('|V,=\M-~_ZkJTp崽YY/;~F[Es7vvv*UKzu_G)\~G*;eؗYOZI[XY Ҽr~MswkAsJwI6>֫_%`> h ~8_/~$`|/*}SPIķm]/JRfuVHRKF)fO9>ɱ\A_dX˟׍RI]RaF/7hխ94fNho{'ս: _·G 1;oj`-fχZmğ=ŞNXizUͧ/鷒'[ͳw<U02b;V]_ap4o(1tbےTdӇ-LkwRJH5?|77hxC<m>-7~x{z%-m4*6m3GY2$e9eͳf8ҫUqxUלNw<%j}5-((A'h}-O+vUX]T4d[M{&HHIގQ9W)<:JRW r5C8ZqNt?pӞgBɧMZ1wIEYSU5KGG=֍Y Fŵ]GÖ*#Kmm/elGwcit&V)PcWbftRBv9] IF*4[RY`XpKO1x S fIrNp$iɟ/?,|UQAxZ5񏏣׵HmAh;I:i,D~ϋB㣅&o쬓iI9.dj\)73(E*9N :#ǪUi}%K U$垣þ:  ;x qqx/ƒ 'վBe-]Vi֥?gĖgok-Q\#kTyOq%,d6oؼ;H< s6vm{UMO 6#)ҺW:wu ?Qx xOjOPxOv#ĺAvpKO/ <;elI:4՟<bUG'\8|Ҝ_1<rJvP IiK-ɘR_,jX-GOg/r&0ͥ(uNO: 70}CXbݮmsVN~ [C?RM R]^P?x"b 39UA^E?Qsb*ef߹*[4F.KٕZzW~.zngu;~?,~)~|'7h=~Q/%{i>%u c&-;J<9x%o3x 7qVKɱOuVVU 8WԭM'%-jl=xsElVks.XKxrjM"1Mi6Mǘ8Hwwh+ RՖ.YF$h[<ܮR.9~JjWR}5wo[ֽZ_M׊.h.QUq2⭪ᓊJtDa)M9E5A7([٤[J4O_~tXnZ̵/]v4dxoxShо??SnKQդӆ/&V,5m]ϟKrsJ?̓$]O>{^&O x?Z֗/ӵϺ;.{ar'$o+sl`3uVYV|Jp"8AGק4Gm_;bKt64[%>:}n $(7(h79+n 7nX{IxkO 4뗞ρI!=j6ZSڝP4VhS 0C!~v)-Sz5mWִi{j\G؃|9Bg>^s=7nUw{=<ȧAsJ]];}:tvpgkQ`aY$xT NUq7+Jqr/VO(ӊdEV_ڏB8SP;@k<# m>z9- ojr#_5?>qt>>'<"r9^|a+g|1/md~Ow*Hӱ'澊Q+Z[*-''~hJ)=W^K+^yKϵi3JX3pV, ;Id_3"xaG+R caUf҇jJRo>ˁaÅDkKhF+:Xz3Wy^N7QAJ3qvQg?(Wm!F $P_x^.7Zމa*.@%ɜVS*q npY5ˁWޚjn_}3Xz|F(R\&tM%ET(蕽ڭikJo¿>xCԤeao*Y#TدlRk](|_]dz#&rO=>_>7\S$0Y+be85I4rze #%xJ2ZIWSNREޜQ}mnu{wV/NM f{_MǑPd,?M:bQWRIwo^j ucF_ٛ~egZ\-.P Kַb|Aum[ *;͵'F?1_pup1XZ7/*؇:Xt /UlA.JgEe~F:>qeٞG8VTjӔwO\a&Z1VՖP8py A9pN-5t[9џ,a{lխnx/Ո`s v~<}>Xڧ/_rzF_-9A\:r{s#*V~VIfpm7+?}߲o/ D(Eo+ 겍ľc#(8&<~3roL6UZZV"_f>Hѕֽ/aqg>p>{zٖaeo b3|)$*p~~Yctϡl^ڔ\k Qݱ $aT<.s##3o{48t2,z=?Ɲ*pT#UQS7q|\ț$ܻ81=8h'Vgڔ*G2[Ѧ;hbkFMi)=WP>k˞"Zko_^R2z]$ƹSގo_/z=U瀦$ZwH_ɞ#yO|CҾ|a>>i3Z[< jvHn7DѼxqwsV5<l}xB'_`0TC֭-ycuҡ_5O9{t{QR/kVoW{ϋ'O4_֣6`4xZfY3Q+ѴėG^8<6,w ՞#aey~qNRZ8bkQ֜s5u/UQ/BMJeڷ߷R0!/ 8 do B5(T%VZ/UR%lw5MŧxP0t3\\TjI1RoXmtZY;jI~goc |R?fVg"&kFx// |S~o ɨE>.Mҭ~O ~?t! #5ğ^'Ězmx~Sk`. f{"..=P]CsF"/ !a2<Rpم*KU`q1p UquQEWв(aV3|T/~*׺i>W?)g/Ozo!7(񶁡KĞ'ּCnt}ޟ[t ^K{1EUÂVgd#r^+ e~aTõ,:.9U!z9r^Vma^4RVkD?8d"0VX|0e**>'ۥLJ~ xU7I|W5=" &Vľlw^N$K?{*\Wc/,ܿ(Փo[ʤ0Xi)/iS O^]?o? x!N2jɸb17TBU(y]lϲ_nsKZ_~4^\$7m#ڽG~&Mš֭=kKc\6z.o׈|wx^PZs8cRM{L|kCC,b/, BX~*_F3r^0xU/ԫqm;?_w fhAq~_Mшixh&T/|3zΐS4ۏ!)Üg&ʍ^l=aer'検cS ?sQU&pJƜ*ќjR/iN?vqi ?/?e3\񾃮x+W>6Xהz8<|h4jjԮ+zj6/GkO<[[:>_úunz]36P.0sl98<#1xLfӖa}z54],M7VDҴJmhג9N ^SPyw uM&O=;Dצ,'X,5-Go>7|`߄|?z|5WoM:[)tŞ2!u iRM[&>1*5(|lon+K% ZjWp:`:.j_ (kOnmܻP7_< |Et>Pl-˯_ <}%d^7ɇ.evOM6;C6r2ymG2^?hg?}}--N_(kZ$K$|QӨ<1< x?Щ\-:>];Z*ǯ#z~$I7k']{榭RȻe_OƔq׳3嚔+]mOc7uo6T|;m6QXT0vFҮ/2rBiCFt7-9M:ͼf~q\{0a"ݔT2]ӱIXNgx$dK9kiKY"H61kIJM'-gf FT%BWVB֢ޒRQU;T6/C-xaıcg `9 ʌ i5g I.n{6TkJ,7 :r:+7y[۪ЙJ$Q|_/#98f2~Ww[.eySFzp{><#tդwMu죄PIFMOKGM٧̼s'@Ӝ"|Ohogtݫz*QS5g֩ZW}v{W.?eIj8=JS6B?=C1xhRZͩVn1VIini_㱸{):s)JqG+it<5iτ{?5/̷ɶ. 7e<%b' ۆ2,UVXn<Ӡ䔷^i}x_SQ?Tek*x $k;Zǯs +?XeL^aww@hWWG qlN*|JR%Zm]PC{KQj|;IdR78̡Os~jd,fY7ךm[Tix e{cX2K $OL_wb.yI~GҧNTe)+)kkgBOKOڴ%b>Nv8RdF<3*p|U^3|aX $/ MihZk}/_D FW5hecAt\?kԳRFӕD/~I#!n:$H ;O9\`d`^l!a({ TU#ڝZlTGRq2V[齬z6{%ݨKxD!qLDɆh#F ,$)cOK5gN*yjSwF$}':OFaE*ԣR҄*.[M[xN-ܰla3^H`<\6bH51N4ZZ&{4F{ܛBUj)9bʍ'ppi6ʟn\׆fUG)5&CPrZŽ:RKZ4NI{\7(NڳNk[vG" |w~?\tMo2O4-s[ۆֵˍKQom4gM;IӴ{k8|[ž.~!;QGex|n&e~ 5P?,p<4)B*QAT&UJ2Pr٧J2j:Oy?7~꺥gN~#n1G^"pxJ,inQ[ϙ}Vi;mq?> x? ?;ZƞD6W? XY4:<լ~ Y=[Qxaoů>8 8s 'VA<ep4RR BҔs*p4ӏ4S8!(N4O˒N۱tNco Ox/R^ՐtGY)M[Y|ic^),_Y_J4e9f:cpX|_q+Rmk480RQ״WR#3x_ᯊRGFkSF.ҵ=#XtWIԴx."Hs,Oo/Kg\8I9GӭJe+BM*jUg}j4kIG 6V{vLf~9W|//^~.~n{;]eD.GϺ[k{/ҳ/*xܾ*YeVZm08mFsB^%HQU©Jjϫpz-u):?hυ?4\GxF N~vXgd['m&Zk_ږ67}( '9/fysʰ\p1U+U(tq4c)IN1'OixɎ\tsZxѤkUTRiFi*j˖"&_SOmf#]N=j> y,Ux_^* &o1uqsc x5C<_1Rc?eiB|5ܗn{m5qO<"ѫfXtNYźuW7<Nؿ_ 3uiώ5rT6:/OQng/'1F\eOĮ. UJ*X>jB8IJL>Tڃsi5=7Ysu$ԝx[ާl/ª4N<@Q8u}zǗK-xkFdK!dVql8KvkkT4M7hV;m-mbp8I9*t)Vh9E(W|^{fTo{ٕ>SуrN4UN)|u`撽ܻMx/oCD]_z]!~̿5m'6&^o|?s xG|=5hgB5xM23䘌Yq~[qXuqbjRX nWQ΍6 U:XgkT<}ezyshSGBљKm\$>io>pCqF},BSsVV\Ft𮕝׵¾xa9Eߛ[w x⿌5ψ9-]s#Q%o*]m-;kXa8*C,ɰ|Rj-8ԿuYεO]M:tv;n3+c zpO8׎+(ԲB*RjPx\m6-o?דgcO'ï៏4%kyo椅adn_<9Hk=✺Q9S˳\M8w;4%&NFokK-oZ41S-$,K<) a!5J?g AӎZ季g-~o?~|'co<ۆXnr:_<`TZYz07K4_3Nt%ݝ{?u[]ފj' 3epxǠ?ϭy]ҊϞ-Kn: xy-Z2gՍ+!l*E\d8sr(]MJ_-^ҴyIo]5 Y/|YWͰ6ܞ7)8|sf xSTkgnۿ&MG"@6$ħ,wsj e8FxvOC؜Wemb2G t۱hQQdƭaJNݭsq$NWePW,@$݀I:ǯR:pu%Km-*-5gׯ{&#bcwnKrLJ4*I6䞫Vl{Ugٻ~sZ]3%9S'l`FY9,EZ [۞Z8o_EYGwC;/_0s [`J=/M{ki_UJ:T+u<^q,J3K"-˿l"Bi<*1~T^ J4;rOGoSg6J[>)R ^iz/}e4+KGSe7q,v j #e*Ք1XQ8sJrFQZR&1}/~&5d3=U<5O*q`7,֜oxyϛDt/ |<cU31ҧUl4jZSevIJyyxWϢGi+..6$KrC5$+;mGR[no|10_TSܧ[(CrJV GWfYى J߻CJ8y4Qq_bs V6.xEjInXF% muyckniF}8˱^a=_E/=_-(-\:/]5u~XIjuoEv%tv?eOWK>|+]|[53|+ wn5-;AZ9$53"K]*r5%źU'R}N?}FmnOkBK7{iuV66VKsuywwpmmon4Q#I#*nYN~JiUVJtңJUkTB>iNrcݕΉ/ri+NmͿo?>>"XPU=?Ǿ'2x%u_ 3^*-kH+}&@OCg_]-_Ѓ>6Ls,d489,|>.>, 3^jjKy!^ۧ|k^y4榡 9龫eu__Ko G?b h4h?idlEqV&>M)aGПT;;S*soflnAE_y e qf9WCi p Bj,nw=2wq( 1_2 ]8uڹv:J~9MU:T*FQm?b./=K j͡j? yxGJ}w{-#BחZHw#F?*8C39b<|U5V;!P^ܨ֭qt)}a?.Wľ繯 jүc9uk'b09ҭV(sQ"l??#Gg"$t6Po[a|XJ-GLR9n=u ׅ)&KKn7WĿ Y&}Ԥ5jQfXiCFV(bj֕L(bM;N-T*SQ 5Y?Z{Ew̟=|`g-G-24{LUH[M֮ :B(!MF\}>u\Ü(3Kkץ'YT|'R)%8WEQuj~~;ɲ qYM8sBPjPRM^=Oc♛cIIo'QRPwgv68`lV"J+ b^2MFWzͻי#J,U/K6bZlP,[LFH $D+, yd˜WXsT)I+oJ$ާ_ |a׼Oi(n\xc^5!GR_iU<fFRdg2,s乎# j|:MP^5L(XR4&= /CVq*ӃdnzwO]]諾--MI {fڻI$ke'9M$VIgdI%޷qsf-uZ=Lf-p,TcVC1Quӣ vuԥJ:N2NQiI)n$l&ê/ֆXʝ 8,=Y)jtRiM MEi~VW/bk|u5 kW}+KtDVv6yΛmi19qK;QΩ71Tm>;/,D7ZnTIH>? 0S 2^;19- })rk8o=d\aZ5ztܜդWRJ2J.!upRïvQTtꯢzSo?bts1=Ec)4~`X2J](8<s>tjѮhOR+Pwzk? gTMwĶG<%w_~ϗڼZ?7Z_)$?۝cĞ{n\4x#bRW#&ʮ[:qZXZr,>)QUW40j}Q督Z-A~椒HkyYcy](|`ydR:к22&->K%tckOu?:_O>_4=sImxW|/|Y|S;BaD1x;BdU*ٺsa 8Q*i2i4K7w#*w~AЖ=zdz_'æMRS}mC'(.ȞpPyόr:F2)HzxXYIG 4~0͵ud㽞C3S/5 k.<#dGYL&Ho%szz6.XZRu,iA% *6Ik%}u;xL>- PSԊZTrѭL8WWKVzj#A'_ב4$'<&u#i>]ZV 3vԛ烈yqv}Z۟cE Um[XgKVԷ{3eS qcw1 8׭K*k)9/-ܥ$wxVvOG&mZ[x=;C_*=T6 Hu\HŏG1F_, [INK勊rt,ROrI$b 91F#ZI>l,!ˋ#̬uA(_KQٻVLj|GY\+m 3rK'??OFr> c08(bc$⿏MԌk]?!W]2lhvNymP#k]g>|bv*j>#nv+vuȸHo帜 W!Ij4\+-yvi_K|ׅgÌjUrkJ{y..mykOMbAմN"AEG"Ydh qpJӜۜHum4m}5L_ qSRk9\i]~;4jS[+ZJm$mZ] Erv<^yVhwiQQmY=R]wӊ~]쾯[DApT)GC~_J`ۋ5W7 m+hս|A֒hn+Fnpğ%7۹23~_H(ŸrW{M%k8{4\U8MR/x INz#9鷸W{ʔ$"mn3r]yNҿxsӚ~>xa"F&Xt^|_t[=M*nSQqz>z+ܾܟcђN}x:t"I6Ꭸ ݷ߷[+7?2ÜCvO6#3ыn]\`kRnǧxc6q)O<*rdxQr,v|~?6L?Z()wVchJWRWI./m~x x[Z?Al7d-,-{x0uX$|ClD$NJ2Z1>"} 2qkjdxJ9Q%gSV>X%N6a mBo]j\9i.]VId³%Asl(eF}Iy׳jaUqR!V^Z/kVs߸/wtuIU̲9O^*rĹIRM^^_CT沓v{ҹ&qbE~v?_m]C <5$ӿch sͦ{GAO#Ѽako/|? jS`ڎW}nt7Vw0We9^ye_},~3 ^Dቡ_hoJ\.'+|QɭOi)GWQ_Ɵ:!E:Gĸl%Uvi: s Gnj֮{aq&Fx7s<ς2\ bbHg5&ʔ¯iЯUKںrN)k+~qǎGybgoo+ß~kҔUh|=Xݑ%`ĬlVt<9.y8?pЎJF24^lڍZMiiD!pv8F8kphWI4ڷ./Z$ۭnZ1uEgoD_DKnϗIYۯN?MaGY7Wq) ,r+남ń|^G8~ei[?oZ +ܡ)KVYʌS/mu]s58pUKU申eF1,%)`+Մ/uiUO?Dg䷊⦌4t֍[oAg%ͧwԴ7v ¶O|Aɹ }jx<>"QUm8SE Pu)$/xG]Zyan5 /w<: Nz*Δ*FPNQՏaLf? 6$mLQ5S n+{u_A8\ ";ٝxe3jbhPOnm\e iE8{ᧂYd&]5akSTFyRa9 AEɮG/<++:5ȱGb\Gu Yi&:3GUD-8} ڦ'x7qn]K|6XpUVJ-8\lWx*n)|B)Pn#:m޶a&wi;=}[LWşP./j |>Ƶy~eܺaإ]*=fK\۾, ,QA_78{;>scX8ZrՅ*lR~Zk~UjVjrnQӧCy:ɧm]kՈ@S?rTi+sG';9rߕ7+]knL)/v*}[!SK9bNzv6K˲~WݫejVZ%k;Zh>ԴwM,+ gJӯt++-mJ.g;;%+6( doV6^ lFb(!Z.ZcRNjz.qarL^*gN"3|+&WH>Fk¯:o Mp)-mx5{WZ&Ԯ=x\Ac15c^O hOߔjƤd*te*TJSO8&#C Mba}UzdoR5%+rxӖZ?Gu{s|@l%Xx{[$M'@Oy" N{O߸O  rz|;E,M/mickE5v*r\Ey9NWsa{AEh{ *]z曵D>j,O%>?Qo~ӊ֯6Imv^H-RZZ!-˫Vײ]m+NUO#kƵY7tRMIiNe5n^1^UIE$g,۶KgeOF'o+oxF/4OiI>jnay^CemQ&ZI$tTEP 5y*87QI f *ҲJ-kToGtIyMKU23Nj# B.z46I]-N Zi~BD`c/|-wß O!^;/Ҥд}gV(r[z}7Ia RFoׇfIY,3L^M*ְJ,.kKQZTu[S6yWM϶Wݥ7mЋW r6k ԕ**pNrZ0MJ`S\Z[A7+M]: /-~'|0;YYx^%}Đ'٭EiF1FIsȅ[.|ugffr:ٸ.;ZըqQn)|NfxI0Ʌ3|G=Jt2O{+KN:$奎iYO_#=:V[|#ȑ&9n=s_fWZhƝ"74yvkW͢Zշ(E-[* A/Ι:SzjٷXrIq G%+8/nx8|Qret%WzAQ ݩRm'{+ڵ~5q:&}j:A{/R:}: Ӧ Ib6 rnGGK59Q~ڤԜg*N2IE+[#'sj;cc/c0|RN5#&]O⟏6Xme>d1ECD;@Yksl_hޓjG {ۯ6G/~ gШo 8/VZ% woZxZTۻ;MA'l)_ .?Ngݥ/?7=ZҲPJ -9[W٭omOų'?_Kl:NQ\YFtV52>-S5 P(e2J 5+V=@-ƇH@z7@|:ir9B2%TpRYy5%~4kZm[?a5:ς"B\rLFoFJ7:TBIBrj iWGUPT>k <_G1V>C1 ,ܩOВ/T^JծjCsyN-as &QxJ1ƹZr~JoZ|S9.}GZq^_\K,-n-4yR?: i'UG(Znb}9өe1Xv~F׋8&KKa+եJf[^KLN#1$aCY#w5_ >{Hoې=j[O:L sr jzlW.7S7+iB2~{nfG 3,^%O[Rc%U8sSaJx1ss<\J146ur[4 ̶xBp)8K*_㥮ܫDv?~U) U'_ E;JOysҵþG9^ ԴFKk[$ԚlVsIw},Rcr[J45fuWysҢU{'VpNR֮8;WfV K6<'x`@pW~$yk?qH{ew}ӒT';˚NVJy?s\#pA TcA#̣LmJoo٫^}ڟԩV:Q34duC^sGy)rv?Ž}~P7Jcf'yoHŶ*-{}-Aatbx^4yiCir^)%>[.`^&xQ<ܢ }JNTy4I+eOT 0^=?:/u;/ Ԝ"z&WDCbj7oȞYm&O&X uxYdE*ןOaEN"ZU`:qX5Z4~3oo٧4?i|C-+BEo_- et41wW:ׄPe̺39OƙOXج09>eUΕFjQ~zU8,p#jG毢opIݷ _ߧ^+ҝ'ݯOT> Bn['u>+=waNN++0 Dž$״wF?2on2Xx"bҖ i[Ujrx'j} Ü^U%Ĺv]R>vs*J1M8%Z/?vO{MlWiĒ:pHRrTg2AoNS ;̫¤cLVڤ<. y'm1MOKpah.YT_6qqR1cFJJiOA3S} oݪ ]8#WNU!&_Sk]?Zu+F .kӴrjR|ZxsV:ޭ?Z^{>Z隭c01m纂[nkY4$?3J8MZF5ի:y' cw>+v+>0U֮[n57+j+ZI~_%~M<)C%ׇ|Mg (|YmF+xN :r{ l\'q|!6]<\.i8JxLe+W&jJ/GUTIyFTןcq>= ŋm$ٵԿ;?/ݢm#N^p$3AxP tu{Jw?8M5e]}g?/_V񕢶I8ʚ䯍եV.zˣ??(G<u>h#?U}oOfa[-cƒq  7YWѫ5_ O8rγ:04[3R5F"{л6u@I7>]4-,˯kQpHW0ѩJ]N⢝I7Y,Un96jڔIi~"`߱7ۯ7?ƴ.<ڞZѮH^^;5ֳoi ԯ&:]MR_{Quom<5҃*X>Ɔg)FeFbJQF)G)SK1iaZpsG^VF8AGޓVWC]Ǘᆉ;}&{ee}.O]B}~ {wO&8![Upj1abSP%R.h'fyUwNSJuSnv`eKpJJ9FpީQ*:)%*~ ix5:Xao[h <-Vms$-KČt eNJtp:t"p|Rqu${?g9q[!,J/OMO֒g$|^Z% NR.RNU+oE 89zKrNҜJQMX涗h8#vs8JN/ӄZt!&o8ǿj:Ok}՝:aR.Mz%}~KR@y{k/ƮNH'v8<ھ'EJ5W F1?a :q/{|7Oc|Oc?A]k~ҟ'lF}6F2hU7yj|a`{®? V (ս_Aਸ-5%SVtkA9I6OaτƯ[>2|;5sx.{mWZWx30:j1[]gh}3waQu,2s,*0TqRWèBҦ?wReʺo>xZ o qKVS˫:~{9|A [ #0$H.#d {2NMj+{jIJ_3k8o%S0|uN8z5ۍN[_C'{7O?mo7 ?|t{wmKMJE^!/Xj=n+| ȿ o\38\VcvU<^"ź5AWXC^N.eQoLjЦV)֕עkk[$Gd~ߴo#玓ri :&w߉NzVͣϯiw-=Au9>-__&pG#q ~%x5Ȫq55԰W֟ӫnIj>gxL^"(W ԫڵlf3 O.':u+EKJDf%:c2|=Ip4#+XF[u7>~FvU?⦵5|)?<^fuElj?͗cXlSC;[Zr_ݦ j =Gkl6$p# 6ٌfuW'G;KkᶪIw=Vps5WrNS oHmQyXˮi,!;bfFm+"dB|\2˟:ZՍK${jqkЍahF&NN|I߁MmO[c _/;Ur=O iq8>aF{H F{R.ǚE[M~,W=(ҚN? WC<C _:m7K 49<[Br^-k{Z̢W3X:^s]]~g~8X,[r!8P:W*}T{7?5WNjEI۟xtkQ1"崌>Y\ =&\ׇVZ)+J_>CEaUPzrvFmggy7 H2qQ"*?x1J6Ҥ|KaU9RҨ^G} Kj6zKs*?>_>pnO? r\I|Q_q!_y'#z883M8iMYw;l٭OM+Ǿ|sgW<H+?!׆!Q:^iDp۪ !$Ce|~[%'ᬇ*\2b9؊!V3~47[ҔFZyj8+۫$jv{$RHٵ} 9I5ktg`+ 1?Ck/Q!4]B3Xӯmo4뉠m Aeolφ2^S`<RtwHsONrFq%O:Z3%(4I^>yt}5?ҟ\g_|L>/g6u~l|[+ۑ(LO55 te֥b\fyV-s΍yaqQ1t 7<=IٷFRqyNM7)%Dy>_;6 ?m:l~(]}$7'״xBY)a.tcXnt2n/Kuvq[K|3 qK#of'[/i 0ziy}Sm5t|% #OgŜw^ OC$jץ(<~+U1XaN)rԅ珃?8tsWWO ۍWķ>(𾣪æB[6/lJ7j96%:d9N_O-q&.!#<3ATRX*U'N 羧g׸4R?#3_L+M~1C¿H|Iy? oigXEޱ&\ɣ5 _pa߄1_Ug8T3gtWˣF:QxU%Ҳv=L6*UyN)F x[7}^-O%5/ƥuku)S/Vi.ify?X|R0T08ZJ 5*Qy#J82G{o-mD)j2"\a[['?qG2y\T΂Ӛv^nz1Xv{OSca=SӠ,tYn}zr0 W&iN(1}r屢YS%!ts8m6?q~%[^eRƦ޷MN\uꦮk[/<%2X} 4yJM(9%֑WWEJn*QIN_?o6u__ƓO~<'|!ezRx៏eWRgYu 4_Kt &( q2]w8:4 *8lmX_V0"Q18hPRM-,~uF'c(+ 8bSzPmݪ;NUπ߳o ۤ?kxkAk-OǒijkK*B)-\‚"c˸ ڬ c3-ha%%ӓ-9Q_ȸ3xW=qF]qs v?5եJOgKJxSRoOռ]c=߈~1|lԴu[/]` xF+O4m5I~# /&<"$J ݘrzWf'sFi>2:4jtR.II_Ug%JQJoolJv\r@3~nsG-F" [VXbJ!?Hh%i,W 'u9DxG߀csYG vqlR©7)rt`˯6JŪnT?%UVj֑%ҴrŃl ( UyØ˪ sI9\dz$sFGIE&,l^ A|$n?Žľ(ƺ{=#R:ßKBcB:ni=&Km G|:8. `|ѥW0a=2QQVFR{48K8+ߗ]KKO+GF;6>-ӭ4CxO m?O5k+I,1ެ[dG79x}O|J:kSx +NVpVQx8Z4ߴRJ-Yx7]$w?O ?d] eGk">^ïF𧆼m? 4c%͔^h/=3cGn/Spacȳ;xW.+\1嘼F+P[FTS=nYEEBKNR^[_J ;J=jI?m} t)lѴ',u?h?Sh^ԴYelwibVW)|9x}1ձʊ=<0xzbiN8~0o^[iHhO_^_\_*èI|cs"F뗶74 xMgp<0z PRVjQ' W XT2t(幼sԝ*k&R U)'fk~K~W?Iow:e<[_)Ě6/Irmᇈd!h.ۼIOx#ץR, (4EXj?t3 ǞR>f2tpҫUI,RrRqbφ%d"XZh(`]NWZҕ)b(8RM7S7^8JgMK VjNR$&f]o_|/~xv u/t&k3qt <:eęp7FKpU(N: VSe*yn.H7*/vM+o]/?_U?+Ǐ'1~~Uyi77 hݞZj1[ihjor,:u[q^Gygc3sюaORUA^k.in~G~SKO,HԭZ4g;NM/vKcW  |G5?x2_ rZYVwP)N,s%uz#մgg;GEX-|aW_jvi{/~o,LDs!B⚼7/sqy a{2aF}eJ0QIݤLsc5-z٧֬j~h?f/xUִ5OÍ_Y%y/u/,$La)e|GĎ(χ:хll0 T1#INtgMFKyߋkOM^WM|G߳߂oښS->暚oxTouj֡4qi{-6 Iq?83.UłF"ԣ(MIԏM{~d+<oh"y#84N9$)5źk4IKEiՕ5SQQn=KMjQ8!$B7'bn+U{&ֵ&mLJS;};Zm.Y&6U@eecy-y⣎Hɥ)SN.޽+گ>q>2^Kݺt?:?h_~:Χ\~ ]'K؞Y|EA&M}5.ȶy$ ~ ̲kQ|CaOFy:iGިݬWc*Tc5TZҵ8Q rVU*)ɽ,e#w//s6Z_|5f{tk{=jyã "8`@*β Sfx,ƕ5'ҭM0,J_ichTcc:jFJNvvm2 3DϚAO37+HשY60>&Jl^*I^oowDֻJSzurB *siv>8E`3 G8b9+ 㜳q>M2L"iW?Xjь[:n;hcjROg$ImZW|+3dků0WN4'[O^x~ .&*Uq4WPbp(RUXO?5:iթZNy2zOz*׳{,& 45o[ _ Yb[ٙ8i ִM3p%?{Rq aZEc5Q_j.;hҜi]VZg[Xm_& ԢInϊg\LpHT͸qj~yN`TJ1sx}J5 T/uhpdupqج<+B+ Jj(ε*U/g^/k~W6ŸP,~ٿ?>|o|#o?u߆>~nec '5sL;}|/hθ@ + q<S837NfY+.UU^2=8RO RqiٹjyR(5O^9E6!8nɻk|Gk0vxľ &ԵoUkF駕$qFb$#5xzJ0%4iF |Bvj2rZ}]0mTT@D\W9'k^PqA՛9R^4ҭjqRnK.XdeKu;34fxQ5iPj3|?G̯l~@o>[ξ}!#2ѧ*0#x|ڝL~>_X¦:UNY'9ٴ^FA+be)baA&"\VVO427ǿlﮛM/|n5EY{89X ~yiZNL=XWˆqMj8X"I!Tm''9"ʸl0wfَ"U(ƅ%F;Y>[PzP iN)-/3o-ӣxܵ|+}V<,y*~F08t&PьkSu)䓌^m ՝Db29*[69-R뾇?'7|E~~o<?x:64o/]J+o5ݭχ4[]HA+KAku,FuHjiZO&_~ xnoٓუ|6N36Kese͢i]h36vMPڴk9?y>`nvdZCkEfiu:idUeY*ɨ,F!Ԩ)NoW?_Yw eڴ:РWͪ$*E7}F࡚m;|)745ok[K5QX==hwsj?_ 28źF3Qߕlm~o6M[HZJ]2LvH 2%])aa)5y8M_OΪW,RIqjW^}*0GU HurrkթE(r?yyps@78cױY^>'2wIl׺=8hoG\-}FoOR_lSJ ]iuׂه!]?늿ci*qb%Z2}eݧ}Q. vby٘$Ѡ 9*^%Ydbkja"BRc EM KT2osJzz} E},? >_!KKEҼ)kKGI ¶υ-#K&s0A.|mG\AkpEjԯA牫)9ή*x9'&ܥR3ە>{_-.Gw/K~m.:jwMg>%>/X΢jQ/*&QF!>>%J#saN?-/9˖WW(X>Ue+ߙXqel'3 Z/i.Z7:E&$ٽ?ocoN[|oIxr3Lm7:~u啷3iM6g9V|Y}~#?fX8߈("8_+եGV/8?ԯԜ*i4Irk౸l&4%FIJRrjҴn"U]i-K{'Fe'|19~=˜ :xsK/;P]+"w]jiqI_s'V ?Aa% a^K8S(Օ(:jZr`ӷ5wi8J׵եɫ7ߡ>)Q|;ms4Z?C4eurk+;)SRӭcY][&xQyU&kVp%Kb+/e*4J̒m0VǩsVEJ_?T ܿ}/7^iڔ> $|}ռ}$Vr<xgn+'YcslmjJ*4JXi`ީik2̇T U_x6m-3$RH3NIE hkي=ɨXz\cCHxRѭK Iu(juc6Jo/~_]h? !ï*Ӽ}Gzޱc[\߭ܓVjV{oFiD ȸg%I{wF(ƪuNxWdp[O[/+J(I /l&䬺?N'kzX?$uO hm.aw;{ZZEgjq*yb+$Zc^z8l= X'9F5uR9IۣoiUq|ֳJOɷ-r/˥Ke~-Vm6m2k{/^խYMPnf kOoy}Ҏ a^PnU+j}ODwe߿Sj?dx;z7Pڅ͎#|BŦ.7҂D2c nK]70ԨN-m}T]yҖ"qVm8NsJ7<':.>#M:O{]j5rvVq/'uk"; .:uOi(SkM6얻]Ne)i8z$[?P^_>_G5il~|glvF~Аwvv#IK}/byo& TpX LN*4t,ھ6՗p;N,63->k)PTYav5K⟆Nj,Lf-#ƒh:Ά|QYω ++d74m>&`Rd9*L-xrǚQ#WIOC!ͱ8<οsjTTiԡRE4Sj/wcsDr|g]]~97oZT4xZ74M73N|7YCmxng\:דXXiqNjI`k[ ;M /NJFO8 :xj/ xFʛIϐ~2N"5kVױQqW:iTbVwIe%[??\v3_ԃoNyozjUUIEniߖITڭ_ w߁_|8Z$gjU≺ wvlqWz &-m 甬˸ W$gJy o-I>Wi;|]5]O|{ Wׇ 3{տg;_iF='~ ^#muyk=:Lcm>}q^1q 0Y%Qqqjb::U |#: xs_-*YT5m{۵W|Q,?hKuS'CPldUŶP4͹wI'ToxA9*+HsUjW% r(J4)ʌ$j4e(ؼҝYFpԤ:k6IϿ[P` ߀gc}#EZ~=E5u<ε|Km5ukW7_/Xn)xiqbWZ1,=luEP*ƕh'o{<}fҼU8٧$R]?ڟ |Su߄> '/xc_xul}:kz&otF^i௄dy4sl 9o<>fX y?SaW#ԪҌWmExb8J2t`#:J /gMJ+^s$&IӬj>^6ch:ڎI)[]3\$ggteϛ?^}O7U3l<&c?hLhRGeУyGiNrzh׉x)جβʕJEZ4$⣈B0jaț t//ƟFt^" &oYsW4#K\,S(oæK6^G8E~.ƞ%C0Nt11xԕ tFWQO"B-ye',3Ԩ>y_܌d{uϛ$6ɱbRx\N2F0qfOJie>~6ֽ̰SkmC=|⓷fyFRG 8+̫٧QK{'^4CՇITat*I*z=6M%CK?x 'k_ F3Ht_fBS"cyQCƼWBJTcf#E)e;ƚWJFegyn'/q|})Q…ZҜjN}8NKQK[-5ӯG*xvICtg]GHe=FG KTr+n*V\us qTVMvַzmּe&|ucC^gkyU;5JSwivS\<5:s;wij:ᇌ%ۿ]w_FԬmS^w7ncҢ϶I# ,lD΄IV7/1x 駁YbkBqRFP:vVW]x.:3`bqО&*8:'Gތ*Vn*K5 IJk_. o~$xOniR][XL[XYM#ɸB(y'uf5Wp~]K!r6MW*v)rQcBεVҕ9o6һ5h%'/ ƽ G>,~κZ׋nl'xG=f.L:MuKKHYd'iUx W W)̔09ⰵeaxNrI{GiiM f4wp\6YFKPP|sat%7RZn_IIsL =OIltOKm⻱,/!{k+[xnmnm&WXEeb=ѩN5(N5)IrޜkY7̓M]`hcpua8*EփR9tqu?s࿄>5|GӿfoZ_ÏM{Ǟ>$^ҵCI#|V]:]CMԭH>x"5JaT8S2M.+fL朱bO)UzP9NU9/8_ɑˌ2L^ef,څIyY1RS-j'PrĮIU>Wu#W6^]Q6Mܴx*01eoc &R#7ǿwz4N5q=ifH.v_lW0H9 GlGzrsP~tsB]3K˝K.琂,񵔏7׃̱J-J*kKrvo Oߏ[kL),Ē$Ԟs:J.i9k4{Y%oA緢_z..oSXsW+zp76wSnͧw].{$y[s ؞^d5+^N1TmٵKtis mt~[\mF#z<%>56 .*;IF1^[[B>*MwLOJ!ʛIf'b|V?gVpQ~Fu{G<4Z{6}.~ӿ >+㷆~0|4׾'xᖯτ7:gDO4 ~|\FZ]]eաrq6ol 3<9DҞ N0k VUD>I\]¹m+X̻/\F*x$jPU!NUQ%9UbyopF6l7XLml/4]r@WwҲgS*)JOx&ޒo/m{F7MӠa`Kje/$FaN"nRê^ٶo߫>)cN vEL'Oǁ!؆FX$ gWZ2JG9&KYz8:<`Vn_.4n$r؛iH#; {~jqjm/~4߼Nk}1ҡ6qVRzj?ϟ!c᥾xKQK=[ G,Q5T-CMMV}-ȤxSVYa6&Fq.IFt߹84R1ŻB68|G1}GRG۟%)E'ιO>9^tAO Mg˫u +Bk=GNaPg[NKki^?Ü.Gt%V)SsbOɹ;w+~q.& *aaʕtpҩ8S\a7({ܗ?P?eSM>e]YiwvkhxozuÉ >T覝=<2\Cs7lT'Fܣ(ҋ_i%ӽczxN\'{UekZ1aH^˵_Y1˰Vj*\'u>S78F[ I^/vhΨbu92ӭ>WIM|S _ ;͕kW|S-.TgW}% FXEOZA bvYù_qxQWZe^2ejଣGK^Nynwg-7 -}Sۧz희w5KS|1k&g[N-6-n;qom&۶fܴ^#? x4שV)~FORiԊb}"wo%-ς4)lBľ^?$ Oǡ>o/q6'5|KK(|1Y$qn~`&.k˱8wtdWҊ/cWi|]n?Aa nhaPpқVOޒRשWOS~um3Y5Aa^㯇V>_[Mog%yk-2594M6sNeox+'mȩAfT2080vᆜA{ӧVbNL*6'38f 1U89'jq8Uw(M4MM㟋K?#ͪ|Gu-/P<:4 ?7ւq %7hԤ5K-ٯ3SpNVK.,N!RqJf"3ڼ pnML%Rje)ԩZOxlc))Y;rG?5 ~0ĿuMs 4o? 5hǃdз1sJĭk:'MS,.(pP8)Ɣ'\&[Uta(Wua:5FQE}^a9kK Q8.V0*.Y:҇-,KqT\_3iE(*jZ'앮~^ ~z/ k~MgwxGSѼ{ox7FKĞ[TЭSZۏ88 O0jxE:u8Ԟ; /gj^!t߻VNN>{5EV` St.h)YSwJZތ20?<I.Geϒ҃ӵ[EIO>?_{Ű?>+zf7mc=Tlˌ2`F5`xjR mfX }w#9Tc,ќg5R\m&:O14&vhޥ_j圕kjuist6nq)In7 II_YN'2X2i,^O ^TݛrZ8 ԩ5jk/,lgӿ]:y]A2c}ڮsFa\pA^45x$jzp-{: 5,nNbYFȑ*yU)EWnG㦧U$N4i=em&|c 6>7~ "yp}He*uj]r?z=.R:K\T{F:'{oK_3~xUtJ]ROtOz Zkۖ[M>xjzod(]_kK= d qFUF.\ZXj2ZC^t)gVSS~TyY)} f5JBJO[Fv/?mφ Ajm'mݣ|5ӼomFL/ӐUh7Q龫ߩ': Uzoۡ xqQpJPlp;K2I4eM6gWI4W,}C Y0\fCu*% VW'M(QoXn#G)ļD|ml1:o P|񊓊iBs' M Y@ [=o|pf;S߮:QG%$mI5i&NVoGNO?:y׻t_nC)(+8?D'2F/kO jvƉi2麕wiq ˴#煤{ieÇ4K0yᱸ,D#R" Ki8ԃU) )$חQYv3+0q>BI.kɹ/a:~9YxVx6D5a.],-l5M+@V7>cZ_p_918yciW c0)i(ƼhS_g*敿 xwxs83A1bc biPסjZxJX: ;i~v5_xrXO}_N n㸺/M_mj'[9#%mv\`nOB;0dZ%~Th8}@׭Kt~|oh׽oߒG=񆿨Ū_ AsWu4ooh&R=6V6Zkk{gy%Wg\ھ# VYGVuKNTPGju!geL/c"zXlEL5TԍH֤A]'f l?;,~1xgi+>?ּUSO:mZ&[go bpA3<.~ GOQ5R̓ws٥ TR):pQfw}]zT+`QڷD1߈|7}ŤF)=?QI/Y<;+Kn7GP ^gX|CpOj:d%yF"I5VQRth&KNQ.nk_= 8~_/ (|^GSf#|c~ mO EԼ#}V*eL4 ڥq?d͸`y#F*Ibq5aZ[P;F9Q8eMz|R+GIɯӫ4a)Ji'fmwmiI٨KVߥWY~gI>?k%𿁼-3>4$Zs>Q ko|AǪkJ9RNܱBee;M+;Ys8zX&_G CcIx  /5+inmvE)2CA6t.{ II RpcʋHҌեSԧuʤ*qAFJRR{ ix~LO>]FζwS71O5d,r]ʿ:p_NaZ8KI֗v<%7Vu&Ȣjt~>7[_͡Qf-[HelൎЛx?n7y,'\9M֣74q\hd硋]N.#WTpr'mkhkxg4OٳTl}y^x? xEZ.cq9#:ϫPxZxц U5xQJx:*bjUT.y7OG*ڐcV(J46){Kk)7%h]>,o4nI& m=bHx@;;:id0ͻ u  7*H;rw~T'}Z勓ޯoi2jҧZqIpIk(y;#55cD_-?9x$kk ,@'$;Y7%fMN+YڻNEK7R1H;cݗ:zU]UV|ъo{UTu'f's)!'Ӝd+5wk'{e:krzžVͧjQ7є$:;28W_+^IIsβ9 xgRSkPH>h˛i;7FuV$F[al]=I#fdrF[`%ݛjQ9F1ybܚJEx+R6(B~~6{趹ۛ[V86ߨ>nWZE"*.G=J}/~vܷ#A9Z^"sJ-%mbTqi6*m{:;m fY@TQ8_03QN?:ϱ*:4&BoDUo?.Dfչo~~/ r|x7o>YҡLԼa?t;X4=F;G /,v6_^,xNS)Vt2wpT(`9Ԏa:qkR1vQg8_.k  5qJ!RwV(8Ts\?j_BƶZ;Or[_x/R_1_Ö#1Ht>jM$ ->^$+N p'秌aTg,|I{IbJ>d?s7QIӡUy{xƤK;s]W BZ.hc٥xKм7uu }',"ocK+fNSF}=u #]о"8ko23`dTS&VsUܩӨk?xqɪVՂBRV?SKr[޵?"{`5io< i XdiRCodXԻAlaNI_w}.ӹp,6+(9εhSbןZIJu$roKM/xK'-ω/|'2{o mH7PˣI+M*=n:C_[ZܯĞ3O UcNZ,>63++ʝ'تjXiͣSM\=jt*rRfꭧ{Zw91}0WӪui֌eFWjQZKz+,F 6OMmZK݌E=1JrqIӿMw3?hoOt"E-Ḏ?,e~6l]P[8ܙB2[-s.fo.? NזSF>hNh^R%k;+ۭnڟS#/6uϏ<\hwp^:ՌwEڲ:4fVϝ^&76r`9gEC#γ"x oC^6<[h&DheRk99JTd]I[OS2)YqW 23Bg,c 5bTF>]4<I<5Nm.}}-۩^r)X@3һp8cWI5Sqhu8tZ-&]xf8@C3}0ǶKg@wI/-?mn1עk4qGe!>gCMUVz|j$u?q|s>}?nu[`*o m_o?o]zsNI֩9Jmog}|J-u rnC\riiO'-]j_p9"zJ)+JĎFAZڭWZwO]?Cxti%S=U&e$:/jb6& :&Q!pЋF,,J?fҺ]p؊1iӊy[}wza+_![7w[/4u~ |@>xPӉO7׾L:i?/K"w'jXޜpX[l⽺"tv>,W0'SJRiPݰpq{J1ZI5OoyS> a_77{ [㏅~"xo:V|{o^|xOG64(յ_D5b,xu?4ʙl OKS *%.ƞ S:)ʝQ>f젊u=zh|c߃g{;O?>|>u+LK];Nukc$3"i,ڌM$ {u/ żOyi9bWԧBJvQ o'? o |?fZR_h"4mV>g/Xj~ψX/Ncծo&wx#T,V.%Z"h5RS')r>yFJI/zᄊ#C {n|R𮁦|`?0^i+emc>1X h?kL`R֢~:] &NNScodʸ-MRz_{4?n2 +x6)k=΋_ 5/OC+ozS.X^!t5:5쬣&֡1% \% tVJuxBjNVWG. r昙iWF:R8Q{,G&!F Ot!+9M3x[~ v5z{^ͦjiB%[8I,)so&Es6 JJj*s8FJTӺ{y/xg¼u|4`iזꤩFVwQG5(b%J"TFTַVpy{Zg*?0x;Bo_rh I6 1N>kϓs('zqOVS[in1Mt[[Ehmkixke߯+?/{tCHpIO^qW_ֿ6x|n8f=} +I7o_Ŧi]m{tat?^?1v~_qV=ZdA7*qpRJWy5Ѯ*ӌ龶tܦ#\‰"9|9"kΫN6IGD|;!ûԕ9Arfi}mkCl4Ț[{h`ki3uA&@-=w~SFW(ssT~5Z'wӻ?3̯2bXM {*J5:r6i^|WZ=.? gi=xpo_!់>)t/iڷDXj:bC#O6?U*Us NKCfXz^ס^XFO8&%-;~7dlV+J:6;V5yTiwռW6>5xBPlNҥo-4K66r[y?9$+,~%i5*qnU''[غsoXSC55)f9A᪪T]Zm.=[ʟf/ |B~<_xᗄSŴ+Y&gf/K,x)tO TeW.uș=x\ HqUzG_"~?W±] jW"rA,zu4WP:6&ݙ.Z,,żjq C٪2ުtڨ+gFXz֤!ITJ;mwX!_%5ꗋ R$F,yf,x zøkWSN$SN}T7>|OUbOo%mt#Xx?\4x!Ҵ?_ "rMeY'-S]g?hkᯏ>l}~}/~&ҵ? Z&A0֑i+%ܗS{wj[ izex_x}Z|u6UC*N,(ӄZ䢠x7)7'f{,n|cĘ _ aa8?8k*'I}~M\$c+[i]pѐ0QXfFy1FӬ$&[O9FoN^Y5g''ŧ7Kbceo0{nXK4%uvȩWmwkkdg{=\1)} UZǮ_˂ 9tqc?Mֈ{I-u{}뾅fPJk,dLrpz'9G^ZsFF[?<7U?gx?q|moSe/+<X0Wm gWC" é.>s/epV"I{z?/𪟊̸Sje>)]9*u ]9&O $I_➙;zW4K1C?k;4iѾ|=Ǎ4>=g|iVZ)uOj3xj k\ip4? Z'S֖;*q,SJXyA›!Ewm}&4Vv_sWOڧl|qK7] Zu|H+-=Fq/w/kg\+x+up6;O(.X{IYi&(_s )>4~e? ,PggZǃY=R"tGĖi:LJ 鷓hpWyW3|# <,eNq̪x҇:*RRUԖp(mgϳc?9#lDžu3Ǻo\xjPha]mi]hkwisPƗ'$4ӣl1.\Ζ??im;&+-P7tԒ߭Z#'/*.|/x[>'-ƞG1&cKcOi Hj+7YMqkWMRN5~S[ Z/ѽJQ8i&BkywW'rWW(|1Υ>E| ľ! k?H.feħN&Ê!wbԡ__+UTJn*UJ>90+o%v:&;;D5֑mi,KXDi /2R M_۸<>]rƖq**0l\3WJҿ0& 8wtJ<ʤ/w)6i]OCshK?,n^hbP`o4wZn)RFm>g~|ؖ.*oۣd*]lݮ~_㞇Ož//lZ-$7}bz}K#5γ}[\I1M[p8JJ,MBs5,MӪNBOOumOь4тmA\II;-5?'?EǪ4&kXw9#tP0ꏕg2ȆFҝ4GVQI{'E34Tpe$ӵ엚׈?#FGqȓZb8̢6ʃ#4`m:Uhr8ZxBpMF$էeTu8rֿ53\K 85JzVnu{ZS&V7qnIk8m3ۃȠ.Qaþ wc׳(ւԛz, 7N*U))\r>ksMj_n_f54uǓ6СBȺqFtO.9;m_6N*)sPi}]V~p3S9ֽ̡ZU-v4,`kxSQ>c2Zvzj]u5\mY$ I'i?\S?-h!⥶cEWE=vcyꎞN91T𵞞m,2Vc؂ |5]OZc$EMk4㾻}{ᯋ>1NN{ZMՎXŝcwgqs?Ѥ2:>c5ʍ|5l-үNTѫաZSRoiJq3M8u} eغOXb07cwNJ1>GZoC1wG|li@ӼW}?-Zh[Me&irMoq,m øJ<amȧԫ烆_Exښi5f{%ӃUgcN"7,ZSJ;][{y5 _ziSa)ar:v8B1qOf^.Uk*Ue͌Ud9Ubwnvz|E>_Eh}nBνy<9k]iEO:߉5+K KNedH- N?<' ^e[ ل0Ы,3¿`ԡSVBʜcSYJ< ap *ZՔd)_ݧώ^?S_Iꏳ)F}jIIsq,:e inYRG?7Ù7 .e*JN 4}^VjB*U*99+vz.N"aEb,)zF+NmF8$=}ݛz4Nc`~eyPAd}+~2RRM5$j+>_12_̴~}-_#~"|zo> 'umOCDeK3e482X۴`?̳6gg eX'e++Ywn=j6#G$<+H'#Hf2۸q+)_ev{5rmms,\t*ZT.iua';_?!/e։xHZI4Xκ~}46F'7wv^˄ϲ :n"zTʌ[WS,zfw:<;H;K=ցՁ7~=X(YznԆBx'1:WN[_N1OwnnGvm^7O\]o'v/_^(|7Ee?h>*ot]Qa𧈵O.໔٤%Y bf$R7M)6W[_Tɱlq?XOשNHFܵxӷ^mjm}o{emm tւ}NTn-[KdƒԒF3\dD?AT4"X,ʕi7/޹QөtMsz!m R9~N[an/ٓq\U(×IiR3#2OJʜ#Gs5Oɭl_CmZ9;v|('j8d޼\L,qF+ugEU-@v38F4Sֽ욲3:Qbe9]$wNW6h-=VpRR).dX^q5Z2ay8R'--}OI׼\jۻ^f|3B\Xh7|/M;GM7Yon+i3>{xK;{K:cc#[8ʞu ZrV#WXadg(ѦܪAvj_ >2qNmP4]9Ou3``q qN-NMoʬ]#.VdM°88)W58ʕIS嵹&Թo{iM5VMJIǒ^&K8nRm$,7i[xCL3"FXWŚc/Z'I­ItԔ# j`*gc)bXq5RWVj7j4څ8]A&wvakaߟs9bPRuR&yѷ~k[Е95`\`ܛƸ'9B\RmKIVM85[r+_qv|_LޏCAɮF.)V]Dt=moŒFFT ^mMyR'.TF$X <56q]>g%y%ݯ-inPf!Np-FzfV`޼Lֵa}ne۳+F4N럙[=ֽ:vRʱ&~c_}q_7*}u=Zkc#ckoKu=1o+n"HAV٥vv~ߣKسmpa6,Rna ጌwwE=#Oeň>jpӔETJW敓WWggj?~j񇊴ukiY*@_|;k;VANw!ɷ3I/g< _a*XTib?u?i4Lx[-%8EW_jfqy!n_<JT=Jqu*rxb0{N{d~+뤖-MzZv$QN[ov*l,+h#9g?_Kk:cPoQEڨ;v>Ʊ%}2/{!73%Ƕ'撍=/ߢ;1aS%E6G$'՛jz=y]{wMS(̤wM4mSVѫg N!?_N_#cҴvuwtV0*Kۡ+('>N S% z8QRڗu/I'O}/+xܓRle\W0b'RNiEJeʤr}iSذ=k̭$ݽ~bb\i-ZWi]Wl梬5}_EJRVk[ͯ9iҰͶ>^?2% ?yA9PGlvVdҎznrWqr_V/}SVWPAV 2 pͤa tS+妦;'V,[mRcN>f~^ҾcWRߢ~\]`t60=A8+9\Oz{8Zqv1m_}ۦgkt4mѾe7r@ێ!G$ԲW߉kkZ]:te]6rL"` @0pMvpxhTR֑ݲ_35úx Sok[ө7g[m ;tcXд(mo.?V]sR<3=i/KmCxkCt-+T}Jm,ᕧhZFiFZsԛu>ҧQ|oNnITG*֟>*+>z'u^*;v܋+0.nu;D.?{kws+x8҅zRvz/S2zXzomQ;E^j04oxwU}O,.,' 9Ղht*sTQmօe;Y&z_Mt<,S^FM-@|'xGZ|7(oL0 KH#> nq4aZҺTF)USRMjGm<:X(6v~V83#;QʒO5fT|˺jWJ}OK7 FJۤ~qikѿeSBͻkmpp٥%̝/G8jwz]ܐ %ݐI<}FrTS8^8VjTiOǙW =5-_I焟^\'9;=5?+SVCxj/Or]>LOʟNGקqU$|rը߻egѯ>Rq};߰fh%c)s[c=kKubR߭"i1 pN=H$"g = |cSWqM+iY)?b.F'bDs*9eONvH+3.T:nWZM<#BVv76bO3zR/m꿦zrZӴKK|n]׻05BpQe:BK`=Z<-(F9unv=ZY]7{%lbzI$D,ZdF8r$eI8\ݝ5Yne؊Aͩem[oo)^oz>ج*qei9󟩯6Rrwe jk_McU)rdϭrU:W޿/ԨGvS_/{ 6zÏ? iG"%c^'|-WUӭ R067S 7՗8\4Z3<]7R5Beu[ꔲg9S [:kx!fU_qCvVݜmrؖQx2XIH|E*N")xj-'6}3-iSѩJz_[W|__hڶiV˒xʱs9E|j+Y~-V}Mkf&ى,T?A@27m;Jvl+RpwbIfv(ʥ*F9}YJ-~-nñ¹jNK*pGC=<~59}.hh^E}J6=  t]Tyj9GYP!uK D+:;7U@@Ȯ*uTf:qwhZfz_v;dc28*=rhOY5(ֿיvDޟ<[$n|Y>qq~b#̟MYSj-ߵ3u;XDs7`2 jy]Y2#Y$0??Ƽ?i}#ī?Vy\>tk_k_ּO)_vM\7AOzX z~ a?7Xa^SShґ~a ֗32?#)?S%/GZ==+q ?W6'^f~A/Q\Y6dt_kNW5M^uz~vW=Ozl!\2M(l_Gb]C+ E.?$׋?\'ӌ'ܗR{9_53bmX=&~GxG3\o㗧YzJfjH[~cEpV>6e#?'+_Ŀ 75]8} qw=;?_n?μOfE^bꍩ/IuW-oޏK"H*×GA:O_O? 2kō_Т?ʾ{RؿOԷ'Ae__!WiRkWE/Shr_:Z{/GlZǪ!u)ua׹p?UxF+R*8Of?5?~hy_rkGqGf}Es3?nǞ`$_OKe# s"Ÿ M:~#? FC?#Z {_Y^+2^a^O/CDR#assets/img/email.svg000064400000001771147600120010010427 0ustar00 assets/img/fluentform-logo.svg000064400000021170147600120010012452 0ustar00 assets/img/icon_black_small.png000064400000000465147600120010012600 0ustar00PNG  IHDR pHYs  ~IDAT8˭] 0 &a6 a$``(8t il=}i/" I54#^@= xCTyb(+`}sŇ:Jƺ2&Wnfy @OKkޞAqz6nfGnf\MRH]40'˩4Fz3KRvܸ΁@3l8?pJ_.Q͢Q7IENDB`assets/img/copy.svg000064400000001641147600120010010306 0ustar00 assets/img/fluentsmtp-banner.png000064400000303237147600120010012773 0ustar00PNG  IHDR蝦 pHYs  ~ IDATx \u_թޗtwȊ!L`" [XzMpF@< z}y033sA Lƒ, DB *ٓNw꥖OSZN9gꕐT:utL |J! !|" !|" !0SfrŰ0kTm! M`C>D@C>D@C>D@C>D@C>D@C>D@C>D@CࡊLV%@ jF̱{raT7TIes3iF#Ł΃]gn(KJKꚫFB9h0h4j~H/4̣#7ϔk=ңɺ_.w@I p;sΟi-p6BM3d)2{TT`@b_ә߼pCzmݱt¾?B@Yis&S~J|ĢQ*j7ges~<톚3' m#aV L$5ٵ >zǃ,O@Z/' Cw7n4NAƢ~V"hxv .`9 (WV` LuAmsq}iz/AL;kO) k:t,;8I Q=_=`6Cs#U-R\۷t0qL&*?s5!$& :Xj3: 9#`=pX|э!f\ RUxkGiHesM%5݅_RyT,:d`0@[eӞ&]>V>'h0KsЯ/ HWy`~'# Pvtp]sjp6S„>{LD:GR2wJ[଼*<ͫU 8a*Pg,-3ZO15w<#綃ێJxjk}GۏJ_(.eCk[ F(`01 'ž#`Z5Emi-j;?np1ȏ3Gl%?lqڸOn;&[z`w|UhQX%Vc|%.?wQ@-Wּ)z>N/& l]|/()E: ,F/ 0j.=u gCZ@sy;N쎥+04X˲Ze+M3m5IgtE;W]y*HT/]@fcy|LV@8\r~ф}N.6BowdQ4X'=9uݵv F_|L[ ]xùiٍҴB9JM]bܳ tѾ=uA&Jx11i`ˮo.# P45! lqzVRC@s^[l,-eBf w,I::`ڭp@M?#SKW2iՀ.:*GPcB6ڔP/<~sT";u1bWb1׏CCpc|l_+Ec]|PT إ nt34ZE`9TzM}={^wk~ZMeC`" P:tXj@)H@<.tt[N<{Kkd^xxY'ҀaX @`̞$@@,^D<&"UtC kDi²ʵ?.\k"x+S!/d{@Ղsm wmآݛ_yF񫘴I.tG{ JmS+ E[A1xӠL+s:t@(j_]=W\Sk/|@N$ahb\uⱲ.(VM=wXtVh 5X˲m\߼*Mkƿ* k:ǻKޭ8ym6x!>VXBk=k=]O?}ߛz>i%D/^22X\×}ِ͐s=#L*, Y}t=0qPÂns&f*tT*09^pSuuGzfGΕ~!9E뾎~3XDÂXXmʪb<"^g.ծ-B~y'L4Ї~OO4s}.{Oz:vº^L@2=>_ļܘ⻞Kp*R 6uGz.h˯>j_2`bӐ`FTBg*̃?t[i䬻oT@,I,Xhנ QY؍_Ůi!n,[~Mux:9Sq]k|}3{ul8`kz\תi="[m,cIMêa{r3ϺoX0yyyv?Pp۟5= L4`mx՜B%`Bi]E}e K.m[7#eGdcgUdZ])C]Q9b `3;{FcD$p  HȲ"dhx JzVQS!Uuλ."ݏp%ŭe't57[ M{o/^r}7ﵻ1c liF*CV¼6Z}Dk*4DYT?\[QڴU\fVvȍwD/|Ci~XUr֫sN7#ya 2:]!M O4q@ze} t^Ad("hװR I(d b (ԶTQXNtnך``3&m%D1,K@.׻5x0-\ Rtaƿֳu =Ő럛N]bA_B{Ps j\x4K ƚ:Y*FP YE%u7@!y!`*-GBQWM?XZ%WDc|HG#iUR!f*5טޗZtAUwj9gew;wگ>_:7 Rqcl!x?{_=S pA_G_7=Oz ⽆zf_W%{h39h]852HX`bsf5 C^@ܴ0Iӌ'ѱaA0 AD?fcpM>z f($蹙 ݰ`$4p뚫MH32@!Ox袧fQPr$Waé5CIwnZxyz9TtMM?:*s]}diޯk]k]ڒM*;ߕm}8DAC}̵w`b>01l~y\l?`{kNzo:DmwL5hgZ Ys,"2M|@:yFU[$W?j@NT= !JjEvhP;\EL@b|h5LOoCƁnsڢT3]vʞ9)`7d ] :8u]lڥU./z-@g]{V1aH9鞧I*TIvpQ&W:Ӵ.ҟ~VT00Z Ucu0" m3v@0,Ƨ d叽܂ ٝcR` !ARaņ (_^OK[( X7LK 'o }~z!^TشC>{ך+][ @*߹|\G{LXU ~ t翶Ц`biG4q:K!s u\eW #2;(Uu?cX[ 9vT=4鵓* FU3 bIa@mEM\kȆٙB]^K>Gwۻ^C }ɸaWM,e0S<|%V>^xhkA2,n}؁ JYȵR.nxU&s E*LL:#3{}\K" AtaC ޝqc5 2&4JIA+h?}8,xJǾ-pO.}3qQMCvvY9;RYLicUҶTJ%.k|fdC5H#u54($ܝu`q.ug?Ltz?I9pDm{HD<@˲"d~v)h4jh(x ̅eγVV (4/gRȶF^P.ԧn*66/mϧ_~֔_ȖXx S]oEO%..V9]8e,v" [;Jgd=1aAP*B! {-Ās j` wf2.V!'O!Ut"^G^-T咩b%_4xs%$aQ.!vHN+ri9(G>OCt:`T@RexaA`8(J@ilbiF+ϝ,gک܃={7g+ߖ/Nt,\\^ؕ4 ZVZP  ]T³.kE*&m? 3 9u0or8>4Њ/f+69`H1K]LmYpY~I1hآP8R'.vBy[FBlSvWy] ͖CJRh֮/δcf?/`3Zᠽ/XsO7Đ0l~'a `TBVa.n 1hx`rNCĢ~P\ nj6t=˅>nq!ٜų~mo2g^QFb5^+5oEDt nӝNJh!m{Ëz=b0ĐkˌHuc64@! #=20Yfp)@4X9?n6ml>u=CLS (UoR؋zq : h}hg~,;$-,h%haؿ0xbgV۴MxaOw 2 IDATKz|4e^Q_Gt [p^jth(ң^wϹ)t쎥.QjB Qb3(*?҅q}W% 7%v(NiH pw`bxֱ<х)]` `P.m#U 6Bpk}ke7J;ȵRCҐ@!λllnb Y,vgN4MoHn_輊%S%A^Kj2]|.e]E{]4wUJ*e;nB?q=,3nb|O02 beZHgm'xgpd}uf׮ׅU_zRZ/+4j!G;sn4 ěK< (FB.z(]sQ=(kxo_ xCM˥+4 vK0n{B䏀ge.Wչzn-pR :t6B(hŀix˵ʅ7[Ee35nr[tŜ}&Y_L픆TҿkP˼Z(&xUh! GJlѴVgY@?&y5ĸKz@sŋb5VxM+UdpVcE.t| ѯ-sj'ٌ֩"kVx9v w.7pgwr0h-@4f0J޴ySL5ArWd=W!I^VBNbKvC!Qڸr=DPC|LèB8t/sjc'\p[`b$@@ 01TׄenqNм=;qC<1@i6BFI1 hl𧻜xS@+ ܢtqV%taD)ɶۜ (VkL{wOlTE09[wsi9L\i5Ă\L j Nhp3_4}sxNwk۝暼^ʲ,`x+a=UM?j[kx]6C;#iz gZuZ!5 Tdjᓩ9l\0iÛ-/*3d0148v'A@I! @ EYdmO@$8Z8:#]„ k5v޹:@kޮLҲo'4By/z֦Ps :KXEX>9|Tv)f ][L~ ޸T1w?Zn3~i '(SajȐY]|E`Wݡ=3d~][窟eU]n V01X )ڼV?s/bӅZk⬶@e[MG{N~)Fb5r*S]x+V \$]%DmstQʹ/X\oa{PPH-b,+(1]%Ti. G!`tG!vrpN'@> 3X9z3rN .~bi*tv=kG2.3(Ev;D1]DR,=!8QJ[/yꥴnηUs;x (0/L_y]+ ƣiuan߷wv @wӺh~m-eF `L}8zo^%>:awo^eBV{5/-ckk!n: ]ך^~.]Ť5_[fvkPPʭFU;W4Cs`bno[OɇBYMcJow:Jo<>sÄh)_FHMv'wѴ vCfd՗4o^mB{ /$pb蠻3\Y̷9Y暪RVVH*R!T&zgh=En@ ̌k]|~p[]# && \( + 4,p{EE[dZȃ5yih5/1So0mZZ`F}3֖Bqq:Z y&bn3tzts:Hwڼ+:ZAC JUMCw4*&/Btt{?g,m;!*ov=_ܷZbq|۫0(+.GcQBD ENw5gn-kϱ>@L5#74X[h5 ^Tqy-: /zʹJEghhr[ nWvD3smG9BC }] rU `gl1PVuLH4i]䍾7[ gsxYk*"135Vh/Ei i40mRU_4>~VKl1ͿJiVp&]tQ)p@a01ww' \b:ز  H04Cu_uG쯟R;׵"bW5m@)ɴc+iٶ~t8ln/ՁxlTz]Eq OiC||צ}.>|4+)h(sz(bN_suҽl:[{>ݦ-{m}e01 k\ (2\ d{\U $о5 f`pr@ZAd:Za;z̠h(t~U[#]Tv._xù9':kݑgC5M; &H3H)mubMnD,5AtT?s?wQ1~N4(3eSw&Ъ`/zٓK*.ྖ<\i8kkHYFhbO'6k6 N ] )bWQS%MK#Ѐ n6NHS/ZPUSyR% Pt"jI^&\sݞe{΃ٷ?q4X~%Y4e^N`+-?Qd!^ߣ>s 7̀ȥ[vХGtxC}h=E.X@\9)(ʉ,\PC w(lG[DK6$vBV0hO҉m;%Tn rVX ˶Cm cER/^W`\S}/>+w,ku>բ^S'eTzt`s f8u7M?}ҪR}YZi%~Y$N8+ IoGX}?p. SWfO]p{Зz59yg.?uy{F-rk}M7zt^ {pt8O{77;3-y/E_k ^Cߋlޗ /fgl^/dzpX[z^6W,s@/ܮHo*&(ꂹKfI+vo'oiZ uwLvu=xtԁ~ٞmٓz9],W=$vBAЏ69Yҡm&an/]eA) Ek\eD輋ݑ m%hII2фjnRh0c)''hEGMa@9 HP<Bx1wgOЕcrd_ uӇW W @A%U|x^w[!!MZV $#iݏ$xnέmཉGO/]O^gV䮺&,W_?Z=\5|*e,H".' ͏NDT ش>xMwkOֺp#&$p˅?vCe"I_G"20x4$VImNjC %ewzm- h0*I,R 4X޴6o˺JS4,=C];]Ŧ* I8#ԄꥱI-E*ݽL%A?n+`6GZ 00~hji.ii=wzv6D AAYA`gIteIJZ5)Qt(3JV || lv5s78Է/p @'J`*={)7C P(25"ќ[ 5 zϹ@qb(Gff>@1pr8DXzL=`VW G`eD,T _mS.m(uGwNb3ow(,]v@>5 `*jy H א@ cmYv@pc(=hi{m irohwDnTH!;i; };-33 @턬`<5n2= k}OcY;@~R5oC&;:M_s(O*HTػ!A(ЧzY5`~;W~Š;Ͽ/:,Y&d  I@[^__[@$*ĴИQE!A$1s N:~p86EēHF?H"XK޻~gA#eЮÓ`ngM $Ζv@R3w &T@`+8<@$,ꏥDAȲLU@91{~A<18:n!$du4!͵|L '+?sӲi;$m|[ 6HmChHGRmY @A^hT00< @n3d/+̱݉bI-TqӶhle[P .h{eh(3 8v@{V=Un=wzv<#Ŕ-+ϑĢ~;,}CੜE@@d 6"9@22b{$ArXء>'J!W-C]:XvӦ5D\MҺ˹c9U:S_6?Ąߺ6gmE\ZJ0U KPN+tq^g@?688^7M:@mpf@+f6iÖurE4NLhKx@2=}>ש! D d2T;B錄 m;u_̙S-ANmy{=K,ӆ6}%+:>~.G(/H v;HÌs9ËE5MnmQg}]nǦEbg-_:/B2  BSTB9^nC{.A>rj@\lR pf6s~mf}?# A@8etpq"d~,` >LHPzTNy}5v~ ?uqSulr,̜3 (P`, 2DuV~wvh!N."+> if$X~;1;Ȕ-Y]}n.2XŕҠ3 "CD2 lY{hHഒ :H!@i@@xOm_g3hN xΪ 6BVВX<&H$Q5P@if,P|^k}8^;l߸C^xlcƯssA-๊ dmא *2I-ҋb|CjO}!~s2~K$/m܏ˮwY~'_"~K_W|=<^sX\zr]l?s C=?@qyի~3>ƛ^ .xoK`TY2k5^>eryKEUHC6fyr>'s]GzE1\.^T~G"j~.g()&n@ZHn]$?Ǯ20V!X!Y4^ ?}L#}O:%\ڦH+F\}*<8i]vw}O3! Xoo %^#dXy4}f~7&:;]g9T&TDA0 J=+{n=@ F}< {r:Mz\C޷p~Lu6CW~\JbO\<=<pzY~jO욧-ۥx  'e3åpGv/W[}eD*d9|zh1]תpA/gjp % ky@@g _F.k~Iٶe!' + kX*k \46yikm]ȦrKZ(>?_/<6o yҺp#Hesdnm9bU=MV߻:枭k{w$$Xͫ: czDe>-^έT1PR 2+Bt=vGOBߔ`ԵC럯,6sPսpm=prgUzW  /}`T׆e9f1c"ҵKo+|74k e㣃g^ U)uwp6ygkXv/@ZJ~2mAd! |\t3r_Kows(s2}i/b~PTZUR^kO՞Z)HTYU Xy3E>Ϯ4L[YGO;YysEvD7Hj]&{w9yRD:OH` vTHm%5#;1V![NH,DX}/vywBv;!kǴ*zyS=L s|97rzcL"%P!$`4nB` ` 4 PO;Kc@ćt]g &L~#k~I >E@lMS#=Ca9jiIeSҿmEqЁVD'toNyfJ}vlMl;&!rSeR#;~)^}i`D$ 5.qSIPcť'HTdoɦ?~xTzdU ;~bg7SM>P0cT]}X*+[d /^ziܓVDJ[ٕ"}X~ { kUյ2<٣s 6lgsOk%MnceW9ѧ A鏊E HcZH,*HxCq9gD &t|ٵOJv?goj;PPc%:YxG c 2;٭]tVDǣ̆]201 ^,G"C%s'\qv!.N+.z9m2ohjifiTƫ"Mn'j%铁!|DƙOEnE1a&0/5?~ς[{AŢ^CMZ6}mo{f4+JsS]AH8тׯz'.e"xPBVP*j$ D⦚ dL5ADt`H8"YʽsLxVQhh-7^mҤ> vIW"gH'HEKCVD+n~Ĵ"&/70iӞ:mG,ʢ;;G^ ϔ>!Rp QꞨhɹ/>rL޹Kr1EIJ2 *@_z;cϦ:`kU:N宯|^ddX R=<`(>$x Rѿ,~]mE{>VD0>rByl[uy hp2eF/p@qa?#_*UU@n:;Oȳϭ99M/>MTp#"=h=wzv< ESפ $y.A{ zͯEOȱNJ< mELyToN-Ҁ`*i4W?kɏ-Ij~NUG~^_+/ACR}RzLYtoH$1ko?o7(zme 4-yw FDw'?q+%KgWKt(&G9 WvYym{Ԓ ^Zw9W &:HWE`+]]7g* n<^!5'Hel+`BvF@y?'JoOgvo.zmH+ܚ`RT8~_f 'O_?f#TQ) z,ks9g HWwX~f ԩ Y'w_K^9CIʱ>`>!3^ ֕OP1ݻfi H_Ld0*4Q>{קe֬Y2-ࠩگcq]'I\b;YU/Ĥw`w߯F.rR;M}wqh2UZzM8`C}uQSu/E-5[m P^y [_{^^kG梁^fg,8Rzi^D mGUxSϑ.P|%@@?sp@.|{kH$*ֿ8hT޹/}@@Ib5K1KBY-gz],)SNzzU ϥE#Ok" :c|OKC$B!$TY!== J@!9s\:y ʼnrh4O Re|P4V(B7|v(mE}K"(7: }yAmǜ=_ Ȯ?ns-%tP,iv+]:|`ڿYaN-{c . "gE*'A¿l[i؇bTI7ߖtlH2]U mYۿ=`v\75M,QXZSu{@^);N J#}& ̚v|;21gE{{d~|KƢQFr~C:7^T.~ 9j^2={xPTVA\9z.M;]OyC["i;%OuѼ-ł~6_TUʹ\eQC1}K^YYܴ!uzG/VF E嗏on8_,+kY|`Px2w SrL,5\Y)5-GݯΥ=wU9 =/%5C̝{z &-;zL Ȣ-TcIeE ⲣ}PVKN!UCrEG I/XPd(x,.-]r?/_xoe$ }~?..i;GtqK-Y(C\ExLcjJJ! + IMH@xd.s 3MXKPPXL{zcls[޼2T$_MT7wtu⸩$8wghP'^%W]F=}$8U>~b}aW_{Cv'; Np a~GjiٳehiKI `d$poI֖"Ƕd[$㹏嫫{"=,iZ2Ά gH { ǁ4~%4paN~fv=xyxi.X,:VàsBxշ!y%8f Щ5p;̐* puF!1y@5>905+1%3Rҳ1$k_kC}UP#Xf'8z*AP(Yxrfc7B7wob<|8Xx1n`yQQ_o?xga=*<0Jȟoi"O,7fn(b} > 8{Oug9 F~{CEE"芣G/ 5l9c.~_7j+ 7f6u'LU?= _3g(rxyWu+?AvC,r7-<+c }[=RXvXG2[VH 7ޱg_h0$#.=6; HH<")0(8mF: ,.E l aiɶ_;|@ihv#~eXYtHve!XCesISڗv J^o鱧ܾ,`*ED!g4YyXwV ~hU({xػ~6s<``@3vbQW[ kw1I&b}l"5m]".3<ԋ J8KY~eM*|%8 ̏^zX2x64~oϘ?|5;!iМq2sa]^ ?=2g"b ^iS?g T$2?~oPriI Lӱtٷصk7_1)I1o\ayxGW^yMp``ym?EUUuد0 :$NԾVsV/n 5̀H"{(2 J |!מ>֭-Df,ĭߞ2e^TTTk+/!!?~>~{}<`Z/磌 k=++ 'Na_y;~H-(Yp#_|c=X5*MO>`:\ ]7&zK!^ Qp|;wqm+v85+):$(iuXthOHLp4[Sjr :F怓R9%#ɇ)"Wo%z+=2X"I qFgEyA44IytJ1uSyJB?{]L?S@tae;6_0#?OHŦݧA&S9Vu-j,CN"ګ:s3νuNkyo* o7 /l*]][E`ݽ'AAmnˮ_rQm.\8\`q{ƻviY7bDn0{L:,hCz#L=09=8RӈQ\cw[bT ޱ I"+Ə1#޻;Xv3Z/p@õFd%3Ċc䈉#@;dZjpt!§܈=Lv F{BHZ[;]Dc%Y+ Kys 鐋;{P5fŸ /OJ11a(yfA*ED!ǹݡ7dJ#B\|JA ńv'+f5e$$u,ۗLJp!Á~~﮵3$+sd`6HʚaN *\t3wa@x˴͛,sgcGzX,^y6Aײ>ŏm۰tR('ks ;PhһȩA cn'ꌀL!.D S@BKׄT_q8l06w9xo]<<@D^q^&M\ xf0ħl^&zY~·7ZAh_C1vf 43Oe64|2$}#7|⮺"> =ەؓ|YH& QC3O6n܄1Gn۶maG,dUku5tn#iR H޶6r{Do9r$DO{| >O1&Cܨ ny -6ao|  .z ?̂>111|!P/4`;;‚j"hvyW}3Pjm"8Â5J3q1C'2:+)lI i_ޟmj_'!!ܠ;n-+:v9?xFQm75(n2XF@{l38Q?ظdu C˰P*dĖD;k:j} <@?,Hbp7QzQ1 hW'|ۦ$*!999-;f鷸…е+'t:w@sgך^G۬i՜<heU4}mmLd`yϹ瞋f `o-)9 Z%Dq8`Cg{- Zc XɡLwM'FX]gJE.6T%VFgz"a O t5uU(^@B J%CN&Sp^l הSGę|5/fK ˶0zǰזe ̝(Uв `RA_i  Gl_a_ ޘx򹈽b> ^ iPKnzˆgb0~=򜡈r!4MUOIIFJr2ym߅??4F#^p:?֓k T?7T*$uDr,h ^sOΛW淏.gnԼ&ZMdh43gΉyef 7V/F!}N]aAL ce.=rȻe 43 `2  }V4p/!YॄO`AB)V>BHN/=^_K+fn)i1sO>j~OHxo=giT= $: f tD;s:d)pW`^vj9~c{,PBŽǞ bO)q~σQy*V%9l/h8^b)?">V0'֪)񀀺U߇*s:@[{H"OgD–U߭C敳{$@QǷ1}4{b 1Kjw߻$f&ђ hPc6:)p }|6cRˣvDz_B!+wxƲ;<@|BҐ^?vu @&અjAlO:;Y%g4_ w\KS஭evT?w+M@6'n gYU˯12):$j%[ /y.{5NӴ2I4t!&~&/NCՁ9M%GJo(zUXvԘ=m‚Z9lr4Fe-wEB|TdwY^]c,xE""  òO⺻^46`qZA!ip:mXsߌ{ 5^M r:ڜ;gA_oA2ې$@<)Y{Z߳l^ ID^C"@l!Y80E0/îM!׫ۋu휖=F3jWnX.C-!Iʯ֢f63x@KP'HI߂h xn~M;gS6z>-ǰаybN#v|.xK~c ΄&?ۆB"M!u C:`Z :LcVr,~nEG>\+q|!\=;_"IW_;TT\L]g~cdǫXf^N; ~7-AVnl2 &5_>3Ե_FWyvT G6u{T<5 GrHd~*pV`LiB$19 !9F۵// NP##sϵuM8e=^<g²q0a:Pg9w_Hk.#Z%LoY-88wc2m|>.B'xp`Ы+z#_lD3?s Mܦ<!=*g26֛}%@T  `4qV+7|?Q+DٮHYw=KO{lqRCe ̽hIT6c-^HC1UT6h@Aǻd1aHI/~ /d$8zIKDb@mwa7His' HjHi pY(O2Z8~3iFp 0a IDAT0n9ZuF2-aӾm aiTBƅ!y>Gm){eQBLv9`\t_w{09{~BY0U Vb(\ ihwGG(;"ض~ o8dXYW"RC=lXn1 x'ۭ>GSPԚyG%vY70)1u|F&BV#ƾz-ߌ>mZg%X޲^AG?A}kI5Ñ0kbW5>wD {"owpz@c|N |p4y"~rwӰ7'NŸWFbap B_z4X<}4+ƬX&๢m@ HK<h`E/-y}ш: ,y[ lk|,x{B3rPZބ]{kP-6+Gs"}Aɘ[?xy1Yt.2..7ZQO] "wpxN(b[gTgqCF#vp~DĜc//!0a̳7BG\~G?\DZ:d^zF>zd+ݨ8嫧޿iB7!$j'Gk{y?V7/Eԙt*;*z1C4Xf;t,6XY}KWj蕛kYxy]+y?oƄcYq|Ec@IV4'[ cIĐt 2 h(S^;/]Q$1 }iMt0 ӿ}>`Fn>Tלŗ3/ujkm]f`TCoMzcz5t2 LT UHE2GBT[^LoGZt^ɍx;!AuM(PtE#8r%@FGnwҿqLx<(2֌*+5pA$|O-C!cHz, dꐔZ-͕ !>!^y׀A!N*+ -vj;ޞj}laϟ։}I VYlP,Hp #R(Fp78vVwrDWI,``Ňl6-4haPSg0R)`B!12;b}v`5"OBHd(6֒rʥhtpհ.HFzzهO/Эe2ED&/ T%\q6!k)5D—_ ]11k3ܢ3E nL dj4$z*G.S^-UMՇ#Qc3Q/ZQ݀Y`AkR]a.H/Aԙd} Xf3'`th. R,dY>$|jO"cYX[u ̓Ń-΂?$0ʊW}ЭÂƤ#.AJ5 "R+o_).ZuUTgDGCe6|LҵmWDpBՍ0\xVߐR̤8hq V±%'eH :x,v(¿V5w| !䌴E3C@bHVIςe|a=[H qJyDyQ]: Ɔ"בzg_px_OH$(9 PN[VLyҋ".M2-~THatg5rO .>AǭT橳Ywqgޱ,-7_go2b$/8yZ @~fR!eV' A.rF=LʏVȗ! ?H Gc-Ĩ~ˏ;Σ`ǿF9^d@(;ɧ ө*Oǻ5"O FH F4T !~ċ:BC%$UEdK9:9 Tpf`|{r)6|#u7@``Ep9A\Z H|܁w,`yp8e,7Rg,6ڻ~i~|kM(%u !#P`A,X-NM`Ye=ohAt:#*,<,׭=5e*{q <)*  8BL][-/ϟJ _ v e}klv{2`˂/úȦvAcR=Y9`/,P@=$^.Zs dlv7 hK3+4JA²"؏}Z\AlIH_h  +EydƵᒘ|zfĬPkryXC=Rxy{5ǣ.l38e:O.V@,j g_] qy⡅Xp\ި0!菓^d`^{TQ )@L&^w6U]EnJQTHKKb\ t9" gDŽ`b,CHT/ YBA!VB.,% 1 п+g]^Hma=)?l09]x8kv~O~U-Y0`뽁NbU!dvWkF~2qo c 4{7Kv6? |HFd@iEWRpa_Ba0QwѲ 1nI=h<­?/6bkiY"}rih3o28=Nxt%a2bDQjf~eZc{6.v ` Zө1g )8ò߿`2pwIXrFڰ,8wJysлw♫_+H&:BȀҺݺn*}>F72epeGo%s5D'is׎ $Ue]X~r t"-a3 ^|sb0[kuV,E;yHiA4l6No3AE;p8 pK X!B! JELZh=]l_ YˣY`'ի/c/'Q; w9D<8Gθaq5bqQ9/ҿД?2,e.쵧U)TA+h_è}=+;ǵٗ@7nqT*oN^'B!BGeXH]ΰ>U[nqcM}:LG +mtM.0*X49B~܍,Zp:kehGS䕐Atɩ0az#>^6KmmE5 B!B!߫ၧ۳ł9\Ń%@_st^.1*MńY'ȕZp\,XAH adĔH^y[ }{̿\.Rlb`)B!BH {ڽFKT 褒5 W$=e^ZpG%dY g_]qĨ_(@@H,LH)8o9!w .еz ǷY|•^sϛB!BHrSrkdc&ʬ?A,8EpAx^'M_\fL$eHB=!=".>Z}?Vk@CW{ 0jpZmw506WVi`u* iiia/ ({?B!Bzv<'$g HSzl?,`tI"~v`RełEK#3屸au;nHHGf~:u`A<Y~wőI3D&0B!B!d`YrC WeબdhC, Tau,<?ӲCo%-ɨ8;܆ Sr; $Ry&!Q#& Kt%y'VlG  |$|E!=6SB!Bi,y⎘f309^FgAFnĊꆖO ZY=e\Ѹ`L$l W[a%zCf~FG5(ysbBڣ!QTMIj,EHɿ֦RSWW3 i)P9[` Y!ECRunߝK ٚ2axޡWB!BH~r v[l<õ*lo4@Xpt,ذ4^H @;p'0ya;: L䱼<!Pg .#ar_K̓麿't0 UȖv;VVBqb A@!B!֘ca@V詂a< v1zHE_ĂV>]٩$U̚S BeR&Ğ3",a}j%&gz8N? 9BQ!B!B!>8ֽV^=(h`4UǥdXɡHd(d-G BUY:ٰYorC)N㉑BYt<-L"@sR7ͺ~ 2n8eaŚ[:gj.f~ܥ/}ulV!B!p˝LV ^Ӊ}[syS9e*yVlܶUݟwaWFrE }ʲ (RB: :k\ܓ"  TVDN 7A0 ғq ;+]΃r{:)jPKuMog>֓ UZ[5.sD/s1!1 !="3y6+x6AZS?&yp׬H!B!nwzĉ"[et\M-7g:/%։9.]{=.VxUHRjF]E iњdÞR vFPli: A?n>ꃀX#5@!B!~ALr׊NgE-@asؓ]|qۍhl2b]R6hj,v VWЗ(Uֈj %!7"{P ֭EKwag&/DQ3%j>Io!Cj(Ę5!.?np? &k.{pE&VZ \Pjza)#K"$n><2;- "$`c!Rr)sD x튏(H@H;)O_+ɒ<^h$: HJ ~I)fkoN܍K=pU6jM&FjMXMkeH̍ETrp^.#wG#\kod xju, _$/s2*yAic! Yx%Q kin !,= , 89)8oy @Rj 0u5,l7' 3d 33} +54e}! $P[LcYlX3$ⲵ#%d3 fv UЊ4T$cy:]V[B7_aҺ.;o(~~:D@XA_ L+\ OF@1k_!%C$:K_n5].#\)+UT'MR#1AH/Qh&6. TQhq,es{9I>B LGLB3**>2IKOA+1T%Tud-hI IDATt; PX@*B$lmRTdջPq&%dc,`< q?_0@'bxHK@/E!nf?{vP?xtx0f((@HʶP'.H>c AP  vTq RE|bQGeYЀX`=,n |ߡh;xdXe+VY <{Řbbu4w؜8D4y/kgX'.}u @|d[v܋P  숼Gݾp0gBX#bk<yXPe&ȚJm?O]UsebT5fҿy@5I" '^z]?yli_f/ g1B#s◵9D!-_b<83hyBrT ,p^m*Sld@tldtkiQ4xB: %v_5 /EbC_r: v"loO'a,_lu@w@eB! dl.9K]#'UٹЊmzoDx!v৵M&b3:,?+⡕1s){T6FXidEr=BD :ޚ?(b;E1G_j_:l٥czH;az]kp,B Vcǎ!tLHOSHHّA!.4hhA/d3h 7yjV*;񠰲PMWf@FBvdK_aχ=/;fuԄ!?]7YXS$=Ee)nuﭭ{ZG[G[Z֭[{8p,{s|crsW "p8j0yNK3Qc~Z9zq j:FC{Y71c!B8+# ! IpxG#&EbꄡHJj@f}O;GGѮ,L =2PIqѷUO.p84Dg) Z9iԊg*Pk>Sꅙ^P mu2zJz"$ ]ĿRJ|I IAHvFe!jIpm8QYi@pƢ j |;q981 ;c`XE;䜠/T[mX:CT4Hf2 4$h?!PQë8%.p8$xV,jWHD~Z(xZ CDw ^)˜^گnD"I֯7Vn"{rSb'O$ S&~qB*tcGRN_RIO$?/0 /H]z6#~0qb p }()pۄ4\ OV\Nw)jG

    &t !C'qM~^)[ȥ %sf@$Zf(0ݵSr.D$+8@>H@/Cl~%]sbA$B& I=[I1/!l$!aOOO GKl}%F͎?v+/ƍ6j_p8/**j}ԺS202H'AU)EޫRk!j5D-Ș 5<'㷟w<zq:ZOfVl;H%#=& o4sq@O06ap|/TR $/ge$ [/HO@zȳpJ(ϞG ) IޯץϽ'pԵM5g46-xqV<|ߣ[sh%pm!-K{pl bdTAQCU*p8Z C"Cz9՘ qJ*2aH.$ 5BUQ tNAIHO | FZGwKzzԈ<{gx "t͎x5kϠ)i s׃C (2Rh <(և+ou~Mz D\|RHش)Ol甮?߼Kqa^(Q! &qL+ds5 UlkcBm1P< I\rC8k繯bb6ӓ?׼$[ q8d͵fx0ȧH-\m|}6@ElީH`miU"?N\oDwBF}ɣCl_ػ+WPz'.^ǏnFhjs'u_Ǩiqq^ 'bE!|oV( a4`o9mh>`K{nW u\*cӲXfzГBq:dRCUOt(C"KTW9ٶ6=;}G-s=dVƲ47cH s5Gu5u9d@/5K"2xy(r899/7X+&S'9S$HbHGA^d#d$V- 7 ?bzrq,.{Ьp4H8P+1qay^y;'KDFEhŅ~`m`o'eq=If7./iW; ꁎmkqL 2hVHX3P>er>ȃ@Sƶu9bRT+z :_Z(g+THp%^õV}0+&7U p8HOMDO{sG?_l=1#tUgI@ptP'x `̪  # 6Axq]s|^ƆҶ%RSSq$'KE;,6bph8DrrF㋯&Pf Ӥ^-@{AՁ} ௣6@Kߟ| }ӗrZFE4RUrRfEl\l! !O_A$nͪpv,[XUCY~PԲ+ (ɾ|/zU՘O{0Piۜ#}X6.ݭT=>>٢&H6COuяp8Z I1HK澫֕u5ƺ18Y̬Gkkxa+~R $.شD H$8 -G?KAٞla+ҁ(EA(Mb$&UT2MD,fsܓjqƕ0IP5¦]g24kY#&+ ?sٓQ3 % 86oDZsWIS`c@UǠ _d*Z+[I 81Nl~l8[?Io{^Q6`c0gѳ7Hr-h_7W b/Z>[G7`ƽ8v{k[|>QԳ=]HplL\@9Zg$՝hkWSZYJ|7XesB3xU[}b߆*?}F_uǦeS{_܏9PhP.mprJq@QTx2K2)yO8!TQ# ?j\V$cQ-P\Gr7>AvG$-̬U%@pp}0Na"AJZ .y㒷.z#&Q]f2SЩ8_ #f dm~?@Uòh}eZ -5eʖTU D, 333d:QLL !RXLIIA(2eʨ)~JҼ X*11y7III8x oߎw!>>h֬z:B9hEs4i氝:uB>}T8W^ƍ#$$$}+Wptthg\D'qmlVmTuJJ*Cg=J)(* F`ܗ`eQ*`6دia6F~;aOs[L]'w~ftBG߬}i%0aCay?C0pMe)L=q& cCc/  ΃g1jJlXthɩ}6< 6Q)g0"lX2jTdsӗa֒Xp|Wмq:5͸06c˞%xi}'  KeglY ۮC9 u]^-ՀOE3GqW k _l7~weUfʂ\ѨNuD?PhG0GX$f+=IRMWָH$Cҟ-[A]y :u`A}mU,ile׌ 6$&@*.pJ \ ptγruCy|'k8 ff}YI0`u304Ȑ]֩8Xtae#P.O4t拉/> /mN]fK+S' q_~GL!0J$2$~`e)oOF8y AB|º 3g0}T$GFp:|{NKUE˗qK qppp@RJcpiza|?g||X~WCb)^z ];Ѯ}{=b$2= Ʋ+ڊKbߣ\r8l}~}5ٶ5{ظYy%v2GKOx* '۷Ǎ7ҥK6mZn .s +OаH3JTL| N߫xST SlC^o> >>vQ&緭ϻuSһS;x=Yy('cĤ$$%%e N?s? ŨR-sw2 ,T4H,҂UVRhP8 Jl8ympjJDlUqO "DCuf3PIТ%jT\hm<zaɜشC[X# (Ӈډ*Ffȥc=@pP@[ȿ[~ﱤ'^YbV7&|7q :vC.Xi+јw>kϣnx @``lF1f)3(0̥* MQ]Gvn>Be 3\bϙNoӓ~) !y@Z@-xHobAPs tϞ@M[POH5k 'O`҄,޺M f͚hШ! H@Əg)[Q(mk#** 'LV$f&۾M۶ dmvp*ĶY˂ oѯwZǡHPm9._w6Z9íeKsFM4AdzWHPvíB熋 P B¥ehoΟkLU-wۙ"4smzgȷ8}ϧ(N:ј8lX Ix]i%He^O_QS5:󦌃P,8z`Ihy7?z];öRVxxz>KŸ֨FG5PdP&#)9l]CgD$IE_Q`yFQ3<<`؈,3ȧǛ7nbrV^m;węӬLf Q莇;{WG*e{AEK 8 NR k;_2j1}.ĽGCuGP[BR7 $d/\zLJ> `{S|#t~O5$PEA@p0cgk02Nv|߲j%H}F(N+8l ZQ5  Į;X p1ȐU l{+; Ѹ8<ޭ{?tŞݻ|efˎui3iRz`jЇcsm0b:ÇXF9y(2gXB|}{Aƍ5SS1n(ْ8Ι*e3O_3 n 2A`󞃈OHDjZ:z{V9Z-1[êM:bs6}#3١ 0=wYmLcێd)pOmrbxBxyRz>}̗xBa JZ4Z5C&gRӁM3л77"02 'xl-`42;֬g'q n{Gop=,Z~ߍ!;Y55%?iYͲː;'dl/]{45l:UdoFk]A̮{%m^qN(qDDİFb"HETSi1LM`fJɨR&YyET< R / Fm M$4 .uʅ qEI<|N.С6CTI`p 8PnR`Cjuƽz}׭ʹ%#=`",gkGS$Hļ̥sHl Az"njɳvox5 82^<eN]V*.]~>>>}Pv0jJ:y1A{{{&<تTZg'+dlY=Hhذ![4!\uP{'E |*Uyi<̌1_OvMtCLi Wa8g="yiI?}#݌3'y QwЮEqΆ%߱d\ N͞''cX=SF J2dbdLV8i2VmwҾ?;3K=RqaS`Z=03`T8X x,-~`2Oɷ@:~mע>[;qβ- }NϤI!9trJgyW=HL.BÅ1jܵjE+adF}ʺjM;ǩUaJ=x{%^qB5`b:赬̯@*F2XGg}8]ZZ inI L;y.^qc'WB,0>, $4z1brvHS8CJ*t [8ˉJ^+[ q8%_`9A2}=QkW3bUp~11ԌHzj*Rc8ę"≂yJd@l_߻{77vط{>@ -+fJ]Kfc¸ZCy !E`0iдU6ޣ{ &EqA"3WEjR;gYWbu.(B~A]W`oѴr+j$ksMzOKPًUL=Dyj*='CϫV,o7\{LwUm!U63O+߫C062ds%!̞[S*J`<]C l]0}KcٷS`fj)ÿuwOX2#cvCc *(mRKI18Cɦ@ K],.^V?. K3\bS*NFmt~]kCӐ(yj{2rH$%%XؤFdK"B igwNUAm\\\q$۷/._̼ tM {wfۚA֭[{$p;V{m#3t~2hiZ.mFl}o'aq~fVFH%gH"af2 髶q] .!3\Vu.^@{˂oTZWיA*8w|qo7>WRhD?*u`! 2>Unon]uT=^{ ?zYK]۰,i<-\W@/Z -= '.ƿ/ C6 t ~z{0c^o~ p2pn:& FxFTLkD9A7.7? Ga 䟿odx2 ;]=$%`xjר3S((>|CФ8'R ޿u5BU0#`P0{Tl+ܨn^eK 6_ IJ,4=A@m|_U+p8 z ZSKĊ@ mֽ{Sf)ꂬfYRstū7.PFx$J=ظBv!HO8O 4zDGHH0O? XН^ףGY熕<:ct9GH(d8~-2dI/}6[A`ӆ044יZn-[46 k׮-$`1czjX[[k0>רÁâE0|B&L`"޽{Qê)M~_ UNJP3nĞ :Uy$KW-  P ȟq>o&jmQJ[ԮQO^H+^;wB2H`/}:X6Eq`4y6dm1D?R^\UXpGjB 85i`=F[u4l D$jN9$6oX A2RQOEUԊU{ DB8;ɾtX,>f#:S!0~lUתΰbB)}g,M:şIIŎDe?3gsyc##TTV'I=W>jsax=k5WR9&Ȏa6ch72H}`ǀ3tXmϣ"&a1pfߣʉX0==]+*#k֬?B~N$Ȫ) :qLU0qyDEIKĜIXUT^$UOZ .usSHK_,K6 eȗ< 6^#×`T^LXT}@UY&]2 EqyB*ѐDބ$pz0*@tӪΞ%vGl޸_ vwϞ>bԭ˲HLu=d 22e,3s3l۹'~0t0L8ݻvE?2? _]wcYmܡ@{Ȇnب~^+3f6o[wlzݻ7Ο?/رc o tȈXZӧWM+Wа%:ooŖX@YMەEVͱԔ+,vJv߱30Cv-k)yM C_S+)#6?.]x. '&yrԫYCe[ ߷S0aj }е[7& J%Ęqc1lpy$b/?cيJB?s _#Fq7ybٹO\];ZG"A=X+TpE>crtԴtt6cǵ;gElu`lld<|e'$&aסXe'{oZ#j`&|x,vGHJNșKj[Ź??!{2톊NsWp{;13k*zf~Ͳ_}~WqX\ N&_6T98hتs8fl ͞0Z`%[&=#uڝhb'#wvyNSaU]t%5UQi|m(l9MLѵGԨZeS>;d ?¼QR! b#=YĄiGGbuzE12* ?D(Ob$efJ|9TZst f\ #VR?gcfɐ삠tWHł zCPs!@ 2)blyϱAJr XY4˖ tk[VϺVQ`e[n*Y}Þ_y-(ecł v+;,Sz?]O=D.$xo?8vpoԻ߆/Z6EZ.|=~cgx\}%0P|OzVҀ^QPzomG%W a+(IChPZ}DbtvT9 /'B(Elv &ɺ(lH(ؑ!ݷ!=UJvDr5BU1вr*WSْQ1Z wL8GG 3\N-U&LP !NQy2: Dz4NS K117)蒼 b>8<ӼP_}%[ {$XoH* ]MXX(\*$hаaء ѱcGj Ϟ=c)P?~xxzzhLkee ql&M–-["J^E vp+kulkQ:on\qh2i.So +5 ~Y1~dAV &@f 1v"DdߊPکMW}'n^Ǎ, 19sV -y,L _Hs8Q]Tw\Wh.Z/T+9 Th| P  ~c3[ DGjo BĈo|˓" qS\ᗋG ,8 C&ȈQAlNQ@ot[\y4+R2tV4AJl/g(W/_œy %~+W0yT|W}8z{^X_}ܽsVVׯ> 'GVȈJY###QϘy/o^t GdJ|DGw߾_.{6@ e=|AȘy|(;Tާ̛?TZU2ذa9`aΏ옋ŘLL:ak^.-^ X:k2fSnx 3W [7Wk ۸n-wks8p#ѺYL1W)!ixt_kr>1 wvZEgm:ȷ11#`|Dr IDAT;kwT)+ #DXD$lY9gʼn&z҅+0/%VE̊c~ÇQ[)@^SE^Hҏ vHL50D֤OA O60CGT Ն$nu (:K^D8| ho|"<0z p`M0HMƈ8yS{;,9EINof5',-!hI'!Y aW;{7Ff-̜->7fM;F9 fе[Wt3Nט@@.]bً֭Ё0s lODFDbڔ), ҥ,XoODM,'y7ƁЮUkfx w{Ilٴ ǎ30kL̙:w*.^(߃$%%1A?IfkHZsWSe}Qos jYSڍovrnk0=OS)k?.L |0bYB (CSCՙ_ y򥼭bacKɾs$vG#6kZZnv֢k7DA*ɩ~Y7V(mh̲Y+X¯8O"gG倍- \6]M{@ [:ub…,__̘ ]Fuo,(N"0(kg֯g;ocDÿmvԥ3>nߺŲ^ \SrXa~Y3ƎnLܸ'''~Cw?|з_?M;??;z==y'`6b[(ӿEfx.^gSάb*۵o2|||p%fB#ce 3gĴiPbEkyxxȟbp8Ln?*4qX> ͍`&*VURqZCfH,Z H* /1nXw٘$ Lk1'Ycj3m_9lc8^fa>Ns8Ņiްy=D_{{e"&:ԭll{X5S >L#zjrnn8}Jڃ^z6i2oӶK| 4V@Ą$9$(Caa8~kg$;"g`og/om.]$'%l=ĄACU`0pƍ'QFᅨ %0yd8ZLuY&ׯ/`ݺuQL 0*ϟZ ɨU|)QPz0jsKD JNԗ!`.$T*Ss_Ԣ@VHxYPЧ t+ @) c(0YAX&ޣT/t3K{3rA2夭 m!|; _ \fuO<{mu(JVlYpǓǏq1t K/@wUKnqId 3H HIMe{ dz>XK$juDښWnx!l܄];vj{qdŋz>W^kd2( L֭[KLwTXI\ (zB "]\$wKy^b ,2I$З~#>1 !HOJ続_D,"0*XQ:?t.ԓSMEf .p8:F#^UTVuDHzQꤧ ,˨JA7(8TdE&rKƀ&HK 5@X#`옯*ݺ ͚bJ1jj077ǃдiSlڰqڽ>yJ)Cէ7ѡSG6@H^>x>\e. İ/B۳j@@m̘ZY[``Xz4m7o€AX}QXj%Λe+K׮Pzv΄ J/ +RN7n`P;0Xؿ?4>SQNv!߁;E]z&Uc eG?9S” du5'"$X{ÖnPq/>z7Pˆuoa{ÒhBRhZ7u>4n4s+\ pt ]XEuaCeЬ351+`lfHDRHd(Wϐ_d7Q?j\o5@`uKPq&,HNy U@,c:d{lS<ɸeP"ѵ[76[K|ѮZBP`T-Z`~=?+Wp1S#!2  _G iߢklNN5ϼy yTVvvvة#ڵn<.]IS(Dj՘_Ν;qYo>[U£IqBd@"XlC&1>>E TPv&X,_NCq["i:azy*>FF ֛_1㞶b{B6..=W373@(}J>3%A D!e+ee~;7mB* -f[Bv㛢8^g7_Ù a(ҼMZV~r?-N0v^{waj` |d$|ʕOQא!E˻EQl) ^^$Ք(|^}Kd$t5-$G+MziZFzc,!;xSBѤ:z?ezfnnUFL/q K5۸8D>Z>V|L4 ,ndn~gMX ̄mvrqH }B'qRg +ekd T֓/-2-SD& +oo}uAAyM肢/pDAQ:8";iUjt5UU Ϊ )X!-mMѥkCT.aݒ(9.p89aI_O8пKtiSZD}=ѫ{|[D h8Y8}-K+H$HKMH2ߜ⋢M9:zIP9+$ G w@1ɨy5;dLjQd0+lu}l/qDAҚ yPU=eUjRXFE}e 7*G@22Q}4AlFE=&dU! e}K3y@@G1AI1?TlX88"Y?~b+p8BZmyEymaT%b݇(|WA׀. q Nc8±1?z L, 2/o9,X>e12ݤhTOXۆR)p)dHLbI} ȿ[Z(6.Ϟ#6^jDU z:&^>"FŢ<bC>ǩ&,R9}QBY{p8„Z /L@8q:,_ "XD QV(̥."j}+<| }``hsK>m1V? |F֥@)~p)ddOӞkb2)X 'e[+AX_DzY0ju E;]H&Ԋ7 Ҳ< oQ 9{_op8%d o=EOq|5xۡAAfjaCl.G`G3&0@ SX IOP ]*b ;ϪtYEU1z+U#ž^@m|_U$S<SP3uH fA apN`/ K7̝0gM[e2* ԍuIq&qGFHyO$JX<=Vߚ UƗ~N;j\m.k!#EuQ|ST} ՜9Ň'Wk}5xա_yz݋>ӖS2 ^X_4o$#c )FNt E.t=U?@e[S&lB<{x ^D?<5kԨ@Nup.rρKb硣e ^g ( SYGA^*>TcO9.p8%v.,ФR (OA3a ߥ#ۦjg0+2@q,c@PcO@(\gxL8UOAYVbʈ!Xc%7eUL^6U )zB%&gձ:AAm,.3[Gk8u~I=.B~R#cw,Gk#Ω0ZI$䕏TQ!sߓ4j\0*JhǗ2823*̍}EnhObef!{#6ar?I=ls97G9OKIQm1CYڦTLbcP\y>>`v^`nrt5krT5 p4za?½^HITyŖZ9:|}{Tj[dqkwi@vFBc Ic]TmUK8Sr}|%" /,L_ⵑf-{t ТK]"U^)L}H`Yh_ɇ p|,L>UUv~M^A Cm.^amH?9y ?dTP s8}&[GU뾼{ȫ z`X7ruc)RMSSV p>cp{#ħ"M?wN0jO@ Nk;Kc=Ox#!5'op>MD(L"Ai V7$+DTխJ\|N\;͞%=0-"~'ȋI16S@16ŧC?8@A^˰Jj%TByfJ\ [G‣u3/&3b'x,mwvw W{(Á ~".T\PAq"" {=ޅn2yӤI)Mڤ}~ו''99IOy;fú*qHOt KMl2u0N>ݺT=&(dT)L-> No`~8[,b'wY nуT338@Ô3Z |)n I QlP ]֌`aP S0U03/` qu8@-@6]fe];?~>c16WBh@C/C*ʆBI`#ܑan~áJpUoȃ Vȸ){dbT-C\͸T2?TN#1n! MTrKESM*ă7ʔlqj^jp41uD@nd']~\|<NHXmJ&MTe~DUA3 Sn8a|`>j8.: ~.EeuW _h(gx)$M{lZJ{4ė!q@od |H%RZ d}5ABZX]Фj$*ѱDQF)MSHakqX@c%j*e *,Ipr^Qaq~p.qϛH#A )r0U*yb;qZh2M 0Bq8 ܐypJtN\ _n~9YYPA@phڸN,teEbՆMH~C\3@AČak 1[V0ewaƇpgnOTsXfQ?s3Lec11i*FcaUoB].kGx:F^(\ //.?{oMŻ"M@0!&؂X `I8}HiC~a|0U@I0 0 0(J&X)(sd_@P&M @@pրPj&(O6UMG 6o"j־xHt8a&ɸĻaaa~6MKe쬛^^EfJHxdq|_e_ygXpP10aĠAmaa^-L'04Lhssa4ʼ,dRGBPx @oϻ:-C!@*jC _Q*:Ccj!D7ꊂƳq&0 07CvVco 1!Cv QNV&ss\'A@& H` &=AVA[v pK`ԡ[4G!GSEx(5X `F @DX#:8bJ" ($x7x 0Z1yaa0T>1n:_*B$ؤ.ՑPC`iBd 6ʰ".< cţH(N^\AiH OQ0k/ trx!5 z˻cbSqo8䑁$Zaa5%5yMEBm+WsH]b z"83]\H FPXwUPxw<,EP Ngq Qb*q<ň ӗY_'&` ܴMR0wn\ ''Ss Z4{_WRPS0+q FƔ}Deaa_^lQW&†J]Y Y Q: 5Ps%77ŇG&4d$஢8y۷Uƺø(1)`@$u.c\s⾧iOc|v!Ԍħv͛ݩOezul/Cϝppײ…XFBO3 0 T41H2]N֑6 IDATtG}U!.Є?M6ggٳd {!ȃ{OK07h綁JݟC caw0 ubL2{.o!k`Hزw" mo$ S +/Y簭iJy hu$H{NlhWt@ˡ`1 B鰌"8w3hJ2(.gaa:hſ"g*OjuRu Fkq@p(\TVj d2fL{C-ۡmOQn[۹p1|2{06p0vԨaκxzwȣY݆? nٍE7Z\;Y *Ɓaa)D e8S䨧Eebb"H $*Y6c9O?YKTJV0naP0e Sޞ3/b)ЂB$bOO<,H"iL4!d@.ò' RMg+$wBx; {X `aaBOP:Ku9yTy B(|*裬 ~k9N=/gcu (+nxFa2 @b"y0nO !>4Faa7P.A+YsUt.t5u@>緣$(liHH| }CGgB bqc-qA06d4Bbȩsz宙]tbdP:la@$\Ig /cB!" >c1d Ec ˔- yV} =ou`5(c1\~ލLr 4ϔ yr{k@'BĄ2Sd!/[#D,թhע۩c6Z^^/ 9L'[C$$bvԓ-(׮P?H}_GkNwPXIp%_\ ɐb{ "t45F_p,Q.bM{3b-Cngq$5Fa 57;Ƹ :fm$٤S7VK;?j8^@SXs(}"HU=^Evfc drdeۡͻb w@Nq@͵J VX `Hnn (B@BʰI(Kxh~1o. ,KЫc{kvu٢˵g|jcQ#J5u*~U8xJ<?tک o$4&#Ew:@ѹ1Cj_6HX)oMʧWʹZ\Lh۰tX*A )J*3#p-93?aHf1RV0(RøjAN`)@]ɭo&q cu7 RD0a "1]bW:mQ!q .]׸vECR d{*hJLlPPBJIKIZʚe,U bOnxe< Є~q-7CԱE}W^=T$E)tRU+ ҁoVDIK8m8q'aUBu hȦ 8 8r%tWS$$*ZtP@"ݗ%+׈Kώqe* ?0By5GJXd4,5õ^/x짮N Y3W$ sQg@V^ q`bu X UuhŸ-,8˸X_- D˴{r{{0`< c]&R2U_f(~"/!*HR4y0VH: 5nwo>,ubrU,`{b΅7 .{\E@90L"8 $gA9deډzHEc=`HIpOk2)Lq+b%@A)mj<W!q|0Kbdb-dD l![!(i]Aaxl06S51|c0B-+_!3Ψd<-"xIlH%#1@(T s븨 FDQ1MkssE1u pqD:r$EZJK=7g?0Ƨ 0@mY{ahU&A!_c0o+0y\+'7)mN$@@VB/MS@щ` \QHQPxb6el0LX `|W\āsVw*nZPƔ]&Xa<,0b-~qE@yS[7y^CW?@L3LQ(X s|(!p8a OP<W9'NU\AT?(lNha| lI;wG㼺8Duc#K! bD ;+g#,P^0 q >epz|[޲%M2^cqaaj +"Ee4h(>ʁ$G&UkФr1Sf.EW@@JW$/߁kpG+(BPd0U8m<[ۖ3U@[MfaLiG S~ik*4؛,ekD ø7BжvMI!7_q?b*KAfT,8'7= ]_h(d nvn6?\Z̛<-T0 ø *@#η@wU$K!MzYwV T^S!>=0 Lcaw[E9wçtehLuG\9 Ɔ&CG7$ RH1 -kyģ_E._}!;od9ZhpL!R)g ;#]X ߷ U+pBMwH%?@$%z(5X `*K@RF*V680X(Rth_iM:\4]iYSCfJEWczS 2[0 rutsވ=r`%FuKYHˀF~٬.(s<_T^E4B_&sE@`p(WW2NCc{ ~*@c1y1 GHְwr܇kQw ۍ»YLYy _™ޗގ+Zaف:q1mQ<;N$++-rRTA͍^0 f 7)È]d_Ԕ@Y#ԓ135?xoFԍ^7uyc*m!Trz\D:W@[bKо y= ,hBjH eq^5r@p8"4?]%&Q0k@p:kUMN4^Hutj`$qg4WKV1B$3 OWa\xjqguQu0Le#Ӱ#ümhWOEVSN0;o"e Ƴ>p_!S`7$!kV#L)-Vp l AWr9IIȃIA9ZF @%q9ODEy$z) QDJYٱC{,S˖a?kTO z\tK'`s_ϭ ueݧ[bUV$zS: d%DD\?0xۈ\-_xC+DsV78єx&h&'awY 3>,vCŭg,\%U΁z(xxG ! g[_74* 0pdd>/d܏6, |֦@KK`f@aG6$^6A"1~79k2!ߑg0&@7gAѢݢ+a<1ߠ2}i QքחcyL`ܝJ4z(0LYsf wJHL\YfH**Ρ+?za#S/GCkjwī><[OЬm988(qX <$+!ju"|HHa_T:(M  ]>S%FRiVu@ m73X8~;u;!k^hN\=wtF%CѬMWHs0E۷$2Yx (T>X{Rd DG#pd 7?-@x ?0A,o8,L se8f@xjL)B/:qCƄ r7at7bB%uր͇I 7&헡۶ݠ&M&~gEg^a%t3^#QTكꓶl|;0?Y1Q6޼{'SIT1q5+vEjmO9g2!+!",v$%z(uX `BA$ TD_nYDjԘk}4 (3`0.BdΘq%'vZTI'H2]z4Of m 8091o bs.A]<,(Eh1usWD뺋 )fU0y%A͋KV$`뾦m yW!~-}C\_Aȓ4n?aMk1r `@^0\y,Og±B+ *HO0AW"o UNu_7_Bٹ;d*B E@VP=W1onY*n,$nLY|1^cm5t'Cm#s cF:#ohW,r{ V/>DB^.j?A?KS&c1O9@`` T*$q'tޤ(JC%8 5/uawX Q:u Є4MBsV%CB 68(*Lj",0V]ʕ'~z]*Bb2WT4ZĿRI}ɍ2acqh'']"$a'm'O>I ŕtz qn_I3{ SMxIthr@{Λ'peDEe< L>#TU֩`|~}SFh<*d#dƇSg Y^G s_[7>~و6mkHz}޼ Z,٥B.v/B5xI;DFןCs@ |R('0 IiFH%ڶ ot*Ф~NqoȝН>Cux\0dx.yT D|J?P`zn^]ݻ$ lؼS[ֈB&1!@䅋cx`]ҥ3nݎ-ws7WW*,]sCyHФ4 Y*; ޝxi//@o\58ď[1 o =T2 Pd狅12#o#Ru5Ӡӛ_O)qx]bɣbȪzpHCUC@^Zψh;C! /yjFDBusM2$Ѭ۰f:[Iׯ!$$G?r7ml۹];wqcս"+K@N^ڕ2OC{FJ̖ƳlbM=f,Ud%AĕzoBWwgY:5a*)yM;aTJg!K'&ɥ8gS_`+k8 5D#PFhzNIS}.@ m1D$ćCƽPe Pe̞eՎ;@ ܭ$ցܠN&/qb__wfC4ee"u=0>/^E.#A`dg9ح(ukq=Ä>bYA({[6w9VѾ#$jmf7$Q3%!4d1Db o,$̆E'LrHrr ]T ΣAyExd$4?mW ZVG\oܸ YBF ÐnHw˗`PՕ&/>7{Ǡ*m LCt^vp\XR@y u;#-LO&PdnA^k/ZiYz=Q )MO SP>'=.H'9Yfw%!=Ꝯ; 11R8@}etX9KQA-5a 7;Mr&|*3vIO3wOzFLЧdtE+L ecπ‹(HR(@?Nzf-/Vw EDCѼU &i0W|_bU`v<iwSn܆x2 a;D:u0)@ك c"?u>R_( DGhr[\ZJCGl)7D8PX4te1Ah8tss}\`APͩ8bّpnD;;![t BkSb^ܿ5["aTTSᗥm<Ţ3yY?uP!&ui@y?nY> Ć qϊeh⟄4*(kLXѲe@mV3j=dCW!a P >3K_jxbl,910r-GՂ&/Dw,Ô%B-Y6f#e9u#uha/T&$8 4 "L&RLx?-AtDT_0Z}Ąd5 IDATM=Bm#Ev0fep(W?adw`< @&yL!3}?Ab/ܡ j$$#R0I!Yx$#voHk HIPZzrܹ-6F0=r@Q8l:S W&;w,q }:8r(QF46nނWP)Ѱ~tM,o~<{9Y9[Coa]OWft$eױ@ ׮]GF })4& 7z|˒Q@BA)M\P8{ũ(}%[,T J997Ѷ3Ԁ7 J$)!֋G0@@f?B?py`sGQfAo;(1XW =]3y䟙_ݛó\ 6DSb>`|ubV/[&)`У1s.9oݒ2C q"YA 3)a}PE1qproDc4qfn}%6hOiٮyW'h::KYk&ɥNg3WK]4a6fGQY%HiK0` =v6Z j9йѽ J9 ڃO; R wok`]NZeH"n0&/Lΐ6z^O`n-#9˄VIw~ȵ.wO!A%3]<w<>Khs;<;zz;(tAV8YlEj/$2My y#29c)Y^ lH8 F-:qrn_rC)1kSP~:2q<(.._B/K?wWZ׳L0IH˻;X\V\lqG\+z ڭ酥PV\Xx>zuࡱ!((Ht;pK, Zl{!''VǮ={ЩC[tYYY싯0ցhrKcc8to؄u= U©J k#oW!Q[xK]ATx&> wa>(g +5J?,] q (/}ցp}Y-Xˑ0wwߥ=ztǛ7o)[ )Wwy`Q!G1cYc1!] 5d)d(CDwTk![` S6̛)WR\\9ޛc*FdfCt%t%jjC>鬺1u!ofmUMQ{E# Y:j?|b i%WU1, ̹!;"l4l96 ̚Ξ=Mƌ{?k7s۪UKL0N>:&'O~V Dpp0 {[֭ۀ M'> U<4E,^3_==4Cv-] 7nqER5ƌqG捂Rv,  o;sر_|5:vl/GpYs]>|5 tUؽ{I,pj׮-![ + Fli8ySrr4rș2C!)-̚bez?,FjZ{zr^5oA2^ OEHM"솘(U=A{zY81(W:$e;6]%22Xg[ԎE] D-ёVqBa d_ ^#:Z.b5m?,?,M6*ԭ#I3e`n¤^i`9'Ik*ЈTb>Onnl b\c :Ĩ89[r 7]-_T(Ș.'v)1ȸ2џ=IGGD@H ~wBRV`;7רg#͞*Uk?0 VJ(POZWLvB˸3(}(ؓ?\7ޜ ii"&oY_~s~'=&&|p, 3g ΝF8,[V(rڴW1bx}g'$8`'yNA ?+_|{v]BƦS;@Lauӿę3`P( OI%KǞļy9rBc{o;L"  B?H}>o"!K-oצ5~y*:I]$:w)+$4 ~x2b!蘡C^WbPh0}{][K}㖗B`4o~k닋-h굨Y0oҺ;qǟs@M/%Fr2[lq;"@ d=e12㔣E%'sVQEuA=@S;cpRB5@%Z;<Ħh/DÝ7,l1",0.c 2>;NU;F?4-JvًB?BV>V1? cX j+wAH#Üm"kz3!,̗KBtTVyݙv@˖-LSuI~DV-P~=3~Ѣݶ˖N:HJJ|d]A42fppx?&:-TSJ'QcHa`bJk/scrst_/RQh̘qCʼnj I`"~ iM>HM":s%b2n͜1',;'yl\eFNGz FV@t0A~3?~E83D)S+d={_;ؽ{Wưu!4i/N}YE|᧸p^˝ԐD8UEs}E헋$5<>g 4yջ!;#]%AKÊd\ד%ZX9*C/3L c qy`J߁!WQT1ieF)"Ք|T\~~b=6\|-u)ca2np \Q]IUJUi򿼌S^M^6{9e!;;.]>cih۶6MP ǟ:bܹsG<3zG}j-7 2-pcL||IvWh/>FKW~uUݮrݣ0fCxGZ/^Y naǾXt}4: ݻSq#p2g kG'#[+~j5O dryF%i}SP+[ ztIΒOσdhiFzHe2ȋ.He)N$RQ.)+04;BT#- hw@1.mҸ;~\ǎ)v˗/cɲΝ;m ϛ>dTzķ;L{H ( u@ mk'xH@BsSPq9kPPA$Z( DE i.dV M-/?u˅-ڟk`(Cdu/4r맰{%lzJlۉ;ڵ k!(߀&5-9VN?!n[8N8{"8tpǷ~Oذ@-1{{ݡ.B:/-N@X-ӀɏQ2,;;ŤeL . D[ - 7yCm -pۭoݾ&QW„cbhf=I{ǸX qлW{`s51h@dR;zL~Qcڱ{/~\3&<4ڵ7 b]EM97_} 3ޛTPTCXx8O{^ض@عk.D(w7 Io$e'o]VV-*߱2>W țB o"n nljg~Vdw"**n]{_@jz:V3Nooqrn;a#Ŏȸ\ Y  M[H ƊP5ʛcS.,AmbqAd|xEm 5NzM0~p|rSn֦uVV4HBZ9N{~})\dbP 8>gΜ/^hw.z 0q`W;ժU 7oń VOa#}DBn9nZhekWտvFa5lȭx1x¥˘ښye1~}Nl-w6nk7SrspE}@+Wf=^aa킅ضc9͛5 Ͽ}zk(ڛ[.hY ~X3^:fϚ0|g8vn];Cǂia:}az'ľغ}Vii4Q>r ~jAko?ū_B=vU B""53\ݱBX%Yg'ce",{}FDXZ_BjHH #G8Yz#?+p9THt9٢\UcI/+ !0bW q`dsvPUhPj{(@ 5I+4ȸhAuD=n'M%plhWC5׫3/YouV5uHO*뾀]a|Fۏ$nuڵkPY K} #&"##D!MȑcvvGegPrq$?k׮~䑇д{|H)+ 55!!@vzP8cFV(ě??5Əz/7n+@@OØr/uIPv,32p#%O>(֯|NLrisPڛ^93dޢy3h} +jt:u Oܷ!Ԉ7j[ni6A$ucz_V-s0sGxo b_g_CGС};7# &7W-k7_}#čw~zlN*>x.>d'ޢ*IPp0Z:7i&z56o7EVm֨U# r @N~/שUKy۳H@BoǺ51}ixlDeuc'&=0Xi xhAw!&P\- |$Rsax{W1u4R.7,CBBDoY&]&*-ԬYډ`{ i Y?]Фexiըo-۬ zkϷډ *w@_}5ؿseI(l ,>+_С=6o@fKeA:]l\ȤRݰSgΊFtqQὥe_z͆M8vhԡ=!cm۴@|vX-1K%eiDUĉS@M!J%>.%/#!c6kG-Ӱ~=9Ah7T.juy a$ߙGԨQ9tPg{nbuV0Ȑeao@T.5r1uoZZj!q (YHv:*>*dNiT% m(8y$v؉>PtL; =`M}`Y5kFIvS8l۾ VE,!ypEN:8]dQHpILIL?[w–T*ЫGw(Sޞ w{_PKDeŐTk Øݷz 8z4VƱc -q޽{w:H 1lP(\o4O#ȯ&Du!/&N,Y( <9sIM w>o7+ODpI'({7ocV6) %|AN! Ν;ˤIoW^bh԰/<}IX7xڽ_6=}}SӜngQxE}{{|o[I]t ǡ AƔOmv,::G̵:pyp2b10A]t?߹s,;t IDATrb'x mژhpӦ-%a}ŃdJHٳ;$VNKK+Xޅ^zGE6N_vr|ɮmHzbPӾN39˘3caԻwO^GVa2wr MUܓEs?hDU1_; .Jb"}H=ŏ3,4Tt w7~w GUE?`нk:Im23 0h@_8@Tp -Q cB-gЬSv] <4 4.aKwm׀JPT K2LՇvB4JMl ޼cS[[>/?o$ BX(ā-.;_l,˰@TdɟEɱ]]!=mK%[KdFOsd#DC]@uْ6LPUF@*a=zpfS(6 ~X3{.~:'h{ 8(H\~u J%ڶƁ?!-8i/_ƻ3g㞻F"nǺuЦMKO<>/N{ c܇0l޲׮GϞpK1UZ50,g]}51V(47#*!37;;D S| _~u\-gwf¬>I"H^=0qXL63Oa޷ѧ\%#!!Ao'myr2Li02S:w60m8E;އ6T7qqqFTdǂ1s[GAR dNs\ *!2C:z(87/rܡ7+XI&dD/~h\xX>srwZ`%ֺU |BKn["aOsC8 q]Oe j'lwNCgL* 8SPqyh qy`2 'cHk=Av@Aj&ߞ%Z :l#A-σu! SZYW:Θtc"+@ I[p.!ʮ@"ڵpEܹ_ .ݑ3^g7,[_~ _~9WTfg~i\6?jF~ 6FZ$ '2^zylb_y>sϸ!qD?~(>x<$}i"౔Sie=EgʋaM;jmlc_O<|]%Q]A:y1BJ?Mr8UP9k㥥㬯|Mm  )4LB(Ivn ,&{j{ ِ@.%! wq\p6eXHI3#wd4i#hw{9^O[P}}|wm{VO\w?Įkwǜ|'rmjȊ{D~/"K8'GE.O^4O$ ҊȦM o Et@%I8BlPH ".]8C5YTּǮkှ}/f8>x?!PA˾B-"[z΀ wӻ14x5?vֿV,=w?e߹Ta/Y̼ eFy-j6h"߱րc Cg _tg䳟Pkd.k)z=ꫯ.|>3FXB}.ZPfށV'?4p8lB}L?clѢ.̚5TX=5Y{k]CW7_-RgmE_>T׿~ؿC9p:T)Er_sǸpcD3fLd*y.-R(f/Nw4^JNqgl/:A3o[.pEg6:"?@2Re%Ȏsu߼ʪg l?Thu p ).Qk@t0J+ړ@̥'z ~IPVŃz,} _9Z){H"SO?G$?㥋Z όv.$H6{ߓ}I|lA]p>$;dG4Et@SCҲn-NީTI`?0O HtOZ5anJeW7x|}-Yc BJk+U )u%R\? 8VhVHO Ͷϐ oyzfsdɥ6R(EoPc67oA[K*{{ c?Y\Bd i#ciEWzR~Oo@6Pu #PjXUcb]ϙ.yJ5K鬁Oě$9m 9(x[g!yv7ۮQų:pB7+R JrĒAycg1Jm'TsJqo+-A鎀6%s )*?ޑ{I^~2>ꉻW&ֺC Wd7a ~fy?Ze\x"wX~?rP`{i)9Z9EttZZ6PogIZ}VS{qٶB .]rggJbhڃMy2J-=#{ϛdᕧ:ʐc! [vȺ?nJA|J~GeȄSyb=׬-Sm6ޕCNץV753. "֖BO*ajG\q~#  !f νb7|VS*1\2GlpX\;+ \]¾\QvTڇ`er&x2AZ1mYN ;3p<mw'tn["al$۞S-f.6nٖTЪPci+dw8WXh>vu"hB.Wx">!@u8>G*Fu"[ͲPa춙&JCwۖ{&@r\6FغjKnW$.D ^O#MfPzum)UՎ黓Y bc*ݨ8qZ #[h7_ė/bac ]׳uA o핁X8Uؚ)CZ]p͢f]d c*^G,p{X;h7es'-BF;ûE!7KcGiPAWܖ=@6Ѕ 9̡$U)莖Bs/Pdfuu]E\FB#AcG{!d#cczGwjgYoc: ȵ/UmCdmH TPj 4X[ 1X.ـ?a[$NC{!d#1 ckE_BMo.u͛lJyuFk7??<"Aƪk! CAg{B) ii)TJU:#uVT ^Y@3U]ЃzT D{R"]p@=%*!眱#?Gmdva@BVsim_\? ^YupcZ cU`r|OH@_ Я}'KmK R `R(u4h5?_Tl*şv5x@\ajP^;m9Їfw "<8#lܺ]v,V \2<܄bL{.(}nЋ~]פ˶*FŶC$JKvBVH[ EbnW$_O`g8Q̿BjՖȞ, k1! {cNc@vZYA 2R}Shs82fHq4@f:h*h)4ڣQR=13tqO.,Z-X8Y8*~T*Fت._\aG֢@7]K @k8 Ƕu{vGo$;d6­-T_g*Ez8{EK!vY7텐2]h+W $Hm)Z1PP\k8p]E@8qTڄ8]By{#QA@h@Ȍ `{*ڹG>hD R2U('-Rj)eݪ->MR* i\v4Fqώ6'gʽ7}Czz CXܰ[*[{}HlKe|hvLjBikƺZS5z34-]P˯6Ee)rg!{0UArV j}E* BMT@,8`Ru&it]rlrA[QZ[ת~Y6.*Pzb' j/>4r HGtor#?>@p^; ul7;Azӷׯ9C8ΒqpM`J'$iPz> nY)R)iW Zh7CX8.n̄}o 6˴dm5p/ ) MkOx!ʧɕ<\d44I0]~9hU2G+X#+"opU_wP\-wHCS5էW/h}Yd²+oRWSG sim_\ml ɫ2A wk^dBGoXmJ-@~X~C+po ؝$+N"i&:V*Rw6l IDAT]MM~)fM;Cjnw LO{rALvgn@+4 ih(ۭzVWnAT4VIċ 6i#$@j+K OԬCxp?=nG9Z揯MXP0uTP>5ٶEWB3Y6]|ET_'v'@ΟUiT5{a>44eGz['=7`RxԽ^T! M^{8HaktX=gi|{{۶bl I4+h9]zH\sI=zQ5g- u_ ,mS棆:X2{u[3ˏj )΄ @閴/c^<\7}hrvG0tAGG45ܭK%ҖC#!wm  eZ1\Ճ~|\,-p󗮐5e߹τ nKgĐb D=򫣯 yu(̀7!e5m.W$o[Gjq:9=XOYU}'ZgՋ%Z_pH@.iP Zolw|oDC>q8]STC=EEr6޽i,1g}|g$O1ٹaoGx>qC]Myz HJlrC% 7CS19般BP\v(dV;}ȴJ \%W/Nv|I6u\@.o f.m_>u7}m6d9K5xG9}``E\P#oA@lvG -znyꦗRXe:8Yi_\ W]N· ]hQԳyZ1׵*`^w|XAey,smdL4 `D=rkv ֡źp{ϼ)}tpL!_hq$\Z5Y)ߗ[ u GMD;딇̛u0Fzz ЃZȢ>%napS49 Kc*K OԬYgu2$mrY^UlvJ̴lZ|Jhtвsްgh8Z%fF oKrqJ0~|Ư}UN=; P'ʧKɟk yxIcRWFKwvW~yDVo ~pV5Y9GbIGpö}'(o0fVԧo8 Fc^q tz9 򍅝UϽ$'߲Wͦ= ?Ss~6K;K2[ӡş-7죤!58t_סž"i %\pt\o<7mT &<yAv[ &2Xyƀ^f鹋6tuay[N8A~tzcZGk$4Gf;铫c:43P^y>_n.鯊@`&`O#j~Pfp~9lqJeU-ijɃz|M߳2 rAnD$nˈ Ȫ&fjwh@oZj@vZ`iH`#M:8:';F gXz:-7x ⾿>t]rQA ٜ/>Wr޻d9 &i[ɹw~(}< _7Ѫ[q}:m `d%jhk-7yD#}b~Uk%AlDjb*ˤ;o'偁[QĶpE-rE$t<tS>L*F̊)MX`YbSe` |r:y7:,yC @oKCCC{_Cz46Fߕt#7['_-s'~T:X]\:F8ѡG+pk|JIUH0-UCy:XCҤV 4| VꁽJ`N0ĝÈuYMd&Zh- @.[fa_ ,m3tËLHC/8g\pY >6`fy躭X"3?_l̨ fxڛ߾qow klTKK#VM2rߊZoQs3OGsJm(*J7RzB9 ,@GvcA58X[#Ơ*H4m%U:w`(t{7~z~{{C =6Rƪ'/K@! p%pK 1=r਷m;392axsI5CЇ :G{R^0$wڄ OOA??j_?*v6 j@qoF1H Z|Ii򛚵 4D"|)pz";TR}nUJ$xFNO|XI2*R i]"վU)! t&Aog'C<Vh`x ړHDmOB-9uI9ҥz@fyQ`Bxt60.uØ~^i?1 &טAja??,o€{EU] ~z gϔi;Ã/^Iygh.׿G9*#Vh8٧GH7Q,/%lmJ T,m;</*`mDL롁hՀ!a#j̐gHXecYQ@.kU铫cSY^XuW3_*3E&>:w?HN=p@i8)-Hg9stFߟT= jd\H>_X~u #rbswM肒i6.8ҒtHΏ.gӖB0x*mj-dwmzަCAƪ4y(aɯ 8 `X¿&r.!Nry|]Ƅ+$mxEhHb[?kީq#I hՀH' ~(Cż$z04sEEERWWgvVC*[rv{t}4寔ʖքv6g>xX48d)N~ .B^Yams`sr ?:o෿'D@dVI>k4 i#ꑥsLDz@4D"|)p&/wAExtRU fՓ^ @w* N'p\׼]9cfRC+}#@`^2턤dKy\=#) ` `h FDaIrQٴfnvސ^~MnT"^[唲H|ጌ ,6ϓlЭZ/ 7V_2wH *8Mڤ(#Q93KJh%̀7)kAx|%M~]K1{E򭿓g 8O4}m ۻ8&e+i3K[%[5WH[?BWSJJX x.Z3< ZBRh^ǐj]j:j#9CST.}!ӔuWk_<,am疰y]/[TmnqE^Z8*[LO6LQv\^d^5&%Fl8Yet8jl(H8yvҶ<8D14C܊PЃR[ĕ}!IVsg^:1ދtH,-ܵy4rͤF4N:ZrZ?ƿˑ"sX?fnH?!R鑩ڒ4 w#83v31 #//#y۶ñP<ihɌ33ŧK'Ȃ: %lrlar[u>{Zڻ R5bl0B'BW!f G!2,(+׮?bKbXyTGDwSD-99)rOD |5-&.;d Rʹ%Mr,7Yw']UnU-qkEhG|_HIA$iRЇS&gdŠL [)}{ @Mk|[!+:vʷfMux[N v@k[ ]RUZ(-GSk#$^gyy[Zۻ =Æ_ @V|Zʧ@ZҾTWJeKkRw^msH.GEZkjc~~jw\A.kk?3/l٥kx-XU*wT 8=m5׵E"\c9?^<\'_h"M%Pu)b);:UBaFR{G[_jԵE&8 ~oid~Nf.*~O,I(`VHGǎhgIǴ9发mI?'+i2TCL?6BБi)}HZ`U%h#:/ۧ=l2d7!$@B_Y~?I'<νB " @?` ?wCrfZ r.z՞*f AIDAT2qOܢU<.qnY" YIoֵզ,sxL)iMCVʬRE մH/G[LeAH!dU4V~"H}SrT)iRYOqyGh'âf#N!;5S_5Г Аk4F7D6Up"@N$`0 ISJ'?[^tl0$8\5㤙A@F(vRƁ ^`mh(lh缳^9 җ-.>g@&IU3[n.E۳i!ES̈́W[mU@Q+:=w M'(pݱ/kPm5AǑf >"[[2p&pfU% }=fhHiĂWhHP<|> w6"@f b ln:|6Ahx.QiC"a]" )t!Ѫ6X T#l*T|=$zyyd72Hi+DH:5P.K}]@O #t]]s=zπA\깸/M{.|h Q@V:)D:"޵DWQLy1Y={h Av \=?T=.}?m`]{}[lE@z@0D@@" A r9D@@" A r9D@@" A r9D@@" A rFD?И<IENDB`assets/img/post-type-form.png000064400000006377147600120010012241 0ustar00PNG  IHDR pHYs&:4iTXtXML:com.adobe.xmp m&WIDATxoe;nnF(@DHјp1^yģ^%&F.%&F!4PH44 y=6 ͼ<Lyvީ#qIG{9wnؿIҞ~VҞ n3FZx4SD@fNiISIJs  p$/z0cxx%E@s9`0Gx#<s9`0Gx#<s9`0Gx#<s9`0Gx#<sz@qnNi葬Ȋ 8ԅ~Q !~CS1'u|a#<RpD<[+zvrCRNqTQj'7O8(#>hO|8j|8ecQD0V">"(D|"CpOثwJ{54}y%WO6U~ e@s9`0}21ޟ˲Iy |SKIENDB`assets/img/conversational-form-demo.png000064400000626316147600120010014247 0ustar00PNG  IHDR;PLTEk1}>9I$+VO6C]  bD*gk>L]xoNJNHIF!ԑ '̦Cⅺ95G1)2v(-ޭ^Ի=Q3=70;4ip?G:^2⦝u6,/-%$#6L[lwc=S7 BS9ʭekVXM讠3?ֽ๵ڟ/=ļ0LP.D~粬O5H11ЮѤxrwdeW 4불͚fUG7Th+C@}7*?8]N^iꙓy=t sw}~wԉNtqbWxL[~ pnCȝyA)eu~g\.fuglZ9@,7?LgcW |;(0:1~WS'F[f?*)p~r)R<#vQ{fls YgccJ1dJ_9Srx˰|iJL`Drי_J0sӲy!@06ys,Zj}֚}y>D`Pnf7ٽ;fu?UZ.c>MIGǥl<,;ZքƭM_\SFymz[D7[rhnDuUn?yY˕ {{nwEvgS95 '@\r)IDATxO[U5YߘAn#Ɓ, CTT-`ХTAg溤pXL`sXf:Y@aS9ۂ1z{i2f~9}HHH(_R_J}u0",j, Cɹ WCû_}o~gWrf.?盝6ڹxyFV[G;<izHHH(_Bbd($w?;9UOF.Ap[[s{NW:2' g=AG>&eH!,! ?2_o3C."+BUdYFT~=">OJwi 3Oq.(B_0_HHhOrv{}F# Fo#Co 5%do׀;É Z l&sWK/sjvOe6?Fq([~JҮ3g O̿'#B~"1>@}Ii }~*>? \?B bA0_HHhir|f,ϙ>2?gE53qX}t>3_cO}RL3bWN.K-1ihpϐ?G.E'C| ޘ$2Ebb" ЧI,̟}r?>yxf9bOzUkf~ϗi$A6\y<W%U3ӄKuO̗>i 5o!Ucٰ~ hӡ/dwm%vn %1fIzzVv*XBFVy>1#&C(F:mlggBA\4 }b>"F}>TGg.?U %}!D~̧ ęB'ЃpA`{VRIT/bBBBhC?@F>Al6F? WM^Fߊ'+|:3ZO5jd* >IZ c# *1kL>B )@3P7B?;8HzYHC>ÁOE|BBBdN2&_dFCb Sqm.RU|CϺ.3gf{pwk٧9OA$8k׀} D18L7Bݻ Ї$zD{Jx $=̏Rj$íhGC|!!Md>̯͐-eC|ϩ: w2Gޫw >n["lJ|ڙs_ٜF ?? }!wsÖdZ >ϡu{]SS~b~`#&}:9o`(80'//$$K2rt}E|VB\ VsFmxBA6߹GZ\0X+k!GŸ>{`>h~aavK{{ ;{A"{ih{{ vŲ47|NU|>1Ĉҭ7퍥dTƧT}jV|ԉ  }%."v'i_M>62[J. j^Oģj}|,,i,,<yͦ’WfĵҁyR|ٍ'G|\wՀHnܱXϞ 'cJ2&}'S[E|NW= y7jk5;Wp={g9Qn/h s95 ={,Gi\k^R^kͥodkO#Y^gZlYD(dG0_HHh3ORP_DiÞ]~>B_Ӌ;svc ~ J ÏG;ӫq^ġ W"czp_^vYd3twn8y22 ā87==u JoMG Է`T|>g z|!!e:3}ڤo6R}v?}>} W*OϗR[pOOϟD4㉏g!QmnAEk_3^Sle56:|]~`'4h2jV}=p(uoh>,6+Pjp_UB_@b77ྎG3w0Ϫ"QB3?ä Gwo (yZW\>iC;<)z(텹F/;<|t\AEűO%:vn׮ 4A8>|ϪE?ż3JSt?_ GõR`} #~jʣ!79ϟm>&#7 ̗FUa~yg„ mv 1Ov`1n>Tqcgy_ٓT+CӐgXuW|Vm>~zk0-Zc}J )ƴ4^?0Uh/>0D kO8v1Cq} > ϐ_AX?)|`Ц2x.ڤCx_~Mq1}3 /44p;mZRBDhj]J|bh5d}lmD \濒3g*C?9>0ejvC]7Jݻ`0T|3͙OCb KzoeGsk_//$$ـ{zjAjc}E2ԩ`Hci~GV,2q(^?>2_}./vJϧhd}*/E׭ԟ_‡z|`~hn}[TÅEo322Ν~Ç'Qu`~1L|m[|ka#|XXoՃ>B q k7װ>`Y/'Fp2\x;>!jr|N$`_>ݢ>/z铦d%9|`ǻ>[죕GOޯ}46YV^ S|b-b׺|ܣw55`jYta>ߢf"e̷23Kthl騞@ usz+0M-tN-Ȅ>[ K+%OŌܟ0,1?Ypr+o_yɂ@6h1_A?u~2Uן}!!Mc6Iܣϴ)&V?rSp/j}hZeio z>~b>a&j,|lهxk>ꞩ`n1dʇ,~]O) G?u5K8zӁ^X@B_ m.9LS=^dRST~!_P>3n<0τ#_ߓ}>GhG[e :tOFK'|lRejhCOSS;K6 MRs>0䕽ٯUVa@48p?t:^C||8i v >rk^ot>s;?^ާ辱6>Eeew/^%>ML~t2#b!o"nwhKuxARҿ'hڶ_ ʕufi#Hb~[WT2v;򳲲t/>}i#V? > ̯ƻC8}#{C$>^SG*>>M}kdh#f1oF|;=>鰗fvQ+yrp ;99Mb9@:@9ɹ~=A>1_ - <\mzb#5˔>ovfk|\?ܢˉS= q2|B `Y ͂)&|iUl{Nܚ?{4LC98F?٬_U~UUת ȑ#?=/j󅄄6.vNhW;P_z9ؖ|f>l6|!X%"G&i}~8<\^_#T'cpJ~rOϽ:0>c0ԹR* VOa@MOZz|>>c{:rxSJ]u]|G;us>HcU73[0T'_|.͑a)ߟܾ>KkKc_Y.i^1V̯8RhZeO^%b?2jb[N*ANog8XƬe||^ mc"#HުWJ\&;I>o/o 4O|5<ORo i/[^ }}NGxpa{@6,>g~IA`;6(ghz6BFTD4әIȒ`8$(L;`"1a 16nEt⏡sާ}ZV,|߾9f_0fb`>>1=:ͨϷ}*k>_f\oI'Xqe:ԮM.[ЯlJOb)_'o8Џ+2S22{cX #?MҐ<}?INQǡ:#;ϼRA}T3]}N?C)|~UfL]*c\~^  yc7O0?ԾTԑ_M{䋼>Ib2o["l3/V*'K. sr/; ffrsK&ToIެOU-bW}JJJ$21f!{\o|f><>}"sԹt3vʛ;yzRf_G d\M7KE w\kH|ӘԲ̿R]^>N*oL3# 狟בu+!*Ҙ UU:co:0f~,!{F?Yb>AO;9J4x!dz]o6?o,[JCuщJWW0{fO wݻ+6{V5טx$E!蓶g{%×(oV*Vceso$aSۃCHp܎g=s]Hx\2fǥ|lAb~qbOn<\\QAvΎ {_>({GΫ$CKVa`>O%%%/Ǜgf>`j"9a=1(/Iqf/uJY<\>!?CC>Mg\ɺ&%?Dif_ޡojB0;I,ݵcǣoK}zCQWS<.7gD*N~[7r#o%ƾ}%%5!x;ZSy>NքlKǻG?4Mg9od>zb%X7.?*ieb~-݌bB>&å>bVc~KSSO,19gwCė'>1ȇj'|>mO[ckU⫎-Q?\rG҃bgY^d>\ҟ}Zd|txW0Q2Ѿs|Yznz9z]Ff__|?UVq{ИxW4w'?[̏Oww g*_WFu~ޢ"0Pc b8x%]+єIlMN?/yX{g1t  4/S?%g/!?Es#&JHk~l~>mO{ˇn yؙ{ 1]` wA{o72&_; #s~ו`W*Vcp×1FK\󢅠_7@"#s{'zۻϷ~]| O #0׮]o O~C">rO<1?se=fߡآWPU5>>>RAvޥU͠+_@Vbfm13oU:b3şxQ+ x`G^yM|^`~HU1or Gr5#/'ݬT54Hiiiq ; 6]N)~裟$U(+Qҕ$|%M ۳z=g/tыxgo/ -収N ׶a|Db?'D|?ǰ;wo)߰w3-VOo}%o ܓb>=,ׇ٩A&oI+Xű:xcl hd~O=60R^1[|ޗ6Jmz](> Dگ0y̿CWSO۩Tt~ZHNm-M 7:}"Ԁ[Cw竍{JJMi=sܔ"!vj惡<_%_Pr?TZ%\>&{j.)fm뵜te2/Ak܀|eXr8 qLG=ѣTNv&%%>7|Jס>ofNkgoS=|*VHz!>yZD| }m^s`Ͽ?`|Q'[z|InW.Ȱa_c~V0s :2CZ.X]M3` \I0?GU߽K}\5§b#s]OjÍF9@̇գ{>}qTz60~=/3b~5|˜._:Oy|EM5n<>e_~5<<44_ @h |B\/Pd_ ۷(b88%8]7Vۧ \{i`~5|k?4kL|1pX:Gض+U*怟Z B9OwzѲ_܌>uff?877Wop̟&&|{n觇P 5}Հ |%%%!#u}~$Q/T\}T >_vvs3pXS~vvw&*̯)O|3YK*Vq+Kþ%bJ? W.>a|G/]:ۋx2ҐwxCtѼ7C|g}/z)VA"aa_ۃ:@_Z }qz?MLCh+,wM ͕/3>_f>/o޿g[*n=xeNj_+zb%;bUۃ`>C+#pmհՄ|gJE~|ULۉК>dfuke֯ .s*B3 <| ̞֒9vX[?o 5rjp3~oi"}o.SRZkY~ ږک7 `>Lop:%^(wt25E%zUܜo*?.;e99$1?RL@~՞ʲ&'>hr|;쳍].5K?0C6[-=ƅUℍ'3={^I/ݘ=g;^њ甧o&j(mNJ>޳(_ |D}q{|6| V"ONvlN ivog7g3zEWRZi, '1|Dgނ7Ϡ,ս/|Me33yu_1q7xcMu [|2rۑݷSd9qth#C17ʢ`bآ?GU/oҹBs-~re{7v15BGUP-O'Q^m(תoDʇbtnb~)oԫ;pv5!$h$!}*\7Vg2vds ǫb'~lEZ-|ї~h-r-}S'yɴeՕvGSOBV^߈tti0XߍnT^Z}H2q߻*/LO+L2.lo2 rsFʓ|լˇg C_0CNCJy6?zҶ|F{wYqt'󘔟KC~RrT  Omw=c>+U=M/^>]M/(݋u5 #j<\y`c7m"yr0|M !Z|QEjyc7OD|KiK ng|$NO}糿llck[lйY9{F,N{3T2A|TŇ}:+<ds,֏S'W2v|!p5Nr;70ՅGrh>_Dcb~EȗאS>6a+HЧlfDI Ssի',%#ÆsKag3:Yͧ~_=ru3'?C'n770{cb>_k? ey]|^/Oȗ ]VgD1o۱ocl3Z=WquTѧȡ|!у'6bCTD"3m+?L||>:jt^}(`ÆO@9ReQMR !_% Zn V[Y9[d>O}|k 17KKd}\J. ~PWŘZ>LO/OSWG1?ӀG^9S'C9B2߭n,+ܾd_C~%<{1M6<^س=g? 忣.#7~#ڵ>ML噃|B>X=wShO`cAגl>oÆʼngqc6pO?~Pjr ܁F-2fV!}|#j_" o{۔pvո g4>ߌN|hz:& _6nt+S D\w&W\}d>;<:QoRSSd)_E2Ev?9eu|YeiS2qScml㱋^׈/C_DYl}2OW~E3ȏu5kJ~ĸK%,CI1^]}?X'SF),Y_?dkTj}p5 ˲O.km6q9#`~GO)xv/g|c5t'eB~D8;8igw#n2_Pԧ{sgRܙP_/$.曻qjе}.Gٕ3F;xBc>Dipz/gfۑHGe)dnO&u_Ծ7w|-jƗ~$g||(즖}eO!*~>oØO|u~{6൱/8!9f>d3gnpyV cC?-WSMѸ|T=l~dmwP>nENz(*fgʠY7`>D}:V}>G>}2|>vnȈ!]27g1W!lXrCt@ 3Y;um%i3G/629zު 8ZPBd!v8uf<$ލ}xcYl;>&)%&'CQ,DP(&k"eO-f>~aDNLv \`5>c>/lրO{}Cgc'56ѮggQ?r)uډ 7\?;c"7gԿj= Ͽ8:kJ>ۅA^k:ة?h@?糒}|2LMKj/ml㱀GG{iʏWk"M B~%'(WsFwNCl6.2KIZʫߕ[i|$JdrNy؋Z홯oL?!B~gi ~xZ~s7?ʼnD|?8cQ58<#S&"3Eu {YH\APȷӯe!JC|;<}+mlqý>|AG Y#*#;0ߍu55ϮB'iNoEҽV&[F\ {-cS geBNWf_^b_Bo]mke5rz}nDwЁ`>'}_=Q,,A*0^۽)i|}&+1^o}AN}BՀi|)|:ȏ]׿L͹wqaݱg{|"{Wr$ݏwv굳~N0ߍ:?ouI2 @? SN=/W~yzo Q*/Ϭ=`u[Y LJOޥ`le6J%"?-f7H{_?gH ~k;_b71.!jMS7@Z۩z*\/}2{q/ T 5{;ڥ1?>|Qg?;|"^sļgH30ͳgIO[p;LB r?Ǚy<&ﶧ xٗ3h? |eۇ'embge.?mXS֓.a]LH]|M0+J &a)h=̗WBz?WǺ;KR5VקV|`>ę/p cocC]FS5|ȏiϟrkkS>-Ϟe z5N0n/sT`b&d\ȟ0GV\|t-s%g$e {Evmlq5IO|p/WNm= ϘϘjB(X_Y_ ҂K Ec1ݓ6_B{jݚOjd0g}|D=5?H ~ Nn[ge5Nr̩cQn>#oׯߝB`G=r׮]\ fiI؀ҺswT޹ZظL?/$i/AvkJhÛ:y(zA=-zW\>׬:L:~ll  4|~`V݃D:Ny罧O}n,y̞q߸XyX/d^h0;wlEZ:wiZ#^+>_<~7d>[\o">_Sشm<.{}z;/>BY t/?|8}K篲|~F_u>'4o&/6DiD9ěZj{j;R8 y^=CqN1s!_1`Vv6  pz[p.tM/ ߛ[xkL\y7W;)q,NAF@ E AT+v ҙzs8nbr$~}~}n| 6]v>0ٳ'q.1K}ٿːa RhcG9y;x3c~@g׼xq`P^ jyERM~'/'ٻ/_=zԍw ɥعmr.|ֳ/h߶OۈwKۂٍx?tK(9V5o޾r]0|>yk0a'GWv%}5~p GlV*m*Nދ 77=|5{w72?~t!_S{TԾ/M7WFڒcP>E܏E8oEÕ+W?#GC4iﻕsHږk"נ*v K8(d~QVSg=F_B!eza|B|n!Eyhj;ǀ}1}cJ'W_KNMu ԠvlJc ny`Ͽ1Gύ|ʿ' ~韔c3OKlW,B?}7*`˷W?{@׈Kh"?Q6h.yeb|O:P _c'omO0̿T루eRw~05YGgn؝@՗^k@Ton*}>Ȑ+_'?RH4![gUӿl>F?GKlY!)>ltb:|')StW+_Ǐ&{Lxʮ|b>_'MJyz^˳jԕ'`7ھv y.e aC仄ĖėvM܏u뫰H7o1A_Q4 -xxPFNa7= %q< Fg [q7"QZd`hǯ]Ob]sg@l~|ޓ_$MH[wڽk[OA^5oz)) Qt;///H/~ jfu@fH_?Exͤ{w AժT#_e~[m ݉"·YrT }y[_'@3vqy~~Lxo[3a*ϳ}us7"?0 ڄ)Fl1~MWI }CSJܻ{ⓜ!ȐV[OL];B͵g~_2*hD_6\g[lq>1kU}>+}>U*҆">'k{NCיQ~f=u  BC1{ E(]i9&%]?=j,Ҧѭk[V; AcXχ]g݋?xeDo[lmc=5jI/J7kG9G9>aȮb+(Qd5q7&ϷA0O/Py{y|i ]oVɱJc|"_f%Z,kkfOK0b>Ֆ]|IsT|m`bL:>%i'nӯ>S8g=|\2vm/ۀ%peڳvAC8ǵ|')r9mau͏2.W#H>"=ر?IK5c'yH_[/Ŋ} {>|Wš^SȩOy¦BO '6`>ZU =Ǖl 9[B=-n=sU;L -Unʑm}G> ܳGb''2\Nҹ ‡U`~ُϐ}j07S6djY}Ͷt#x#$/ b܂Sz8%/3ЅNzʄYӊ;߾y!Ж-۷3P&__Z -Xƈ )%~/]"}t]Nw\©_>r MHۯ Џ~۷A6z7/ԗSq{ _6cI,@9~# x~cZ{HplVQ+1MmT 30}9@>/BVUw5N983$7ԧZ WsCܧɣc'I@śS3~˷e7O_'FD{/Ȇ%V[uy0b~*_  uJ}T)v(ԥw=7QdbxĂl$+$+I XEDJ @줔GY,s wc|f|f|?3?|SeUaZMafYoεn>QȈhEK~k>{2'5QL0*/D>e_UU:'/#CCdǍsKV{7wpNo6}'`>^ P|lurǪ<&XU1`q]؋@|L)-"O{k62i;|dz:]Ν9R&pi}wIͩ ʐ{֚3J`>?66?:TFwhar[?F. EM~nU?;锤[}΍OG25$GKV@gڬ05IALKlICbvg\f񱸽B nA ;Թ!Ng5OUSCS762+~~j4"[(D2!q`Ai~UO$}vՇ=ٚا4(?.M:1v+Vd}|DYIKY_hoj צ\jm%jy^}rvS1\c\[B^ħͿgvݾwsHrQLS{ΝxnȾoq0gIu~d5J).{ R@￸l_)Bx_Oy|v>@?77^=s:Ͽvġh>_7n T|Т9~Ay~:2 h>aճ?:{oW@h3_qy;/,~*$Dz?D$P%?#2/uk?POϞz4/]Tɇ;"V4-|-aHLvT;@BO78פ)zSf ;{|詃;}՛m?LL:RFٜ8o[Ev!_j>k/-̚ 1{]Cfkqafx^m|ӿ󣠨A]Dŷ ÉǠ|%Sb D`M 3@Ae.(e\ߥn[( a:HO=?_>]ջG0] Ν35b#qpsc||hϖ'est%!;O}hoxKxvm|S5?޺g6}";Ν%GT1ZK>69zk|~ϗ= LA2Nyi>_j>5=| ۶n!GΝgu!~bcC??|LwM< CEOK!;~{ѓGN쓹D~ػO77o|vaM[{zZsܹ=ZU*-ߊC3m*BrGER6pEcP~j,'ްiZ[#*3s8::ro^T>bJ۷;G5ޫWWlXlG ;wn[%@.ao&_yCKu@G#$2 D)z9I>+d>w@, |m|6e"SK䵌\>z^6Cڧxp/0OwtM-k̦5nt';+#9-F`Wr(wϟ ҊwV? FmDΫ:Mϯ%;}k~d2!VO;wnTh=ӯ|ZT$*W} ,|&kHѮG|Nc멙hϚ( Gu8 ( ][+IoB~hZ[`7E|^`u!E= =c;3?v/h%rn/k{~ v+L6-}FhbRKu_7*QUGu ~bS[EeqzBM~wC1=}MG\Dz>k35E{oNrmI/#I^ރ2;_eve.N+fW$' SMp?9`_?N.|z#Ou_|9R, B~*J__WJjj~> j[E^·O G(uJuS _)ls :ws|_>֏[ EǢ#gfFm>=P:u|`_4SA ೿An#aI(q@.C$[/ڀmf\- |j7C/,c~ I=#^=QOf~~~=똟`F>?]:!jCO7:Obˡm ۷iɀ_kEϜ)H6N@=r?[5 uN_O1%b./B>6]{0?u8_nz EGi}3O/Ao} ]0=j=qG|5??ݫMb/J^z?GuQOb}~'MeW* ̋`_9(;T:F`@J`^-?i?|p3<`&r_z)|Y9g?zʫ^͗D?C|lEFPXHG3]fbQG.|]o:(uw6vzN}>Y/g:O|E{t "Ȳ龟O~?y~-I1QLe~}# 5]e~а?mڨbl,Qu84u٩k-܌~uE5J=7/{L'l~/ V`}sq~ζ=390?:'q-^Dcʴ}TRy ީ=Om1 Ngϟ2EKCaN;ypjD?Im>CU=v2B^bmcEԊI ӵnP:h6ڿfC+G+J\|]X馘)4?4?Ds"ZV=ky1_14k0{)|[h;s)k'>LƎ o8A)阰Si1s~i7[ %k6߿3VN8y~F=ɤrX}ɟOb K8M"jcz9=2m d9nF~u UK%l|ulS iwَ˷ 㠻}8U*!s㊟υ\b8;軧--j\ϲ36fOa$|>Qڿo+ 7w"^=珿a~2:[ ;"po?wf>t4&ۣ5 ]N4N=N {ԡO7{~츽ȫu=/&G='WHwF?on"ZA}oa~3?^~*6z% ՝d@|`3nc9iy//ۿbV$=_B*W28VL ՗M iQQ[(ǀw{~TIft x\TR7H߈)s?9JUN[c=}~O^ dk^X^dvk-|k]V1{=+M"^$ض#d-#WY8|q%jQ5Y%'r/WqJtvZcٯIQտ}0S)FC?f0~ޱ75 c6j`maaL.ŭ?:ﵬH/;&yzĝe髨pc/Zh)Wof m$]2)icڶ9{bZZ5Nj_k$Vu9x[jhԶh^Hb}}WZX7iޜ:T~B_!MZG5k!O XA40#&އH*p{yM%F6?Ga<۵{?ogܾ? ǟ|W}gm߮ڴCEy| 3i^P3ɽuצJA6KeÝ:SMf >2m˽هUӮ[ cQ%k+?~Ÿǒ5Mq'LREz&~pT=_z9g#YXSH\ZgT͝C_YO^Es/0κEe6'\kYdt5vc-3aeCl+4Z*4wyReT-Jo߳M0/U{,y+ﲾiSOlۏ dO,Oϧ}WC<8kd^}t2~oh%?B0[wy0/* m6YG3DJomlh*fSLZP=jdk3_=1<>xc]Usڰ_jtO|0{2?]t"?=>O:VALz~19Dža}.; miӛ.b_#b^0无L ,hHRN8CYVm4zNͩe::>u_0eVSfYuRo~CO)p6[hĻ$K/g]"p jqj2ǻNΖL_7bCn6YVѐFZ+`]߯DG/R—":] 45mm_ rPݍp9I"z 1P?-Qb$g&0L+(ڵ:*ۇtWXBbk/jB9iLoZQXf;Iyr~h"Ƥ `b>@/Aq{ W!r}|־vȸ}hi_(첢; \_0Zo@6f?Ɓ[3; ?U D|Ij3 gZ*-3E2pϵkn兊M/-.3ᔜ}c)u]I]Ju˳3TN-iE^tIգg2) I$ c{7 ᩼Htj5D<>8Gr'*32;_0]$^7EU)L1 դNheQ (0 %P#X3ߌgn!y}=eo|:i=w3E%YS|Wn7;_ =[jC٦=2⌐c7SFeq1-ٰpuB4wwU- Z7򖵳XvӉOS-oBOD^=%ˎ#|_@/۞b}$+/ Ps5_)w e8\3=$ci"v8󭟿!pos ӸkJwˮmPa@.qO eaj=wbCa>ޛD>1lϱsxBY*tar-\o;|%`XdaC ~HY]p),C7AS~x>\a<`\uO7KM$庘YXf=Q#;/oWmx8+?8iS8&3ύ?(G_tA6ֶM[7.MBJRT(򕋛W,|QYHbEQ|dG-t> 2D{r%v"?T=P^BpP7;~|6G#.Xk'aܑƂ(*Ĥ J*91# i\7ÍaqӼ5:o.Jw~2Ɵc{DŽXj|Q#{zo \C6|3H=?abng6|torvl әkBvtq5v+e1|ŖG*cb?EC[J6yaX5 _˞:o?!booO>W2o7.P̧ac0 %{*0̨;VD{_x`דO+L~#"Nq.Ej.cr?/)}~ O5ֿ`> cP Roϙx>Ds׀gݷO1 pヾ7 K5(8y}=)F?|Rpq ?j#?",jLnY Ɣ,|lKz[ڗMv.U v|lJ6뙼O=H_]z2+z8x)|'yCTOQ;h)ζ@g¼"+ xXȾr 3ϐy@P{h@yʜ"Dv?um D$ +r><UH棬?kM=t!Gy>e쳏 >D6ÝW,vpuvߙ>KRؾ涤Y.N`><濲}-_BO|YU_rmLvvIkG4޷a9#c?@GA[P,;;^\|G48L<&x x ^>< ?)a,FwJs|n/g\k{IWjpwCga߿W3~nq|,yr3UuKDG%7698Q0\nm<6_Н`c" r~z}桯/JK5Jo<X|@ϢE}s߬U|D-x#vm5v] %yA[Dl}eha|{ʟ_a9ؿ=qec3ּMUۓ7'>ئ3AÍ~2j>'>;w?-Ř8?L>b}Oiȏˆ_ rg3mx3k}Ⱦxt ruLڅ^uvuO4-,a~ ˙O&ΥB"T+/'9amE-ehoo&I )$zN!Ω䛒Q~yf&,FEy]15VOsԖǁK3 cX;6ܰeDg O _2!=ڋo# ļE7߱zߧ?*I̠+3.+ܕZorQd53N훇`S Nq)]mW-~nYlcØD ,N=oc\n`w{l<.dY_پ|9tdžo-`>*i6ф)^hߟy8.:*\> βr>{~0AyRCYw|s{4N W `_uY/iU jKٱjMyCV;k\eLlj iuAU4LWvKrV`ܻ7[U&\Gz /߽aʍ~8a7JY.*7N '/TT:}r+F]\t㇕y}٩1&d׭ob]q) a]{T/^?QS ˒++5ss;Sd5i1u9>?aku YĮW|dq&1_}mϠ}PxMEdW^i~ J5TlS`7#ywX>_b"~llf𝟮2W3]}.|dGO?t')z==K(u<c9uϧ8H>Y1Bwv}޿-X~?b#8<*$^̈>TR oKB-xk,Ӈ$O&Q5c7c>W>/"?RWK;| ӆGYJEVDW•2I{A0E_Ѳۑ+Ȫ5n{IK>L{U>ŧԶ\``[~|IP$:y |~Nݰge𰢋!_`25J絅P)L,}:mM4&_F;Lי^Ͽј9fS|$wuݯ~,Os] 7h<1dQtC9ˆJu$Q(SM- }Ť}(g^RW Kj4m kyuϿ%~:=i.`wl $QO.$?*1'ϩ8+yHwvV\~el՗?v.e\x}ߤm0v=9=9w\߅TWp e(>?q1S@~L^_ٯ72..!zLzDElMk׳`rAVy,&me_ /E@~fh4Bx~]~;H>į_v)5Ccxիl)bV6]S[XC_g>OU3,ź(SԜ Ct?j9:>79_p'Qկ.$ןI_HPK0c9ߣwN3E$"?2!ms5BښfU]3 1: Ɲ#ryQS"l$Noz>?ڮ]u9+p !d3G9!{Dk~Z@ݗ|+>GD0t*3lI~%sX櫫, ޲r;IW ͛Rw:o))c7pH#M9gߍo*TrqgWe6Je_uv!\bχ$=ʢ;sK )6{)wqjۨ+N?bwhPߝB4%}O J˰$#?ąh`y Mj8 PTδ_k> `nd[יOp/%|MwnI^mU>5sU| ȐӴ']Ϣ$5'6li9 h8v:MXES aSOl7ϽĻ iʣѸt9d̯g'{Ho?5BG_ Rq?zR"=(bwl_e'Uùm}>۽w?_tyO!El~;ߡ|Ĥ.|Hg7߫|v?qy"AO B.Sۥt?0X"|}<_?S{$? Y_~G}Chy*%4)V~I|Ӗ˒Gai/TC<Ꝓ.s0h>2q?y|~wW2!~H~v6#! F߯#!_(r^c Hgr>f pE#1i3;/{g45 ʃJo)|-Cn8RU3*"j/DOQ.nѶ;j/Wו3Lt:X:Ϳ\w aS xs u~7s&9{T)[FF'iME+FONzN8TWu I XˢES/F/N~ۺ}:^cH_`ݺ~azGoZοK1}w>| ct/sY-B;a }L{+c\itΟs>y/}um] (1b]u>yd'}ܺ? =*}Yq2z@4UhFLy\BA^)\;Cg'Eur^*]|%铙\=g v+\B|3cVn{+rcsKq̎f"^]^\*tGMNOvE-Gۤ)j|]部4gA' +Χb:rwDD> T23}cudӟJ Z/-6*0ܽ&J41KDqB\Q&MȟÐw=Rc d>t|eٳ9q >:ssҧevLt8J1ދ-(_$;Iao;*s^]?5!Gn4?ZyQ5} nL5Հ FT|C_{[(vKl Io fFdȟJ/wfIѸ.ͫCo|Bl~PQxu>Bq5UjƩ+~zt&t$|b0)q<}~48yaB3Y+o}VhEIT&Rz[z ~1P{SI^\8|#s@TjblOձOd>}~G+q6R/bS0kOc D~9rOF+n<ο8uG)MQϡwľ(ܬ`qgOiR/ߔ;0=v?.iblea|4!û1Crl,oݷry2f#G<OcmDɹ}"5x;v ڇo`{BakYt`;Sz>^;C2XϵqWVK}kkkZ3flQЕ)H|r(u:}v6S;ZWP%'+X94G̓ :>uP|0=:w=ZZ/d~)W3aý7N~J!_#s{}ģ ,aty/ܵԻ_t~`z3Y>(1=:2L,AM'&x(\=h]JskͪX`~>E;Egy+~5d U#(iΓC>0'z_d } JkG8|kLׇI}8𭥔Hr _zyhC}_M}cxfLѱQE:[SӦu}ψ;k6a[X~x;lz%}į"{[i3 |.|>ש?~c3FK ̯*m]-Cl3߹90_DX{?WI_RGe \69Cwry%?\5!K#"Շ%\w D~ќ. BiĿ%>6)Y wil_Bpߡ?|(CVwrڼf3akBZRk(U3MԤYwug\פ]q oO~7t7PH[Ø6LRn-q8~]&Eݗ% 8Ru;^p1w73+N+nS{M_y]>)5Q6םlu>|N*9\+3Ͼеȴ_Mds81AXO4r:pB¿y<'',goߺm3gn6ǙU_,>W0'Rz~BNVc+%M S#A{uAK)z}! r&5g|4ݴrؔ dgmZ!%a! ƾgblk||~Len/W=T>F#Y>/Yf~իW[pեK?~<ƾWr(wK:<Gy>p=+:9?ʇtiҝ~Vy] !8nms{DK7^xQ>8q)Zܝ|IL z;S6~֣)4WDp؊܁FDrQwxgyxŦeO2xS9j8>JN量"Xe 9o޼9woEA_z| '9s֙n~љ:?1@OMG8~ѧj>-Nԏv?fqQ۠{P@\r/aקpSg}wuM,X-}g3e=2 !9>>wIE^t$ٯ܁oڧ-GLv>~ܹOoܹs֑`ґzyATߺ㏳TG}_۲/zub[ 9?`#;_o_6}l)|c}؜H8c&{2Vjť㲼 o/'2"K}+Ńq~h7УϏQP.̧vǯv\~y؋ ~[g7{ǞL?:"}uʵ _XWϾ<'# H3@>?r^?tQ>.=㵓|$2IV}ۀSdch8? +dj wYT1 _FoT=}ߘMgJM<%ƻƛ6>>@Óɿ{p2XI{f}ߺuڳg>}UoM';:[x(4#!t9k^'5yuGY?duYv$&粱! B60] ї;#2`̫v>w?z qgԋF7^H싺p]RPKYXZeҢHUmmB.D]& o~3<=_~g93g<~o~3cH+%K_9wBB_0?Y)S#W}נUבV*.&|DH?N:J.6J +QW&%P3M iIjw8TM12əes@x'|a/ZL L"|>u֬[מmd3y辯o7jhH/ȿt kk?7um≝;}+殘gS~>ER3pjcQDtYk)K' Hqeɑ!U\GM g_57&@ILf>?r_% #O}N=Pb(Ke65C}(viP$~ڑ`y#?0/"P5znO0eޯ` D?鱏_%IjO4*iʣnBl?H/댡ݴREP1G@ ӗ`"1-Mj&X)uϖnh0&/wRg;z’as=%γ8+Вxpx}cK>֣Kh`->SOUp1Wy:2x} )WDٞh[e (`Y؊J.R3s}vC֟8}~5P߀u/4&3w!t(;nVBV?y&>u|A^*TU^ٞ_絋UÛM\~9?FaN?긘5yN5E:VN"h5*5z1h]P[iAأMߚaOմkw*Ҙ:KxލrX`/_vLY,e9[n۶mǎ|:&?.l0( #߆>=귑/_Cs$/݁{ȁX/3/}Cg.S>Etc鎽)0cB)w5)>{>2e(PāKP)G4+M5#?>u+Nktl)T|~# s\/Ǽgد nص닎;U?W/dD~EW)#[]#?РVFbx2o#Pж]yБi+ȸh}Y=c)Wk@+5ط,QQߧe~JLjv{)m7a%$>+߀xS*.x<۶ϓrgGGz7|_<,39 ϴӋ w4~Hn!MP 揻[&뷄U_Ç hG)U\ްy|u>?Q+풽֧QyQ<k;V{ bZ!O <ۯPn1M葔еш2Fao\F,e</nWްaÚ5k-3;sW\y 9C,AԿ=zO|F?x-T` ,3w>ݜ#Ŷ共pҚSԴ 4X: qc(d_e6#!j&o>?F\xéG!!zdf)L?>zf>loӢEsy v^]Ϲ}WNZ_!{ =W0|,:ssx%T/CJ~ާ 8etūovoSt FB2GIGBD1H!{fZ7#h}څ%9|i>r]l%]H'^a«%D3?"t6##9ƳZf㭷~̟~ˮ>}롇:#:Y^,>|!`􁺸Kwb>NZuI>M?j}~JXۿou!ˏ(75`OSXW{qdg;/_pmޣGi>VyXbԭSDgG{vd9o7}G}76n\F6ԙ`>G[?#< ԗ>ϯ~B}N)?.T$ژxl~|U|?ު280fZd\?]uJ*pul&Д -$2L$C49yX)v1$Q]8*C z|J=gt󯸂)^:G7'&>l׮߲ӧԚٓO7OPG3YD7, a˹8 Pv:VZ}N a~Q +gʺ/megm$Ƈmb |>~s?F{N>]ΰߊ~up|!z53D}O7Vӹu_+/|~(nsJʰ;⌻ءW~͂t mQrR8LmFha)}/iO ;'*|H@}>3F?~f?4ЭgB+WϥVk|G+?Selt;4@_*%/Z}v;^؏:;QX%fgww{ߎj"oq;@$wEOsH=R"a6m`vk4vi~;=ȐiS6E?ݍ Xy;9}HbϮ[is'3=|kV?'-|w}J9-K'?)>$T+J,}^gsy<- VO< |9w?^ljD R.%VEuMm2yi]-.{}RKT"0aEjc^j3G|*>9IyUu~?OT ֈ9 ?6{K#I?Ur2_~RGVWV<Dw.:hs?~(~| |-wc]jG|L %`>7^UFAGW,&leBPi@kvv? e]u_h)Zu ~3K$:Z>>i?|>TUxZC8g$?u&?>lѵnO3xyz6qѓA/B!ǧ4B};@'`>n\DׂN I`}<|>xi#1:. 5Cz/G}tǿ)פADՎ? _)( Ǟ,ӟ NjPv`-8fT[<{]~V/ݙb >oWoY??g.z"hyJ^}3q>{9wȏ10G#/ȟc>bl`dm[w׎,~Q/E<>vH"w{S-~I܁vC(Bޅji~2m =DTX?h:ln>Eʿ=\v폐4e8TFP.f\l?.HFAg79v0p"V W/kqƾec/ex?kyon~շ߾,<~]b\7o{#C߇b }C~!3 *OF٭w~{LKi=~Ҹv^p=MyuN&[6Ш(ƅ3J mxdHDP;٣Fvshf٦a&>֥<]c]Ȇ?ҭ{c}wKƾLx3_}+p0>:?2W˦B| 1Y&@u?iv@ό*\Cm?C9U:>5)n/|`g,3s>n?Ӓ܏B{nT_=Mo1zQ#4?wPy>M*R2zѾ? FH==C֞Iaz]BJX_B;tF fٓ#;:*Wd˄"$}\a G),?T dͯ?q%kr9rg]84ȾKjU v>f䏳U7o>X̙c=##O/~,a1/@?m?o% f>Cq{_o۸n NC/V?F3~I@>'"ꏭ+}:Vs?c5ӟƍɀ7!I?Oz eH#I ~>JYri@="\S'5A= M0;]P^ (Z'qÑ#oFߵYt饗 7 {8į />?>\d Bgn3 q>%Mq!f@?9σq~sBTNN=肬`Kc6vkoXͰLW$x[k8ͲU~ Lt9k;Ui P̏r<_v'h M|^{mK,a-c?cϓC9/^ބ gs.m'p w~U落~D<_Y/0?oh@q PPw?M}5OlQ4;շ \7,,R3Wާ&2/7*ڬM͟51!:4D(XB (VBD|PAVj[E*@h- ҈?ݡ;%|{ιI _F p}连;S? \~O>۾:}>82b=1+л}h aw~Gkj?u$b o#_/ZX>_rD8)O*Rui3GeIrYO=NG-8%'\̱V_QW4dkQ g{F}}?b#>Mٷ$\$@^3JtI9}D;Z{(ȗGxEx_ Yϐq e|vksbmˍo6?I}vQ9>o4 [:,|Y};tۇ5_1KI»XUSW.I7%p,Zd~r@>ԇN-!!b>}fb^ %KqL@_+2#E{o'~1|'@}c[ht|~iLS>o>vɰo~TYOM*6%2H,T;XOd"HN}|P_1/)6Iȧ~3?+1[U?u\%zW*]+W f(c=:]:q0CF|'ko^ؖǰBdpɋ݀CfsF;r^CnP,EY~>!|HO"`χ(/OS|3q,A>n&^nxv}Oп&|xskU{z=4xs'obuc nbN+;acX,Fn08I8~v~Ig+~y!OI >7ϗU2?zc.G߇O SE|jCAI|H'<0}ѢEcւJ)sj;,+F}, g0kn3ߕђG۷P#x,-BV}Q?>a)_l{_|~,?X#FY}Mnlכ+E՛>饄MvM\6k|r<^VVׁ@>4BvX|2gI苜h"O5#n}z>]=?_`^K 3?wrl3DZv"`c>ЇRGc4!@l}sssO"նjժf1B `E~"Ph}g{MwBҔO!̏'M1 _2ӂU$P1Ʈew]aFW)B>1.D0 |3_祽zrQ[d-m7m?(yXy!}J-3ȳ{1 dF?#e%"X`{rY{ڶ,>.Ϙ1cC["ꫲ?:iOw0nޕsСCA=Ч}JdH _1Kv _+bK'^UI-B"ϣ) T36y~-!Q:}f{'oNs%$t [ <7-G)rf .\4_rw_W [0#۶ =1BѻeUO}T~b:#(u.ʧs箜4o("~JؿhF4'L6}8TķuKJ,Y*iϫ{ qKW^JҏR=LGpK>Ew߳Lh1x7XeckGLf\ WBBpٌK7<Ʋ=#}cV 5R ԱĎL;{+0B޻z-nr}9ldL *L!.$cv$7#X //_4E}wb>\bg@Xxĉu:Rz]]Hc-ݸ'Hk~,%Yl7潫ނ7; J8"oCE>决 Ϙ<,'h.ݰŚwyGqe C;Vȟ&}*!UCA)#[_'"tz܊d-03 CI?O +s>?H~mݟoQUso] b+p!u뫯  #/U*Р/3nA~ȟh><,wi<|;V@>L/WBBpUpiv?8BeЁqF6߼.ZEq5&^X09ʲNaqUDWŲ{/U 5.c ㇁,"miE_!ڂP_A#A_qf_#W>ט_q<ڛog-) XҪ`.,eJ/ŀ>ԱG/zfn ?~rir_ɂꃌ=0ԩΰa䭌uam?UN+UڧK/J9R~2DoC7y\aS+!c8G:~Zjb /b4u$ߕ/}R ٣ӯ?HO:@'okjjmmoN\?JzndYgKMe29OuP߿4YϿ]|f>!SO}?Wd ꗒH= g2"|},FgC2AofYNz; Lg7΅|(QmN!DO,DHe_x R`EŝOjfO~o}ٳkjB֖T~X ˺3 v6RKф֍&>,I_46鍢}P۶_~Wq1_ G/y3ߟz| bIzhaBVWR}`&/yB_/"/|=ZɃ'cZ ^磤jZ$. OЗaPYIoM-M-P65Oc,^?ӏөjj7Ɓz5ж+/)GGCL~,W;/8> ds/ ë<}_c<V.߇H_B:a8<ԩ?/8/y)O~_Q߅Gq'пᆧץ|~93obcF_n|PG;d/x|~z]Ί97\AR_ [@լ<~"`o8ݮg?`mDQSg1g?BޥKNZ=S_X˗3֮e'uc7~s"% PۖU|A'HE,'0_o 6laiMaFzL͗2gQ/.X|`RKgrn݁7xaCY5uuwox|ٟ3ˎg`,/KRf_l|i=:̠~7RއS{4Dat?&C-7cǎmR߉m]wK|-^z/+Ӻ%r\h ؠю }}4dUhp }HOv,\<,q#~Xb>[`:P3<^n*$oSͼ1 q?A?>?sT88 {졍,<$X &\J0J ?YY!qF_ }Ot{l >K13P>hXdfvB@ ߸OT5ۋ;7AicZ"+_ui?m~wټyo$ebA:vJ3lMi"d@cZ9S|> txoe~|Rp'\ [ {v||7_;0|xP\AC;o PpHE pG&xF>l*ȃ+ A >|zZUx?~s4ay'3 ibZ%f>!E } >$گ므.P"g6 }O{ yEJ`?z!VH1!<;ܔM'0x_^?"|}pl?2lf0O՗2CQXB7!F~e҃+^{h}%|cQG> `~+5'E'BĿk ytc7kc㯢7gR7}ױXRKb4@L;0Y|I>| ѷG tBVE3P6L ~>/V&"_1"Cs2O'3󧉦S_},ރ5贷3w&*i?@>>vs-}!ONȟw0d>Y}f? PHfmu}E}9b #e~&=y5]ی~Vx9VY~\ V33—4s_!t3-,|886_cvB?\>!'+)%ZeB>K<Ї$ZwVS%_Wss紷O*goȧߌ}~6̟'$ԨhB*ϧC¹D|@Jf_A[|3/gs|U|P֮[[5@%9x/Pl槡Wf|[/pWI~I|}rOA>'>n|vL94~x.UH*8Ib ^<^;~&=Bt \|Gh灳(H{kϚ%:}L 'gk6_k<-ȿ~^?f>}|q'csD5 !?gpOM2@`ay{1?Rև"W~_E<d~F skr]!y+s؇k/X,u<*|O R;Đ̿0 `8 9}=KB UP$S6?q1P?u$W5|n[%~06P)7vC}Y @qϲ0.^^oMwL?pTH?5* *Ya%TPT_-FjkcTR+Q|I !*RV)b*D c1`K| * s=3^'flvg@s]ʺ E߄}Y}\{'w"G >@ɥ)RS"{}/z?|}h~[o&}jY\ᲁ\쾔+}"_WB?;c{kl (h%MʾzCrW8 7 .|h}WxZs.L{_¾Ȉӛ]VK{Hj| /\>g6y03k5muQzD/~2yMGo}{(̏x |nx>1GTq9&ϙ+a5 9ɍQZkx>__Qݟ^E57%==ƶ 2% ?e>)1|1$i{e-Z/Ila\08;}(n|D|׷zLf!?9+{Y.6|>׍B|))DnVUN⟇o $9>HwV:_OeI֭o~G[惫`UOo^޴]b_L};}ΕWʘwcy|@0~0@Umz}&oJׅ[k_@mΰ^WU*ѷW3/Pп8|!>o]7Vv{$5?> 3/ח4l2f2^kr)<;eWpZ|ɸҥ ͕cgUO}IG|FZ;'sm:sdGJ&G.؊Ild:l1iEix<|ܷY泣>|0@$zJIybnvE==&o7LW?| 췞󋫛6?dA75b1>̧ͮjc'O/?-2BEeF̿g>?T>쁥Ұ/o$ؗ=dПn o7ҡ{LaaW1/Pn&/AÒt;bODWMDZ|8#y6{n]ϯ /KFQO1ej9{8琮W㗎{2W#!Ї },8jub2~䋰!͡z}?G\ Vyd&)wX^߻|~-@ܿ0y66&Y! ^w."y[+5߄{[ {?}+i[ 0?ħ76' Mh/+Ϸ> =`?m製Agзi}ad~?]Us7W<["Rq~_ap@ï_!̯>?Va棹v`ϏsQ}~ֲI9QUlm3W^WdNJM}y+mK:5Hus~KG|[/F1111;1єt$_f|6ȺUGLh%=3ӀpE94,+Y}5Ro%W] }j%NjLSAwJyQ?VUO'aΓ[}8|uaOq({TK6]fQ+~WoD}0gkON/Sxtj@C~qz;wf)|IO/RߝAz V\>8>rIsss0E6QIbu1RGX}VϿ~㟞Va|K:p'NJб3*.n93DGяDc|>wj+  X+`'Zl@}`ڷ@>; 폍ه ^ԁCɟStRﱈͯcH |~B_?G懫*< ,e4Qy0=ϵC#MIPy@u]> ADswO\{Um-P»*Ru2ET]}rJ|4+B|@ ??qwD}|c7g e5zMMI ='=  m,~Yup^\0jeU 4w3B/Kg ͷ#+Bμ@<$ŃbGt c?7+l>3\|ͼ~]K;dE}E!l#}I;VˢGpc&?wi|\d~OֻQ~}1?.evO%7$'|b{N^+Ku,^,x鮎Gg7;{V; VVo`u]!4̈́܉| #fO1+ `o*+qoOOle>9v8 _/{of?i\Z=6_ows+3r>q06қ9l7Kپ0Pӻ)# Yj~C\>z.rUwe'=֦Z=_@SY÷!wQ9><)sv竦tVS yLxuazTd1Jx- 5unĂ9OIBזmҶI|}H/fg|h>&})'7 ?~`G 3/zW/AMfל<|+}~ SaU4Lλ챂1yxu] Ux:$bNJbzx}<!~Zyȏ^ك򽭵?|oU#5~ $>7M?}#a>dN|3?Ϙ=|5%͛d~[+3+/%H~PKY_hPfe  F~`*A@wq_˜vJkRyj]h]pUuwYת?c">_G=4,+/ԇz_/e閯>LV) T2G|q`J'ȿC}sfY6C7}P_>@|FM~0ie/TI"rt/*GrWaŅq`yT_h _/5Hw/Nȳ6[]o`aV۵e'6#o>nlZ}F&+mES׋tA} y;`W9{vΧW]{X}Q;Կ:ϒC ?;ݣs ='s ۛh#l|t;"?tW%+?ߏ;}] {4=tGWR5,-ۇ|DwS}3=}>P4H_n>o%=٪}Arz!w|w'fS/}YKC?|B}i'P~O _|K|s w_YNL~?-Ilu] iS>pEIwZ¯yF߫嗅*nG@|1OG/C|ATS,-MOO_s4GAu|-|-[sd>?>#5WCA_`꣄]0Y><\ 2ngl"ilXt;"3Dqe, A/ L9ߥ|=EϱڏbEz7{$Ӫb&R1E cK@c#ScQ|2%h? _ZҒc-}p-q}E3g{`t0|j-?8ho%S/I/tu|IyM/WED !t̻j7OH!#QtGZQ~R|+~O&o:菨?2产NB@xZP76ta36|ۂ[o>̷ }?HHioYh|/Dp>2_+npUw}y"wUR?~p3:9)k6:p/)03okaw MW9?h/I|aCH\>Og:0_F:!?Գ.K+[d];1_fY=. GI>@haaY">| 3%~f3?aO|>y/g~>:$h (Wj_|Vީ'~MWuAn{cTIЌ w GO@|_{+/'[|eDߡn9oG~Qoh WJLl/b3_/*G2W|{c8rш 1#;g:"zeg R>(|-vݮ5k9=H3yp0Zï[=3/T~ja) ӶW8?N}A ~X#}c|·|5 }Wopwf;6}? _|Hv?B}eBfWՇ>9%>V* )꟪CIꐻ 3޶TI*:weyg_G>{t?^K7 vI0;`,M)ĉMNmJ}B7O%fO|0U}~ȧ7.aX,!1`e7?Ѝ ~a䩏"g}nt|h%gb韖k ώJб3ʽs WzTlP*$c_RдZҿZ|>J{W:CitlC}/">aG,78>N|:}wO-%c|,}W'w2tn9c)~+2^R*PMmܷ8l>̿|xEOE+ՊyaWU{ ##uOePտ읋oUƃLAFTQXQjU֔(Mq}EF VBJSD4bP[!(V-HL νge;ߝv9ޛɧel7Sa&?;zSP0Sܶfe ?|c >>8x2.?s.r}![0߂^ $Vg<ǕC&o$:Vc >߯#yD, ˼y/?:`T5!!:ϟSOS:ʞ?/?__ }陟]~>}]~je~-N*$9>FOk664/ }D| ϝH_r%_^)W1\BrV/E|w{rS%6*s/ۭtI_67OJS[~O!+|=TDb8 ̯G:u wZG~/e=[?l>B|,?Ck痤'{.Oo_ L3濳b?6]\}(0R?WWS nGe0qoHH_>dDR_.~:Aߛ2b-3_~|^W3. }E|GPC| P[i]`})%F!} o?|Ps |>7ű}~ijV GO;͓/mLZke54z|{O]gvg*+9c>*]`;U~?~T;t_>Oc.2{7 )%|eM~))J/n2I*UO?P]c U#|Y|;/kSIPe pw¾6>3ߗJO }C^5>_^6.Eq*N9yreM(cP Sgu=4>)~p>~@}o(Gs]ب/&}dq~!w&mCi@S'wy/>N5,ޣ_ΙGl\}:F,'zc!Їy?BAɃVj}A]|>o;x=)a/L_qFo{p%vVf}"ǢtSKL\O0_!oo%z?2e!$')>b _в~*csacM }ROZ矂Cs<պ>_=uw=uϖ>PC$?s <>dkG}"|H(p ]2)^痕)qɓ:y0_yd*I>LvgԟqN: c- +:||,bѬ\-o`̟۶m[òxo>g_=S0MOC77dL_"g}p 7tw߿{'?7mg:Oe>3O+ p pto.r>Z~jTkfrTo6.KԊURs;O8Ioom05]w_.f~|Yt@~O[&Ake|Lw ܩ|迡/e a>KJa&OV\=7|rktDf4 m}] Ct7".C|~Kq6ޗk uC~pN/Ot}}L8BZ4pJ 1 OK|$ug>}~L.>_>Pz>_7&_e(/ Y]jAB%f]0uu=CCc{6\uΝ`~'IM`vH|ǪoИn|o|)1-OߓL̯ b1XIԟ~|Dg_sنI/f|>}P0Z2ߠ]>6Rd>lH Cd c,N z!ʷ?29W̎#744455u7u#/P^0 ̷l?#nL3]cxov!y"|姖Oj VN*DKv(Mjo:FD3cUҧU=wa5v>}>'8|%!xPͱ%|7kJD"hKt+[u*--Hxs3 ߷?̲#$;wuW]u-[ٸ߹sCM@e^x_IB07 /u~K ~8Eڠ8NAn4VNa9{xvs_ax;BI5_YSeʧ#f<4g8? RC+޼LVnܫllIpl߸|7/FD' }:FKoM_4kEym^y_Vz?s>O/vGk67ȿLOA`', h'n+◩Fezʋ->'>\gTWʛ(kFf/_D)γey7M}#0 ;OҥcYn|~ O;>_M>Ƣ`5 ȗ[}}U~U$W~ݢ֕Ұ@sdp>|u}w2f섛] By]XFke |NR=3a%σp/տ{<䄎|Lf;]>?A4 J ?m>Y_Nd~ߛF0})ϧ4*jF>po%Ow/Z C7eQŷϚeE~}AUR/7 }K=hh_BRG`V1zf:|] y~t%wkAb6$#;l}|lU iWGYSOjq dMC3xI{}O\Vau2?e>M2]|7o6߃K@"ǦuEngo_*{> /z~hA/'t7>싄S kN_okF/zg `!1'x4=qn)\?@vNOKh@ t ϕ1O˻(w.{w|S bP}G>ݺ-gEt}F_aϗ&~2t*_4YP ,W+qxgO?vR?!W`l#C$o T o27jFz>A#O/:OȳD3<<~]r E̕1Oq>?17>?||  |=k@Pvx풥N/s{['5+h׺} +Ek:aT_|>m>oc#F|aM.B_ n|l6a>}} K+=ܛB5>p'@<M7Uc3^9yt2;g|E({ t& '(a~W|uo>.)7tp .{,z|{c\Ӕ (wJNϧ^?N&Kd,l>$',:y%>J( o,zym|?dGǹl`_$_>|XRbc</U|=R Kb~ g_7W'̇ B}C`H2 Ё>a~ qMM|6M-ks l2y=\տl[ -{t2 P\FGb[ s mp>߈F?F%K&d\t#dfBvߨalߠ&?(U}[zb_m[$ͿWV-&ҟL)}=!u1}ϛտ`VT5yJJNϧ ĝNJ5-GQ&gȪ|3J|~c^Ww߶7ݱ`p0UA/ZS,"D1wZXjBc@ڵd3- >|~glAjC>m>з3k&Cuew|cw><}||AULT~ÝV}~('OH=_Ao}(cS5Fm`ca>}0___p|?̗EF[X'A}|VZ䢵4w=?]">a~/b _{Kj-mV _}e =GjhoWcC_ q q􂭢c O^Mݓz}cѷQ>6yw@3U %]Z_Sfau,?05ˇw|Cr}~Qo=pd|X+{oߺmݺFEk7J=T#Ht)P_đ#><&vhE?_n2vI{FEG{&=}җٰgj_b g0tǣQU;[kwQ_ur8꧰AUWrThSG gWዬE";"mQ }s#۶1|/׃Tl---6y ."~Kӗ_ݏ#aoóM{E|&}tփ~n^ǶtФЗH}iľQ=c-MWBMuHh f>HBqLߏqC6?!B22fa ]>zl q?t䄎|rd:?^xԛ ([x?ϯ50P_s5}F1bzҕh ;בO?̇&|P# ehqe>D5S#/գ!=G/uٍ{zǰjdih`{z%So_0ϧ8e9 L+{Rͼ#|= SN*8asͪ(%O7dO /נwF,3̧W+Edbaџ['|^t#|+ ]GGr V-@|@_^} c7 'onhB#ס74]._ȭW{g>#ʃ |~٩[…'I]qM {zV_n}ypPC6Οoٸ0pX-޷~KGG!=> LiM* yx/+~RK}2?}_˕1O,͐wr?* ,W:6WcjߛFwoC9|MA>/Fj_e~[Lubes3nc@2_?\3t;;uzE>(oPO"f|T=ƽeM2 ?/]9b'|l2},LdG|G^?͡㓭AOLg8|3W9y;󟸪(ռ?Ø!$V1n!nEV(Aq7qGQ Mp&VIjKm]&5nsyqaeޛfg|9ت:\i7}S-n902ߚZ{sl팘|>W۪;뱣#p>_I8k?n ?p홺0m`=CQ~qm#%}>Rӯ+@>d ޫ4xu0I87:|`f~)$?)lϫ@xf⋩wFwSaoBHq[,+Q_aq/+b~ׂЭw,ȜZ_Mv>bMvxfc%TGo)C!|z|P@Ԗֻo%_}5k7baco|eU5dI }Z ?}!Guv #̯9[tDgJ_|>9l.`>Ĩ +0 ȇGF_!84 Gu|ehh ՌP J>R;E_IՃD{A4oJ}(dos3S9o RB٠"R!ţr! ǰΓ߄q ?B1#1}>CL?o>c,qشu:$"pw]:=1R?狩{0z& >!C5b|JL}[y6u?hu(;PJ_g=S>oߌsޞe5Rn 8Nԇ,U!OARE96 ok3>M^3ƳߺuMܒ|>'7p.Wg=  {3i0ߧI$X헵*HOoEjP|>Tn?N.S)| >|}1N=|>V.kg\;dcw0== >iTO3J蟸ro&/Fp3S7> Ç4gfl_y6F?ڰՂ;[X30!3@MJdS~b)xT!O8hگCo|f>$gM H'ON2mp8{aNB>C6x~;~!9+KzX{Ǡ) ^ZzD(&ϞЁ`~Y| K~/2H|+Gl\|~KcZTGDu8y`?ɭ%d~W'T+?wf|eB_G_Y0ȗc3s*71R/w7(Vo&yApM_{'ПQQ{χV[?'e|{h='=(*SX-K(_{/ }6G>>wt(|‚R+B|#Aig%7`0Pr imy^@Q<#cWNf/uls9f_RWF2o;{!y$qF$G|51Oȯ>N臹|y1E0{h{-bO{c-[b/]&/M0cp r|5/ =>,~T+󩼱x7'"yx=4Pzȷ3W3/0)K]Ϗc_ ^HlW/_FAu{otkO@>f$o$)_{6_4yT|Jz~@.!= ;Ӵ_*qZϳby7^<</& eãO>t|~yBʳ.cKGdڏV_q\jlO|գ/=!~M>Kf>Ӟ3g(;K1Ez0[Zj`> ߩ5]@S=SW?,յ 8u- zOM} ЧPƧl>ʯ~oŊ~ʹ%~p7nޘӮ2>;>`|Oj'T÷T!O>ϿqrĻkqCOϯn:ۮEo51}Ou4Ǫsߵdg7^zƱ﮺h;9}B~MsݯިaM?cBz>jcDpfO3}O'ӎjO=a 4SN'2_F:z;:F7 y-qt+ND2TU5X G@;Ngwjܯ ч+1хO1a/5| F/[_%dg֬ȇF_3_o$CmؾZ>?j 8::aПRylFxOWw ޥjf]}S)'X }ZMC|JTIR?xB޷'_rK}̣K}j >S׶Q|Ȁ~o:&}b~|PV0Yl--bnNgKȇT>3}ߌ *b>Է%>3OЧD~`Ͽ]wRc*g;#)ם>4uՑ;|A{}~<Ճ9EJ/.US%j,@2A<{Ɵ->50w"x')o=Y!_OKHfJÝ7ulA{,wĎ\N&ѥ5l IybE0OMO{` 1ܖ5#O;ѯ/Fs`>G{ 0/JAА_v:CjS<vNgcM*(Ix^?P>|e yO ޥAj=9ILgwoX~ϝ{)TeF%0пcNc1F'ix]Gso2~s|];f [5Wmy`FB_7BZ`>޸oOǷl̀~#}zl=񳽣@>\Qu=_"QTWs{2Mt{!y*X_잤Dw'"ef|]7G_/G)ܪg>|8|h? ?".$l>h @FsUtF32G޺|V%F0W6-$3vL@Ԭ|vn,&FFF__gS?ݼ[0?8b~JU`>gŎԋ̦->|\}̢Jб2*1{j}9 d1k 'Ync`c;>ؠЧ*een>)^!mD#b3ߺBtx=_!ćn=֦ؖ&B~f>Os'ekk7ٷ|dq/C$>|ɇ]` )B~, ZB3T{79%?rDGJssML2Нԡ7R@ںZ_ʺ̽=s}xx!(\/E|hfsP>rdE#>* ٍ C!yف=^|-L`OۚVwCi+wO+c'Ck%5ԿOpu^uJrx.t[9w wݤOɦ|Ui}~^dhc*ʆ---,RI_A3G=1ԃ~]Pa_f>^0D?=@FMч u!̇ӇA}gcE4C/.α4K:XCϷ\DWe|uiunA>_1ՈmmD4W&_`/W۪ 8//|%ݟ{b6Ռyc>|w9|a7]>jŸ ǰ=W2s ^ uUQ0E>SVwAqw#?Cnqs`O*>~[ |~fBccwYt\_{w|A1ۥu3w5lbqx׷5i ⿬+79_G 3|d]ZlShxIe5N$Ug;ab#k B}sH-;6V ^DxP2UQ0?ti@Ҙ/L< ߿0܇b(A3?Ծw~7ЇG}r_ONS:6/|l<4wlU{?k*=O'&Qw!njRםՌ#H/R}nf> U#lY`Q'^&U;ت,J?K i2ij]->nއs˴,B=zǥ`h47Ȗê[_*-:fLjUPyI33 !ܛ#YG̬|hx}jIa`_=|>o*#W^Ɍf>^A^+6*o2{7LOEtU̾/au+ "qkޥ3p#eG%oX5|GZ>.Ʌe|g]=oj"捖l9bCo+1_U-ӏvuԴvH' f3?j߂?`okl!02דE۝wPpeC`/!܉ <@>ۈ/w06 H4(ߺ3S[<ý/F3׃@(o,ˊ`S>616r"_kӲ̯sŶTMLwUq0~xB7sx ھ=r3̟$T;Eow5T,\A=>}>ߥc|sf6R6Ḣ]tGȯҴ'EF6f> k0o?ڡ.ב629?ZgU >a.l us|8lL9cYnS9EemϺZ GRE|n$E_{="3GcF'n"tFn+ ;|%"܇l>OZrtNm|1>6Ć *# ۾C=hYI>ȪO ^Vk2Fy6}'x)LM@ -y@7Hd~bbHψ_b!a& bsşzղ:5.DC~ߘP~;3_36mok6>0>3 D?t'#4|>c6|%iO0˞}/G3]|~ld_Xb&Y#X).ٳ<΋uK^0d]LZ"gfk8ٟ\%g>?4KJ'xA;vFP>ٍk{ͻ1À6} <|Ⳳ; _V|Uԡ({ksZk4ջWIgꯥg⋭{=_ZK&KEeEE__[b%<N1>>AoU;uYѽsFߊftOܯ?v8俺կC]>Uqn=nK/mϫ~m~|e>|jFeH3߁|;/,|h?nˁu+} W>C/ D"RZ悾Q4؇46X6t{yI`ך̘ D|&?s~PoyÑy9q^=̯itϑ7W ͷM> J|ZLw9C_?mi)d~+j!|wd:D G7ϧ4{>1B~W s\+1_\~̼R\ܟkq|>Uʟ4huawOn+揖YWξErEQ5S﮵~1_7*ԩM3Y$"F|'>*Uj*(.FAA (J 6"1ESM5>1iQ1 DM3sr;NgZ׶ߙh3s=wʅ;XˆX')|Ab0![!}~1ߖZe|R2B_e`/AWe[Ⱦ-'M>?2@o)u,X u=|hEwG>{W?@{{_Ǩ8*KQ.R 2r|=W՗_v,T91u ;2#4-\Ҟ#3O}bX@n %Hz &G:bCî{ӾSh ^:|^^M a|_N,?zFnc e|K( GZo:|)u||4Mʑɾ?#yQU07ȟZ~ӧZC)ф-/wO@<06xYC];p'F;{~_c_o|b-KK0NLL>-@>4O*Eb~K~DA"x\gA}ٺ{*-k|.*GrE)2KceF?C~cBDze:|  JZДH6:/C?Hyځ `/554M}/ }Y~rE/X'I|[w}-x̧Hkuv_ʘ?o<}V#2__'z=$c!0=_˗w>CۻwwfK,Ǐ͗0r.v_z~\E5H=?OyR_I2WBsj쾛gOG}U!a*dc0?};qb M$;O,je[_Xw+Ogcᴋ'v>$>})71B?c͝n95V}"?,݇h̬gaOܓdg~=QhY.^I3;ۻ3bϟ'{)C^ɯGx]:$vhx;:_F74O g( a|/6_sウ}[q's4P*OC2^_7UBiՃ"χD6-,"&KV͗{s~fb ̫sU;8d~feb~|[`< * L>|}n| CmJ }@rWk/vn\@}iϮd>/.`dXdw#/˲HyOs$Vt ~H(b *NkG!_?--a~\=}A~d߫؉'v5('vCF$ +p f^VZ\[ce?—?udx pȷ|޻{i9s:\>5/KE|؉n|>y$j۶ݻ6ozG8~PI05E+{ȮO0d4ċ~.k0&n>JՕ\;wF~}0{7υ{ gtMK3-@s6t.dm~jy{[BLq'сs1eІ }Ak5q;t~}PE7Oq d|={\| w2d^ r#/>g,%9}l)a~so7+A l_tF~'[8Ǟ|bp[[A0$8) {{PWW}oxߊ,_ƅj_o}}=D A~a[JfڑZ!g?&O:NF㗱.OO6v޽҅V y1Uu|*^ 2ϛ8OE~b#Oet.]1wAe~Lh-gdROo]> qG @9O/!gEI"P_d|J=:3otO1֢/x4,E8?|{@{" 񅒘|R˰c|G^N_ r,F{cS}̇GBjB଄l2Mˍ| RU SAsp%wɮ<o|a-#,B E7Klkžm`}J%Z|zF|jGma17r=d|JA//__`~Ĩ~yeA06L> }~Q6c$UE(Qft^݃G(R`^ߊD>/#߶P?NPA1Ӻ}vEV\{]y20 OIPyqre~]0g[<4dl.8޻F@>N2} }~c#Se y"7,~x=bQ_Z|X.PRsNg!vT-Zv22)}v4 3Z<ͭ!$ W1?cB\Kw~[fj|Rs0>lLrC|ɧrimٲ{ȷdʭ{J{9> r$ܙN|h1#++Y pӅ+$(߿U>5O k0q );9n7]F/}hׯGAf,As?9_MM Ϯ*>ѷjvفaw`rVS a>Wb|{͝}=قh9v<ΚϗOK)4e{]lٲmۛFQeE>eطЅO#F? '(| "_}'' oX%}3I/VU,\L}3mFlݦpjjƫ7c|fZ追d>e3S{|@_Es aľ|00d~O#Tχe|_[rhrEbeNl O?vxgI2o*5"90i~z#9QS~ 9看ϙ۽TçŷR`/W٠瞉΅- O߰$klBڰBc>r:ovi)ou*߱z7*jBg WPzB :~O žA'gFi\J} _||w7/y moH|$+R/Z ֛~'SGm *;-0]z?]p|M!>k]K}%*@ 2-=KRRW[jF+`nYq1~2r@l3 %whdf#Swsd~KZN)<~ iZAnuru|C͋>P>f+̟gc=+| oY C!5r<)3,4߄F̧ͿGc3X]} c#Ⱦ̗K>}cT!rH/O]VyHo=qO# +ȯo0W5|f'ǃ? 𹜉V G~SN[7+VI}kٖמDuh_ i]~d7G~|TmJ:o9f٠x0a}>Uj{|5_]j_=_3NЋ+=Q;}z|"Wwo7nx/W >"? j?'Y|yOO(V{xN1E:_& KBMb.fNBⳋ^!>70UX!"~o~rR4¨c0H|wUX7ѹOR ؁7YIuvҧST) -CJ|}0+_֌ު>߅[Cc`ߐ|B@oHg>K}>,m/GK7}V^̷6 a~}}ᶂU qH(uH#A}ߕ˒|W;f3i#2_doL~G?D x &UVy1`AB"a>?=c~ )/ Kw]ž<$8`o e\,)*s:O 'C[MLO>b [V+?ȣ|}E>3d.̟G|},%<?pߡGo/h?2]OE)}-gItoFȯu}~Q6>@m\ND)fUG CSG'- OV=j_9 *ľؑܘC1pNL{.݅ ޻V\g{%]22޽})KDG]ca(/}4rC={ "6$ޅI-a?)Snt>m=;ꎹw@}~Y?2_S:ONv"~f*؝h~wwrIe*[߻*滣m ?Sڶ~=S`UxTH|y0Ly H1?"yټҺ}R?*?#ͫO2S1?ȯ.4_y}>\4%7u|o/3_WY/~~=j=@P[ y/cvmkyV~%E@ܹsQMC.eHE>$7?0w:LQ>{7`>D9$7X[GO_!yC-`*B%;>ȍXrK^ &؛T _#s>q%7$>oA" 7zꩧʘ/g%v͈˂8[׌<3TOD/O.zMB }}2=+!-m>|>>1woۣyuA||#"$.b>ڷC~@߉wĖ UHc`/_xԷ߈ںSTz|feI&@)l~Ϗ/`>qxoAȇPyM]w|ȷb>4ېtntGRMli|̲3-nj$CUL3㩌yF+L_m?_z[aЏ-˷伏/>?'|=̬ ёGo 2{Qz $d!C}ӱɗ?wB|eArA>l>Ez$/N2T-̳•ʿفa<4APq>7+mzcMF_R`r{Wgv3~[ukㆣC81[v跷POak>,c!)[G™~ d>6.;K'| |~d1Z0=ZrWO[W3%ST}/쟠$.㣢_oYw?{|tۺu֭0>^D[Y_'묳o߈>'LY\ ^Y"r7ږަ>Gi?Co+ G}}0n 8kVYrV7bwj?]%i E/P%ʷ& {սx x&/̏eFh0u _1_Wr:>}|4;*(ǵe bES5HƅźTGQ)j,DJqAi$(,h#M &FEq ~=3]/üy3ߙ7ۛ(s\UU??JhZ_5gjUjG_-ޟmfF-s0@#Q2z2_0 !p#?*[nFuY'ٿL`+ L.yTp םԾ%x98O$VOWlrP؄2 "6S ;^6 Ae>/} 0[#*ȗ%Nb?"M&vp=>k* ^Ձ>ma[0yIK;@uxHN ;lO_/Ї\cd>?`@_ `Ws8aG 7v@˩=znᒶ|B ?$W\dcI\M[ ||Rv|W/B?̷}2_mbh3r)?;skz30p=k 5o ~oK|+ېGRa3mGpD~]v?h[u ! }W>xK_(x}Y]1=~_|4 )7b^_ܺe>;j<߹Cc;Q]U` J{ IYxX?,0KIr'= \`5i'E_dR&+Ȕ2v H|jU: t#0 И'@_`Wzyn-|7vu2?=,Oa1B_Bo >.g@݆$4SsܛOD<ۂ>ջ[>2q6_μ{]O$ zwnqP_ znժUbw(MyTaJ_/9kH &; uAs<=76uO2?IU0~lzB2^ïf' ORWD޵ .,@|aAG>o'nEz)S Frl >R'"mxWV/w!-e%"gd_mln- 0Ǭ|?6iaeW/V"kӝޯP OMR9>ߍ;s^=773oAjU@d~.e|>5;ա>Vb]c,<{|3?&'j]a7}r6?czM1^M, w>_F%24]ԲT>З~/|}U2lLx_x+|1XVu }P?D%DY>;L|%9>_=٬<{}Q;|Ez) %'K_V(G7-1؁V1?^UTAK>2_ԟz*YL1/CyFkUA c j-l2_kP-#AL̿{Cw|o;:6N1ȧd.{,_Sjrz7G:wq }aA~C=OW\8E&?m_~|:_veND xN8 t>콜CuEEomͼ . CY*zf,Cxґ}S$ FK~%> O2UcTOOOpi5U ;+_Ù_@_쁪?m>0}w56tYI_( zW![ C Woe˭[tdÀ3TOlgm@6 Ե;O-λ.h`)3~r?D޷z!2^WeOA>E _7}z;}҄~Hb΃Qa~=&$S1?On aGJ0> =%HO0?e|9X|j_b؉  GyH~n$k }C3?wkW_Tv6o޸qη>e5F_26/D@Wzv^~ᮠkbrd/):0*?0H澥Zgr/5'軒>}q6b2|SK>?2?d;NO AE/5cdϏEO9|̧' {R;')1_gnE=㛒5y}L柾sϿ`?]AKڰqÆ >?anph g_gEkپ$ev>!]<}:iO%|nrk=yG0_ p#lf+F̻ Þ<|/~oWK'n&`Բ0B'_Q؝q'w T2͙>/㡑/yЗtC(oYRC }YF6e>KL2hiۿ[WG|V[//l@#B{Os}{n)хo*@ۃ%E lEgm'![~(0laU7.[+[cYOM;NQ;Nl?Z]>|\!~)rU7է0wOĺ0^!pˍ(S&uO'BU|_dlA*B4OqWa5 ćGxtP=ER>AOsO̧6ݵYo||CVS^)B/zKpBH"26g;E^<:+L.-UݨR|:_uO| uBkJ' D|Q ǤMZ|-֟d~ U=)(HG@I3|vQ#Z6V7ϋ紘}~8b|b)2<ثơz|(`,y<@E۶:@Й-yW =8ϒ+-ܒ\n*C 5Mm|ػG1s߯al~n3Я-4(36t:w]V@_\>V_δeglK/)[-ת]8vN䩠Wd6Ti{J\kkFnR [$/@P/kh6KC`dˣ#y_Jx{ ;XsZ7:z/P<ҏF7_`".6=9|g#0k#~C}ފ1 E]ZU3g9wn dܘ=ɫ_PV,w$P?Bd/n^ !X#?ԿrVYӻROD`Vjo^~=~ȿ̿_0Fe@쎅 C:ۿO*8$+?zž?FG~Џ*oW)[O|A*Gflo ~Th3&-Wڽژ*jzUqdJis߮mV^N>iʏ|o|}dw{+cb"￴F_A~Cqh9*|s3Վ?ݗ6m_bT/V_E}~>b}}0} ;Qp̶3eKW\_e?)HBf>X{ٕ 8u?fwwK8H_|~{ ]oS% }MC߬GߗQs$!T|bS wDz0V/B.}q|>'%K,_fP⿊Du•P_Go y`5WΛ>o)a>o|>Ҳ eo_?Q%?T (ị7ʕE} `y\|}ۚ[|wЇ.2ڤKWe^\;.j:Kgl3OlzG)xwߋ 1W&S7M.F %8sN5Oz?Қ[\ ٰAv&ʤ&_2>tff_L{~ C|i }?3._OJu,e%~~A~ 7>W;jn; U A2߬!;9>W0FWX>__Qݘg ߍ=_ZEOc<~!F~~c_jbZS0L?@K y!Rl֬=зC@~Cqe`~4C.?sy/_<B7y,eM(@u%tMhZ͘11/J>oJW86z+98?T}gyŪc {hdQqnUcU4/^E|O1Q ۏq%ad\ ֟KB0_O26?daq? f%1)>s@>ǼOG6_EΛ&wtK,+HP_(LTRp#J'3 C#OI'yL|rb/H}Gx0W|=UY?N̄ ROjAYLPPį>H5o$Ww8C`F C@|*&M<`>OO of _jx"TF̯9H)_ 5|" p=<>$> B >}o>uHUQ{ңd? cUIǨA ypzʯz|*k}4)<=Oc2y>~%|ATͯ|M݆ލ|~%/oT ϛg]>1_ fa?tp_ 7RK> Ýœoc 95i}>uis3 ^ߊЏ"U)w/}z]d߯f}& {L2?FI.;2%$v|" f>H]) }O9Nf?0$3\>j|WlH|# ;D/"DF_w'cN }:oūA.j,Fex#`ߊ>'Z?Qf~w5fNj72}SQ>Pg $:O_#R<Hn|VH#vYGS8L[A5>e>>}u]l;{!;A[713hU鴻%rP^p !&: 纱O  fJly:K/>G||^N ?ׄg|n]>Mib$ctx9qу}y~(";DЇj v1d>k>փоa< iQg`z؛6W >f>Alk=o|w |uC~|J#=˶,_ho"},t$|J{2;L}۞%?d[d>_2. c(Vۏ|cuEϙN-ʄ7-68kOB|{?WuN0W+Ǫ6} ]Ǜ:4y0q#BW zќ|y}]^6whÃ"lCSs,|ߙ!gͥK| Zxcrg| ww^I(l2Ad[|k*(|i3Sbd-dRG|/>444<|K?&;WWAJ/INa~-&# S qΚ577zA~ s |2$M}*^d_.0C5lm>֋k5o}e>O|>,%#|8t>M~_^s鎣޻ȗ)ŧ83!Pi!>pS{ې6_<͋o.淠F~SuI~jFC-o̧"-X_@AS_BSBaLOOs GTMbU!Z-St><\[Cuu~=dg'r'5v0kkf׌Ect'Y2_2bw!ua/zQ"[A^:,fTE}Mn6+A 5ɘbMW,,ZQX؋C4r s.oO?;QWOϓ9z(ឦK#"|2ImO&GA$7(g}'m_z9uKF^MoH~3?Gz֫:㬷Y[3g{231{7Z}X:I>Ļy@^rpC>\>3P—'E`"E_v4$C{?k/.Ym((!xT?jG9FA ˺^m`) P u?^'*^6 ZvM|IfU;U*޾z*Ot\{~N |CXE#VOA{D> 3eVs , sQAl Y`g:=.tkԝ.-%oMU^·sr*^x3+|,a>5EOL^p'{p>ȧɗfF0'bbo:O?˔9`~}30?Mŀ~@|%0@nL@a>|i y648X5p!2[|4ƿ̿%mv`og`Tor_V|g0<Y|!ugS[3_>?mȇT,Sϟ^3<2<51DGSF3>xoͪ@|w=v┃|NJ9 -7=7_9eGGҎ;^SbX#٤Ule3|W3nCObݶrut~&OiA>?#Έ^}>%gd{>@%oXS[g>|P<`~,xr`qgnQ9|WuVUyUK0rG/ ·χz_,}@Z!S ---0[6ڵ ڍʕ`y6FZs_$|~=>3f; #-6w}7o|3}o0`>k0@gg8$O@0lYswd}}>ݒ0%.)[~<\zs OU-QLrz< k^]g*KO'M| ܳvsÎ. ob\0|u0˞'i]IncGZ?vn0 Idrz?7! C| LTp.kml}&Bs|$_0?ۗ"㶁jƒ׶2-\W886q \cL_U`l-<ɋeOuz]|5gw}^g yݻkjj|"hG6/F;'! O|=f48w.O%g" hSp/>I|3OTs9( *4փ$>2_i/`!Ř Zn%mΘi{A}6C,+mTGSU$` š*rAU7hYGXxO6δX8%T֙zdiqvV<l~c"\k)c]KO¯/y*~/̿6-MQ _^|Bxvdb>|}y4b]T#kh+r:lw7oy1E(ɗ !>>l?^xs)u6'6kM6)UE`^8.7?Q']% syV>z! Y_{?23:}7J_}7Fo[c"-+- S.5`| vւ@#?WE셪(rrli~ι314,Oy܋PW%>;%+ϵ.Q%(EgTHh0˙XP }z Y`0o;d}=tܡ_TuTڠK|2[D@l >|s/<}H+Fe彡}uu/vE~|/бO7/#8(]IY]q]h{{wp0uAY~>[՛G7А1D~7,'u<bs] =i`>.'t~s؄:ol Çо9'|Zmh_}Z'ov+ړm}s#Gz{YOw]{ ?+` g vF? }fyq%EsՆȑ㋷Jg`0Fk `QTe|#Skjyviufn&cI`_44JA2{G>ת8Tw꣋WdYg,}B_\ _g6|BU"-=7i>B;~E3UNG~@_61"i\?sA`yQ E)xF";|>ަ#콣5G9?08Ȣ_, M_E淎ܔx9$_賯a=ŝ;YOd_fȂ<k ϗzkRHWX{;j+ށ˼ z,L}їw#gX'Ɵ7^L?+L${$j|S,S5P^g{/%$ #TA?OI3nnf9"g>s`^0_B W_ODU%窵3+а{FG'!},\ 9O?=\QT`~;˒;[4 nw}y^)!Y;ÉN}|2{Sf>;l݄iͷWKпoGX?6f~?Q'}zÖ/aJz5e>ak}e>kV@c)_:OsW#"y=vapqs2C|%<+S.g6*0?X;Qs_ֳf~ dzn/؈~1mvNӗ~򋊅%E[W2W?8>ozF`"(ۄ+|ٿߤό#ES_\V՝Xw}7ih߅/7\[QQqTQQK) كՋu3_#x(=@*0?X;[: ^|\]xUf5L#ݜ;JNv?wDž5ج:F}?Q3)o":DZ6*OvȦ01tVƛ ̏_g$Q}S} kn^۟H|'w7mLC1By|[K?N?/ɼЏ*ܺ"}cf= sDx1Nw]߭o>(%d~ zљ/U~ {;~˳ qy^Zbg@xD~3_{E/.>_ԝ6D>e~-/̟>}v!TCUpx_ m=qVQC9|*z٧xܲT/S))<~=hCo~qYu]sDf?Usth6OUѯRF6 O;gώ^WcZE*^*i`i` _gz$<}qkۧU/6_$1B7g&fף[ؾM/gb7Ǝsni!X`3t~CN^xj6e %zT>痤w%.\]747gU14b9?(-'3}hgc>lZ:%yB*o ϗ >|H0_CG[c̷I|XPCن3oC}~tI ŗMw|oۺAJw}|{vf.ibn!l=Ҟڲ .?&:n1Q^yy!ݻ7z޼>HvckA7}:է+܅ W>g~bKg'}@zj{~?I,ėK \OzTkG]>|}l@"̷2 Kt~~B_qOyWF#n7|@R|?qC/L >!'/@r֏cc,Y÷6^yE{ko@rW6}+6?}jCs2n .-P߸oe# [mDSB{8ʈ.5ߖ.E&;GŖ'`Q"F/=N4>](}3G|h6H;_QI4}Hsea>ŽYS^'OE뜽9qpxi6q|?wݷ2O{9Q{w^B_+kmj`t`|(cf37 7[~1OeQlEGqq1q YYͭN>25õ\x^u<قutŒ<7?}u?:Ƚ| C/3Hc0C5Mᄌ YЧ`>sSczPTt0O;Yn箹:2b[7>ͶɩZ2[f~cO?' 7X|/Bdq ce}B01c!oi/mAw|9W৶ˀ~E.[~k磏.`>(E9M36azhȇ,{?@~1T4->+?n|fnOSDm㵏 !a~?A}>@+WۗsT~MK?NjX^4N? C{`S"syWi']_ZVw2Z,%W~}o!' Ӷ ǔw[(n`?c"t't_-"[5D(o~w;4c_w4?.M"̧oQ4,Uk/oM&|마2e> S24vI>"tZ|)waժUV7>B[[2]?05Ɨ:Wc*8nѾHDGClQ#dcWb6w5DA3"N'S5xCM[4 ~zrN\--~}}џWUF=/oFuL~JMo`_}xzzŨN0_s6x_| Usl[ Qz?"QkG|($f}2>Rm7Z̯+|s@?yz^>D~Y~F;n8'~3C1R* Js`/HXë"\O̧}cvM#Wޓ_ 5x]'lw d3=WTŢ cf?ٖ`>DϚg~P6;K':d>_F?KBGa>7g[.?K CJ/Mrg.A _'Wy733 ]v6agU8=$a1GgUIEd;̹/ D=<46xj:J&_M-#&m͌30}-=Gt^Rđ&|m`~[c犃L6ٖ=GY-1o]aFbOp}A}KŅ3ݿ1:ʖ+>?ʴZ2]x_} C1aܥkXˇ ?A8h scf|[g&df|lt5Mr2 |&yMKw9:zi8&i~O߰> }{#E'"/|>ȯ|M*BYJ̡Ȉ>䓫P\w=1 hY̙R}),ffJ.~y_\{l*:6:Dw*Z)+\HO珞?r3Uv[Ş $i:tY`g`>gO}apI/t~dOϫ2w O5~z}bӘxm_tE}>Wd ,ND"oƬ6!2|rUkѣ㻏DPB?RfC|k)ߡ@n/|}|I}~{3TuD 病|rUWb{^YAˊz*CciQ_{%/nf#d2[?㯔$+)_1wY3㿌tFߝTm>O'[jpE|OOnV_m j]\}&cSU%g Uܷen:tB5[nD"$pn{|~Xe>F>}qDq.bzBN8ʨ\^hʳk:gMO&?\\ yU.,ͬ>C[0tx|殓KQ_n2Qlݞd"Gcd>Q<]?Z Vը;A 7g w+KH˯ԏwnfgA||>g~oo]=!y`|9?IO3]4iQ%+o*ô8Č23}-e`xuU}">)_nW ArI/q~h Q@` g~9w1ZX0]b^+2o%Ez8Y }Omdfh0֮][ojwF>g>WRX{L䓫fnRsE@?yn+}>_苇  /-M̗9[bdU:o(7̍{ӀZGyހުX_jz@,ʝrEB3zڲy7߻H<߮nWv ͷp5'YPWU9fT)͜?EJI>)/= X8 0?={كhʓJ.8b>_oq6"@ϼ'2I;\2O|:`@> d1^">=k횼v`~i񞋈/s={Nr>7WNUϢQ1g xZl( 6EU4SXєg%yA1pT ``e~p_wD%mTsl!||}lֳ>g>|e'm!ɗcr_о&r~=`F̫,XV哫*@Zf[-c/} ٴ>N^-3GTL~[Æ4ǔYI&KplG ZR mm6L/V|(T:h⫵f角NZ/<>A_"_]_q M{3 /|?'¼->M'WUvhf<~рg.<7ٵſC7_r??|w^اvhєtmظqD>0=`;Ak `>q*ZU_j߰ JvZ{z">w}.s][2_1?u>:ϟg~Ɔ}[NK,E!rOϫ*INJoٙI3scXW}Ѿr_F@!~4{fh}M7n9tFՂEzbjH.c=.dz%L&۠*P02Z|>?Gy>/O_ju|KsnC[ N}>7t8C@?'{>,痝|rUfՋha@n|i}̌ȵae]\Ұo? k*¶{*~gx!?Ol~p^C?G6f~;?HrsxQw`>Uޘy}>lϠ#i^|~SqdeџWeq>]m-߬)\:=I!|Q"_m̟|8?!"O_ou!\ϲw}}ܧֶ6 oGv')/>5) _>U霼A3XoLt҈Jkٻ~b}:}_#4K wχ8£`T{ׁ#Y > QZ`"T*h%n뭷_{Ab`sز>G>u̇~ϧ>1:iwo߷=fR\PKPB 5| 痡|rUq7?f >[iO102͗e|=[9DBV?KCtP$>QoS?$Ɋ]旃|rU!ZsU7c3eWo:W %&/:gP'7X>/N͏R;>K# vL /觯2'j'ng? }uT':k'k/ࢥv?/N#'PLU\ yU?EeF7뿫P_q~諯`!p}|0&opR}>˦P;g>/@<-OO</rV;$\U= rC 2m_] ~fW)h0*{)d!޾x|QSEh?A]x-̯ Ūxr]_#A 2O*OG̷/07[Wwp_qy?Qcz8q?`K@q}' G6H泠䓫2u 63o9~<`Ÿؾ*ABȫw(t9鬖/kG`rn+ցb~ɜA7NjTD~"O3GO|[I'5lo'}v;/첫oo?sbJ3AϏT1~}Jug~d'\I3=cA~]FBME|fIvU+;ch/_'b-Ӄ c`>YKTrxD݂'s& g?] wq>[\u^ ?4Z >=<3>~fbx̯1?2T't/vsG}ӂyfo9̯+FyjD> `~'>VjZ ~-59|=/^e>F5 |OK@a[)/ObƍSS=`>!_1 JVU!e..zx O*r|w'P8W ~SW0g]Gs>z魷|~Bzf)ϩ]5>O+N_Vz|kcFȿ{yǺ*OF(" O2[hyrWSFv%⻬p_fXT܋x~||! >?]> e.X8lЫ|^C|(пy1Q$2諿@n^)}~Wȷy~pŏLN:D p)ַ 殏%}b='CnR.a@P}Y,嵲 _vn 4V^#,@u[6*0V~FX"\~ޕC1tb%ݗ}~;~Mss7y SX/: nLOy7dЧs߹>J?)&b>DFwȥ_<ۅ&3~`ʭJVR>K(^|2s[%b~)o}x2nزȇ_b=vHN+[~)"&ʓr8cO|[_wY=!R $y$3O^VEEr V" e~^oW[OwS3_5& `s'=.zЏ-}bKUr}>Av)>>J|i'_Uv9}C;=}uJF}VI}^ Hne@Md} }xp0M*Cs%ZoІj5׼-|~bh +w"s{_puc~i2:ŧ~ld"(k%qR큗Va_h6> =B?WПQ̝ V/"O.}jJg>O2_|e>yrWgෝ>AXBO%Īf>W|'ѵk[۲[An|v|=>1``>D!}X|?@Ä'G˒`2U-?}~'XyrWQ5*爘*_!!'Y˕onkf5J<=7]~ƗQ}ڥ*yEәPW__1|>Y^2K<++wk܂a3ׅ2^_~1z>wp[dhw8=\Bо_Lo7XqE[6`ezlt I0όOV'G)?SN_͍e35?2]hksZk{c[\͇̇$0?"QT?Ӌ9ˣe2%bT>"/Y|> KE +kz{"3!۲`=~om.i74v|+0U)g|@id'Ϳ;?Ӓg$eHߒJG)}MwGx_<[ 7.s>0-b~{xS_~9;:0Ç|}~Iw)(~ޕ~ы3;V K2-~VψC~آ %Z{aM~ג DOć?IlPBrcQCCJ\IW K9_z x<6:2ǘ^w}I+zW“T_ \~ *+= O9~`s`&|+'l*GU=l%@?~#q(QFW6\}u2ji~]Sϗ}(G!AJo@o o-{zԴ|FlTOPDO<+͗`{ W=-{0߄sj<xM{:{|cKb}_|#q׃7#4.!o۟T~Xߥ|~a B*q1X}n?bkW+lBϷpbw}>r}>`J}'ziޣjW?y0?/?99i=jK|(/p{s")'wƻdLh#xx||&wOvOSPз;40L)07=PV j[J, '3̏ODʓrҎobw {㠶e>ծ}N}[>?*:?%{l}pNJX-ג^w; *7ƟoA~|S jwWԇ.!Ї|>N~ŔY _]5TD"6w'|3(ƽ18ӛ?IW\1S) mF ؉_.gNj+O/G;W?=v/_|~g[,MrG'ƾT+|F8k4`26|޽{,Wj!?>2ۺχ\Ⱦ|aĨRܕx۹'߅[7n;yoT _(9ꇗL/ԙ?_joz/Gr}k_9w!@vV"pddjFw/(+ :@8M<+'.]ck+߾Eژr`GU!/}, `~L{<&=cjy=> wqdF} ŽD}{G{&o62.>Bxz^\a/O]Y1kr?ε]}~߶x;c*/"hڧ+uMxG W_< =leV{{n|@|F>N,V'Ed}*ORCkoD/,/5|>Liמy0>xٍG+l6O|5@w:wT?O wÌ>pM-ED,Y;׸(Av3aekE!DT +fA}k(+4YT?Ĉ7[%Uiև>H ?sd2wrm߽#wggΜ_2 b/h_EVyJ!]0ut?ȹU4jaV @߿N`B=--]ܠ(}~Ȩx\w Oh yym]k[sEZkK ~ǃO;6?Lߞ?!gY|Dž@=Q:|T JyTޏ/1o.wu`\T5Ԟڽ? /Z:=?"^'Qd]<+QeZ#cO " 4SpY}z}x!uڌd>A"5p/,BWO|s9>-⃐~GA_?zQj`_W+QhB0G3#K]XZ,@qNCmY/q.?~Nu^[2ShUO69ѱ}~O nCKuyK@樼7iUpB[k̗aE_|xW4Wgf ~u`^ľLX Vގԓ˳A>&cߤ4ǣ5n6+QVQ'?->yk 8vO5a{ !I*o_}j#ї_r[%g%5{yC'Dp.1PA/W*B*k֜HN#-VS? tYO}}ȷF_?˴?Fu[ LS@[? ^?SId_3d~|s%:9*2n^+曟JH0 #BOC!؍c)mO e!'{fM;!޷$ҩS/϶ѫX~A'6)2gaC~ڈ&OȨ̧O|}D>N_UxT".YO#n#D&DW2Q ]=_ I 4C=&eIkm-:SPr|6וjow&ӟtb*wa=K テ!@K7 dT 61OOЈDX`~ctTI7WѾf]/Kp`R @XwFBs1;*\$XMc~7ێs?xO:WT2l3Lm+sEt^> f43s_d~{jKW%>k]Pdx^zX%ǐ>^7̇;n|op\dZQ2? dT KlN7ɹc L,Iv?F)d~J?L99~|V}c-}׿uwίz>}& v/z  OaxQpB0Gu[k dG\n|9:|y5翝o#(Sc2COǓj qnFyXOWogwB]讙V+>Y}J t sT &iMO|~1gi/q.\p껓'$YF`~kv<ʼf>c"8o}iWt(ƾd!>v|Vh~KJZ7'%8u [ j oĸEGol6w.e߾l8]~ڽPx-Ŀ?? п16BoȺzFkD?ݽR_3 Bf__97K ~m?w @ɇnMh?icM]tx|IYNiϛ_BpH+ч*וG#q)_py?yv۪Þv>iS_W̿~ ;Y|3QRPJ`w[ V>8w?:G)Ư\=_qVu^9X績ݬ\ŏ~+2 %!{َfj {6F/<e)}~QȨHN7Kd{O.ҧWn(+fS'yE>?G51g/_k"s-j;VY>/)=_6ŐG,w|a~'g11#j-ƔJV*s@FEdp虙tU?/5miߚ%ӷI&mSo0wGYF,CgwU(`yy>]2/m~5տ($!p%:9*lkh n螎rOH}=0EQٟʼ*Q(++Nyie'f~}cOudoAW.,on4;j]kپwG_=Qfk $A&?=.kmuz=d4jB7׉8gjY"e/)QeO[`3`,P osU̟q-AO ">Зdϝ[_/ ;mIY:Qx~SD^9|W V7%mY3t1}ć/4c]O̠Sna#tC{r}5U}OqF=򫫖Z S"76zu}/ Q4W caޅ!b3 ( S6h3M9.pwC>3gO㏘3ҋ'~&(SwIy+ y37UAi%/'㛘}Yzwn83PݔQpgs9oy@U` Y|Y*sۋ"3(HÚKԐs"t[?AR*_Ux7KYz:H1% i\OmJȿyzFo=4bsE~{ {b [K{%o<ʫ Nsmqs(R*㲱_b4'/9w||_45dT5R[ g/-B*ϕ/k1ņ>]kc }zRVCYIT1s~F6﫹I}\{/_@y˳8? @N>9}`ËGM"ţtz 3=?-ﴣ"o2v$J ]^wP]7> Lc>2e?JJ^} ;*|@ _^m;{WtyP{גg[}4| AO?m> qdK'z̲g[%VE%*`R;1¯|$% -wrF&{ى'r×0|T;~?َǴr! Oas;/$|c,;۔+  7ѧy#n0 o4NͲ>Ps"t[Ofk|r=`P%M=ڧx}곟4|ĆRc>?>|||xaէqتߦzӈa~bٟCoNYA>N0_yU Rzj~+fOϔiNL}8Xh3BfnQb\>!?#>~% s۟O6P7G'(_ x0y>^|#G__[XMXN0sA2}@9vʬ4?W9]?\f>9}8ހ>|u>z>q;xiA18s4 &>]>RYV|MWV_ fbzv?oAiXQ :ޯw(٘wqmaykuu7~<e SCoGByǽp"ou<[ J:(EtԶ̅,(-;gGqOWS=O~>{Eb;sS={}n쟾l<,= ;tɘKZ鮓ŧ</xSw2O y u{wT jxd/^76M[h M=*Htj1:F|>>?⠀f~{a%q|bá_PC!beoX~.Ǎ0M'}-<:;P76_wW?:0ys>)⭈|Tν>è?d"o_|t7(WE dH|员8S#s9luf_2ў6q>p; }nx po ;| vz)mmqd6W]gœgL/0_c ~+w/90H [T<TΑNo3x>|)-=!nz fr)|-{hm&x>VF _?˙?o8W`~ݷ栾:u",|A|_"~1, @>~iCpCͧ ~igf˔A$sv*,2V-*VaUwr _~<|FO%#R xݟ?nFuJJzoeZ|~1u 9>o ([}_Msm}W 3G&{/^}~iߢo5ST`~7/H7.+c~J (sAQ4tDMR}}oyM}jpɡ} m:aA}8Tۺk- nǾ2|A t||jkq_;;{wd{($ ;W*Bj*\2}#zE0v:|"@2Zo}eZze|/3ssX/Z&Pk8y/7_i,abOשVx+>ޥGcЇOJrEE*$PUdVgCGѦ$tfG+ElOS`6=ցzxӊ5xV&Ys%cl8![36Nn} }u60}AscpӦoL=~u`>tؿg9'Ӂc 1 jhR:V4GF)-A~kf=e ^TDG1/["h{呙?PaִơuoxbIҤ|>z9;aO5w-G@KN"?i/ꅋ!!އK;Ǐ/"'q\d%H(HErr܇{>vI'7~삓roU ӫAM VruxXOjAY__;.mioKH/noop?McLsF;aiO.͝w?L}E ,ܠg/c~}ݴ06ݓ/0|hlO9:2d&-+gEx[st}G xAv{pKXVB ˊL }̏a>.z၏yjjO|uםױcz'%)h)4cN׫wl u a~AY}47dG7Ι#w 7+h!va`-#T2>Ub>%/۽(..e%1m ʊ*\&.%!}ܧ|߂=_ WMN^.{ۿ~@/D/(F?^ld#󒘶ֈ>jίQ B;6pĴoO_ 4u|ys8Մdz_ik% `7kds x$NY4hVp@?et'[ELέ${ݭ5ds4 fxe1O+r_G#] sAqt|inKns?6ZYf>PH{'!2e/?I9弓>ׂp V}f%VOS0qaNHwd 3_0˽y9zHCay}yٟtjG}mI}18ɿ;6( /b")19 H,nI1HPRHpA U<81i\+AED54-Z*U j( Jxsx amj]evm̙qOx4>00Їz ٤tO 0=q+}B|GO 3o?'PQ[p>ޒzZ2o1Znͷ>kw#__y_~}p(g _U1SB~,+rY}<)m (7 &R 5(S%+MO1*oLwHC29̧Խ;RGoO_[ufP>zEW޻?̇\/C,/:NJPdF W @-2۩/z҆5g_>w5@esG/>E'm`zc5Nni. Mk郛g{钘?@4$zRSЫސBc:Wcp̊$ړlx/ǝ3c>yoVEe'+hcwj1?kI_Y'_$?wpCC[6º%L#mR78/(g#}8{AzH"s?(w2}C.X hNՁ|[Tj%|~6SǛWyOgl29~mm 11z* @ O$1-˃Q>p4'A}ʕA̘O ;ޤ0Q)zW_ n*>UAhoo&{u>u+|gZOA#? oƥy9bhgW?۝_@/>vWCt<yBbj>4򴽸}Oo9p~8$9Ǖb#"7P&[y[Q@5_|> ߺR? }҉ήSozU s1;io6*`Xh%VEoa>2x!GLV92h.Fa(a[Mϋ^z(2Lҁ5z)̑Tp-:*ooɠ-ޖ Mu49HIssK㩩{b32EΟE'g-:?94Uا/-}P!vʒsA{O>?$m\ܥzaD 2?Q'A9neP5ឹO~Qrv>Mej~~-XYӅCjZ{7N&̧>} 1x"J%9Y/š!W6Oi/FC+Eo߷1ط;+ϧKOu3d) }L4Ob2@iE2?"I6gǑD|ǁ_{/h7Ճ̏ѹ'ιz>4YpE7gAPah^,)2`Oh륆,AI1'&IٌT؋9{ˋ$-0qO7eG*ߣo}{đ,+\Hb+I/eCw 0}辑u͑}<nqKDl#l$eG8Q{Y7"w2fe:X \|ޭԟ_$~Fx'.mHuh -0ƆMn_^Ⱦ?Eg>=-)OGdZ)x&# OeTj7g?v*HਗV/Y^k7GJhy_.>ߑh#-}~f?;wddC?Ft7mV U?,QD|||Q~V mʮj(p{/neN('/lٴiÖe,:j;3`̀Z槥OH B9f>Jwr۷ Ϗ'}i} e?b@E-h}`o`AmLMu䑱7g$WwE#pJYݷo>q3zӦ%wzaXBt -_~V:ykvNVcyw~As.,=Jǔ|; ߲|W.gejC"hǎ!9o'tK!̏gCzVVS8o?]̷| WC2FOoR 2x6R3A>!:!/q5Gwffg&ۻ^_ݕ/fq NkUw({Yj sU `AeR#1] HCoS`?.NX'䳋tɜ~m⾭kKܨfZ3K2?@͑߾a7ߜaa2nL$uVU'?6b~R RPUc[OM:7U,o=i>?z_Nf秣]]]bl8 J~in:/`N I!U}qC} 4z5"%iƟYkgdRڞug^f~6><:}_F/xs0) ,[,g>#f>5^M}~_ZG}zLkSi([}>$ǵe*ZVXXOAl|-.0lt?U]A^[|~tss<xNFc]:(xyv?sq]I!XE-䙮W3+*Mm_Q/ҝ>їDzd![7@~'$ݥ-bMՃ!L oPHtW'(I_(y}>0PnGq#% TOkO'V1K<-i0}>;MkҋVrˣ(PB|/r~hd?0ٗnv CHZX4z_0%.ER-7db;Qq gAvgs3-sUW^x/?y[7Z"?!#ϾwhbЮ/7mG Lyb1O+3Hce0'ȩɂQ_2\ m0Q̧U"Zj-S5l诿1(d t?3C]o`>Ds+6ޒ|(%Q|\6e|lwͬ'c"\ mܣvg諉5o!'+ y1w"0wݗwr3Ø^_ϕ"٣~K'"5cI '"}&ϧ+}(ExIT]UB0L>[ǫp'}~f|߳-eCCmr'该L>P.*>8???Żg׽teb> ߂KADoڧz<<4Rw? "Œ|}P}+ۆ%Ḩ>rl}JR|>͐~ŸWL1M:2=mlݸv 0/69|j2"}fb@cџӍX_~O=p|p=.S%R*wg ^3}ُ||}F=On^GGc*A?ܽ{ 3OF{#Euf>ZX{H}\% a|v qQ7!c3̻ ;<Ofx3vˮn~(10p X>&)xo69ں6q_re46V^Zf]d+_|xw@j0Ϗp|[wjw¾}?'snӂm^ =!G F"#5I{Rw2/(J܅s]+6HSPˬ(WRD\+I5TO>y;L裇޾^ܦ~`W%xjW)Pt F!c~ MӓPAog;̷pcPOi-ôz_/go7kP犎xofw'DZ0썍=33̿}x܃"`AxL؇VRht%)5(r[+^|~9f_R|:!|% T4Dpup}<3V疉2ZrYg;;5/ɰ\+>\T\{O|<4$Nm[Gh+F_@添=2~!o~~:{ 3)K .2O G`'"j#](w釜;78Q~y~X+;_KuwWԃԃ!d_UL>FRN|'?6 `>w|,WꄎTF߳7,>0Y><4'}Wb_GsP|E)|Z!ll-?QC6E?lYz5Ztk3헚%>^ }Z_?rǫ$>~x'.g*}"(V_-+T}&j+uB|*eS l 3#`rgGQ!9&wu3fr^z2?>t-2P ?7x'CļH|rtK8 :̷o꼧>@n$;6_7_#ؐdN;.PP,Pm `Z_WJO _vpgNbJUiC?KY}p>Nʀ3NrFy lWr}Ot#!q_00}C}#|2ݟGÂ"kK>A#\ΰHDC#ý3D(vr b\~e+]&btI,0[@{S;")3i)5XV-sNXOeNloO1+V;ҦIo*gz*MC>mx55χ}|t{WWtl$1 ?{d>݉ iC=+,D|d|oDg҂na"a07įO8/}hlc7M ٥5P>_mTG/[C@g|>NʇL~gg+=Ͽ<25krPwr`|~0?#̇!|Gid>BQu^ v!8ٗ!qO? (j#xRb;{AKם] fV\geNvWY|:޾O}?SzG-R\Ѣ ۟/ջi2|Zn`؝3Xo~zꮮBd]oBm Lڗөlc!Sͨ3$1ϲY|:W[b.`wms@J;iAwXy#ԠgفEj2 Pst/޽2wi+޾& 7okڝY̯ӧ2I3|?>K?Џ ̿^0tO]liTWYn]jv<0ؗjSyuill`ō\C/r xyWg@Nk|עG1vu^`/Gܹ$K*rM U۬Ja}:}*6yfLV?[#w[F?՞$>Ϻ@&tnBKs0|ŽaIvXaBH񕖰| @'b:?dH'H#e_:)DgrL|3y.(0`; cWQ?xyw>W=gp?8=$}DU{|WRђj8fӧ*sY|s~W }.ؑ߂X.;rX2-0~,0~a/䓿y 2N?⣗ t(-gKⳊYXp^.\|$9Y `KrWBp,G-_vСeYJ\]>W}3Aڻ|tϋ7x㡇* M-?eBJe%)[MXipFNJI63sJ3W/<3T'5| y[1<2?̟6C0RϹ{m%y)V7,y #P6||Z.ÔGEWmx/B8ܩo* ntL|W pWWiUn^oM_i+̱srO Z|/s]ކT}*`k:О/#1nax`>=G:Fx7^W'/_&._Z$2ZrwwKA#^ ; $C(`>&龐>>RO>JeﯠzH.ƒ7hVwuP/Fcp6U2ˁCלs9^zU0|(SZ͕?;I( #-hERdU5@Y"+"2 FDA** N zPDбqċµ\Q/#ѷEf1aV]ieez/^ UT7.7ySv>{73)ׁOwqV3<ÿ yߒzs|%S0+U>=pWwzaO'D]3o&}ޗ3k/ aoS7qRšG="v~dqo袋S"6i+5c=*bZWOwi3 b?OB/q~~pqa{A yV>2N6sv{#3޺'ރ0֫4.h6tߑ|>huRd(ZSyh\s8KA;R_R~]Gx|~䴋%Y_/{=̑T<'cj˷UuE!oY]c9.Ccv6Rb||()S޻,_]:(o=hui'wpH|Do,z"F@=%;~ A>/T}bz?M[6S_ ?cFy5翵 ØOgxEE{*+oOpʵ4G"꡿믽>裻v:Lu1 |Wa0릟+5c= (wߥ%.w߿Z 2_N Cso\<ziab7w/^uÃ5Zu?/?{_|ZRYf)7>a: j0eW Qߔ_#lhB %~@zT-u(OUC+(?^8];c3/'r`b2/ͯ|Uj TͨJ]32W/zϓw Khu>-Η{+kٳ?$ߗNl'\O&Y7談)/>}{Z.J+|cc7~cI@c|;_am8WW]~e"RL9.) ঘ+5c=j(Ge;k_6Kv>kv ݧg _ICcr7@I.}hL~VT|+3|͖yCR>fS=]/hU2q[vVM*c!K˷]סL EFϷih/ziqY3tryg2WVsʺR^ PY2K]-2@Xg%}e[`!O՛8C51P}o#;rE.{qIiߘZwS= yiϝ/%1jб_^}_U<1csN$җ }?w&{=>]Y:|zz-x~ix]^߷Aߚ\a*Hzd #zem%c^ _d06^44FpTvDRhR%RimOjUIܣ#?neI[hd-Y\(rݿ<}=b]*6󟻗V憖ػ?p7m8w.|zH>=GD=!"[(_~0W|Bd-o#:Syyp+ޒc\W||-GBq[>$FItSoEzv,_ H1&3:s85Sz(e>D%*4=A5jmԋiJ՟PG_G%[]RV)VMjl;FQ碃hWu{]̻GO?m6xgЧ8k+.O-=-;^|0_dMeYdLd/1,}(Aqߗầ."> n$RAwz6ǮF$* #"|O ;^ })?_2莙BZ|EMEku9nQ|x'J𵘥?>:vbʁXywhx\IQ~]%4=~ՁZ $V"z﫥G,po80h"A/.A17SЗC1-!.yOc2AM1WjBz~Uu]S)F;P B }m1?}xյ~յï~㫄|rSlaj2C~P~!,x>o~zK8{]=o@gCE|?mh{\4ws p)ly`_l ++,>^-_1[/j`4u.%u WwE-*3sN9o䏠| ȫ?x^YZ[)F\zV'DPȥS7+YPg@v s9;Egoƿ2_Kyً;w^۱+v. k||Js#;N|V }4x=0Q| O% |E;hO2З:"5ϝtB?6ߧMd387}qˮ} a͏WoE)Fn 4*j)6CiaJ+jUnեJKbz϶o?WG?.1˯Y#=Xl`kn9K;|SAZT`w@_).]&="{Jo |!&Ml#l8`lZz^e"꿲rns?榈,+jU.`u21An.ȏwظ~4I2?;7ϿO/w9g}F>=;#&:||ܧH`c^dWW.=-Nx`K)T:I pa46q "~`=z`40a_4J}ɶ?y.az]T]zSo7_#}? x x1uXIo[t> e3[H~p1*K!T/N*Wa\ş.ݕ>z(-b%?}cO=xeΓ/ {gğַC>6mqD}4_ל0_n!|g:6DWY?>Q wH>u^ӐCes4}B_$HjǏ|[xosrVԗu|-;W~87f"}ͧE{ܐڷ׼s@a{]1OjzPiG|t̷ߘ''x zjwm>t Ԡ>PPhMj`\ҕTB2[ϧz#d^T@ K>X00}!|`#G W_2&3iW>=2v cs = o⪇׿}s\UO@oX@_Z؀jB|VD狡^O_hWZ^f<4 M}VAն]nh4oe}:}Ԏ@?Os-6\Zd7q~KpK p8zGߦ{d9w}ۯ޾gZ!#f3!_p{>ߛANb F}57c)F.Tau=kbcB7u3H+sHA?p3,0 dj.+Ԩ1fÔww)OW﫠L;]v̴"Kl?iHnѨ\_{mgȱpeWw(+$Bn+ŝo)O2-mtBK>`>IP>x6>>E04ۀ> 4m7_JO~-vEÿοQ7c|:*Q'rϥ7 ВAA[9N /dAvZ|fv> LwE]Ԕ:?B~|4y/aݘΈØߕϦ~qz|z&[/780p-{?/w)-Ϊ|[ (ƈfl{Fsߵ?ӈ8cƄC,[2c㍣ X5/?|=/'/ u^=?z紟͗a wm| ׸&d\[}|b m7tBpN`BQ6ƹ0_:XMübaY?p9|?A}(2EK'<c*N DUS:wRri]\7dYt(Et A{c}O_/4lă=ŏ>.ָ]lǩt9xB曝ߓ>>ϧoE׏٤>57xۑ2oWi r7 +cj ŧΓĊ)WMGM$퍋5\+Kt |[{ϤϘ>ox7_\:o/g=| 1 eG M%|iq3\Cbk^ b B_4W Xh xWc^Եf4f1 yj~!җMkg绠QHtX7{gL 7GB hmO-DG- $WA C 睼g0ƘM8]{]Ɍzw[^;} >rYs2xq~J'AL/(PC|Ar0? lCg3kؗd[)~0z{t壟>O3,? Sw,mv>ɡG_Zb8 a϶|n{iO;TcO?3 {S?޽[uN4)G/==Ћd }L |g=y2wg|M0&3eoNj%o/d>q Ỏ윽eW -)Cd>w&>w0ُ1%H[3y;$0' ȯw}WZ*_ ZOصȟ@8aIZy{tͭQ'*Krˍoﻢ00ы\xǥ ѬKd^yu>9`?"B?=FߣwQ^>dv߯ ܘ>O$vgb;n!Î'D~k;[yU 0kǩx>CzӇ7Yn7,Kwߴ8/YTD+<{Z|!0lII3'}_g*mz1o;|J<3,fgGoU=%TCw ['.6P&a~jo621^o`nמ0ڿ=Ve`G!]8!_8˂/ $>e.ճ4<ۀ}vFݻȌȷӕg=s2z9~{;}R3[u{>6CGO⋽_.mRRG!WpZϔdv_B=9r@?Z)X:cuJXxٯϖ+tG,Pm*t_h/@|w6@M|-r)|x<%#U`M#TrGa_Q1:l=<]f~~CKAh1ޔuLb'9Sf1_A!ޗ|2_\߇ 4vj@^H~"_\\3>{F+'m j۰̟ Ap}%)s7>(`}3i7裡gAܷlJ>wu5םj-ZZT~*!y:=|RYe[ 9FwkW%vd'd7~e\gXL0Z& H? Ej u|Hw.#~e>& E+sg/.yqN@Vf}3E,ˍD*mkH]_ exRtevsYOVk#`yϥL|oIuz|0wԧ= ~>O;S[9^zu?@NcObĞ[̏؀,ٝ˭p>gE[=Ja{2cN>4P>l. Ikxt|_{7'ݷ+ }Z'h-y_+1Ta}6/绸/j_Cv0۷w-J0_y/wᛳov7RG1}4٦u?]9jɪQDwr$%PpEr~g^T+e֐3Wk\k守\7u,^3>'͟NpߴnxoL𸼒톢 `ڤ|DH_TQefۧ^^~g'fW[ ?g7} 5e3O;9ֳNܚ-?H޴MZHGԚRv~7^>?#m4%hK@$sM!3z|G| ~ W3b r"dHHH70#fS5u,v#g˹]|Ԅɇ?&{.9؋o/V\g+UZ&{l͋w7ʻnqjЁj8?-$J}~OӔY(OaVV7M|?̂`x~}i\dHa{vR+MnN?EG7WVxts-M:p.}k_(e[+ U*ï,ˇzs . 83"ENZ$KȽQV:wuBX|!`f  \Iz3u7݃כ=IQ?69]t p|z|[L`F[!m?|exɹjY͊F<SnrI菼Zol J8oh|%kIZs//2 @5i5!ׇ#ˍn׺RcNGL͇3jO_Q"iS+J#l}erng')/R0+~۪G'7M_ 'Ox^lm RRs"54W[S|Tq[ ZS*ǦxP5[O9jlde5?H[:,S}=aj3uɏixjG*6@=~;9;<̏ޕQE䛬MnG&OEw'ML拌cWjɓ'Nv>V & }x;n>i "ڧgoA􏵴'FC n6ZDQƆ7-L m,/_=8TKYY{z0Cb+7SCå]wƒRAQRkM["](@;g6Y_ȯ ѳ |_t;ٸǗ jv"Ή2%9BAU h:k?䞔!X6ͭ*Sk/:W*kᯝaj$pm<?pNk9彠Zz8YDilz%tX"n,cW@ >>oϡbV^tפD( !Lgh߫&S+d~Y^hfLc>|N]3ggߑO.KD>Ul__S'/lA &۱FTnp_Iο؋٭^Ͽ2K(0K>蝢O QY;r~| |+}yv0|K 8/ye;?ipEߘY|IO>qMy΀h1{Mr|@sJG0_-G:7S;3] \˙A>}_)wJMMb}.ijQK ~si27Fep~X^ݝ/}2;~sdv\d|;SdrH/ϛ:Xb~Q=JEJP0>ht홓_g]NihN Wnn><y~ о1\48M<IkY ,mE:RdmK6-5"Kߨsf/0OIi;/88E?Oc'a>cAz(^dzݻλDCd7F9cj98FWܐ?! /l7sg~iƠ$ XO tgx#OG]w!?pߤ=#6Bka '2m]/RPEL[Xh$D=v(9`@$G> 4Ԫˏ|+㳬3v L+zw~O?Eλi`[Jwwa֢QysA}-D}iO7.]/('oy7)rHExvKZfs\G??BK }-h%zZ4!M{tPYO_qB]kͩ~<;8_U\l;?*H~RAhv1RttOn>QYQ,|_~'H/%K{ AE=/f ڏ KO ~ o@0)8 ك!r>#vSV¹ECӘx/B::7w+gaf w-+P_&m/g=O%1-ʷי镛GK81` e`oQ_~7~7&蛫槭,Of/?1`>IbY0rHD0+G+5|9EAЗ{קuR:Gx4ӿg+}jv3\~nznO3e33uX2?781O/>wnz |M=4Q6R2;_q8q!ڽS*KoG$^~@Gc<9o\w {e1mo0O蓘}rE+ ~~ 4O'ПȯK-t:BQG7:ć爚qkGe75 %Zw￾al`|3/=`+}Xꗁ 3 :rDK&/b}1, N+'9*!PMm,]Z{}QDuf|%dn&G[<ɲdx,q˒yU/ sre|_עs+F{?=~@,xτ}ܗ?'No}ٷA|@_wE-W MQʁ 10t[ +8=.p0gO>䞚SDkJ7S,A]g`}: ]0מ>o\1WZ[sQ1w-sn8Qd J%4*<DKD$P* BACD&4cq{g̽_ߞ33ga_|Se<;nOԘ*s><)}Vц~d >uO➥*wj'Մ+ >nb_/nR /?~a ˋ4U!TiA>B~.2@ }٦dٚ~{|bE9tWv[d;XTڊQ'Xp!ztd?Ͻ0*^GK鳔ECo3s,ՋNy>S>eL-x~g?:-? 'cQQ<"+JRM][7񫵵&Tvx?~'_Ń}MW?5W~zR$7%i>1})yg w@>ս*"1ڙW{_7[7"£ >My/|9G~Z\Ǚ?4'`(5\tnt;Kk*Zh홦gQ US7C[n]3v-^1:YR؟ G o|^o@7hG;Ygwͼ~E6_}7ؓ{҄t|΀9gW;Kzc>řx3Z7_=gB~=}L8n۟Bx^(9'7njA4f^GJLP=8PÚ:Q+w>>cbioY!a"ٞT@ QS}ȝkî&I0OHLϭ/,g: 9q1y,|S?:A!qk]+ '?ޥXH痾.}Ag^|ȪʡN5e61z1v翞љЧO{ /7CWD#lȏhq RQ .#*V^U*&v<.& t)4H)+%[j^я#<2Y|, _ũwnÇͳZ'|o?v+῍njB/@~0Oko;ߙRk~r܀}#>3 eE_={MvB v5Ч\1+G O9='_ 5?kyϟֆV+۩{sG2QJ2f{.L[m4NiKدOWDd(~YgWr Gl꣟,qb^F'y;n×ۿzU16bFVNd?uC(5\czoѷ^ѓr!7bF9 37{Kz/}md~kwuk;mz5%b9Ɨ1$?P7 {~3g׿^䤛طq5}&̓s 9' ЯG~=g8owaUwx’F/yn%C_ _Kl_R'})39ޏNw_}xpsHS vȤ|㹾|I#R@~tX&xa'q1)^{C}{i1(~BS; O.:QgE0kZ_I3^i/'Q0s-]Oiuzf0>OIٍPx)vh)ϟmW!u >HFjI&~%W|܇|ه[Z7?;)Bb|ItrO}~߻lޑ 8?Azu=;~>Okڤr#N>} .5w.-MÄ:z'n)n]fs?Y&@8 3!C3}z+P2w˝F^*r׏?ʦf^hrPC gΓe!yŲC\ߓϟb7m$m}=(hK0B[ SbA;JwtE`H;}|>q_HC:: 8 '?8İ+{+e!)lj15 'Zo/[+nZB\kG-Yb17 ?<;ǃet[ _|~noW'ӌmyw )i]c|D3_#Z'^{6D 勴-F R*U? ?? zWzET 7Tc_z5÷yo @κHԗKۈX/+\{Q,FE|xO|9|$졟x"69?S;ۗAyHsvk7Z^,uNN|XjWo/^|82u'Kdx= {>棄CPbj/iD g{%!?AxP7 u/IЧԻ3hnrc>kwߑF1T 3 5ze?631<' a~^Qۀ_kЧU\_4C\ֱZi>S˧Ɠ_鳆2F'_K?/ǡ>J/[gÁ2_W@_/f Ks~C6MNI1b֫< aMV|Y|7OW^]\VދtpS껍ֽ iNdg=NXb_J=vٕo寧Z5 ᙨ7ZتɉΡk?Ϥ3G[y!ǥ ÁU'sNijGKu3sP,m*vwr?0K^Oi3g|s~LxHvCg{9da?WՎ~Tp] } F{0_.k!W︗7MZ߷[_=wE]` *6F| ^GŲ*w&ݛ}lD<ܠ'O!\:G>0|s޵|O֕?j/mW3u :.{ˍ/o5}``χ|Gwu,Nl>w.YXOu\F(EEю;gײ}}Ge?g'ɹ~^z 7 ǝ2-,՞VL_䷂D;Z{p>_-ėCQ~t d>zL苝~&șfJu[Wx@| _/-D O曠6̿ Z;P+'GϓAU"nLkG7bǼ23t~JܪLκᙡ(ܻЛHZr'f- ~r!]h럨OQrtE] }7&9B׾7~F_<' G֘o75@<@N~vۜZ5nͫ~5G[׷R>PV*0ec f!!T@p`>wg[񢼯pbUccg$?[ ;KX'}H3ğ3c4?aqQ=Pea2Ј"5۸\@~O-yL>Yne/gY5xZw\k̛/EBR}ݵ.t_\GrP #ؽ!W,ֻzg*_44?T-_0# }@v>/;AԖF?ڐ Os6ˤ3{y~y뿪Nyf\uxIxG9TT{:Yzޟw㊭x|L/'srF }@_|n}Fxٳ `8聆+!֋l<[ {a1Oc~9N}\Nwm l+# Cn#=gѐ7JM49}?"Q),gMMRP:>,22loiGv D@{C7W+/2̳?:9GӮ $ޞs:Q/tm@@/_yW7*ė ?|'m>F;೘iVU6Q5ϚDaA}`BS(lE ,gOY|{sǻ8#P+'3O4`~'?&ԟw}R?42R3Hs߾g>di#o潏6w{H^U@.Lm&x/ǬV6Sfө\܃Lz. ~K#zn[oκ+x@oel] reyz)f&,o9ޔf=oHu!7vr?=X^sۯ=c9-?N3T'21c^;ėۻɁU{|>kLd|^@V#G;Gd@F7+2+3|a w~G.?|~tH}'7J #@~`&?{k_y )j/v3Sqʖq!bIpv`QZZ&][Y!,@s@{Tp:Uc?^EIoiطA=lT|PCj%{𫯾[oMλԲfv?X8>܇laqjiȷfx1?ڨa9s/)E?ۊ3z{Kh:(^j~vB5(1@Fl'O!{^ =ZQL O) 3Lʗ/^/>29Og%o`Ρ|Rb4qy4E1vMzMxYӦx'#oҺHj% 0ycuscڏ|[+[|'"oS|`>>!k9wH ?3x>]w6ݹ!Nŷ>p:'s'rk=! Wg;Edj+m0 3uSIџN$S:> _+PfǦNė4xXB!}s֐E'3A ')g#Rb>1s.FY2"HO1u:g _|AhnCe8vO=!?yc"_t?0'?x1,Aܿ;}$u\O s?26!zql'oyG}vMN5m?~ ,Z!ysy'?4њ\G>ః}/C38{01!2a3:n$B3$,2>2ߗ21H3?2ħh{/ٍ1&KG^/\Տ[~C.)ԫygF`>S~0FKȚp4 b/ 8PLO)"7x%۪o8;?/:q"(X7w*OxA#뿝?P|o*R~ T\Di{?΂H{''x:~rNm͋Æ8Ue!ңS?e5_ě2e_oֱ7*߱Nzїz~ m(P!-|+cz4sw ն wg> Pwn_Ͻ|הBo٘'p{}ؽ࿓oA?qXV;{0e 5x'j޺ Kȫ+3N-+y"lfuW@|!'h{}kjd?幀P^ v" 8^`7_xs=m\?6h5/E{9G}&1H{EZ 'i`I8b:8|A }KJyHg g,-Q`Jzїo}7~sq|\I}Wuॉ>bwe"][hLC (CI}rIb%`V7pO $?lY~a@ :t>t4G7E:_Wso~Թ*p[˔ /?9|Y\'W;av`r9y'k@uVX')}Xc(ix"D_3ŮUZ/*=rgCPaPnwP˿̭e+!Y 쯟xbmGKbVƕg^{m_+;<sT`?,^ IU-'ǎ P)ԇ`Kb??ħ"s,|;EJj<\eMLṙA 0_pEaq޼GCߧԐ\༯QnR\A8'3-sX2ҙv+I+ugI Da$2AZ .kD<HHqNCHWxSx,c#wewu$=I|燀B|: :P)e_1?Ϟ3{;.Ǩ濚7fAp*9h/cURBWJ'`N3s{Q0ms-ݼ溌\N?!>'o RԬݨ=(Vd^cYb^9J;?}٘g,)[ApoiOyT |<_~\^ԋaKڴWv~_(GoI"<^R~!_z+E [/4=2(>lO۝ (j- <}1z4'W(YhZ{R_Uyx7>E$i͙(o>?M ǯ\< xOe-u+B*?jj^ S_>7af D>#+gRg依{veۍ% `'MqN=W9_E~?e9u{u|7j>0aӎ}U."O Ɍ.^[/~p1]C}sv?_E3al/W_t:[VylܗZ懦MpB|u,k&N?6zX[NDsIe},|U5g]/bN)@މ}?59|1w0?AOQo@$+6O}3/1_*(V򞎾e08% ie^[«rCcWj[xwG8~K+"6 tFa?'HhlIvIț"Q9{LŚ~Ez*-OΣVϊh/{Cзn@3>./h^PC$W~>B~e~M~RuJ`QvZ;CI}/%@>3i||~0v[%$A yM'ļC?W/!E`C !|TG)w@i2w8l+.FǗ5~r~W l{/(o**?guS)c |9uGqh$|~8X߭_ ~]NC&sM<7esd{걕0?k +gYg>wK2U{7"쩹w~/rهV_ MNWxF %^{HNF-yKV+5rȗÜS]`R"ڌdEԹ73vя.Y8hq:}OfH?3;;f!A#ÑF=ck?_1~a_zA}a>ڬo/~/ {qd۳ !:㏕%|Wί)x?}'z(c>(\q/#Я)3Kd~9? ~~Q@1G=h!^0;sՀ~LSxz }`_;>7fګ&Tu}O7uqCūkZٱOb*KKL}/x3LO|4x7 ˧f`kfS}W5Ƅ~$ؖ'U~z=:fqO'~*> ouegc?ˁ? /~]=>"8 >h'gݦWʼ|<˚ #׫]G :E5ya{ܦw~mPsac-U0rlC0? kԎbܤ;CFh.lh26\;vz31z քTӘIGM^(Z4 o=c777Z#EyA-ɎDytY/ٍW.[1 A3cb~y4 ]yn 1\OPHxB<2\mw^Ԭq+/j]MlOd{aKf@\TM-(w[* U^NקͶfVe+OYqi 饔+ͯE & I{>9?Lh}c+=_7_qQ}cۿ1ʺAUiCLs!xṘ "sB`9 ,QqY ئ-x, 't$ ~5!HGy u(BḱۀQd+oIw{ÌՏ+ kpYw1;yyn!{i|/O :cWnYcˋFF[r:Vޢ^uWُ3[X}I=p|x1ԟۃR96}ߏ$4mlYpVgUg=_'0;a"|.+\(q}gҶ<p*.`;їHpKZۯ ז|3K&1]C^e3<`enrU+5O=B;MPpe"57LP'>Jb3S?o3ĖQgMj4P6=Flgrޭ7O*5w_Zf7pI'ya1_x_[I{p/[x6֊[?f[%q@Y%?P W/f/ EWW#2g/|:BAnf{UxbW߿pH+ H[\IIτ}te^[" aa '_fҡH5>[35HMJO_~'U~ok_zۗvgǡ7^; x۱喝q|pN+C޾xq++K,.@YpE;K{eܾ9H#Ggr?XXRAB@_~y(`_&Hy_QHy_&+O$C ֊"q_ gt#tzʛk%ZXGCa>2sXVWq_c@x`,Z,`FǷ-_M[ѕfK SW_8]f>z:kH3*`8cߍ ۯ7oLűSW~)ۯ `TJ>کGȇ$Gqڠ?ɿ">k MRe?ۭ-/! T%w@]I6QmUu^;*Y / ՠ~Ն@3c!SZn0kqIW|S%\W2"'揣]gП̝}Sƹ722 …ScHIJT2d02ԗC"3T2!wxkY2={z kw_cܞ";OM>t'4iRX&+rU7zH@OwTbmMGOAc_(SO={󳦧2J[EC~M19 o;qwe>@o&|d}~U/m SxxzeOؑ){Vؘkgg?G>7# Ї}ց'YÏ} UiYRA{=Y#.:vqb %MGzؾЙ̆|(v̰DϏVv~>.Z\.t_h+fKӴ< Mgr.o /L&#¶c(H s~6JVW֏ַD{ڛ=_!::Gl/fe9 7ر 4hiAWaP@}~V7=PFl#H rt۵2 ́*LN0G cxjp0zE@ Q)ȍul3'ѧ_,cRn|jK:g-ӗ.l3̴cd}F;ث 0 Sl˃<1ZT7ȋ^+P|M_x>("Q@-ȍ|ϏНr?VlQk??*|3!T$<̉DUvŭ|&탧|Kb~( }r_Ai^ _X R;{`.ߑr;:i~>5!.إ_L`\6X['f|O~l; zo_ZCqa?&,2vOd@Я 84J<~1w?jǎ/kYoM}{$x"Ͽo|o' W|{C/|DzK U"ae&^N?@y؏Yʑ<$$~Zڄ>WC>VFȡ%@"y}Ξ:0_N\jhAD ݻuW?<ܾoagÓ7ֹ ߢ: ϲ#.pE*ǞN|9<@&I!_;Tq?gG_Zx€p_zd9|R$lU|0;c"L` Q/Bë5 7F E>+{a,j23*rCddZ⛼ Ր+O__zCd~[lpCkN_ : K.4a'5mF zk}_Rc>ԙ?"Pxb4 hد{y$O.wp{_?r]w]s㍯{W[w^g(c ie>]:N ;"i6t =C>EڗS|+ CQ,3.~WGR7R7ֱ)ϕ"5>Wqz|P? |ḣ^?L00*"ڗz&_1 &&Ud'*>ni% ay=I۝1M^NWV1 Efnj?0֙O!aE!/l<ݗڣ|tiKd"0֜mʎȢ]}b,l7]cdE`>(4sP{=ok7r5|A0Sg7|G=c:n{phs7ETu2=č#c?첷Fsq &y؏|$ * h0@<b`pgo~H³1m{8FG~EF0j31نONioKn$} gzzB ~Td&'/rCu^6olo Xm* f>Wf[l>ؾY+3SomKal>QYG)oa|#A-n;7%g>.msm/{u-5_>.q_P=昫y>fy۴_93ϰˊL۟)Џȧ_ϘACF't!3J}p?G?D'G!?>z@ 0d|@h I,.vvr=ʀ|f`&øf"&P^?c~NgB_AdO |}\C{Z $aۤS̽[Ϗ0ȗWx!~oسڹR5 xZglU,E ^4Gޑ-g3j>}j{ Dаjr\Z똗.㔳޾崅2_$u}uG=я>}by:2}LScX [a~Lg"5(s~}Yd>(Kׇm r08/%9AJZ4%|xRЧ1=ZF2(_0cC?9+H"G6_M<ʅ̗KBƎmB~Jכuzͪ{|q9yJ<|w9!v2&b[Ҕ.})j Mեu'uq;g{9:?P_>=>;Nko(R.|H˗]v1~/?G?]닌'Q-@Y %kK'6oܘŸ~>*b9}w-a:ۗk%/o% <Hc'\S>Z!1N3Ev'O%~6 X]8fCnc10o`W̷^ؽ̗{lmճYY.E\}n52&[, oϏiq>Dcq<6p/̶&=ګ_4_iY#{5ᓅj23C/G/ ?N:邫LT<~}kG͖k>P+?UΗ/u]9f>h}ʝ}_g>Ky=*+rv6G@67 - ?۞!gМKaWvf/𾶪?!2g׫`8#nE %ώ2xȿ(f&m}UGhFQ<:\F.3Oد$>b(NvaB-oQEvЋjjMR-j?CXؿ#m2=ߑާ=҆#rQq=vW_=//~\_UEӿ}O/3O|/>u.OB_:~gzo|97a '#> G~op^e6gd |UgGr3/|gGYl+`1+Ur$6e=HO }16VN3=1?,)A8m'Am#@33ٻfu2|RT=7AR;X)6ɘ?\\ ̧/@yd>1{ ZOo`PZxY]7po:T!~DzoDo osaJHbW^OݳxsO//SnH*Llj35mF2ȝ}ڬɉ#`-Rw`l7qe?|{u%*;ǺJ}|;'Y&SjD>;Nߞb,WIN۴u4s%?`?e{zFJv/swY/2Nfv<+:WؠW{7@C1 y}nģߚr˯cq "Qx0x_*eyP`jHJ&%v0|U҄}rOYP?쑷Y;jۘ?\2=ʄ\?"_T;B]p|~և~x1=};҇`Чpȼn`>&:Ed r`x̷>&p)=~-|s E+XyTϼz/̝ׯvCƹ s7q!EDM$·(BG$QQG "z5DYcr߽gޟ|̬y?S_.`:5ΖT%pZ8w-ӎ>c;avO]w⋎;N;eu>p.rh/ձa#vQ&YW-]Wzz^"w| Cpym.T"-|H|1L?,o 6?0L@ƃW='Kf7|z`W""0f)ɭ]c>WFg I[̗%lؾ)H͘0.>f 1?~_ o00&A@>%K槑i YA{{D`A e%H!󦚙I`W o/qI;o?;/77e rpTnp ~~J|ThMJ [u*NAJ}rXgB]|~' ~"܏u`Ϝt_>}vOq?v oe< 2! -](wgƯg;%BM1 o{<P'o s1=C~96yM$׊"-]|ߦ$d-?<ѫܩ7/ODJ__iTtnDG:l=ӎ:c~wEt'*77c;-ϗL|1ϐ%:uÿϧ-<٭S|AϏHxv/y <>~/3~>1^G?WI])OH_JZJ⋧p5SLٿ^r~_x¢}Kڃ fSD,nKO_g"'v c[`6[v ]v|eV]9a_=%I+6 z>f_?d>W6ô}4v>F&wW*c[>o47'?c뭅'꫅+dҿæ.;sw#o0_$/[ˀ/~(x.-9ϔ A|裏|T*;FxU??ݣu}vs #h9t/ըr |l\3z?/K)\~D>'5ң.#k |8i=W^[ "*K&|ȫbi秡9O~s<#CFM;|>Շy5}RUVM06`80zH Kdz kgo622yF~vZ?GW.?e -^{y ',..p l^>g%!Y󡰖?Bn-ݵ(W=UJCۑ}U;TCd>w"7Np#jҩ,F^~/J}|VЍk)Չp3 ۵W)|0"fg|~]4Yۈ66D@#2U#'_!&#xy2~ dVmDuEbĩw)S8tP"ص"'u&+:oIcvd n[yGnw 2,?Nb6[hPOsE\M^XL_޽0_$A?INk;yӂ=*ᭁMܿ̏q~~ݙOC$2hу:j>_bg@PMG;| y؇80tL>.kQSrg>ئ-̷9xED>y>L8 HBf: }""T÷Ovi*ߒm=._CJi^0wa1̦Wߓ>q=`4|AT|R 2k0毒2"q|E!>z0_@>/~xhI5>14j9Qc:|ez"\Pv\r=[޼eSgO0y=͏+YzBa~d?kɖ\̏/t4NH5j|PX-T4s-LPrb~ Mnņ̇L+5aIDUz7Lۗ**-zBʌ |.BIͦ}pD΃v8eHwdMn(3D-ʼ}EggP_ 0I;|<K Dw{O,ǏMB_">0Lwַ`ᾼF< %HWd\/C`>-K_'Ӫفu{:٣ҿUpxAƻ)oLֿLmq1~h/yE>?3i ↽}7+DsP5??~@مSY(UF٤2a)/2"ť%|uQ˪з|S$ >xᏵ ~y`܊w7#SXG0[_0/λjR(ϬoH* Ao1?k2(| U\Kŵol6TKQ rG lqY(}  ׃bge.հ>MAuS $̀>$uu?_.M+|)Pihs K.֌#Y_00>U|e3Y~{];o8+ֶ0I|U,T@~7ulJڑ$秥3oȏOK۽S4]ƷŃe\g!voAھ+O?k|aj1?aW­;tk7]c:mR?/ٻ T0``~8: G=(>x0|B|[g! GAU|7rGآ5FeДRH8ojx g? 㐫Ǻ"s!.p'pW s?_ǙPxҢEx}~9wP#<.哋',@?xxDXy}e)|a;m18>BQ*"Gf,/,z?t'| yoze:̗^)ЬW0WtXٶOwiͩ^HcŔ~v8U!5*24ȕRqf?el1o؏6x.)(&#|H߯K8D c<~|~ >c X>F^zHȃ"lw@>a>_gr@{_%k-u^pߒTV;Ux~S+*Fv+߆BDjm\4֎DRDfWoʃ' %›|%-l߼L<]X?Zh0&3Wbd6MPA+˅z>0?Ec1@coi>O}KT ;@y>`@36ʇ?*f('JDx/u.c @@"wSzȡ(0n>  e1OTпIKEp_/Kv4d9=^tn!_~^PŚZLou,ve`|<џ't(Zm<(#7iBc| Ƹ~?!ARp,&eqb#nU41o%oKK|R??åY9U| N>3j; Dc>/3\4vtJɦ'_?+ƞϨZ3C!ol 苟_r֝zF<ѻᆱ[zW85oGb3Ovۗ:" $<ou!{^ȏ]˙F`uw=xU?1GB?z9rtq bZ?BXsTn+?e}hw'Y}"?@c/?7Ɲ'II;&ԙy9nj\s2oXMQʸﮌ拦| fמp ^~~ݏ92^Vi >^8?E~%pSϰ/7)H/7a_]}y".>c"ti)F%y}'Gp@֯L.|~8xQ$Gl!9}{oJ)?~~zd>;'V@Kf^JrF?/"5Jm_4? O>>v0_ju'Ϙ kkl=g}Sx%&z뭲Aw^ֵ\e =ޓS:譇)BG?oܲ?^< VZVd.xJ`<+2G?:~;a菱G@|Jy?zg\N wѮFЀ38rҙGDO22*} {d>}֒(MZ(T^p󗎟vVanraLliۥoJv{8Xo| =ss_I_-|~睋ly墍tw+A}ю;Ꮋl/k> ML戮_&>p?JMfH |RIƕ`i:ؿMQipу6V >ؗskqSoEXIoP|q'nGә{뭧~8w§~z3-Ve{9V)Yb?fn}a!(z wx;BR}ZpQ)>!O_,[<|_n,>ZA|=q`pE>{>7 sp8k y)|Q>׈ ~>%V}e^w~CW>|ago.goO=-kc=.E?br4ZpCN| L͈3wjE&XEU8r<|>O ]}o;`ݱ B{;g%hCV!glg??HGӹ2ȇ&ON s,%3~]&q9+QVZB65+ƕ?Fb.u}q晷.__/c L}?N;o.@@r9ff8O?݋COm?G06/&F,N8P4+R=ea>a+P ;! i_PAX?ڈ{vP_,.gQ`/iUEhHmFNLڴaa8z0D8vZd{o'/.-rE?_jz]Ĺox[>W=쳷.;x6?xソFl\z}}xBm +gbz% A}zX 1g2soeZ9Pצ2*r M}>XhRz r!d>6?$;)gYl`Ҁ6^X^1ޝgf Oڏ:o"$LZB}F$GkagϗYzq;]veֺ |e /CNgϘm|^Ft?}ʻ6-Os^?I}/GУ"c0OC͠>~9lJveH}cvz(,磰piz^ǣ |@_*XWܙ՛ ͱ|I%o%WZ'Zb2??0-qlػ6>OD㇔E:MvkWn攷~x|_~]wXYo<~2sMbz5el_le yy=~6 >T|UY+:֞G[]xUg7hH?X.Dwc;|(`%ҿ 7_ *f+1A|"{2A?˰~pǼS"%<|}Noʖ^|RuTGSJ!h}swwi[&o~ETwك[Kv}r>w1%ocSbnrr>nC)0do/O)6F?GET-q ^p2{BgC2k+#tiܶSǂ>!(O'=TDTIt|Q0= ' 1? ܠhͤ> .|9VtQq&\4nJ>npǿ,}+8'._G?DM}szn8HLؿpG.Bh{AO}ZJß2>\WƇZ`QS 1~k8?E;+1 `(4|͙l7Pf2>x 9xo<'^;* @ {+qBeۻ(!Q8P+*&ϚofGnrQ[A q?Kgמ@hsm]h~#ugTi2P:ᯊ0 70_7<§|G.rA/×7 n~U}ga>Eg?z@p_RDO6)v熼+l") Mu{L]$+4WSF|^o4|ZUu':WOߣ?r~DkEnԈo ~X92.hvnQE7 l^m700N0S!(؇ ^B7 ʘmm|p!H| Aj ׋Anmiv5s?*,zuz5U+i?t~pQ4#gB'(};Ѐ> gS_řzD7_&E<gqr~`~C(U2=?f#=OÁiO ']/̝ GSٞyP;(eAYNJRXaYF$RYHeX(g_c1{ν9^oߜǜK²ū;DɌ8k5gqՊ^??ۆaV|* , n!9Ng/#awoz.%gJwKb~.cp}?z=.8W҇-_#tؠf/i?{l|gu }O{4hfM. C'` "=-z|D>ha$ԁuȾfW `, _"1SZm'GG?Cw7Wvm~ yXwt}$؋?|\uv~c8STǶ*챰/Id-3 =YQ鏄 j;̆}|}] =Ǿۉ87'1b?7%T_b>X ZT=8ʏ*oA6ҎThR`y㳿O0S>ø{턮E0s/S_Յ[9e*HCsSb~S6_=u[^zW] /}7{vgƷO?:#A\m "W@& H}b^is0Ϥ2k ܣ0$8ߥX@%~>u^4^ы~ DG;$ò~'wFr/u|ٷ3z(;ou|pK[7]#!_}S_kX__%W |:^ʋWOd%=&{!۾y _~5~c9) }ꤳz}Tۯ{w7P<.N mVKv|E w|rLzVԲ{U3@WG??& N'ģ돰g!:!x*d%lq٤Hw ql#F?_eV`QO~ёX;k͵jh s;\+7'PqNOD뙷ݺ{o]= LyRPfu]՜{d{|˭/N ώ|tDZ\~T('ۜޏ[3}񅎎G8z ̗ 0(.wW0ӈy(1n| ])?~㿽j!՝T`>Jb7\| !ND>75ùמrJ|V֐Ӄ a8'wGAy&\;=9ϖt ]RL~>o}t׎uU^}/~{avλ(E? t'ٷ@}.@KF\ }(`M6a^z&$ڵj ͤ~럜S?)|Ux"IoJqu?ג#!//jq-E q|"_jyKvG:REr]`}Q[)z*$Y4q8(h<3yxWp+S1'c{q7Il")?W׊\?]/;~_a%4 ~>nx:_( ~>s?A/J턽}[$s{_.j{+񷄷>1Sy(iP~[`h/kWAwQh8g' " l>{)e_ <);9W'<i^oc[X_E*z ?w\X茉{Mq< ^h+C/&:IQ}_)ٝ5wl(Q` eHHud>[%1O?? tO _ ,=BoJ3C>7|J|6rPO8$Ii n'S;٠_G}uYdl 0|c*bN[uh,a ߈Ga,׳|x/{`q;>xr>ELG'¼>O!=B %2 2y3l. aM돒%~?mO=,̻Tv^+%Sx{'e_~x_ ⫥q$+ V; s~'5u=5`jhZϵ(8͟7igWV dC}޻>{;2* XMv 6JQ<(G0~!b?~ :`@L%}v 丞Зb>͌1yC QGVzد3uB\D|x_+ GnY뢀{c2S3|t"У‡6%M'UWꑁ@sȼ쿅OIq30vYc wMkejVJA A%|D!oas=+]~٧S˧d@| ed8}NЄ\! 9~MsW CuJ \/KSF}b>L̖8oݥl ku5+O1Z"m\3_3P|Ī(n ƥ6LB2By(Xc}>;?r.\u,[3_͊ǕhgC}~k,dU9,5|g YI}kەH-./t{ח z_H'@>x,1#;^:퍩\3[Y?.3Ʊ_0 FWn>P<?US ,_UO|d:`b8xWr*x&?5_O"/^{NcFr$7& 7.>S#Ź{-27YK G?Cpd/6q/=Ǜ m? ʉ >N~yR,Olkgpؑw2ޭojϐ+OJT\PWx](E7?o hzuNA5W"Um_B{og ~H~)7fB15?b.n)W8$>:Q~R~~oj??O QOo2 }0w4V37&di3S:ġ}wD_{F4 (x HXhnѯ:"_ڸؕoI33 O$?Qȯ~sO ra M,I1 7x;'gvI9Iʸ>\0C[2Is̏gCþ~C=)P4 U/c 9}BI>|Uc{rs"~F,yӝJ#yr?-:0kWqH;ݼW=݋%tx F^ۋ\k֯^p/~ .?2y=O$QnYoq_Nt;'ʂ9LT:U&vy"]VvFmʏ'Q gߟ9|6ſ=w_T~)~~3Srh@Xƚnu,!7Gk x<Y5WcKh`_]?њQ`\`,o˛+//AO5"QP%g3qǕjŎl?r1&9~a~~'F졯LآpHvf>Q^@Gp( ]WvY~/̿$s7?2}'p% |? Qx{ ]$LV=%"!4CZii9A++ki>G^<ޫE?$=/ʻ|p/ / v6q/U@;3PS+%I&OaNu8 `WG09߽ 3>Y/5A|?J-4|~tM*7 b?Y rI|'Ϋ~>C3d06bVJ# 9P.ֿ>"2SjEYP7Rz1kjfP>J(pg׍{p6dvo/*ŃJ#qHï:7wE)2;4v2=m/@>WGҟlţz3sl~>1S~rG!OX6X }^#pkbܟv^XU)[rݸ3쓿UUG8n>A}0.y2GPemlNf;]zdn hNCu&tr\N@+q1A@ t<644EsĀȧr?dMx n{Aqoou2hn Y4<C}8YĬ?|?h5 L TDswVfGǖQ g#&磑݉~^Jܣ|Xyy[ ~>m2]{^~K-^9?F}֫m-@{ S.̯E/~3|>(ԇ+i!;Dg^3_1ׁk }`?>WS4"wkGY;}9jv>WO_ţ<0VnOoR;1ܾ.x"}.!45Oo1>0bO~Lϥ'c|N RUm_WO]a|r/ ēhCmE?iטzplM83Ȭ)WJ hOj:}*zs8b*~mtz>W2'}6hz,j$Ji W+%[ "$k~߹VW6hXO hL@?J~p_jDs`s^'|?wSѧE34,3Kw~4fEUcgN_3,>PwN G'=#'gl^woYAO3U`_[~(k[5>{+)哚С| 做w:ԏ+JMH叜e?1vJB}̷)n]!|2!}0N%ڀ/cKtwtgs:})5 <OͶSAk.8xjhKpqR a~7|E?qe% ?ҋ8}Y~cw l/3Qhh//|5 s?SŀE{n̬dX6hԗ/l#^a~ip_=O;RJgp&= yAӭBy>M7G_) tL1q TQݲF[ (\j`oƉ(M%{?@|ZBGܠN|`#TIcH,}>/O%5ZO U~~ϝ#- ˶88PJ-KM}D8S q!#^OpwvzY-p\|ʫ}E%] ;_=DuG#+.Շh?_L/zT4o?!C`V&pey'EsFͩ|( |TK85zϷn_O)+&FxI/+qyrJ`Q Me+G4x=yr\8_p֫O&i~z)5P[)[ŋ\$?: zܓ㳌ogZ)$[uWu7Oԧ+Kf{,A|>3 C =.mY[gnmOu=o-y~n7g!v8_8UR/ I^_DM#%w oP? vQ(0PAWyK_2y HUT UoV#vMj,i!|__'8?Gb'wSPCJ΂͋% H-Nt^%`Θ>A"^IdOv*SD*kd?'Yv<\E}ʇ4bY] ԏ_R ?~L~\~2EBxݰdӹH?cu~>G ah_3Eo⳦_K2Y/񈉆`}8ߣ,\3xc;W?g /8:feŌsY|$SDM,:lE|)I z"}ȧv ~G~' @gƦ~ kg11=f gC:%!M)_q5kS>|aX^LfK9@ˬPn\DɓBꧢ~_)%ޡy/gX,GVXL7߸=h0~8|߇;{ 7W|Mfۍ4cihcNpuz~;or[rF(n*'c?O J3_H}܎}~t~n>3I=p#U5'8o|*/pPFq ~ܭ}tYJ m{LoDq? ˈԧ08~):M|x;8Q2hNzKЀ,+=̈́_DW˄#-A<쪘KGK{hO}PN}р~뿂΋ϧ {Z4g?bݮZGTȈA/<[Err|uU%v[d"xೠKOQ VR<3OzSjFwL3ϟ!R")$?㬋-{,k#ID g̱\,}ìSO9;^7Bc`m1_@)+xXKU{Y >9J^QV󕧛p%BtUT(f|iۙ{-۶Rhw筂J-0>\ ~Hg|*=D{M )gy? OŤ0>N"V"c6 ##d?]H#?lX734?\/_MR/|T/f`WT }03ďV*Щ>ndnI~3R؀y 3'>h~eXKG;{{1 +^(/ŵg| 민9%@|[lbþrv)FN;m >.Wn@/@stnڡ=%Lli1}I$ҡ1Ri/оK8i_j?pݘza.C$_ݚ*%Q^ h ׂG ^4{0_w_'v!~)~݇8qp)o#$e &3.) t/>gշ={ 4>9!;zq?I?l+Fc>Y w5-:SoϫlV _<~kȟ?~o#}ol]rSi*~lQv;Ӂ9tu끼7pW HJg<-5s?o 9B^OUEV=xڳ/2=͘rn Jߪ:g:nPDΗ_̯|j0?d'|k9d~?I5Y| ש"څ4^߱?b;X eȭ3}~] /O&zӇTO?gR~]` ɑ7 ⣻wYbڮJAҞ`gYϽrJ0cJx g1N_n+Lz~~L3c} WOO1ls H3k]_e݅~XިGިd!q~=aM^V/cK'ׁ`+|,\YAyL|ݓ6hzWtG'!Rgs~#9?7?x{b ()܉1L)xVXW buy4lX[ҞCgx=&+HS>;)1,1?K]0&P86ڋc>=jc<HR^QBsAzÅD~C9t}v$JݙX:Dq<^Ea: "rI7Lw؍D#cXdb1Fzb[dhdb["i[uWRZUUvZNmof `i 滩6n#L@~Kf-_D~3ӟX 8RoP&,R;J~$ɏAJ~ G$ @qW> .2KމM4WqqF_M8Ǫ\]sd #4~A@ʶ|w6nTb*WuJEB$'~G_fs8aChvvC?kæ_>d~Ie)Vx7ħiC@Z[#qyWrK] 9RxK[r rTLO:z옶 -(;!7aE~M|P{~>R@9]VܙH>n/0k3@I? (a|h#3435O2kٓYܥdಈ Ϫp`ՠc@'E#.cDx`)O=Wm/kSqUZ0o3 E{%Ɉ/l x MJ1(+v}12q^;?|^zg(/$Z5Vssss˖zO,蝯6(r?pWn~q$st/51Ite.3P6SO=uOIɀ'߅DvKl1.p;vQ}1Ic;:]ܯ395Җ$"Bʙ *f)cS)8rI>Vf1ߐoWMKgJ5oNx/wS.#w\>^'Wqye63XGX[.kƛ L|"|֯?Q3L}z:&vSͻ;ͥ4Ax+HoM:Q|KQO(k&Y2+ia>6SH |./7d$^}O(o ~Uw9ʒa7q?~?z?zv~>+?&|kI8bH/Ϸq/ >-^vW+A1{/cvXyR%?B1o3S!72j;ڙ΂~NtK_:]~R+^7S'x+i;8u:oʃyP=3]wߕCf6X䣎 Jv|j1GŘ_a{>+<ТRƁngыóC,GIǿ61D؏MI+/bK{Ix@|^x R;o=|ZE/ T|%jY@r'`.I7Ų<),,})vb%/\gxrefDf'c 2֡˹d%F qEm?&SE^? ? ϱIv }aASB,iɿ?ɿ%jOgIA؏p6ߢ.ͮ>onP_C>D޳Ԉth͸Z x&6)~FP]vI_pYVHwSd*yH a"5Cu8Po!~r0?d bF =d7xe0udB}8=;{+BF eP~`0.x&_%)+9e"Ǻ_xP"ę!pw&oLT|C#}8O,C/[FVɵC/.{U|" 6t=UB8=hB淂5ק W.OͿrQc1v8}[fJ|=y~Nю4A5uZ8\o@8.l8UL+nBG;~tUD A&+@#R|B0F> \gi\\Ua(N ~< ?䡄^S\~?~u~{⋟ }  ZNv#gwt n{AvWU竰2W.9xbK?05M1(URp0=X>Scʼn!6]`/bp&VffIf?ߊFgٜ6{hnֲ8OMi޼N&TG D?R9^`skk{уf/\(?tM\ 6鋬0/P$ .|(2U?o+\09䍜FٳYߧt R/-*[|Go`_/rsAu/߻,׌ &bQ%aLon-ik/^=~"M~C[ƟmC;G^2̬֟[w􅷝qኋn<6~W8oo.fr3|H,^.ծ_=${>CR_*ז~ZK2}*-ѭ~/ObїprR$If9>A漏yN_~ɠK|>EY?w|GT#'}ڷ*!{m4/iﭟw@\B#KU5?9-\u%szfntƗVkFyuK_J_ 'Qx7h$>\pu;iq"}s*z;Е[;4K,ZVVm64Eֈ&U+S# D_`?,ckgzw(/dMC#Ձ?hm0㪫{*C?]~l۰o53yZC~4ԖITA~U֋d";n}3mjۖҍm\to~='DVeGl/kyV`v?Ec~>~ BD/K,q: +sR^m3ɑG4>ċ@?S:Oe,M]`wLQ㾚Z>=e0VꗈL8QN}N=Ч 5i?KWC-vmƥW2Zr]=}]w='Or^%Կپ@>[܄z'Yo@)-kk-ѕ?/6ͪQ'h,)- Pi /"alMC(b9$GX_$}+>77dg uiR+l4A }=}ډԗ&pr36n[;{˧g~gU7zXR"?Q۽0T;^>?<cC}wvdYL9Or7Qq儝_KjIo#HXXϠy}S.ZNĉp /_'1G8ϲw _ػ[SOx)zClYEb ֩EU2@9`q[k5թoاL@J뵐GPfĊ!5R帟|=O&ًjWw|Ԓ%G{_~yIwّ>|!H9r`_4wƉ&k}< j/}Ok~_E~MܟOn]H3.}8 '{N{wNyQ\ʡ?baO'.e=>|}ڣzO@ϧѴpG+}G S>O u|ز9@*ǝQ>|%6>Xw۹ Guc'_'pfAtߨ|sJc-Ei_~.ɃWCr҈Hs_mp5yhط?AMwA'GK\IV܈\~~1 yZĆv~̷}A+hy盩RM"wI4;)σZJe0;.u%'xxoy/v̿c{ ?r=>zfAN;t9e ~fza>c1}A_])ǸRW>OtF'icv4Jav]^$#7=,R]#Pɱ5.9/!oE|qţ⇎LfB!>vQ\Vlp".Xvmlg0|&s53(lcUjGDJm0=Y,>}u=7ywQ3W]s-Կe7a ,Ssc5SqOFd6 ~KvcTxGΰ\zS W2߁m#FMR>@Wu/"_Rd!#a{䈶GKN \`Q |MҶ]sefݬ}w6Wei=qIoS$;%mGc&_=\FBl^P6~&xxR{gkF"D=EΧ\6r$1_?+?:gZ6=vy>N7/Ze2gDZWo|%]BguV Wj5e:R@<(òEKnQdO?3uW}la-⣈bC)|q 2y\YNY45ql? ׯy⩛^xW^onz5k mWec"Y"ՙ)5rP5r`?OGЇ K"z/97h[?>?~bnٲۯ&:l~~eX|L[Y!a%4vbG;CWboGJ@ɇvKlw0m.YzGd#?Rcv=^t-PI`L:9(_| 7\~3(1od# ?-L !:7?TjSn)žN?#2]r_;3_|jnznnzk2V9zט/vދE#ңkҢdf~V!"]z.ϰ<9p5 K:i=;C)ѡGiA@qk߬QDBG[#6_/ȳ[,xEnuIgAԣg.sDV{e]ĺ IU7v.>bV vZ~6+}:+> ?B\eYaPAfSzG}///?C}0Cs C"3 y:`=M?R!K%)3Sgd/1k5ܯ)OW/Gfu:>Maќ1NN`? Z'B[jW֕_4IR7O]]<9+V?C0W }׉W^ҝ&֙-d}zR\z먕qm>{r|hOܝilUE|(F%~I#/="j=AQ4D nPcZ- @eFqILsqq_4g{\~rc渵k< ?a9dQb9'O7wyi;p a[5҅}(%GH͏T{bH>'VGnGޚ%u*,8=%  Rכ{)7xfFrÓK1[L Bp= mRxg1?Q7 ?ZR7T!UYQxYXBG@}0yua_io6W!Qt.3_r/wo^5ɓ/z@9#_|qoao3|;O}}@e1_A}MG ;V4%pr^ .qB֌aa6Ύ^ }E`0ўw/q+/Z)f2^-F P,KDKd3W?W6,-U:?)$g 1@E~'c7 ǤۗH8b( trߡތl>z{E8xk%[T{-eކ+#/ANYC|#C?|'>|Z?q3E{5D< T,={uh< s o##?WNqDEH8]5/?~'GwO>3G?cD|qȒizF_1p_pdړvjE.ă2}5<#b&p}y>i?K2f7h .m Y"0G8f>bߜewtYȴHVZQP3_oWs!:;D|=KzҠ1, +r%8~LC.N#Ld?ZLWR%eO|yܕ{Pg3傈4Q^w/gdM[cpM#K*w|AE)Udt MA~ t Z ܙ5҇7| !aЬv0OGLPjǷZAho>/w9x[#HD39nH!(JFv0cN_~+Ϋ+/;Qn6m,j%u"B.J}d{4/f0ޅG ӌw؏3iwrI{\޶.GG,%9  'uYZ10_hJs/Gᳬ|;ǻ%<ÕG낖>2 > Jx&=J(%19'"8tGƒއ Dv3k"--sxeqG<~駟{zR}/=}eI41_23-LD?ɳ2jj8=d{2_%>0} eplf8a>U~Y~"_"Sޤ.4}1,WU RH~裏T6}1@C|T_1{VB<ӞK|עYvqs$au6\2`=]2ϩ26~Pib格О"UN:{Qkʩ+yΟ~$޿gςuݷӄ+\p~^&p45ls|cin\l SȐaqPfO |]a-ڛ97ܰGć"}>8_1ʯAtD;>2mE$9Ns]`O$LCq^qU>z7'g#R7wP_hAN *|.#/ܰgΝCC /ݻwi=-1yb> Ⱦ*`MdAA/5@1VXJ>-3_~N4aUt "CWI`љ{K0$א:EF0?^ Q|N ;wJ|}HR O$'|% !y<34֟+ Q:uj"[k5z͞PM[0  T V?? ڋtUy*-vUrF:$̧rp7_[fO}OKKKOϤ}qO8=߸3#\:5  z9HG Gci~]U0Ә8s;uƏ礫^h)~ U~_--|`J}z\®|% EPo=rfzr{^kPi˥si^PlÍMMmMoښw5kzvOd;BIp/{֪I/L۫eO5y}gR쿠VM犧ms.f]%&IqO8Lu[ PHMuN»T@./W?5 i@uTZITJ_q73C~` aRǾ y},(v-CGY㛎sTd+e;$$t]6P^{_XXor\N"0O{j旷뗙' ;fyUm%s;实汣u<dR;Oa8KLIq)5ᝏ;@\,=/.D@Oް'1pThӼϲDLS$lHGE2 >:" D1骏[_Lbf~0;*m_`+ r~81v=rQ:.>=eKFi*v }Ý 9bU?$1ژ,/C2/>Uї=<AzÝ}nx7VվSԓ?gm_ 7uxJuzq:xǽ2)}V"\"9gw@E25 mzmr CN|'\p~˥E:VCH5Lj~G嗏ۿOZK%3 ~ u`~;3a>Ν/mΆ:h FM ƥd @bl ¹||vwwgi3@+ oHvߞm{vD[!;%"PCZVn\]u3sc?'AmK^}Uf>u] *#/OȌ`#UN /Y.Q<oD28iaN`d`KY×F׆K,Rmw]o]\G*:Jh/q8:i`ڦZV <|7-اq}0˭[7lغnҭl #?Y zv4__AW=TZ>k@Os~q5|͛G6o޶{|~y`rrmt7x+?%DO)EJ$4LNϓ[>xvل|b~%hd!?/ ?KY+yepF j$|#~`yvs!S2~-9M *៛ 3ix" "ٓKKe\T+泑?sMMM[wڵkܹS47{Ӧ۹wjg{ްg<#u[[ӲS걙G%$>9{*+ hw( ݏ>K_Fg͛{_7#WT" ˗L2).2*#eK?d2Dž/Dm@y˙#9 z>8,=݋w6[zo<9F۶74I @ *1b& 9\31⡱}~ϑ`%ȘEk.zo [tEƱGgT~Zz/Ko[a+#(p\ g͞κ@V)GI8YM6=M2.!f%١?l_O3Zpuv}sK-u]TW_7uҹzdm[y> )֯O9ڙtC_/i֖IO9ba!s>Kξ.욳/e6/yOpeG N A$ՠҬh/f}v ,YNeM v3O,{*ЕB!>J^e]n({cڹ*`zӽЅ~@ [J[ Zk;$ (!5zjP'%OM68?=ﺫy,xk_3`;n[5Cq//-]w%'MjYzAC'dRPօWi{E;z3Bg~U |+r3_FM'="ꓵC,LK] *(z%ӞD)L%[…6u i„˯^ߟM Z.k Ro~s>C/Π!OǤ.N~zS"e~Dg_:\(G9y _~仉C]o{>vK`gէA/uFOڶLG3ky.-{x"I<'-C!:eK[Z.;ы;?]o}5>}Bs=sw~GU16 ]\^~GRF)ϼӹKY |H ~jnvYc@I5 R3tx0~S z_b nMRG"\4GZ`[҆4|EߊZ:wŁ%OL; 53| bUm|䈜)E-g'@sw]q?݋^^U[[EVڦȋ,֜ySbvw讷S<Ϸ;;wдiӄkI=4:.`c'm턿V9N(ߴ5 ?0.hMzuJZ袾(rO[LWqWe 6$p3>~aCh^ sΛ_|{iy5rb /1 g_׾f,~o. H/'W0oi#vݢ_~+wlxsZWE6Ւ|+dHH=2Sأ<ڷoa/V3&Xl?P8̳X3gsG<թ v 7}t.]*E &Lsof+r&qOghOD{PE}F0Ϻ~<3aA}~@˰F'~^=| ^Szʘ?{]3.Η}?f /ܺnB'ZwノݢMfL'}?*xAe+ׯZuk ~ˏ"^gP/V>/7mד~׀vGlb$0I.SNpxgm jsZ"^; g3ꦫXb>^?Kǘjځ _l擕=\PE?cʔB9Tڝ yB3Ҧx`F̿f\i9|CuumzD1iO5PK~}O.F>3c>k-!qgzaY3J-̼O_3˫LLdmM`p3ZC R?]֚a_ױ}B~ɾ­簆nZp'lKIm"`CLy~juQ|(g1O|~^*8>pK\!)Vꏪ$Z Z#VmТ&X$Ѡ$X"ƘhpffNvZ={nsczaۑ+ff>#yPX,aN= Ч32<:߅rEOMg\G7=Ez= 0R\jx"1\g8ā6_ig}̞EvO'ԗT#>t>ڞ *} ?׈ʧF,~>a1?4η]z1Mڎ&o}Mī_f~k랃/lm}+R7SB}J_Z̡/dz'?,짾}pޓޓy:a>#4wl9w˖ݻ9Ig}?_ !wbqёj~TǡVO>1Zf~{{k͍[G uzunnn&~Co<>} x{ 3`e K+|3&go^XsKla6atT=\!1|Lk5p3Upu4҉i=iΏtܧgwI;,6Rgݿ=_XAq4w{w~rs=J}'D3gn.g(]8LxsECT׊Q6k;y)TeJ: _}6깃ss0@[ޟi.Oܗ87/ 󵬎 I+5&>3#GJmoj;_?PWƷr gx~m(-_,1,Lt-_\.) ٢ݿëDOE_CM]'}mXh:ev0▫gT҅q'npSO2A5cnǮz*d'%ƗÏ.1湃z칇͑ȧ>/Z@߃?ȝ-?d|2}?ve;>_:3Tl0Oit|e:ug.B%wd 4"_gE=H_NaZ1Tb^aí|{v_>L'C$Gw*zE?JΑ to<\ #k璉?=O=̑OWʷ1ߜhXQ rpS\hZfXKmR: |5{ˮ}'M@k#PZh 1+C{Q#t_QoGgQt _eLкΛ46rtYƷn/_B_Gyn3VhLDx/.=J8{ 9Mwe`,HZn&YfFGJD[ʥk|a nmrcǽ 2j>Y_Ճo|s@i4PQ> ţV/tMM\aC ~xg )5aYq 9?R[aW^> Y/ͧ |^WKO+e f#0O^ MC&7Hv?Uߣa /B?5K8*X[7}j gIϷpLqQD=q=K_-ᑩ[TʩOf2%9sn`]/?U+0!ٖ2V|ҷ!iOp8ַ:} ~p^}$_#:ɚ4I'<1!/10EIJQ01DJ@kØ7\<4rtR}{b>o(6رcu7w".1L: ߢ/@+:j{v]g|>xzQ3.B}:]ﮟx|:av4VTXV0-2)Wea/}~fGhW 3_ ϳHy(o^Y?k(t ~3/C/C_ CgM^&̿sN~u%+ۆiC-4e# Z#%g Z B{2E/d|?/fC_E$_fJ /hCޅW=gvi"f'b%]j;XGq2-u>Out|&Ms!As BmrLNN֟hht"~+߾f@> M|/KE|UȄL|#,=,1|<)9%)ܭx1e_O~e};BaBk>fLw]f>|M:7)}0xla>_u~zRcwHg4 ?eސE*ϥg\c?_DFq+8ko6sra_hC*|2=رO}4t>eSO|b~=-`UuoԆG~UfQ ?sY>_/K _"|es$HR^bH|qW8b<> bFIۻʆe>?#9|f=1_w7o!#>NK:)2WbJw㄂޷ԯL^r\3(ls\ƒjH FEW[; qv!vLY?Gy̙ﰉο"cOM "s"*Řz@_G-뿈?@A#oŌ7!|a0AW?N}"[,+~H!|$[n=9 /: C=n6T\BgU3=|q|E&˗Bnq>?WD%D3?MرoFRs$..p%fLL9.m-&GPΊyA[ O \AgBce|)0_X/C-- |+3}pW⣕Cy}&=|·&b~/o3#9X̲'/g.|ٮI81m^)X:3ݠ$ecu/0xں̗ik@l)<0 }1zg}̇O`tT<_ m؆f¶sV~)~l<|3A%a/ N2DbV]#_ 3*}R Ϯg2 Ժrڃy|6|Z6[ѯõt5n_. `f=?drBs qv}h ֣s?Bc`>[f󷈝[B>nmTo` Gx@F:s/T苗kFҶ V`a.BFK(#hU>]XZ_,eBs:J_؞d"ţ>/[8-͗tK$MaTޥ'tiU .6 -stǧȦ^;~ .2JZC;s<xfd{T"Mӣ*OD p جn᩠|WHJlG%- }"/o)G*]+e w{X0XܷL?Pԁ@V(p"gf{F߁ʧz0e]KDnOӛ z Cۂ&_Jw>@|tQ_NqM<}R#it*W/?|:}m2K3vu]NM }ܱ7 V2|ƫKv uXqH/In&E Y_SU^ z鄯+3~-!yGxM~S( \`~-Wk e '@#!A ibK70-D!]黲k=,ߓMػ.Ub] ."rvMtWsOթ=ȎWx10zixoc ͓0OXA2EjZ+hOjkûo2?ܾuC[ d%SeWv4 ٙᕫkt0aCE:қz(bv_z[X]~">Ul2կ)1_3I >άO{|@pݾ|w:ַou<[ k'F-榝eKʉ|N!|\ԯ$=+<O^P,.&1΄;!)ſgՅּ-':70q-LL0/~^7Џ7#Qrr4ֆW_<:mܒ/|f$4>h/'*['߳iڥ{+qzVfdompH6vd< tc\aHy4<`Ɋ|_ _zHӸ>c泱6WK{Uon{lvQ?nz_`Hxij_M_X@!ծ4}Փ^K?~ -=`ΑkiR?{Zr/d7ڲx,;F̟i$֮b :5rc ䷯+2կ^SKԯw`^ 30{̇|԰ӎ85L%1_W酡w7ַ_i. gg9je;1_W'}o/]0whkm>'$ks7ɓ':kjkUmA.y̯a>c|~^ՙWf>V-o\tb|!>3|'=#?,q3#DN8H3 Ƣ˵UF;KB^?# 繊7׮"mOo͏ U,|Znڝlv'_\tܑsk; Ǜ2 .e ?7w\@!?1'򋷎=ukof.Ƶ@YꑀPq%rMj?_|fWYS-1Ì>)`L_f~ɯ}e|0>ND|(x7EHרTa۶ C" iBNcE_?NliKR" 0hH?0jePREH,>ѥ4Sa:Tǔ͆t>2|EYABr? kL28>3srffF##~nLdZȧr(zlPZET-akMr*u'u~塼W ϩEVګ_]W) 5$T<{g~w#ogG'+׭T϶VF3߮Xǣ(ݥ>I8..J)~L^zPU~Kf~Ӿ~7\s/}pax Rl>tX2|P!^Jr<o_~ïp_=qj|9P}f> {m5ihF'&~vtûٻNۘ;Jȯ+r|3zz56>ly]С5p7T5i;w x OoSzKo|uKW teobO7r/||?'QagQќJ72/~%6cu>ގ sHt<g*LV..e]6~ZE#c,ƿ~{ӭP 8QY:x#PG?nkb򕾎_(.m_z'^| ozOVBǽ#nmW$9Bd#e7Qp%SdxK.fq*I|Ww}CW]zVWqVz[e>^ W?Yw|[__MB2^Vr ȏ>dHCWL]g"q"5յkRz*bXd ,pD n{qa棨(&') o A<+$f7-zXx?8;p~J齷O+{_튾َ0O?]=:066|2M-爵DŘݙ<Kn{|}(OTGX#n_J:'l}v}}*Xb>oM.wЛ{v >߾ %"ݢK"\Jeq'^PJZ'KxK'% '"|?A@bW3d |?߹?(#g?}݃_C |/{0_}wiۼy@?ܶmUQ|z W:IE.ӄ^~/ }y(E@)L'Y@oDbW %e}MU@ЁŚM Ȼ-aBzh^;#wgVlJo8lzbb| ЋGU3_{32 }abc-1?Ol⒁j>) DG%J4 =H8rJczG-4;d}ߜ2| `ö{{W~%|Dn2/5֏J,Z+?D(syuѣ4_+[9 {@MLkgN5 }0?36Sci=ϯ^|!:hAWBƘ?k5YnY4߳N:܏#'q= {|tՅ~xoF`ҽ1yPۅ< WU D 7;1?&ĮR&n L,J91Si'Ũ-zZTnqv Zl! Q~ˀS*2aq :oXḢ5Tm.Yh:~暥!0d|c>ljx0IY}&Rfhì{eI뗘_R#jX2$iG̷U[C|s_^0 c{.[5a/|nHq ixo°7 UCiaMe1*߀n ;mtF5Ϳ/)~SQI##g6N{\.U K/c^8ZiU  h+|eR=!?U>=/)8R#ťiS.]{`H-5)֋ߛǘ>omgsŔ@2zf ̇ʧ8UE ݺ|2KO<$u򑗘gg>\ðZu7!/nƞ\_>Ǩa&x? xӍ>e}8{OZ{"OoTbu)|f*䤈ƼJ_O|`֊ȯkpX7RE|m|i"7%WObu 6 ݞ-KK#C!|"䳧!-[! 1GI̷ϥꘪth+dCob2-e?:)nt?"+*Jo"ǎQ,snM:?H'^:2?"n_-o6g]GPßaTqrz\aFgdhLIr٤Wo wF&IQ %>'yJ5Q,;D }|O Hy2/Z][Y旐?02۩n%ö?@ǘ=? zP$sźU3R@ܢb>k)3|j?&̇O欸雙aSbLcJ{xBMx7huob?j X G7o_Sdf׿gq7aDyߨOlBޮF±=>"5a&b%8Ej#ʆodcȇGW˥5|!o?y>{ 8F۷aޭmY]̯|||"~R;6ڜG~ ̇o"ב{:nP=Fȿak KmȖu>=?>q*uXSsuNMp<5 c&z&zZ雸,Hag$s528f $_t4`ucr,%|{p6xOOpW }jxv1c|XX>!poS'"1 0 1ng MNRú{zڟns׮]?H~#nr#sh'N,J63G 3[m6Z$4Kt—5o;;OO-`tXsU6OL_:~ؘS|)źF1/0*uZ. Z8ޏ/~q,A {("X\ 6z<BETPi[Nm=Fo|0{K3KX>Awt9ҿ =B;1y1[5JFGO0r[E!kj|>ݔG%qfџI"VKb2ރꀀb3Q~MThx<ADb6Q ˧vt^\tѽ;ť줟_:o}}j9??{Qł8cb_ N@mӣO8x|m}u24B?epOnlg;w{ Y6=![ړdC^]|puuM70&ॊ:fUڿ+I{a CM>Kn>M0-Y>D|O)KCZy2tIfCK? FimGczhwze.¤P`@>!ucccV?}u20_|/-~t{<^W]f~6Ub>Lt>_eF=,GGt>;i7Cȷߺ lBzae>M{rc|x&bx[R%]֨"N{E*9mQ D҈4~GWDϠd=oQoͽlUgz_ȝS7/ ^na;mn[YʛVo&ʯY%W0NJ>= 0na/_s+;9*I66Sp4~,Kom` {~t!^M{2lx.L 14Bvg׸}r\|0'x+.S]+_5a߈['<esr%$\BlR?]G_hDJ_qCY⚳T_"|Xb~. 9=A ̿2<;[tz#3?KC|~;iFg>t~#:{VdQ,kQZa~e`ppy;@?ET98:gU7q}*a-`H2)}F1I# h/IHO'JO̿ۯR;FrxMOmGva 1̝-7]D&#+Taϯ/1:<ޱ鑡׿v3'3D|X>rMMfu|}h'ԃ<`[ ܷGql>E{Jo'W3]cm/:gW5 :w"NOk7a'ldlVϊP3j%ާwZHY M唸~(4$]}@\ٚPędz$EA/R_pA:T_??#?3T&Gk峘?/AX 6^~wd=ĽzK|7Q Tl# /L3=Cؾ3_u~s >l-p0I]ZMN֓ K?PQT)]B?1R@,`*34V 'x@( /" ~fdH.څ_{Z }՗ bS4y _cWYb~FO̷B-Υ6G|XGEr[HuA=v:@9w~hO)·z4bfflbC|fkRTq۵]F~e\g> dQv}Ft?(zto0'GeCI:dO友Ns>[ # ͏톋!_y oiG)Ool|35̿_cOT)x'a>3cf> ć>1CQy]\mkvw-JGk,L ~0p0Z01"#2,6O'}iGV[\w z3lFRI@Yݕ!Ú?hO=ϑM>ԋAa>d舥>eoPwK(b%O̯a{7;3 # %d@>3'o~ Lpof=5)7sd*g[㌻%o}cK.+k!ɧNCI8:N_\H/!kiFUp1 UMQ_Q*gЫ8oHVTk/Ͼ7 +@1kP8 zF92/ds#.3;^~Go̟ic{)8O"<\?{@m.@ @JQ-a_>j9`EV N9& G\-L2( tET^&k{14q`biْX\r{\ė$N>S^6цQktaa }9˙D#ݻ;2ţ 0 Q < 2&|?͂tiqK>O&:}pa={p/3|+4~O~3g?I$9fULW Q7S9Q`~A,y.y>/SJ(1ixe-R\ßkEDs9Cۉ4??J6?毌ZW'/.M{2c~)ak}I_裯Զ]^ntV4=>6oXng4cGe$bY̿gdvge>cLh$:/֝VQF,8|й0k1t6 bǬgW_V*(S.4Ɏ}׈5aAB'Sy@|IxWZlrb'u>wl ȿrߠ=M[|x?T0߶ɹs#!߆0e>LCEu\}3++6M4<ß>տw7:o;vT0q9?A WxD.eF787pb"",h_ą.HżPCƼbc%Aْ/LZגwp x{V?M)_>^s(#2_x߾W_ߚMߜF>*4Tb2܏1̷̇wpώKA|scO}L]<5:0N} OSQlr!Ǯ}'fvO5~SZpm2d8 gU|)+@ƀc>g`;FE헝T0:&q [ckRJ԰ǀnCdo o}5'ѡGm[w󕽐Lt3'ƭMj$|} }x {~f>-_xᅞ(lo{z}ڧ̗B\|w;\ZC!)㧌:+-7ȉXZ K$Oc6 .-u7IDh4ݲ}c Nܾh?3bڕ* ~Tt d2J}e߶mlݚͺ {,lhcb~?'SfEs{w#nzO ]}$d~yR$H̓"z^L vX8Uܮ{Ǐ QZ$|c=ĭO;0?kpgOoȇ5Y}a.VnQ w oLൃ2فމle~RL|-re>ChDߏnώ{: 4%w_?`w90(h>`)vEh/= 35]U}]DLU\׬9 % ,X7ֻ''\eˀTܱw!Y7E;^?1b{IBZjlwGTkoa?ix`o7ݴmە/ Нcc>"_L~BI'#r݈k󯾷ckNki?{$.MηοPALu䛴'}Ǖz2ࠉA5c_Ю[ib׏f@ (?x'skή9b~K|Bus.),ɮ~$a;`q2g?_c~T>7}ɁpE gX3azÚknX{[rl[#;Dgo?ۇoD½#{Cõꫯȶ7]{ [nΚmI[Z`o+Pm)[ c TH>:㷌#r #CcjDd M?$eB@|>ݔ6RҨÇ{yXs|!ek/]m'{n=嗗s#`m71|ۺɓ\.s@>BϮ&Dq`F$ !uRHTwEpΠ`s2,Wr,,9Τ:ᔜq L&c?o޼uAovG*H Uf=+ZzSauah47O^kyROО7< gv:S`2J^㝎2XKܚ 3pG3U5iω>~*]6`+)nU6 8󷚩|^F٢G"')sS򽲂*ĕW)_D>\= 狛x{wTX̏f &-_"_*id>)BaA̟*uQ}rU=B+4#Pus8kLd>Yyh:qB/ǖl*=.濳MџYN먷2أ()6~0O ">w?q(zh+E1y8b@TUMlOgM!_ B~\o66b+ ߫{~= =A35ȉm&&r'3m"4mbǢ$Uy,bNP@*%:l:QaWs-J4"rl];R0QB+1N&P<),  Guk.]O(!Y~ތ[h/ފ]C }KS 7л |'2!%tEXtdate:create2019-04-05T15:04:03+01:00GB%tEXtdate:modify2019-04-05T15:04:03+01:006FtEXtsoftwareImageMagick 6.7.8-9 2019-02-01 Q16 http://www.imagemagick.orgA{tEXtThumb::Document::Pages1/tEXtThumb::Image::height512PQtEXtThumb::Image::Width512|tEXtThumb::Mimetypeimage/png?VNtEXtThumb::MTime1554473043AL̇tEXtThumb::Size5.18KBBxCtEXtThumb::URIfile://./uploads/56/AbNSkjw/1875/collapsewide_120198.png eIENDB`assets/img/grid-shape.png000064400000027107147600120010011351 0ustar00PNG  IHDR""v pHYs  sRGBgAMA a-IDATx흍zd{0mgb1 ~`&x 8 9666jm#t üǹ_x}M^lﯛN+$6.S16Xt3ɟLtB cKr*lB<8eEC1{KY@$e9޿۞El}X,U+4VBYRV1A꫈&󛲊4ȥRkQk (+j`Y4 :`Y4)hvo&i e›b#Ҋ6l~)@샵b.zύeCyX-̊[]c{G47 :Ūˡy(e#~}~rJsA 셲M N5fPKfJb@+]f%X 4]aE)ƴGYy$E2hg+ /E{G^h66zwxd :f ٰY( (ux VV$GjAѼr ,OwRzpo63&zύs+ tMm"% ~p*W m,~/E(ijDʮ7 `VfOl{2OpioSM N]}p/ewvA.e mzAQ9aDmGmjiFkCoWބ2#2LX9Sx(#tb/ lèa{ R'6ĵM2bTPf4[\({^%BH}=)39H E@Ht7$4xs Z_x'!7ڴP^ّW W4aS%<]F@,@a^ ڀ"Cf\[ n==$`1>GqO6ZUeAx{:D7b )ц̛ ڸZL`@ tuh1zj :hp=52P*h xJVN$?<r]QJ\%>>'W: N@qWQ  :8f/Bxɝz6%'0|ܶ t G_^NT @q Cߵ2ʩ}i߇|<3q{360xEx!˫c# Aߧ }̮ m`Ѿ;Dm"@xAxW}\ԑ ,u1I&q Fr0# {b fm6ytWFoe#c?fzp`Fw |onEa s-A B``h1gB~C9`Llp ϕ6s= A{?9o;h6JOޅ5aC1WN86/>-CCAF(܇ nČk#>F(܇ mht293q9'9m ('=#:i+#4P:4h6P@d`Vm('4<&A{%БOhu'p~pɃH*ta B.M=6sZ5'ph0&65 'mPН3G=ԛle Ώ}!'ׅX1=&[\lt[8Bzv$h mNhoHx4topr[jB\uGeػ13IC$B==I]tDrmhOlCS? irbv|% :-bA73|hXUYρh2cU6ID> ݅*4gmkcu*r J`:^t"Q'U :,4X# .Ѧ :MD[ O4veE z vVVX5ClhIگ0jVAayZ0pr:Wx4YkBPe9 X KBaRmlF0,kXf4&WX ,)`9 j)&1m07[ki唴7)wi)q}Eݰ$)0$Ԁ2  E{Ag1ɢyIx'So ombZk 7e+)L !āƂzAQ&7P K/<JtAѶrjj!rDCG^RC8`&V29%5:ЇI˪'W(ei EJM 8wD{0̛ +fuU7nj6^ s=e(4)6^&ibdFAE'!<,wIY+f Qً@2Lx2)Y>I:d~ŨPmUg@eUy )hrZ9m`N_1PH>^7ER,} +.(䠤g!=R C_!9{ (4x,`Yhˉlj|ّ=Ͼ]!nS0`~pnрG\]`9oGY0Ik Td`ө{zm|Ox=m|OoAFqMoA7jUΧ?]S!AT Z᭧V,<rA`S\= ZP D9`Yj :uth״t ʩ ڵ{3r#Cxhc{[)10}{ :0FJVepĝ"h>Xo?t$jЛ 9+Ƽ族~%!̴!i!W@qX6 `Mm$RP> 9>71> i(Qq#<n{//3İ> rϫ؞&I;#D@0A m|_g"`M۞A A{'i@<^ـ}.@ض2D} 0 +B{e &f+.Ʃe&3my.gR홨De۲hc~1 }3P02BoϾ f$óaV`Y6Q?Bx !6|^ {jOyMnF|p^2^ÒP@gz6j!th,ggA@x8d F΁7|u!a$(5{Jx' E9$iΓg9aYr\Dy"yBqk#_`5-7s #GJsJk;, kء @|oZ{NKᄖ"s u+T-:Bd p0`(8z(vòh0 :WcHaLwJ{\ߵi kՠH >Drm TS e^.;&"7s/C3\^ [^{)̽\04X"s?W]A #=d`~4)V :`YYO"cZ<ǚ8[e})9EC1iRAg!Hgk-t55tc oF`- olM|) |bLAJ t)ڵxUjC5h,֗kذ<1.h3TR(O'zkR*"A( pb}KVAe!)sAp+ |,ƕSZP^Mx)ZLF5ho3 eJE@P4j!A9-h(|%DVfݞP^UxSfu7er/i~)@b.(=b偎2[5Hûe 2[9_`{;cC e/›zRFt^/ed{ !RF~w t)Lc<Q%H }pSnϿd="ŅWHwd/oWHh~S̈́A.Et6@P$:h>x R1(h_`Ymp@P$WNim }^g߮60^%zύrK ti@S`"  >Ԯz {Mik8(k8VI`&t>/:|MOA ^ &v%`W2rfBBérZo9;L`P i@t h[Ji)˩^x:=~߳0Ҏҥ>0픚 /}JPr vJI{;%c4 F|p;ڋSsugVN$?,%Hqf&`y2xta>r: #83!7!D{i WڑgbCis~ڧtHڙ!Zqar ml0|0˯&^L,mǖ-r,= dˏu0vrX쉒РCFN>dhp;%QеsN8vN>{?\}͊ er36!{E!_9I󛹗b.z/t/]wX'nt?ޱ>}0{nVL@T.N%̣o澞x3v4#C̽]6ɤ.BU/<2NE{ ~OO,{9ByvY›9v95Z x  X7<|hgx YDe?òݬ3U(̩7Jy+`~Sr˯+y6 !eAV@XPTVZ^UVNq,MxsX߻X7fB kCC~N/>X+N,"ޒP>N`|);s0v7 !D5C}ahaV@P,t4ب ( :-[J0&kك6B9b#[X !R, K7QF)!-6BX,babZ|,S +FB@kbUxsh4offVCa=h 69:, 4Xt`kv"l@|#d|)X}B`BPJN@MگRYm, @ |[i"@K>#V(G۩g.%LX5H ~oYb"eVAJ~tX 1YLo+aq"ef3+Z("]z2ʳoW /!e* -)#mVLگy RrLІecGuYV4!8, GA"vlڀ" Bxi! ϟ-P`+С*nj2: ->d9ڋ֕SB#Cx) 0Fmt\ρTj1BJJC5{ [RZ!h>XҕS ڨ^i-#WNu?a~y838+萴S :*S -SS :X.hG~~ нoA| ]%bs|=7'ZA նg?V[,GZ#% H ,Fhо=hwAxm,އx@n3a9b >Xmvvm5m0E6?àoO6F!n^Se~v :!Gu`zƶ=4zGh/D"BBf=Bx!, Go^-6%%` +?=NN}V>B{a>ș$lv7;sdΖuaXͧ^n&} G>a#ZxI7tK\?O["G' /Gx5`ãk<33u}cqh0/>EE|0#G>B{yW#/pp |VA`*/%h5{= gvy&] #߶C{R .6𒮎*ݿ I.tKRh=BmϓJbzd+L[W[1sǝC {v |pW>,}yܩȕA W'TqWPCx` {QSf gA@<]%!0YhC%5m ʛ]=G?a_A=y?: %o7GPc~OދU7a!TGQm(UӃY7 vOyP@\9C\ {72a&ɵzB̵Pe]mrqu8tKQ L6 oOhP靈#ׁf n erQ o;!Dr]x7$BqOZYqmG{7F̈́=wesJ"dNw- !=܆jD5Xy :\>XsR[e?sMaAULn[i=4,H`0ϰPygCCKj{,~'6fpS݌8r#h)P?rj[vX6)[L49V3B Ig~ :M,6+Ҵ"aŰ u+Ɨf|dBRU X!UZB)H˱ƈs ZX_Kx3BjG- Y}Ti6)V tVBP u͐Ղhj]3C>X]bXP> ›b3[1)dh(2BX1m3,ju,!m~D {uS>ؘ6L=+A lUxS4/4vf3a5HQb׻6݈NcG]AeZYZv|, :qxm&or[IENDB`assets/img/banner-white.png000064400000145413147600120010011712 0ustar00PNG  IHDRg1I pHYs  ~ IDATx p[/%ٲ-[NlIy $hK(%)YnlKJvgtJC.6@څhI?#dzH::H:y}?8,9Q2#%wi,ij-4RuYv:WÃF?> 4g,i`un'M eagжH,"rn(!~,^gl({H;oWD-ƑYF{`Gcl([|wi4n(}!!#=Sŏ!P=xJӝ%PUBǣ#p6`lc mY`i!!2h! j>-nN!P`>2EB76,$ @`x/]Y,B0rG~^cr!!2aCDt'i`䘨lu#oSiy@Y6-8Ȱ$ʈh ,3dd>2BbH hZ<xPϫ5R!"6л_Aw/j/j*)M;tj䟞;cS!}d4s"#?;z\"FC!f>2vղ"EcEb)vIߟgGV2f>gYe=Kb _H?dG!d>V74qH=}"_Ȗ2 y=ν,`m_& ۃFNm ʦ6-`]uP8|ñ>o`$l10 Q16J__N$2C ]V78  QA9*Jդ߃ً0cR|R#/)zs497lHem,6B2r٦HB JՔJ >6z2T @*##CP>PCN%2K^2#8a]7feCoBBZ2>>1(!`>Z pVW]F_\.H2qVeo\4]0C0}YیE7{hzڈT7㿑߾'QIdp1 ۃ0hTM ha^PC$~x? .t$C1hM YBŇhHOgjiuMя(wc+5SC[ Qn=po5G;C=<|.s IBB#%DсZ+!!ґMH!y=/\^#!0k<$D: p5fO74vE.J'y,1q@L"YB"`viUq'w%%*.r;3gRcHb>2yHtd(јoDC͙_P[#ʑt0D(,KCB#k$D$?dd. Mz' ,sBbw Q5V7UEmŐJ(,0[TOw/c QuӚ̘T kc$ mlf#!҇"Cj[ҀF$bQx`"ذLv'"ˬ QJ`*aDN4gPh Q,g(,((e xBx0cH(,wBY֐H+ ޡsB{HLC1T@1L, r.3-^.G^-ʔ dX.U/Öt-Y3E)EgbY>/,"{>2 !!*#} E ґ D&ރ"38!A<}@3+G"KlmE`[#+4yݴq6ЂH{Ovq߈n5 x%g<*DaXȊb+EBs/(sS&:RXu]Ds$vȊ cCM3|)|'ωPXf>2!!ߞ^ӣ۽EcTp`H3 #1@w#3$D9{==/qxO|4QqU-8KXA*C+WN+yPeEr!G&~l3 : FhGQH>pr =(پȌ 9{QUo`k~[g܄@?mCClɢzHҷD=$DK+CZckvlTMZXoM/\.t9*~풪?G/{U G}S_7HnC'=sE }dY,z5bOO`%DP|$, jMMG6;;p̳g'& ttKS0]N.vO'y{'GFoU{PCd@/wX eL֎d`'P{64ӿ^a=;駇So9IqdN5\d>E=^ A_0ġ5M-k{fqqH( ] ѹp/ QjN?Pt|Qv8Ex`"D* f#+tkt>Cbٗ6rT_ctѣ'=J7cѾ6^IADa@ߦGCƈbctV7+/+4$DzᩐA6)#b .cـTfC)BqvI),.uld59^Hu/bBo^iII5{S'D/G1t|t Ml ("l(ω X`D,G`X%D%, @D}d^7=|f{ AH8EotSH4 Ul P.Ll(E¢D'#1 Ȇ.1KM4-7fɬ Kd; uP}d7TcPH\Xķ棰̨cRl+3oBml1DBaNV#C0d_ɆRD3_ Cg>2BbKG9!c0Zg>2CK6oO+" ` \HE6f>2 BbHTK=?#C0dwFȆ OJ/,JFؚ:)E9G4e>-- !!ʤ69,G` E)Egb5 \HU%e`_#{wi mGv! Z>%dl(p]["ht&Df2DC`O#[4VLmlՍ!{=W}d,)pv̤P "R`H.~``0pD p:II_As]Ս\MM^{%^@0˃}F5 Y7ӣdȬ 9W Eؚ2SU4mt ݷʲ?rqʠ˹R=:|!krzeଚ Hߚ #1@!˨r\ÁGOwvΙ;GGTͦ ZD Y 5Mr+u/l Kߚs"։F(,;`%UU/衃/Xrb,ݷ*y)Dy@!˚wҭ{~;Is'D3_G;?O5w(Bw`e˗#2rYS-6 b_ !Inug+'G㽴d-Wpu$Fb}bC@X[e0$DO Y- Fóc:#X|(>xMY-r4uB詓T65:Gٽ1JDsfZ{5`J XXȼn  QD^+kY' ]|Se& s4ɭgb5/,2}bHz4L 'O3w.5#mB*7$De>2Cv/HDU-Nп^ 4{t&ˤ(QM U:Vw c[{t>r9%n{,˿S>]1v#S6}zUȰLCH &}dVǡaφFcZڮӴu_7ZGkٟ+fs u[htg49!k.l0JT_s0Ă*9yIJ5t G pHC6#3}0t/5Z5.*- '@z%l՛jg:^1Z,]4XBts+M%՝tKxqttܢ?JtF  ЄϲmGpGd2##"s}F U,j*Dҟ^F_2Wz算iݼt"/C O[ae;hWkXa>2sW E#y*d<(U٣vtb" `P?mnýzݹ.G8^hk)kSW'&_tf$SqCNvE83/EGOӸ?hhc ʊ'DX"UGf`h'o6^wy=k\~Rc*:U ìz_=1*[_#q:gk Vy#3zI2CM=DwB0doKG> ٰ26_Aqlȴ^=n'[ Qc?;3YBz6[ˀ ~u*k3&Gou(Z}q3ۋ-M0ޑ6 ٟ2+;w٭̾й [hiͩ!Ȍ̻=eEYgPMb~-z+.9>[)C=Y7S!~Qv^w理F/89=n tZ͎{yz{">loRt,ݻxsq)rg>Geb_:sj0Į<(C2[C??ʫӭ-n$ӧ v|"0d0$˞3/_7]S*;ϰ?ȖYL֊t,H2oÉ,RM`A!{{$qwb []og<⫽:rETHGBBtC;[vI)Y\d9._c"?}i}S4oerH1يMRl.{8ݹD!CyԼIN> t~NkCxrñ,:D{Mg3OdCwf$)ƈFcTd#)M5mYL"-^.LXZ??ƺn`_[K-**3fP]F|Fj~ΦYL'1?z "[ZavVw ˿+ɄWܽ=y3;Qgη z%7cqh=T5Y&"!+#HGLj<̺L[ GOHwLyf*\!!5P]F\|5dd\G) $=/#XvvE%2ywhla Ƥ]f#CŐB[LY']yXvP(Ψ6 ɿPM&u IW4K}{).|0/W)y#R d˶}d2|!L:-)=8e#&ٶ 9ieb@2;SUt]3{BWLe{]*~nAC2xB(y2ӁalG`HNB~6oIP|W-5t=wH!pXѐAmgw<0ĵֱ(sķ)&wQ1ZLҳO[)gl5ETLlZx^݋,1oSW$-׿]^lFk}fK!FIS̆ >2CY@B/!!zAOSg IDATgD/v#C0\>K~zC:kyD0Q_bF$J/ yR]Re9|d:b\.4ݕP.KM<0ڲGUP(X/Ukl["x`4CʃxxN:|xA]郹ClL*d`BczFt~5=0_4rWvMJ:@/&ِòrH_7foY^G`(Ɏ.kQCqb V>۾, KRU6_cX& G96ul!W)VZo@&uZzNSZ1RE`G'*ޚ EjF; &N !ms*Do (B.iF 袟K}: pbPzVikL-@|P{?Pۙ6ɭpcק_ m!E?buT"çF:+pt(O`mz:}L{[ Ag\VA2 t 5M=H>&k?ꃪ&O2PxJ黫؟:Z9W<<˅fTv q,xB00NܔInYq5@n"D*$P#Q{я`\Hd'>G!*uO,32 UFǔ$? ͯ4RڻNNjހrTnZ޻VcT[CcXO¤KI=4:,]u `:1L2$DyG@P- V̠q90`H?%3~hp}v] 3HntJoS!+{`>3^ua~ۺRGIr4Jm Z tq?#G&i0TUS,Z)q#Dl5~Ui{WYzi>.3D[n qmg$Rkxc,޵‹]]&E'K#raR!Wښɖy(&>2SE,BBG&f`EQK o֦%}BMGIvͯUfv.`q3T.}kGf w& ?LaL dP F1z])CF@$(LJ1;$3QM)/Y)z0!`tހr؂:Nl}x^s`#;$D,zYMd U&~1=wH,Ā86P|f>&I޻ͤ-{nn>z3rPEs}o=h^'AL, џݱ>}dD01YzVM/3u/M4E;bHVY]C~zHXmgʽ~{.c]Y)i寄[oDXڅ0u舽z@hM/3oNNs}dklGfVf/u/UJ/A-ΉG 7"~ Y}sк&.R ZZrOr[3WVְ'F5gO5tǭeP3&xcf!V^C; R+G8oZmP&^F/LI*l61'@y0u_M@eӔM7)V[1ze]S[nzi5PEP>ȶ3sIva}8.x|H>2ճzEl7|Ws|!VBt(,̘ A-2w0tu31_<'WSReH?!mِ׫eiGƱG)|E{XWkyYKErk>@Enh 쉷{=+g՝Y=t놘6-@Y:COѿ|kOkuYyH裾Z2yo߇<ݿ:t+Gr?Eyv{{.xQuot#KTM$|da=|ci{q Q^~Gz~nG܅NZhvǮQ2/줆{ϦC<}>gJ{Vk+d*.3JY?]{]0։ek>I,F{YRO Ō v66c۞^z>&@Y:cC'e7Ͷ|_x=*Pn2~bؔҞ-}][K4 ,n(̪Gs|}89B!\u0L^­Bb6pY/En[% *Ā!tv<H= +f?/kfwmzWkYO͊_כoādL̺0ƱVj Q=GB$Yz(E׉_ootUΪ؋3؋dSoKB]L>y&F2)hUN4,qeL A1hRA'#Pc"uzs޻ˬ04@$YE<0r$*'i`hz|CIwL^(q5_Ƞä2Wm*`@<'|P鞽6ɺwBOuS'PFU;ؓ Vy4rRx|zZ+ͮQQ¿zM#Dv ^F߽ǡ8!6>|DʞDDMs!Dg^g4>ӅF(:] giRTp\ {t-YbReegCJ,}d2 hC|_@?\S!.稺6cSfe=K QL!jk~ Q2!2vÇ zcD$Mjrbnt[ (nԍ9KfY[ٶJAB-)B0`b 4˿v̆F4K s&R^)eCbh YpH>25 `5((tK9dcqx/JrDP(hgT{]F e'Dv& }djFU*O L I=Ȇ M+q4VwwJ *#SdRFq1*`}Ar?稺~$N'67TPMi;{Gh(2V` 3ZCU8XX^CGXCJL_Q/ b>zڬrL] ddv0J֐@JCչ%E0JݗJܛ*2_͞D"t#OrqKHWVfWGBmwPOٷYI5jJlEC{ !J>2: lGL<vd훛h+t'7ZGFݚ)Q$X2Hީhv>cKQ.dnze *r(ȦMWQ 4MF(0(=uVbX`<Ҵ@ UmBFq}dw-O-4~T1qՉЖ Mwhaz",fxr6 ٠x.PҜ web&MbtdS!-l2h'DTG u:C0,AM#ҕt_\0$@[,#E BaE}YrDc#>76AX=">eKZ?]%b;RRR+dj kNq譳+KLTQA2ԟ-Fa*> ¿8BjajHÖz+iDj*M.F~s2y%Z2>U؅8J&K/Nz/kٕljɝ>vq IR-7-aw`p⮛=l2 %w}kOye`өWk$#gM$}Qv]t_i An"!d{/1C)qL6,eMg*5U{=(**!!K/ȗw&> blZEJ0$>BxK?-~V_   MģKC\/j6Of\6$Y $yrR!X=c3{^g7ΦZvyߡXq,+x ?NXr d /NCb9Cy̅I1,0?sg$ng''>KC#1V#Zz@#,SJ?Ģ?o vI';('givG>Lz <bO?MN%rMJ~Sf,knv >S>lvR1Ě)[c϶zFqB @uL&oYo@R+I3xpEK|ԹirDY7Q#|ҪJ+_TʬI/eZ@|]  =eCH K0ټ!@Y AQI2񲜿b/ůdB]F\MX&Hx_䇟t'"tB&fJqL\/43`*#qÉXL_#̩O`!q xRG3XL@vzV8yQhY/C,|ɉW?*‹޲$2!qw ؾ}ɇ,2S{  !>L1ĉGM\2C|xVE|~l#u[7qK-])m`SSܹsU~oJ((*B!AA}D>]yl H4Da^%/s#`(/_B}-|BO71HENܤvx.-iL{*])3ޤ*ƢtEHF9SsLԅhv`¿3V0Ӹr^?=MXwY Kslm)GK$&Wд*mcچP8MjR8HTY|$\}dJ"wC1R!n(LFI PWBG{שsO,]4| [gSD3\/N(OLHI䳧T՛LtMI3PqzjΘd;Y,eg_j I%.7 #t&O7TPPDKq3AB NBY&r>P{\7= fJvV^⧔1GUN1ф8%' 51Z>8q';ǿ4afSobX^tl3)me aǒ&OϢfz]4W̊u"H= `}d@0GV=B\e֢!.=e!+]*1:.;_^53fFP ztK &9ZN{hL͞Ğ;a^c@ΪI\?]B IDATϬd8_?Գ2BT@/f Hѷv |#2>L hWwAnVP{IMww=;]éL%3)鉕,I*^jWװW)IkFbʝB P4LC}YdC?QH, }diD.TqȔfȬ?jfO F'FH@k8)[^;qBRNvm'zQ6\K8P-'Qh%ȫ*eِ#@ q,ol9 э/A3DV`BI ē4iBEuzpGBj N,%8{ FY$r:k8\~vR+g'WHdr~3&,TeWS~ٙ{P.d &ҧHF BbȆ/k5 3XJb7I>k "@Y>JV-QӶ64 Ѣ+fEipk^<ʪ}d5vk  nr\56u-*giV6RG;QXT6zMH o$)3+]SF2ECDN:wbiU*.Twi8a*]JG~tRj$>+u> l.>HM6gN44xAF0. } 'DV!zG ,xIG~Am9SjvIi2ARӾ6]zUݔz9)nHؾrnnbWL ^X?%z(>:^#/!NFOiX FdxH.qɆFTo;ƳX z z US!Ɩ@}}Vbe77%2L []H2'6y~a b1MtWPy{Ť4K?'KfCBt~wiP'Y8BY {#FZdg#ԩNFm+3)vJ5AզdClG 7ifބک`Hc%?d]=vggWpJ0tK(T1pL PYR!^_oAѐ>LӶ8AY @.vuugOA# D/N8W)MD047'DG[;AZ`Pf ۦ,v*CY$~]4(2qBt2U|T?#=!NNA)}iCf!)hfQ1~A,ƢQ*Olw(hG_%KOxX"0T$҆qM'ˆnOBYPS#[>2e46Kns]=H -dC)Rlԝ,)rZ!A$t!Z Uq=Hw "2RhO/c >ų+]e4* R~zh ZRgbI{iV(!GiNuCA}ͮj#+NB)z"!iƾ0 ӭa@OcgCbnkܝT>Q妦4CÕ6" \ӳbr eWH8m]TՓu,f` ]5Ǒ=6DY9O/KebNAgã8]Kj"c td|~_()r&zӐw h(3 !!ZHkٟѡ>V^M ȴb`hZYPxO0]RNB*dUJn?BUץe0kl(3==_Mլsq=yp l,&}dW0vĚ[9z$6G㻰*XM`&mS!Uީ $J`vW-v?4n? Q}d]+J M<J7Km7HTU8F]4y:*zIn%-;qL ,鎦×^(C LC U\x6te02˧?MҨ%?RBO?ˑtTCH: 񞲊AF&BROoOCQ::Lr;AtPJKt]A4V>2mqmSN>~pإO]ea/̱]Me:?]@'֊˔ !ץRk*l bcXF%_ &~3o L[֯--K f܎؝S5 >e ѳG x0*mlf VQMNxtìq,EX !#.cӞ!8=JgC,*ᴁ gCц1MtWXu8/Sȹ£4tOM2rWHRPfP78 _L}|"DzaU%Ko!ً2 }d9HS]*>{3UTLlVyE5SPPB:=T.Me54t 2 :&QXq&Zxa[C4q}䱣Qk@Y!$:xLѐT8~ȕ[[W?z.OM}TՋ^5kf2(T>^+PNm{[墏 D&yƣJAaL/}اy!1 .h=D{5n$O;9BBCYA!\)RcM/^_>Bi ["Бb|6FD"(>>WxŚ|b9| 68$DP}d;?C?l7)$DPP!0(|5  ȊK?K8EBQN*K~UMeUx c ᳡|n,9ܠ8 A "# ?;(*C ;6즽wPK Nelí-SX}*ES674 !3ydǻy MQ# Ѷ |؈hX{.Ec#N?W׬]P W4 2mg&ݚt\YItG"98wʅ yp @p]ínQ!!*p@{@n}ie|`J~DF7]RS- l=8xY(in"j; "TH~m'kY#iA7m;1D:.q389B!PP.4(*s놿aOc>Ƣ=G ѓDYbrU*۝k_]=8 xavi%, ~!?hD hzhB$=mx%tQȓn[ό55D==cMkL mhNtb*hť->~o;{$ҷ'#[#!GN]RDV$ .` <;OqaQ @+íښ8yOu&jRų+n X51GP&4F3qP:$&4 Db4 }k>$*|!!zc䓳/r$jR!Zj~4qPd|Pbp`a[O/]k= |rI6æM\M*?"suI St%y9=9K™Q0LX@&xpE"I -`هT_Is3{ĺfC'n2*wЬr{4nSfQ̭KYHD[Gi<Z҂Fbn% ́$*/Rե7&R y+Ce+ !zp+8z-у63<m=8 mh>2_I\TWJm~dC`VxHy Qt l(Tg!QɖcwqlT]xR v 'GާG?36:_gָ=(kEtg*MM=Nz553a95?gl=~FjgW:(^s슗?ӦudEe~Rv#$) ^-oQ\ʠieIP$ M/q~{ #yLBB(kofQ 22oFh hRmb,R!4 %ق2ނ+eֈ7dmXGOX_9o K %~[>M~8IV('QnHt}sUDbE(}8}9+*t=TonM֭#Er:! $&>%RuS ZZhnӟSrheDȪ U+4ޟzzȺ%Df"?d]tV|K3~yaqYEtȁȁp)s~]ӯۊcPcA m1qsv9!U۩jȅ9<]kQh8}Ta{=l==_&S/B$8XH$؋a5)+xYeAF:,;wZ$VC1;H_~Odl(ϞcFϧgah=@coo o,]x^eٷ~Mj^aMB:Gܼ%|>B"rօXR &NKfLlT aKr5G2 IDAT}}ww~}Z:CB` 6MY!{h3uN @Z2zԍE0Tqq84afT%Cfm7{]_MC!\h;,Sq")FPAA mJlr}x`L-i<ڕ2?~0 @hguM@*#^0$V]X`D,0r8_3 AA m_r->w2;GaY;EQ_AXJV\h4 xb %-0ruد*1-І1 V%mbv֋(pbD6+t=4"FT`¢*}ZhCC{e1s[ۨTF+UTUY6 BM= &!L͞ .W?E BBWc`{i+FB0P*ІZ {9{F*k6: _goJ˅ L C\I5a_z z][hZhCUO^^̺j4H1 I;:Wh8\:-ŅdvYڙ(,(CØB[ϏBCDV狴ˍ.PEDQ;W3NK+Af˱F 5+z-N$6\S1d͵z~ V ЅI)ШB#8 `uu?O]\f.O\%QP%*BQC:ta|VEW{ Pq r[OP=BmR{1P4[h>ES'*h]jP@50L[{vK5sP 56NoՃ@BdC]i٧h,JE?nA.) 4aU<\#9:WC_ -kT5ҡ 5TѽOkْ4DajT8kQ7BS[#sqv9&5n 7;*R-\ݸP XCvA&Z vdCC jSs Ѕ6u !Xش{) &P]Jp/,ʩ-ҧ;¨.XU-H/)(ʵ`ZOkQ$Eg'B{TYdE9>.n:vki0Cj,&Ahز}5x/j5kF:~085>[#sq;]#PQbSQbsYnЇ6ZhQE bZsf.z{3 M紛=;ɂ"J.L`z^&hA^)8H7 6[sWvZ @)45_ jsj>N-%mwްB;4:v;M|q0=4@RE=GOez_r!+W^M.L& SnKd6{[ۺ-VB u*R;0tI9}^x?^oM`<bs*/,B0+8a|KԚFkCz\4Nm[Vf%fTcai/F>{\%lPZ::;Pزwˎ^vcUk|gCQuY TZE!oJ+Ng|`D'Ҿ`k `CldBJ-,evCZ <,, ҥVQ$AӍa%oIVȟP[ſ>#l_֧<]`h2ܸHU78Lr?y+m0*Vl;c?ӿTlNW"hYYoP)M噇o*d\Dggˑ.CAjDҦy@ ՘6 ڨx6)rVh}EXHBdu%SCOw9_MRkg8(_J߹BL!шOM<3Kb'!JXu!"bπfV[zw;f* w[8ߕ>lCDvz\{YaV.Zلk,"^=_C $l\ƢBLj2cDy5?AHP %@<wy4 kaMǔg󑩐I862tA[择;\ 2.gn-bdW@V`Ȉe7EO^bv 5΁6/I=A_屰/{"I?;oh1?y;:b7 X'^B;d%",A"ze'>#l!.p]n&ɓ]5^V+K˓ɝvS!e15Q~̗ IDXDn޺] ʴU{_~e߽lI r`8?=)W@[u!^Oc❆dGzm+w&:3ݲ,Pr.myײ5I_99`;A9S~s;!e^+O8"2ՕwhWG&KbR3fi %-҃XysMwl^MLԪ?}>g\lI#N ˭lgζO w`<BoJj$I-آ}ҩID??L?6Py -ҎkdݧW(VCJ:J,!;pg|܀7(+`*WȏRԟJ=Vj n>,ʉfcVJ]D7^2ah=dvr;+I^˯[y04Qw9~7gg.k ]!xr.!iESaKq|r@䱲+Ϙv^cg浅c+>8^p]x}So;7M/zC۶?GYLD Tq8x5>~/;כ}IהzOi,7P+6*DvnmSjEOC, IOg?vCyLgf 95AN4_G<b=2˅j@%;}z̶݅?:H'Gekq]duh4L?E#Xj&éLL  CUd.Nݎ<5\ 1Ȟ[+-˩V^GGj B?? vn^O槿7~0r ?N 9-OϜ_wl72b=?z,&~1Rn{bWA[m6LTtP,񱗲"!O5b,<}oܻ` l Mjfʂ<mxYdzφ& t|j;-1 `9CU$v[D%){b,b2<v-+وU׵;\RCh:m3+uYz~-i!& n5nJ8E}nAЊ.|%^>l1~mX uu!};>|z. k2ZVi 6>Pwx<44v9u8kWWx{KzK.gB<?Uۯ `:WHR=5'Wǔ |qH&h 7|E+HZx04eP1Zx sƚT),;Cj*s l*~$v{zMV 뿌YO+c" 6>p?Sm>۞ן8[VO'Gt$xIum1==ߏz"@ѕǫ4CUd.Ζtݞ]cKU/Gy ϕ+e~1:T &- *GXVxGtټ bt9JB"m^|!h)ǹENޗ*h6fP:{x']14_|бg}<b?9u=;FJ(ȅ`dqvY.ls I2}k$|nv> *&'~NCᄲkw*р}Ri1m&ì]<8kgܢLi }t] 2)[#4tơV Qzѡ.ǖ5lIH{*eUՌ` *2KZM n&مpB9u5Wm~k" ZJβ`i2\W*#w^N4 ӆVV7yZRLSڝ$2v1n( $Y`: ɴšC{_S&|'zٗn[lJVg= 3ب`dKcJ"f, gh*ܗySo؎ ")A> y`4V8iS{&LM%RLo_k $- 4+-鬇O+{Wݏ?U՜7"mfUeM#:]~}s6!%x$lXHROf̿Y3W_{A ^";OŠC)CB x%zRYB;i` * \ *qhZSAl%@xTa+'6""Z Qmdb7(LOSnLIUG=<Bʝf&E՞&~1uw+{,]N-$aC&MGX݋T2~S{_![7t]p} B2>83)?;=S٨,Rw(OC8}gԥ;s⡃[7$B!Q IDATti OO= hLP7RYY, ږN0O?Q! Fwd{d_WXp/S$[EJad-Z-ފ/OA"鑴K|lvZyg b11PuTрaG}[ͽaoHޛ!J, Xn̦ڥksI>.m('Wτb]$υ燮"ID&#&"cOjԵZſ|SG-Dɜ W &(ICO^ _nM=D4w߼$$Bsd n؂sEv=bA,kAVC۵< d- Z%]z$V m0  L汘|1L޳6a&~b\OFrR&Y4s&Ǖ}>'&~=!_9DUO_ID>lbBLuI=LV/d*H&1bH&J&22 E$ՄI42ʒS3׫}KK}zC"4?wzJ OO=s!kn`}?kc{}u OO+gNb߿KnV8?s!jGn݂^=]7lu};>{{/:h' jeu*2FRE`GZ]F04t`T0h.ptMЫWOH&z#\DP~}Ax8ICaDYYLHbImWH}n&,F?}%@/_L4g]Ƃ6O")24H2C =ܲb3ă! &(YC3ސ ̑/z.,>zhyvݽ37ݽu߼ }ވhg[޹/G;]?=w[6FGz4_3ӰgF΅yJ̏Vmd%l9B0tg,hAs Ɛ G& bh=rxQ:q|g`LSr`KTH+0N )MbrK{[{zzW@B?}=OɖUƂ~q &(CK4>]Dh0Tgzw<3F<9x ܰvl~ƶf,6o{Zꨒi#Ay&x*{'_}헷Iܸ !:l05s Lv)qv~x9q!U3EcR3mff[3?[ͣ>zS3n^=SsN[=P޻=P+~՚0PJ)ÛݞM`j=өPNuƅ'ohe>2^~BȀ.c0gڱ/yă'5_էvl`=z *o!:]?Pmb_xm"o4@/o!h;J:2EguW؅+vUy+L=8ˢ od*dXIEB9̥!|flV3G 1@c޵%`|0E0M_o}6mb>='햨BQwB۝B-'g0YOUĻ72I0bf7dX9[ioPO2~_T/}ϫ-F .mK˽C0h]U,gul/9E7mfVd,$Ĉv,Wwf#o* 4thF?uHp;q!*XES[v$Ͳ.&|2k_fNHΚSa_R!72 'UQW((Ŋ 8i}n^CJm'g>k `w 쵉W,+:|Q+gWv%Wt.ky*_}~gZc:2-X-욍$0(oq MvHc^Zf<{a6@ ëj`p,Fg0ĮKRsWΝDfLj*sJ.Nf—vw/jj/Obb*NLz+J ?}cb8*7yGUؔ8b ^Cߢ߹C(7$3tb~w!4K/~igCtkW¼k7Ћ/Rn m=?B m]R˛ԀK2i{{'ohݙ4o0^5qG_c-'ƿ|OϜC׮yؔ3H MϏ^IkUh49 tIT8( :9Fr.iШsz:6-C9vc=7WMAf6|i-{]`G>Z;vݩ@goxcSzѿGDtГIpf7ylol}0wr>奇b-Ƿz)/R4)NZ鬻z#ECw>CKI9e ÿ\^Z(FjƷb=2MȆDm|SNjaPIAg(fb*MFth] )YcntI&㍗d:бӽU!ݼEets ɺ ZY6fB!5~qe6LV٬#9?8 B,oEo[4̄٥r[XK^` Ta;m-RTMۘ`H/j5wM3.dvh,MZ!F^9W4Uϼt Q΍=6b UtKenn*摙wJ:Vs F. `R iu5f1*Cp4 'UvTh`1?0MNIu>z ]MgRO]2mZ+CPXHb nkO/1[uU^I 0hMAyYơ'_`C*LBs 3ᬝsRaMd27N"[HdB^Z7J1be{Ͻ-,}tMQ"s|奅d+IL!AI&y&Tӫ w]<{륔Cy@5D9E@8yviO].`HqNO"cH)ҕG!X=g'&6Ir`-lB}XýWJPۜg9Vl&1.FYe~Y뼔 $bVby'm:&j䭆3H#&QK, &$1w}I/;bXɦZk<6ɰlr x9ivqߧ}<2]ʹCcayDOǐPo*FaP=@!h܋ P9v`h2>.kEC}wQr--E:1_qv "cXfF0PQ+v,lt43(OR7os]i]eCIE}}!yG:s_dմk 4򬓈XXU(Y :9u@}nZJdVѽYY:Qgy[H23I݆` V T] ^{rL -d,ujQVkhRvX)MA2(UWo,7u\:X".׆Fx0dũIhxT0IۛfM/6o5׷Y^6Ϸ:ESMd̆2SSpvR|5=W) rcc`PF7˹t45x۶ӳQs;Aƶh0PHc.X@Ie]Nfg YT8kC,W7 f  ~0 U8XD'BʪOki0T D=dYEbD2$o!vR],Ͳ ./e>e{RL*cAӜQt[糮_~mwma㤳 &ҺvZ5_LoLَ/ƺ>n_9r۩Y6gRahXg]˃cC'*׋ڤC\+Q R|0YC &sv{RS 3Q2157+G z8ǻɞ K$UɤJN΂ay!xDOmX y7+ģ(=u vf<4Z'ݭNCu˹ڳ1b,ٖl+[AtA;99n˚<:vkUvxC7k@C0T`2Dz h`ҩ |/R"~dd;ʺ\^3-/h4y fқxeru^э@aiι:UBFy =ZVT}β5}*Ӭu,BҿBcu"RյPa"Z0t>o-{;WOۭݦA:)baPw ~''2AGk $cޓ^ɼP^8lTXLbbUNJ疲>0S4SIS$jO1-ЇF7XSnY_Lsr]׶h}-}26M+&*$ ̈́TwصYƜudh0)i} ן.1@卆TiguzzNfV]b1P Ans Lx裃R8-;ѩB#Tq`k) @\z3HwtJ?M.D١C2,BSh \n M/%r[Ϲ8ˆnXC6HMčuI!u+ H?>>7GNZ*zrr"o>(2t m&-;~*6(˭.E)ްP77,::–n񺡼">s ϗ wrh[e~{UW:U4'cc#k`V4,)P:6? f9%bqEU,fmʅL3rR!nِJAa}_PM>T /dudeC Q!e=D}9f-1g3a-4Frm;MGX[*. ֑њFÙpzy>~/^tzV,q;+*^d+Ȟ(0۾8~pzs9Rr tFHl*@@0T~ 6"}xF~jZM -/9=K*I}[uR8{J $Y$t>ȊO8Y]ˎr=?Z6`ڍh̽V*#)~0FKrq^|y1:x'2-%q0Bұh,T/8 Cn =7h2QYEH{Rʘ34\~; Ԩ6zΤa聈29Ί;׭8K%ͪIPr%b4[Mc p=/;B~k`6^7 US@kJWʅ' 44H˥Ydb @y]<}lYv^S3tj,p|h%C!} 6-Yx1)!H`++6;+xM_qvh[⠑xg%e@B m( ^jƸlU>k\HSXtC1*lH% R!UsљEJ(7gu Cƚ}:w{XGB9`ܲ}gt_[,"hU 6>PktzNql[jS|b=d4Z,*8h4~  Zh꘾:ֆi^ f[\̜1^1ammt~ 6M[x4IRM:N_.6W)!Ѫ+t$}g'NpKo/޿ K6|'Fit9՝neWY]C en_Ҿa73C+M?ZG,+83XU 1?B mz"9LMFЩDhοdLޑKtC$I Eٷ9M8 ۝CoY~/Ϛ6HCզ;w.MfElO&5flXcP}sWx>G߸7ݕ2~g1%9(҈A"-C5)d/o@>'I(E2'Sdz=TRy5ټ&VԺ7vP;ꠛ~=ke+]:4*v IDATԿCyS( Ά lAٱ[J8xf, Š6@@0TYP"̇'_Jxj^ j-zYM-[s-QDNz٤ͭ;JҡԹ֭6njވ{%v{D$ TKC+, wfH8Bۘ6U6 7(uBYK'IeR^`I3"y_^pD"O^:ͦUVi]F4(+Q6_hcBHͱ ;hKDM,':;ǒH}osVrVR_D ѡTf^q$| kyPvԳX1hk`tr~cr~L$Rٱ_2Jb K,+"H$DU6;]BD377$Z언h0P%Ivq ۠` }XMϘVb~@0Tb [SS/K.^9m4&d_') 1=^L] U,XPATN3mzHH?ݷ=*48Ɍ]*HnLCcQ1ϋFB4gPQh P C5/%]% $9*l2qVUJyՋ`EU,Fh0Pq"!X-:jy 5^c`ds`s648C5O72V!2 +G%&'T)S͋9A5macȎrzD*dԮl^7}Z,0Ij J`-.#bEG*WJHze-q} !BxEEƙٲgW? P EJS2mQy[hZh CC *UqQR CȨFȬoZ~u,&~$Y:)RvdT- @ Jv@pimk6!0@6TF0Pd5d,;Ro`-o`(b.ؿq U:mi߸Pmf"4|(E^=-xRPRpY\Z6!h.ch43Qz~>o􊇺WS?|XK!N<52@_M? `Eohԙ=?w롛[`Կ7tfJ?PANzlw14ǫ4@ZԉFFllTf ׅ3u+\t{;V[WQ%P7 Ժ~ VI(d&7갡^g'!qBm158(0z/x(E\i#P`;s;Dl40(:7>,t):n:4r53"A.&XYxix>lqzr u"&؂sxxMo_- M(-J埾 mcdCjnb$CjB6Y.&i1N!R ::Ȇ6*lsӡ9<5@s]l`Q4T͐ m<4W~e5@yB u~*l9r{`<1dCd PC6PA(~ʓ7JdC!r@6P)r{:`<"z@lR!(OCC6Pq C5@E4BZ`A6 )r2^ P  @B6vJ!X!hXȆ!( !hXȆ!R!lꕄgJdzȂTbr>/̲]%`J] ћ ڴr"ggE6FГ3_)XyvzyBU9NٸX| @}<V^#ݙ;8^OtWt{{>@7d39 £ߤmo*?Ⱦ둁ڰt%ZW<1T Vd~ն%y޽ dN\&~A6WשN{U9o̺!<l:(wٶfnX=)r x/}}$؍'# c'T֣nhsz/'&QPfp 9<ԛogO<P16}-h6ZC4t9Un;W~ܳkt_'{zmf55UuCUHh䪥PlopkOm md8E7>I /v漣qGV{xwT˗۱?mfTYAπeCQ nnXC6T޽ѱ5, 9Vd7[bya)*;dl5[X}@aMûNZ;7;fvM ިhM<fDz_SGH_- +课_kվXSW7[X8/Ugmû2auIu)|*C5}~8nxp>g7s#7ئ4#ћ`ʛq|=av=7*uCUb8bNe^lCp`N'g2w_i}+fAк9_}|\댘6mʉl/mg'K,ao;l^jx?˦ k&#̛zمezr?q-7R$s }2Lf']wЏ(QK ̌U%ƪc,<ZujjpP,eLpӔ:[SxLBʡnz^_Gv_gW-ϱJ|f $GF~82?BKJ~])/F9[x2;œ @bNݷlѪS fn}0xӪ72/$6V{#ڽ٦; m<G/J?Ps 7ydc2g}Y{5d-8Cd_3-( qӵz$oЁfzTِ۬nʒu2[ZFl_Jyxw>G ujVA8q9S8p_'&ԒesȆǩ_E=XZk[>Epb|q` _rt; S;:H+q ݸ LG*!KG6uw.M,/u_g%[~SV?.A(w#VA|lѮ_1F+H ?,%[/J8>"\R$2I'Q9R#@TX.t΍ʸJ]װIi,HNmL0Kyg g}?`!-77o~Zz1u5UWR./}ܿ|wZEq2}[>z;[ ,Ƒ괼QC,^"MX67 [FsSez 'ܨGԂMFU/`(Ym[>YCUN6_6/U Y>jh@,bql("rZʂLiPُI2}5wΪ3@^T7urlR3w6–?x.zΡ:K#wjz@nь< 47u\'*GH;jk<8f Wy}(Zz+:HC ],aRtHQI͋Qnce3բpfyer&%/bms.CNS=!7T3s39At(z=Ϫ&ݝsxY_еmqƞ_QƕQѣj],SMf r~+vtW,bql( Ě8ul,CowzKL=Αգ_x s'؝bFZW2cQ $c;RÅ|C™R؝QCSYYHU0̵UE`k[!%h9q?W7,%˼\x~]| gﴒ pD0zxNȝ凔j:m[gZwǶΈ~еka(ِT=PܲL9TխdM ?\zQ`E"3'93=)ZkOIJ|l)덩"P0>-[WUO>,QZXf1}ĐkPbz|uy!prenVO l`/-x6k!Xʱߒ}p)-Tq,~q4C&iUקb b]@!Zj$bc qPْh6.?ˀq5讅!Q߆~?kDbd+ںm*/2CQgKoCh+vL'6F%#栭ėmO.y)\$_4}pk݅%#KHyC0 ﭣDžQh}5=O!tS ٝGoWT!̴ 4ngĪf='ďkJlmyl`Q*Xw{;(L3cLAyt8SWbCj\m-9X`U?TŮ_;5^l`=,н 3&6.7͕7 P#r66|AX ;9OL*dk׮N8On /UGj;ۖU9[Ns+;IC pik}ȌbLOwնPͤ!a,]t[x#Mm& {ʕYo۞-aMKnQHrDWPh%w/40E0#OYCv ɿʿ;MgnǞ}~m5[/kmܶ}aHLVMmEw TpAJںkS@CU,pnl&e0e? nۖ5C-Ihw!=y(Ph~%m:07X}$g ;}\mwX-IzD9B>qnm,z ۀ>ܠA}Sm7Jd *޸RbqRXX͓@ۛ+=[qz17h7:QAoH 2Y̵(5@yܑ~[! Xg_dBfXolG\ mˡG9im=lĻBIrs\2E*Yk[VǮ#Yv>% yB?lh2S j <mhl7۸N G!߶M6n+Lv;d`PeŐ;3%1P$ߜ!&Z,9gKْV5{m5LӞuzԋ^X+^6(w2 uIDAT倩~ϙ_^yu03_C|sHerIZ?NAJD( 7pT '棱!'q ŜBiaH|5i."4LءQAB D* 4 :hh nC M 0O%~H ֶBj!ޯ>=R!" F@PB D*f@HT$-HTB D* A{R!" @ReN!#z8#` RN7X yǁ upQ $}Qb;R!"꼙ӎ0B>'ĸ >ePXR!.3>Hbf/swiV SMf*4@!`1uH| ZˣB]0/O;p ٦K@a3bh?c{H5qRY5J1ĎSɸED(\`a3n8}ƹ<\$6/;&vqz_'Nn}QzS$D<0i&C ZFpW9V ȆW9|- i$AS<[ DPXM|`(!n[}!J@^bB{?;|4g_z2CGYi۟)f+@{۳Vߥ SW9Idb@`6CiTiqu!׵fC[['Jĩ@ ])&Y582ƛ DxO/[}^D,Rx^zɺ:̧tĭ״7K8|6@4--_uKSG8財S ׶6b ~tdǻ*.>^Whh|xl/mOv (J#!ibnw>Ӄ!˲Fw^)O4&NM8/*Mq__hTz h7iTqؘ|eT 6lƮ̳9|M_[f;H&_Y2,RAfo5:;$2 F,F&gY](aFfGgN̺@(/xGtB0TAF&g-sg򕥑I^W5ߧj!UpTMZ"k 3ƺB@L ]vs*+KL1AR!t%-Q>)sn#[dx,_C'绹g2 osne@X|*ͦ@OJG rnKGFfF`Gtr|xrDTam89>}>#=4@ Z!0@ @0@K  C`& /! -7tz,1`#jF0Q3 "`hVD{^P#a  i$5DHj0@ $+& !!(Dt$50 rHj #`b앪`Z#9=qO\Ch"oC:"`0I `@ >HjIE0!%$5P2_CBR`.BI @'yC$5 v/i,ڣ;IIENDB`assets/img/recaptcha-placeholder.png000064400000032271147600120010013536 0ustar00PNG  IHDR\17;bKGD pHYs%%IR$tIME  O IDATx{|H#ɒ#EĎ!$\tP{mmwض@Jh& fǎ_KufXeN8aF3WV(V8&H`YB!bEnvV{{{qi)!BY:eeeKZmt:)..v(B! XE8f``h4Joo1@Q588dѢEB!f!x8qh4JQQj8X–B!,Pb0j"vK!B̒LJ$%B1{2ʲ,Ti!BKB!.!B \B!BB!.!B \B!BB!.!B \B!BB!.!B!K!BB!.!B!K!BB!ĥ&M B\"q>JPQ07>',CeBmt4D%BeᴙixJ,dMVe*K%i@4%>2HT/vvnpǍK|ǁnE' \B!EΡ۩,pA,sO^, Q映6uT, Ӳ,Lb1eP4&i9ɲ:7.aBv.5B!.^i.9@Wa(RX90W X$RYXe)'aρ,j =ˋX^祮ƃntc.!b.ݎfiM'`& KI* ,2KQoX&]QOv}7YmON=+49rp9GTmB!< ]6 "17-KPWt4c(Xݽ1yEp8aL"0%Bacab$bt&ZIX`eFv5Ɉ%+-94ݨCWp9mlz[^؉HjbaYgz \B!<[C1^?q[ XyT,(oAj/%_"˂_饫;Jζ780.!Bwhv,36%l*2B(G3U5ue~2Aw_ƩSKB!.bx>-4bgILq+Rr+XsXX(Xk:N$8DfzVdZ!"g2ة| 3㳎( n<M41955`ӯH5ӱLIR t%^IB!.BikpKa Ι51hai$c*zڋ(*;V/_d#sz8JwoCm#t'11 ۄAbe\T$p !]gYx= tjgdb8[`bN5UM d2I"nq+. 3ľCC<3̉nhTMwY/Hdž.kk rB!ei2:f,PUe~+j!"t]GI_%fQXXHM%lPii}/v,X@EY~z BFZ>Ir4lM5g+| 4$ $K!|FMz ɊU.,d2LYI: DŽ-HUl6ԩ IsK =jVA=Ib9̡ƭ>kW 7ak| XBBq G,,I Lͽe [WO?"_" \.Tu⩀xX^`cpc*eYtt?t>= :!;Ka$ל`08oq>6!XRH$-,4-W;&$HcQfII$o Xjر,kLE,#4ṭ~rG愬sm3+2R؜խu] m۶I_BqbHIJ$c彶a*${U*5tݞ78]vBX?eYwmO_lS?8wO?ݧ'o{6}o'}y>S0~Su^;Vį۶S{_YW/e׹KIKOX,Fgekorh%??}_{M6vݙ``_}f| 8Ȳ,bd2wLdZ?g+E2.ļ].!?~coz܏I?y:|M~gQs +6gr:_-z6FC7|pg>ͪ*/Yȟ ]?c_$\11_⪊aqE!LF<ݔ[!4ӧO388H2 '6gܒ[lNrl?Y|6B߲*8"{hd}qXM6N|R2SzOі@fzj~zCq4晩;?qNmbx&i^PRYMyoPcs|s݋Y=:z!oP}5?J` ]$g-YW臨&Bh{!BL<nSVVFiii,l,}|K{=9Z<8ik\Wg^qt:))) ǃeY200a\we)n',˩Mҥ(.L9389'}|f5?˻Xn\Zy?p??p?w_y^{}io[gf !2ap8(-- d/eVZZJUU>_6h4icwKY34.]B;n~:KﲊFHEsR0 ŅwVz>֥N&#_~GQ}`U,8:."X~u_m/2l)ᠤJn7v=v; .D4N<@• ?ڕ{iwɄ- @rf -<~?z=;px\ G^b [h?mliBə륦J a+ŮNQQjjvg8a0nښRTTԥ}$p H Z~褞?Lsfxa I&sY?ka/s~t(?_}}W:|{S9oޭ|r'BiM]u5ʹ Wy߉ -+?`wHWd—Mj/C{s3'JO0zuo/|7;Vl?;m?:K/^c-&z qf:]UUN'6-Ud``P(8&^:wca`&QPতd!EEEx<߭ywϓcיN&:G?#;cJ̾5v<|c 9Lw>! u3\*#v\gK6_<'2Io-~+8+ܖwM>WW|S ox8.aO[`oI.^-Ļv;:nbBPFzWn0w Lzxx<p8/ՠ x1q~-gnL6FsI/beR4JNmtZɦ]uz=_Gmoz?pwp^>-?&`}i::wҴ/yt$?Ž}3x==qrm}9։OpxifA?{W n.… %,^ r.\RXXHaa!^bJJJ`ѢE,^:멫 x.ɱZ},Eew1u.۶mۘk׮Oy"I(/Mod(G*|3b1s? BߌK"#FpP^;mi;zB\@rl0 D"A2V2m-͖)N)ek3;6'疐|*}smY:IDAT; q Giz6deO&tH@!t)\]i_i!B \B!B!.!B \B!B!.!B \B!B!.!B\G!E89E(f)e~ k-y;o›gDN1LTFYqh@F`v }G} ų\jV+^%4 yv:)iv,n^>m۶yQ v !8/{A-O{& {)keo5xyc8D(Xּ潬]4A:Ci~0ٵy}=eǚnE E8{}Й1=:Hw5zݚ߁2888/?^WQB1i]_/7/X3<&sϿH'G͇Rwۚ)U-Z #Nˡ0b׳Pln84k֭Ɠ0Zh*憛PS2;L©xg}`>r`Nxl~kJwમ& rR]]-.!JCΡ8j|Uc$Hgza)U1avy K7e[jVV/ͭQUȹ H MZqQkjx׳$4Y[UCiVءTҽV4FR |#e_˝ y׈`v+7,w!N.`4tm!rMq>.MSS@`^/UUzTWWv_!i^{bI Tۗüe3cҼ(Km:tY 9a+^H1 PTh>6 @e<@,B˾ne&DHإ@)B#q>~dgMeLb\i,~ v",@4|#!Xq v oe \[:CtмfŊYB1iZ:X5&]]<Ɂt K3 `+=qGG'N/ (+Ȼ2ּ=c dL,[Ո;LH³|@c[h&{l;ҍRKciڒ5q +&ءO߮}-c֪Yհ s3GF6qKwB!.E6=Ri#T<aw 3?{iUݘOW:@k-kgɵ~5([[e`f΍x<8&s*4c'?˖C:1X0!`2t4-/Ȟ~-d$!VBq)lN(Xt(iSləOp9^Аz;S8k*<^f3Gu0Ѐ ,o 9$'rb%B'W@8 @#en[~vo1%. 'x+6GOp/0e4>-V}%B\81 Md>xj'6q R㜴tk>|*bFjPHfC S0SjxQJkj(-8h\ԉÈ^ەJc˴5[104Hj<‘kh(9$p !s$%&Zx4>aXC0IKLXs=Eg:yb4H$oq \N,}Kphb'iVh(r&|ޱ63#Hj98&EF8:iXS)K!_\Tv&PAB/GxդR)td-a6HHgoijwR u5^cʦi:7| Gh^3ݖ61f,D'@8oqǏr;UyRqJ-S>j2%ToLs_k*4B!KWTb~N,`&~/љwt7\Ku,ҵWlk>OϵyhcnbߏOUUUUU,^20 Z霛]"]񍑓EiWJ>ZcjXIU믪_gժũw&콗 B1&`w9o~ђBwOͷf]ā;#M/[zy$GPM_eGI8qv6)nm;&cZˍ4%:Go-!u#T##LBޣX8'RB!fYf෦qg9ʸ{h~5M[Nä{ؐ:Tyjib&tK`H9F0;Ye{hC6KW}]L˞'yV]GRXIײ4L1ϖ%\s(sKٷo|r!s&Nh( Rԣx$Mdz]tx:x ]]>|p*/BnR5D`lͅmRB!%B!K!BHB!%B!K!BHB!%B!K!BHB!%B!$p !B%xB1kzWŚNie#knh3֧v=˳ͧ.66,=Z%!.!bqXx.<&Os4,xmȦx,>*p !(UѹL92˫OpϺEcV$lm[UI(e5ײnYW!L7[>t#><}BZ^VkSB`BEf$x2#!q>WѸa^ 8}lx:FkHRA^z%h UR`mϾՓ$<8O]M)Xq=/ SOk;Ԗ=ήGskIK:C.+͎Ĥmc vvY৮ w2\T啃5SabٳiZʜ>HK!uC#ı0P~^tL [t]lH>^OcpRS[1eMS %^}JU{yB@9=o`_}7pc#tha%I B02?`z˜~g;$8+r[9ESZĽwF/kPr' A}MN[_%svtG"MKBq-88n]ڦTYjA-k8qeZ#\[ZɑAF/ ^% sPhlxR↫=Xf_?GM*ʎS]O}o^#ih>~'BY_ ecpD©u$!M6U+^ɊTJ-¶vKCml6P_ˢ~sr ozȴ]c…+N6N &c= \xϢО [sb7&Lm4 Hײ׮gC lk}m(l_HBqrq{n(4VΫV4`vJZn{M 3F2J|$aqFJvNfPp*hÔ^mX$n=sPuSGS'4*Wo俬6vwz]xm>'2h^!uFlvd5- ;BSUpr> J*.0h3:(!:бW~/~ ^ Wܰ K RmΤ%Bj3w&j[ $˨NW͜eI7yr ӣKc/n"t)^cm#xB*\B!,J͹ۦd>XHÒB^^7w%_:/Mw_כ Kf!;?t=upQ޴ۛJF@i#6 а={mhAλo_`ah>Dwo#O6Zϰ'Y>6\VFΣ8MEWmҹAʾ},˗˧D! 4S\|8D WkbkGIj>G" "Ñ<9|0 ]B!ENSx腞g:h&q\1G^ýi =ڻ$K!%?8H"<c[Xzn7u.!BL*\B!,>& B!.!B \B!b(3,˒B!%l( ݞhc8B!%leQRB!e100Ntv!+t:)..N=(ZB!3 Zp(bŊT=ǥB!f딕-)**jS V8&HHB! )nvS]]YVl7IENDB`assets/img/fluent_icon.png000064400000021747147600120010011637 0ustar00PNG  IHDR\rf IDATx{U}?/\r!D0(ZTB* ZmZ/[ViyҊ`k"-^(_B#DB r!p{gڳgfyso.k}o]~̬]aMqnuiܶU&`-UIriemLq0}#>=vyվvFmkCUIƪkˌGQγĆ'!Y#n;(a 8ŹO{zr{,]6(|Rx+pȴU`p14p=k([pBj"4*T1I`(q |w; }(~"03XL| nq85E(ֶ9W*Pggg~_4eoٯ+ .0b@qbOw%t`1\``K`^s(&WPP&T|F#ۅ'"l3PvsjO[VdCR,\)~eK`0m _)XEw[[Q|}v6L\lUދu#3V%$6/cJ0&y&73+I zLA[D64䙊PwLo &-ƽ{b$f7)~|8+Fgpp p6 fX$0l3?DNʫBIm3PM{~[ |>Lʣy)K` 6XYw Jm3PMgb[Yv.?j. l qHYu \qԲ]q$ɶ\`dOĠh,Ez.. \`+ƩHiq$ɶdULaf緫8:8=mG,&d0m''MWUtM=l0SeA%|vK 7fLh9_ɤ~QmMCXmE"t `=%@egG70(A"Six%p!e\T79[C-IdHcмe%uHMCjR;'z`+)Eэ\`^1 )em&7w+|i=g 7oYl R&!|x-׵k7^u1=1IdmϢZ]&d."nR¶gp*n"P d.y \` {pp@yp!y5~)=s--#F*4%QA’(Y .L.| Up{ֶ~Sm1IcRVxQOVv oR2}ش Q*Lӧۅ%)iP_fp%4] i lq ~ O(`xgGFCط%0HW.)~ `yppzA^e؞GcVnޙ:vl &GlxhGw=+ڳ=/lV665wQKi:l &ʹ{onyV=([C>~;N .v&vD&!-!?`-Iz3SVa;4~v'cm&~3\(VBq&jx$)OTfS"O.ll3HIb7);|c"R*pf R8VVa@k0Txn܅kۀf"W?'VGM^^mUN!#&8'1,Ȳۏ_[':"J82:"lH#K~pJX^#u8WN*&CG$F,_go^<*ᑿaw62L6>y"|p$;4c8+cxn}}) 0w>`_e0Zz~/ T)q< nv c갮: _ #r߫`Gaz?0IHgVTk/o}/;)q[1 R1(X\ }Jό=2#Wv)Ka7~/K` c;73Db|dq?ѫy*vC\ YߍsWZT> ia`;G1(/'gg|jWӡYQj?W/m{ۏ٭? lw%E~:\]]82g?IGJ62M =+˒0ܻXoh nh7V^5\;u# A8:RXS>{YR_ FwvӶL;RY__GRҟ >.D6 L jkAxJw ;>yنm$  Òw˫HUKWoFD9 xy( @uڑ߰[Ĥizoϫ([};|OmQD[$4|U\%^w,7 Y4xr?,-U_}h>֣teo/ [^+xyerY? < 5~0X'=C<[W!1 .b'q1m EF  KC; e#*Τ8f6{EF! / cF^\dʤHdpW\`شIR>apaI[|0A/)6W*02 &$3W^Lsl {նbW|: VN]{Ⱦqj?@f2PϜ eIeغ>H3 [i^^(@|D<vur̴e'~^_wMIAc 8 S Ң2\ Lxvτ y5xZx2,j?܎EdL %p ˖J(n82NA@)t?6lHK?=T D٭-nRq ➣`޹7~/,G[sb 95f^6U)Kn}Hv$W'U72UJpc@_N"}+bҜSL>^^EpU],,ߤc{ muزVyyer}?ޅo5qL>A[^˫()oe~7nL !^jqUwmp݃+#0Hialxj pnV7П0G?d@iOc*0rT#'m7nv E~^^IW l+GEJ`ۍ=vnR3Mb/R]^ZEcv׷{}}oe x%TqJIRp{֧w F÷ݸ lw& "ʮ9>iRÑ}£ԈQ I3N36!%P]H3cjsk0>ƺ}xl;40/>: UW fHe;ƅ gP8i67al w0H_dI0fv<%0]l;• \(;z)s9C%0(3eZ8'I!I"D ͤe("-F $0b0^1mg$0+;{vKfL0d0^1V6\&e%d, Dv{aI`pQ*zBnl.0* L[$Ai)0а$ C>Xx\``K`pѰ1zAՇ ~ذ$-&1y[ IB{™F~$қY]vWB;c6tfT`y? UA7χ5_갽exb b,ESVl3eµ8<\?8 d[dl=c6kσW)y .1X#3+]?2xr ͻf$u\@8"iTxz~5Pv1YOPB-1,QGe +88z}zd`nу=H;9ŰO_ X\2?sO exzxj&@nd> k`saϣpP I9?1|ʍ7'ͫpf'KÄX}~IeR~RLJxI2KCUmMX$26m+n $ێȲpjVkQN7 KboÐ@LE&ufްN`}@7Wm0`(fRPێțI_Xo%Q_Yu7͏.,l}$ێ(pjp0l)+U| Ċȡ:/ngVp2Xѯ#W@?/ab +9L jmGyY`ð~ǫKo݇?K;9ُdkL?J@b.mPۮ?.0LL툢 GA .iS#i~O>nq^5m?S" ?@]/u%˺?~K%]RLKLeb2uA|9 `t o[̞TmJoRt .a%^ W9<';90;`D_%tc:[u0mۤ"7CGBVے0d}|s5phbvғKWF{4`<6‘>qbcCdO0[`4K(; 2*a'c-F7 NC~i agpQL;M$o$9%qZw63$0*3MgK`L2I`Ǹ9zx`rO$̲{B W 3(A.- r KC;I`'sz1u(KyF1HmxL~d-a?` E vP&I`$Ǒ&~8_p>b Jb%$F Nv+&I`$f6+eP[a1cTh[ؖ(A$0Dp4T< 5(vI`'ݭfv mkP#%H`6 ~~0 'cR/F4 .2Je漽O'({3h .L|٥M>g v_ ʶcTcd' ϹxaB^Lʅ7M?@qdd+ ), ]Xӧ1ؼ9|0\2|M`IbYKgw7}ͻ70=Խb%0> \N.ۀ YV=JGlI"cISgiGxꮞ9$# @C,DbĒv`'LS(>#> pKoI4^o]m٩Ҝ+L%vvg#{ແl R+e7uP|,I G"D8' r28woh*"t)lKcm9ew#(@CBH(lD&q$OSD @ƀ [ƎIDAT܉‘G~B3U+Я As`rll3Iq$ɶd1^Dy[l9-A$0Dv~OE)O¹H>IdUm1*/b JN4ObR葎Aߤ1*++Uggg?-7 De[(ϼ-Pa\N"H; K([T?I`6Ck?]nG)(9Gm0I+L~AOv:? "b ²`Iyvwxp-=oI" eg!}bܛ@?Y#w-([os {3U$ W7{8Qd&"C{gP }otTT QTpmQWC ABm#g~kmk̗JGlI"h{p!_P8} Kٞ!>ߌX􂅟Bqz9.8dO%0fv!@C^ \ ^XmR([L?MD7Pߥ {6m; Ҙ\`o?BeHjq(~ =f+Lסؽ3*%he .N_p\vivSx vGo [FS*N{f?}(Cw*LX+Twt |蕳\h ^Fml.6ϧBoj^9:QlNG88@p~Wb v+$z0:?I`Nv`4UK4! IENDB`assets/img/integrations.png000064400000055001147600120010012026 0ustar00PNG  IHDRۗ pHYs  sRGBgAMA aYIDATx`?= $ K{+gݭZڪm֪je@B&{>%1>[]} mGFADD, _d "XF#*#d1b¿&NF>A0R3VF9/ɈKYFy2py6DDD #NF][= u~h;_2<#.RFmDDXd| W|)Lj&DDDZOB$к0Y2]&"NPK2z=u2Zo0'''' ""NPKPr8ADDjQV5DDD9 "NPKDDDD+>Y˖3Xb%ADDԗRKIh[ߪQn6?:Mlyxx;of|^ {'yg\n':"Vj:*<`NiPAXRP"w!/|*Z\xc먩%K9g """0f(9RmAdgonCL 26[sqcY {xVΐ\k5v}=>lf8C-Q'IFzX jk(i&zGzo++Wchxh~5rr'>Ky^MՆ׃r<ȣXh75,,]sN:7ƛ+ S  e_eAvGi#<N:x]Gu~#!*uw+_9 9-.Z_)Pg3Y Odi`em/jG'Oõ,E8g6Bogʤ&nFhH(Oi?[P/ɧ PYUȈ(ӖQ\߱G@̩~*|2azqh(q_(Dv_ǧ]cGѓsR _ pTMañyhx<4h;+447\~ z(,.O?Y-]^~C2_ۯ13#h{BdD8jkkQZZL}/Em] 7J.Q c%tƶdpP|b[-hPo}eߍEóR%co2;s:.?ȥ6mm_~-"##1e$8NpQF">!UR^V a&?#X3,^]X"z[Z}8s\L0 ""@NZ.ǑmAynծHxv&w@ "&#?2Xƒ;.-Ƈ?Fxx8A\Gy:h [oc f6Zؤ {砨/M!3s:6A~s-~λM.Qa%$j`bXy@L$2 A ` ]#һg?{  1}ϜJ\|f.٬Cq4q557Glt֬_!HMM]c Hw8h΁2v16'M[n'? "@ŏ0O&n"2LV[F (>g ̢eиv8R l8TWW/9KQ'a]@s+bya^F4x,v1E 뗁*:ep̮*ԧ8%SχsFG'f"bk;3@DD=y{t[1ln<11vGɮB'믫-[>jbP\1sE3+u;坁گ 9M |3]wMk+³2mW-A2Dơo au POQk;Z}OƯ@Ș'tqPq7je t'2BA]mGQxgtddn "~^/au(hZ ӎ؋@ɮH[;\A+WċA6:;\ GF,]Ti6-""bfpwQv{Y3~h@D^Ծ-}*J3#V4oGcUPJӫBNP]Cm XP2dY+>Ps6JL5\㔑+_?6z2"AZͅm"*@W ѧFǠCGL^%J u,Eجш:-t^jgܼ70{f0N:.{*v V$ِdeVs!]g G4.זNB_O>UV!4,gu&_wj^ M%mݥBѺ:={&=_!*bVo6,c2&""k\_ ak' ((555x'0wwY5< '1vn dWiZ_1GFZ0$ÎCfKYV‹P+8)ӄ/bHK㳯[0~Za:ni6|i3[|e[ncV6Іc 9ώ8g}ي\mA:/uy-0qE*euiyaHM#{O>_ol^ 9ynTVz_2!8`)[+7[͍M[<6doq]r4YԾ.|Ÿg:t|Y|9⦛nn{\z8蠃pw\4}Q25wq8M[ҥKP;uT\wuz+++q"//[nń^~w&,]uU870ׯAE]q?gyg}6l0ףoȑcn F Ϸl)Tky9܎-ߟB-f1o[z}:ɉ6=mH!TG80i_-j1m.[z_^rDs0 -RP5ߦ=t^}~&^q9s^ W_}\AL׿4~Sŝ7oN>d~oL4iig]w׿bӦMfs=ӦMrj8lN^QJ^l*hAqNuߟo⛖j3?EѶ*3lf3+ 'Cھ.Ѵvڴ)#M*1_L>hׯ_L*:*.lQD']N7 r)(<%Kc?h$pIF.5=jkR]_b &j qкMD|Z=3f &jXժc9f2NZAݼy Z!@MM[+H*? #F0ChXbJJJL낶 >=ܿÇjqj}SF2_| {n DT_Wi<*RZ^1KUUM{\,.NG'NPl4[Z"y3n1WF .މ"""IglfXvGyiÒ%KLJTjPujU{\*?+ rJT~[ ZyꮆY G=j0kg1^+·r ۶m/ zn f9o8QX5aCv+Z0Lq~UM0݇!նe3=Ly͓.|`0&s4s$ߓnk5!6O8kʗGv-]F<^+,wu>@6fɸ[u jr{9޴*zŗ¾/nV9POe4 jhʦVE5@T_|^yӿ:vX~54,66ִ詶5 YYYzu֙Js[/6SVY6.\ؖkhSO=e~j^z%bX+ZK<䓘;wBkfm--Abhİ,'2lY6[ew 7$:nAjUKkt/XLB-fJ/]L{lW`CfCҋj/F g?-^P5оآdɇלJ> ?2x.ڿ2_m0rJ3տŅJ%ΑfQ*3( P|TSM?jd=Ǟr)&jN0aQm7p^~e\~&Ξ=TUwgo[mC5GGs-2-'teB!o4Ѫt]5MZ}6m--A]XNX [[1"aVV-a{c[oƾh ;sL7`)V;n޲r/tiAUk#kC-^f0 2~QG]ǃvE%OSW@۽4o\-r sKաV{[uڬ0S-}_ ޚoێGxV긌U}Uv5jT+:}2U+gqFyOnF; z8?ts9_kHCZ~H_?Q5Z6x4Za ̜ ip[4۶Uѵe@éͶs;lh [ڣ 1sj`{bj9p}fa{-$LXd99SN{衇}c)UY"o ekxjSCjcC|NB~iFIv3jS+z4j}&=-5"$\PQZ(H+ɐ9HLzB(FJ,,//70fBDž 4jUiȝ2ٱN_/:ʆ 1Uغ:Rƍv0.!ފ 3{JdV6(MW(_xD{Cԏ`az>Tt@=i}7~ܹiuRén^O@ՓMXgf4UZKo~STKӟk{+]Gv[ ;&[L@݋r.}&t{|P&v+88Xg ٫~z0N  z`Xͨ2gij{t.[LϫVì.j*}c48؂vX1,STczP`$h =HSJg xZ˖-3?kuV]YK:& a:{.|f//,7Hվ.7AeR?rDDx=nŧ,B}s=N>t*F Vb ?;$%%k5mZժLaoVJ{h=zu>;Պ.Ė3@S]]] "M%oVAUn//S];SYrە/)qOe_HvB<ڪ+)\5+//߆.jס]dI6wĎFzjKO>ylܴd5r'<9-Xm{y-X%4NXg[P3`B-u]c!';l˅~܏o |~3P /^|?P s ^ 5_QKł CcmH B͂iF *&#/rt >%@=AWTmτp؜͛nr%eXy}WZZ[WP- P[߸/1,yh=9`wU[wjKqɰ4# }۰L'"8yt(Λ3{&A3o޼POХoB SN-QN2߃F546ǞsoO[@^^?AZ.,DŽҠ|r ?C O~C.KV7L }0B$ע¢֠Է[Z--͇ C"Z0.5,cEJ0ihBCwҩnصuT>Jᣏ>;w]jY)[ݧR:¼OnLŲD.+cxBm{著~'An ;~H[gnx\"!. Z/Ԍ:#<,v ߭ـ/᳦cPj2YaETc}m,>30` H?_KUXz=xE\}Bp0{m-6<^Z-K0~h8RQӧ":ԉ"JEPd$J6">)ټ{_y aaajڵpg#?S=iꩧ3O~=ﬗ ?2dMoڋ\… ЅyGȺ&Oyu ˸Ht/e9Ϗ8xZց-jKbk$G Ab\^|!H1u= JJtCgJo%NL;&gkx܌( |48!뿕C%,.N+ZZZQ[[> H9cA}Ӻ-(I+>~i "YsFNS͑#grvcj'|͚5HOOǢE0`Mj1EDGEbbX̘}|x ~$|Q8DL;wM8/1dM+XUl,U6ab 9eUEBdJsssMLNNƄ gaݺufr?GtR3VpPWWI&Jn̝~(++Cl鲬jQQQaaHǵ^pD4\!Cױ[6 e/t^aaf;c ygǒ{Eۈ3TA#8D/,ϡVҫSv&Mf^ղ';^L.cp٧a`R"&yj ̞6^{)] ǣϘ]E%*c2 qXz\ aqGrd,T&QÆI86Ņ L}(|չݎ k6 .>QH /$ Fލe_~I3Gp ۷oQGe-PcccMQUUc=ּCf#++\] Z^]".˄f w#""\Th9sf_^j?׿U쪏m׭+.`@4\q\k ߭]Qu=&"&j6gJM0iHzff vӇ!C釼 M:-676:z܉Gi ԧ\P uQ |j!etGyA&lۊ oh@ᲴTX322e7|R3t7Ç7\UbXC4.XThrڞKu 4МWޖ^oCfKYZ;v0x/M-[qə'c̰LD^sf g[!6lނ+/8[^Q]Sgf/FMmjjCKU3'%z$߀o&l[,8A8efsS3f *2C Mv#}oGK}]^L5 C'OCEu&ZXW:j]CoVK5Pv6G(]mj[݈{wM끶 me4gZ ll5j կ܎ni~UVa֭>mԘ! 4 DPڻ vU]zab[aT"Cg_╫N;s SU}w܂'Y;f'5 ~ 2< {?cZ0uX$qwyI&OEżmE"6Ԇ%ťK-;JEhmzS9TKUZZ@_Z]lN;4@ko*3PPP .0iΆ 6̄U-zy baXCjY+/炨o,czȇf ~lNDg=\ã~3輳:NծZڃyEEwc]R>u:hs'$hnp \?) 8*!U}+j;]bUՈ CdxCKKKJ>R\ W^ySN9ItunO^Y6 Lї_M#V6hmi ͨgƘ@әt0J֭{dѷRKDE+cɉ;L{_R|]td?DJbη%UwAcm[5 [̳hbCt}ZN?9Ǟo+ldojn6]O]"DӳsfggcĈ T DDq왘=} "w&׼"8D;e`-[1ɗ0xwHDmC m-0i Ba裏6Dh7vY]Ȉ㢋kQq80d(,|`-XY#11j8zYxԀݏe>60sӅ:SDD?f*؃PU^jD!&.;+Qc)Oщ.3f 80!<S]ڕ~|z[ƫj`\>鸢X5V+/񠞰:N^luEa2J5;CN NڣxbY 6;F4V^|@]Tgɇy׻ڞ4zҤI(Vv3!>֗c))~L+8 xԝFy`NPۻQ@{=H˸ZfǶ+c&A95W'2U)7d(&9ՕKAj{e@{+GF|p U2 J~Fw;*>ȶ)ChdX3}u)[KJJugKe~)hX.̝;M,Hu ^SHjjqwmV6{e111g=?G\i:4}i@`UuջV`YNU#u m4"T7z}Ǟ= }Ԗmϳ_}v 18p6k|P@`u'~}"h?޲Mԫ0Q7O֣y7Z[+1aL*} HOzDDDSGաuZZW_ZmdDDDX uxXڛfͲ+1>ׇz;\\nil ?v`5+ktDLDD1A<Vm|EjESk,j%aSmnv ̃Rq,̚}yiY9*ZvHN#Cl8&5e!ȺwzSqDYE }PT]vl`Iu7Uk@~ً?#ö` |35_sN93cSY\xs[j[DA൜zypYf~*jz,*jB3'""=}P ]ZP9t8^ڈջ?l[aT`zT66C nẅ́΍Vk梁I8D s?k@^7yj&gEp|WPf%Ҷ*;j Wj*\/*́e+8|#gGpfZ})P$Zg^mFJb$ Ƕ*$zU#2<t,W6`s^LVhAӊc\!6,UFτTda*[`^\H*IJ;4/w""}PAIT9wjvTјBqi af.AcfQ+O}J%ĺ`R45g[+2 $Ku}}bJDGѻO:Y@"nE$hES?ed\6y\YEMbrbj\h} B|M }ЖmUO 7,|;Dˠt4 oHh2wS,.Ema{Y-nKnȡMwM[ʑP$Aӯ7!QcLyrdo)3/7VKu g0ظ^TYœ*o5,ۃ7VfD9-81= ^?)jCX&Ի] C c%""jzk[a95;(})I{HUVg=huH#"’ZTW&^^w>Ygq#qՇr*GvFf&^巼">& ё58+ە#oP3'g3EAf^`JqZw-Zm\NY顐b-xv-œV$~~ %Ն;mf 9Q_PǸ\n# OB<|Ngl dϊw{ERmiu3<ĦDcD{>00u `.3 $'2} X%_وFvѶY,fǔ dH=fb8&%vżKYm%fڐ[2=@+Tzz AQP54voPPZ9(ʁ ӣ% Ō=.J_ \%gMä1;sz2}jT4I wk ٢2oίvxೂӓ{asM n{,?Z*gu{gkJ|AN 1WH}nk=P b%.07,ѥh+dE=8 t xi[e.D01U>I0M_Q͘(3kT??`\   J| J߭)…{Y*AXUM&f 8I8:/jc'#:wsw6Xp*+P"IBkN .sHH'rk%za2JedkY{Nq T7E͗O-T4f+|sc6n)4Ź"О,r:,ʉQ** 6 +;jXbBtw̘l@T`9IQ<0't_Av\Vh]ˇP2뽶g aJucKE+f810̎iN3#B[Fڑ3-uVL{2-c I7ޑ?y5~DQJm#f7Ubܧqɨk!Rx&־ n 46"&:?3;Oņotڈ 怲hs> ~ _JV;]ucq-iRBxrVxQQ%*CNmw72!lun}sh }P{WAT*&#"dg%a`h>zD /˭íoÛR4hp{qx^b-oQWW-["28ԝnC򹭺I a`%Xzo壛Zd7QBc ڧrC/ݎFY8(ȝx7 kk!w\ uKXR~-_o[?&Ty$$w/(@νi0:8:wig n"TԻ&aSչLkY0kp.ۂVVyɌES$Iϟ@36{ćc]z/孳 n| kt5,yt:-WƧ2^7˩5#Pyd6bPTVlBvK7Dbf\#,%~[.jkZ=xcm%6Wl/ڤ2; JL!18i׿uəN3vLrJ w E?!6wo cO;T{RmJtp7,Jq;*=&TyKEɍ)aps5XQ( LJjm5Jmq7Ubq~}`Iezov >9y-=_[$hku5,76؊aq! g6n􇼳JʚD}XE}šVDHq$VԻr[-T}U/ m2ApJuHllR=ZB͌ VS4(yR]AgWᴙ=0*HUP # Jݡ8U {`ك~Cwu*H}e7l:%؋K'Eడ4~9]Sք_n#9܉e/Np\f^\85 BqWXZPpp@S- s EӒm.mmଉ4ߕrzI1~>=K D_,|ff~TY[H+K H65inTh :omTf:( ,73LL #cq9+o;,eM[]nljc1-?c[*WьBBzXVXP8L*T7}AxUY VfF^:\^s qWdb:k8ݗyЙwv/Z}g@x:5mM  G*ꂶ5~Ci#uRoYQ=J̨IЬiҙ,Hpޣ2pxlPƪrmqὭX.1Yynfaٍj]{To%},XDJZƚ= ~Z;hhRۦҙ / :C'd1fVPfſ,2Sqу1UN6 `mi=C°o$tT6&&@F{^sq B1=-̙VNq6h.x[- saٍ/S cI}KA\٬?2ߛ%sVk끿;gH6Vc?\-ՂLQVm*V .?2O:C :-iDӆF"DMgEfٙ/^X]aM ƈ`|.7-LMBWnUӺ`]~k!7;B@?D}Yre~Zv*kDTKuHHP](9^ ̼zJQ#hb"lpAR]jǜyg&.R0LFZDJ3P,AÇ,ۚTZ4}pX1**ْz<ش$4& ;+GmG?[;pEذ,p̨8NcPdUJ>_ Rmq{<ՙv?:hQכ2eJs9{];}r'ێPÆ(kںN"*-qh/"=zVT]; p\VtGAIa8{<df8ifƍsRMkAQU3֕71r.)ſ(Ct;u(ͪcXWcHa8l)Q䗄Zżjhl5'@dvPdÝ2!m)ZO˧''ŋhK lscJ҅<8 'd୍Xތ98}lږ}axbE>V9izjb*;6%OI6\eS(x$854`fr/g<9aaajy^lwvЗ;-}ьi [里v9a?ױ !x!%FLJ3=}L/Έ0cW獏7cG1:NpةO1m_&kI=I@aV_0 iQNKEɅ$m.[8n~z?ߡ/PxΧU -)uT){<[լͅVR]]] :e)?}ykkdPyMTvSK < TI῅MnSeWW/^ԩS=g Β/K}L{h+7^22wj+rlD2pk}KT''['_+Bw}J)uzUW]|y4'hSov%xa^Z{Ryd>\{.K@kqblނH HG}}*:T8}>0ݭyhf)ho% هV4Ue̒f}%C7*tFP[)Z  =_[ xQ`Z"GvVg׬ߌ{ Yfw> |$NG_aXV::|x݅*ATsq^kCmko @4g*]\Ԁ:-ݨ.wQ \yGUFHF<տǎ>?;o57Ӆߤ8cbÊظqn.K2q܄*vHK~m3㇗sr9N{ܕaC9?[.K.n#mh !RɼP7蛷4}Mc)mc]eOOe u% 7K:pђ `?jհh4D9. Q2iLGn+{~Z$RiC BΖZCL`Td+j "Ayz5k͹RƴD$'AhH0>+ >s|z Z٬nǼPwDтcZ.Z93駟^'ߟ%c6aWo1j߬1xmW \ YsJ~o*r?8N̜>O=YnHKM꨸n+} njiWKܳG|,|i[8Xf }Mm}IGb5XL7~}F> &e/E睂{28y!.ͷ _~,$djVޚ{ܷ.[>,פ8<<7`wk60:5 +Woq<7~aA+TcSN8TqGIGq ělC>/%TǏQ; }ⵇO=} J5r]EhmuaƭXnwO<7JŶش8h˂g=` 8d&>;gQ;Vj.}V ""<`0)Ju{}:n*YT5v{шp"y-ӯ&ٚzx!RzAQPTyCB_gM;l;Tj6Z?m=Xl-г2x IHlc^UM2W=Tlܴ:X:%~wX|x%^}#\pΉf&qyM!}nsG.znݓ~YBzxOu^qG?ؖnPG-EWP˩;gN&J߂e?m1<(z}j+ !GVQrKoc"3!hku.mb'd ƋVq݉jhOڃah۰NG֪VAtjã/['Dc:ٮ6<\]O|=gΜv= ^Q___^j<O%WpGhUR߰bS)}S?\pA+GۧoMmF8׼ ozcohԅ35LjB5o=+m†@;xI@Ϸndk[ u.J-H~7(+F`Ͼ}W+q C-j^K x)bhK`/ 4'eC ˕dvB^PIPg@웛LJ8bh#XLA'oiC\nVE^T3H}XJ͔ v;;/\" ւ/dJC!/ st!vs!68X҅ A 8AP,ɋUB%l|=f'3>V1bBab$j;gDž+mFe#m$XY D! }0]//9SȉT`<<~8@J䏍 _;-%)u> bcq8'Zi rBdĮqʱxb\ }<]\/E+<N @28(IƁ"'D?4.@+:* ][( A AG%;V7VY 2JF:葡>hI "CD[Žxg➃nOxFh#<&$tLK~r \ jTʸ.npW臅Ane+efPڑ(yٟlH5;5!Y̏"ִ|z~!|؆l-bEVIkz*_]bdC? >YY&jz( SehO32 ,E08" &F@t[s\I{;gÄU.I% ]-w>0o@ Lgu.S 02 &{P \=gAH # b#E$IFR DH< YG ~r!wGHb(FP+t$DYh8N@3h:]EhzD;h?0UL30&Ƣ,`RjFcX/'t;'<|2> _wux3~4!E2S%rvaY: D.њb218xF|B'H${)%JHHI'IH**&***)*"br]*'Tt|&k-^(2xJe.e-rrFUULS5FU:Gu> T?RvT6uC?H?[~ `Fõ{ /~`]C0pV~#c#:3FƺYƫOM|M&LN 13,j,Z-k,[JZ`Uomgͱ.oClSesÖh˴Ͷ`{s˴bڻ 7ط !Q5݁r(tqxXXrȔG)iӽQZFjΙ\|Å2ۥ啫um7nMn_=%=Lmf4s1'3s1Ϗ^^^v=z`O||>[|:|};L~U~X,nIl/L@,0$45H+(!h}`!B C9F639>q]$q :&l1#-#EQ 2Au1Ę蘊gbgĞM.> ~iiBSzII+:Ǝ;sddarC )%1e{Jquw_2 S'\h01gIꓸRRw~Fqiʴ>_V}Wwgd,녯B6eώޑ=7W%75HK-j3Λ&;&{M^=O.ٞOo(І?-R/G$N98Ushj4iu6Λ4tffnJ4|ٝsBK=bo%ko4'RSV")i_`B|pa"E}+^*s*+/ү~]%Kݗn\F\&Zvk+4WxrʺUUޮbk555k#6XlݗoVT4\T~õk7m*ip-![ꪬʷn}-qߘUo7^ю;=wZZHkzv}uOZ-{uO@̃,U.Cgw4$7 ;xLU9'N=qIӤ{gƞz6sΜg?y±^\b^~ŭnnuoqƶm'];}=oFlpvwr[x9 Kh<(h?vwq{OxO^<s3ڳ.nc==W{BsoɟVyy/Zuxo]6G?|v~d~<)S)_H_~-܁1W• `-: Screenshot 1574 952 2 144/1 144/1 1 $hU@IDATx#9,"9#YI*$Q( H(%H 9p칙ٙ{tTWHHHHHHHHHHH ED]x           |HHHHHHHHHHH  P1y+          b *S6oE$@$@$@$@$@$@$@$@$@$@T     0%pqB$@$@$@$@$\`oHHHHHHHHHHœa> @pb>惽!         sṪsx$@$@$@$@$@$@$@$@$@$@EHHHHHHHHHH P1 *k>          0'@|O0G$@$@$@$@$@$@$@$@$@$\`oHHHHHHHHHHœa> @pb>惽!         sṪsx$@$@$@$@$@$@$@$@$@$@EHHHHHHHHHH P1 *k>          0'@|O0G$@$@$@$@$@$@$@$@$@$\`oHHHHHHHHHHœa> @pb>惽!         sṪsx$@$@$@$@$@$@$@$@$@$@EHHHHHHHHHH P1 *k>          0'@|O0G$@$@$@$@$@$@$@$@$@$\`oHHHHHHHHHHœa> @pb>惽!         sṪsx$@$@$@$@$@$@$@$@$@$@EHHHHHHHHHH qx$@$@$@$@$@$@$@$@AH &&FN<-O˅ASv) NZҥM#GKL%kLE{PP?>? s/Gȱ!kv5 `,>jH?w9g\rHt<4= P1“Ǯ @(w!9Z2+,3J $]tZI,)$.)ٳr9vi@AOn//wRߒ@R]Qo)     97'W;;L$@$^`%{>b#˙#Ι]i^"9CGɑJpqSP~ZχK78HHHHHAy^ \Ϝk`1ckޔΜ9'{0X)ck@`dCˆIHHHHHHH R^+e"%KR>=Lلz D9t1j@(*]  >R1ޓ @8R>gl)tyy< {e: \-4W &#G0.s̮}r劜;wA_(/]2|\It{T1**NZҦI#J$UTň #Gpy$*vЀO!м D'O̜)DGK?}9{.m{E,0\/ŎH %S>3g3g9{,8L)p'&]        p!pZ)4!Y2gL=xXX+`!c ^嘞|[dIHHHHHHH =wh1c nVǎ2,\9*:}pߓ=[fZϧgW?)|{.Bb>B&$       pAeN]P>9N\܀ PR~vrw"4+ $3˗/wH*Gp )&`F!],]yH#@W66G˗b@gɒYE֗< @*彑 ɕݻsHB@X(?!/CJ\$ujn S#Uj5y@yHi W\Q!9~ ɜ9dUS$*#y1\QPs.s.er9ɐ>bQr&飹iF8^ {>j`kXYjO33z.t$? $)9`VYd_$@!A d'sOM[yΜ)t^iN)RgθΏVewTRI|yM5%OnE#1Z(SI}7a @Xb>Zp^H-N._'EL<TGܣ $gASJ`*Ch K@PI'M#3=wQX4/\\+}K^.u}@`!ksOw2mT(WJ7w9ق?WIǻZdA\>r̜a!ȃ= %~f hUa> @p*僸׼kT_)`HHˆ3Pl(`=[$k \!j<=D|LٴyL|E&_HL%Xa?I*CIgB|*W41Ҥa]ϺϜi%Vŋ9r-%GnE7\`!M0sҺE)ZgA$@$pe򘱚e heE}MyMG  H8g̖Vÿe˚IB$iv wV뮮YA,ey _wLR^ٰyk9~1c~Kj _ xrƂ+u25oßp$|:…ݞ }q ?IYr҆/y;;W\#ujTqfIr}Rȗ'\W̞M=*[{hB|  $@|-㵥uNHHH ~nJ|SHB@H(_IaOHmRz ,x[ 2RwyFҬICg5.+_9sdϳR2d\|ӥK@ҥKU[L{ :x𰠟rHP\ʜ;^2O.(iҤ{j!9ZK zqcǝIҟIG76*W(#K~U)8NYzT\^1Kkf%g׬lzrSRJy3 ,1-̌NT;H |x݂:G   8d8nED $_~5[E>I- V7ɜiJ=}}ʼ=#y(}Z͘#Kߩ6V-o7RڃL1W6m٦/ͥ͝mN#|3\rJZ垻ZK:5%uy(O%KeMsIM UY|"׬)_Loч[Ťmrw;<}?pPP*NA\bG8i~[g}!]Jy]ZrjzWre] |;%m4ҢYCg4RU", hI~#Sª7Lh58 @R>sZ[:_H$@$@$M 1μ[9Ï@H(w}z*e *(4ZwiM6WZ#{+ b x PȃdmJޫE1T,_<'Ϝ!9 u̝-} n+Zا(T MW_(3Aj׬ɓo;)/Mx _zXb>/O'Ǔǘ;qSB#b*w.n>k*[e4+-%iҤ6'7V(ܚdoS~wƌ鍝 NXv)ccΰ3*pwC! nT_hV< Q%q.qX@+o,@Xr% P$exKllpw?%"@  5$@|w-ky&pYxr*Wi{dEһP@|y$v] 0=bt>pV16m*{~ʖ5*_SqBnT *Jҧߏ4~ nڼ)cF)W)]dΜ)"  p uZ}FҪ孮V)}X;o}!7^Ow ٲdY !;pD;jT"(W9*>N"ਜ਼?y,9~Y N﬋miȚ og]:|Tf_S  >)  kBJǮZuNїbIվݕoi?0faɨ5"+rLˎNJwNZ^K^XfB֮Tc=òɣ'{\r+4   'y uqKLn-׼O`o5rf{ɟ|a6οYv./JkoN)[|if3/Z)𳾴Ζ͔Cfc NKܘqvf{~lU.Y􋠳TyfY\HH]Fa*8lN@NPxm*&v`k،߸f:[:кI,[>Ybޭm۫ n#k8_{<|䘏 vld.(ep5r'cu.6mt$vo t ›բ߆M[USIyyL%K {RK}{HV}{<@p6 a MC,$*k)_N]닇{tKv[TNY[C1%M*P+ I-d ̬t6V~ŴY2|p:@ְކ ۃ}]~mSOK&*jT3ddR;e%޻ɮ؊{k?0ezRˬș3۫3(+5nwo9Ȑ>EFMNy͝ ~ixWFm!of)R(  !@|υVke#k 5.D1RB{[l4>/-O i&F Îݮ,_asGf5 X \O`\1(PA][;7Ց t{06eRͳ <(|1].I닛}~?qR'ǂ ɝL Z9 ޯL9u8&:G֫crr4G S[!^@zvv=N͓G%#h+ OqTA1gWS6! ,Wұ}/g&^Ơ̏O:wKwY Е*7'[nip&PmB?zU1(a-&pksW:Nٲm_InYR2W .jXG)Vj}T޵ǵI1+Qj~̡XWi鷳\Rn+)T 4o0Qnwr?%   vkIet钞F0[=V7y;*Ȩ/),yGPkV" *p'|?9N+^DҥKg+vC&X[:tD >zɛ'[Q4>ݽ{km%v'}F8NSN飣 +ug} #>[pbfMSDQ'Nӣ^0 {y߼?6` ޡC+SJٿJY紐G)Tn0 _v ce-2|8S^=lJyo x|-7Sn@^6l@`zA* ?46iuǭw1/KE*Ǝfp;I}i-W-n)c;u57A~d\`źy= ~S>Sr 4܋`y{Z權O4dsOS~;~q\ÌTVNAﭷ_gosmX]kY8Q#};q(9}] ,_7G)qsYn[_Xc{?<=EN>w7U>HYz~kS~>vH yX.s[FvĢ͛y,*]IUh+ G)wd]BVY)*_4#b$aI yGnux\{\W=zK݄+Zʟj zȊUk֦ov*#ljO1A_އ;wuą,Z`!BH n Xr$D!MA&ŋvKNŽEa/WoR%c`ٿ3+ׇOHb<9eԖQK_ e\RL`u9>9Q&S U5nز/( ɯYs5   %PX7Tk"?z){.M[g/7xw;9QlJy5t+{p`qP>0|g\tڜCI PdA.Rjyoj'@ud9N`~5VXO28b ^⣘ǂJn oӲEhxR-h.3gvcl쐰ƅ ?*mHx 3 %zJI~OZqW/X(ֽ[)q])aw3>o֮߬v ~ս$jRV:eľ8[Xemu]/Z[ pZLܥM+īz)T(EyKl/ּZ/]O5;ZExy} FYm%&$̘3krQ?Mǒcռ?wAe\XXYyR[?ؠ>Q1(I# #ZאָuN1~TZ(?~Ii2tX[PfY{_)$|V? nUZKi~[c!BWJp8jfY-`Z`][)_L %nr]*k/}Uao2W.{jp?ێI.`8}slZFG،dսf ϦTXyGW=ߪF orv!ɯ9\ΜU1g er츻Q I T dɜj1c|7V1ϝ'PgPƒpSH-ZV }"jg>||6u*`)p9=mE⽆>E)eTa_m%?…@+kmV  J0>A닧66/`zf9 ^t.(NG6Rk-蹗r~֮Wy6VYlt9^Ʉ0#%ҦZfJR_g.௝v٠?U.,n\oW8% 弗$UWݨs**thsa}ʒu!B$@$]+u/oS#֟1҄Em篾Lxi ڬqC0X@B1Y+bt㦭buiu;r 5] "'v++c*? t}q.`wX,uQlYpG7</ʡ~yi8 =m]?H ~X\a|[a3%+K[}s :([`Op9>RMRJ})WU}5.{sKط[,Q5}*fk+M9GM'9-KtYnظٵ^$B>m"O|5ǸMV,~_2?Ijg[tW\׊L$ HPS__PXg֫J|j8w]"Xwcd3ce APWb - oתkNL:ʰ~RG?tmJ^-P`CBu>\hSMOa@ k+6l\Jy?,koKo67iJu] ^8exNN`d q?U76堕:%f@5WeXEi[|-6okPWS&n mmڼ]'HaA  k7B=V2xڽƙe\վ a}ѕ4Mq>GKrvc%a:eٯۢ|Xm/0s D-ەpprjżWGHXjǩ[pZqK2L# O<*.%k]:&zק[^R9ݍXKx4CRr={ۓ>8j-XY@ 5pӰY[)Z([S*ָEougY/ _U͛۬ :O~c˟j*5-ϱ'~w,u -;si vW[}]:H=_ßt1â'C`ujW'ʷǺ&{gBBV-zvէ >-Zr>6xNJ Mvگ H7lï:^\a)rKz5KjMQѾkwSr  9ngX|`{f9έh?>ԡCrGfbE#t:~>|nR&oaƌ>吀1)kҵ%EΆ -БqڲyS3 ԡ^Ǎv ]ᇆSnip[\m](!l#m O|R^@*c.kV^Suʵr\m{އv/Kz͢,\FTuno/f,jP|aV9tTn\;HH h5ڍ:G*$%7Iis/f/= >)k#O`'-c%p!(Vvˎ7M_10ZhaUf]Qy}5'yr)Zwx Œ3f55Myl'A'ltʤ>|1#W'V*xN"?MNzkG$M߯#'ZkT/yǟQ>EX$[J{"> DnPw&R,C$@A@+ߵ2^J_|G*#ou˗cܒ֬ICgDY$r?>\!O1Q;rK` 凜G}_NU nZx̫y$_K$wG+X 1eNRHllR1Q޳ۮrf;9rf7aTt. reJɤ7ߧ~\xQ-"Nho a{$}Z!w*#J5ɟ`@)֫c@=kq<}YwrX<) tG&_tInX\T黦g[p񿗟s&t] >yl>uEX$Dw cRVaOJղՍ!׫/.L*{>vnեM }oyOIqe95Uxk֨4$@$@׀9,RnHO>!1ls,Xڽװ蠱wqc;kW!*)IV5xAY8e6LKoѬ7:X sEݖ,;){\ZݻwU;UW1Ƭڝ&~}RB/@?B?%ԩFpWx-lr)c4 @B#.}!Pw72Rnߜ!< ެv냀Zjըjs<@W6zbB6E2m\yKt6m@Ҧu嬌:=C>rLQqs):".<|ao:N>Q`2]qɜ)ڤrύq" \ø ^tjo(1!g(*S/m/Qm4Qz):P_Omu}{ɖ-O^~$_$NNk+uʛv͵~űn0Ք 9m% '?cZѝ~,Z"ڵ2⒙;Ocx6)%&G~䅂?p2M@8cg kI>ST[8)\.Vy &c*uC 3Ivަ]m̶]O|uK*+H @)AApV|8SN 0_R#j}jkc^=dCrahÛ|'eTyv`ú/ն oE0v^<^kZɍR;6R+R(^kesz#b^VV _aT /~ NFQۘ|PqCʒX®xkՊZ&<_\ X0if?rH?v$!B2AJخ\tYvGWN)cLPC!O$@$y)\0pw:{WLz"^[8 *W*oX)K:1~sn `KxÏ 2vb.d?~q 䉯8u~,y -?==wT;v씟-)sAz;n3rns)P-W .EqʰAL<2Ԃ; @*P#a`G1n~kck$=@S1ྥծK*բoGUqac$*+N__L9B(\fZq y| F dzxZ/PCQOR ڵZ[6^.d|+{5XvnML{/EvCV(4Ɛ&Mj)u}P*H$@$ $l6 ) -wm~YJ.[G.ҷ&N%CǏ!1юSZ+7,ŭ+ĭPDeU ck}? y 3yŪ5F6-Fԯ[0V쨏pC(`#!t=݉I^c+wq9:rE>m1v[ P+5Wi#); A_=9|p_|E7"=^@( HD/sM1^ ߧ<ԣtG_@IDAT e2v[%ƟXl5i(t ntfٮX%3y6ټu* qK›یV,w߁wo>3(?̽*>WuVhTGs$@$@$@$@LpJ=q4O4.[ S $@aA P%&tɟ7WbN}lH] a "1{lظ{ɵ,ܪܯPHHR:11#B$cIHHHHH E .~=_Rmsᓎv nmH Uq*.^b>1OQHB@Thw'     ʖA@$UX/Z׮YݫI"@t6.%KD׊׮yޗHHHHHB@ dќ%siܱѼᶂHCpeH&ӧSLwf v;<"1$ $  "3d|($@$`%*U*ݐ^Μ=gMy< ($@MlB{{       Y2پ_ٵ"@b>iy5        iLQ .JH P1ޑ @XȚ%MKoM2H <P1Q @Ȟ-DEo QH‡3 \sS6p,9grޅ`C6.p)I?YN۰'@|?> $%tpbM.ʙnm,Lr唻3IXIHHHHHHH dHmٳ ΀-]ugd$By(L"       HL2O:T-9͓;d̐>mjEcgk7 :gc#       &ʧN/HttDx-k&9wpQ.^$+j3*|##       'e+=r:rL {U}:ChsU 2 @,$61EIOW" ;\rG3gιb* 9m       P ka  }       P 7?q}BaPE ^<H ŢeރHHHHHHH"܁+RTo߱>#9!ç''         -Ṫ|$@$@$@$@$@$@$@$@$@$@!N@vHHHHHHHHHH P1Zޒ 8*C|}          "@|h{K$@$@$@$@$@$@$@$@$@$ dIHHHHHHHHHB5_- @b>''         -Ṫ|$@$@$@$@$@$@$@$@$@$@!N@vHHHHHHHHHH P1Zޒ 8*C|}          "@|h{K$@$@$@$@$@$@$@$@$@$ dIHHHHHHHHHB5_- @b>''         -Ṫ|$@$@$@$@$@$@$@$@$@$@!N@vHHHHHHHHHH P1Zޒ 8*C|}          "@|h{K$@$@$@$@$@$@$@$@$@$ dIHHHHHHHHHB5_- @b>''         -Ṫ|$@$@$@$@$@$@$@$@$@$@!N M?Ie{nٺ/~)^*_Ry.\hGEEItt:ϲ:V'^ܹrxtt6_ 1ctJԩuVϞ=g-ʅqb*U*I>ڣd\dæoMFˣ9)}C@u'n+..]/%27IM׎FyԳ5<^S:]?g -/w[ZH:(oNBد 1΁:>k@X¹u=_@Y[/!Cs(վe˶㯝7On]bEㅋ%]'C_cbb+xÿ7 $5TR8[8)Ǿ*|ko3e m[.=/͑/aEٟpmǚďdSR%/?y˚-giQz=͖vѱ[oٴe5oOұ[I.i۱ٟ|ys˂GCJ8ׅk#Ge3M|.T@:Fڶ]ҥM6~1RVuײ:SR]R>}5)_y'c^L>/ݛS4QeF[z9(v'ko6ysmkyeɂϽ*kq=wǍj3>4A*U(c^[OZ E?ۃ >V.^:Ι)\,ߜ; aʕ;7U++)]X7m\_^3du22l*Ujf^>=3̰@\a+3e‹Hp9t9ԿZ%R\{]j|k}gp- ֻg_\^MyfXɕ3GCc7 -'[=(<|G\ق? @,5u|'R6]5H:$fMZO3YzE|`#_Gݞۀny/<hlo}c?`7q{3/ʱc'lU+??v` PէhRx&@1Uh!g+Xg;O~[ƖۊնkJ]GS~YuS,n͞NezR2 +y `9WBGJ<·/+VI?G3<}ns>6?f lR/εZLw-JDKOIHHHHHDb~߾Ҿ#2VӃ"]ȃ]mZ~[3Iypf.hPljɽϿ垮caYYaoǺ.əlhwq5kfE3__MPJ1w0S^_{+3eWڒ~ZvmXk\[nk9hMwr6b-5m:<(^Lpw-Bŵd>nYf>ʗ.JЫ#([a޵no*vK9f|q7?X/s, Smf2ʳs     @jU2S[o[lnN>#ϿQ֝X3))&,_ |Obۂ~zK7VO=.絥߸E0ToNAssI;nuٴ~ >N6c<;.ql#PXoLFɬo_Pwq-9fB vjYrQ;:Hܹz)ߌ&=fSY2$cgSgɋm-Gf'}L2+Q Աa!o՟;vJ{2~x罙     Hfi1o\tIK{R3e(HEۤydo9SO';=>mNjc(? @Q3c^v (ː@@VI^!߾{̚nuYmآOc5=%ĮJeuML^$pQúc?l^F[mc6M)̨TҩCk_-X'J-x_ @Hq>į/Qsqe禺5<&w ϵly~}]6. lٲҬ kz?`-)$`^JU.~.;5q*güi2ΝS}cZB'"e/I`N^,x-0r7G7ߵu/_o Uf5nï=HHHHHB@D*+(Ŕ.k\RyESS=L{wE),'P(1-~_ȘgQO P/ii}Bt5Ȯ73;\- D? $o4}e>1,1.]{_ߎ.ǢE Ё}l :ב#&>L*p-/)Ru[ӛ 3,;`iXvHHHHHB@D*Us7 єl~anP> k}y.'۵0A_jtW]mIeJ)l.`b[ 9]~ߞYٮ 4b"hS!Xj-WKtbmW]cqp-[=I }opḅ$I5TBY[ox/:Q}[^`ଥ^%UTr{:If?ofHHHHH@DUYcMSnSh{wO U+WjIORbnB@ǟ3n7vjXJ?%zrvI e Cں}}rT=ʟ/ xjcr:3a&1 lylx~"J Jq VB]Yb:M+n|K=:}'qP+^F:vXG-YTYZˈ:eJy|xǼu[KYd?qɝҤI# s&{*XּH8/Yܡ[lABbj^8 D~&c F*h|f#(V2$@$@$@$@$@$"R1_'={2<1;6aXXVBM##Vw?`*=|ћ>}tJt!qQfc2oҭ]NмmK1qJ|lṚ.C}M?pHƽ+6-m~PSC^VuѱlҊ忯2pԊ_~[e*׮dڒN'xWKcZ1V{`*B^O[Ҧ`1%3eZCpx-Pw,^򣹋yXQ gڪGgyq;w,a nr~bYf70PC}t #`TJ |Lxi,ʒ^OU$sa(pp֖mP.uVrP/Ig+11Ke'RFK\:  \-:jw. 珽z <g^ǣWvu]$(T@Fh~F<ާ6<,_|) Gj%(XI䞻}AM<=N.^t#~^D;0bh~-fѝ '$@$@$@$@$@AK 5!mX9~Ͽ0Y{%KL5/%TKڷkiY|lÊ_ԔWRݣō z :PxC[,`Q!Cz9~sa۾cw7~m \ _V;0TXKq&%!Jf X6o ʬQ (\q` 2:df]e)q]Q"{\ !,3-rCqKc{ג7O.}qG0x ec|m$ @i^haO ٲe $[]fG[ c 氈ǧ]<7mS.֊vӧvэ>@'91֩ӧNP>5v>nܴUʕ-e$x ̘ѹ6vAoo3   H HcD+S-[V|U)oOX?kZm~uZB.]Nh|=d |yceP??}CX(aQ9Zyyu3]igNX&\S 8fW7#2%wKH' /Ig9\QpUr. NKp2(_PCpr" vOܹs׵@@@\R  G"MwݑaïMukWYo[,;pq3g2 O `ٳ崹]xzzH_;ٯEX7mI_}|ޜ$@$@$@$@$@$tH8&,Og_~"#]t:sPм:ٲO3 ~ 9Wm}23Cq :9*Pzh+U2@N-!@vU*e?^fq(F?o'7mn{@ p--tZ$[Fg >be*Ay-h"6lu<-[m<sW_ZtT(h_`ܳ s+3Շo' mu^>uK1k_['     qyXO#Иv8ϘgϙKVXt}_j Y˖.)zu7/Wff 6MYki.0+ٳIq7ڕMgHiCkv@p7tS8kI?^8*?9<,:tļv;ٶ}-9_a= pԵG?ۿmX:Fh6[Ơ߬.P{OKiuDG(pHc>`Vš4m\-v!n.Ņ4oePXazs}Y A)$@$@$@$@$@$"b>m42PYxec>/ۓ>eJ OXѦD$vjwQYzzKWAgMlZVO@)0ǥ}͹q=JRP~c1.n`Yj(?9cSsˎ4(FGr(a}&N63zKo>~"AW_uGgkXŵիUI|OR]VPځ6T6RI8lA_KFOTSx/iX_ӳ!lwI+w^xΛҦOs*rw G˸w^\?L3nDZ'H;ܺβ~rw={h3o,\[=??nH~׫{֓(JRR{珿}:h $gϺIus$pg6^)]{aC4=J5ޙ3isjX)kZ4k"~?XtێV9~ݐujZ׻'mZ8G֟ǎsR ֬Q]Y韒Ik88Ә h>y[#qwIrJRv i߶IFpW#  իUgrf F@ "Z~G k냰@@(|c֪Q#.]Ahټ4WK*'W%GFVE@<@S^8=Ԫ&}{v^X Ͽ["  PWĵʮ='C@+=vhY|O3+r%A  DGOy='RerII;{Nx7:  (QTPNtW)OF̉@Rlw@@@b(̊@@-@F_?Z     3>`4@@@@@}h=     \@@@@@      > 0 Fs@@@@@-@`׏#    L.E@@@@y_?Z     3>`4@@@@@}h=     \@@@@@      > 0 Fs@@@@@-@`׏#    L.E@@@@y_?Z     3>`4@@@@@}h=     \@@@@@      > 0 Fs@@@@@-@`׏#    L.E@@@@y_?Z     3>`4@@@@@}h=     \@@@@@      >HY{i.  S'RerII;{N._\LϔB@x (QB*V('5kT& Hj$`%/|M" $@ʱS֪Qȟڍ[eמE4@@k8")@"yYh  #t9r>Izrr)Y̛3E@p233%Yw0EkwHO?'}{v,܆p|^zN@@ ǼSbҫk[ZRq, 1ʵTzB"vqqsR/.  @QМNEJ6@v "Z~G kf   T@zբk)  PH]Dhqҡ9L O i#  oNMМ@@ w;J}}9;@@@svtW   o;%[|񾾜  EVvJϒ"{h  $|'q$Щsqp9$     @ Okϙ#    A|9$     @ Okϙ#    A|9$     @ Okϙ#    A|9$     @ Okϙ#    A|9$     @ Okϙ#    A|9$     @ Okϙ#    A|9$     @ Okϙ#    A|9$     @ Okϙ#    A|9$     @ $%ޙgdd%%%Iɒ1 Tp8xH8$%J4WO׫#A'rRԭ]KjլF|.r935)S5M59L2W`iΦ˞}Sr|ԩ]S׭#U*'G(~|9`KJ%R-b   PdJR;'3̓OtjVLSS2mv@7oU"7 *eh8f/TPA 5WQ m89$ 6y+[6ܦ,+I̙r׭%Rňgż h~k^[ﰧFJ=˙NzM=)ǎ˸O&7tLٲ-+f0.Wco0`Q pQ敷z|4qj{/KfΝ/KWqϦ   @D)2/Z*;v|#֌4cWWh}JFɔݷG0K@X\ K55%DNoa _5Oy6=wd G$8=WYߨA=)k:jrt߸iX=(k?u3}K.'#  E^|/ѹ SEߝ95w0pVYC=}V(.\ v͛uDO`ѣK'ֹkm5_n0nd03L@g-Yrr%afRrνwX8w,p?E)n9;[7זZC`{ruzDrJƍ*   @ M/ٳ鞠w[xvG̪kulv#G'GQo Ay]ؽKG`p.X"xMs`b uAOXfiD kpB?3E{w:zZEe+́gkf    PTiV]WZŧ)6pZ5{6LDE5k}ul&>˕++d=a)#(س?xh`V{ts2K:8wMvod3yխ_OF{;kV48#  @ 0kj  |Ǯt~!>-   @d#shU*˝cnh]Vjټ)iQA'95qWIrh)3Do^i9bB rRR9eFʔ.XSjvӈ{vl_;v}=;`"& ލ1qf   [eED@S|2y'm5{UM&V3Wԗ)zy ~ 耯Kє| iy,Y#JR'P]7j#(,Ю8y7M6j,=-߉1f'5źu[VʫZK];FI9t8EL/]-{[]%} wt1{5k7Ȧ[Ց!C?wY?J=Yƹ*X/ywt@Dsq|dսIܫPG@<=LGs2~4qr79EڷiUO׷i;tٟ/4^Ռ'$ w QSxR?(z3uEGnZk O԰ntڳjʦXUg~Pb/zJAo;E0qx |6oKYp7&O@&TWl222diqS]\4 @7yioP6]Rdwϣ=M%turңi^Yi(Gq}yDXvS/sÑu=ns)||gʴ݇L6l -@ľ/X{H G|a^x8Ts _}-;zf=TINL3@q8j~OXNF 4lJ,\ɩ%M_PJg7ܽW4.seԣ#gEHo踲 hp_hvڣ['yI:YO=عG'5pF+_nJfDyGM[o%^?IoƩ:_Lʖ)cvTv{zGsHMfM~;ԯ:0knSSfLFsu]"Ƕ}n;N`E@@ 0b)"@ݯѕuqښ?Z*yV|Fm[{Z]q7fi?NݷKJP.]az˗+k'0(QjL_ &W}aurbx։8X45@Y3+Rn$)Ss-+Vg|-_`Sv}SfRvMyd׍_z5h>躾Ƽ̴n/ߧzsIgO֞ߖF͑'~#cnB_|,L9f) FI}`9g<Òכzb!Ҡ l   @Q@ٟADҞ U}w ұ[ރOHW]/ڛ^sz ܗzvQ+P Vd vt>'0kh]?YF(S;# ~t 4kyG~CzTIGӛt6}EׯSwHny"%L{}n=냏'{ɓ+tp?iP  =>E^ڔl \ `9Ep<́Ay}A +^׸{dkO}wOz km(;\gBui}~=|4iYg>|6$ezLؿOȶ8";m{|CS<۵k38ѻgW3K{vh߮u&Y,YZܞ{Z<-kլY=Q\:}<AM=3{`]dnbu   T빃}.a%\MjDѴ6?G^?Cqo;,M+Wq(Q*ci["rbɕ*]VڧB)}8`l9bՌo޵Fo:YNkdߺURl'(MuMVJ?O57eÕ sk`\oKFZy^~N~_<=5wxV݁S4^vA2i&κcrww(fԩ   ,Hz={f^SAIKz[=¬:)ECazз.IV$W(w%R>ɣ=3R替w9rԾ^ujג5knhmZ^% P?`i[iҸ kOn]:؛T:18eW[$zʰLά{fWj/owпvoE0~6Y{߹iB^'o{D>pWH_}c)t4 ,D@==L @a hQShOzq OV;wݻJ6O4tA4VG+ A8^@8u*7xzurmi{׷rлˆ_'sԗ[iwqꞟ[}˶w?W?NnX~c_=`;(Mw}*} Lۓcp7 hpy, W` {u@u!WdtlM   HX@@# ۬~4/']l3Ï|g:Ո5h?jJ>3񃜢׵5F;Z7k,{?m+:P 7punfK߫GVM)m"-nV7~+z'LJuO({1u@@ W   ^ ##ìP|Vp UwзӮhP=f:brWҫo 9SI*UʩF>yl` g󯿘]j ;3MF $expw74kXQ؝c鳲wYJ=N  %@`>.7'  p}"^rJXǺ? 7/o}'{۴jLn9l/ DTK4K=3ٽzҧw^;gs< |1 sL2۬qT~@ ;neVtLS׊>aͼQ#:@@ RT@@@Uddٞ[ٿYrmfpSg󮃝~3KA~ Doc6m0Ě~o/tPkv krfOP۹wS&3fw`r6d@f hv/ΓRollC@ 2@@@ ի={9ժV1uwE6m|6olڼE8 isrfʴ"'%%_7.fPn5> Yf:q@@`惩0@@ȃ@6-;w1`MeNȽyQ#دe:}pްA=Ugw}*~ {p''ͦuΦsۛDu\ kD6αFWR?MM.zc!Xre$Fw k`^Ӻ3 qnn4  ܄X  "߽gܽW5it+M:kJuI-… vCa{f۾9Ay]A/ze{>t躾(Ç^'otwr7فJ=gΞo蹼h=⾩9ޛ5mzbȡg~q`^uhygM=L  y 0W1G@@B<#jϻWꚻ_'?~9FDo ĻM7O~)oafiPoE42ilMV=2lׁcD#)#OA@ "P -   @@re/F7|GǭAXC9=ǽ >k5ء6ΤRa۴ICyWd@o{Fݺt{<e̮ =rm|:)mܰY$CIw+kTN$<¬mL]tAN)e=!@A@ lp+ @@)rZ50}ݮ[FA4?![SD?4zk+zR.\(;weFOO?' o> cL;o憯^+qqx @|QL"{v/&f   @Qݽ'9[ln B܁ׁkEA@ |׃)@@@@@b*@`>@@@@@yS     T|Ly9     ^^@@@@@s@@@@@L!     S1e     x{=B@@@@@ c@@@@@ z0     @Lǔ#      0` @@@@@ )/;G@@@@@+@`     1 0S^v     W׃)@@@@@b*@`>@@@@@yS     T|Ly9     ^^@@@@@s@@@@@L!     S1e     x{=B@@@@@ c@@@@@ z0     @Lǔ#      0` @@@@@ )/;G@@P%JeffZ  @ 8I(v`s  _brv#ROch $ T|Ly9  YhP0@(4;́R|B^vN@@ 4iPn{3o-@@"D%a18B 0_(@@W,M׳g\|   P("Z~G k냰@@(|c֪Q#.]Ahټ4WK*'W%GFVE@<@S^8=Ԫ&}{v^X Ͽ["  PWĵʮ='C@+=vhY|O3+r%A  DGOy='RerII;{Nx7:  (QTPNtW)OF̉@Rlw@@@b(̊@@-@F_?Z     3>`4@@@@@}h=     \@@@@@      > 0 Fs@@@@@-@`׏#    L.E@@@@y_?Z     3>`4@@@@@}h=     \@@@@@      > 0 Fs@@@@@-@`׏#    L.E@@@@y_?Z     3>`4@@@@@}h=     \@@@@@      > 0 Fs@@@@@-@`׏#    L.E@@@@y_?Z     3$7ͼ|Y;.%JH:fjv7'QL);v'NJZz$W(ԑڵkJRR,iddd%%%Iɒ ܳ=&NJ*H YFmkF%KD_ZSҥî M;MczoA9`}TXA֯'kՔuL… rRl!#<|XRjUHBk[p:tH?PG@@b)P%X%ə3i9Z`6hTZ%rfD_ˍ_ɪ/QXztQu ;'3̓O=ujVLV4 ?29w|"рJn]CV91#o_o&2?s lv,nߵ[.Y!.^̡װy2591#w|Xl|uYzrM#t`eod9ހlբ+p3#Gn-^&[nҨg^L;ej|Lky" CQN"KW1=w@RO'O}{t4 væ;zzٱ{4|){;cع{]DIO rsYk>Bg2E+tj9w)rf.Gg[(}+kgw+T;w˩r C#j_6T:{=9p}-Z*[w}zHQeRƽz|~БAy]'5    @aEXٛcоښFZKKQ3Ӌ~^eu'M O!*&Ծ%_S})=rԲN9ahtL3f:>Cʖc}ϬG", [ ŕusä)ig'gϖVyCYP|~m5^KEKTٽՉ9wRZ ~+5Juz5bB~~k#1^9eڵjD_`-\ٲr葞[9i)4M݃vw-LV{7S&.hԠiyYG_4T ٛ^OZ[Õln,ɏ?Wݬ11Ayulqcg h)*?Mrt_:pܒ'O:D қT]:JrWc ݸU,['3iy ]@Cw )@h'W }Q/pDzeA[)4#GٽNK*t}f.^3荩`[ڻ3[ VztQphX^UB@m:TҟDRM$Mubz25+մqCy[k< k<Jd [}!r%{|RJUTNN&89ϏrSl=ЭS{.KWm)YZ6o$ Ւni Y@S*:)ڱЧ=&|h uR9Yx5jMq(~%}]{ *z#vm< nLi7.kҨA*t奬5 {z+| iY=FƆ"-&}'z1k[wJvTgbZ5*!*U tr }ViVZ =nRZ9(ih=ҫk[+`N.:3Z EY@}ik7II-ri[1,&'XXqN+=јGʸO&ލs5my\;QSAG8}&;(yw)OAy=)W:'@W&w) < OAyk~5VL5' 7(Uxe82۬ұ]k{~~8tO:S4EG@sZR@nQ(ZQg5|̙hLsN V4Ёr ..PzUٻPsv̴*ynXuJRC+y*%͖p`M`<}zv+nXdGo,Ξny+8~ZKgu)/. hW'!(Ё^hzZ@~$F0lqE|BwO-zm--kI UG뮕5I5ʨ;P\fl޲ͳ[ ~®ޓ?M>-?z䰈Rf7ơ[ŗ9/ZRXmĪ,iigMr•Jҥg1C=,Mx~/,E8|uZ9ufJJݷaŚunW2J%cPb#f9qff=R@@x 8I(n/t}OTQv`wr8xXVA4ō??c<{(5ݸztdSH`];uER|9gu ALȸ`ٳaO,.cYt9MYupr©ԩ]Ss1OgmrgV=npm- 8F#0x5>+$;Xqf )@0O`:Q A {l{Fm>jΪ~:r5}dic Fv=y<$G3Q|˚s6@7^?X7mlNyT1.S9Wy3Uq. %glAv/V@rϙ("'7EkAʐך@%:릺S:whǍ)w@@=pvK>`5WfwGyJvmD_iVoSNKRR)Ym.AI9rb'*A*݇V{RR1Ƅ>ntE+ͽiX1;M$z©4kH4-SޢySgҼkoywazfA@6sfb]9ك[4kje蚦)篤rysΞܟμwnpwHܞi@@@  ZbEOJV/x1hYwT7 lz_T hʚںA0c_40RtU&1nG;~B&[;95(?jPyٌ%v&ҩ}Чɟ'O+[ԩDI(H)92"  -]kڸ؝w%2| ջJy8 lS0%-j&W65HO1ԲR8TiYp-,潐iiWY+w5-ع{SUr jw (+ߩC[q-.]'M 6?wuf(n<,ڴp<+u_{Ih4  (k6H޴9իV?qBΤz8DgB{v[}e`8Mk3aLaaNTIϥ#كQ[_7:-`/yWˍE^U>}3y="[,d ;>3'sԛ4j(c>3 &i*XM?gHo$?~=z挤Y2]Im DNE,=]Q,8ii@@@x w?̺W_fc#H*/__}Y#; ET6yb]@@@ +??z…SԮ)ztժͧL#s=Q]]$r{fAT͜5aLtN!Νtu{=O28bNw@@ O   @py -w<(+W BO&2K}Q9]yeG?x,0y[L+32dg der%"k~|i>Kˬɒ')[3yV=;`"4ugl*̌`"l̞05W j  @M@@@ɣOZ4ثEsozgVy+7&%Jdw״5߾ֽu滒cOF ǟ~Yߩ̳N~pK&\Yjo={YMWy`h(e{>wOF\){q'(  @4GC}   @B [9 Kv QhI+ӰA==@>qҦhOu7yx*d+w{y}{9U]MuhٽH듧g{l&SfWFRǎd}A@ 2@@@ B o>(eJh5kכz,)of^+WVnifSJҾ]+3}ryo}\:uhk NJJT36{vɓzWr iv^ptxp4޸ f=&A@ȣ<:   (p~2iҧwEa,7J6-Uk4u_gM ,Ra@3I+K1O6h5[e  @s%b@@@ 7H¯T{a̭[ԫ[޶};ڵjwe壿6V3;O7~ vl@jh9/s:tP?{=?ST=Nv@IDATTJ pʌYj\vˈ0@ȋh.   %3g<{]g:p--6}->[`h>G~MpWO>"];ҪE3iެ]#]+gȡf?c[g^ɢ%+I}C"@@| xIn@@@ /)l2a7Ugyz9)_g^^&`>='? ~ǫ3fgh kۆN>dLUz")FSho{ѭSM'Me5vSA@ "@-   O .-+zJ` BZ̙(~L5@ЁzեS;/~urp2,vfU9!>d_߽:  ocC@@@ *e˗[]WTBs[=$z?LM+{ߞģͫ֬7vArkJ,)o޴ݻ Qڹy2`܅rqϚ,3}n3Rʕ+Y  _RW@@@$'Ov{pK*eSb.7Z?X~P#:i3&~nW̴SYvSO'͔+%J0BUt,*du]|0~S[F 7u*  @A1_PAG@@!arȕE+iigEs RŌsM=m6;RI;.`|:i|k7dÇ0hK.[u7WwM   0_PAG@@)_8xة}w/ה.q5Ȑwft]*[D_3[r8mɰuMs7h %V V{uS@0@@@ =u2}>̜ѭkE{7yWߒAد߼ų3̜ j9@ʤ,|BouXuH˘7UuX57>kժJYJT@@ / #  o/>JWcXMU{dh餤$O~Vu]Uڵii5rT(EfMVfNLhꞕי%ɶ23]ƍHv9zK|wڪE3ҩ|Uu7; \ 0@@@ Ns'{qVYGK`ҥOH7k,ϧ~grʊW#?{.Me[ Ե6{vdbƜf )ľ):k^]c6tȡN@@Rv~@@@.'{EժYCt SMKϵh~ + Un34Uqn{2 n\T,w_]_Tz*}m VEp9+3yw_[g  @^JX^  H9vnhUd'L_hdѨLzvٳjժH&PE9wع[N9+M՗uk0<7 @ȃOŪ M@@@ɒ%]+z{ ']VW`Ia9&   PJ@@@@@@bt19@@@@@/@`_#Z     Pɩ     }-׈"p}l}^(2 E0&I&eҪABmiƅ~Ng\/걋?{gEy.~K "XPa-nnnr'7iƘXh,X ETPDDPteمe^?Yf){ʞ~ewy̐,˕,>%j;q^   @(хb= @Zyڊ3EJN ;vѹ   / qX66vM-ўN]@@L|5 ;jD]kk[a@@@$ 0d "NHJKz@@@b)@`>ԅ     @!X     @,R@@@@@!@`>@@@@@XjR     !̇b5      0KMB@@@@@ @F@@@@@ cI]      0     R|,5 @@@@@C@@@@@X &u!     B| V#     KԤ.@@@@@Bj@@@@@b)ʨ @(oh:*-mG;ܱR (͔E>$mo#aD)Э[79z9rDw^9ql@H_LE?Pp[ԏ MgR[a-]AAk>$ݍb~}%/ǖBp6ќ-ac(++ôC|446ʞG%Inn f{k>,{GS{H-MKQC=yss7X=o8P-6ΛDȆMKuu>DF="عG*8 _9nHÓbGP6A)K (F&Ң9B"ٝmHwB:lݾGLN46]da@@+Ay,E?g n Reʺz*k.ؚ7'O=gΆ|נn.vlkoo.=a8z$sKDeY \z ك|vpi56­ dڐ @8mKpFOVP˾^cGO=پ \u֟J~Ah_|vuO_fKSAdu/_(C֝+[ZZGOV 8ѫH#QрV*Wm֣ _nr:y:п k 9,7.|s)qcF۰I[UvAgE|&M% oAy A2)V'=GG@dЁ^51{K  0z卷9Оv/ \} o!o-|?=tߊkoZ_ӵu2{rYgż!~D kۢEqpPVYzϓ&]xdg;% cϼ{XNTTyS]wDhYY/ߘUln_t<M<՝?nȀۭ۰Ytam]߶ӳJ~䷿TEÿa"?n=\v%KWX|%<\Ff-c_`ނѶ)S~#MYVzOM7\y`[/šuۮ}i7F;9F@x Sgī%#h_/{/f` 6^sf)b]fן+f@|2G=RvY}'+e=hJ9x|\ 65|[mmbÆ-͵mH_]9Bs^yڮaҒg"زEཱི)5}MMem`ۗ(͔FS`kAϜ"tѕ/̙+_h-"Z9/s,ƫd)>L*Y|OӚg)PW_oo蚂|Y qoNxMg{X;~j#0|w[m/'|(%_R\m" D'}N>j}Fhk\*,yy (jZt]zuWRܼubyּ9q<͙7m1'y"mZ00fp,m Md/g1uyy~?3*wc:F, ~ s_|3.݃?[V^g-N⺫fz-l߱\yojjE?i{P^W1T.\kMyo NΛFF s]nhޘm)ptӧɘu@@HH7τ<<N,3%vԂֵ{8yN72HK/]|I*?6zkp,nxw D? &Pw@,r+s zsJYZv+_xcޜy YԸ)0b8OX Çk9M׻W`c}l83h7\]<[   @%z{ҙH=Ǽܵ:Z)((B4RpfcyfC?`#2ߚ/TCbϻѶIGk k>6ms_޽z##Y4߅?4l\LqYg87_ 6ɻDs} %SvhBSUuղtjL ah)*NE@@\J4PK>>H2l Hoɓj!j·˩Qw`fC/TTVyipFObJ455˺<[>`]sFsM[}`ݜ v[O>+3M4HO@Vf76^ZG|cQٺ m-Y ,[ P@wobOwv5v}Оj+|ohgmYX`;ɾJk3r䓭y&@@@d~L+H|:.>GP^O?;;[ўfY4y6cMu^f ڦt-w-5{U'#?CnH[3nHd&֛o/2LtZ'7߿zy^ހqM1X@O{ f]pѣG5k$Zh:hLykAt -A {+:.@@Hv]ЂW]rxWy~eֺz+F '|頖G XUc :{c߇i?]%+׮(rssݔ={u={p3{zټsU {@5VWk@\,ԯ i.w=]%uށ\5:z`_PjO;4̖埬V_iR?G'|1o@U7N0\{Ut9'CL   I,@`+ "9u5xVu?JƍtƍZjZFo{/Y8S';qO@;wgwn\ͻm.cm]mP|㾽Foo߶=k7L <Կd֊pQìtb̼ INsl3m$,M @@@ Herzz4zjh 2:*KI7q>ds9d=ipqKR4(6м4;[ޢ M=@.1ݑYo"5757[?W|XaOpW7?̊A{=`c?idg ]aW|ܔ0׫΢%֖ucL!yS}_xYVkmyo- (C%-[=-8=M @@@ wA0~~{@oH4):ꍁ.ntY4Yc,pSDy)"+=VfLv[|XHnyG̨o{{ܽWyY)U,=Y&Զʮ޴Xr(]/|qK}*{OQBA v`~;?ԫ^zOl޲K7([aCOa]@ǸT48K8   *@`-Z>m.3ߵ׼G n]}ElAyP.7_{K+.rg5 gE8md7׳Inpd#&Л"7]}+xT4͠=?C'M($@G:@0zϏ%Chο}QΘzr, 7y _   {݌H*m-k^it3+,)C A{LXȕg~O{c0tC1>!t---oil OG}] _fwݘ=&0Z[FO'Ɩ:0\ޯ.$'%Ys  @qBM  y9'U p$    @\v      @@@@@ !5      @@@@@ !5      @@@@@ !5      @@@@@ !5      @@@@@ !5      @f[!   ]zYY*[툋j@Hk rYq-g/dޜ#"  CU>KE@{z^I򵋊9"@|!  @ t|s N)ɣse@idft뺓H  VmGeWe|Q-tM$ =GF@O`x,̞rϺF˖-~۲H)A>Erb7+.k@@C_)I =R5E@H~ R9Pi]( @ hNy3} ATk]@~ѢM3 ̻-L )=5 [t &j5Oz@H.,IQ 8d 0l-"&v.,CA`Ͷh8@-@`>ۗC@@ a*[=R@@x I(>|N@H@z՜򁊮 &vt5  "yO|AhCbJ<"0%eArqy2$ydl @ Z"}zâ)k|7]HE(  ?ߪ!x5~wg/(LrQj3 @Lʊ-rclCh0^_:t]"7233\Kd@@ As|M,OK-Xxkp|@0$Gho(>w QN'y]KNvźڴO(   hO5H`rmmNjT;[z̧Zr= a uB^۲S Gf.vTX '95%͵)K|9. @FȖ ~vjv.YROp>RW5S;   @t:+%=hlDj @\zQh J O@̭RTCrrbw|]Z@@ zu;ߙ=ZOK'0M tVJ9W+KIBz·=Պ  9C5T箆##bX sE@ )M_AVUTJۑtq8StWq#}M^7Q[Tff@jC`zX D&#Jijdb/ kxk"k9;4-)Ҝ\   MT66 &@@@@@p[ԏ     M I@@@@@ 00#     ` 0o`@@@@@̻-L     0D@@@@@mn S?     66 &@@@@@p[ԏ     M I@@@@@ 00#     ` 0o`@@@@@̻-L     0D@@@@@mn S?     66 &@@@@@p[ԏ     M I@@@@L!9  @sK444JSs}?33Cr$//Wǐ'B{s O}c&\usl@@vZOx$?*qO3C 6"`/pV?PAoPKm sG\Gjx]/E@Hl3(gIn+.'^U改.DmGW[K{K{U[]%qhjj@* $otvR?[Μr;oʏm֊zYy2<۱̜yCrԜ 92yLn[l{p1>6kdDy-W3N46gޭ;ӎ˓_oU5mʇeIR^j? @Z؃z-:E"+>AJz3R3z=H⺀+i?.p=zq$hm;*;$K;zI;v̾m{U~d 7E@ڝ yQPw/eu35} N pz|@2"@  ?K`>[ˋXRhsGL@9O{Dִ)Gby)nGb\g@ |n{Am4vGX:oo#^um;{Bal[Nn<''OwVʡ#RT=h报")a; jSEx | WzD'vY7O{D{nF_'{n'u"م͏=ù7 ^/ZU/dɬ)w_^:(wFjR*K/Yu`^u ;7ISKI|:u @ O޶O|IҟQS3Oe_P^vnم$q=vnW.<vnم$q=vnW.<8v]͡"k4y43te;TTMrJvf7t~x8fG:Q]7˨{֩!/+6mOM`x2a{E .8icY7[/@d (̭ǹ'Dl$?V$.=}7ܨKQx07ܨ3D]zh7ܨKQx07ܨ3D]zh캔!P^1qH5P^rv:ݙ}5%~zy7pkGJg_V z>ޛ ۴oOxco11<;q`w\"HU!(+IA Fl  =H垯g,#7.)~L4oyuidʱҫn=ǻnَ&i`1}ޤ ˜iz?ٹ! @ _c5@BP@d䘏̋@@@n=KfFÿJ}7=mrI{qc| G[8C,](G=kY: 2e'|4\%+ϯHf7K6&'v?X,GXcκA?*N3   _ F^;$յmx&֙E1=sܶvkoz{7YnnN=&{Iyƀf[:qXg>{Jf@8 $7{G'(Fi-@*n~.@@]5^_AvW5nh>*nir4Lrs]&4H{۫޲ő޾.1y' no+u&+@0ɘys>;APBG=R3   ઀T3oΞ:#w/tgyrp4|{)4Ѻt2^账Yln' Ncm\eֆL  $mp|5"If@@@ 25<*vWFpva##ʳ9n㱃vX?7/+I#_ϲ jG- W50SN.76:0gΙoN$7 AnNN.Mﺐ& \&   Lם](9Yt1\0U)0rƗ8ti*gWo9 =,9(?|hyY t,8' 'L9;H}׻yJ-Z0+`3 ֆ);   h o;n,?[|^ަ_3v5uՙFE޾•)h x\s}b`HM5I9xcX Hc[@ ^2&,A@@N`anwh;o)o5:̱il =H8̌IO.يY@ 9 'Gq#ΧJ@@@-@IDAT۷t/-#2sMgsWLiaMy:`C<>PݾNO=?x9)g<מye-?~wPXc:x,HD@kNEYEA t;j#xY]vMJcz,ڣsGb7kG{t/{Ǻ=b}~U<SRqbKV'@MсW+[devҢ ?$[O-h vq}6'(lb!濇w;7d 8GqT   zFs'I+@0{ysB'w{r%@`>ړA@@@@      @: OZ@@@@@.@*(Pص[*޽dЀr).*XStcxǮ=aR]]##QƫGY>߶Sv#}!guDt8Va򴵵IKK9yɖnݺ91X g"ܒ)n57Ȗ;dJ£GaCIvvdm޲]Wž2b`2hdeg=\Ik;%H^nn-{^Ͽm?)P2 go^2I7N@@\ o: ~1]qz.6#he?>Z.ݍoO9E3\=u8jGOV#G]}"޷b|ξ`2_sСŞi 4⒙t bZ58عǾX_'Np,c)XqsJ;:y|K7vEz:(ߣc 1wUk_ # >dW7IǾ,6ye۫ kw|W ֶ鶑vTw\6xeQYCٸe ]ߢ?cGO=w   @\He~I| ۗۧcQtoh_埬WՇ_+ko ȤAsʃ>0(;i_{K~Ģ=9}nFLuY,ڣ:<X@_!hP^!?K_ 0翗ʪAaxM~T/۫b<ҫ~Ayu(5ovC~^u7 6Fo՟9t_    0U-X(v첶֞W6JrXv˟c1:|Ly A.̳ҋfi!Z,ݟ*#oy2oBk8aXO=')!4?f[2U{xkl6'bjݻK^^nHSyEvUɻos:nHg6y&=cny?nwgNž=uCp tM4uP]?7ڻW;ZH)>kb,'3R o-5ya!   Е<>ZmNk˂|Y/>d0n5:|bkA5(uMWY*W^zԣVi2z𑧭`MR<`n˼W Vqeօx< ێFrDkXyƷЅRk՚F?|>+eֲLgfيUe[͟o䞷6b#66WrIi>TZPuPf^ڛpgQKKl2RՌ>C}}57uo>E4N{WTVIYi   @W Н+ ;w;鎠5bgXs'ì;W^gh7W\w,G;mSB˽䷗}#@,YFZ[i&:U{Tz* Y&p#(ɜ/z#ڞmO !ۮ \9ɻM mb..c`^,W_v׶<쫰4Hn w=3mtBp3:.?/OΜ:پL9V0  t=À>|nCcցJKe屔)@s뀰ZbQGcc;h@lٺCgEAYyݾޜ.lk}ZE{k3z>>s֢YCOSK#DڣƖcWqaE@pnhp5~ȿYּ}"';[1@ mZǢgyc=3,0'5t;9\fOe.޶Q:ﻟ.   ])@`> SO( U_:B?]_ Rx2bR<,4יӱhϼ(zD⒙LU{5 k@l_EgEYЛ:n70j{UY'txd 9hܬ`dYYhpұ@,ڤ#ZYWow|mmcYYgm$X36lv,׹c%3   @vgV9 XAi꣏WZ9injbB}w/h=YO4\|]U5e@#v n 2?#;`S'O/p_*Ḡ&Us/[{tcJ}c957 uPW-K*MǍ4WZM׷Oqf@@@ 0q fNXKI*A+~lu-ڳS'Y&D*ΞY^rriveYpC|)F1Ԛg"6Gm]u?:r^or*ОՋ{Nꠕ?1^3?&MCIG逻7n6-7L( h:: SEAZu2YWOWM-h/1  Eo1`y|.0nt/*utT /~+^_)d`DLїoPK\C:(EZd56(;-hmms~͠(rʉRZ|"w3s9;8V%#w5X:Q[AUm4ɓA*عGP &B &UԳg1Yׁ -t̞s<ݚOS=SO$C / 5_r rl    zwR};yr.h'aǢi^7O]RoR9|9{sҫ۷&NHCsl?V\YLt^ ЧFE'7n{n]{/Ϻ r_Y}WT쯒~W+Ȯ뻷K^ncfB{k7$'L'?}■w?s>چm`]sqFs[>V5]yoYusriVyվuNygs)   @<G#yVIr셋?-۶[g[# 1uX':=zPvk)hiw4=N.ϿSxRטA1ő}]~<(=46tkari'?$`c 綛|7o~GP^!w;ͲpRsI|%kфrĖܳN7~8s˛jzߠqcgm7\#qG{}Eꀵ @@@ o8zsG˭\z}G Ηeerг @@5 '4(HnN,D,utY֠n>d:>޻qrY0((8 0=l $?ۍ4SU=iY<Y kLi9kR3^qctj܏vV_~M4Y2INZM!+ ݵW\ Θhmr!c     /a7Rk,Xر>:9e3ӦNGzǢuo>}uT'V}r߯~@ %W[_vriZ g!r]g#'ȡm")yF`G$Ͷm&˂c~åOio# ^ٲu"gC7SxssmjX5[ޢ{78\?+X%: _evک #O>+l?lܴ:`(~@@0I1xO'm{  00 TyMמ`fEf]nimZR26#-Gߑ|8VfT[3mĪ=@. ¸hGӟ&ey^z W}Z#z)2l +䟳_Vٻߺh-4&ɞo~ǰ}}OǪM>X1f#U]SSVaug fo+3^+*c.AXK+@*p@@@@ %nQ(qQ)@`>@@@@ !{U/O8N5)mMA w p|@@@@^ԧ'mu;PIS$0ҢLс^mI_%$\|I@@/hm;*مm@p]@o]gNg-3s[@@@ @Yq{?]׳@J3+ͱO|9W  @B964&p  g3Jzkpn w[@@@ e޲:ٶ%6,D@B@?g-g8.H_\9  q= [Λ`n5G@ }4(EgBAmu[@@@ .*-M'S d\PɀAX Ё^51{ʟ8@@ b@@ 5ZkD@@@@H      @:OV@@@@@F|4'     ӡF@@@@@ 00M     the@@@@@ a'LSp"      @`>ZkD@@@@H s"s1]|%nعQgpnعQg܀nعQgpnعQg܀u18C@@:)@`/忐%a aFa]L l䆝uuXuu1)vnԙa]va1   0)RDrSbJܰs.fܰsθuݰs.fܰsθubp  tR|'_ ;+S tD.օNͭhdͭjΗz@@@DJݩXZ[Li#nϟ@@@t 0-]ҫa8kOGr 9uVGWIw#<ڪڣ   $Q邹֮hniFijnֶ?T  @bOv,@@      (@`E\F@@@@@W     (@`E\F@@@@@W     (@`E\F@@@@@W     (@`E\F@@@@@W     (@`E\F@@@@@W     (@`E\F@@@@@W w   @<mIeU7ѣGq@@[nR+%2d@_ݫ0 KL$nƇ]>&Rp.  H`!OM}JbT{լXQn@@`2i¨`|l= @@"X*ٷgQ}gtN)@8r{-;<LJY!9zwΏ@@HXd1o/ϓS' ɉ! @j T+>3R5=S肒9!  SL_CP> KD@ Ac~ѢM3 ̻-L   P@zբk)  EYD?h1?tѡ9L Oӆ@@@eU4<@-௩ݾ qu-g45Hkk[BSO"33Cr$//Wǐoxٰ@o\JA@-`~&1?|8~j tmD0-jj3ڿpXԦ ?W f3#?xGa) #pQv΃\) +`~&1?$rf 'Th*c GB{'Uٰ    @* OVMkҞMM p&q jfn#2Y#ak@@@@T 0j-ף9)yCźщѝ {!   Tjvn%^%_q    @2OVJsljnI3Nu΍:G3]_jG@@@U|b]vnԙڭ:L!   N|, @@@@@C      0;KjB@@@@@ Dl     @Β@@@@@)@`>$      ;󱳤&@@@@@B I     N|, @@@@@C      0;KjB@@@@@ Dl     @Β@@@@@)@`>$      ;󱳤&@@@@@B I     N|, @@@@@C      0;KjB@@@@@ Dl     @Β@@@@@)r 6him{{[7Ky>gٺc6&}JK_w<t,pQٷJ>ߺCZ:x (+ݻGvi vܜ߿LƎ!= ;>hjjϷ4~VH>2t@٣ V9rD[U94    $@d羱@5lgWq\vLv444e/mՠ%0=쫙 PWW/>YQ4x[o~׷*'Ȫ5uF<[~т%KW͕C]|4⒙R~2n~G@gw Xn3    @ D֥8ٮ.[R{USs^HN_x/(opm<=eYi}1>oe>_AV\볷wVo? V;mE{S:Psʃ>0({k/_{K~yo-Ay4CP3V    $=h' ޾ڛl^ҿo446zt6_/tں:yip̒iWVI{>7zk.'eO}# ?H%4rP.l;v{69ZY=:IEK'Fpoʕon{W^_ /deeʸ1#=*tC֬L׮$c|[uVg>߄;!t(?^PĆ *"* JA.EP=w`&3&$d̛7sfᄍ_s)  @$ aެubKorVcOYuVIFyӆsUd`s;EV^'ժVZ&5W]" Otpҧխ%-Lrȟ?c62}8y5:nJJ4enML,aަ,+uj6#ȁԯ-+6䩳E  0ln_享/u2oqsYӥ{ ;MY;$c[2}l$y;h/+tjRGt/Q…SA@X@|y^j;X`^<+S"ormMܻo϶.ҸaƃzFM3f[o=]\<>ijg_xY]2쳷P+}|5|Ӽe& *  Q7l\v)3I;(tm8m99ųjZg9|rE=Ayذ~]UNSl9tVRbfdoP^ۮеi2z܏* w v/X?F8;SV]/:b.wv'()d&&.:Q"3n'  ]< ʧ?LN׷5.C^|+Cuu}zgowKhxM[s|p}÷_;Ɖj0iJMi $@`>n7^nfVwq?t06:>P)h6)^лϒWQ3vgFֻ_˼֯NM̩3hcj"}Kn^ֿʂEK&~W gn.]Mz"m>@@ ~3?wdFWfxg&L{x,l|ɾmդb2fi}>8q κ~/,kښ[o";vO>aOP9ZtC]4mk/<)W^w0@h/ogi PcGO3Wx_Wry+^?E7~nP@@ MiΘ:DYl x'<ڰ9p7u怤dL@_~|N0]|МJRI[͗"J48t.oiFrUm >@@ bJdg>ye7e+@^-:`XԵtHx :볗Dv0y f+ݻu|Y{ ZKoveʔo^FfwVfQE:b.fI ^}jj`m[?X! `oFojvTg[t6+V͛HiShR 2Js۷١^Ϋ}%]|ӫ5$~o,Sn?fܵK6l ug2׎ Q&}LZH*T%'*U݋),KXf~|w Gk8(x/=_>?|p'-̦ɲv^ T.6) _ykN{A7$TVYtX5E/:X>΋Ո1r]+Z v]~wVRA@2!@`>h]tb؟tVś.IQsӯ\j燏/W]rk~A?A~w{75QNM+%N{dZʕM3[S)5i` ']nc~9:5=PbE=Y@@NFӇ̨Ç=hHծ,*XP.9D;Lý>k..ŋg[dSt6>ʻn֬\mU%6oI@PdRiVU[  FO:ٹEr֙-P+:. 2/rм?>kMVpzl.:kfˢ onظIB+:,tN>k3 JH^ߤ撿ꊋ  @O:DGs땟Ѵ4_']&o*4 /DqI}7n"wU\ѩSf|1lE=n 8GGi5Zf'wm_duvUV |HYcj9y#کU@.]CD@b]`rGχe}EMDGg8$ؼIz>w*" ;]ؼ ?w"E2st* ʿ➼"uI^we(ki3Jv?e/rӪJmT@@ M~gPߌn}s Wǩ3\Kb=+b|!Ѽ]܌ҿeftO϶?뻚.Sg[{N Σٸa]{>Gu 4v{JA@Hض}yO?+`kխ)/fDwk]+iK=~qg^-_ou6:MIYE `ltþM]9v3 d#C=||3{3Z%u֖Kz鏔m_d-q&O%ڴ-os~'FfP^OSfu'(lsM.oG<իztIGy6z[f"{_X:ܶhSڵi)SϱIGh鈯h'wо5  {앻}Ttdt+OԗӽtWY3˛6'[4:Z.%Kg*֭O {V7^r2)!u4;I%brf*M!O34iT_,Z".J3O~7v"w!F  @Ḟ5~d}s _/o^ڥԀ@IDATA2bgXͫz:)Uyxf"h| ؟*#Fqg9y krJ~8TEd굞QJҎ/_^uӯ,^<5y!1_=d s_d-dr}ao4 )_5ᱦiZkFL%mc\G@ h}ʟc\)HOV^|]+߷ݢKMe։Mo$u̼?nŝ&fMi^ ^M_% OW|~|7fMΘ}ϴC@ &ΉmwLJ2Ӝ#W.:ӃL~}t k@7[Ax{qv,n|L ~WG8eL9@v c|xrk^;7^AyQdȓ4+Y|@#-~_P?9k^._VԠ}C7>0]<5kYlw :5iԵRv gYGXY7gUR%̀2rTڙyJH8q2{KW Dn;L͏7q)S*Ir)}ޮJ&JK.RI%ݫ42g< :ki_uիUG!mZ5;uQӬ<>Z Bsy.*>h>nP<Ѽܡ}=47.2@& ?55_}V7GqD'ܭZ} |" Y*6pujJ" \v|+v\i>|DJ+*M>TOѲDNrveqA" Z)$wztB3g$l3y\RV^zg \|~{?ݼ9E/jM(`G< @@xu2rLH)5ip1|, rI{4yod^'GSbCן|`缚7Ǽn.2V;]~7.~y .]ͺT1ϓ:'pDYA@BYC2ʖ2m ';j,ͨ;`Q@@ h  /HKuꚾw7rV}ǍN`^G_ݵ:v+mۭC褧xi~ :#MVf wShͼ}ok)c~cA :3-p;B@ 0#  @ L<-أlp kSrCOZm4G|Ǟמ55`AnذI{E|qMn˕xu3?Xu! @ x7Gp   @xۃvɛzDt}Ó^{{T9:_iart4_fg]|y͗ =O<$kԯ=orZn޴脻v̤W4]4m@Ȭ@1S23!O`dY@2Y/#DͲ~8 @-);&%͖A|}b =zTZ^^vt>*fիdH")[ɲɆM[DˊIեHB>;  <;̕"  1-#֮a,Dbꌦ'{G@bJ l.@@@@@ 03@@@@@ F@@@@@rF|θsV@@@@@ 07F@@@@9Y@@@@@bT|x.@@@@@ g;gE@@@@Q1zl@@@@@ 03@@@@@ F@@@@@rF|θsV@@@@@ 07F@@@@9Y@@@@@bT|x.@@@@@ g;gE@@@@Q1zl@@@@@ 03Q}ք\Q}}yqaNp:6vt7     =^͕͓;li8ffeV@@@@ öL ϟ/SHve1c^a+wD@@@NSg˓;A  8ћfjՅ9 {!   Dhat-EyQ»+jfU@@@@ G I,^!V] Zoh    Y7#L Hmӽo~9p>|$NJrN,6ّ&ÿLNa-    @ ;ק| =C@@@@BQxS$@@@@@ 0!    D(\   guѣ] Q.`?(Q~\^ @@UYsX%@@ g%FWP|T. @@H(X ["@\~&Qr 07#  ˗.}kdݱu# @賈>hQ [t!G@@gŋHJe.]'pY @(Р>hg}F qLp|@@8[RvX'MJ,zO3ΚX6mfQZEP6I. ##M@@ :ѫ5HIťu3p"ycO@@Z RprYzCX{9@^)߸~@,̇-C  d@$n)mg~ެwQ@@ @\\,OtW)OF^=G@@@@0v.     @d G@@@@@"L|0     #{@@@@@ 0a7"    DȾ@@@@@ G      -@`>G@@@@0v.     @d G@@@@@"L|0     #{@@@@@ 0a7"    DȾ@@@@@ G      -@`>G@@@@0v.     @d G@@@@@"L|0     #{@@@@@ 0a7"    DȾ@@@@@ G      -@`>G@@@@0v.     @d G@@@@@"L !Kw@@@ Jn)mg~9vX^) 9-' 䓒ŤrRx18nt.@@ 6.4)h_%e aO: )PRYi\Ft^WB@@Y˦-۬ QT($E x2oο@S+pQٹkݰE o~iS[υ# D@$G,_Z4#Ŋ! @ l߱[.Ӥ'aJ\. @@pМv| -YD>3  0@@ DZ4} #@N>3Ĩ\6  9-攧  9-`?(9ru  D@@ g%[|t_@@8vշxMc ĐLb?Хs9 psJ@@@@@ 0+G@@@@9)@@@@@bW|{@@@@@ :D@@@@]{r@@@@@ 0@@@@@ v@@@@@r@|sJ@@@@@ 0+G@@@@9)@@@@@bW|{@@@@@ :D@@@@]{r@@@@@ 0@@@@@ v@@@@@r@|sJ@@@@@ 0+G@@@@9)@@@@@bW|{@@@@@ :D@@@@]{r@@@@@ 0@@@@@ v@@@@@r@|sJ@@@@@ 0+G@@@@9)@@@@@bW|{@@@@@ :D@@@@]{r@@@@@HȁsrJ@@@ spu%Ez+W1'ɬeuVIFyӆRiA?M?ڥ\s؋i>L/:~mi6YQziuFS?[kٿ2yLy/٭,w븸8)Z)$֓:   o۾zŁ )  8z|yVժV >sޮL蟖}˵/7eǜ{}1[͜#|>ʥup`YAy=߹ /}tt< -g9g_}'_ 4o٢ yG  dT &#;v{xB9\pAA@@NV`GGRu7^wej[?ߍMij0iJMi $ց&h~CP:c$$$xr'~[mJ&r   L.:]7IU~?9Y^=Ld,\wҼA4o}./ޓ/(E]2z$RX@M+8ύMogy\κΝ w.UOX[buHmi *3[5_h[' Ջv   _M֫OK$O~,T5\׭]w\JjoнhRnMm[I||z3g*&LPtwq俢A}XKRR N|9m[;g]nSwWcŀÿlsﬤ dB Sٔ-SJ>zŀ_yF.>o{3#MYy5"@@8Y=K xPJ&С>|گ[iWVunW^2@4MBB.T6ʾ}e38M?|h`;Ԣ#R*)uÇEGɓ[KOYYTs(M㯔/WFj֨&cI4x?o"9ycMuբ#۶i)þk-@@d:0 reMVT>hb   p<ʑ#Ga׫S˩ەRIrM]Š~@F:捂ݨR2,}1g͞o>;l<= xaM@+.t_3&h`뱮 Y!z@@ ̇riU͜ZB9I7nYsR*Ud-֓?,-S6oI}eF[t0Zw5kVɦ]uiP^,랚pYnٰq*X@Ljuj4[I_ر52g媵ğe9NwRͼۼY#<;ǁ-?Z.kl$srnRJ%@@T*OM;;gVF.`?+OYhZ=oV[h_Η{1&4Mg8AVٻe7x~x-EG){>;0;T@@Wg_u:N7m,/5]+.hMtu׻%NcSI~ ڊk}g;?tT>>e7yc!ӥW[ufiY Oy(ՠ+o| _pϷ ?f^ uj:+Q?wv}!`E7w&rNpKÀGc__@@Z`μE2šN]?@iԟy g}{IѢEP+[/u}{XSP!Yh5`sgކfS 1FzҖ`FߙFA49|˜y cjzŊ6a@ȴ@L3uayg2utJɤ;#P|w'4m|kٿr:)9|*zN <YuYDztonvzIG#ksk~]XڧS2쳷w:  9!5<۲E-۷͠<`O3kn}N6~0y{$/tHE{>֣P뮾L0{´sIi2kQ_z+n'  Q2o{Ν`0%k};>mׇ]ާ ">p'@`ܯ_jg>,T;A3&g0?}RWT*{9]7I5V&M3:ZiۦV ]޽{lX|A t~Ԍb*q[}ymGα?~n- o:ZiҨ=\cM[v5*>@@+~=;֔O3;#~OgMRrik:{Mq~;}&_ h40eطc=c':I_)  @V Qk.? 6A?G֮ʇoyՀ 3{gC~wm^/m^%%c=.]o90f衤уi OڝJnnNE'4VPAk䔭:udNĪ*kZm[o"5Q~L]0ٽ(ڷ<ɑҼ)oϿ^K_U %iL@@S(g^+=7;M͢]}%|/ok^&]#5-̠,092˖)>S w'W]9aCu}6vf@@QĴw߁XзK{s-R8~}jV཯9/Jt8D'XRijk׹2S Av9z]=w"]$õ/s|7fd }HlG@BQiݲiʗ4jP׳^.z'WYyyCR͘#oo]u>uJA37l{e߅:95']\cH +]_äq CA@@ \4 cFCޘMNﯼyKXzez׷_phڝ`eҿ5[7M^-#V]-:(  @v0b>U4Ԓ/oހM@eKrgTtg=jg~{G ~ ZWqؕy=\ Uxx8IК_ \o_wtrV7*Oϝ;w6@@NC?c~p[KIrz .?y㝏EN|JM.^Ycu۲<.󯾳ĮÙ6{jP^t ; />yF8Nc*  @g,ôoQ*6yH8Wx~ǎ'~I trǭf~&`t)w>eGɓ;wi6XVZv\'  )@;xOgZ).u,{|Eskdbq5?OngЀmr8}jMXоizlNݤ/  eiQvr9rqܵst_/z@}|GE_y TJ8g޾L^YrIٲ'v4BE5uדfV   'OKӋ)&^ |zra&s̹֡蟿6\y'0]~6w  yYwU=^2rf[(g%Kx.g4#}greK6ɒe{r&V0:  @S7͓org+Y|&ۉ+LH4loyM!fϷY\I2hkҋ:3XT+Vjrq'R>iWTD&43vP}]7:o& o۾SH|F ;jT@@@@@T ?AΧ" eKEΝ.bJ˝YчzOKE姟{i#>sVT*W*/ݻuYsЀ庛{yE#      @ dnlV}K; pZy;:tȽxRu xw47rBú&'d5):zP@@@@1˃KqGɝ o{|=beN3[Hۻ}y|[m?ԯWK}3F;֔.W^"v#ǛLj׉qoj|E~D@@@@N@1SNʼn8Gv-7m;wY(W5Il\i;C:plڼVޗJJ3vlh}_$ˁhR\+76C" a/%eǤĢaOuŅge Ğ'wsCΩp4E  )j*U,oK~ÅQ@@@@@p ^/@@@@@D|H.@@@@@ 2G}     Q"@`>Jn$     #>K@@@@@( 0%7@@@@@ q%     @e     DȸO@@@@@ JGɍ2@@@@@"C|d'z     %Fr     !@`>2D@@@@Qr# @@@@@ 0^"    D(\     @dD/@@@@@D|H.@@@@@ 2G}     Q"@`>Jn$     #>K@@@@@( 0%7@@@@@ q%     @$Duhg -qy ȧl.vn  @t޽_SK%D1~$ '쓝J`  pD>Pn عK6mNqL.$ HBB[CC@@ s>|X?h{My5D.(E΁^)K&k7l!0! 3LEQ(d@nn8R 'Ar`<@@pЁ"PIcSzfM15@Lt4}|ѳWe 5RlyO@8w춞IBA ""׀J*!eJ$(28>  I h^]V>-@EJ܅~!  Z@AYD>3 3-a[4UbE#loC@(}NټeJ$W8l5olڲJjE `Bp9@(Љ^5ѷN*.We@7lb5:ڈ  @ lܔl a˖NˈB,\Jk(@##ׯg NҮu,-S  @$ 3=!lbbd|xaj&+Ϟ%_Z ~`|D B?HV}<(5[pp@@S ϴly}e"X/~!Kׄ%@@_o*X :*@@mgݘ@@@@:0!͗[  @T϶nT\  #GI0R@@~֍k@@@ ca/%ή  @ l7#  ς      t@@@@@ Vʝ:@@@@@B|X:     +cNs     a!@`>,n@@@@@rN@@@@@ 0N     ĊX\'     @X@'@@@@@bE|i@@@@@ ,̇m     "@`>V4׉     6 @@@@@X 0+wD@@@@ aqGʱcDz$@@@@@ d!SE^-)ri.ݬvgE|?q>u\{l?_<ԋεϙ(XS!    @ $𵟲K_Jòuv뜟4g̚aw*+V[k;N /7\I|?SU@@@@pRd fOpvEȫo~hJwn&x #۵ĭLdNģ+nrnG$C^*޷\~IG=h* _>gUM5gcviuF4#mQ.ƛ4xL9GEAyGǓϼ":ݷdKAl!>}<(#|e'XfϷ6n'    D#fRsmZt(X--Wj׬&/NHedu߭/@ף:ӫ|1l,cLGbkwMD;̏?ϐ:km7uqڻ+-v5iOҾmklݶ]od{X kiѬѼTTޚPF8nQzҹEcd'^M۵OsAcNMJVͥq?l~ߞ1Gk8Ǥ Dm;eպMotvZ^zj\zh=w8xn'  i ,7Oi}  y:`}֟>TTVׯyB#V#Lt:u ĻLv7H֙IXҦu3'(o\a?`ww{wnU5 ̻q# @ Hy `H"0 D@||ܡ:(`?g}6a|H1lkOMAsť%o^g}}uolR|5|Fs_V䜶 4ȟ?K{jZ]o޳'s__iUq׮>.T0`4~?^H"ݫzm'EZW̽k>Ͳ   95r  DY grG}^;vA7'ʗFN;+NT*THu>aTy^u]ϒٗ.p&Ց_eaԯ-sߑ %9EƘh̔9fĿ]DŽ,ZNj`Yd, =OfYaa>֧%JP^s5s-s DNE0R>Jn* @ 賈>hZ}Fa2mY|͜ G镟~):]'ujՐߍ{R& y-ҷO ur<ꧦqvB5vwƓX ` []ZRf6n$KX @@hHN9>C_  9-$Qr??g;>u|F=j4y_sknrӜ,s=Xٶc<7葐Ff[ͤܳzR*)Q *$ 0m'u닗oݲ jy,g7;Z|g9*Ye۟K/ ?3v^}ȗnMFСruw:mu{& zlR> "E 9{0=  @ٻNJA@rZ~&Qr??gMN&SgvبA=iѬ[{NE/5kK |9˵kVkg9x51o"\ˤ˪;I}Uf̚l`&s$O*Ç;U,\nڸSϊʶ;aC]b YO6,#qku'_{n.KD+*#0u  q:g: Q!`?(QqQ\D d}3l/5;6i4$KN*?,wvs`ܺݨ N.cH)et]h@Z筿'yY<:jJu:l(e޽N8诃Ms/ٳדn͙kꗾr~v~fEswZiwv+'OIMѣkK\\-'Mn7@@@@"T p0B/('A&qmڜ,FKbEcIi]b&& NvS5wZbU/ѽÐ#N??Txlv B{>{EYsW>A @ @ f̷-_0ߩcPU>,fM @k@N%Auu @X:{\?,|wQzy> @hT`En:R4|oaM9o>Ǯ;C]|K- LGI6d7V<\x>|wŽoluaOh߾]cU{3L/,x9ka6& amPN'aޓO٠jwԫWgۭfn|z_3gKv۷k=fpaXy6}gz k @@Y;_A!|MY70 @JXl '0"mׇ~p˳@zzn3\~ya]\aK_ټ^<N=m\x҆t9hsO ]IG^idWBwC a౱/&kIeۍmćFؠ̚D(ip{/~|xqde|a(SS٤S18o!@ 'w.oA4xeO;DOSFbzw:NPтe>q'jpuZ,sʤH|p:Jz?gt<Ю&fL >90pYlk~ukkkk}*L=|3 <,Dmjͦ)I-m @j f|zKfEo,0y1lϿH{`M @q4w]ŗ^͂q|L[p4ws6=q! ']6!t"| @zo!CG ʏ>eD8fUigN g{q aEW5(Pѵ_ C̓q:o&~} fYԋA'poge~OWmr\+v8{)akk%̈YUm}ԠI#5L}Z2?ξ/p}ם_X{YK&%{=7{CN-Ozۊ, @D͘/8{>Dv 3Qz~\|*Y\6 @vbښ-$lTHc"(_~Šqv\Zodb^ڥ~1ЁB/eY{M ׯÆ$u~<~L!M6[?ehMu >=_b|vΝ;#8$;e˲!CL'Ïjt;ss-  @ v ˸ @ @ @`m}? @ @O@`>c @ @ c @ @ @@7fzL @ @9: @ @O@`>c @ @ c @ @ @@7fzL @ @9: @ @O@`>c @ @ c @ @ @@7fzL @ @9: @ @O@`>c @ @ c @ @ @@7fzL @ @9: @ @O@`>c @ @ c @ @ @@7fzL @ @9: @ @O@`>c @ @ c @ @ @@l{Iv8IENDB`assets/js/form_entries.js000064400004475563147600120010011533 0ustar00/*! For license information please see form_entries.js.LICENSE.txt */ (()=>{var e={36890:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>L});var r=n(88239),i=n(72444),a=/%[sdj%]/g;function s(){for(var e=arguments.length,t=Array(e),n=0;n=s)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}})),l=t[r];r()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},m={integer:function(e){return m.number(e)&&parseInt(e,10)===e},float:function(e){return m.number(e)&&!m.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(void 0===e?"undefined":(0,i.Z)(e))&&!m.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(p.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(p.url)},hex:function(e){return"string"==typeof e&&!!e.match(p.hex)}};const _=function(e,t,n,r,a){if(e.required&&void 0===t)f(e,t,n,r,a);else{var o=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(o)>-1?m[o](t)||r.push(s(a.messages.types[o],e.fullField,e.type)):o&&(void 0===t?"undefined":(0,i.Z)(t))!==e.type&&r.push(s(a.messages.types[o],e.fullField,e.type))}};var v="enum";const y={required:f,whitespace:h,type:_,range:function(e,t,n,r,i){var a="number"==typeof e.len,o="number"==typeof e.min,l="number"==typeof e.max,u=t,c=null,d="number"==typeof t,f="string"==typeof t,h=Array.isArray(t);if(d?c="number":f?c="string":h&&(c="array"),!c)return!1;h&&(u=t.length),f&&(u=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?u!==e.len&&r.push(s(i.messages[c].len,e.fullField,e.len)):o&&!l&&ue.max?r.push(s(i.messages[c].max,e.fullField,e.max)):o&&l&&(ue.max)&&r.push(s(i.messages[c].range,e.fullField,e.min,e.max))},enum:function(e,t,n,r,i){e[v]=Array.isArray(e[v])?e[v]:[],-1===e[v].indexOf(t)&&r.push(s(i.messages[v],e.fullField,e[v].join(", ")))},pattern:function(e,t,n,r,i){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||r.push(s(i.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||r.push(s(i.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const g=function(e,t,n,r,a){var s=[],o=Array.isArray(t)?"array":void 0===t?"undefined":(0,i.Z)(t);y.required(e,t,r,s,a,o),n(s)};const b=function(e,t,n,r,i){var a=e.type,s=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(o(t,a)&&!e.required)return n();y.required(e,t,r,s,i,a),o(t,a)||y.type(e,t,r,s,i)}n(s)},w={string:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(o(t,"string")&&!e.required)return n();y.required(e,t,r,a,i,"string"),o(t,"string")||(y.type(e,t,r,a,i),y.range(e,t,r,a,i),y.pattern(e,t,r,a,i),!0===e.whitespace&&y.whitespace(e,t,r,a,i))}n(a)},method:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(o(t)&&!e.required)return n();y.required(e,t,r,a,i),void 0!==t&&y.type(e,t,r,a,i)}n(a)},number:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(o(t)&&!e.required)return n();y.required(e,t,r,a,i),void 0!==t&&(y.type(e,t,r,a,i),y.range(e,t,r,a,i))}n(a)},boolean:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(o(t)&&!e.required)return n();y.required(e,t,r,a,i),void 0!==t&&y.type(e,t,r,a,i)}n(a)},regexp:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(o(t)&&!e.required)return n();y.required(e,t,r,a,i),o(t)||y.type(e,t,r,a,i)}n(a)},integer:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(o(t)&&!e.required)return n();y.required(e,t,r,a,i),void 0!==t&&(y.type(e,t,r,a,i),y.range(e,t,r,a,i))}n(a)},float:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(o(t)&&!e.required)return n();y.required(e,t,r,a,i),void 0!==t&&(y.type(e,t,r,a,i),y.range(e,t,r,a,i))}n(a)},array:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(o(t,"array")&&!e.required)return n();y.required(e,t,r,a,i,"array"),o(t,"array")||(y.type(e,t,r,a,i),y.range(e,t,r,a,i))}n(a)},object:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(o(t)&&!e.required)return n();y.required(e,t,r,a,i),void 0!==t&&y.type(e,t,r,a,i)}n(a)},enum:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(o(t)&&!e.required)return n();y.required(e,t,r,a,i),t&&y.enum(e,t,r,a,i)}n(a)},pattern:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(o(t,"string")&&!e.required)return n();y.required(e,t,r,a,i),o(t,"string")||y.pattern(e,t,r,a,i)}n(a)},date:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(o(t)&&!e.required)return n();if(y.required(e,t,r,a,i),!o(t)){var s=void 0;s="number"==typeof t?new Date(t):t,y.type(e,s,r,a,i),s&&y.range(e,s.getTime(),r,a,i)}}n(a)},url:b,hex:b,email:b,required:g};function M(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var k=M();function x(e){this.rules=null,this._messages=k,this.define(e)}x.prototype={messages:function(e){return e&&(this._messages=d(M(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!==(void 0===e?"undefined":(0,i.Z)(e))||Array.isArray(e))throw new Error("Rules must be an object");this.rules={};var t=void 0,n=void 0;for(t in e)e.hasOwnProperty(t)&&(n=e[t],this.rules[t]=Array.isArray(n)?n:[n])},validate:function(e){var t=this,n=e,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments[2];if("function"==typeof a&&(o=a,a={}),this.rules&&0!==Object.keys(this.rules).length){if(a.messages){var l=this.messages();l===k&&(l=M()),d(l,a.messages),a.messages=l}else a.messages=this.messages();var f=void 0,h=void 0,p={};(a.keys||Object.keys(this.rules)).forEach((function(i){f=t.rules[i],h=n[i],f.forEach((function(a){var s=a;"function"==typeof s.transform&&(n===e&&(n=(0,r.Z)({},n)),h=n[i]=s.transform(h)),(s="function"==typeof s?{validator:s}:(0,r.Z)({},s)).validator=t.getValidationMethod(s),s.field=i,s.fullField=s.fullField||i,s.type=t.getType(s),s.validator&&(p[i]=p[i]||[],p[i].push({rule:s,value:h,source:n,field:i}))}))}));var m={};u(p,a,(function(e,t){var n=e.rule,o=!("object"!==n.type&&"array"!==n.type||"object"!==(0,i.Z)(n.fields)&&"object"!==(0,i.Z)(n.defaultField));function l(e,t){return(0,r.Z)({},t,{fullField:n.fullField+"."+e})}function u(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(Array.isArray(i)||(i=[i]),i.length,i.length&&n.message&&(i=[].concat(n.message)),i=i.map(c(n)),a.first&&i.length)return m[n.field]=1,t(i);if(o){if(n.required&&!e.value)return i=n.message?[].concat(n.message).map(c(n)):a.error?[a.error(n,s(a.messages.required,n.field))]:[],t(i);var u={};if(n.defaultField)for(var d in e.value)e.value.hasOwnProperty(d)&&(u[d]=n.defaultField);for(var f in u=(0,r.Z)({},u,e.rule.fields))if(u.hasOwnProperty(f)){var h=Array.isArray(u[f])?u[f]:[u[f]];u[f]=h.map(l.bind(null,f))}var p=new x(u);p.messages(a.messages),e.rule.options&&(e.rule.options.messages=a.messages,e.rule.options.error=a.error),p.validate(e.value,e.rule.options||a,(function(e){t(e&&e.length?i.concat(e):e)}))}else t(i)}o=o&&(n.required||!n.required&&e.value),n.field=e.field;var d=n.validator(n,e.value,u,e.source,a);d&&d.then&&d.then((function(){return u()}),(function(e){return u(e)}))}),(function(e){!function(e){var t,n=void 0,r=void 0,i=[],a={};for(n=0;n{var t=/^(attrs|props|on|nativeOn|class|style|hook)$/;function n(e,t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}}e.exports=function(e){return e.reduce((function(e,r){var i,a,s,o,l;for(s in r)if(i=e[s],a=r[s],i&&t.test(s))if("class"===s&&("string"==typeof i&&(l=i,e[s]=i={},i[l]=!0),"string"==typeof a&&(l=a,r[s]=a={},a[l]=!0)),"on"===s||"nativeOn"===s||"hook"===s)for(o in a)i[o]=n(i[o],a[o]);else if(Array.isArray(i))e[s]=i.concat(a);else if(Array.isArray(a))e[s]=[i].concat(a);else for(o in a)i[o]=a[o];else e[s]=r[s];return e}),{})}},52945:(e,t,n)=>{e.exports={default:n(56981),__esModule:!0}},93516:(e,t,n)=>{e.exports={default:n(80025),__esModule:!0}},64275:(e,t,n)=>{e.exports={default:n(52392),__esModule:!0}},88239:(e,t,n)=>{"use strict";var r,i=n(52945),a=(r=i)&&r.__esModule?r:{default:r};t.Z=a.default||function(e){for(var t=1;t{"use strict";var r=s(n(64275)),i=s(n(93516)),a="function"==typeof i.default&&"symbol"==typeof r.default?function(e){return typeof e}:function(e){return e&&"function"==typeof i.default&&e.constructor===i.default&&e!==i.default.prototype?"symbol":typeof e};function s(e){return e&&e.__esModule?e:{default:e}}t.Z="function"==typeof i.default&&"symbol"===a(r.default)?function(e){return void 0===e?"undefined":a(e)}:function(e){return e&&"function"==typeof i.default&&e.constructor===i.default&&e!==i.default.prototype?"symbol":void 0===e?"undefined":a(e)}},56981:(e,t,n)=>{n(72699),e.exports=n(34579).Object.assign},80025:(e,t,n)=>{n(46840),n(94058),n(8174),n(36461),e.exports=n(34579).Symbol},52392:(e,t,n)=>{n(91867),n(73871),e.exports=n(25103).f("iterator")},85663:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},79003:e=>{e.exports=function(){}},12159:(e,t,n)=>{var r=n(36727);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},57428:(e,t,n)=>{var r=n(7932),i=n(78728),a=n(16531);e.exports=function(e){return function(t,n,s){var o,l=r(t),u=i(l.length),c=a(s,u);if(e&&n!=n){for(;u>c;)if((o=l[c++])!=o)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===n)return e||c||0;return!e&&-1}}},32894:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},34579:e=>{var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},19216:(e,t,n)=>{var r=n(85663);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},8333:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},89666:(e,t,n)=>{e.exports=!n(7929)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},97467:(e,t,n)=>{var r=n(36727),i=n(33938).document,a=r(i)&&r(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},73338:e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},70337:(e,t,n)=>{var r=n(46162),i=n(48195),a=n(86274);e.exports=function(e){var t=r(e),n=i.f;if(n)for(var s,o=n(e),l=a.f,u=0;o.length>u;)l.call(e,s=o[u++])&&t.push(s);return t}},83856:(e,t,n)=>{var r=n(33938),i=n(34579),a=n(19216),s=n(41818),o=n(27069),l="prototype",u=function(e,t,n){var c,d,f,h=e&u.F,p=e&u.G,m=e&u.S,_=e&u.P,v=e&u.B,y=e&u.W,g=p?i:i[t]||(i[t]={}),b=g[l],w=p?r:m?r[t]:(r[t]||{})[l];for(c in p&&(n=t),n)(d=!h&&w&&void 0!==w[c])&&o(g,c)||(f=d?w[c]:n[c],g[c]=p&&"function"!=typeof w[c]?n[c]:v&&d?a(f,r):y&&w[c]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t[l]=e[l],t}(f):_&&"function"==typeof f?a(Function.call,f):f,_&&((g.virtual||(g.virtual={}))[c]=f,e&u.R&&b&&!b[c]&&s(b,c,f)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},7929:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},33938:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},27069:e=>{var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},41818:(e,t,n)=>{var r=n(4743),i=n(83101);e.exports=n(89666)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},54881:(e,t,n)=>{var r=n(33938).document;e.exports=r&&r.documentElement},33758:(e,t,n)=>{e.exports=!n(89666)&&!n(7929)((function(){return 7!=Object.defineProperty(n(97467)("div"),"a",{get:function(){return 7}}).a}))},50799:(e,t,n)=>{var r=n(32894);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},71421:(e,t,n)=>{var r=n(32894);e.exports=Array.isArray||function(e){return"Array"==r(e)}},36727:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},33945:(e,t,n)=>{"use strict";var r=n(98989),i=n(83101),a=n(25378),s={};n(41818)(s,n(22939)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(s,{next:i(1,n)}),a(e,t+" Iterator")}},45700:(e,t,n)=>{"use strict";var r=n(16227),i=n(83856),a=n(57470),s=n(41818),o=n(15449),l=n(33945),u=n(25378),c=n(95089),d=n(22939)("iterator"),f=!([].keys&&"next"in[].keys()),h="keys",p="values",m=function(){return this};e.exports=function(e,t,n,_,v,y,g){l(n,t,_);var b,w,M,k=function(e){if(!f&&e in D)return D[e];switch(e){case h:case p:return function(){return new n(this,e)}}return function(){return new n(this,e)}},x=t+" Iterator",L=v==p,S=!1,D=e.prototype,C=D[d]||D["@@iterator"]||v&&D[v],T=C||k(v),Y=v?L?k("entries"):T:void 0,O="Array"==t&&D.entries||C;if(O&&(M=c(O.call(new e)))!==Object.prototype&&M.next&&(u(M,x,!0),r||"function"==typeof M[d]||s(M,d,m)),L&&C&&C.name!==p&&(S=!0,T=function(){return C.call(this)}),r&&!g||!f&&!S&&D[d]||s(D,d,T),o[t]=T,o[x]=m,v)if(b={values:L?T:k(p),keys:y?T:k(h),entries:Y},g)for(w in b)w in D||a(D,w,b[w]);else i(i.P+i.F*(f||S),t,b);return b}},85084:e=>{e.exports=function(e,t){return{value:t,done:!!e}}},15449:e=>{e.exports={}},16227:e=>{e.exports=!0},77177:(e,t,n)=>{var r=n(65730)("meta"),i=n(36727),a=n(27069),s=n(4743).f,o=0,l=Object.isExtensible||function(){return!0},u=!n(7929)((function(){return l(Object.preventExtensions({}))})),c=function(e){s(e,r,{value:{i:"O"+ ++o,w:{}}})},d=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,r)){if(!l(e))return"F";if(!t)return"E";c(e)}return e[r].i},getWeak:function(e,t){if(!a(e,r)){if(!l(e))return!0;if(!t)return!1;c(e)}return e[r].w},onFreeze:function(e){return u&&d.NEED&&l(e)&&!a(e,r)&&c(e),e}}},88082:(e,t,n)=>{"use strict";var r=n(89666),i=n(46162),a=n(48195),s=n(86274),o=n(66530),l=n(50799),u=Object.assign;e.exports=!u||n(7929)((function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=r}))?function(e,t){for(var n=o(e),u=arguments.length,c=1,d=a.f,f=s.f;u>c;)for(var h,p=l(arguments[c++]),m=d?i(p).concat(d(p)):i(p),_=m.length,v=0;_>v;)h=m[v++],r&&!f.call(p,h)||(n[h]=p[h]);return n}:u},98989:(e,t,n)=>{var r=n(12159),i=n(57856),a=n(73338),s=n(58989)("IE_PROTO"),o=function(){},l="prototype",u=function(){var e,t=n(97467)("iframe"),r=a.length;for(t.style.display="none",n(54881).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("