first commit

This commit is contained in:
2026-03-05 13:07:40 +01:00
commit 64ba0721ee
25709 changed files with 4691006 additions and 0 deletions

View File

@@ -0,0 +1,195 @@
# Flexible PDF Coupons Pro Changelog
## [1.11.0] - 2023-11-16
### Added
- Dashboard widget
## [1.10.2] - 2023-11-07
### Added
- Support for WordPress 6.4
- Support for WooCommerce 8.3
## [1.10.1] - 2023-10-09
### Added
- Support for WooCommerce 8.2
## [1.10.0] - 2023-09-19
### Added
- disable PDF Coupon option for variations
### Fixed
- some links
## [1.9.1] - 2023-08-21
- Fixed Help & Support menu tab slug conflict
## [1.9.0] - 2023-08-10
- Added qr codes tab in editor
- Added advanced sending tab in editor
- Added support for WordPress 6.3
- Added support for WooCommerce 8.0
## [1.8.2] - 2023-07-13
- Fixed return type for screen_layout_columns filter
## [1.8.1] - 2023-06-26
- Added support for WordPress 6.2
- Added support for WooCommerce 7.9
## [1.8.0] - 2023-06-21
- Added settings menu with tabs
- Added integration with Flexible PDF Coupons PRO - Advanced Sending
- Fixed sending coupon email to both buyer and recipient
## [1.7.7] - 2023-03-06
- Fixed issue with old coupons
- Fixed issue on edit product page
## [1.7.6] - 2023-02-08
- Fixed PHP notification message
## [1.7.5] - 2023-02-07
- Added option to create not only virtual coupons for variations
## [1.7.4] - 2022-12-29
- Fixed product options when editing product
- Added option to create not only virtual coupons
## [1.7.3] - 2022-12-13
- Added support for WooCommerce high-performance order storage
- Added docs & support admin page
- Added docs URL
## [1.7.2] - 2022-09-14
- Fixed compatibility issue with WooCommerce 6.9
## [1.7.1] - 2022-08-30
- Fixed error with regular price of product if option Use regular price for coupon was enabled
## [1.7.0] - 2022-08-18
- Added copying of templates.
- Added new font sizes for the editor.
- Fixed coupon code.
## [1.6.6] - 2022-07-14
- Fixed nested settings
## [1.6.5] - 2022-04-14
- Added char counter for textarea field
- Added tooltip for fields
- Added coupon URL on the page
- Fixed regular price for variants
- Fixed expiration date when date format is empty
## [1.6.4] - 2022-03-31
- Fixed translations
## [1.6.3] - 2022-03-17
- Fixed loading fields for variation
## [1.6.2] - 2022-03-09
- Fixed hook priority for editor
## [1.6.1] - 2022-03-02
- Fixed email attachment
- Update plugin libraries
## [1.6.0] - 2022-02-10
- Added option to disable sending of coupon emails
## [1.5.2] - 2022-01-13
- Added ability to use regular price when coupon price is discounted
## [1.5.1] - 2021-12-02
- Fixed JS
## [1.5.0] - 2021-11-09
- Removed deprecated flexible_coupons_pdf_filename filter. Use fcpdf/core/pdf/filename instead.
- Removed deprecated flexible_coupons_coupon_code_random_length filter. Use fcpdf/core/coupon/code/length.
- Removed deprecated flexible_coupons_coupon_code_prefix filter. Use fcpdf/core/coupon/code/prefix.
- Removed deprecated flexible_coupons_font_data filter. Use fcpdf/core/fonts/data.
- Removed deprecated flexible_coupons_font_dir filter. Use fcpdf/core/fonts/dir.
- Update plugin libraries.
- Fixed coupon code.
- Fixed email date format.
- Fixed cart validation.
- Fixed fatal error.
- Fixed currency symbol.
- Fixed expiry date format
## [1.4.4] - 2021-07-12
- Fixed own coupon expiry date
- Fixed date in email template
## [1.4.3] - 2021-06-24
- Fixed coupon expiry date
- Fixed email template
## [1.4.2] - 2021-06-02
- Fixed coupon expiration time
- Fixed email template
## [1.4.1] - 2021-03-31
- Fixed coupon expiration time
## [1.4.0] - 2021-03-24
- Added support for variations
- Added coupon code settings
- Added field for defining own expiration time
- Added 'fcpdf/core/pdf/filename' filter to change filename of PDF file attached in email or downloaded
- Added 'fc/core/editor/fonts' filter to add new fonts to editor.
- Added 'fcpdf/core/fonts/dir' filter to manipulate PDF library font directories.
- Added 'fcpdf/core/fonts/data' filter to manipulate PDF library fonts data.
- Added 'fcpdf/core/coupon/code/suffix' filter to manipulate coupon suffix.
- Remove 'flexible_coupons_coupon_code_prefix' filter in next minor version.
- Remove 'flexible_coupons_coupon_code_random_length' filter in next minor version.
## [1.3.1] - 2021-02-10
- Added support for WooCommerce 5.0
## [1.3.0] - 2021-02-09
- Added the possibility to attach a pdf coupon to an email message
- Added option to disable custom fields as required
## [1.2.1] - 2021-01-19
- Fixed translations
- Fixed email template
## [1.2.0] - 2020-12-17
- Minor version
- Added usage restriction for PDF coupon on the product edit page
- Added support for define custom fields & shortcodes
- Added functionality of multiple use coupon
- Changed PDF Coupon view on the product edit page
- Added filter 'fcpdf/core/coupon/code/length' to change coupon code length
- Added filter 'fcpdf/core/coupon/code/prefix' to change coupon code prefix
- Added filter 'fcpdf/core/coupon/expiry' to change coupon expires date
- Added filter 'fcpdf/core/coupon/before/create' for change coupon object
- Added filter 'fcpdf/core/coupon/before/after' for change meta data saved to post meta
- Added date format definition on the plugin settings page
- Added 'never' option for expiration date of the coupon on the product edit page
- Fixed bug for auto generating vouchers with other products
- Fixed font rendering on the template editor
## [1.1.3] - 2020-11-30
- Added RTL Support
- Added filter 'fcpdf/core/shortcodes' for defining own shortcodes
- Added filter 'fc/pro/product/fields' for defining own product fields
- Added links to PDF Coupons in My Account
## [1.1.2] - 2020-09-15
- Fixed coupon amount format
- Fixed product title shortcode
## [1.1.1] - 2020-08-18
- Fixed email template
- Fixed post_per_page for coupon template
## [1.1.0] - 2020-07-16
- Fixed prefixing of the Mpdf library
- Fixed meta box notice
- Added fcpdf_shortcode_customer_name shortcode
- Added fcpdf_shortcode_customer_address shortcode
- Added fcpdf_shortcode_coupon_expiry_date_format shortcode
## [1.0.0] - 2017-06-24
- First release

View File

@@ -0,0 +1,83 @@
<?php
/**
* Plugin Name: Flexible PDF Coupons Pro for WooCommerce
* Plugin URI: https://www.wpdesk.net/products/flexible-coupons-woocommerce/
* Description: Flexible PDF Coupons for WooCommerce is a WooCommerce plugin with which you can create your gift cards, vouchers, or coupons in PDF format. Use it for your future marketing campaigns.
* Product: Flexible PDF Coupons Pro for WooCommerce
* Version: 1.11.0
* Author: WP Desk
* Author URI: https://www.wpdesk.net/
* Text Domain: flexible-coupons-pro
* Domain Path: /lang/
* Requires at least: 5.8
* Tested up to: 6.4
* WC requires at least: 7.9
* WC tested up to: 8.3
* Requires PHP: 7.3
*
* @package \WPDesk\FlexibleCouponsPro
*
* Copyright 2016 WP Desk Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
} // Exit if accessed directly
/* Plugins version */
$plugin_version = '1.11.0';
/* Plugin release */
$plugin_release_timestamp = '2023-06-21 15:44';
$plugin_name = 'Flexible PDF Coupons Pro for WooCommerce';
$product_id = 'Flexible PDF Coupons Pro for WooCommerce';
$plugin_class_name = '\WPDesk\FlexibleCouponsPro\Plugin';
$plugin_text_domain = 'flexible-coupons-pro';
$plugin_file = __FILE__;
$plugin_dir = __DIR__;
$plugin_shops = array(
'pl_PL' => 'https://www.wpdesk.pl/',
'default' => 'https://www.wpdesk.net/',
);
/** Dummy plugin name and description - for translations only. */
$dummy_name = __( 'Flexible PDF Coupons Pro for WooCommerce', 'flexible-coupons-pro' );
$dummy_desc = __( 'Flexible PDF Coupons for WooCommerce is a WooCommerce plugin with which you can create your gift cards, vouchers, or coupons in PDF format. Use it for your future marketing campaigns.', 'flexible-coupons-pro' );
$dummy_plugin_uri = __( 'https://www.wpdesk.net/products/flexible-coupons-woocommerce/', 'flexible-coupons-pro' );
$dummy_author_uri = __( 'https://www.wpdesk.net/', 'flexible-coupons-pro' );
$requirements = array(
'php' => '7.3',
'wp' => '5.0',
'plugins' => array(
array(
'name' => 'woocommerce/woocommerce.php',
'nice_name' => 'WooCommerce',
'version' => '4.0',
),
),
);
require __DIR__ . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/plugin-init-php52.php';
// Disable free version.
if ( \PHP_VERSION_ID > 50300 ) {
require_once __DIR__ . '/src/PluginDisabler/FlexibleCouponFreeDisabler.php';
\WPDesk\FC\FreeDisabler\FlexibleCouponFreeDisabler::disable_free();
}

View File

@@ -0,0 +1,3 @@
*
!.gitignore
!pl_PL.po

Binary file not shown.

View File

@@ -0,0 +1,181 @@
<?php
/**
* General settings.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Coupons;
use FlexibleCouponsProVendor\WPDesk\PluginBuilder\Plugin\Hookable;
/**
* Define pro fields for general settings.
*
* @package WPDesk\FlexibleCouponsPro
*/
class AdminPage implements Hookable {
public function hooks() {
add_filter( 'woocommerce_coupon_discount_types', [ $this, 'coupon_discount_types' ] );
add_filter( 'manage_shop_coupon_posts_columns', [ $this, 'set_custom_shop_coupon_columns' ], 999 );
add_action( 'manage_shop_coupon_posts_custom_column', [ $this, 'custom_shop_coupon_column' ], 999, 2 );
add_action( 'pre_get_posts', [ $this, 'filter_coupons' ], 999, 2 );
add_filter( 'post_row_actions', [ $this, 'post_row_actions' ], 100, 2 );
add_filter( 'init', [ $this, 'clone_template' ], 999 );
}
private function types(): array {
$types['only_fcpdf'] = __( 'Show only Flexible Coupons', 'flexible-coupons-pro' );
$types['without_fcpdf'] = __( 'Show only WooCommerce Coupons', 'flexible-coupons-pro' );
return $types;
}
/**
* @param array $types
*
* @return array
*/
public function coupon_discount_types( array $types ): array {
global $current_screen;
if ( $current_screen && $current_screen->id === 'edit-shop_coupon' ) {
return array_merge( $types, $this->types() );
}
return $types;
}
/**
* @param array $columns
*
* @return array
*/
public function set_custom_shop_coupon_columns( array $columns ): array {
$columns['fcpdf'] = __( 'Flexible Coupon', 'flexible-coupons-pro' );
return $columns;
}
/**
* @param string $column
* @param int $post_id
*
* @return void
*/
public function custom_shop_coupon_column( string $column, int $post_id ) {
if ( $column == 'fcpdf' ) {
$data = get_post_meta( $post_id, '_fcpdf_coupon_data', true );
if ( is_array( $data ) && ! empty( $data ) ) {
$order_id = $data['order_id'] ?? 0;
$order = wc_get_order( $order_id );
if ( $order && $order->get_id() ) {
// Translator: %s - order ID.
echo '<a href="' . admin_url( 'post.php?post=' . $order->get_id() . '&action=edit' ) . '">' . sprintf( esc_html__( 'Order ID: %s', 'flexible-coupons-pro' ), $order->get_order_number() ) . '</a>';
}
}
}
}
public function filter_coupons( \WP_Query $query ) {
if ( $query->is_main_query() && $query->is_admin ) {
$type = $_GET['coupon_type'] ?? '';
$types = $this->types();
if ( isset( $types[ $type ] ) ) {
$query->set( 'meta_key', '' );
$query->set( 'meta_value', '' );
switch ( $type ) {
case 'only_fcpdf':
$meta_query = [
[
'key' => '_fcpdf_coupon_data',
'compare' => 'EXISTS',
],
];
$query->set( 'meta_query', $meta_query );
break;
case 'without_fcpdf':
$meta_query = [
[
'key' => '_fcpdf_coupon_data',
'compare' => 'NOT EXISTS',
],
];
$query->set( 'meta_query', $meta_query );
break;
case 'used_fcpdf':
$query->set( 'meta_key', '_fcpdf_coupon_data' );
break;
case 'unused_fcpdf':
$query->set( 'meta_key', '_fcpdf_coupon_data' );
break;
}
}
}
}
/**
* @param array $actions
* @param \WP_Post $post
*
* @return array
*/
public function post_row_actions( $actions, $post ): array {
$new_actions = [];
$copy_url = wp_nonce_url( admin_url( 'admin.php?copy=yes&post_id=' . $post->ID . '' ), 'fc-clone-template-' . $post->ID );
$copy_link = '<a href="' . $copy_url . '">' . esc_html__( 'Copy', 'flexible-coupons-pro' ) . '</a>';
foreach ( $actions as $action_id => $action ) {
$new_actions[ $action_id ] = $action;
if ( $action_id === 'edit' ) {
$new_actions['fc_copy'] = $copy_link;
}
}
return $new_actions;
}
public function clone_template() {
$request = wp_unslash( $_REQUEST );
$copy = $request['copy'] ?? '';
$post_id = $request['post_id'] ?? '';
$nonce_value = $request['_wpnonce'] ?? '';
if ( $copy === 'yes' && wp_verify_nonce( $nonce_value, 'fc-clone-template-' . $post_id ) ) {
$copied_post = get_post( $post_id );
if ( ! $copied_post ) {
wp_safe_redirect( admin_url( 'edit.php?post_type=wpdesk-coupons' ) );
exit;
}
$post = [
'post_title' => sprintf( esc_html__( 'Copy of %s', 'flexible-coupons-pro' ), get_the_title( $post_id ) ),
'post_status' => 'draft',
'post_type' => $copied_post->post_type,
'post_author' => $copied_post->post_author,
];
$new_post_id = wp_insert_post( $post );
global $wpdb;
$metas = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM `{$wpdb->postmeta}` WHERE `post_id` = %s", $post_id ) );
foreach ( $metas as $meta ) {
if ( $meta->meta_key === '_edit_lock' || $meta->meta_key === '_wp_old_slug' ) {
continue;
}
$wpdb->insert( $wpdb->postmeta, [ 'post_id' => $new_post_id, 'meta_key' => $meta->meta_key, 'meta_value' => $meta->meta_value ], [ '%d', '%s', '%s' ] );
}
sleep( 3 );
wp_safe_redirect( admin_url( 'post.php?post=' . $new_post_id . '&action=edit' ) );
exit;
}
}
}

View File

@@ -0,0 +1,87 @@
<?php
/**
* Email: Buyer email template.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Email;
use FlexibleCouponsProVendor\WPDesk\Library\WPCoupons\Email\FlexibleCouponsBaseEmail;
use FlexibleCouponsProVendor\WPDesk\Library\WPCoupons\PDF\Download;
use Psr\Log\LoggerInterface;
use FlexibleCouponsProVendor\WPDesk\Library\WPCoupons\Coupon\CouponsProcessing;
/**
* Register coupon pro template email.
*
* @package WPDesk\WooCommerceWFirma\Email
*/
class BaseEmail extends FlexibleCouponsBaseEmail {
/**
* @var bool
*/
public $enabled = true;
/**
* @var LoggerInterface
*/
protected $logger;
/**
* @var Download
*/
private $download;
/**
* @param string $template_path
* @param LoggerInterface $logger
*/
public function __construct( string $template_path, LoggerInterface $logger, Download $download ) {
parent::__construct( $template_path );
$this->logger = $logger;
$this->download = $download;
}
/**
* @param int $order_id
* @param array $meta
*/
protected function get_string_attachments(): array {
if ( ! $this->can_attach_pdf ) {
return [];
}
$name = $this->meta['coupon_code'] . '.pdf';
$prefix = \esc_html__( 'Coupon', 'flexible-coupons-pro' );
$full_name = $prefix . '-' . $name;
/**
* Define name for PDF attached to email.
*
* @param string $full_name Name with prefix & code & pdf extension.
* @param string $name Name with code & pdf extension.
* @param array $meta Coupon meta data.
*
* @since 1.4.0
*/
$filename = \apply_filters( 'fcpdf/core/pdf/filename', $full_name, $name, $this->meta );
$this->meta['return'] = 'string';
$pdf_content = $this->download->get_pdf_content( $this->meta );
if ( empty( $pdf_content ) ) {
return [];
}
$attachements = [
'pdf' => [
'fileName' => $filename,
'content' => $pdf_content,
],
];
return $attachements;
}
}

View File

@@ -0,0 +1,61 @@
<?php
/**
* Email: Buyer email template.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Email;
use FlexibleCouponsProVendor\WPDesk\Library\WPCoupons\PDF\Download;
use Psr\Log\LoggerInterface;
/**
* Register coupon pro template email.
*
* @package WPDesk\WooCommerceWFirma\Email
*/
class BuyerEmail extends BaseEmail {
const SLUG = 'FlexibleCouponsEmail';
/**
* @param string $template_path Plugin template path.
* @param bool $can_attach_pdf Can attach PDF to email.
*/
public function __construct( string $template_path, bool $can_attach_pdf, LoggerInterface $logger, Download $download ) {
$this->id = 'coupon_buyer_email';
$this->title = esc_html__( 'Coupon for buyer (Flexible Coupons Pro)', 'flexible-coupons-pro' );
$this->description = esc_html__( 'This message goes to the coupon buyer.', 'flexible-coupons-pro' );
$this->heading = esc_html__( 'Coupon', 'flexible-coupons-pro' );
$this->subject = esc_html__( '[{site_title}] You have received a coupon', 'flexible-coupons-pro' );
$this->email = '';
$this->template_html = 'emails/coupon.php';
$this->template_plain = 'emails/plain/coupon.php';
$this->can_attach_pdf = $can_attach_pdf;
parent::__construct( $template_path, $logger, $download );
$this->enabled = $this->get_option( 'enabled' );
$this->manual = false;
}
public function init_form_fields() {
parent::init_form_fields();
$fields['enabled'] = [
'title' => __( 'Enable/Disable', 'woocommerce' ),
'type' => 'checkbox',
'label' => __( 'Enable this email notification', 'woocommerce' ),
'default' => 'yes',
];
$this->form_fields = array_merge( $fields, $this->form_fields );
}
public function get_recipient(): string {
$this->recipient = $this->object->get_billing_email();
// run it through the WC_Email filter.
return parent::get_recipient();
}
}

View File

@@ -0,0 +1,65 @@
<?php
/**
* Email: Recipient email template.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Email;
use FlexibleCouponsProVendor\WPDesk\Library\WPCoupons\PDF\Download;
use FlexibleCouponsProVendor\WPDesk\Persistence\PersistentContainer;
use Psr\Log\LoggerInterface;
/**
* Register coupon pro template email.
*
* @package WPDesk\WooCommerceWFirma\Email
*/
class RecipientEmail extends BaseEmail {
const SLUG = 'FlexibleCouponsRecipientEmail';
/**
* @param string $template_path Plugin template path.
* @param bool $can_attach_pdf Can attach PDF to email.
*/
public function __construct( string $template_path, bool $can_attach_pdf, LoggerInterface $logger, Download $download ) {
$this->customer_email = true;
$this->id = 'coupon_recipient_email';
$this->title = esc_html__( 'Coupon for recipient (Flexible Coupons Pro)', 'flexible-coupons-pro' );
$this->description = esc_html__( 'This message goes to the coupon recipient.', 'flexible-coupons-pro' );
$this->heading = esc_html__( 'Coupon', 'flexible-coupons-pro' );
$this->subject = esc_html__( '[{site_title}] You have received a coupon', 'flexible-coupons-pro' );
$this->email = '';
$this->template_html = 'emails/coupon-recipient.php';
$this->template_plain = 'emails/plain/coupon-recipient.php';
$this->can_attach_pdf = $can_attach_pdf;
parent::__construct( $template_path, $logger, $download );
$this->enabled = $this->get_option( 'enabled' );
$this->manual = false;
}
public function init_form_fields() {
parent::init_form_fields();
$fields['enabled'] = [
'title' => __( 'Enable/Disable', 'woocommerce' ),
'type' => 'checkbox',
'label' => __( 'Enable this email notification', 'woocommerce' ),
'default' => 'yes',
];
$this->form_fields = array_merge( $fields, $this->form_fields );
}
public function get_recipient(): string {
if ( isset( $this->meta['flexible_coupon_recipient_email'] ) && \is_email( $this->meta['flexible_coupon_recipient_email'] ) ) {
$this->recipient = $this->meta['flexible_coupon_recipient_email'];
}
// run it through the WC_Email filter.
return parent::get_recipient();
}
}

View File

@@ -0,0 +1,85 @@
<?php
/**
* Email: Register email templates.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Email;
use FlexibleCouponsProVendor\WPDesk\Library\WPCoupons\PDF\Download;
use FlexibleCouponsProVendor\WPDesk\Persistence\PersistentContainer;
use FlexibleCouponsProVendor\WPDesk\PluginBuilder\Plugin\Hookable;
use FlexibleCouponsProVendor\WPDesk_Plugin_Info;
use Psr\Log\LoggerInterface;
/**
* Register email templates and pass them to the WooCommerce filter.
*
* @package WPDesk\WooCommerceWFirma\Email
*/
class RegisterEmails implements Hookable {
const HOOK_PRIORITY = 11;
/**
* @var WPDesk_Plugin_Info
*/
private $plugin_info;
/**
* @var PersistentContainer
*/
private $settings;
/**
* @var LoggerInterface
*/
private $logger;
/**
* @var Download
*/
private $download;
/**
* @param WPDesk_Plugin_Info $plugin
* @param LoggerInterface $logger
* @param PersistentContainer $settings
* @param Download $download
*/
public function __construct( WPDesk_Plugin_Info $plugin, LoggerInterface $logger, PersistentContainer $settings, Download $download ) {
$this->plugin_info = $plugin;
$this->logger = $logger;
$this->settings = $settings;
$this->download = $download;
}
/**
* Hooks
*/
public function hooks() {
add_filter( 'woocommerce_email_classes', [ $this, 'register_emails' ], self::HOOK_PRIORITY );
}
/**
* @return string
*/
private function get_template_path(): string {
return $this->plugin_info->get_plugin_dir() . '/src/Views/';
}
/**
* Register emails in WooCommerce.
*
* @param array $emails Emails.
*
* @return array
*/
public function register_emails( array $emails ): array {
$can_attach_pdf_to_email = 'yes' === $this->settings->get_fallback( 'attach_coupon', 'no' );
$emails[ BuyerEmail::SLUG ] = new BuyerEmail( $this->get_template_path(), $can_attach_pdf_to_email, $this->logger, $this->download );
$emails[ RecipientEmail::SLUG ] = new RecipientEmail( $this->get_template_path(), $can_attach_pdf_to_email, $this->logger, $this->download );
return $emails;
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace WPDesk\FlexibleCouponsPro\Email;
class StringAttachments {
/**
* @var array
*/
private $attachments;
/**
* @param array $attachments
*/
public function __construct( array $attachments ) {
$this->attachments = $attachments;
}
/**
* Add wordpress action.
*/
public function add_action() {
add_action( 'phpmailer_init', [ $this, 'add_string_attachments' ] );
}
/**
* Remove wordpress action.
*/
public function remove_action() {
remove_action( 'phpmailer_init', [ $this, 'add_string_attachments' ] );
}
/**
* Add attachments to mail from string.
*
* @param \PHPMailer $phpmailer
*/
public function add_string_attachments( $phpmailer ) {
foreach ( $this->attachments as $attachment ) {
$phpmailer->addStringAttachment( $attachment['content'], $attachment['fileName'] );
}
}
}

View File

@@ -0,0 +1,86 @@
<?php
/**
* Coupon library.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\Shortcode;
use FlexibleCouponsProVendor\WPDesk\Library\WPCoupons\PluginAccess;
use FlexibleCouponsProVendor\WPDesk\Library\WPCoupons\Shortcodes\CouponCode;
use FlexibleCouponsProVendor\WPDesk\Library\WPCoupons\Shortcodes\CouponValue;
use FlexibleCouponsProVendor\WPDesk_Plugin_Info;
use Psr\Log\LoggerAwareTrait;
use Psr\Log\LoggerInterface;
use WPDesk\FlexibleCouponsPro\Coupons\AdminPage;
use WPDesk\FlexibleCouponsPro\Email\RegisterEmails;
use WPDesk\FlexibleCouponsPro\Shortcodes\CouponExpiryDate;
use WPDesk\FlexibleCouponsPro\Shortcodes\CustomerAddress;
use WPDesk\FlexibleCouponsPro\Shortcodes\CustomerName;
use WPDesk\FlexibleCouponsPro\Shortcodes\ProductName;
use WPDesk\FlexibleCouponsPro\Shortcodes\RecipientEmail;
use WPDesk\FlexibleCouponsPro\Shortcodes\RecipientMessage;
use WPDesk\FlexibleCouponsPro\Shortcodes\RecipientName;
use WPDesk\FlexibleCouponsPro\Shortcodes\SiteUrl;
use FlexibleCouponsProVendor\WPDesk\Library\WPCoupons\CouponsIntegration;
/**
* Coupon library implementation.
*
* @package WPDesk\FlexibleCouponsPro
*/
class Integration extends CouponsIntegration {
use LoggerAwareTrait;
/**
* @var WPDesk_Plugin_Info
*/
private $plugin_info;
/**
* @param LoggerInterface $logger Logger.
*/
public function __construct( $editor, WPDesk_Plugin_Info $plugin_info ) {
$this->plugin_info = $plugin_info;
parent::__construct( $editor );
$this->set_product_fields( new ProductFieldsDefinition() );
self::set_pro();
}
/**
* This method exists for transfers shortcodes declaration to visual editor and library.
* If defined shortcode has used in project, library will replace shortcode by declared value.
*
* @return array
*/
protected function shortcodes_definition(): array {
return
[
new CouponValue(),
new CouponCode(),
new CouponExpiryDate(),
new CustomerAddress(),
new CustomerName(),
new ProductName(),
new RecipientMessage(),
new RecipientEmail(),
new RecipientName(),
new SiteUrl(),
];
}
public function hooks() {
add_action( 'fc/core/init', function ( PluginAccess $access ) {
$this->add_hookable( new RegisterEmails( $this->plugin_info, $access->get_logger(), $access->get_persistence(), $access->get_download() ) );
} );
$this->add_hookable( new AdminPage() );
parent::hooks();
$this->hooks_on_hookable_objects();
}
}

View File

@@ -0,0 +1,70 @@
<?php
namespace WPDesk\FlexibleCouponsPro\Marketing;
use FlexibleCouponsProVendor\WPDesk\PluginBuilder\Plugin\Hookable;
class SupportLinks implements Hookable {
const COUPON_LISTING_PAGE = 'edit-wpdesk-coupons';
const COUPON_EDIT_PAGE = 'wpdesk-coupons';
const COUPON_ADD_ACTION = 'add';
public function hooks() {
add_action( 'admin_footer', [ $this, 'add_support_link_on_invoice_listing' ] );
add_action( 'admin_footer', [ $this, 'add_support_link_on_invoice_add' ] );
add_action( 'admin_footer', [ $this, 'add_support_link_on_invoice_edit' ] );
}
public function add_support_link_on_invoice_listing() {
$screen = get_current_screen();
if ( isset( $screen->id ) && $screen->id === self::COUPON_LISTING_PAGE ) {
$url = 'https://wpdesk.net/docs/flexible-coupons-pro/?utm_source=wp-admin-plugins&utm_medium=link&utm_campaign=flexible-coupons-docs-link&utm_content=edit-template-list#Coupon_templates_list';
if ( get_locale() === 'pl_PL' ) {
$url = 'https://www.wpdesk.pl/docs/flexible-coupons-pro/?utm_source=wp-admin-plugins&utm_medium=link&utm_campaign=flexible-coupons-docs-link&utm_content=edit-template-list#lista-szablonow-kuponow';
}
?>
<script>
(function ($) {
$('.wp-header-end').before('<div class="support-url-wrapper"><a target="_blank" href="<?php echo esc_url( $url ); ?>"><?php esc_html_e( 'See our documentation &rarr;', 'flexible-coupons-pro' ); ?></a></div>');
})(jQuery);
</script>
<?php
}
}
public function add_support_link_on_invoice_add() {
$screen = get_current_screen();
if ( ( isset( $screen->id ) && $screen->id === self::COUPON_EDIT_PAGE ) && ( isset( $screen->action ) && $screen->action === self::COUPON_ADD_ACTION ) ) {
$url = 'https://wpdesk.net/docs/flexible-coupons-pro/?utm_source=wp-admin-plugins&utm_medium=link&utm_campaign=flexible-coupons-docs-link&utm_content=edit-template-add-new#New_coupon_template';
if ( get_locale() === 'pl_PL' ) {
$url = 'https://www.wpdesk.pl/docs/flexible-coupons-pro/?utm_source=wp-admin-plugins&utm_medium=link&utm_campaign=flexible-coupons-docs-link&utm_content=edit-template-add-new#tworzenie-szablonu-kuponu';
}
?>
<script>
(function ($) {
$('.wp-header-end').before('<div class="support-url-wrapper"><a target="_blank" href="<?php echo esc_url( $url ); ?>"><?php esc_html_e( 'See our documentation &rarr;', 'flexible-coupons-pro' ); ?></a></div>');
})(jQuery);
</script>
<?php
}
}
public function add_support_link_on_invoice_edit() {
$screen = get_current_screen();
if ( isset( $screen->id ) && $screen->id === self::COUPON_EDIT_PAGE && empty( $screen->action ) ) {
$url = 'https://wpdesk.net/docs/flexible-coupons-pro/?utm_source=wp-admin-plugins&utm_medium=link&utm_campaign=flexible-coupons-docs-link&utm_content=edit-template-add-new#New_coupon_template';
if ( get_locale() === 'pl_PL' ) {
$url = 'https://www.wpdesk.pl/docs/flexible-coupons-pro/?utm_source=wp-admin-plugins&utm_medium=link&utm_campaign=flexible-coupons-docs-link&utm_content=edit-template-add-new#tworzenie-szablonu-kuponu';
}
?>
<script>
(function ($) {
$('.wp-header-end').before('<div class="support-url-wrapper"><a target="_blank" href="<?php echo esc_url( $url ); ?>"><?php esc_html_e( 'See our documentation &rarr;', 'flexible-coupons-pro' ); ?></a></div>');
})(jQuery);
</script>
<?php
}
}
}

View File

@@ -0,0 +1,70 @@
<?php
namespace WPDesk\FlexibleCouponsPro\Marketing;
use FlexibleCouponsProVendor\WPDesk\Library\Marketing\Boxes\Assets;
use FlexibleCouponsProVendor\WPDesk\Library\Marketing\Boxes\MarketingBoxes;
use FlexibleCouponsProVendor\WPDesk\PluginBuilder\Plugin\Hookable;
use FlexibleCouponsProVendor\WPDesk\View\Renderer\SimplePhpRenderer;
use FlexibleCouponsProVendor\WPDesk\View\Resolver\ChainResolver;
use FlexibleCouponsProVendor\WPDesk\View\Resolver\DirResolver;
use WPDesk\FlexibleCouponsPro\Plugin;
class SupportMenuPage implements Hookable {
const SCRIPTS_VERSION = 2;
const PLUGIN_SLUG = 'flexible-coupons-pro';
public function __construct() {
$this->init_renderer();
}
public function hooks() {
add_action( 'admin_menu', function () {
add_submenu_page(
'edit.php?post_type=wpdesk-coupons',
esc_html__( 'Start Here', 'flexible-coupons-pro' ),
'<span style="color: #00FFC2">' . esc_html__( 'Start Here', 'flexible-coupons-pro' ) . '</span>',
'manage_options',
'wpdesk-fc-marketing',
[ $this, 'render_page_action' ],
11
);
}, 9999 );
add_action( 'admin_enqueue_scripts', [ $this, 'admin_enqueue_scripts' ] );
Assets::enqueue_assets();
Assets::enqueue_owl_assets();
}
/**
* Init renderer.
*/
private function init_renderer() {
$resolver = new ChainResolver();
$resolver->appendResolver( new DirResolver( __DIR__ . '/Views/' ) );
$this->renderer = new SimplePhpRenderer( $resolver );
}
public function render_page_action() {
$local = get_locale();
if ( $local === 'en_US' ) {
$local = 'en';
}
$boxes = new MarketingBoxes( self::PLUGIN_SLUG, $local );
echo $this->renderer->render( 'marketing-page', [ 'boxes' => $boxes ] );
}
/**
* @param string $screen_id
*/
public function admin_enqueue_scripts( $screen_id ) {
if ( in_array( $screen_id, [ 'wpdesk-coupons_page_wpdesk-marketing' ], true ) ) {
wp_enqueue_style( 'wpdesk-marketing', plugin_dir_url( __FILE__ ) . 'assets/css/marketing.css', [], self::SCRIPTS_VERSION );
wp_enqueue_style( 'wpdesk-modal-marketing', plugin_dir_url( __FILE__ ) . 'assets/css/modal.css', [], self::SCRIPTS_VERSION );
wp_enqueue_script( 'wpdesk-marketing', plugin_dir_url( __FILE__ ) . 'assets/js/modal.js', [ 'jquery' ], self::SCRIPTS_VERSION, true );
}
}
}

View File

@@ -0,0 +1,39 @@
<?php
use FlexibleCouponsProVendor\WPDesk\Library\Marketing\Boxes\MarketingBoxes;
/**
* @var MarketingBoxes $boxes
*/
$boxes = $params['boxes'] ?? false;
if ( ! $boxes ) {
return;
}
$support_url = 'pl_PL' === get_locale() ? 'https://www.wpdesk.pl/support/' : 'https://www.wpdesk.net/support/';
?>
<div class="wrap">
<div id="marketing-page-wrapper">
<?php echo $boxes->get_boxes()->get_all(); ?>
<div class="marketing-buttons">
<a class="button button-primary button-support confirm" data-confirm="confirm-support" href="#"><?php esc_html_e( 'Get support', 'flexible-coupons-pro' ); ?></a>
</div>
<div class="wpdesk-tooltip-shadow"></div>
<div id="confirm-support" class="wpdesk-tooltip wpdesk-tooltip-confirm">
<span class="close-modal close-modal-button"><span class="dashicons dashicons-no-alt"></span></span>
<h3><?php esc_html_e( 'Before sending a message please:', 'flexible-coupons-pro' ); ?></strong></h3>
<ul>
<li><?php esc_html_e( 'Prepare the information about the version of WordPress, WooCommerce, and Flexible Invoices (preferably your system status from WooCommerce->Status)', 'flexible-coupons-pro' ); ?></li>
<li><?php esc_html_e( 'Describe the issue you have', 'flexible-coupons-pro' ); ?></li>
<li><?php esc_html_e( 'Attach any log files & printscreens of the issue', 'flexible-coupons-pro' ); ?></li>
</ul>
<div class="confirm-buttons">
<a target="_blank" href="<?php echo esc_url( $support_url ); ?>" class="confirm-url"><?php esc_html_e( 'Ok, take me to support', 'flexible-coupons-pro' ); ?></a>
<a href="#" class="close-confirm close-modal"><?php esc_html_e( 'No, I\'ll wait', 'flexible-coupons-pro' ); ?></a>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,36 @@
<?php
use FlexibleCouponsProVendor\WPDesk\Library\Marketing\RatePlugin\RateBox;
/**
* @var RateBox $boxes
*/
$rate_box = $params['rate_box'] ?? false;
if ( ! $rate_box ) {
return;
}
?>
<script id="fi_rate_box" type="text/template">
<?php
$is_PL = get_locale() === 'pl_PL' ? 'https://wpdesk.pl' : 'https://wpdesk.net';
$review_link = 'https://wpde.sk/fi-footer-review-link';
echo $rate_box->render(
$review_link,
sprintf(
// translator: %1$s icon, %2$s open url tag, %3$s close url tag.
__( 'Created with %1$s by Sailors from %2$sWP Desk%3$s - if you like Flexible Coupons PDF Coupons Pro rate us &rarr;', 'flexible-coupons-pro' ),
'<span class="love"><span class="dashicons dashicons-heart"></span></span>',
'<a target="_blank" href="' . $is_PL . '">',
'</a>'
)
);
?>
</script>
<script>
(function ($) {
let body_wrapper = $('#marketing-page-wrapper, #fiw-settings-footer');
if (body_wrapper.length) {
body_wrapper.append($('#fi_rate_box').html())
}
})(jQuery);
</script>

View File

@@ -0,0 +1,27 @@
@import "modal.css";
#marketing-page-wrapper {
max-width: 1100px;
}
.marketing-buttons {
text-align: center;
padding-bottom: 30px;
}
.marketing-buttons .button {
padding: 10px 20px;
font-size: 20px;
border-radius: 3px;
}
.marketing-buttons .button-support {
background-color: #900351;
border-color: #900351;
}
.marketing-buttons .button-support:active,
.marketing-buttons .button-support:focus,
.marketing-buttons .button-support:hover {
background-color: #900351;
opacity: 0.9;
}

View File

@@ -0,0 +1,54 @@
.wpdesk-tooltip-shadow {
background-color: #000;
z-index: 9000;
opacity: 0.3;
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
display: none;
}
.wpdesk-tooltip-confirm {
background: #FFF;
padding: 20px;
border-radius: 5px;
border: 1px solid #DDD;
box-shadow: 0 0 10px #888;
width: 500px;
z-index: 9999;
display: none;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.wpdesk-tooltip-confirm ul {
padding: 10px;
margin: 10px;
list-style: inherit;
}
.wpdesk-tooltip-confirm .close-modal-button {
position: absolute;
right: 10px;
top: 10px;
padding: 5px;
cursor: pointer;
}
.wpdesk-tooltip-confirm .close-modal-button:hover {
color: #3875d7;
}
.confirm-buttons a {
display: inline-block;
}
.confirm-buttons a.confirm-url {
float: left;
}
.confirm-buttons a.close-confirm {
float: right;
}

View File

@@ -0,0 +1,15 @@
(function ($) {
jQuery('.confirm').click(function () {
let confirm_id = jQuery(this).attr('data-confirm');
let shadow = jQuery('.wpdesk-tooltip-shadow');
let modal = jQuery('#' + confirm_id);
shadow.show()
modal.show()
})
jQuery('.close-modal').click(function () {
jQuery('.wpdesk-tooltip-shadow').hide();
jQuery(this).closest('.wpdesk-tooltip').hide();
return false;
})
})(jQuery);

View File

@@ -0,0 +1,141 @@
<?php
/**
* Plugin main class.
*
* @package WPDesk\PluginTemplate
*/
namespace WPDesk\FlexibleCouponsPro;
use Psr\Log\NullLogger;
use Psr\Log\LoggerAwareTrait;
use Psr\Log\LoggerAwareInterface;
use FlexibleCouponsProVendor\WPDesk_Plugin_Info;
use WPDesk\FlexibleCouponsPro\Marketing\SupportLinks;
use WPDesk\FlexibleCouponsPro\Marketing\SupportMenuPage;
use FlexibleCouponsProVendor\WPDesk\Dashboard\DashboardWidget;
use FlexibleCouponsProVendor\WPDesk\PluginBuilder\Plugin\Activateable;
use FlexibleCouponsProVendor\WPDesk\PluginBuilder\Plugin\AbstractPlugin;
use FlexibleCouponsProVendor\WPDesk\PluginBuilder\Plugin\HookableParent;
use FlexibleCouponsProVendor\WPDesk\PluginBuilder\Plugin\HookableCollection;
use FlexibleCouponsProVendor\WPDesk\Library\WPCoupons\Integration\SampleTemplates;
/**
* Main plugin class. The most important flow decisions are made here.
*
* @package WPDesk\PluginTemplate
*/
class Plugin extends AbstractPlugin implements LoggerAwareInterface, HookableCollection, Activateable {
use LoggerAwareTrait;
use HookableParent;
/**
* @var string
*/
private $plugin_path;
/**
* @var string
*/
private $scripts_version = '1.0';
const EDITOR_POST_TYPE = 'wpdesk-coupons';
/**
* Plugin constructor.
*
* @param WPDesk_Plugin_Info $plugin_info Plugin info.
*/
public function __construct( WPDesk_Plugin_Info $plugin_info ) {
parent::__construct( $plugin_info );
$this->plugin_info = $plugin_info;
$this->plugin_url = $this->plugin_info->get_plugin_url();
$this->plugin_path = $this->plugin_info->get_plugin_dir();
$this->plugin_namespace = $this->plugin_info->get_text_domain();
$is_pl = 'pl_PL' === get_locale();
$this->settings_url = admin_url( 'edit.php?post_type=' . self::EDITOR_POST_TYPE . '&page=fc-settings' );
$this->docs_url = $is_pl ? 'https://www.wpdesk.pl/docs/flexible-coupons-pro/' : 'https://www.wpdesk.net/docs/flexible-coupons-pro/';
$this->support_url = $is_pl ? 'https://www.wpdesk.pl/support/' : 'https://www.wpdesk.net/support/';
$this->setLogger( new NullLogger() );
}
/**
* Integrate with WordPress and with other plugins using action/filter system.
*
* @return void
*/
public function hooks() {
parent::hooks();
add_action(
'woocommerce_init',
function () {
$editor = new RegisterEditor();
$integration = new Integration( $editor, $this->plugin_info );
$this->add_hookable( $editor );
$this->add_hookable( $integration );
$this->add_hookable( new SupportMenuPage() );
$this->add_hookable( new SupportLinks() );
$this->hooks_on_hookable_objects();
},
10
);
( new DashboardWidget() )->hooks();
}
/**
* Enqueue admin scripts.
*/
public function admin_enqueue_scripts() {
$screen = get_current_screen();
$texts = apply_filters( 'flexible_coupons_pro_editor_text', array() );
if ( $screen && 'post' === $screen->base && self::EDITOR_POST_TYPE === $screen->post_type && ! empty( $texts ) ) {
wp_localize_script(
'wp-canva-admin',
'wpdesk_canva_editor_texts',
$texts
);
}
}
/**
* Plugin activation.
*/
public function activate() {
$post = new SampleTemplates( self::EDITOR_POST_TYPE );
$post->create();
}
/**
* Links filter.
*
* @param array $links Links.
*
* @return array
*/
public function links_filter( $links ) {
$links = parent::links_filter( $links );
$start_here_url = admin_url( 'edit.php?post_type=wpdesk-coupons&page=wpdesk-fc-marketing' );
$start_here_link = '<a style="font-weight:700; color: #007050" href="' . $start_here_url . '">' . __( 'Start Here', 'flexible-coupons-pro' ) . '</a>';
// first link
array_unshift( $links, $start_here_link );
$is_pl = 'pl_PL' === get_locale();
$buy_addons_url = $is_pl ? 'https://www.wpdesk.pl/sklep/flexible-coupons-woocommerce/?utm_source=wp-admin-plugins&utm_medium=link&utm_campaign=flexible-coupons-pro&utm_content=plugin-addons#dodatki' : 'https://wpdesk.net/products/flexible-coupons-woocommerce/?utm_source=wp-admin-plugins&utm_medium=link&utm_campaign=flexible-coupons-pro&utm_content=plugin-addons#addons';
$buy_addons_link = '<a style="font-weight:700; color: #FF9743" href="' . $buy_addons_url . '" target="_blank">' . __( 'Add-ons', 'flexible-coupons-pro' ) . ' →</a>';
array_push( $links, $buy_addons_link );
// move deactive link to the end
if ( array_key_exists( 'deactivate', $links ) ) {
$deactivate_value = $links['deactivate'];
unset( $links['deactivate'] );
$links['deactivate'] = $deactivate_value;
}
return $links;
}
}

View File

@@ -0,0 +1,87 @@
<?php
/**
* Product fields.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\ProductFields;
/**
* Define pro fields for coupon product.
*
* @package WPDesk\FlexibleCouponsPro
*/
class ProductFieldsDefinition implements ProductFields {
/**
* @return array
*/
public function get() {
$fields = [
'flexible_coupon_recipient_name' => [
'id' => 'flexible_coupon_recipient_name',
'type' => 'text',
'title' => esc_html__( 'Recipient name', 'flexible-coupons-pro' ),
'value' => '',
'required' => false,
'validation' => [
'minlength' => 2,
'maxlength' => 100,
],
'can_disable' => true,
// translator: number of chars.
'custom_attributes' => [
'data-description' => esc_html__( 'The minimum characters number in this field is %d', 'flexible-coupons-pro' ),
],
],
'flexible_coupon_recipient_email' => [
'id' => 'flexible_coupon_recipient_email',
'type' => 'text',
'title' => esc_html__( 'Recipient email', 'flexible-coupons-pro' ),
'value' => '',
'required' => false,
'validation' => [
'email' => true,
'minlength' => 5,
'maxlength' => 120,
],
'can_disable' => true,
'custom_attributes' => [
'data-description' => esc_html__( 'Make sure you use @ sign and domain extention like .com', 'flexible-coupons-pro' ),
],
],
'flexible_coupon_recipient_message' => [
'id' => 'flexible_coupon_recipient_message',
'type' => 'textarea',
'title' => esc_html__( 'Recipient message', 'flexible-coupons-pro' ),
'value' => '',
'required' => false,
'validation' => [
'minlength' => 5,
'maxlength' => 250,
],
'can_disable' => true,
// translator: number of chars.
'custom_attributes' => [
'data-description' => esc_html__( 'The minimum characters number in this field is %d', 'flexible-coupons-pro' ),
],
],
];
/**
* Adds custom product fields.
*
* @param array $fields List of defined fields.
*
* @since 1.1.3
*/
return apply_filters( 'fc/pro/product/fields', $fields );
}
public function is_premium() {
return true;
}
}

View File

@@ -0,0 +1,64 @@
<?php
/**
* Integration. Coupon editor implementation.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro;
use FlexibleCouponsProVendor\WPDesk\Library\WPCanvaEditor\EditorImplementation;
/**
* @package WPDesk\FlexibleCouponsPro
*/
class RegisterEditor extends EditorImplementation {
const EDITOR_POST_TYPE = 'wpdesk-coupons';
public function __construct() {
parent::__construct( self::EDITOR_POST_TYPE );
}
/**
* Define arguments for editor post type.
*
* @return array
*/
protected function post_type_args_definition() {
$labels = array(
'name' => __( 'PDF Coupons', 'flexible-coupons-pro' ),
'singular_name' => __( 'PDF Coupons', 'flexible-coupons-pro' ),
'menu_name' => __( 'PDF Coupons', 'flexible-coupons-pro' ),
'name_admin_bar' => __( 'PDF Coupons', 'flexible-coupons-pro' ),
'add_new' => __( 'Add New', 'flexible-coupons-pro' ),
'add_new_item' => __( 'Add New', 'flexible-coupons-pro' ),
'new_item' => __( 'New', 'flexible-coupons-pro' ),
'edit_item' => __( 'Edit', 'flexible-coupons-pro' ),
'view_item' => __( 'Views', 'flexible-coupons-pro' ),
'all_items' => __( 'Templates', 'flexible-coupons-pro' ),
'search_items' => __( 'Search', 'flexible-coupons-pro' ),
'parent_item_colon' => __( 'Parent:', 'flexible-coupons-pro' ),
'not_found' => __( 'No found.', 'flexible-coupons-pro' ),
'not_found_in_trash' => __( 'No found in Trash.', 'flexible-coupons-pro' ),
);
$args = array(
'labels' => $labels,
'description' => __( 'Manage coupons templates.', 'flexible-coupons-pro' ),
'public' => false,
'publicly_queryable' => false,
'show_ui' => true,
'query_var' => true,
'capability_type' => 'post',
'has_archive' => false,
'hierarchical' => false,
'show_in_menu' => true,
'supports' => array( 'title' ),
'show_in_rest' => false,
'menu_icon' => 'dashicons-tickets-alt',
);
return $args;
}
}

View File

@@ -0,0 +1,132 @@
<?php
/**
* General settings.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Settings;
use FlexibleCouponsProVendor\WPDesk\Forms\Field\CheckboxField;
use FlexibleCouponsProVendor\WPDesk\Forms\Field\Header;
use FlexibleCouponsProVendor\WPDesk\Forms\Field\InputNumberField;
use FlexibleCouponsProVendor\WPDesk\Forms\Field\InputTextField;
use FlexibleCouponsProVendor\WPDesk\Forms\Field\Paragraph;
use FlexibleCouponsProVendor\WPDesk\Forms\Field\SelectField;
use FlexibleCouponsProVendor\WPDesk\PluginBuilder\Plugin\Hookable;
/**
* Define pro fields for general settings.
*
* @package WPDesk\FlexibleCouponsPro
*/
class GeneralSettings implements Hookable {
const EXPIRY_DATE_FORMAT_FIELD = 'expiry_date_format';
const ATTACH_COUPON_FIELD = 'attach_coupon';
const REGULAR_PRICE_FIELD = 'coupon_regular_price';
const SHOW_TIPS_FIELD = 'coupon_tips';
const SHOW_TEXTAREA_COUNTER_FIELD = 'coupon_textarea_counter';
const PRODUCT_PAGE_POSITION_FIELD = 'coupon_product_position';
const COUPON_CODE_PREFIX_FIELD = 'coupon_code_prefix';
const COUPON_CODE_SUFFIX_FIELD = 'coupon_code_suffix';
const COUPON_CODE_LENGTH_FIELD = 'coupon_code_random_length';
public function hooks() {
add_filter( 'fcpdf/settings/general/fields', [ $this, 'add_pro_fields' ] );
}
/**
* @param array $fields
*
* @return array
*/
public function add_pro_fields( array $fields ): array {
$submit_field = array_pop( $fields );
$pro_fields = [
( new InputTextField() )
->set_name( self::EXPIRY_DATE_FORMAT_FIELD )
->set_label( esc_html__( 'Expiry date format', 'flexible-coupons-pro' ) )
->set_description( sprintf( __( 'Define coupon expiry date format according to %1$sWordPress date formatting%2$s.', 'flexible-coupons-pro' ), '<a href="https://wordpress.org/support/article/formatting-date-and-time/" target="_blank">', '</a>' ) )
->set_default_value( get_option( 'date_format' ) ),
( new CheckboxField() )
->set_name( self::ATTACH_COUPON_FIELD )
->set_label( esc_html__( 'PDF as attachment', 'flexible-coupons-pro' ) )
->set_sublabel( esc_html__( 'Enable', 'flexible-coupons-pro' ) )
->set_description( esc_html__( 'Enable to add PDF coupons as email attachments. If this option is disabled, recipients will only be able to download the coupon via a link in the email.', 'flexible-coupons-pro' ) ),
( new SelectField() )
->set_name( self::PRODUCT_PAGE_POSITION_FIELD )
->set_label( esc_html__( 'Coupon fields position on the product page', 'flexible-coupons-pro' ) )
->set_options(
[
'below' => esc_html__( 'Below Add to cart button', 'flexible-coupons-pro' ),
'above' => esc_html__( 'Above Add to cart button', 'flexible-coupons-pro' ),
]
)
->set_description( esc_html__( 'Select where the coupon fields will be displayed on the product page.', 'flexible-coupons-pro' ) ),
( new Header() )
->set_label( esc_html__( 'Coupon code', 'flexible-coupons-pro' ) )
->set_description(
// translators: %1$s start url, %2$s close url.
sprintf( esc_html__( 'In this section you can define your own settings for coupon code.', 'flexible-coupons-pro' ) )
),
( new InputTextField() )
->set_name( self::COUPON_CODE_PREFIX_FIELD )
->set_label( esc_html__( 'Coupon code prefix', 'flexible-coupons-pro' ) )
->set_description( __( 'Define the prefix which will be used as a beginning of your coupon code. Leave empty if you dont want to use the prefix. Use <code>{order_id}</code> shortcode if you want to use the order number.', 'flexible-coupons-pro' ) ),
( new InputNumberField() )
->set_name( self::COUPON_CODE_LENGTH_FIELD )
->set_label( esc_html__( 'Number of random characters', 'flexible-coupons-pro' ) )
->set_description( esc_html__( 'The number of random characters in the coupon code. Random characters will be used for generating unique coupon codes. Choose the number between 5 and 30.', 'flexible-coupons-pro' ) )
->set_default_value( 5 )
->set_attribute( 'min', 5 )
->set_attribute( 'max', 30 ),
( new InputTextField() )
->set_name( self::COUPON_CODE_SUFFIX_FIELD )
->set_label( esc_html__( 'Coupon code suffix', 'flexible-coupons-pro' ) )
->set_description( __( 'Define the suffix which will be used as a end of your coupon code. Leave empty if you dont want to use the suffix. Use <code>{order_id}</code> shortcode if you want to use the order number.', 'flexible-coupons-pro' ) ),
( new CheckboxField() )
->set_name( self::REGULAR_PRICE_FIELD )
->set_label( esc_html__( 'Coupon value', 'flexible-coupons-pro' ) )
->set_sublabel( esc_html__( 'Enable', 'flexible-coupons-pro' ) )
->set_description( esc_html__( 'Always use the regular price of the product for the coupon value.', 'flexible-coupons-pro' ) ),
( new CheckboxField() )
->set_name( self::SHOW_TIPS_FIELD )
->set_label( esc_html__( 'Show field tips', 'flexible-coupons-pro' ) )
->set_sublabel( esc_html__( 'Enable', 'flexible-coupons-pro' ) )
->set_description( esc_html__( 'Show tooltips for fields.', 'flexible-coupons-pro' ) ),
( new CheckboxField() )
->set_name( self::SHOW_TEXTAREA_COUNTER_FIELD )
->set_label( esc_html__( 'Show textarea counter', 'flexible-coupons-pro' ) )
->set_sublabel( esc_html__( 'Enable', 'flexible-coupons-pro' ) )
->set_description( esc_html__( 'Show character counter below textarea.', 'flexible-coupons-pro' ) ),
( new Header() )
->set_name( 'php-settings' )
->set_label( esc_html__( 'PHP Settings', 'flexible-coupons-pro' ) ),
( new Paragraph() )
->set_name( 'php-alow' )
->set_label( esc_html__( 'Allow URL Fopen', 'flexible-coupons-pro' ) )
->set_description( $this->get_php_settings_message( 'allow_url_fopen', true ) ),
];
return array_merge( $fields, $pro_fields, [ $submit_field ] );
}
/**
* @param string $option_name
*
* @return string|bool
*/
private function get_php_option( string $option_name ) {
return ini_get( $option_name );
}
private function get_php_settings_message( string $option_key, $expected_value ) {
if ( (bool) $this->get_php_option( $option_key ) !== $expected_value ) {
return '<span style="color: red; font-weight: 700;">' . esc_html__( 'Disabled' ) . '</span>';
}
return '<span style="color: green; font-weight: 700;">' . esc_html__( 'Enabled' ) . '</span>';
}
}

View File

@@ -0,0 +1,68 @@
<?php
/**
* Shortcode. Coupon expiry date.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Shortcodes;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\ShortcodeData;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\Shortcode;
/**
* Coupon expiry date shortcode declaration.
*
* @package WPDesk\FlexibleCouponsPro\Shortcodes
*/
class CouponExpiryDate implements Shortcode {
const ID = 'coupon_expiry_date';
/**
* @return string
*/
public function get_id() {
return self::ID;
}
/**
* @return array
*/
public function definition() {
return [
'text' => '[coupon_expiry_date]',
'top' => 380,
'left' => 20,
'width' => 200,
'height' => 40,
];
}
/**
* @param ShortcodeData $shortcode_data
*
* @return string
*/
public function get_value( ShortcodeData $shortcode_data ) {
$coupon = $shortcode_data->get_coupon();
$expiry_date_format = get_option( 'flexible_coupons_expiry_date_format', get_option( 'date_format' ) );
if ( empty( $expiry_date_format ) ) {
$expiry_date_format = get_option( 'date_format', 'Y-m-d' );
}
/**
* Allow change date format for coupon.
*
* @param string $date_format Date format.
*
* @since 1.1.0
*/
if ( $coupon->get_date_expires() ) {
return date_i18n( apply_filters( 'fcpdf_shortcode_coupon_expiry_date_format', $expiry_date_format, $coupon ), $coupon->get_date_expires()->getOffsetTimestamp() );
}
return '';
}
}

View File

@@ -0,0 +1,63 @@
<?php
/**
* Shortcode. Customer address.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Shortcodes;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\ShortcodeData;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\Shortcode;
use WC_Order;
/**
* Customer address shortcode declaration.
*
* @package WPDesk\FlexibleCouponsPro\Shortcodes
*/
class CustomerAddress implements Shortcode {
const ID = 'customer_address';
/**
* @return string
*/
public function get_id() {
return self::ID;
}
/**
* @return array
*/
public function definition() {
return [
'text' => '[customer_address]',
'top' => 20,
'left' => 300,
'width' => 200,
'height' => 200,
];
}
/**
* @param ShortcodeData $shortcode_data
*
* @return string
*/
public function get_value( ShortcodeData $shortcode_data ) {
$order = $shortcode_data->get_order();
$customer_address = $order->get_billing_address_1() . ' ' . $order->get_billing_address_2() . ', ' . $order->get_billing_city();
/**
* Allow change customer address.
*
* @param string $customer_address Customer address.
* @param WC_Order $order Order object.
*
* @since 1.1.0
*/
return apply_filters( 'fcpdf_shortcode_customer_address', $customer_address, $order );
}
}

View File

@@ -0,0 +1,63 @@
<?php
/**
* Shortcode. Customer name.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Shortcodes;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\ShortcodeData;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\Shortcode;
use WC_Order;
/**
* Customer name shortcode declaration.
*
* @package WPDesk\FlexibleCouponsPro\Shortcodes
*/
class CustomerName implements Shortcode {
const ID = 'customer_name';
/**
* @return string
*/
public function get_id() {
return self::ID;
}
/**
* @return array
*/
public function definition() {
return [
'text' => '[customer_name]',
'top' => 240,
'left' => 300,
'width' => 200,
'height' => 30,
];
}
/**
* @param ShortcodeData $shortcode_data
*
* @return string
*/
public function get_value( ShortcodeData $shortcode_data ) {
$order = $shortcode_data->get_order();
$customer_name = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name();
/**
* Allow change customer name.
*
* @param string $customer_name Customer name.
* @param WC_Order $order Order object.
*
* @since 1.1.0
*/
return apply_filters( 'fcpdf_shortcode_customer_name', $customer_name, $order );
}
}

View File

@@ -0,0 +1,51 @@
<?php
/**
* Shortcode. Product name.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Shortcodes;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\ShortcodeData;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\Shortcode;
/**
* Product name shortcode declaration.
*
* @package WPDesk\FlexibleCouponsPro\Shortcodes
*/
class ProductName implements Shortcode {
const ID = 'product_name';
/**
* @return string
*/
public function get_id() {
return self::ID;
}
/**
* @return array
*/
public function definition() {
return [
'text' => '[product_name]',
'top' => 80,
'left' => 20,
'width' => 200,
'height' => 30,
];
}
/**
* @param ShortcodeData $shortcode_data
*
* @return string
*/
public function get_value( ShortcodeData $shortcode_data ) {
return wp_strip_all_tags( $shortcode_data->get_product()->get_name() );
}
}

View File

@@ -0,0 +1,53 @@
<?php
/**
* Shortcode. Recipient email.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Shortcodes;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\ShortcodeData;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\Shortcode;
/**
* Recipient email shortcode declaration.
*
* @package WPDesk\FlexibleCouponsPro\Shortcodes
*/
class RecipientEmail implements Shortcode {
const ID = 'recipient_email';
/**
* @return string
*/
public function get_id() {
return self::ID;
}
/**
* @return array
*/
public function definition() {
return [
'text' => '[recipient_email]',
'top' => 340,
'left' => 20,
'width' => 200,
'height' => 40,
];
}
/**
* @param ShortcodeData $shortcode_data
*
* @return string
*/
public function get_value( ShortcodeData $shortcode_data ) {
$item_data = $shortcode_data->get_product_fields_values();
return isset( $item_data['flexible_coupon_recipient_email'] ) ? $item_data['flexible_coupon_recipient_email'] : '';
}
}

View File

@@ -0,0 +1,53 @@
<?php
/**
* Shortcode. Recipient message.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Shortcodes;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\ShortcodeData;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\Shortcode;
/**
* Recipient message shortcode declaration.
*
* @package WPDesk\FlexibleCouponsPro\Shortcodes
*/
class RecipientMessage implements Shortcode {
const ID = 'recipient_message';
/**
* @return string
*/
public function get_id() {
return self::ID;
}
/**
* @return array
*/
public function definition() {
return [
'text' => '[recipient_message]',
'top' => 140,
'left' => 20,
'width' => 200,
'height' => 200,
];
}
/**
* @param ShortcodeData $shortcode_data
*
* @return string
*/
public function get_value( ShortcodeData $shortcode_data ) {
$item_data = $shortcode_data->get_product_fields_values();
return isset( $item_data['flexible_coupon_recipient_message'] ) ? $item_data['flexible_coupon_recipient_message'] : '';
}
}

View File

@@ -0,0 +1,53 @@
<?php
/**
* Shortcode. Recipeint name.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Shortcodes;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\ShortcodeData;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\Shortcode;
/**
* Recipient name shortcode declaration.
*
* @package WPDesk\FlexibleCouponsPro\Shortcodes
*/
class RecipientName implements Shortcode {
const ID = 'recipient_name';
/**
* @return string
*/
public function get_id() {
return self::ID;
}
/**
* @return array
*/
public function definition() {
return [
'text' => '[recipient_name]',
'top' => 380,
'left' => 20,
'width' => 200,
'height' => 40,
];
}
/**
* @param ShortcodeData $shortcode_data
*
* @return string
*/
public function get_value( ShortcodeData $shortcode_data ) {
$item_data = $shortcode_data->get_product_fields_values();
return isset( $item_data['flexible_coupon_recipient_name'] ) ? $item_data['flexible_coupon_recipient_name'] : '';
}
}

View File

@@ -0,0 +1,51 @@
<?php
/**
* Shortcode. Site url.
*
* @package WPDesk\FlexibleCouponsPro
*/
namespace WPDesk\FlexibleCouponsPro\Shortcodes;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\ShortcodeData;
use FlexibleCouponsProVendor\WPDesk\Library\CouponInterfaces\Shortcode;
/**
* Site URL shortcode declaration.
*
* @package WPDesk\FlexibleCouponsPro\Shortcodes
*/
class SiteUrl implements Shortcode {
const ID = 'siteurl';
/**
* @return string
*/
public function get_id() {
return self::ID;
}
/**
* @return array
*/
public function definition() {
return [
'text' => '[siteurl]',
'top' => 280,
'left' => 300,
'width' => 200,
'height' => 30,
];
}
/**
* @param ShortcodeData $shortcode_data
*
* @return string
*/
public function get_value( ShortcodeData $shortcode_data ) {
return get_site_url();
}
}

View File

@@ -0,0 +1,59 @@
<?php
/**
*
* Coupons Free plugin disabler.
*
* @package WPDesk\FreeDisabler
*/
namespace WPDesk\FC\FreeDisabler;
use FlexibleCouponsProVendor\WPDesk\Notice\Notice;
/**
* Can disable free plugin.
*
* @package WPDesk\FreeDisabler
*/
class FlexibleCouponFreeDisabler {
/**
* Disable Flexible Coupons free.
*/
public static function disable_free() {
add_action( 'wp_builder_plugin_class', static function ( $class ) {
if ( is_a( $class, \WPDesk\FlexibleCoupons\Plugin::class, true )
) {
require_once __DIR__ . '/NullPlugin.php';
self::show_notice();
return NullPlugin::class;
}
return $class;
});
}
/**
* Ensure notice that Free is disabled.
*/
public static function show_notice() {
add_action( 'plugins_loaded', static function () {
if ( class_exists( Notice::class ) ) {
$action = 'deactivate';
$plugin = 'flexible-coupons/flexible-coupons.php';
$url = sprintf( admin_url( 'plugins.php?action=' . $action . '&plugin=%s&plugin_status=all&paged=1&s' ), $plugin );
$url = wp_nonce_url( $url, $action . '-plugin_' . $plugin );
new Notice(
sprintf(
// Translators: link.
__( '"Flexible Coupons PDF for WooCommerce" plugin can be removed now since the PRO version took over its functionalities.%1$s%2$sClick here%3$s to deactivate "Flexible Coupons PDF for WooCommerce" plugin.', 'flexible-coupons-pro' ),
'<br/>',
'<a href="' . $url . '">',
'</a>'
)
);
}
} );
}
}

View File

@@ -0,0 +1,35 @@
<?php
/**
*
* Null plugin.
*
* @package WPDesk\FC\FreeDisabler
*/
namespace WPDesk\FC\FreeDisabler;
use FlexibleCouponsVendor\WPDesk\PluginBuilder\Plugin\SlimPlugin;
/**
* Can be injected into CouponsVendor plugin builder to disable plugin.
*
* @package WPDesk\FreeDisabler
*/
final class NullPlugin extends SlimPlugin {
/**
* Some null text-domain.
*
* @return string
*/
public function get_text_domain() {
return 'null-text-domain';
}
/**
* Disabled init.
*/
public function init() {
// do nothing.
}
}

View File

@@ -0,0 +1,30 @@
<?php
/**
* Email z kuponem
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
<?php do_action( 'woocommerce_email_header', $email_heading, $email ?? '' ); ?>
<h2><?php printf( esc_html__( 'Hi %s,', 'flexible-coupons-pro' ), isset( $meta['flexible_coupon_recipient_name'] ) ? $meta['flexible_coupon_recipient_name'] : '' ); ?></h2>
<p><b><?php printf( __( 'Thanks to %s you get a gift voucher for use in the <a href="%s">%s</a> store. The coupon is valid to %s.', 'flexible-coupons-pro'), $order->get_billing_first_name() . ' ' . $order->get_billing_last_name(), get_site_url(), get_bloginfo('name'), $meta['coupon_expiry'], $date_order ) ; ?></b></p>
<p><a href="<?php echo $meta['coupon_url']; ?>"><?php esc_html_e( 'Download PDF with the coupon &raquo;', 'flexible-coupons-pro'); ?></a></p>
<h2><?php esc_html_e( 'Coupon information', 'flexible-coupons-pro'); ?></h2>
<?php if( isset( $meta['coupon_code'] ) ): ?><p><?php printf( esc_html__( 'Coupon code: %s', 'flexible-coupons-pro'), $meta['coupon_code'] ); ?></p><?php endif; ?>
<?php if( isset( $meta['coupon_value'] ) ): ?><p><?php printf( esc_html__( 'Coupon value: %s', 'flexible-coupons-pro'), $meta['coupon_value'] ); ?></p><?php endif; ?>
<?php if( ! empty( $meta['coupon_expiry'] ) ): ?>
<?php if( isset( $meta['coupon_expiry'] ) ): ?><p><?php printf( esc_html__( 'Expiry date: %s', 'flexible-coupons-pro'), $meta['coupon_expiry'] ); ?></p><?php endif; ?>
<?php endif; ?>
<?php if( isset( $meta['flexible_coupon_recipient_message'] ) && ! empty( $meta['flexible_coupon_recipient_message'] ) ): ?>
<p><?php esc_html_e( 'A message from the buyer:', 'flexible-coupons-pro'); ?></p>
<p><?php echo $meta['flexible_coupon_recipient_message']; ?></p>
<?php endif; ?>
<p><?php esc_html_e( 'Thanks for reading!', 'flexible-coupons-pro'); ?></p>
<?php do_action( 'woocommerce_email_footer' ); ?>

View File

@@ -0,0 +1,39 @@
<?php
/**
* Email z kuponem
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
<?php do_action( 'woocommerce_email_header', $email_heading, $email ?? '' ); ?>
<h1><?php printf( esc_html__( 'Hi %s,', 'flexible-coupons-pro'), $order->get_billing_first_name() . ' ' . $order->get_billing_last_name() ); ?></h1>
<p><b><?php printf( esc_html__( 'In response to an order %s placed %s, we are sending you a coupon for shopping in our shop.', 'flexible-coupons-pro'), $order_number, $date_order ) ; ?></b></p>
<p><a href="<?php echo $meta['coupon_url']; ?>"><?php esc_html_e( 'Download PDF with the coupon &raquo;', 'flexible-coupons-pro'); ?></a></p>
<?php if( isset( $meta['coupon_code'] ) ): ?>
<p><?php printf( esc_html__( 'Coupon code: %s', 'flexible-coupons-pro'), $meta['coupon_code'] ); ?></p>
<p><?php printf( esc_html__( 'Coupon value: %s', 'flexible-coupons-pro'), $meta['coupon_value'] ); ?></p>
<?php if( ! empty( $meta['coupon_expiry'] ) ): ?>
<p><?php printf( esc_html__( 'Expiry date: %s', 'flexible-coupons-pro'), $meta['coupon_expiry'] ); ?></p>
<?php endif; ?>
<?php endif; ?>
<h2><?php esc_html_e( 'Coupon fields:', 'flexible-coupons-pro' ); ?></h2>
<?php
if ( isset( $meta['flexible_coupon_recipient_name'] ) ) {
echo '<p>' . sprintf( esc_html__( 'Recipient name: %s', 'flexible-coupons-pro' ), $meta['flexible_coupon_recipient_name'] ) . '</p>';
}
if ( isset( $meta['flexible_coupon_recipient_email'] ) ) {
echo '<p>' . sprintf( esc_html__( 'Recipient e-mail: %s', 'flexible-coupons-pro' ), $meta['flexible_coupon_recipient_email'] ) . '</p>';
}
if ( isset( $meta['flexible_coupon_recipient_message'] ) ) {
echo '<p>' . sprintf( esc_html__( 'Message for recipient: %s', 'flexible-coupons-pro' ), $meta['flexible_coupon_recipient_message'] ) . '</p>';
}
?>
<p><?php esc_html_e( 'Thanks for reading!', 'flexible-coupons-pro'); ?></p>
<?php do_action( 'woocommerce_email_footer' ); ?>

View File

@@ -0,0 +1,54 @@
<?php
/**
* Email z kuponem (plain text)
*/
/**
* @var $order WC_Order
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
} // Exit if accessed directly
echo $email_heading . "\n\n";
echo "****************************************************";
echo PHP_EOL . PHP_EOL;
printf( esc_html__( 'Hi %s,', 'flexible-coupons-pro' ), isset( $meta['flexible_coupon_recipient_name'] ) ? $meta['flexible_coupon_recipient_name'] : '' );
echo PHP_EOL . PHP_EOL;
printf( esc_html__( 'Thanks to %s you get a gift voucher for use in the %s (%s) store. The coupon is valid to %s.', 'flexible-coupons-pro'), $order->get_billing_first_name() . ' ' . $order->get_billing_last_name(), get_site_url(), get_bloginfo('name'), $meta['coupon_expiry'], $date_order ) ;
echo PHP_EOL . PHP_EOL;
printf( esc_html__( 'Download PDF with the coupon from: %s', 'flexible-coupons-pro'), $meta['coupon_url'] );
echo PHP_EOL . PHP_EOL;
echo esc_html__( 'Coupon information', 'flexible-coupons-pro' ) . PHP_EOL;
if( isset( $meta['coupon_code'] ) ) {
printf( esc_html__( 'Coupon code: %s', 'flexible-coupons-pro' ), $meta['coupon_code'] );
echo PHP_EOL;
printf( esc_html__( 'Coupon value: %s', 'flexible-coupons-pro' ), $meta['coupon_value'] );
echo PHP_EOL;
if( ! empty( $meta['coupon_expiry'] ) ) {
printf( esc_html__( 'Expiry date: %s', 'flexible-coupons-pro' ), $meta['coupon_expiry'] );
}
}
echo PHP_EOL . PHP_EOL;
if ( isset( $meta['flexible_coupon_recipient_message'] ) ) {
esc_html_e( 'A message from the buyer:', 'flexible-coupons-pro');
echo $meta['flexible_coupon_recipient_message'];
}
echo PHP_EOL . PHP_EOL;
esc_html_e( 'Thanks for reading!', 'flexible-coupons-pro');
echo "****************************************************" . PHP_EOL . PHP_EOL;
echo apply_filters( 'woocommerce_email_footer_text', get_option( 'woocommerce_email_footer_text' ) );

View File

@@ -0,0 +1,60 @@
<?php
/**
* Email z kuponem (plain text)
*/
/**
* @var $order WC_Order
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
} // Exit if accessed directly
echo $email_heading . "\n\n";
echo "****************************************************";
echo PHP_EOL . PHP_EOL;
printf( esc_html__( 'Hi %s,', 'flexible-coupons-pro' ), $order->get_billing_first_name() . ' ' . $order->get_billing_last_name() );
echo PHP_EOL . PHP_EOL;
printf( esc_html__( 'In response to an order %s placed %s, we are sending you a coupon for shopping in our shop.', 'flexible-coupons-pro' ), $order_number, $date_order );
echo PHP_EOL . PHP_EOL;
printf( esc_html__( 'Download PDF with the coupon from: %s', 'flexible-coupons-pro' ), $meta['coupon_url'] );
echo PHP_EOL . PHP_EOL;
echo esc_html__( 'Coupon information', 'flexible-coupons-pro' ) . PHP_EOL;
if ( isset( $meta['coupon_code'] ) ) {
printf( esc_html__( 'Coupon code: %s', 'flexible-coupons-pro' ), $meta['coupon_code'] );
printf( esc_html__( 'Coupon value: %s', 'flexible-coupons-pro' ), $meta['coupon_value'] );
if( ! empty( $meta['coupon_expiring'] ) ) {
printf( esc_html__( 'Expiry date: %s', 'flexible-coupons-pro' ), $meta['coupon_expiring'] );
}
}
echo PHP_EOL . PHP_EOL;
esc_html_e( 'Coupon fields:', 'flexible-coupons-pro' );
if ( isset( $meta['flexible_coupon_recipient_name'] ) ) {
printf( esc_html__( 'Recipient name: %s', 'flexible-coupons-pro' ), $meta['flexible_coupon_recipient_name'] );
}
echo PHP_EOL;
if ( isset( $meta['flexible_coupon_recipient_email'] ) ) {
printf( esc_html__( 'Recipient e-mail: %s', 'flexible-coupons-pro' ), $meta['flexible_coupon_recipient_email'] );
}
echo PHP_EOL;
if ( isset( $meta['flexible_coupon_recipient_message'] ) ) {
printf( esc_html__( 'Message for recipient: %s', 'flexible-coupons-pro' ), $meta['flexible_coupon_recipient_message'] );
}
echo PHP_EOL . PHP_EOL;
esc_html_e( 'Thanks for reading!', 'flexible-coupons-pro' );
echo "****************************************************" . PHP_EOL . PHP_EOL;
echo apply_filters( 'woocommerce_email_footer_text', get_option( 'woocommerce_email_footer_text' ) );

View File

@@ -0,0 +1,25 @@
<?php
// autoload.php @generated by Composer
if (PHP_VERSION_ID < 50600) {
if (!headers_sent()) {
header('HTTP/1.1 500 Internal Server Error');
}
$err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
if (!ini_get('display_errors')) {
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
fwrite(STDERR, $err);
} elseif (!headers_sent()) {
echo $err;
}
}
trigger_error(
$err,
E_USER_ERROR
);
}
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitd73f920eb9ed636233c64196737c71fb::getLoader();

View File

@@ -0,0 +1,585 @@
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer\Autoload;
/**
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
*
* $loader = new \Composer\Autoload\ClassLoader();
*
* // register classes with namespaces
* $loader->add('Symfony\Component', __DIR__.'/component');
* $loader->add('Symfony', __DIR__.'/framework');
*
* // activate the autoloader
* $loader->register();
*
* // to enable searching the include path (eg. for PEAR packages)
* $loader->setUseIncludePath(true);
*
* In this example, if you try to use a class in the Symfony\Component
* namespace or one of its children (Symfony\Component\Console for instance),
* the autoloader will first look for the class under the component/
* directory, and it will then fallback to the framework/ directory if not
* found before giving up.
*
* This class is loosely based on the Symfony UniversalClassLoader.
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
* @see https://www.php-fig.org/psr/psr-0/
* @see https://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
/** @var \Closure(string):void */
private static $includeFile;
/** @var ?string */
private $vendorDir;
// PSR-4
/**
* @var array[]
* @psalm-var array<string, array<string, int>>
*/
private $prefixLengthsPsr4 = array();
/**
* @var array[]
* @psalm-var array<string, array<int, string>>
*/
private $prefixDirsPsr4 = array();
/**
* @var array[]
* @psalm-var array<string, string>
*/
private $fallbackDirsPsr4 = array();
// PSR-0
/**
* @var array[]
* @psalm-var array<string, array<string, string[]>>
*/
private $prefixesPsr0 = array();
/**
* @var array[]
* @psalm-var array<string, string>
*/
private $fallbackDirsPsr0 = array();
/** @var bool */
private $useIncludePath = false;
/**
* @var string[]
* @psalm-var array<string, string>
*/
private $classMap = array();
/** @var bool */
private $classMapAuthoritative = false;
/**
* @var bool[]
* @psalm-var array<string, bool>
*/
private $missingClasses = array();
/** @var ?string */
private $apcuPrefix;
/**
* @var self[]
*/
private static $registeredLoaders = array();
/**
* @param ?string $vendorDir
*/
public function __construct($vendorDir = null)
{
$this->vendorDir = $vendorDir;
self::initializeIncludeClosure();
}
/**
* @return string[]
*/
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
}
return array();
}
/**
* @return array[]
* @psalm-return array<string, array<int, string>>
*/
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
/**
* @return array[]
* @psalm-return array<string, string>
*/
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
/**
* @return array[]
* @psalm-return array<string, string>
*/
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
/**
* @return string[] Array of classname => path
* @psalm-return array<string, string>
*/
public function getClassMap()
{
return $this->classMap;
}
/**
* @param string[] $classMap Class to filename map
* @psalm-param array<string, string> $classMap
*
* @return void
*/
public function addClassMap(array $classMap)
{
if ($this->classMap) {
$this->classMap = array_merge($this->classMap, $classMap);
} else {
$this->classMap = $classMap;
}
}
/**
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
* @param string $prefix The prefix
* @param string[]|string $paths The PSR-0 root directories
* @param bool $prepend Whether to prepend the directories
*
* @return void
*/
public function add($prefix, $paths, $prepend = false)
{
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
(array) $paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
(array) $paths
);
}
return;
}
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
(array) $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param string[]|string $paths The PSR-4 base directories
* @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
*
* @return void
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
(array) $paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
(array) $paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
// Register directories for a new namespace.
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
(array) $paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
* @param string $prefix The prefix
* @param string[]|string $paths The PSR-0 base directories
*
* @return void
*/
public function set($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr0 = (array) $paths;
} else {
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
}
}
/**
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param string[]|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
*
* @return void
*/
public function setPsr4($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr4 = (array) $paths;
} else {
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
}
}
/**
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
*
* @return void
*/
public function setUseIncludePath($useIncludePath)
{
$this->useIncludePath = $useIncludePath;
}
/**
* Can be used to check if the autoloader uses the include path to check
* for classes.
*
* @return bool
*/
public function getUseIncludePath()
{
return $this->useIncludePath;
}
/**
* Turns off searching the prefix and fallback directories for classes
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
*
* @return void
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
$this->classMapAuthoritative = $classMapAuthoritative;
}
/**
* Should class lookup fail if not found in the current class map?
*
* @return bool
*/
public function isClassMapAuthoritative()
{
return $this->classMapAuthoritative;
}
/**
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
*
* @return void
*/
public function setApcuPrefix($apcuPrefix)
{
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
}
/**
* The APCu prefix in use, or null if APCu caching is not enabled.
*
* @return string|null
*/
public function getApcuPrefix()
{
return $this->apcuPrefix;
}
/**
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
*
* @return void
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
if (null === $this->vendorDir) {
return;
}
if ($prepend) {
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
} else {
unset(self::$registeredLoaders[$this->vendorDir]);
self::$registeredLoaders[$this->vendorDir] = $this;
}
}
/**
* Unregisters this instance as an autoloader.
*
* @return void
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return true|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
$includeFile = self::$includeFile;
$includeFile($file);
return true;
}
return null;
}
/**
* Finds the path to the file where the class is defined.
*
* @param string $class The name of the class
*
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
return false;
}
if (null !== $this->apcuPrefix) {
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
if ($hit) {
return $file;
}
}
$file = $this->findFileWithExtension($class, '.php');
// Search for Hack files if we are running on HHVM
if (false === $file && defined('HHVM_VERSION')) {
$file = $this->findFileWithExtension($class, '.hh');
}
if (null !== $this->apcuPrefix) {
apcu_add($this->apcuPrefix.$class, $file);
}
if (false === $file) {
// Remember that this class does not exist.
$this->missingClasses[$class] = true;
}
return $file;
}
/**
* Returns the currently registered loaders indexed by their corresponding vendor directories.
*
* @return self[]
*/
public static function getRegisteredLoaders()
{
return self::$registeredLoaders;
}
/**
* @param string $class
* @param string $ext
* @return string|false
*/
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
$first = $class[0];
if (isset($this->prefixLengthsPsr4[$first])) {
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
$search = $subPath . '\\';
if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) {
if (file_exists($file = $dir . $pathEnd)) {
return $file;
}
}
}
}
}
// PSR-4 fallback dirs
foreach ($this->fallbackDirsPsr4 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
return $file;
}
}
// PSR-0 lookup
if (false !== $pos = strrpos($class, '\\')) {
// namespaced class name
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
} else {
// PEAR-like class name
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
}
if (isset($this->prefixesPsr0[$first])) {
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
if (0 === strpos($class, $prefix)) {
foreach ($dirs as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
}
}
}
// PSR-0 fallback dirs
foreach ($this->fallbackDirsPsr0 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
// PSR-0 include paths.
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
return $file;
}
return false;
}
/**
* @return void
*/
private static function initializeIncludeClosure()
{
if (self::$includeFile !== null) {
return;
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*
* @param string $file
* @return void
*/
self::$includeFile = \Closure::bind(static function($file) {
include $file;
}, null, null);
}
}

View File

@@ -0,0 +1,352 @@
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer;
use Composer\Autoload\ClassLoader;
use Composer\Semver\VersionParser;
/**
* This class is copied in every Composer installed project and available to all
*
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
*
* To require its presence, you can require `composer-runtime-api ^2.0`
*
* @final
*/
class InstalledVersions
{
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool|null
*/
private static $canGetVendors;
/**
* @var array[]
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
private static $installedByVendor = array();
/**
* Returns a list of all package names which are present, either by being installed, replaced or provided
*
* @return string[]
* @psalm-return list<string>
*/
public static function getInstalledPackages()
{
$packages = array();
foreach (self::getInstalled() as $installed) {
$packages[] = array_keys($installed['versions']);
}
if (1 === \count($packages)) {
return $packages[0];
}
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
}
/**
* Returns a list of all package names with a specific type e.g. 'library'
*
* @param string $type
* @return string[]
* @psalm-return list<string>
*/
public static function getInstalledPackagesByType($type)
{
$packagesByType = array();
foreach (self::getInstalled() as $installed) {
foreach ($installed['versions'] as $name => $package) {
if (isset($package['type']) && $package['type'] === $type) {
$packagesByType[] = $name;
}
}
}
return $packagesByType;
}
/**
* Checks whether the given package is installed
*
* This also returns true if the package name is provided or replaced by another package
*
* @param string $packageName
* @param bool $includeDevRequirements
* @return bool
*/
public static function isInstalled($packageName, $includeDevRequirements = true)
{
foreach (self::getInstalled() as $installed) {
if (isset($installed['versions'][$packageName])) {
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
}
}
return false;
}
/**
* Checks whether the given package satisfies a version constraint
*
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
*
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
*
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
* @param string $packageName
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
* @return bool
*/
public static function satisfies(VersionParser $parser, $packageName, $constraint)
{
$constraint = $parser->parseConstraints($constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint);
}
/**
* Returns a version constraint representing all the range(s) which are installed for a given package
*
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
* whether a given version of a package is installed, and not just whether it exists
*
* @param string $packageName
* @return string Version constraint usable with composer/semver
*/
public static function getVersionRanges($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
$ranges = array();
if (isset($installed['versions'][$packageName]['pretty_version'])) {
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
}
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
}
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
}
if (array_key_exists('provided', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
}
return implode(' || ', $ranges);
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
*/
public static function getVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['version'])) {
return null;
}
return $installed['versions'][$packageName]['version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
*/
public static function getPrettyVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
return null;
}
return $installed['versions'][$packageName]['pretty_version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
*/
public static function getReference($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['reference'])) {
return null;
}
return $installed['versions'][$packageName]['reference'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
*/
public static function getInstallPath($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @return array
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
*/
public static function getRootPackage()
{
$installed = self::getInstalled();
return $installed[0]['root'];
}
/**
* Returns the raw installed.php data for custom implementations
*
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
* @return array[]
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
*/
public static function getRawData()
{
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
if (null === self::$installed) {
// only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
if (substr(__DIR__, -8, 1) !== 'C') {
self::$installed = include __DIR__ . '/installed.php';
} else {
self::$installed = array();
}
}
return self::$installed;
}
/**
* Returns the raw data of all installed.php which are currently loaded for custom implementations
*
* @return array[]
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
public static function getAllRawData()
{
return self::getInstalled();
}
/**
* Lets you reload the static array from another file
*
* This is only useful for complex integrations in which a project needs to use
* this class but then also needs to execute another project's autoloader in process,
* and wants to ensure both projects have access to their version of installed.php.
*
* A typical case would be PHPUnit, where it would need to make sure it reads all
* the data it needs from this class, then call reload() with
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
* the project in which it runs can then also use this class safely, without
* interference between PHPUnit's dependencies and the project's dependencies.
*
* @param array[] $data A vendor/composer/installed.php data set
* @return void
*
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
*/
public static function reload($data)
{
self::$installed = $data;
self::$installedByVendor = array();
}
/**
* @return array[]
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
private static function getInstalled()
{
if (null === self::$canGetVendors) {
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
}
$installed = array();
if (self::$canGetVendors) {
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
}
}
}
}
if (null === self::$installed) {
// only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
if (substr(__DIR__, -8, 1) !== 'C') {
self::$installed = require __DIR__ . '/installed.php';
} else {
self::$installed = array();
}
}
$installed[] = self::$installed;
return $installed;
}
}

View File

@@ -0,0 +1,730 @@
<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
'FlexibleCouponsProVendor\\Monolog\\Attribute\\AsMonologProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Attribute/AsMonologProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\DateTimeImmutable' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/DateTimeImmutable.php',
'FlexibleCouponsProVendor\\Monolog\\ErrorHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/ErrorHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\ChromePHPFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\ElasticaFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\ElasticsearchFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ElasticsearchFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\FlowdockFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\FluentdFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\FormatterInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\GelfMessageFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\GoogleCloudLoggingFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/GoogleCloudLoggingFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\HtmlFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\JsonFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\LineFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LineFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\LogglyFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\LogmaticFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogmaticFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\LogstashFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\MongoDBFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\NormalizerFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\ScalarFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\WildfireFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\AbstractHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\AbstractProcessingHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\AbstractSyslogHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\AmqpHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AmqpHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\BrowserConsoleHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\BufferHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BufferHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ChromePHPHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\CouchDBHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\CubeHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CubeHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\Curl\\Util' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Curl/Util.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\DeduplicationHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\DoctrineCouchDBHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\DynamoDbHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ElasticaHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ElasticaHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ElasticsearchHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ErrorLogHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FallbackGroupHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FallbackGroupHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FilterHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FilterHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FingersCrossedHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FingersCrossed\\ActivationStrategyInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FingersCrossed\\ChannelLevelActivationStrategy' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FirePHPHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FleepHookHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FlowdockHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FormattableHandlerInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FormattableHandlerTrait' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\GelfHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GelfHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\GroupHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GroupHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\Handler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Handler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\HandlerInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerInterface.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\HandlerWrapper' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\IFTTTHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\InsightOpsHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\LogEntriesHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\LogglyHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogglyHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\LogmaticHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogmaticHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\MailHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MailHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\MandrillHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MandrillHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\MissingExtensionException' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\MongoDBHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\NativeMailerHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\NewRelicHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\NoopHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NoopHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\NullHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NullHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\OverflowHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/OverflowHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\PHPConsoleHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ProcessHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ProcessableHandlerInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ProcessableHandlerTrait' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\PsrHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PsrHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\PushoverHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PushoverHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\RedisHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\RedisPubSubHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisPubSubHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\RollbarHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RollbarHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\RotatingFileHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SamplingHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SamplingHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SendGridHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SendGridHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SlackHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SlackWebhookHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\Slack\\SlackRecord' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SocketHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SocketHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SqsHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SqsHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\StreamHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/StreamHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SwiftMailerHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SymfonyMailerHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SymfonyMailerHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SyslogHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SyslogUdpHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SyslogUdp\\UdpSocket' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\TelegramBotHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\TestHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/TestHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\WebRequestRecognizerTrait' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/WebRequestRecognizerTrait.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\WhatFailureGroupHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ZendMonitorHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php',
'FlexibleCouponsProVendor\\Monolog\\LogRecord' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/LogRecord.php',
'FlexibleCouponsProVendor\\Monolog\\Logger' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Logger.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\GitProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/GitProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\HostnameProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/HostnameProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\IntrospectionProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\MemoryPeakUsageProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\MemoryProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\MemoryUsageProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\MercurialProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\ProcessIdProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\ProcessorInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\PsrLogMessageProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\TagProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/TagProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\UidProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/UidProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\WebProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/WebProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Registry' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Registry.php',
'FlexibleCouponsProVendor\\Monolog\\ResettableInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/ResettableInterface.php',
'FlexibleCouponsProVendor\\Monolog\\SignalHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/SignalHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Test\\TestCase' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Test/TestCase.php',
'FlexibleCouponsProVendor\\Monolog\\Utils' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Utils.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\AbstractBarcode' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/AbstractBarcode.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\BarcodeException' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/BarcodeException.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\BarcodeInterface' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/BarcodeInterface.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Codabar' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Codabar.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Code11' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Code11.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Code128' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Code128.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Code39' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Code39.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Code93' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Code93.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\EanExt' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/EanExt.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\EanUpc' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/EanUpc.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\I25' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/I25.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Imb' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Imb.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Msi' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Msi.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Postnet' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Postnet.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Rm4Scc' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Rm4Scc.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\S25' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Barcode/S25.php',
'FlexibleCouponsProVendor\\Mpdf\\Cache' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Cache.php',
'FlexibleCouponsProVendor\\Mpdf\\Color\\ColorConverter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Color/ColorConverter.php',
'FlexibleCouponsProVendor\\Mpdf\\Color\\ColorModeConverter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Color/ColorModeConverter.php',
'FlexibleCouponsProVendor\\Mpdf\\Color\\ColorSpaceRestrictor' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Color/ColorSpaceRestrictor.php',
'FlexibleCouponsProVendor\\Mpdf\\Color\\NamedColors' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Color/NamedColors.php',
'FlexibleCouponsProVendor\\Mpdf\\Config\\ConfigVariables' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Config/ConfigVariables.php',
'FlexibleCouponsProVendor\\Mpdf\\Config\\FontVariables' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Config/FontVariables.php',
'FlexibleCouponsProVendor\\Mpdf\\Conversion\\DecToAlpha' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Conversion/DecToAlpha.php',
'FlexibleCouponsProVendor\\Mpdf\\Conversion\\DecToCjk' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Conversion/DecToCjk.php',
'FlexibleCouponsProVendor\\Mpdf\\Conversion\\DecToHebrew' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Conversion/DecToHebrew.php',
'FlexibleCouponsProVendor\\Mpdf\\Conversion\\DecToOther' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Conversion/DecToOther.php',
'FlexibleCouponsProVendor\\Mpdf\\Conversion\\DecToRoman' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Conversion/DecToRoman.php',
'FlexibleCouponsProVendor\\Mpdf\\CssManager' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/CssManager.php',
'FlexibleCouponsProVendor\\Mpdf\\Css\\Border' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Css/Border.php',
'FlexibleCouponsProVendor\\Mpdf\\Css\\DefaultCss' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Css/DefaultCss.php',
'FlexibleCouponsProVendor\\Mpdf\\Css\\TextVars' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Css/TextVars.php',
'FlexibleCouponsProVendor\\Mpdf\\DirectWrite' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/DirectWrite.php',
'FlexibleCouponsProVendor\\Mpdf\\Exception\\FontException' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Exception/FontException.php',
'FlexibleCouponsProVendor\\Mpdf\\Exception\\InvalidArgumentException' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Exception/InvalidArgumentException.php',
'FlexibleCouponsProVendor\\Mpdf\\File\\StreamWrapperChecker' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/File/StreamWrapperChecker.php',
'FlexibleCouponsProVendor\\Mpdf\\Fonts\\FontCache' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Fonts/FontCache.php',
'FlexibleCouponsProVendor\\Mpdf\\Fonts\\FontFileFinder' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Fonts/FontFileFinder.php',
'FlexibleCouponsProVendor\\Mpdf\\Fonts\\GlyphOperator' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Fonts/GlyphOperator.php',
'FlexibleCouponsProVendor\\Mpdf\\Fonts\\MetricsGenerator' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Fonts/MetricsGenerator.php',
'FlexibleCouponsProVendor\\Mpdf\\Form' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Form.php',
'FlexibleCouponsProVendor\\Mpdf\\FpdiTrait' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/FpdiTrait.php',
'FlexibleCouponsProVendor\\Mpdf\\Gif\\ColorTable' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Gif/ColorTable.php',
'FlexibleCouponsProVendor\\Mpdf\\Gif\\FileHeader' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Gif/FileHeader.php',
'FlexibleCouponsProVendor\\Mpdf\\Gif\\Gif' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Gif/Gif.php',
'FlexibleCouponsProVendor\\Mpdf\\Gif\\Image' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Gif/Image.php',
'FlexibleCouponsProVendor\\Mpdf\\Gif\\ImageHeader' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Gif/ImageHeader.php',
'FlexibleCouponsProVendor\\Mpdf\\Gif\\Lzw' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Gif/Lzw.php',
'FlexibleCouponsProVendor\\Mpdf\\Gradient' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Gradient.php',
'FlexibleCouponsProVendor\\Mpdf\\HTMLParserMode' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/HTMLParserMode.php',
'FlexibleCouponsProVendor\\Mpdf\\Hyphenator' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Hyphenator.php',
'FlexibleCouponsProVendor\\Mpdf\\Image\\Bmp' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Image/Bmp.php',
'FlexibleCouponsProVendor\\Mpdf\\Image\\ImageProcessor' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Image/ImageProcessor.php',
'FlexibleCouponsProVendor\\Mpdf\\Image\\ImageTypeGuesser' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Image/ImageTypeGuesser.php',
'FlexibleCouponsProVendor\\Mpdf\\Image\\Svg' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Image/Svg.php',
'FlexibleCouponsProVendor\\Mpdf\\Image\\Wmf' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Image/Wmf.php',
'FlexibleCouponsProVendor\\Mpdf\\Language\\LanguageToFont' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Language/LanguageToFont.php',
'FlexibleCouponsProVendor\\Mpdf\\Language\\LanguageToFontInterface' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Language/LanguageToFontInterface.php',
'FlexibleCouponsProVendor\\Mpdf\\Language\\ScriptToLanguage' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Language/ScriptToLanguage.php',
'FlexibleCouponsProVendor\\Mpdf\\Language\\ScriptToLanguageInterface' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Language/ScriptToLanguageInterface.php',
'FlexibleCouponsProVendor\\Mpdf\\Log\\Context' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Log/Context.php',
'FlexibleCouponsProVendor\\Mpdf\\Mpdf' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Mpdf.php',
'FlexibleCouponsProVendor\\Mpdf\\MpdfException' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/MpdfException.php',
'FlexibleCouponsProVendor\\Mpdf\\MpdfImageException' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/MpdfImageException.php',
'FlexibleCouponsProVendor\\Mpdf\\Otl' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Otl.php',
'FlexibleCouponsProVendor\\Mpdf\\OtlDump' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/OtlDump.php',
'FlexibleCouponsProVendor\\Mpdf\\Output\\Destination' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Output/Destination.php',
'FlexibleCouponsProVendor\\Mpdf\\PageFormat' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/PageFormat.php',
'FlexibleCouponsProVendor\\Mpdf\\Pdf\\Protection' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Pdf/Protection.php',
'FlexibleCouponsProVendor\\Mpdf\\Pdf\\Protection\\UniqidGenerator' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Pdf/Protection/UniqidGenerator.php',
'FlexibleCouponsProVendor\\Mpdf\\RemoteContentFetcher' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/RemoteContentFetcher.php',
'FlexibleCouponsProVendor\\Mpdf\\ServiceFactory' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/ServiceFactory.php',
'FlexibleCouponsProVendor\\Mpdf\\Shaper\\Indic' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Shaper/Indic.php',
'FlexibleCouponsProVendor\\Mpdf\\Shaper\\Myanmar' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Shaper/Myanmar.php',
'FlexibleCouponsProVendor\\Mpdf\\Shaper\\Sea' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Shaper/Sea.php',
'FlexibleCouponsProVendor\\Mpdf\\SizeConverter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/SizeConverter.php',
'FlexibleCouponsProVendor\\Mpdf\\Strict' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Strict.php',
'FlexibleCouponsProVendor\\Mpdf\\TTFontFile' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/TTFontFile.php',
'FlexibleCouponsProVendor\\Mpdf\\TTFontFileAnalysis' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/TTFontFileAnalysis.php',
'FlexibleCouponsProVendor\\Mpdf\\TableOfContents' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/TableOfContents.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\A' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/A.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Acronym' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Acronym.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Address' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Address.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Annotation' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Annotation.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Article' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Article.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Aside' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Aside.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\B' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/B.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\BarCode' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/BarCode.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Bdi' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Bdi.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Bdo' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Bdo.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Big' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Big.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\BlockQuote' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/BlockQuote.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\BlockTag' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/BlockTag.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Bookmark' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Bookmark.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Br' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Br.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Caption' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Caption.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Center' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Center.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Cite' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Cite.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Code' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Code.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\ColumnBreak' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/ColumnBreak.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Columns' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Columns.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Dd' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Dd.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Del' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Del.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Details' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Details.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Div' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Div.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Dl' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Dl.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\DotTab' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/DotTab.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Dt' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Dt.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Em' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Em.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\FieldSet' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/FieldSet.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\FigCaption' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/FigCaption.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Figure' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Figure.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Font' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Font.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Footer' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Footer.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Form' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Form.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\FormFeed' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/FormFeed.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\H1' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/H1.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\H2' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/H2.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\H3' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/H3.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\H4' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/H4.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\H5' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/H5.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\H6' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/H6.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\HGroup' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/HGroup.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Header' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Header.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Hr' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Hr.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\I' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/I.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Img' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Img.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\IndexEntry' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/IndexEntry.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\IndexInsert' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/IndexInsert.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\InlineTag' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/InlineTag.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Input' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Input.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Ins' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Ins.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Kbd' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Kbd.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Legend' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Legend.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Li' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Li.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Main' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Main.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Mark' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Mark.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Meter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Meter.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Nav' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Nav.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\NewColumn' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/NewColumn.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\NewPage' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/NewPage.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Ol' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Ol.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Option' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Option.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\P' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/P.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\PageBreak' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/PageBreak.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\PageFooter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/PageFooter.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\PageHeader' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/PageHeader.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Pre' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Pre.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Progress' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Progress.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Q' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Q.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\S' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/S.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Samp' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Samp.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Section' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Section.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Select' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Select.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\SetHtmlPageFooter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/SetHtmlPageFooter.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\SetHtmlPageHeader' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/SetHtmlPageHeader.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\SetPageFooter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/SetPageFooter.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\SetPageHeader' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/SetPageHeader.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Small' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Small.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Span' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Span.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Strike' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Strike.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Strong' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Strong.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Sub' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Sub.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\SubstituteTag' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/SubstituteTag.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Summary' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Summary.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Sup' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Sup.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\TBody' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/TBody.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\TFoot' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/TFoot.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\THead' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/THead.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Table' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Table.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Tag' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Tag.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Td' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Td.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\TextArea' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/TextArea.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\TextCircle' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/TextCircle.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Th' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Th.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Time' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Time.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Toc' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Toc.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\TocEntry' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/TocEntry.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\TocPageBreak' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/TocPageBreak.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Tr' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Tr.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Tt' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Tt.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Tta' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Tta.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Tts' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Tts.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Ttz' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Ttz.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\U' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/U.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Ul' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/Ul.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\VarTag' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/VarTag.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\WatermarkImage' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/WatermarkImage.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\WatermarkText' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Tag/WatermarkText.php',
'FlexibleCouponsProVendor\\Mpdf\\Ucdn' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Ucdn.php',
'FlexibleCouponsProVendor\\Mpdf\\Utils\\Arrays' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Utils/Arrays.php',
'FlexibleCouponsProVendor\\Mpdf\\Utils\\NumericString' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Utils/NumericString.php',
'FlexibleCouponsProVendor\\Mpdf\\Utils\\PdfDate' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Utils/PdfDate.php',
'FlexibleCouponsProVendor\\Mpdf\\Utils\\UtfString' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Utils/UtfString.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\BackgroundWriter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Writer/BackgroundWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\BaseWriter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Writer/BaseWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\BookmarkWriter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Writer/BookmarkWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\ColorWriter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Writer/ColorWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\FontWriter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Writer/FontWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\FormWriter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Writer/FormWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\ImageWriter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Writer/ImageWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\JavaScriptWriter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Writer/JavaScriptWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\MetadataWriter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Writer/MetadataWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\ObjectWriter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Writer/ObjectWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\OptionalContentWriter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Writer/OptionalContentWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\PageWriter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Writer/PageWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\ResourceWriter' => $baseDir . '/vendor_prefixed/mpdf/mpdf/src/Writer/ResourceWriter.php',
'FlexibleCouponsProVendor\\WPDesk\\Codeception\\Command\\AcceptanceTestGenerator' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Codeception/Command/AcceptanceTestGenerator.php',
'FlexibleCouponsProVendor\\WPDesk\\Codeception\\Command\\GeneratePluginActivation' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Codeception/Command/GeneratePluginActivation.php',
'FlexibleCouponsProVendor\\WPDesk\\Codeception\\Command\\GenerateWooCommerce' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Codeception/Command/GenerateWooCommerce.php',
'FlexibleCouponsProVendor\\WPDesk\\Codeception\\Command\\WooCommerceTestGenerator' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Codeception/Command/WooCommerceTestGenerator.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\CommandProvider' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/CommandProvider.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\BaseCommand' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/BaseCommand.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\Configuration' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/Configuration.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\CreateCodeceptionTests' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/CreateCodeceptionTests.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\LocalCodeceptionTrait' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/LocalCodeceptionTrait.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\PrepareCodeceptionDb' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/PrepareCodeceptionDb.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\PrepareLocalCodeceptionTests' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/PrepareLocalCodeceptionTests.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\PrepareLocalCodeceptionTestsWithCoverage' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/PrepareLocalCodeceptionTestsWithCoverage.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\PrepareParallelCodeceptionTests' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/PrepareParallelCodeceptionTests.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\PrepareWordpressForCodeception' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/PrepareWordpressForCodeception.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\RunCodeceptionTests' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunCodeceptionTests.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\RunLocalCodeceptionTests' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunLocalCodeceptionTests.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\RunLocalCodeceptionTestsWithCoverage' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunLocalCodeceptionTestsWithCoverage.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\SedTrait' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/SedTrait.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\SettingsException' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/SettingsException.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Plugin' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Plugin.php',
'FlexibleCouponsProVendor\\WPDesk\\Dashboard\\DashboardWidget' => $baseDir . '/vendor_prefixed/wpdesk/ltv-dashboard-widget/src/DashboardWidget.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\ContainerForm' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/ContainerForm.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Escaper' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Escaper.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\FieldProvider' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/FieldProvider.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\FieldRenderer' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/FieldRenderer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\BasicField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/BasicField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\ButtonField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/ButtonField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\CheckboxField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/CheckboxField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\DateField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/DateField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\DatePickerField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/DatePickerField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\Header' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/Header.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\HiddenField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/HiddenField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\ImageInputField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/ImageInputField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\InputNumberField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/InputNumberField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\InputTextField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/InputTextField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\MultipleInputTextField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/MultipleInputTextField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\NoOnceField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/NoOnceField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\NoValueField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/NoValueField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\Paragraph' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/Paragraph.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\ProductSelect' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/ProductSelect.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\RadioField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/RadioField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\SelectField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/SelectField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\SubmitField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/SubmitField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\TextAreaField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/TextAreaField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\TimepickerField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/TimepickerField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\Traits\\HtmlAttributes' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/Traits/HtmlAttributes.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\WooSelect' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/WooSelect.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\WyswigField' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Field/WyswigField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\FieldsDataReceiver' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/FieldsDataReceiver.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Form' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Form.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Form\\AbstractForm' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Form/AbstractForm.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Form\\FormWithFields' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Form/FormWithFields.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Form\\FormsCollection' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Form/FormsCollection.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Persistence\\FieldPersistenceStrategy' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Persistence/FieldPersistenceStrategy.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Renderer\\JsonNormalizedRenderer' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Renderer/JsonNormalizedRenderer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Resolver\\DefaultFormFieldResolver' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Resolver/DefaultFormFieldResolver.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Sanitizer' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Sanitizer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Sanitizer\\CallableSanitizer' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Sanitizer/CallableSanitizer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Sanitizer\\NoSanitize' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Sanitizer/NoSanitize.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Sanitizer\\TextFieldSanitizer' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Sanitizer/TextFieldSanitizer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Serializer' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Serializer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Serializer\\JsonSerializer' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Serializer/JsonSerializer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Serializer\\NoSerialize' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Serializer/NoSerialize.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Serializer\\ProductSelectSerializer' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Serializer/ProductSelectSerializer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Serializer\\SerializeSerializer' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Serializer/SerializeSerializer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Validator' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Validator.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Validator\\ChainValidator' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Validator/ChainValidator.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Validator\\NoValidateValidator' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Validator/NoValidateValidator.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Validator\\NonceValidator' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Validator/NonceValidator.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Validator\\RequiredValidator' => $baseDir . '/vendor_prefixed/wpdesk/wp-forms/src/Validator/RequiredValidator.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\EditorAreaProperties' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/EditorAreaProperties.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\EditorIntegration' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/EditorIntegration.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\Email' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/Email.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\Fonts' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/Fonts.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\PDF' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/PDF.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\PDFLibrary' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/PDFLibrary.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\ProductFields' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/ProductFields.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\Shortcode' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/Shortcode.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\ShortcodeData' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/ShortcodeData.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\Abstracts\\BoxInterface' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/Abstracts/BoxInterface.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\Api\\Client' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/Api/Client.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\Assets' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/Assets.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxRenderer' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxRenderer.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxType\\Box' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxType/Box.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxType\\ImageBox' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxType/ImageBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxType\\SimpleBox' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxType/SimpleBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxType\\SliderBox' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxType/SliderBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxType\\UnknownBox' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxType/UnknownBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxType\\VideoBox' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxType/VideoBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\Helpers\\BBCodes' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/Helpers/BBCodes.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\Helpers\\Cache' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/Helpers/Cache.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\Helpers\\Markers' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/Helpers/Markers.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\MarketingBoxes' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/MarketingBoxes.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\RatePlugin\\RateBox' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/RatePlugin/RateBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\Abstracts\\EditorProperties' => $baseDir . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/Abstracts/EditorProperties.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\AjaxHandler' => $baseDir . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/AjaxHandler.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\AreaProperties' => $baseDir . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/AreaProperties.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\Assets' => $baseDir . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/Assets.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\CustomizeEditPage' => $baseDir . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/CustomizeEditPage.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\EditorImplementation' => $baseDir . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/EditorImplementation.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\Exceptions\\EditorException' => $baseDir . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/Exceptions/EditorException.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\RegisterPostType' => $baseDir . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/RegisterPostType.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Cart\\Cart' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Cart/Cart.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Coupon\\Coupon' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Coupon/Coupon.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Coupon\\CouponCode' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Coupon/CouponCode.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Coupon\\CouponMeta' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Coupon/CouponMeta.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Coupon\\GenerateCoupon' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Coupon/GenerateCoupon.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\CouponsIntegration' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/CouponsIntegration.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Email\\FlexibleCouponsBaseEmail' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Email/FlexibleCouponsBaseEmail.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Exception\\EmailException' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Exception/EmailException.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Helpers\\EmailStrings' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Helpers/EmailStrings.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Helpers\\Links' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Helpers/Links.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Helpers\\Plugin' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Helpers/Plugin.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\Assets' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/Assets.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\Helper' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/Helper.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\MyAccount' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/MyAccount.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\NullProductFields' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/NullProductFields.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\PostMeta' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/PostMeta.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\SampleTemplates' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/SampleTemplates.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\ShortCodeReplacer' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/ShortCodeReplacer.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Order\\MakeOrder' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Order/MakeOrder.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Order\\OrderMetaBox' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Order/OrderMetaBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PDF\\Config' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PDF/Config.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PDF\\Download' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PDF/Download.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PDF\\FontsData' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PDF/FontsData.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PDF\\Items' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PDF/Items.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PDF\\PDF' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PDF/PDF.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PDF\\PDFWrapper' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PDF/PDFWrapper.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PluginAccess' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PluginAccess.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Product\\ProductEditPage' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Product/ProductEditPage.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Product\\ProductVariationEditPage' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Product/ProductVariationEditPage.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Product\\SaveProductSimpleData' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Product/SaveProductSimpleData.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Product\\SaveProductVariationData' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Product/SaveProductVariationData.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Fields\\DisableFieldProAdapter' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Fields/DisableFieldProAdapter.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Fields\\LinkField' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Fields/LinkField.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Fields\\MultipleInputTextField' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Fields/MultipleInputTextField.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Fields\\WysiwygField' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Fields/WysiwygField.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\SettingsForm' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/SettingsForm.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Tabs\\CouponSettings' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Tabs/CouponSettings.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Tabs\\EmailSettings' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Tabs/EmailSettings.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Tabs\\FieldSettingsTab' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Tabs/FieldSettingsTab.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Tabs\\MainSettings' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Tabs/MainSettings.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Tabs\\SettingsTab' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Tabs/SettingsTab.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Shortcodes\\CouponCode' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Shortcodes/CouponCode.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Shortcodes\\CouponValue' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Shortcodes/CouponValue.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Shortcodes\\ShortcodeDataContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Shortcodes/ShortcodeDataContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\ActivationForm\\AjaxHandler' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ActivationForm/AjaxHandler.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\ActivationForm\\FormContentRenderer' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ActivationForm/FormContentRenderer.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\ActivationForm\\PluginsPageRenderer' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ActivationForm/PluginsPageRenderer.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\ActivationForm\\Renderer' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ActivationForm/Renderer.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Changelog\\Filter\\ByVersion' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Changelog/Filter/ByVersion.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Changelog\\Formatter' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Changelog/Formatter.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Changelog\\Parser' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Changelog/Parser.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Changelog\\Parser\\Line' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Changelog/Parser/Line.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\InstalledPlugins' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/InstalledPlugins.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\LicenseManager' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/LicenseManager.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\LicenseServer\\PluginExternalBlocking' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/LicenseServer/PluginExternalBlocking.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\LicenseServer\\PluginLicense' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/LicenseServer/PluginLicense.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\LicenseServer\\PluginRegistrator' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/LicenseServer/PluginRegistrator.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\LicenseServer\\PluginUpgrade' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/LicenseServer/PluginUpgrade.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\LicenseServer\\PluginViewVersionInfo' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/LicenseServer/PluginViewVersionInfo.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\OldLicenseRegistrator' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/OldLicenseRegistrator.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\Action' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/Action.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\LicensePage' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/LicensePage.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\LicensePageActions' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/LicensePageActions.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\License\\Action\\AbstractAction' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/AbstractAction.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\License\\Action\\ActionError' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/ActionError.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\License\\Action\\LicenseActivation' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseActivation.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\License\\Action\\LicenseDeactivation' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseDeactivation.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\License\\Action\\Nothing' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/Nothing.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\PluginLicense' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/PluginLicense.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\PluginRegistrator' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/PluginRegistrator.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\PluginRegistratorInterface' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/PluginRegistratorInterface.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\ServerAddressRepository' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ServerAddressRepository.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\WpUpgrader\\SubscriptionHandler' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/WpUpgrader/SubscriptionHandler.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\BasicLoggerFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/BasicLoggerFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\LoggerFacade' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/LoggerFacade.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\LoggerFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/LoggerFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\Settings' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/Settings.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\SimpleLoggerFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/SimpleLoggerFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\WC\\Exception\\WCLoggerAlreadyCaptured' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/WC/Exception/WCLoggerAlreadyCaptured.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\WC\\WooCommerceCapture' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/WC/WooCommerceCapture.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\WC\\WooCommerceHandler' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/WC/WooCommerceHandler.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\WC\\WooCommerceMonologPlugin' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/WC/WooCommerceMonologPlugin.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\WPDeskLoggerFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/WPDeskLoggerFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\WP\\WPCapture' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/WP/WPCapture.php',
'FlexibleCouponsProVendor\\WPDesk\\Notice\\AjaxHandler' => $baseDir . '/vendor_prefixed/wpdesk/wp-notice/src/WPDesk/Notice/AjaxHandler.php',
'FlexibleCouponsProVendor\\WPDesk\\Notice\\Factory' => $baseDir . '/vendor_prefixed/wpdesk/wp-notice/src/WPDesk/Notice/Factory.php',
'FlexibleCouponsProVendor\\WPDesk\\Notice\\Notice' => $baseDir . '/vendor_prefixed/wpdesk/wp-notice/src/WPDesk/Notice/Notice.php',
'FlexibleCouponsProVendor\\WPDesk\\Notice\\PermanentDismissibleNotice' => $baseDir . '/vendor_prefixed/wpdesk/wp-notice/src/WPDesk/Notice/PermanentDismissibleNotice.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\ArrayContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/ArrayContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\ReferenceArrayContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/ReferenceArrayContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WooCommerce\\WooCommerceSessionContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WooCommerce/WooCommerceSessionContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WooCommerce\\WooCommerceSettingsContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WooCommerce/WooCommerceSettingsContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WooCommerce\\WooCommerceShippingInstanceContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WooCommerce/WooCommerceShippingInstanceContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WordPress\\WordpressOptionsContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WordPress/WordpressOptionsContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WordPress\\WordpressPostMetaContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WordPress/WordpressPostMetaContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WordPress\\WordpressSerializedOptionsContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WordPress/WordpressSerializedOptionsContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WordPress\\WordpressTransientContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WordPress/WordpressTransientContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\AllDataAccessContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/AllDataAccessContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Decorator\\DelayPersistentContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/Decorator/DelayPersistentContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Decorator\\DelaySinglePersistentContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/Decorator/DelaySinglePersistentContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Decorator\\SerializedPersistentContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/Decorator/SerializedPersistentContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\DeferredPersistentContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/DeferredPersistentContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\ElementNotExistsException' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/ElementNotExistsException.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\FallbackFromGetTrait' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/FallbackFromGetTrait.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\PersistentContainer' => $baseDir . '/vendor_prefixed/wpdesk/wp-persistence/src/PersistentContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\BuildDirector\\LegacyBuildDirector' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/BuildDirector/LegacyBuildDirector.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Builder\\AbstractBuilder' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/AbstractBuilder.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Builder\\InfoActivationBuilder' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/InfoActivationBuilder.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Builder\\InfoBuilder' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/InfoBuilder.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\AbstractPlugin' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/AbstractPlugin.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\Activateable' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Activateable.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\ActivationAware' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationAware.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\ActivationTracker' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationTracker.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\Conditional' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Conditional.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\Deactivateable' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Deactivateable.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\Hookable' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Hookable.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\HookableCollection' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableCollection.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\HookableParent' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableParent.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\HookablePluginDependant' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookablePluginDependant.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\PluginAccess' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/PluginAccess.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\SlimPlugin' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/SlimPlugin.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\TemplateLoad' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/TemplateLoad.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Storage\\Exception\\ClassAlreadyExists' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/Exception/ClassAlreadyExists.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Storage\\Exception\\ClassNotExists' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/Exception/ClassNotExists.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Storage\\PluginStorage' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/PluginStorage.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Storage\\StaticStorage' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/StaticStorage.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Storage\\StorageFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/StorageFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Storage\\WordpressFilterStorage' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/WordpressFilterStorage.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\BuilderTrait' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/BuilderTrait.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\InitializationFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/InitializationFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\InitializationStrategy' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/InitializationStrategy.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\PluginDisablerByFileTrait' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/PluginDisablerByFileTrait.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimpleFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/Simple/SimpleFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimpleFreeStrategy' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/Simple/SimpleFreeStrategy.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimplePaidStrategy' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/Simple/SimplePaidStrategy.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\TrackerInstanceAsFilterTrait' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/TrackerInstanceAsFilterTrait.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\PluginBootstrap' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/PluginBootstrap.php',
'FlexibleCouponsProVendor\\WPDesk\\Tracker\\Assets' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/PSR/WPDesk/Tracker/Assets.php',
'FlexibleCouponsProVendor\\WPDesk\\Tracker\\OptInOptOut' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/PSR/WPDesk/Tracker/OptInOptOut.php',
'FlexibleCouponsProVendor\\WPDesk\\Tracker\\OptInPage' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/PSR/WPDesk/Tracker/OptInPage.php',
'FlexibleCouponsProVendor\\WPDesk\\Tracker\\OptOut' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/PSR/WPDesk/Tracker/OptOut.php',
'FlexibleCouponsProVendor\\WPDesk\\Tracker\\PluginActionLinks' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/PSR/WPDesk/Tracker/PluginActionLinks.php',
'FlexibleCouponsProVendor\\WPDesk\\Tracker\\Shop' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/PSR/WPDesk/Tracker/Shop.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\PluginViewBuilder' => $baseDir . '/vendor_prefixed/wpdesk/wp-view/src/PluginViewBuilder.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Renderer\\LoadTemplatePlugin' => $baseDir . '/vendor_prefixed/wpdesk/wp-view/src/Renderer/LoadTemplatePlugin.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Renderer\\Renderer' => $baseDir . '/vendor_prefixed/wpdesk/wp-view/src/Renderer/Renderer.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Renderer\\SimplePhpRenderer' => $baseDir . '/vendor_prefixed/wpdesk/wp-view/src/Renderer/SimplePhpRenderer.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Resolver\\ChainResolver' => $baseDir . '/vendor_prefixed/wpdesk/wp-view/src/Resolver/ChainResolver.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Resolver\\DirResolver' => $baseDir . '/vendor_prefixed/wpdesk/wp-view/src/Resolver/DirResolver.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Resolver\\Exception\\CanNotResolve' => $baseDir . '/vendor_prefixed/wpdesk/wp-view/src/Resolver/Exception/CanNotResolve.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Resolver\\NullResolver' => $baseDir . '/vendor_prefixed/wpdesk/wp-view/src/Resolver/NullResolver.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Resolver\\Resolver' => $baseDir . '/vendor_prefixed/wpdesk/wp-view/src/Resolver/Resolver.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Resolver\\WPThemeResolver' => $baseDir . '/vendor_prefixed/wpdesk/wp-view/src/Resolver/WPThemeResolver.php',
'FlexibleCouponsProVendor\\WPDesk_API_KEY' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-key-api.php',
'FlexibleCouponsProVendor\\WPDesk_API_MENU' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
'FlexibleCouponsProVendor\\WPDesk_API_Manager_With_Update_Flag' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php',
'FlexibleCouponsProVendor\\WPDesk_API_Password_Management' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-passwords.php',
'FlexibleCouponsProVendor\\WPDesk_Basic_Requirement_Checker' => $baseDir . '/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php',
'FlexibleCouponsProVendor\\WPDesk_Basic_Requirement_Checker_Factory' => $baseDir . '/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker_Factory.php',
'FlexibleCouponsProVendor\\WPDesk_Basic_Requirement_Checker_With_Update_Disable' => $baseDir . '/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker_With_Update_Disable.php',
'FlexibleCouponsProVendor\\WPDesk_Buildable' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Buildable.php',
'FlexibleCouponsProVendor\\WPDesk_Has_Plugin_Info' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Has_Plugin_Info.php',
'FlexibleCouponsProVendor\\WPDesk_Helper_List_Table' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/class-wpdesk-helper-list-table.php',
'FlexibleCouponsProVendor\\WPDesk_Logger' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php',
'FlexibleCouponsProVendor\\WPDesk_Logger_Factory' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/deprecated/wpdesk-logger-factory.php',
'FlexibleCouponsProVendor\\WPDesk_Plugin_Info' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Plugin_Info.php',
'FlexibleCouponsProVendor\\WPDesk_Requirement_Checker' => $baseDir . '/vendor_prefixed/wpdesk/wp-basic-requirements/src/Requirement_Checker.php',
'FlexibleCouponsProVendor\\WPDesk_Requirement_Checker_Factory' => $baseDir . '/vendor_prefixed/wpdesk/wp-basic-requirements/src/Requirement_Checker_Factory.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/class-wpdesk-tracker.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Gateways' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-gateways.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Identification' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-identification.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Identification_Gdpr' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-identification-gdpr.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Jetpack' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-jetpack.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_License_Emails' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-license-emails.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Orders' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-orders.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Orders_Country' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-orders-country.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Orders_Month' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-orders-month.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Plugins' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-plugins.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Products' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-products.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Products_Variations' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-products-variations.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Server' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-server.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Settings' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-settings.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Shipping_Classes' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-shipping-classes.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Shipping_Methods' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-shipping-methods.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Shipping_Methods_Zones' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-shipping-methods-zones.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Templates' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-templates.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Theme' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-theme.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_User_Agent' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-user-agent.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Users' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-users.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Wordpress' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-wordpress.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Factory_Prefixed' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/class-wpdesk-tracker-factory-prefixed.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Interface' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/class-wpdesk-tracker-interface.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Persistence_Consent' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/persistence/class-wpdesk-tracker-persistence-consent.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Sender' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Sender_Exception_WpError' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Sender_Logged' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-logged.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
'FlexibleCouponsProVendor\\WPDesk_Translable' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translable.php',
'FlexibleCouponsProVendor\\WPDesk_Translatable' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translatable.php',
'FlexibleCouponsProVendor\\WPDesk_Update_API_Check' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\FpdfTpl' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/FpdfTpl.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\FpdfTplTrait' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/FpdfTplTrait.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\FpdfTrait' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/FpdfTrait.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\Fpdi' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/Fpdi.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\FpdiException' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/FpdiException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\FpdiTrait' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/FpdiTrait.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\GraphicsState' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/GraphicsState.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\Math\\Matrix' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/Math/Matrix.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\Math\\Vector' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/Math/Vector.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\CrossReference\\AbstractReader' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/CrossReference/AbstractReader.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\CrossReference\\CrossReference' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/CrossReference/CrossReference.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\CrossReference\\CrossReferenceException' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/CrossReference/CrossReferenceException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\CrossReference\\FixedReader' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/CrossReference/FixedReader.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\CrossReference\\LineReader' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/CrossReference/LineReader.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\CrossReference\\ReaderInterface' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/CrossReference/ReaderInterface.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\Ascii85' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/Ascii85.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\Ascii85Exception' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/Ascii85Exception.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\AsciiHex' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/AsciiHex.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\FilterException' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/FilterException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\FilterInterface' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/FilterInterface.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\Flate' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/Flate.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\FlateException' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/FlateException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\Lzw' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/Lzw.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\LzwException' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/LzwException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\PdfParser' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/PdfParser.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\PdfParserException' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/PdfParserException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\StreamReader' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/StreamReader.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Tokenizer' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Tokenizer.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfArray' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfArray.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfBoolean' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfBoolean.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfDictionary' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfDictionary.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfHexString' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfHexString.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfIndirectObject' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfIndirectObject.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfIndirectObjectReference' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfIndirectObjectReference.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfName' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfName.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfNull' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfNull.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfNumeric' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfNumeric.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfStream' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfStream.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfString' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfString.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfToken' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfToken.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfType' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfType.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfTypeException' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfTypeException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfReader\\DataStructure\\Rectangle' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfReader/DataStructure/Rectangle.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfReader\\Page' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfReader/Page.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfReader\\PageBoundaries' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfReader/PageBoundaries.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfReader\\PdfReader' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfReader/PdfReader.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfReader\\PdfReaderException' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/PdfReader/PdfReaderException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\TcpdfFpdi' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/TcpdfFpdi.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\Tcpdf\\Fpdi' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/Tcpdf/Fpdi.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\Tfpdf\\FpdfTpl' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/Tfpdf/FpdfTpl.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\Tfpdf\\Fpdi' => $baseDir . '/vendor_prefixed/setasign/fpdi/src/Tfpdf/Fpdi.php',
'Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php',
'Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php',
'Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php',
'Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/Psr/Log/AbstractLogger.php',
'Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/Psr/Log/InvalidArgumentException.php',
'Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/Psr/Log/LogLevel.php',
'Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareInterface.php',
'Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareTrait.php',
'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php',
'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php',
'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php',
'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/DummyTest.php',
'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
'WPDesk\\Dashboard\\DashboardWidget' => $vendorDir . '/wpdesk/ltv-dashboard-widget/src/DashboardWidget.php',
'WPDesk\\FlexibleCouponsPro\\Coupons\\AdminPage' => $baseDir . '/src/Plugin/Coupons/AdminPage.php',
'WPDesk\\FlexibleCouponsPro\\Email\\BaseEmail' => $baseDir . '/src/Plugin/Email/BaseEmail.php',
'WPDesk\\FlexibleCouponsPro\\Email\\BuyerEmail' => $baseDir . '/src/Plugin/Email/BuyerEmail.php',
'WPDesk\\FlexibleCouponsPro\\Email\\RecipientEmail' => $baseDir . '/src/Plugin/Email/RecipientEmail.php',
'WPDesk\\FlexibleCouponsPro\\Email\\RegisterEmails' => $baseDir . '/src/Plugin/Email/RegisterEmails.php',
'WPDesk\\FlexibleCouponsPro\\Email\\StringAttachments' => $baseDir . '/src/Plugin/Email/StringAttachments.php',
'WPDesk\\FlexibleCouponsPro\\Integration' => $baseDir . '/src/Plugin/Integration.php',
'WPDesk\\FlexibleCouponsPro\\Marketing\\SupportLinks' => $baseDir . '/src/Plugin/Marketing/SupportLinks.php',
'WPDesk\\FlexibleCouponsPro\\Marketing\\SupportMenuPage' => $baseDir . '/src/Plugin/Marketing/SupportMenuPage.php',
'WPDesk\\FlexibleCouponsPro\\Plugin' => $baseDir . '/src/Plugin/Plugin.php',
'WPDesk\\FlexibleCouponsPro\\ProductFieldsDefinition' => $baseDir . '/src/Plugin/ProductFieldsDefinition.php',
'WPDesk\\FlexibleCouponsPro\\RegisterEditor' => $baseDir . '/src/Plugin/RegisterEditor.php',
'WPDesk\\FlexibleCouponsPro\\Settings\\GeneralSettings' => $baseDir . '/src/Plugin/Settings/GeneralSettings.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\CouponExpiryDate' => $baseDir . '/src/Plugin/Shortcodes/CouponExpiryDate.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\CustomerAddress' => $baseDir . '/src/Plugin/Shortcodes/CustomerAddress.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\CustomerName' => $baseDir . '/src/Plugin/Shortcodes/CustomerName.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\ProductName' => $baseDir . '/src/Plugin/Shortcodes/ProductName.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\RecipientEmail' => $baseDir . '/src/Plugin/Shortcodes/RecipientEmail.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\RecipientMessage' => $baseDir . '/src/Plugin/Shortcodes/RecipientMessage.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\RecipientName' => $baseDir . '/src/Plugin/Shortcodes/RecipientName.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\SiteUrl' => $baseDir . '/src/Plugin/Shortcodes/SiteUrl.php',
'WPDesk\\Helper\\HelperAsLibrary' => $vendorDir . '/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
'WPDesk_Tracker_Data_Provider' => $vendorDir . '/wpdesk/wp-wpdesk-helper-override/src/Interop/Tracker/class-wpdesk-tracker-data-provider.php',
'WPDesk_Tracker_Factory' => $vendorDir . '/wpdesk/wp-wpdesk-helper-override/src/Helper/TrackerFactory.php',
'WPDesk_Tracker_Interface' => $vendorDir . '/wpdesk/wp-wpdesk-helper-override/src/Interop/Tracker/class-wpdesk-tracker-interface.php',
'WPDesk_Tracker_Sender' => $vendorDir . '/wpdesk/wp-wpdesk-helper-override/src/Interop/Tracker/class-wpdesk-tracker-sender.php',
);

View File

@@ -0,0 +1,9 @@
<?php
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
);

View File

@@ -0,0 +1,13 @@
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
'WPDesk\\FlexibleCouponsPro\\' => array($baseDir . '/src/Plugin'),
'WPDesk\\Dashboard\\' => array($vendorDir . '/wpdesk/ltv-dashboard-widget/src'),
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
);

View File

@@ -0,0 +1,36 @@
<?php
// autoload_real.php @generated by Composer
class ComposerAutoloaderInitd73f920eb9ed636233c64196737c71fb
{
private static $loader;
public static function loadClassLoader($class)
{
if ('Composer\Autoload\ClassLoader' === $class) {
require __DIR__ . '/ClassLoader.php';
}
}
/**
* @return \Composer\Autoload\ClassLoader
*/
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInitd73f920eb9ed636233c64196737c71fb', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInitd73f920eb9ed636233c64196737c71fb', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitd73f920eb9ed636233c64196737c71fb::getInitializer($loader));
$loader->register(true);
return $loader;
}
}

View File

@@ -0,0 +1,774 @@
<?php
// autoload_static.php @generated by Composer
namespace Composer\Autoload;
class ComposerStaticInitd73f920eb9ed636233c64196737c71fb
{
public static $prefixLengthsPsr4 = array (
'W' =>
array (
'WPDesk\\FlexibleCouponsPro\\' => 26,
'WPDesk\\Dashboard\\' => 17,
),
'P' =>
array (
'Psr\\Log\\' => 8,
'Psr\\Container\\' => 14,
),
);
public static $prefixDirsPsr4 = array (
'WPDesk\\FlexibleCouponsPro\\' =>
array (
0 => __DIR__ . '/../..' . '/src/Plugin',
),
'WPDesk\\Dashboard\\' =>
array (
0 => __DIR__ . '/..' . '/wpdesk/ltv-dashboard-widget/src',
),
'Psr\\Log\\' =>
array (
0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
),
'Psr\\Container\\' =>
array (
0 => __DIR__ . '/..' . '/psr/container/src',
),
);
public static $classMap = array (
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
'FlexibleCouponsProVendor\\Monolog\\Attribute\\AsMonologProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Attribute/AsMonologProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\DateTimeImmutable' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/DateTimeImmutable.php',
'FlexibleCouponsProVendor\\Monolog\\ErrorHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/ErrorHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\ChromePHPFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\ElasticaFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\ElasticsearchFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ElasticsearchFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\FlowdockFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\FluentdFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\FormatterInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\GelfMessageFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\GoogleCloudLoggingFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/GoogleCloudLoggingFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\HtmlFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\JsonFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\LineFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LineFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\LogglyFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\LogmaticFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogmaticFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\LogstashFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\MongoDBFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\NormalizerFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\ScalarFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Formatter\\WildfireFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\AbstractHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\AbstractProcessingHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\AbstractSyslogHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\AmqpHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AmqpHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\BrowserConsoleHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\BufferHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BufferHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ChromePHPHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\CouchDBHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\CubeHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CubeHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\Curl\\Util' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Curl/Util.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\DeduplicationHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\DoctrineCouchDBHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\DynamoDbHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ElasticaHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ElasticaHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ElasticsearchHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ErrorLogHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FallbackGroupHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FallbackGroupHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FilterHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FilterHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FingersCrossedHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FingersCrossed\\ActivationStrategyInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FingersCrossed\\ChannelLevelActivationStrategy' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FirePHPHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FleepHookHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FlowdockHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FormattableHandlerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\FormattableHandlerTrait' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\GelfHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GelfHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\GroupHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GroupHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\Handler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Handler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\HandlerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerInterface.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\HandlerWrapper' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\IFTTTHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\InsightOpsHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\LogEntriesHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\LogglyHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogglyHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\LogmaticHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogmaticHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\MailHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MailHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\MandrillHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MandrillHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\MissingExtensionException' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\MongoDBHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\NativeMailerHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\NewRelicHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\NoopHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NoopHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\NullHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NullHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\OverflowHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/OverflowHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\PHPConsoleHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ProcessHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ProcessableHandlerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ProcessableHandlerTrait' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\PsrHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PsrHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\PushoverHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PushoverHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\RedisHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\RedisPubSubHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisPubSubHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\RollbarHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RollbarHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\RotatingFileHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SamplingHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SamplingHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SendGridHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SendGridHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SlackHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SlackWebhookHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\Slack\\SlackRecord' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SocketHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SocketHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SqsHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SqsHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\StreamHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/StreamHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SwiftMailerHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SymfonyMailerHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SymfonyMailerHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SyslogHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SyslogUdpHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\SyslogUdp\\UdpSocket' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\TelegramBotHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\TestHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/TestHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\WebRequestRecognizerTrait' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/WebRequestRecognizerTrait.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\WhatFailureGroupHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Handler\\ZendMonitorHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php',
'FlexibleCouponsProVendor\\Monolog\\LogRecord' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/LogRecord.php',
'FlexibleCouponsProVendor\\Monolog\\Logger' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Logger.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\GitProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/GitProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\HostnameProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/HostnameProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\IntrospectionProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\MemoryPeakUsageProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\MemoryProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\MemoryUsageProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\MercurialProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\ProcessIdProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\ProcessorInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\PsrLogMessageProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\TagProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/TagProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\UidProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/UidProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Processor\\WebProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/WebProcessor.php',
'FlexibleCouponsProVendor\\Monolog\\Registry' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Registry.php',
'FlexibleCouponsProVendor\\Monolog\\ResettableInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/ResettableInterface.php',
'FlexibleCouponsProVendor\\Monolog\\SignalHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/SignalHandler.php',
'FlexibleCouponsProVendor\\Monolog\\Test\\TestCase' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Test/TestCase.php',
'FlexibleCouponsProVendor\\Monolog\\Utils' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Utils.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\AbstractBarcode' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/AbstractBarcode.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\BarcodeException' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/BarcodeException.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\BarcodeInterface' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/BarcodeInterface.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Codabar' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Codabar.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Code11' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Code11.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Code128' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Code128.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Code39' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Code39.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Code93' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Code93.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\EanExt' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/EanExt.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\EanUpc' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/EanUpc.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\I25' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/I25.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Imb' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Imb.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Msi' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Msi.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Postnet' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Postnet.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\Rm4Scc' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/Rm4Scc.php',
'FlexibleCouponsProVendor\\Mpdf\\Barcode\\S25' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Barcode/S25.php',
'FlexibleCouponsProVendor\\Mpdf\\Cache' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Cache.php',
'FlexibleCouponsProVendor\\Mpdf\\Color\\ColorConverter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Color/ColorConverter.php',
'FlexibleCouponsProVendor\\Mpdf\\Color\\ColorModeConverter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Color/ColorModeConverter.php',
'FlexibleCouponsProVendor\\Mpdf\\Color\\ColorSpaceRestrictor' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Color/ColorSpaceRestrictor.php',
'FlexibleCouponsProVendor\\Mpdf\\Color\\NamedColors' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Color/NamedColors.php',
'FlexibleCouponsProVendor\\Mpdf\\Config\\ConfigVariables' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Config/ConfigVariables.php',
'FlexibleCouponsProVendor\\Mpdf\\Config\\FontVariables' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Config/FontVariables.php',
'FlexibleCouponsProVendor\\Mpdf\\Conversion\\DecToAlpha' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Conversion/DecToAlpha.php',
'FlexibleCouponsProVendor\\Mpdf\\Conversion\\DecToCjk' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Conversion/DecToCjk.php',
'FlexibleCouponsProVendor\\Mpdf\\Conversion\\DecToHebrew' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Conversion/DecToHebrew.php',
'FlexibleCouponsProVendor\\Mpdf\\Conversion\\DecToOther' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Conversion/DecToOther.php',
'FlexibleCouponsProVendor\\Mpdf\\Conversion\\DecToRoman' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Conversion/DecToRoman.php',
'FlexibleCouponsProVendor\\Mpdf\\CssManager' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/CssManager.php',
'FlexibleCouponsProVendor\\Mpdf\\Css\\Border' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Css/Border.php',
'FlexibleCouponsProVendor\\Mpdf\\Css\\DefaultCss' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Css/DefaultCss.php',
'FlexibleCouponsProVendor\\Mpdf\\Css\\TextVars' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Css/TextVars.php',
'FlexibleCouponsProVendor\\Mpdf\\DirectWrite' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/DirectWrite.php',
'FlexibleCouponsProVendor\\Mpdf\\Exception\\FontException' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Exception/FontException.php',
'FlexibleCouponsProVendor\\Mpdf\\Exception\\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Exception/InvalidArgumentException.php',
'FlexibleCouponsProVendor\\Mpdf\\File\\StreamWrapperChecker' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/File/StreamWrapperChecker.php',
'FlexibleCouponsProVendor\\Mpdf\\Fonts\\FontCache' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Fonts/FontCache.php',
'FlexibleCouponsProVendor\\Mpdf\\Fonts\\FontFileFinder' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Fonts/FontFileFinder.php',
'FlexibleCouponsProVendor\\Mpdf\\Fonts\\GlyphOperator' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Fonts/GlyphOperator.php',
'FlexibleCouponsProVendor\\Mpdf\\Fonts\\MetricsGenerator' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Fonts/MetricsGenerator.php',
'FlexibleCouponsProVendor\\Mpdf\\Form' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Form.php',
'FlexibleCouponsProVendor\\Mpdf\\FpdiTrait' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/FpdiTrait.php',
'FlexibleCouponsProVendor\\Mpdf\\Gif\\ColorTable' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Gif/ColorTable.php',
'FlexibleCouponsProVendor\\Mpdf\\Gif\\FileHeader' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Gif/FileHeader.php',
'FlexibleCouponsProVendor\\Mpdf\\Gif\\Gif' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Gif/Gif.php',
'FlexibleCouponsProVendor\\Mpdf\\Gif\\Image' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Gif/Image.php',
'FlexibleCouponsProVendor\\Mpdf\\Gif\\ImageHeader' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Gif/ImageHeader.php',
'FlexibleCouponsProVendor\\Mpdf\\Gif\\Lzw' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Gif/Lzw.php',
'FlexibleCouponsProVendor\\Mpdf\\Gradient' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Gradient.php',
'FlexibleCouponsProVendor\\Mpdf\\HTMLParserMode' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/HTMLParserMode.php',
'FlexibleCouponsProVendor\\Mpdf\\Hyphenator' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Hyphenator.php',
'FlexibleCouponsProVendor\\Mpdf\\Image\\Bmp' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Image/Bmp.php',
'FlexibleCouponsProVendor\\Mpdf\\Image\\ImageProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Image/ImageProcessor.php',
'FlexibleCouponsProVendor\\Mpdf\\Image\\ImageTypeGuesser' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Image/ImageTypeGuesser.php',
'FlexibleCouponsProVendor\\Mpdf\\Image\\Svg' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Image/Svg.php',
'FlexibleCouponsProVendor\\Mpdf\\Image\\Wmf' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Image/Wmf.php',
'FlexibleCouponsProVendor\\Mpdf\\Language\\LanguageToFont' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Language/LanguageToFont.php',
'FlexibleCouponsProVendor\\Mpdf\\Language\\LanguageToFontInterface' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Language/LanguageToFontInterface.php',
'FlexibleCouponsProVendor\\Mpdf\\Language\\ScriptToLanguage' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Language/ScriptToLanguage.php',
'FlexibleCouponsProVendor\\Mpdf\\Language\\ScriptToLanguageInterface' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Language/ScriptToLanguageInterface.php',
'FlexibleCouponsProVendor\\Mpdf\\Log\\Context' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Log/Context.php',
'FlexibleCouponsProVendor\\Mpdf\\Mpdf' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Mpdf.php',
'FlexibleCouponsProVendor\\Mpdf\\MpdfException' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/MpdfException.php',
'FlexibleCouponsProVendor\\Mpdf\\MpdfImageException' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/MpdfImageException.php',
'FlexibleCouponsProVendor\\Mpdf\\Otl' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Otl.php',
'FlexibleCouponsProVendor\\Mpdf\\OtlDump' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/OtlDump.php',
'FlexibleCouponsProVendor\\Mpdf\\Output\\Destination' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Output/Destination.php',
'FlexibleCouponsProVendor\\Mpdf\\PageFormat' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/PageFormat.php',
'FlexibleCouponsProVendor\\Mpdf\\Pdf\\Protection' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Pdf/Protection.php',
'FlexibleCouponsProVendor\\Mpdf\\Pdf\\Protection\\UniqidGenerator' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Pdf/Protection/UniqidGenerator.php',
'FlexibleCouponsProVendor\\Mpdf\\RemoteContentFetcher' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/RemoteContentFetcher.php',
'FlexibleCouponsProVendor\\Mpdf\\ServiceFactory' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/ServiceFactory.php',
'FlexibleCouponsProVendor\\Mpdf\\Shaper\\Indic' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Shaper/Indic.php',
'FlexibleCouponsProVendor\\Mpdf\\Shaper\\Myanmar' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Shaper/Myanmar.php',
'FlexibleCouponsProVendor\\Mpdf\\Shaper\\Sea' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Shaper/Sea.php',
'FlexibleCouponsProVendor\\Mpdf\\SizeConverter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/SizeConverter.php',
'FlexibleCouponsProVendor\\Mpdf\\Strict' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Strict.php',
'FlexibleCouponsProVendor\\Mpdf\\TTFontFile' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/TTFontFile.php',
'FlexibleCouponsProVendor\\Mpdf\\TTFontFileAnalysis' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/TTFontFileAnalysis.php',
'FlexibleCouponsProVendor\\Mpdf\\TableOfContents' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/TableOfContents.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\A' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/A.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Acronym' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Acronym.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Address' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Address.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Annotation' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Annotation.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Article' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Article.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Aside' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Aside.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\B' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/B.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\BarCode' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/BarCode.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Bdi' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Bdi.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Bdo' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Bdo.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Big' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Big.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\BlockQuote' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/BlockQuote.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\BlockTag' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/BlockTag.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Bookmark' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Bookmark.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Br' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Br.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Caption' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Caption.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Center' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Center.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Cite' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Cite.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Code' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Code.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\ColumnBreak' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/ColumnBreak.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Columns' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Columns.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Dd' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Dd.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Del' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Del.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Details' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Details.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Div' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Div.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Dl' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Dl.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\DotTab' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/DotTab.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Dt' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Dt.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Em' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Em.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\FieldSet' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/FieldSet.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\FigCaption' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/FigCaption.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Figure' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Figure.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Font' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Font.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Footer' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Footer.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Form' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Form.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\FormFeed' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/FormFeed.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\H1' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/H1.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\H2' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/H2.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\H3' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/H3.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\H4' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/H4.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\H5' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/H5.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\H6' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/H6.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\HGroup' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/HGroup.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Header' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Header.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Hr' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Hr.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\I' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/I.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Img' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Img.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\IndexEntry' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/IndexEntry.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\IndexInsert' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/IndexInsert.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\InlineTag' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/InlineTag.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Input' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Input.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Ins' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Ins.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Kbd' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Kbd.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Legend' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Legend.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Li' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Li.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Main' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Main.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Mark' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Mark.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Meter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Meter.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Nav' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Nav.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\NewColumn' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/NewColumn.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\NewPage' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/NewPage.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Ol' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Ol.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Option' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Option.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\P' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/P.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\PageBreak' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/PageBreak.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\PageFooter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/PageFooter.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\PageHeader' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/PageHeader.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Pre' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Pre.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Progress' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Progress.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Q' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Q.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\S' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/S.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Samp' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Samp.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Section' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Section.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Select' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Select.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\SetHtmlPageFooter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/SetHtmlPageFooter.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\SetHtmlPageHeader' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/SetHtmlPageHeader.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\SetPageFooter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/SetPageFooter.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\SetPageHeader' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/SetPageHeader.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Small' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Small.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Span' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Span.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Strike' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Strike.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Strong' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Strong.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Sub' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Sub.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\SubstituteTag' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/SubstituteTag.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Summary' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Summary.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Sup' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Sup.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\TBody' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/TBody.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\TFoot' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/TFoot.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\THead' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/THead.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Table' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Table.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Tag' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Tag.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Td' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Td.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\TextArea' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/TextArea.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\TextCircle' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/TextCircle.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Th' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Th.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Time' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Time.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Toc' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Toc.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\TocEntry' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/TocEntry.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\TocPageBreak' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/TocPageBreak.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Tr' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Tr.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Tt' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Tt.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Tta' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Tta.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Tts' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Tts.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Ttz' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Ttz.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\U' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/U.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\Ul' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/Ul.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\VarTag' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/VarTag.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\WatermarkImage' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/WatermarkImage.php',
'FlexibleCouponsProVendor\\Mpdf\\Tag\\WatermarkText' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Tag/WatermarkText.php',
'FlexibleCouponsProVendor\\Mpdf\\Ucdn' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Ucdn.php',
'FlexibleCouponsProVendor\\Mpdf\\Utils\\Arrays' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Utils/Arrays.php',
'FlexibleCouponsProVendor\\Mpdf\\Utils\\NumericString' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Utils/NumericString.php',
'FlexibleCouponsProVendor\\Mpdf\\Utils\\PdfDate' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Utils/PdfDate.php',
'FlexibleCouponsProVendor\\Mpdf\\Utils\\UtfString' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Utils/UtfString.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\BackgroundWriter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Writer/BackgroundWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\BaseWriter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Writer/BaseWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\BookmarkWriter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Writer/BookmarkWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\ColorWriter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Writer/ColorWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\FontWriter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Writer/FontWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\FormWriter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Writer/FormWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\ImageWriter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Writer/ImageWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\JavaScriptWriter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Writer/JavaScriptWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\MetadataWriter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Writer/MetadataWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\ObjectWriter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Writer/ObjectWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\OptionalContentWriter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Writer/OptionalContentWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\PageWriter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Writer/PageWriter.php',
'FlexibleCouponsProVendor\\Mpdf\\Writer\\ResourceWriter' => __DIR__ . '/../..' . '/vendor_prefixed/mpdf/mpdf/src/Writer/ResourceWriter.php',
'FlexibleCouponsProVendor\\WPDesk\\Codeception\\Command\\AcceptanceTestGenerator' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Codeception/Command/AcceptanceTestGenerator.php',
'FlexibleCouponsProVendor\\WPDesk\\Codeception\\Command\\GeneratePluginActivation' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Codeception/Command/GeneratePluginActivation.php',
'FlexibleCouponsProVendor\\WPDesk\\Codeception\\Command\\GenerateWooCommerce' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Codeception/Command/GenerateWooCommerce.php',
'FlexibleCouponsProVendor\\WPDesk\\Codeception\\Command\\WooCommerceTestGenerator' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Codeception/Command/WooCommerceTestGenerator.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\CommandProvider' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/CommandProvider.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\BaseCommand' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/BaseCommand.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\Configuration' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/Configuration.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\CreateCodeceptionTests' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/CreateCodeceptionTests.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\LocalCodeceptionTrait' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/LocalCodeceptionTrait.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\PrepareCodeceptionDb' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/PrepareCodeceptionDb.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\PrepareLocalCodeceptionTests' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/PrepareLocalCodeceptionTests.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\PrepareLocalCodeceptionTestsWithCoverage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/PrepareLocalCodeceptionTestsWithCoverage.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\PrepareParallelCodeceptionTests' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/PrepareParallelCodeceptionTests.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\PrepareWordpressForCodeception' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/PrepareWordpressForCodeception.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\RunCodeceptionTests' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunCodeceptionTests.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\RunLocalCodeceptionTests' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunLocalCodeceptionTests.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\RunLocalCodeceptionTestsWithCoverage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunLocalCodeceptionTestsWithCoverage.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\SedTrait' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/SedTrait.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Commands\\SettingsException' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/SettingsException.php',
'FlexibleCouponsProVendor\\WPDesk\\Composer\\Codeception\\Plugin' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Plugin.php',
'FlexibleCouponsProVendor\\WPDesk\\Dashboard\\DashboardWidget' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/ltv-dashboard-widget/src/DashboardWidget.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\ContainerForm' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/ContainerForm.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Escaper' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Escaper.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\FieldProvider' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/FieldProvider.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\FieldRenderer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/FieldRenderer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\BasicField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/BasicField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\ButtonField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/ButtonField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\CheckboxField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/CheckboxField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\DateField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/DateField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\DatePickerField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/DatePickerField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\Header' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/Header.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\HiddenField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/HiddenField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\ImageInputField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/ImageInputField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\InputNumberField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/InputNumberField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\InputTextField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/InputTextField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\MultipleInputTextField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/MultipleInputTextField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\NoOnceField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/NoOnceField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\NoValueField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/NoValueField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\Paragraph' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/Paragraph.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\ProductSelect' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/ProductSelect.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\RadioField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/RadioField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\SelectField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/SelectField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\SubmitField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/SubmitField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\TextAreaField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/TextAreaField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\TimepickerField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/TimepickerField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\Traits\\HtmlAttributes' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/Traits/HtmlAttributes.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\WooSelect' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/WooSelect.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Field\\WyswigField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Field/WyswigField.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\FieldsDataReceiver' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/FieldsDataReceiver.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Form' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Form.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Form\\AbstractForm' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Form/AbstractForm.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Form\\FormWithFields' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Form/FormWithFields.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Form\\FormsCollection' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Form/FormsCollection.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Persistence\\FieldPersistenceStrategy' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Persistence/FieldPersistenceStrategy.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Renderer\\JsonNormalizedRenderer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Renderer/JsonNormalizedRenderer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Resolver\\DefaultFormFieldResolver' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Resolver/DefaultFormFieldResolver.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Sanitizer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Sanitizer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Sanitizer\\CallableSanitizer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Sanitizer/CallableSanitizer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Sanitizer\\NoSanitize' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Sanitizer/NoSanitize.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Sanitizer\\TextFieldSanitizer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Sanitizer/TextFieldSanitizer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Serializer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Serializer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Serializer\\JsonSerializer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Serializer/JsonSerializer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Serializer\\NoSerialize' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Serializer/NoSerialize.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Serializer\\ProductSelectSerializer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Serializer/ProductSelectSerializer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Serializer\\SerializeSerializer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Serializer/SerializeSerializer.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Validator' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Validator.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Validator\\ChainValidator' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Validator/ChainValidator.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Validator\\NoValidateValidator' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Validator/NoValidateValidator.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Validator\\NonceValidator' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Validator/NonceValidator.php',
'FlexibleCouponsProVendor\\WPDesk\\Forms\\Validator\\RequiredValidator' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-forms/src/Validator/RequiredValidator.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\EditorAreaProperties' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/EditorAreaProperties.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\EditorIntegration' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/EditorIntegration.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\Email' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/Email.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\Fonts' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/Fonts.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\PDF' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/PDF.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\PDFLibrary' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/PDFLibrary.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\ProductFields' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/ProductFields.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\Shortcode' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/Shortcode.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\CouponInterfaces\\ShortcodeData' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-interfaces/src/Interfaces/ShortcodeData.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\Abstracts\\BoxInterface' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/Abstracts/BoxInterface.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\Api\\Client' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/Api/Client.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\Assets' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/Assets.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxRenderer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxRenderer.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxType\\Box' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxType/Box.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxType\\ImageBox' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxType/ImageBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxType\\SimpleBox' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxType/SimpleBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxType\\SliderBox' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxType/SliderBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxType\\UnknownBox' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxType/UnknownBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\BoxType\\VideoBox' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/BoxType/VideoBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\Helpers\\BBCodes' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/Helpers/BBCodes.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\Helpers\\Cache' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/Helpers/Cache.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\Helpers\\Markers' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/Helpers/Markers.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\Boxes\\MarketingBoxes' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/Boxes/MarketingBoxes.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\Marketing\\RatePlugin\\RateBox' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-marketing/src/RatePlugin/RateBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\Abstracts\\EditorProperties' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/Abstracts/EditorProperties.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\AjaxHandler' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/AjaxHandler.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\AreaProperties' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/AreaProperties.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\Assets' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/Assets.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\CustomizeEditPage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/CustomizeEditPage.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\EditorImplementation' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/EditorImplementation.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\Exceptions\\EditorException' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/Exceptions/EditorException.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCanvaEditor\\RegisterPostType' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/canva-editor/src/Editor/RegisterPostType.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Cart\\Cart' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Cart/Cart.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Coupon\\Coupon' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Coupon/Coupon.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Coupon\\CouponCode' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Coupon/CouponCode.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Coupon\\CouponMeta' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Coupon/CouponMeta.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Coupon\\GenerateCoupon' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Coupon/GenerateCoupon.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\CouponsIntegration' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/CouponsIntegration.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Email\\FlexibleCouponsBaseEmail' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Email/FlexibleCouponsBaseEmail.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Exception\\EmailException' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Exception/EmailException.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Helpers\\EmailStrings' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Helpers/EmailStrings.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Helpers\\Links' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Helpers/Links.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Helpers\\Plugin' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Helpers/Plugin.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\Assets' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/Assets.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\Helper' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/Helper.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\MyAccount' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/MyAccount.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\NullProductFields' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/NullProductFields.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\PostMeta' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/PostMeta.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\SampleTemplates' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/SampleTemplates.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Integration\\ShortCodeReplacer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Integration/ShortCodeReplacer.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Order\\MakeOrder' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Order/MakeOrder.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Order\\OrderMetaBox' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Order/OrderMetaBox.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PDF\\Config' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PDF/Config.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PDF\\Download' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PDF/Download.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PDF\\FontsData' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PDF/FontsData.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PDF\\Items' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PDF/Items.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PDF\\PDF' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PDF/PDF.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PDF\\PDFWrapper' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PDF/PDFWrapper.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\PluginAccess' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/PluginAccess.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Product\\ProductEditPage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Product/ProductEditPage.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Product\\ProductVariationEditPage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Product/ProductVariationEditPage.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Product\\SaveProductSimpleData' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Product/SaveProductSimpleData.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Product\\SaveProductVariationData' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Product/SaveProductVariationData.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Fields\\DisableFieldProAdapter' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Fields/DisableFieldProAdapter.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Fields\\LinkField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Fields/LinkField.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Fields\\MultipleInputTextField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Fields/MultipleInputTextField.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Fields\\WysiwygField' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Fields/WysiwygField.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\SettingsForm' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/SettingsForm.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Tabs\\CouponSettings' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Tabs/CouponSettings.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Tabs\\EmailSettings' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Tabs/EmailSettings.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Tabs\\FieldSettingsTab' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Tabs/FieldSettingsTab.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Tabs\\MainSettings' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Tabs/MainSettings.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Settings\\Tabs\\SettingsTab' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Settings/Tabs/SettingsTab.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Shortcodes\\CouponCode' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Shortcodes/CouponCode.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Shortcodes\\CouponValue' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Shortcodes/CouponValue.php',
'FlexibleCouponsProVendor\\WPDesk\\Library\\WPCoupons\\Shortcodes\\ShortcodeDataContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-coupons-core/src/Coupons/Shortcodes/ShortcodeDataContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\ActivationForm\\AjaxHandler' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ActivationForm/AjaxHandler.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\ActivationForm\\FormContentRenderer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ActivationForm/FormContentRenderer.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\ActivationForm\\PluginsPageRenderer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ActivationForm/PluginsPageRenderer.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\ActivationForm\\Renderer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ActivationForm/Renderer.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Changelog\\Filter\\ByVersion' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Changelog/Filter/ByVersion.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Changelog\\Formatter' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Changelog/Formatter.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Changelog\\Parser' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Changelog/Parser.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Changelog\\Parser\\Line' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Changelog/Parser/Line.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\InstalledPlugins' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/InstalledPlugins.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\LicenseManager' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/LicenseManager.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\LicenseServer\\PluginExternalBlocking' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/LicenseServer/PluginExternalBlocking.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\LicenseServer\\PluginLicense' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/LicenseServer/PluginLicense.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\LicenseServer\\PluginRegistrator' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/LicenseServer/PluginRegistrator.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\LicenseServer\\PluginUpgrade' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/LicenseServer/PluginUpgrade.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\LicenseServer\\PluginViewVersionInfo' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/LicenseServer/PluginViewVersionInfo.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\OldLicenseRegistrator' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/OldLicenseRegistrator.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\Action' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/Action.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\LicensePage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/LicensePage.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\LicensePageActions' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/LicensePageActions.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\License\\Action\\AbstractAction' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/AbstractAction.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\License\\Action\\ActionError' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/ActionError.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\License\\Action\\LicenseActivation' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseActivation.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\License\\Action\\LicenseDeactivation' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseDeactivation.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\Page\\License\\Action\\Nothing' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/Nothing.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\PluginLicense' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/PluginLicense.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\PluginRegistrator' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/PluginRegistrator.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\PluginRegistratorInterface' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/PluginRegistratorInterface.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\ServerAddressRepository' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ServerAddressRepository.php',
'FlexibleCouponsProVendor\\WPDesk\\License\\WpUpgrader\\SubscriptionHandler' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/WpUpgrader/SubscriptionHandler.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\BasicLoggerFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/BasicLoggerFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\LoggerFacade' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/LoggerFacade.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\LoggerFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/LoggerFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\Settings' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/Settings.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\SimpleLoggerFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/SimpleLoggerFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\WC\\Exception\\WCLoggerAlreadyCaptured' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/WC/Exception/WCLoggerAlreadyCaptured.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\WC\\WooCommerceCapture' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/WC/WooCommerceCapture.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\WC\\WooCommerceHandler' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/WC/WooCommerceHandler.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\WC\\WooCommerceMonologPlugin' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/WC/WooCommerceMonologPlugin.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\WPDeskLoggerFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/WPDeskLoggerFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\Logger\\WP\\WPCapture' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/WP/WPCapture.php',
'FlexibleCouponsProVendor\\WPDesk\\Notice\\AjaxHandler' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-notice/src/WPDesk/Notice/AjaxHandler.php',
'FlexibleCouponsProVendor\\WPDesk\\Notice\\Factory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-notice/src/WPDesk/Notice/Factory.php',
'FlexibleCouponsProVendor\\WPDesk\\Notice\\Notice' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-notice/src/WPDesk/Notice/Notice.php',
'FlexibleCouponsProVendor\\WPDesk\\Notice\\PermanentDismissibleNotice' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-notice/src/WPDesk/Notice/PermanentDismissibleNotice.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\ArrayContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/ArrayContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\ReferenceArrayContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/ReferenceArrayContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WooCommerce\\WooCommerceSessionContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WooCommerce/WooCommerceSessionContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WooCommerce\\WooCommerceSettingsContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WooCommerce/WooCommerceSettingsContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WooCommerce\\WooCommerceShippingInstanceContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WooCommerce/WooCommerceShippingInstanceContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WordPress\\WordpressOptionsContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WordPress/WordpressOptionsContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WordPress\\WordpressPostMetaContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WordPress/WordpressPostMetaContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WordPress\\WordpressSerializedOptionsContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WordPress/WordpressSerializedOptionsContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Adapter\\WordPress\\WordpressTransientContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/WordPress/WordpressTransientContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\AllDataAccessContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/AllDataAccessContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Decorator\\DelayPersistentContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/Decorator/DelayPersistentContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Decorator\\DelaySinglePersistentContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/Decorator/DelaySinglePersistentContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\Decorator\\SerializedPersistentContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/Decorator/SerializedPersistentContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\DeferredPersistentContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/DeferredPersistentContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\ElementNotExistsException' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/ElementNotExistsException.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\FallbackFromGetTrait' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/FallbackFromGetTrait.php',
'FlexibleCouponsProVendor\\WPDesk\\Persistence\\PersistentContainer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-persistence/src/PersistentContainer.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\BuildDirector\\LegacyBuildDirector' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/BuildDirector/LegacyBuildDirector.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Builder\\AbstractBuilder' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/AbstractBuilder.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Builder\\InfoActivationBuilder' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/InfoActivationBuilder.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Builder\\InfoBuilder' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/InfoBuilder.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\AbstractPlugin' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/AbstractPlugin.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\Activateable' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Activateable.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\ActivationAware' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationAware.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\ActivationTracker' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationTracker.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\Conditional' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Conditional.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\Deactivateable' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Deactivateable.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\Hookable' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Hookable.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\HookableCollection' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableCollection.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\HookableParent' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableParent.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\HookablePluginDependant' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookablePluginDependant.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\PluginAccess' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/PluginAccess.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\SlimPlugin' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/SlimPlugin.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Plugin\\TemplateLoad' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/TemplateLoad.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Storage\\Exception\\ClassAlreadyExists' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/Exception/ClassAlreadyExists.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Storage\\Exception\\ClassNotExists' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/Exception/ClassNotExists.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Storage\\PluginStorage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/PluginStorage.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Storage\\StaticStorage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/StaticStorage.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Storage\\StorageFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/StorageFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\PluginBuilder\\Storage\\WordpressFilterStorage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/WordpressFilterStorage.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\BuilderTrait' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/BuilderTrait.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\InitializationFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/InitializationFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\InitializationStrategy' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/InitializationStrategy.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\PluginDisablerByFileTrait' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/PluginDisablerByFileTrait.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimpleFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/Simple/SimpleFactory.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimpleFreeStrategy' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/Simple/SimpleFreeStrategy.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimplePaidStrategy' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/Simple/SimplePaidStrategy.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\TrackerInstanceAsFilterTrait' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/Initialization/TrackerInstanceAsFilterTrait.php',
'FlexibleCouponsProVendor\\WPDesk\\Plugin\\Flow\\PluginBootstrap' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow-common/src/PluginBootstrap.php',
'FlexibleCouponsProVendor\\WPDesk\\Tracker\\Assets' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/PSR/WPDesk/Tracker/Assets.php',
'FlexibleCouponsProVendor\\WPDesk\\Tracker\\OptInOptOut' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/PSR/WPDesk/Tracker/OptInOptOut.php',
'FlexibleCouponsProVendor\\WPDesk\\Tracker\\OptInPage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/PSR/WPDesk/Tracker/OptInPage.php',
'FlexibleCouponsProVendor\\WPDesk\\Tracker\\OptOut' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/PSR/WPDesk/Tracker/OptOut.php',
'FlexibleCouponsProVendor\\WPDesk\\Tracker\\PluginActionLinks' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/PSR/WPDesk/Tracker/PluginActionLinks.php',
'FlexibleCouponsProVendor\\WPDesk\\Tracker\\Shop' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/PSR/WPDesk/Tracker/Shop.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\PluginViewBuilder' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-view/src/PluginViewBuilder.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Renderer\\LoadTemplatePlugin' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-view/src/Renderer/LoadTemplatePlugin.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Renderer\\Renderer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-view/src/Renderer/Renderer.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Renderer\\SimplePhpRenderer' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-view/src/Renderer/SimplePhpRenderer.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Resolver\\ChainResolver' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-view/src/Resolver/ChainResolver.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Resolver\\DirResolver' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-view/src/Resolver/DirResolver.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Resolver\\Exception\\CanNotResolve' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-view/src/Resolver/Exception/CanNotResolve.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Resolver\\NullResolver' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-view/src/Resolver/NullResolver.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Resolver\\Resolver' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-view/src/Resolver/Resolver.php',
'FlexibleCouponsProVendor\\WPDesk\\View\\Resolver\\WPThemeResolver' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-view/src/Resolver/WPThemeResolver.php',
'FlexibleCouponsProVendor\\WPDesk_API_KEY' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-key-api.php',
'FlexibleCouponsProVendor\\WPDesk_API_MENU' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
'FlexibleCouponsProVendor\\WPDesk_API_Manager_With_Update_Flag' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php',
'FlexibleCouponsProVendor\\WPDesk_API_Password_Management' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-passwords.php',
'FlexibleCouponsProVendor\\WPDesk_Basic_Requirement_Checker' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php',
'FlexibleCouponsProVendor\\WPDesk_Basic_Requirement_Checker_Factory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker_Factory.php',
'FlexibleCouponsProVendor\\WPDesk_Basic_Requirement_Checker_With_Update_Disable' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker_With_Update_Disable.php',
'FlexibleCouponsProVendor\\WPDesk_Buildable' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Buildable.php',
'FlexibleCouponsProVendor\\WPDesk_Has_Plugin_Info' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Has_Plugin_Info.php',
'FlexibleCouponsProVendor\\WPDesk_Helper_List_Table' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/class-wpdesk-helper-list-table.php',
'FlexibleCouponsProVendor\\WPDesk_Logger' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php',
'FlexibleCouponsProVendor\\WPDesk_Logger_Factory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/deprecated/wpdesk-logger-factory.php',
'FlexibleCouponsProVendor\\WPDesk_Plugin_Info' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Plugin_Info.php',
'FlexibleCouponsProVendor\\WPDesk_Requirement_Checker' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-basic-requirements/src/Requirement_Checker.php',
'FlexibleCouponsProVendor\\WPDesk_Requirement_Checker_Factory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-basic-requirements/src/Requirement_Checker_Factory.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/class-wpdesk-tracker.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Gateways' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-gateways.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Identification' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-identification.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Identification_Gdpr' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-identification-gdpr.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Jetpack' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-jetpack.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_License_Emails' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-license-emails.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Orders' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-orders.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Orders_Country' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-orders-country.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Orders_Month' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-orders-month.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Plugins' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-plugins.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Products' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-products.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Products_Variations' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-products-variations.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Server' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-server.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Settings' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-settings.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Shipping_Classes' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-shipping-classes.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Shipping_Methods' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-shipping-methods.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Shipping_Methods_Zones' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-shipping-methods-zones.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Templates' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-templates.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Theme' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-theme.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_User_Agent' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-user-agent.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Users' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-users.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Data_Provider_Wordpress' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/data_provider/class-wpdesk-tracker-data-provider-wordpress.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Factory_Prefixed' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/class-wpdesk-tracker-factory-prefixed.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Interface' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/class-wpdesk-tracker-interface.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Persistence_Consent' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/persistence/class-wpdesk-tracker-persistence-consent.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Sender' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Sender_Exception_WpError' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Sender_Logged' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-logged.php',
'FlexibleCouponsProVendor\\WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
'FlexibleCouponsProVendor\\WPDesk_Translable' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translable.php',
'FlexibleCouponsProVendor\\WPDesk_Translatable' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translatable.php',
'FlexibleCouponsProVendor\\WPDesk_Update_API_Check' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\FpdfTpl' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/FpdfTpl.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\FpdfTplTrait' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/FpdfTplTrait.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\FpdfTrait' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/FpdfTrait.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\Fpdi' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/Fpdi.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\FpdiException' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/FpdiException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\FpdiTrait' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/FpdiTrait.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\GraphicsState' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/GraphicsState.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\Math\\Matrix' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/Math/Matrix.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\Math\\Vector' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/Math/Vector.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\CrossReference\\AbstractReader' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/CrossReference/AbstractReader.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\CrossReference\\CrossReference' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/CrossReference/CrossReference.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\CrossReference\\CrossReferenceException' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/CrossReference/CrossReferenceException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\CrossReference\\FixedReader' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/CrossReference/FixedReader.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\CrossReference\\LineReader' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/CrossReference/LineReader.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\CrossReference\\ReaderInterface' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/CrossReference/ReaderInterface.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\Ascii85' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/Ascii85.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\Ascii85Exception' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/Ascii85Exception.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\AsciiHex' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/AsciiHex.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\FilterException' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/FilterException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\FilterInterface' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/FilterInterface.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\Flate' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/Flate.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\FlateException' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/FlateException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\Lzw' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/Lzw.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Filter\\LzwException' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Filter/LzwException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\PdfParser' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/PdfParser.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\PdfParserException' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/PdfParserException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\StreamReader' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/StreamReader.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Tokenizer' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Tokenizer.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfArray' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfArray.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfBoolean' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfBoolean.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfDictionary' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfDictionary.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfHexString' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfHexString.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfIndirectObject' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfIndirectObject.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfIndirectObjectReference' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfIndirectObjectReference.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfName' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfName.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfNull' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfNull.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfNumeric' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfNumeric.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfStream' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfStream.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfString' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfString.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfToken' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfToken.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfType' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfType.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfParser\\Type\\PdfTypeException' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfParser/Type/PdfTypeException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfReader\\DataStructure\\Rectangle' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfReader/DataStructure/Rectangle.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfReader\\Page' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfReader/Page.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfReader\\PageBoundaries' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfReader/PageBoundaries.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfReader\\PdfReader' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfReader/PdfReader.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\PdfReader\\PdfReaderException' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/PdfReader/PdfReaderException.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\TcpdfFpdi' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/TcpdfFpdi.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\Tcpdf\\Fpdi' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/Tcpdf/Fpdi.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\Tfpdf\\FpdfTpl' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/Tfpdf/FpdfTpl.php',
'FlexibleCouponsProVendor\\setasign\\Fpdi\\Tfpdf\\Fpdi' => __DIR__ . '/../..' . '/vendor_prefixed/setasign/fpdi/src/Tfpdf/Fpdi.php',
'Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php',
'Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php',
'Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php',
'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/AbstractLogger.php',
'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/Psr/Log/InvalidArgumentException.php',
'Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/Psr/Log/LogLevel.php',
'Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareInterface.php',
'Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareTrait.php',
'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php',
'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php',
'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php',
'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/DummyTest.php',
'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
'WPDesk\\Dashboard\\DashboardWidget' => __DIR__ . '/..' . '/wpdesk/ltv-dashboard-widget/src/DashboardWidget.php',
'WPDesk\\FlexibleCouponsPro\\Coupons\\AdminPage' => __DIR__ . '/../..' . '/src/Plugin/Coupons/AdminPage.php',
'WPDesk\\FlexibleCouponsPro\\Email\\BaseEmail' => __DIR__ . '/../..' . '/src/Plugin/Email/BaseEmail.php',
'WPDesk\\FlexibleCouponsPro\\Email\\BuyerEmail' => __DIR__ . '/../..' . '/src/Plugin/Email/BuyerEmail.php',
'WPDesk\\FlexibleCouponsPro\\Email\\RecipientEmail' => __DIR__ . '/../..' . '/src/Plugin/Email/RecipientEmail.php',
'WPDesk\\FlexibleCouponsPro\\Email\\RegisterEmails' => __DIR__ . '/../..' . '/src/Plugin/Email/RegisterEmails.php',
'WPDesk\\FlexibleCouponsPro\\Email\\StringAttachments' => __DIR__ . '/../..' . '/src/Plugin/Email/StringAttachments.php',
'WPDesk\\FlexibleCouponsPro\\Integration' => __DIR__ . '/../..' . '/src/Plugin/Integration.php',
'WPDesk\\FlexibleCouponsPro\\Marketing\\SupportLinks' => __DIR__ . '/../..' . '/src/Plugin/Marketing/SupportLinks.php',
'WPDesk\\FlexibleCouponsPro\\Marketing\\SupportMenuPage' => __DIR__ . '/../..' . '/src/Plugin/Marketing/SupportMenuPage.php',
'WPDesk\\FlexibleCouponsPro\\Plugin' => __DIR__ . '/../..' . '/src/Plugin/Plugin.php',
'WPDesk\\FlexibleCouponsPro\\ProductFieldsDefinition' => __DIR__ . '/../..' . '/src/Plugin/ProductFieldsDefinition.php',
'WPDesk\\FlexibleCouponsPro\\RegisterEditor' => __DIR__ . '/../..' . '/src/Plugin/RegisterEditor.php',
'WPDesk\\FlexibleCouponsPro\\Settings\\GeneralSettings' => __DIR__ . '/../..' . '/src/Plugin/Settings/GeneralSettings.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\CouponExpiryDate' => __DIR__ . '/../..' . '/src/Plugin/Shortcodes/CouponExpiryDate.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\CustomerAddress' => __DIR__ . '/../..' . '/src/Plugin/Shortcodes/CustomerAddress.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\CustomerName' => __DIR__ . '/../..' . '/src/Plugin/Shortcodes/CustomerName.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\ProductName' => __DIR__ . '/../..' . '/src/Plugin/Shortcodes/ProductName.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\RecipientEmail' => __DIR__ . '/../..' . '/src/Plugin/Shortcodes/RecipientEmail.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\RecipientMessage' => __DIR__ . '/../..' . '/src/Plugin/Shortcodes/RecipientMessage.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\RecipientName' => __DIR__ . '/../..' . '/src/Plugin/Shortcodes/RecipientName.php',
'WPDesk\\FlexibleCouponsPro\\Shortcodes\\SiteUrl' => __DIR__ . '/../..' . '/src/Plugin/Shortcodes/SiteUrl.php',
'WPDesk\\Helper\\HelperAsLibrary' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
'WPDesk_Tracker_Data_Provider' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-helper-override/src/Interop/Tracker/class-wpdesk-tracker-data-provider.php',
'WPDesk_Tracker_Factory' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-helper-override/src/Helper/TrackerFactory.php',
'WPDesk_Tracker_Interface' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-helper-override/src/Interop/Tracker/class-wpdesk-tracker-interface.php',
'WPDesk_Tracker_Sender' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-helper-override/src/Interop/Tracker/class-wpdesk-tracker-sender.php',
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitd73f920eb9ed636233c64196737c71fb::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitd73f920eb9ed636233c64196737c71fb::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInitd73f920eb9ed636233c64196737c71fb::$classMap;
}, null, ClassLoader::class);
}
}

View File

@@ -0,0 +1,195 @@
{
"packages": [
{
"name": "psr/container",
"version": "1.1.1",
"version_normalized": "1.1.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
"reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
"reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
"shasum": ""
},
"require": {
"php": ">=7.2.0"
},
"time": "2021-03-05T17:36:06+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common Container Interface (PHP FIG PSR-11)",
"homepage": "https://github.com/php-fig/container",
"keywords": [
"PSR-11",
"container",
"container-interface",
"container-interop",
"psr"
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
"source": "https://github.com/php-fig/container/tree/1.1.1"
},
"install-path": "../psr/container"
},
{
"name": "psr/log",
"version": "1.1.4",
"version_normalized": "1.1.4.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "d49695b909c3b7628b6289db5479a1c204601f11"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
"reference": "d49695b909c3b7628b6289db5479a1c204601f11",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"time": "2021-05-03T11:20:27+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1.x-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"Psr\\Log\\": "Psr/Log/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
"homepage": "https://github.com/php-fig/log",
"keywords": [
"log",
"psr",
"psr-3"
],
"support": {
"source": "https://github.com/php-fig/log/tree/1.1.4"
},
"install-path": "../psr/log"
},
{
"name": "wpdesk/ltv-dashboard-widget",
"version": "1.5.0",
"version_normalized": "1.5.0.0",
"source": {
"type": "git",
"url": "https://gitlab.wpdesk.dev/wpdesk/library/ltv-dashboard-widget",
"reference": "99294c306a93b3ef4158954b9b6246f08be2f997"
},
"require": {
"php": ">=7.2"
},
"require-dev": {
"10up/wp_mock": "*",
"mockery/mockery": "*",
"phpunit/phpunit": "<7",
"squizlabs/php_codesniffer": "^3.0.2",
"wimg/php-compatibility": "^8",
"wp-coding-standards/wpcs": "^0.14.1"
},
"time": "2023-11-15T14:19:01+00:00",
"type": "library",
"extra": {
"text-domain": "wpdesk_ltv_dashboard_widget",
"translations-folder": "lang",
"po-files": {
"pl_PL": "wpdesk-ltv-dashboard-widget-pl_PL.po"
}
},
"installation-source": "source",
"autoload": {
"psr-4": {
"WPDesk\\Dashboard\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Library for displaying ltv widget in WordPress dashboard.",
"keywords": [
"admin",
"notice",
"wordpress"
],
"install-path": "../wpdesk/ltv-dashboard-widget"
},
{
"name": "wpdesk/wp-wpdesk-helper-override",
"version": "1.1.0",
"version_normalized": "1.1.0.0",
"source": {
"type": "git",
"url": "https://gitlab.com/wpdesk/wp-wpdesk-helper-override.git",
"reference": "77844fc71da7ebb7645f10f0fc15f5294fed8542"
},
"dist": {
"type": "zip",
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-helper-override/repository/archive.zip?sha=77844fc71da7ebb7645f10f0fc15f5294fed8542",
"reference": "77844fc71da7ebb7645f10f0fc15f5294fed8542",
"shasum": ""
},
"require": {
"php": ">=5.6"
},
"require-dev": {
"phpunit/phpunit": "<7"
},
"time": "2019-08-13T07:33:46+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"classmap": [
"src"
]
},
"notification-url": "https://packagist.org/downloads/",
"authors": [
{
"name": "Krzysiek",
"email": "krzysiek@wpdesk.pl"
}
],
"install-path": "../wpdesk/wp-wpdesk-helper-override"
}
],
"dev": false,
"dev-package-names": []
}

View File

@@ -0,0 +1,59 @@
<?php return array(
'root' => array(
'name' => 'wpdesk/flexible-coupons-pro',
'pretty_version' => '1.11.0',
'version' => '1.11.0.0',
'reference' => 'bfa85d034ec57e12cb55e1f57446396526b20382',
'type' => 'library',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
'dev' => false,
),
'versions' => array(
'psr/container' => array(
'pretty_version' => '1.1.1',
'version' => '1.1.1.0',
'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/container',
'aliases' => array(),
'dev_requirement' => false,
),
'psr/log' => array(
'pretty_version' => '1.1.4',
'version' => '1.1.4.0',
'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/log',
'aliases' => array(),
'dev_requirement' => false,
),
'wpdesk/flexible-coupons-pro' => array(
'pretty_version' => '1.11.0',
'version' => '1.11.0.0',
'reference' => 'bfa85d034ec57e12cb55e1f57446396526b20382',
'type' => 'library',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
'dev_requirement' => false,
),
'wpdesk/ltv-dashboard-widget' => array(
'pretty_version' => '1.5.0',
'version' => '1.5.0.0',
'reference' => '99294c306a93b3ef4158954b9b6246f08be2f997',
'type' => 'library',
'install_path' => __DIR__ . '/../wpdesk/ltv-dashboard-widget',
'aliases' => array(),
'dev_requirement' => false,
),
'wpdesk/wp-wpdesk-helper-override' => array(
'pretty_version' => '1.1.0',
'version' => '1.1.0.0',
'reference' => '77844fc71da7ebb7645f10f0fc15f5294fed8542',
'type' => 'library',
'install_path' => __DIR__ . '/../wpdesk/wp-wpdesk-helper-override',
'aliases' => array(),
'dev_requirement' => false,
),
),
);

View File

@@ -0,0 +1,3 @@
composer.lock
composer.phar
/vendor/

View File

@@ -0,0 +1,22 @@
{
"name": "psr/container",
"type": "library",
"description": "Common Container Interface (PHP FIG PSR-11)",
"keywords": ["psr", "psr-11", "container", "container-interop", "container-interface"],
"homepage": "https://github.com/php-fig/container",
"license": "MIT",
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"require": {
"php": ">=7.2.0"
},
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
}
}
}

View File

@@ -0,0 +1,10 @@
<?php
namespace Psr\Container;
/**
* Base interface representing a generic exception in a container.
*/
interface ContainerExceptionInterface
{
}

View File

@@ -0,0 +1,36 @@
<?php
declare(strict_types=1);
namespace Psr\Container;
/**
* Describes the interface of a container that exposes methods to read its entries.
*/
interface ContainerInterface
{
/**
* Finds an entry of the container by its identifier and returns it.
*
* @param string $id Identifier of the entry to look for.
*
* @throws NotFoundExceptionInterface No entry was found for **this** identifier.
* @throws ContainerExceptionInterface Error while retrieving the entry.
*
* @return mixed Entry.
*/
public function get(string $id);
/**
* Returns true if the container can return an entry for the given identifier.
* Returns false otherwise.
*
* `has($id)` returning true does not mean that `get($id)` will not throw an exception.
* It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`.
*
* @param string $id Identifier of the entry to look for.
*
* @return bool
*/
public function has(string $id);
}

View File

@@ -0,0 +1,10 @@
<?php
namespace Psr\Container;
/**
* No entry was found in the container.
*/
interface NotFoundExceptionInterface extends ContainerExceptionInterface
{
}

View File

@@ -0,0 +1,128 @@
<?php
namespace Psr\Log;
/**
* This is a simple Logger implementation that other Loggers can inherit from.
*
* It simply delegates all log-level-specific methods to the `log` method to
* reduce boilerplate code that a simple Logger that does the same thing with
* messages regardless of the error level has to implement.
*/
abstract class AbstractLogger implements LoggerInterface
{
/**
* System is unusable.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function emergency($message, array $context = array())
{
$this->log(LogLevel::EMERGENCY, $message, $context);
}
/**
* Action must be taken immediately.
*
* Example: Entire website down, database unavailable, etc. This should
* trigger the SMS alerts and wake you up.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function alert($message, array $context = array())
{
$this->log(LogLevel::ALERT, $message, $context);
}
/**
* Critical conditions.
*
* Example: Application component unavailable, unexpected exception.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function critical($message, array $context = array())
{
$this->log(LogLevel::CRITICAL, $message, $context);
}
/**
* Runtime errors that do not require immediate action but should typically
* be logged and monitored.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function error($message, array $context = array())
{
$this->log(LogLevel::ERROR, $message, $context);
}
/**
* Exceptional occurrences that are not errors.
*
* Example: Use of deprecated APIs, poor use of an API, undesirable things
* that are not necessarily wrong.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function warning($message, array $context = array())
{
$this->log(LogLevel::WARNING, $message, $context);
}
/**
* Normal but significant events.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function notice($message, array $context = array())
{
$this->log(LogLevel::NOTICE, $message, $context);
}
/**
* Interesting events.
*
* Example: User logs in, SQL logs.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function info($message, array $context = array())
{
$this->log(LogLevel::INFO, $message, $context);
}
/**
* Detailed debug information.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function debug($message, array $context = array())
{
$this->log(LogLevel::DEBUG, $message, $context);
}
}

View File

@@ -0,0 +1,7 @@
<?php
namespace Psr\Log;
class InvalidArgumentException extends \InvalidArgumentException
{
}

View File

@@ -0,0 +1,18 @@
<?php
namespace Psr\Log;
/**
* Describes log levels.
*/
class LogLevel
{
const EMERGENCY = 'emergency';
const ALERT = 'alert';
const CRITICAL = 'critical';
const ERROR = 'error';
const WARNING = 'warning';
const NOTICE = 'notice';
const INFO = 'info';
const DEBUG = 'debug';
}

View File

@@ -0,0 +1,18 @@
<?php
namespace Psr\Log;
/**
* Describes a logger-aware instance.
*/
interface LoggerAwareInterface
{
/**
* Sets a logger instance on the object.
*
* @param LoggerInterface $logger
*
* @return void
*/
public function setLogger(LoggerInterface $logger);
}

View File

@@ -0,0 +1,26 @@
<?php
namespace Psr\Log;
/**
* Basic Implementation of LoggerAwareInterface.
*/
trait LoggerAwareTrait
{
/**
* The logger instance.
*
* @var LoggerInterface|null
*/
protected $logger;
/**
* Sets a logger.
*
* @param LoggerInterface $logger
*/
public function setLogger(LoggerInterface $logger)
{
$this->logger = $logger;
}
}

View File

@@ -0,0 +1,125 @@
<?php
namespace Psr\Log;
/**
* Describes a logger instance.
*
* The message MUST be a string or object implementing __toString().
*
* The message MAY contain placeholders in the form: {foo} where foo
* will be replaced by the context data in key "foo".
*
* The context array can contain arbitrary data. The only assumption that
* can be made by implementors is that if an Exception instance is given
* to produce a stack trace, it MUST be in a key named "exception".
*
* See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
* for the full interface specification.
*/
interface LoggerInterface
{
/**
* System is unusable.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function emergency($message, array $context = array());
/**
* Action must be taken immediately.
*
* Example: Entire website down, database unavailable, etc. This should
* trigger the SMS alerts and wake you up.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function alert($message, array $context = array());
/**
* Critical conditions.
*
* Example: Application component unavailable, unexpected exception.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function critical($message, array $context = array());
/**
* Runtime errors that do not require immediate action but should typically
* be logged and monitored.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function error($message, array $context = array());
/**
* Exceptional occurrences that are not errors.
*
* Example: Use of deprecated APIs, poor use of an API, undesirable things
* that are not necessarily wrong.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function warning($message, array $context = array());
/**
* Normal but significant events.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function notice($message, array $context = array());
/**
* Interesting events.
*
* Example: User logs in, SQL logs.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function info($message, array $context = array());
/**
* Detailed debug information.
*
* @param string $message
* @param mixed[] $context
*
* @return void
*/
public function debug($message, array $context = array());
/**
* Logs with an arbitrary level.
*
* @param mixed $level
* @param string $message
* @param mixed[] $context
*
* @return void
*
* @throws \Psr\Log\InvalidArgumentException
*/
public function log($level, $message, array $context = array());
}

View File

@@ -0,0 +1,142 @@
<?php
namespace Psr\Log;
/**
* This is a simple Logger trait that classes unable to extend AbstractLogger
* (because they extend another class, etc) can include.
*
* It simply delegates all log-level-specific methods to the `log` method to
* reduce boilerplate code that a simple Logger that does the same thing with
* messages regardless of the error level has to implement.
*/
trait LoggerTrait
{
/**
* System is unusable.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function emergency($message, array $context = array())
{
$this->log(LogLevel::EMERGENCY, $message, $context);
}
/**
* Action must be taken immediately.
*
* Example: Entire website down, database unavailable, etc. This should
* trigger the SMS alerts and wake you up.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function alert($message, array $context = array())
{
$this->log(LogLevel::ALERT, $message, $context);
}
/**
* Critical conditions.
*
* Example: Application component unavailable, unexpected exception.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function critical($message, array $context = array())
{
$this->log(LogLevel::CRITICAL, $message, $context);
}
/**
* Runtime errors that do not require immediate action but should typically
* be logged and monitored.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function error($message, array $context = array())
{
$this->log(LogLevel::ERROR, $message, $context);
}
/**
* Exceptional occurrences that are not errors.
*
* Example: Use of deprecated APIs, poor use of an API, undesirable things
* that are not necessarily wrong.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function warning($message, array $context = array())
{
$this->log(LogLevel::WARNING, $message, $context);
}
/**
* Normal but significant events.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function notice($message, array $context = array())
{
$this->log(LogLevel::NOTICE, $message, $context);
}
/**
* Interesting events.
*
* Example: User logs in, SQL logs.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function info($message, array $context = array())
{
$this->log(LogLevel::INFO, $message, $context);
}
/**
* Detailed debug information.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function debug($message, array $context = array())
{
$this->log(LogLevel::DEBUG, $message, $context);
}
/**
* Logs with an arbitrary level.
*
* @param mixed $level
* @param string $message
* @param array $context
*
* @return void
*
* @throws \Psr\Log\InvalidArgumentException
*/
abstract public function log($level, $message, array $context = array());
}

View File

@@ -0,0 +1,30 @@
<?php
namespace Psr\Log;
/**
* This Logger can be used to avoid conditional log calls.
*
* Logging should always be optional, and if no logger is provided to your
* library creating a NullLogger instance to have something to throw logs at
* is a good way to avoid littering your code with `if ($this->logger) { }`
* blocks.
*/
class NullLogger extends AbstractLogger
{
/**
* Logs with an arbitrary level.
*
* @param mixed $level
* @param string $message
* @param array $context
*
* @return void
*
* @throws \Psr\Log\InvalidArgumentException
*/
public function log($level, $message, array $context = array())
{
// noop
}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace Psr\Log\Test;
/**
* This class is internal and does not follow the BC promise.
*
* Do NOT use this class in any way.
*
* @internal
*/
class DummyTest
{
public function __toString()
{
return 'DummyTest';
}
}

View File

@@ -0,0 +1,138 @@
<?php
namespace Psr\Log\Test;
use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
use PHPUnit\Framework\TestCase;
/**
* Provides a base test class for ensuring compliance with the LoggerInterface.
*
* Implementors can extend the class and implement abstract methods to run this
* as part of their test suite.
*/
abstract class LoggerInterfaceTest extends TestCase
{
/**
* @return LoggerInterface
*/
abstract public function getLogger();
/**
* This must return the log messages in order.
*
* The simple formatting of the messages is: "<LOG LEVEL> <MESSAGE>".
*
* Example ->error('Foo') would yield "error Foo".
*
* @return string[]
*/
abstract public function getLogs();
public function testImplements()
{
$this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger());
}
/**
* @dataProvider provideLevelsAndMessages
*/
public function testLogsAtAllLevels($level, $message)
{
$logger = $this->getLogger();
$logger->{$level}($message, array('user' => 'Bob'));
$logger->log($level, $message, array('user' => 'Bob'));
$expected = array(
$level.' message of level '.$level.' with context: Bob',
$level.' message of level '.$level.' with context: Bob',
);
$this->assertEquals($expected, $this->getLogs());
}
public function provideLevelsAndMessages()
{
return array(
LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'),
LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'),
LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'),
LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'),
LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'),
LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'),
LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'),
LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'),
);
}
/**
* @expectedException \Psr\Log\InvalidArgumentException
*/
public function testThrowsOnInvalidLevel()
{
$logger = $this->getLogger();
$logger->log('invalid level', 'Foo');
}
public function testContextReplacement()
{
$logger = $this->getLogger();
$logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
$expected = array('info {Message {nothing} Bob Bar a}');
$this->assertEquals($expected, $this->getLogs());
}
public function testObjectCastToString()
{
if (method_exists($this, 'createPartialMock')) {
$dummy = $this->createPartialMock('Psr\Log\Test\DummyTest', array('__toString'));
} else {
$dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
}
$dummy->expects($this->once())
->method('__toString')
->will($this->returnValue('DUMMY'));
$this->getLogger()->warning($dummy);
$expected = array('warning DUMMY');
$this->assertEquals($expected, $this->getLogs());
}
public function testContextCanContainAnything()
{
$closed = fopen('php://memory', 'r');
fclose($closed);
$context = array(
'bool' => true,
'null' => null,
'string' => 'Foo',
'int' => 0,
'float' => 0.5,
'nested' => array('with object' => new DummyTest),
'object' => new \DateTime,
'resource' => fopen('php://memory', 'r'),
'closed' => $closed,
);
$this->getLogger()->warning('Crazy context data', $context);
$expected = array('warning Crazy context data');
$this->assertEquals($expected, $this->getLogs());
}
public function testContextExceptionKeyCanBeExceptionOrOtherValues()
{
$logger = $this->getLogger();
$logger->warning('Random message', array('exception' => 'oops'));
$logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
$expected = array(
'warning Random message',
'critical Uncaught Exception!'
);
$this->assertEquals($expected, $this->getLogs());
}
}

View File

@@ -0,0 +1,147 @@
<?php
namespace Psr\Log\Test;
use Psr\Log\AbstractLogger;
/**
* Used for testing purposes.
*
* It records all records and gives you access to them for verification.
*
* @method bool hasEmergency($record)
* @method bool hasAlert($record)
* @method bool hasCritical($record)
* @method bool hasError($record)
* @method bool hasWarning($record)
* @method bool hasNotice($record)
* @method bool hasInfo($record)
* @method bool hasDebug($record)
*
* @method bool hasEmergencyRecords()
* @method bool hasAlertRecords()
* @method bool hasCriticalRecords()
* @method bool hasErrorRecords()
* @method bool hasWarningRecords()
* @method bool hasNoticeRecords()
* @method bool hasInfoRecords()
* @method bool hasDebugRecords()
*
* @method bool hasEmergencyThatContains($message)
* @method bool hasAlertThatContains($message)
* @method bool hasCriticalThatContains($message)
* @method bool hasErrorThatContains($message)
* @method bool hasWarningThatContains($message)
* @method bool hasNoticeThatContains($message)
* @method bool hasInfoThatContains($message)
* @method bool hasDebugThatContains($message)
*
* @method bool hasEmergencyThatMatches($message)
* @method bool hasAlertThatMatches($message)
* @method bool hasCriticalThatMatches($message)
* @method bool hasErrorThatMatches($message)
* @method bool hasWarningThatMatches($message)
* @method bool hasNoticeThatMatches($message)
* @method bool hasInfoThatMatches($message)
* @method bool hasDebugThatMatches($message)
*
* @method bool hasEmergencyThatPasses($message)
* @method bool hasAlertThatPasses($message)
* @method bool hasCriticalThatPasses($message)
* @method bool hasErrorThatPasses($message)
* @method bool hasWarningThatPasses($message)
* @method bool hasNoticeThatPasses($message)
* @method bool hasInfoThatPasses($message)
* @method bool hasDebugThatPasses($message)
*/
class TestLogger extends AbstractLogger
{
/**
* @var array
*/
public $records = [];
public $recordsByLevel = [];
/**
* @inheritdoc
*/
public function log($level, $message, array $context = [])
{
$record = [
'level' => $level,
'message' => $message,
'context' => $context,
];
$this->recordsByLevel[$record['level']][] = $record;
$this->records[] = $record;
}
public function hasRecords($level)
{
return isset($this->recordsByLevel[$level]);
}
public function hasRecord($record, $level)
{
if (is_string($record)) {
$record = ['message' => $record];
}
return $this->hasRecordThatPasses(function ($rec) use ($record) {
if ($rec['message'] !== $record['message']) {
return false;
}
if (isset($record['context']) && $rec['context'] !== $record['context']) {
return false;
}
return true;
}, $level);
}
public function hasRecordThatContains($message, $level)
{
return $this->hasRecordThatPasses(function ($rec) use ($message) {
return strpos($rec['message'], $message) !== false;
}, $level);
}
public function hasRecordThatMatches($regex, $level)
{
return $this->hasRecordThatPasses(function ($rec) use ($regex) {
return preg_match($regex, $rec['message']) > 0;
}, $level);
}
public function hasRecordThatPasses(callable $predicate, $level)
{
if (!isset($this->recordsByLevel[$level])) {
return false;
}
foreach ($this->recordsByLevel[$level] as $i => $rec) {
if (call_user_func($predicate, $rec, $i)) {
return true;
}
}
return false;
}
public function __call($method, $args)
{
if (preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) {
$genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3];
$level = strtolower($matches[2]);
if (method_exists($this, $genericMethod)) {
$args[] = $level;
return call_user_func_array([$this, $genericMethod], $args);
}
}
throw new \BadMethodCallException('Call to undefined method ' . get_class($this) . '::' . $method . '()');
}
public function reset()
{
$this->records = [];
$this->recordsByLevel = [];
}
}

View File

@@ -0,0 +1,26 @@
{
"name": "psr/log",
"description": "Common interface for logging libraries",
"keywords": ["psr", "psr-3", "log"],
"homepage": "https://github.com/php-fig/log",
"license": "MIT",
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"require": {
"php": ">=5.3.0"
},
"autoload": {
"psr-4": {
"Psr\\Log\\": "Psr/Log/"
}
},
"extra": {
"branch-alias": {
"dev-master": "1.1.x-dev"
}
}
}

Submodule wp-content/plugins/flexible-coupons-pro/vendor/wpdesk/ltv-dashboard-widget added at 99294c306a

View File

@@ -0,0 +1,9 @@
## [1.1.0] - 2019-08-13
### Added
- WPDesk_Tracker_Data_Provider
- WPDesk_Tracker_Interface
- WPDesk_Tracker_Sender
## [1.0.0] - 2019-08-02
### Added
- First version with Helper and Tracker override

View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2018 wpdesk
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.

View File

@@ -0,0 +1,22 @@
{
"name": "wpdesk/wp-wpdesk-helper-override",
"authors": [
{
"name": "Krzysiek",
"email": "krzysiek@wpdesk.pl"
}
],
"require": {
"php": ">=5.6"
},
"require-dev": {
"phpunit/phpunit": "<7"
},
"autoload": {
"classmap": [
"src"
]
},
"scripts": {
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace WPDesk\Helper;
/**
* @deprecated Do not use. Only for purpose of compatibility with library 1.x version
*
* @package WPDesk\Helper
*/
class HelperAsLibrary
{
public function hooks()
{
do_action('wpdesk_helper_instance');
}
/**
* @return \WPDesk_Tracker
*/
public function get_tracker()
{
return apply_filters('wpdesk_tracker_instance', null);
}
/**
* @return LoggerInterface
*/
public function get_logger()
{
return apply_filters('wpdesk_logger_instance', null);
}
}

View File

@@ -0,0 +1,30 @@
<?php
/**
* WP Desk Tracker
*
* @class WPDESK_Tracker
* @version 1.3.2
* @package WPDESK/Helper
* @category Class
* @author WP Desk
*/
/**
* @deprecated Do not use. Only for purpose of compatibility with library 1.x version
*
* Class WPDesk_Tracker_Factory
*/
class WPDesk_Tracker_Factory
{
/**
* Creates tracker instance.
*
* @param string $basename Plugin basename.
*
* @return WPDesk_Tracker created tracker.
*/
public function create_tracker($basename)
{
return apply_filters('wpdesk_tracker_instance', null);
}
}

View File

@@ -0,0 +1,12 @@
<?php
interface WPDesk_Tracker_Data_Provider {
/**
* Provides data
*
* @return array Data provided to tracker.
*/
public function get_data();
}

View File

@@ -0,0 +1,20 @@
<?php
interface WPDesk_Tracker_Interface {
/**
* Setter for object that sends data.
*
* @param WPDesk_Tracker_Sender $sender Object that can send payloads.
*/
public function set_sender( WPDesk_Tracker_Sender $sender );
/**
* Attach data provider class to tracker
*
* @param WPDesk_Tracker_Data_Provider $provider
*
* @return void
*/
public function add_data_provider( WPDesk_Tracker_Data_Provider $provider );
}

View File

@@ -0,0 +1,15 @@
<?php
interface WPDesk_Tracker_Sender {
/**
* Sends payload to predefined receiver.
*
* @param array $payload Payload to send.
*
* @return array If succeeded. Array containing 'headers', 'body', 'response', 'cookies', 'filename'.
*/
public function send_payload( array $payload );
}

View File

@@ -0,0 +1,89 @@
{
"name": "monolog\/monolog",
"description": "Sends your logs to files, sockets, inboxes, databases and various web services",
"keywords": [
"log",
"logging",
"psr-3"
],
"homepage": "https:\/\/github.com\/Seldaek\/monolog",
"type": "library",
"license": "MIT",
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "https:\/\/seld.be"
}
],
"require": {
"php": ">=7.2",
"psr\/log": "^1.0.1 || ^2.0 || ^3.0"
},
"require-dev": {
"ext-json": "*",
"aws\/aws-sdk-php": "^2.4.9 || ^3.0",
"doctrine\/couchdb": "~1.0@dev",
"elasticsearch\/elasticsearch": "^7 || ^8",
"graylog2\/gelf-php": "^1.4.2 || ^2@dev",
"guzzlehttp\/guzzle": "^7.4",
"guzzlehttp\/psr7": "^2.2",
"mongodb\/mongodb": "^1.8",
"php-amqplib\/php-amqplib": "~2.4 || ^3",
"phpspec\/prophecy": "^1.15",
"phpstan\/phpstan": "^0.12.91",
"phpunit\/phpunit": "^8.5.14",
"predis\/predis": "^1.1 || ^2.0",
"rollbar\/rollbar": "^1.3 || ^2 || ^3",
"ruflin\/elastica": "^7",
"swiftmailer\/swiftmailer": "^5.3|^6.0",
"symfony\/mailer": "^5.4 || ^6",
"symfony\/mime": "^5.4 || ^6"
},
"suggest": {
"graylog2\/gelf-php": "Allow sending log messages to a GrayLog2 server",
"doctrine\/couchdb": "Allow sending log messages to a CouchDB server",
"ruflin\/elastica": "Allow sending log messages to an Elastic Search server",
"elasticsearch\/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
"php-amqplib\/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
"ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
"ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
"mongodb\/mongodb": "Allow sending log messages to a MongoDB server (via library)",
"aws\/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
"rollbar\/rollbar": "Allow sending log messages to Rollbar",
"ext-mbstring": "Allow to work properly with unicode symbols",
"ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)",
"ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
"ext-openssl": "Required to send log messages using SSL"
},
"autoload": {
"psr-4": {
"FlexibleCouponsProVendor\\Monolog\\": "src\/Monolog"
}
},
"autoload-dev": {
"psr-4": {
"FlexibleCouponsProVendor\\Monolog\\": "tests\/Monolog"
}
},
"provide": {
"psr\/log-implementation": "1.0.0 || 2.0.0 || 3.0.0"
},
"extra": {
"branch-alias": {
"dev-main": "2.x-dev"
}
},
"scripts": {
"test": "@php vendor\/bin\/phpunit",
"phpstan": "@php vendor\/bin\/phpstan analyse"
},
"config": {
"lock": false,
"sort-packages": true,
"platform-check": false,
"allow-plugins": {
"composer\/package-versions-deprecated": true
}
}
}

View File

@@ -0,0 +1,42 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Attribute;
/**
* A reusable attribute to help configure a class or a method as a processor.
*
* Using it offers no guarantee: it needs to be leveraged by a Monolog third-party consumer.
*
* Using it with the Monolog library only has no effect at all: processors should still be turned into a callable if
* needed and manually pushed to the loggers and to the processable handlers.
*/
#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)]
class AsMonologProcessor
{
/** @var string|null */
public $channel = null;
/** @var string|null */
public $handler = null;
/** @var string|null */
public $method = null;
/**
* @param string|null $channel The logging channel the processor should be pushed to.
* @param string|null $handler The handler the processor should be pushed to.
* @param string|null $method The method that processes the records (if the attribute is used at the class level).
*/
public function __construct(?string $channel = null, ?string $handler = null, ?string $method = null)
{
$this->channel = $channel;
$this->handler = $handler;
$this->method = $method;
}
}

View File

@@ -0,0 +1,43 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog;
use DateTimeZone;
/**
* Overrides default json encoding of date time objects
*
* @author Menno Holtkamp
* @author Jordi Boggiano <j.boggiano@seld.be>
*/
class DateTimeImmutable extends \DateTimeImmutable implements \JsonSerializable
{
/**
* @var bool
*/
private $useMicroseconds;
public function __construct(bool $useMicroseconds, ?\DateTimeZone $timezone = null)
{
$this->useMicroseconds = $useMicroseconds;
parent::__construct('now', $timezone);
}
public function jsonSerialize() : string
{
if ($this->useMicroseconds) {
return $this->format('Y-m-d\\TH:i:s.uP');
}
return $this->format('Y-m-d\\TH:i:sP');
}
public function __toString() : string
{
return $this->jsonSerialize();
}
}

View File

@@ -0,0 +1,249 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog;
use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
/**
* Monolog error handler
*
* A facility to enable logging of runtime errors, exceptions and fatal errors.
*
* Quick setup: <code>ErrorHandler::register($logger);</code>
*
* @author Jordi Boggiano <j.boggiano@seld.be>
*/
class ErrorHandler
{
/** @var LoggerInterface */
private $logger;
/** @var ?callable */
private $previousExceptionHandler = null;
/** @var array<class-string, LogLevel::*> an array of class name to LogLevel::* constant mapping */
private $uncaughtExceptionLevelMap = [];
/** @var callable|true|null */
private $previousErrorHandler = null;
/** @var array<int, LogLevel::*> an array of E_* constant to LogLevel::* constant mapping */
private $errorLevelMap = [];
/** @var bool */
private $handleOnlyReportedErrors = \true;
/** @var bool */
private $hasFatalErrorHandler = \false;
/** @var LogLevel::* */
private $fatalLevel = \Psr\Log\LogLevel::ALERT;
/** @var ?string */
private $reservedMemory = null;
/** @var ?array{type: int, message: string, file: string, line: int, trace: mixed} */
private $lastFatalData = null;
/** @var int[] */
private static $fatalErrors = [\E_ERROR, \E_PARSE, \E_CORE_ERROR, \E_COMPILE_ERROR, \E_USER_ERROR];
public function __construct(\Psr\Log\LoggerInterface $logger)
{
$this->logger = $logger;
}
/**
* Registers a new ErrorHandler for a given Logger
*
* By default it will handle errors, exceptions and fatal errors
*
* @param LoggerInterface $logger
* @param array<int, LogLevel::*>|false $errorLevelMap an array of E_* constant to LogLevel::* constant mapping, or false to disable error handling
* @param array<class-string, LogLevel::*>|false $exceptionLevelMap an array of class name to LogLevel::* constant mapping, or false to disable exception handling
* @param LogLevel::*|null|false $fatalLevel a LogLevel::* constant, null to use the default LogLevel::ALERT or false to disable fatal error handling
* @return ErrorHandler
*/
public static function register(\Psr\Log\LoggerInterface $logger, $errorLevelMap = [], $exceptionLevelMap = [], $fatalLevel = null) : self
{
/** @phpstan-ignore-next-line */
$handler = new static($logger);
if ($errorLevelMap !== \false) {
$handler->registerErrorHandler($errorLevelMap);
}
if ($exceptionLevelMap !== \false) {
$handler->registerExceptionHandler($exceptionLevelMap);
}
if ($fatalLevel !== \false) {
$handler->registerFatalHandler($fatalLevel);
}
return $handler;
}
/**
* @param array<class-string, LogLevel::*> $levelMap an array of class name to LogLevel::* constant mapping
* @return $this
*/
public function registerExceptionHandler(array $levelMap = [], bool $callPrevious = \true) : self
{
$prev = \set_exception_handler(function (\Throwable $e) : void {
$this->handleException($e);
});
$this->uncaughtExceptionLevelMap = $levelMap;
foreach ($this->defaultExceptionLevelMap() as $class => $level) {
if (!isset($this->uncaughtExceptionLevelMap[$class])) {
$this->uncaughtExceptionLevelMap[$class] = $level;
}
}
if ($callPrevious && $prev) {
$this->previousExceptionHandler = $prev;
}
return $this;
}
/**
* @param array<int, LogLevel::*> $levelMap an array of E_* constant to LogLevel::* constant mapping
* @return $this
*/
public function registerErrorHandler(array $levelMap = [], bool $callPrevious = \true, int $errorTypes = -1, bool $handleOnlyReportedErrors = \true) : self
{
$prev = \set_error_handler([$this, 'handleError'], $errorTypes);
$this->errorLevelMap = \array_replace($this->defaultErrorLevelMap(), $levelMap);
if ($callPrevious) {
$this->previousErrorHandler = $prev ?: \true;
} else {
$this->previousErrorHandler = null;
}
$this->handleOnlyReportedErrors = $handleOnlyReportedErrors;
return $this;
}
/**
* @param LogLevel::*|null $level a LogLevel::* constant, null to use the default LogLevel::ALERT
* @param int $reservedMemorySize Amount of KBs to reserve in memory so that it can be freed when handling fatal errors giving Monolog some room in memory to get its job done
*/
public function registerFatalHandler($level = null, int $reservedMemorySize = 20) : self
{
\register_shutdown_function([$this, 'handleFatalError']);
$this->reservedMemory = \str_repeat(' ', 1024 * $reservedMemorySize);
$this->fatalLevel = null === $level ? \Psr\Log\LogLevel::ALERT : $level;
$this->hasFatalErrorHandler = \true;
return $this;
}
/**
* @return array<class-string, LogLevel::*>
*/
protected function defaultExceptionLevelMap() : array
{
return ['ParseError' => \Psr\Log\LogLevel::CRITICAL, 'Throwable' => \Psr\Log\LogLevel::ERROR];
}
/**
* @return array<int, LogLevel::*>
*/
protected function defaultErrorLevelMap() : array
{
return [\E_ERROR => \Psr\Log\LogLevel::CRITICAL, \E_WARNING => \Psr\Log\LogLevel::WARNING, \E_PARSE => \Psr\Log\LogLevel::ALERT, \E_NOTICE => \Psr\Log\LogLevel::NOTICE, \E_CORE_ERROR => \Psr\Log\LogLevel::CRITICAL, \E_CORE_WARNING => \Psr\Log\LogLevel::WARNING, \E_COMPILE_ERROR => \Psr\Log\LogLevel::ALERT, \E_COMPILE_WARNING => \Psr\Log\LogLevel::WARNING, \E_USER_ERROR => \Psr\Log\LogLevel::ERROR, \E_USER_WARNING => \Psr\Log\LogLevel::WARNING, \E_USER_NOTICE => \Psr\Log\LogLevel::NOTICE, \E_STRICT => \Psr\Log\LogLevel::NOTICE, \E_RECOVERABLE_ERROR => \Psr\Log\LogLevel::ERROR, \E_DEPRECATED => \Psr\Log\LogLevel::NOTICE, \E_USER_DEPRECATED => \Psr\Log\LogLevel::NOTICE];
}
/**
* @phpstan-return never
*/
private function handleException(\Throwable $e) : void
{
$level = \Psr\Log\LogLevel::ERROR;
foreach ($this->uncaughtExceptionLevelMap as $class => $candidate) {
if ($e instanceof $class) {
$level = $candidate;
break;
}
}
$this->logger->log($level, \sprintf('Uncaught Exception %s: "%s" at %s line %s', \FlexibleCouponsProVendor\Monolog\Utils::getClass($e), $e->getMessage(), $e->getFile(), $e->getLine()), ['exception' => $e]);
if ($this->previousExceptionHandler) {
($this->previousExceptionHandler)($e);
}
if (!\headers_sent() && \in_array(\strtolower((string) \ini_get('display_errors')), ['0', '', 'false', 'off', 'none', 'no'], \true)) {
\http_response_code(500);
}
exit(255);
}
/**
* @private
*
* @param mixed[] $context
*/
public function handleError(int $code, string $message, string $file = '', int $line = 0, ?array $context = []) : bool
{
if ($this->handleOnlyReportedErrors && !(\error_reporting() & $code)) {
return \false;
}
// fatal error codes are ignored if a fatal error handler is present as well to avoid duplicate log entries
if (!$this->hasFatalErrorHandler || !\in_array($code, self::$fatalErrors, \true)) {
$level = $this->errorLevelMap[$code] ?? \Psr\Log\LogLevel::CRITICAL;
$this->logger->log($level, self::codeToString($code) . ': ' . $message, ['code' => $code, 'message' => $message, 'file' => $file, 'line' => $line]);
} else {
$trace = \debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS);
\array_shift($trace);
// Exclude handleError from trace
$this->lastFatalData = ['type' => $code, 'message' => $message, 'file' => $file, 'line' => $line, 'trace' => $trace];
}
if ($this->previousErrorHandler === \true) {
return \false;
} elseif ($this->previousErrorHandler) {
return (bool) ($this->previousErrorHandler)($code, $message, $file, $line, $context);
}
return \true;
}
/**
* @private
*/
public function handleFatalError() : void
{
$this->reservedMemory = '';
if (\is_array($this->lastFatalData)) {
$lastError = $this->lastFatalData;
} else {
$lastError = \error_get_last();
}
if ($lastError && \in_array($lastError['type'], self::$fatalErrors, \true)) {
$trace = $lastError['trace'] ?? null;
$this->logger->log($this->fatalLevel, 'Fatal Error (' . self::codeToString($lastError['type']) . '): ' . $lastError['message'], ['code' => $lastError['type'], 'message' => $lastError['message'], 'file' => $lastError['file'], 'line' => $lastError['line'], 'trace' => $trace]);
if ($this->logger instanceof \FlexibleCouponsProVendor\Monolog\Logger) {
foreach ($this->logger->getHandlers() as $handler) {
$handler->close();
}
}
}
}
/**
* @param int $code
*/
private static function codeToString($code) : string
{
switch ($code) {
case \E_ERROR:
return 'E_ERROR';
case \E_WARNING:
return 'E_WARNING';
case \E_PARSE:
return 'E_PARSE';
case \E_NOTICE:
return 'E_NOTICE';
case \E_CORE_ERROR:
return 'E_CORE_ERROR';
case \E_CORE_WARNING:
return 'E_CORE_WARNING';
case \E_COMPILE_ERROR:
return 'E_COMPILE_ERROR';
case \E_COMPILE_WARNING:
return 'E_COMPILE_WARNING';
case \E_USER_ERROR:
return 'E_USER_ERROR';
case \E_USER_WARNING:
return 'E_USER_WARNING';
case \E_USER_NOTICE:
return 'E_USER_NOTICE';
case \E_STRICT:
return 'E_STRICT';
case \E_RECOVERABLE_ERROR:
return 'E_RECOVERABLE_ERROR';
case \E_DEPRECATED:
return 'E_DEPRECATED';
case \E_USER_DEPRECATED:
return 'E_USER_DEPRECATED';
}
return 'Unknown PHP error';
}
}

View File

@@ -0,0 +1,62 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
use FlexibleCouponsProVendor\Monolog\Logger;
/**
* Formats a log message according to the ChromePHP array format
*
* @author Christophe Coevoet <stof@notk.org>
*/
class ChromePHPFormatter implements \FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface
{
/**
* Translates Monolog log levels to Wildfire levels.
*
* @var array<int, 'log'|'info'|'warn'|'error'>
*/
private $logLevels = [\FlexibleCouponsProVendor\Monolog\Logger::DEBUG => 'log', \FlexibleCouponsProVendor\Monolog\Logger::INFO => 'info', \FlexibleCouponsProVendor\Monolog\Logger::NOTICE => 'info', \FlexibleCouponsProVendor\Monolog\Logger::WARNING => 'warn', \FlexibleCouponsProVendor\Monolog\Logger::ERROR => 'error', \FlexibleCouponsProVendor\Monolog\Logger::CRITICAL => 'error', \FlexibleCouponsProVendor\Monolog\Logger::ALERT => 'error', \FlexibleCouponsProVendor\Monolog\Logger::EMERGENCY => 'error'];
/**
* {@inheritDoc}
*/
public function format(array $record)
{
// Retrieve the line and file if set and remove them from the formatted extra
$backtrace = 'unknown';
if (isset($record['extra']['file'], $record['extra']['line'])) {
$backtrace = $record['extra']['file'] . ' : ' . $record['extra']['line'];
unset($record['extra']['file'], $record['extra']['line']);
}
$message = ['message' => $record['message']];
if ($record['context']) {
$message['context'] = $record['context'];
}
if ($record['extra']) {
$message['extra'] = $record['extra'];
}
if (\count($message) === 1) {
$message = \reset($message);
}
return [$record['channel'], $message, $backtrace, $this->logLevels[$record['level']]];
}
/**
* {@inheritDoc}
*/
public function formatBatch(array $records)
{
$formatted = [];
foreach ($records as $record) {
$formatted[] = $this->format($record);
}
return $formatted;
}
}

View File

@@ -0,0 +1,79 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
use FlexibleCouponsProVendor\Elastica\Document;
/**
* Format a log message into an Elastica Document
*
* @author Jelle Vink <jelle.vink@gmail.com>
*
* @phpstan-import-type Record from \Monolog\Logger
*/
class ElasticaFormatter extends \FlexibleCouponsProVendor\Monolog\Formatter\NormalizerFormatter
{
/**
* @var string Elastic search index name
*/
protected $index;
/**
* @var ?string Elastic search document type
*/
protected $type;
/**
* @param string $index Elastic Search index name
* @param ?string $type Elastic Search document type, deprecated as of Elastica 7
*/
public function __construct(string $index, ?string $type)
{
// elasticsearch requires a ISO 8601 format date with optional millisecond precision.
parent::__construct('Y-m-d\\TH:i:s.uP');
$this->index = $index;
$this->type = $type;
}
/**
* {@inheritDoc}
*/
public function format(array $record)
{
$record = parent::format($record);
return $this->getDocument($record);
}
public function getIndex() : string
{
return $this->index;
}
/**
* @deprecated since Elastica 7 type has no effect
*/
public function getType() : string
{
/** @phpstan-ignore-next-line */
return $this->type;
}
/**
* Convert a log message into an Elastica Document
*
* @phpstan-param Record $record
*/
protected function getDocument(array $record) : \FlexibleCouponsProVendor\Elastica\Document
{
$document = new \FlexibleCouponsProVendor\Elastica\Document();
$document->setData($record);
if (\method_exists($document, 'setType')) {
/** @phpstan-ignore-next-line */
$document->setType($this->type);
}
$document->setIndex($this->index);
return $document;
}
}

View File

@@ -0,0 +1,79 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
use DateTimeInterface;
/**
* Format a log message into an Elasticsearch record
*
* @author Avtandil Kikabidze <akalongman@gmail.com>
*/
class ElasticsearchFormatter extends \FlexibleCouponsProVendor\Monolog\Formatter\NormalizerFormatter
{
/**
* @var string Elasticsearch index name
*/
protected $index;
/**
* @var string Elasticsearch record type
*/
protected $type;
/**
* @param string $index Elasticsearch index name
* @param string $type Elasticsearch record type
*/
public function __construct(string $index, string $type)
{
// Elasticsearch requires an ISO 8601 format date with optional millisecond precision.
parent::__construct(\DateTimeInterface::ISO8601);
$this->index = $index;
$this->type = $type;
}
/**
* {@inheritDoc}
*/
public function format(array $record)
{
$record = parent::format($record);
return $this->getDocument($record);
}
/**
* Getter index
*
* @return string
*/
public function getIndex() : string
{
return $this->index;
}
/**
* Getter type
*
* @return string
*/
public function getType() : string
{
return $this->type;
}
/**
* Convert a log message into an Elasticsearch record
*
* @param mixed[] $record Log message
* @return mixed[]
*/
protected function getDocument(array $record) : array
{
$record['_index'] = $this->index;
$record['_type'] = $this->type;
return $record;
}
}

View File

@@ -0,0 +1,81 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
/**
* formats the record to be used in the FlowdockHandler
*
* @author Dominik Liebler <liebler.dominik@gmail.com>
* @deprecated Since 2.9.0 and 3.3.0, Flowdock was shutdown we will thus drop this handler in Monolog 4
*/
class FlowdockFormatter implements \FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface
{
/**
* @var string
*/
private $source;
/**
* @var string
*/
private $sourceEmail;
public function __construct(string $source, string $sourceEmail)
{
$this->source = $source;
$this->sourceEmail = $sourceEmail;
}
/**
* {@inheritDoc}
*
* @return mixed[]
*/
public function format(array $record) : array
{
$tags = ['#logs', '#' . \strtolower($record['level_name']), '#' . $record['channel']];
foreach ($record['extra'] as $value) {
$tags[] = '#' . $value;
}
$subject = \sprintf('in %s: %s - %s', $this->source, $record['level_name'], $this->getShortMessage($record['message']));
$record['flowdock'] = ['source' => $this->source, 'from_address' => $this->sourceEmail, 'subject' => $subject, 'content' => $record['message'], 'tags' => $tags, 'project' => $this->source];
return $record;
}
/**
* {@inheritDoc}
*
* @return mixed[][]
*/
public function formatBatch(array $records) : array
{
$formatted = [];
foreach ($records as $record) {
$formatted[] = $this->format($record);
}
return $formatted;
}
public function getShortMessage(string $message) : string
{
static $hasMbString;
if (null === $hasMbString) {
$hasMbString = \function_exists('mb_strlen');
}
$maxLength = 45;
if ($hasMbString) {
if (\mb_strlen($message, 'UTF-8') > $maxLength) {
$message = \mb_substr($message, 0, $maxLength - 4, 'UTF-8') . ' ...';
}
} else {
if (\strlen($message) > $maxLength) {
$message = \substr($message, 0, $maxLength - 4) . ' ...';
}
}
return $message;
}
}

View File

@@ -0,0 +1,74 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
use FlexibleCouponsProVendor\Monolog\Utils;
/**
* Class FluentdFormatter
*
* Serializes a log message to Fluentd unix socket protocol
*
* Fluentd config:
*
* <source>
* type unix
* path /var/run/td-agent/td-agent.sock
* </source>
*
* Monolog setup:
*
* $logger = new Monolog\Logger('fluent.tag');
* $fluentHandler = new Monolog\Handler\SocketHandler('unix:///var/run/td-agent/td-agent.sock');
* $fluentHandler->setFormatter(new Monolog\Formatter\FluentdFormatter());
* $logger->pushHandler($fluentHandler);
*
* @author Andrius Putna <fordnox@gmail.com>
*/
class FluentdFormatter implements \FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface
{
/**
* @var bool $levelTag should message level be a part of the fluentd tag
*/
protected $levelTag = \false;
public function __construct(bool $levelTag = \false)
{
if (!\function_exists('json_encode')) {
throw new \RuntimeException('PHP\'s json extension is required to use Monolog\'s FluentdUnixFormatter');
}
$this->levelTag = $levelTag;
}
public function isUsingLevelsInTag() : bool
{
return $this->levelTag;
}
public function format(array $record) : string
{
$tag = $record['channel'];
if ($this->levelTag) {
$tag .= '.' . \strtolower($record['level_name']);
}
$message = ['message' => $record['message'], 'context' => $record['context'], 'extra' => $record['extra']];
if (!$this->levelTag) {
$message['level'] = $record['level'];
$message['level_name'] = $record['level_name'];
}
return \FlexibleCouponsProVendor\Monolog\Utils::jsonEncode([$tag, $record['datetime']->getTimestamp(), $message]);
}
public function formatBatch(array $records) : string
{
$message = '';
foreach ($records as $record) {
$message .= $this->format($record);
}
return $message;
}
}

View File

@@ -0,0 +1,41 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
/**
* Interface for formatters
*
* @author Jordi Boggiano <j.boggiano@seld.be>
*
* @phpstan-import-type Record from \Monolog\Logger
*/
interface FormatterInterface
{
/**
* Formats a log record.
*
* @param array $record A record to format
* @return mixed The formatted record
*
* @phpstan-param Record $record
*/
public function format(array $record);
/**
* Formats a set of log records.
*
* @param array $records A set of records to format
* @return mixed The formatted set of records
*
* @phpstan-param Record[] $records
*/
public function formatBatch(array $records);
}

View File

@@ -0,0 +1,138 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
use FlexibleCouponsProVendor\Monolog\Logger;
use FlexibleCouponsProVendor\Gelf\Message;
use FlexibleCouponsProVendor\Monolog\Utils;
/**
* Serializes a log message to GELF
* @see http://docs.graylog.org/en/latest/pages/gelf.html
*
* @author Matt Lehner <mlehner@gmail.com>
*
* @phpstan-import-type Level from \Monolog\Logger
*/
class GelfMessageFormatter extends \FlexibleCouponsProVendor\Monolog\Formatter\NormalizerFormatter
{
protected const DEFAULT_MAX_LENGTH = 32766;
/**
* @var string the name of the system for the Gelf log message
*/
protected $systemName;
/**
* @var string a prefix for 'extra' fields from the Monolog record (optional)
*/
protected $extraPrefix;
/**
* @var string a prefix for 'context' fields from the Monolog record (optional)
*/
protected $contextPrefix;
/**
* @var int max length per field
*/
protected $maxLength;
/**
* @var int
*/
private $gelfVersion = 2;
/**
* Translates Monolog log levels to Graylog2 log priorities.
*
* @var array<int, int>
*
* @phpstan-var array<Level, int>
*/
private $logLevels = [\FlexibleCouponsProVendor\Monolog\Logger::DEBUG => 7, \FlexibleCouponsProVendor\Monolog\Logger::INFO => 6, \FlexibleCouponsProVendor\Monolog\Logger::NOTICE => 5, \FlexibleCouponsProVendor\Monolog\Logger::WARNING => 4, \FlexibleCouponsProVendor\Monolog\Logger::ERROR => 3, \FlexibleCouponsProVendor\Monolog\Logger::CRITICAL => 2, \FlexibleCouponsProVendor\Monolog\Logger::ALERT => 1, \FlexibleCouponsProVendor\Monolog\Logger::EMERGENCY => 0];
public function __construct(?string $systemName = null, ?string $extraPrefix = null, string $contextPrefix = 'ctxt_', ?int $maxLength = null)
{
if (!\class_exists(\FlexibleCouponsProVendor\Gelf\Message::class)) {
throw new \RuntimeException('Composer package graylog2/gelf-php is required to use Monolog\'s GelfMessageFormatter');
}
parent::__construct('U.u');
$this->systemName = \is_null($systemName) || $systemName === '' ? (string) \gethostname() : $systemName;
$this->extraPrefix = \is_null($extraPrefix) ? '' : $extraPrefix;
$this->contextPrefix = $contextPrefix;
$this->maxLength = \is_null($maxLength) ? self::DEFAULT_MAX_LENGTH : $maxLength;
if (\method_exists(\FlexibleCouponsProVendor\Gelf\Message::class, 'setFacility')) {
$this->gelfVersion = 1;
}
}
/**
* {@inheritDoc}
*/
public function format(array $record) : \FlexibleCouponsProVendor\Gelf\Message
{
$context = $extra = [];
if (isset($record['context'])) {
/** @var mixed[] $context */
$context = parent::normalize($record['context']);
}
if (isset($record['extra'])) {
/** @var mixed[] $extra */
$extra = parent::normalize($record['extra']);
}
if (!isset($record['datetime'], $record['message'], $record['level'])) {
throw new \InvalidArgumentException('The record should at least contain datetime, message and level keys, ' . \var_export($record, \true) . ' given');
}
$message = new \FlexibleCouponsProVendor\Gelf\Message();
$message->setTimestamp($record['datetime'])->setShortMessage((string) $record['message'])->setHost($this->systemName)->setLevel($this->logLevels[$record['level']]);
// message length + system name length + 200 for padding / metadata
$len = 200 + \strlen((string) $record['message']) + \strlen($this->systemName);
if ($len > $this->maxLength) {
$message->setShortMessage(\FlexibleCouponsProVendor\Monolog\Utils::substr($record['message'], 0, $this->maxLength));
}
if ($this->gelfVersion === 1) {
if (isset($record['channel'])) {
$message->setFacility($record['channel']);
}
if (isset($extra['line'])) {
$message->setLine($extra['line']);
unset($extra['line']);
}
if (isset($extra['file'])) {
$message->setFile($extra['file']);
unset($extra['file']);
}
} else {
$message->setAdditional('facility', $record['channel']);
}
foreach ($extra as $key => $val) {
$val = \is_scalar($val) || null === $val ? $val : $this->toJson($val);
$len = \strlen($this->extraPrefix . $key . $val);
if ($len > $this->maxLength) {
$message->setAdditional($this->extraPrefix . $key, \FlexibleCouponsProVendor\Monolog\Utils::substr((string) $val, 0, $this->maxLength));
continue;
}
$message->setAdditional($this->extraPrefix . $key, $val);
}
foreach ($context as $key => $val) {
$val = \is_scalar($val) || null === $val ? $val : $this->toJson($val);
$len = \strlen($this->contextPrefix . $key . $val);
if ($len > $this->maxLength) {
$message->setAdditional($this->contextPrefix . $key, \FlexibleCouponsProVendor\Monolog\Utils::substr((string) $val, 0, $this->maxLength));
continue;
}
$message->setAdditional($this->contextPrefix . $key, $val);
}
if ($this->gelfVersion === 1) {
/** @phpstan-ignore-next-line */
if (null === $message->getFile() && isset($context['exception']['file'])) {
if (\preg_match("/^(.+):([0-9]+)\$/", $context['exception']['file'], $matches)) {
$message->setFile($matches[1]);
$message->setLine($matches[2]);
}
}
}
return $message;
}
}

View File

@@ -0,0 +1,36 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
use DateTimeInterface;
use FlexibleCouponsProVendor\Monolog\LogRecord;
/**
* Encodes message information into JSON in a format compatible with Cloud logging.
*
* @see https://cloud.google.com/logging/docs/structured-logging
* @see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry
*
* @author Luís Cobucci <lcobucci@gmail.com>
*/
final class GoogleCloudLoggingFormatter extends \FlexibleCouponsProVendor\Monolog\Formatter\JsonFormatter
{
/** {@inheritdoc} **/
public function format(array $record) : string
{
// Re-key level for GCP logging
$record['severity'] = $record['level_name'];
$record['time'] = $record['datetime']->format(\DateTimeInterface::RFC3339_EXTENDED);
// Remove keys that are not used by GCP
unset($record['level'], $record['level_name'], $record['datetime']);
return parent::format($record);
}
}

View File

@@ -0,0 +1,119 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
use FlexibleCouponsProVendor\Monolog\Logger;
use FlexibleCouponsProVendor\Monolog\Utils;
/**
* Formats incoming records into an HTML table
*
* This is especially useful for html email logging
*
* @author Tiago Brito <tlfbrito@gmail.com>
*/
class HtmlFormatter extends \FlexibleCouponsProVendor\Monolog\Formatter\NormalizerFormatter
{
/**
* Translates Monolog log levels to html color priorities.
*
* @var array<int, string>
*/
protected $logLevels = [\FlexibleCouponsProVendor\Monolog\Logger::DEBUG => '#CCCCCC', \FlexibleCouponsProVendor\Monolog\Logger::INFO => '#28A745', \FlexibleCouponsProVendor\Monolog\Logger::NOTICE => '#17A2B8', \FlexibleCouponsProVendor\Monolog\Logger::WARNING => '#FFC107', \FlexibleCouponsProVendor\Monolog\Logger::ERROR => '#FD7E14', \FlexibleCouponsProVendor\Monolog\Logger::CRITICAL => '#DC3545', \FlexibleCouponsProVendor\Monolog\Logger::ALERT => '#821722', \FlexibleCouponsProVendor\Monolog\Logger::EMERGENCY => '#000000'];
/**
* @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format
*/
public function __construct(?string $dateFormat = null)
{
parent::__construct($dateFormat);
}
/**
* Creates an HTML table row
*
* @param string $th Row header content
* @param string $td Row standard cell content
* @param bool $escapeTd false if td content must not be html escaped
*/
protected function addRow(string $th, string $td = ' ', bool $escapeTd = \true) : string
{
$th = \htmlspecialchars($th, \ENT_NOQUOTES, 'UTF-8');
if ($escapeTd) {
$td = '<pre>' . \htmlspecialchars($td, \ENT_NOQUOTES, 'UTF-8') . '</pre>';
}
return "<tr style=\"padding: 4px;text-align: left;\">\n<th style=\"vertical-align: top;background: #ccc;color: #000\" width=\"100\">{$th}:</th>\n<td style=\"padding: 4px;text-align: left;vertical-align: top;background: #eee;color: #000\">" . $td . "</td>\n</tr>";
}
/**
* Create a HTML h1 tag
*
* @param string $title Text to be in the h1
* @param int $level Error level
* @return string
*/
protected function addTitle(string $title, int $level) : string
{
$title = \htmlspecialchars($title, \ENT_NOQUOTES, 'UTF-8');
return '<h1 style="background: ' . $this->logLevels[$level] . ';color: #ffffff;padding: 5px;" class="monolog-output">' . $title . '</h1>';
}
/**
* Formats a log record.
*
* @return string The formatted record
*/
public function format(array $record) : string
{
$output = $this->addTitle($record['level_name'], $record['level']);
$output .= '<table cellspacing="1" width="100%" class="monolog-output">';
$output .= $this->addRow('Message', (string) $record['message']);
$output .= $this->addRow('Time', $this->formatDate($record['datetime']));
$output .= $this->addRow('Channel', $record['channel']);
if ($record['context']) {
$embeddedTable = '<table cellspacing="1" width="100%">';
foreach ($record['context'] as $key => $value) {
$embeddedTable .= $this->addRow((string) $key, $this->convertToString($value));
}
$embeddedTable .= '</table>';
$output .= $this->addRow('Context', $embeddedTable, \false);
}
if ($record['extra']) {
$embeddedTable = '<table cellspacing="1" width="100%">';
foreach ($record['extra'] as $key => $value) {
$embeddedTable .= $this->addRow((string) $key, $this->convertToString($value));
}
$embeddedTable .= '</table>';
$output .= $this->addRow('Extra', $embeddedTable, \false);
}
return $output . '</table>';
}
/**
* Formats a set of log records.
*
* @return string The formatted set of records
*/
public function formatBatch(array $records) : string
{
$message = '';
foreach ($records as $record) {
$message .= $this->format($record);
}
return $message;
}
/**
* @param mixed $data
*/
protected function convertToString($data) : string
{
if (null === $data || \is_scalar($data)) {
return (string) $data;
}
$data = $this->normalize($data);
return \FlexibleCouponsProVendor\Monolog\Utils::jsonEncode($data, \JSON_PRETTY_PRINT | \FlexibleCouponsProVendor\Monolog\Utils::DEFAULT_JSON_FLAGS, \true);
}
}

View File

@@ -0,0 +1,193 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
use Throwable;
/**
* Encodes whatever record data is passed to it as json
*
* This can be useful to log to databases or remote APIs
*
* @author Jordi Boggiano <j.boggiano@seld.be>
*
* @phpstan-import-type Record from \Monolog\Logger
*/
class JsonFormatter extends \FlexibleCouponsProVendor\Monolog\Formatter\NormalizerFormatter
{
public const BATCH_MODE_JSON = 1;
public const BATCH_MODE_NEWLINES = 2;
/** @var self::BATCH_MODE_* */
protected $batchMode;
/** @var bool */
protected $appendNewline;
/** @var bool */
protected $ignoreEmptyContextAndExtra;
/** @var bool */
protected $includeStacktraces = \false;
/**
* @param self::BATCH_MODE_* $batchMode
*/
public function __construct(int $batchMode = self::BATCH_MODE_JSON, bool $appendNewline = \true, bool $ignoreEmptyContextAndExtra = \false, bool $includeStacktraces = \false)
{
$this->batchMode = $batchMode;
$this->appendNewline = $appendNewline;
$this->ignoreEmptyContextAndExtra = $ignoreEmptyContextAndExtra;
$this->includeStacktraces = $includeStacktraces;
parent::__construct();
}
/**
* The batch mode option configures the formatting style for
* multiple records. By default, multiple records will be
* formatted as a JSON-encoded array. However, for
* compatibility with some API endpoints, alternative styles
* are available.
*/
public function getBatchMode() : int
{
return $this->batchMode;
}
/**
* True if newlines are appended to every formatted record
*/
public function isAppendingNewlines() : bool
{
return $this->appendNewline;
}
/**
* {@inheritDoc}
*/
public function format(array $record) : string
{
$normalized = $this->normalize($record);
if (isset($normalized['context']) && $normalized['context'] === []) {
if ($this->ignoreEmptyContextAndExtra) {
unset($normalized['context']);
} else {
$normalized['context'] = new \stdClass();
}
}
if (isset($normalized['extra']) && $normalized['extra'] === []) {
if ($this->ignoreEmptyContextAndExtra) {
unset($normalized['extra']);
} else {
$normalized['extra'] = new \stdClass();
}
}
return $this->toJson($normalized, \true) . ($this->appendNewline ? "\n" : '');
}
/**
* {@inheritDoc}
*/
public function formatBatch(array $records) : string
{
switch ($this->batchMode) {
case static::BATCH_MODE_NEWLINES:
return $this->formatBatchNewlines($records);
case static::BATCH_MODE_JSON:
default:
return $this->formatBatchJson($records);
}
}
/**
* @return self
*/
public function includeStacktraces(bool $include = \true) : self
{
$this->includeStacktraces = $include;
return $this;
}
/**
* Return a JSON-encoded array of records.
*
* @phpstan-param Record[] $records
*/
protected function formatBatchJson(array $records) : string
{
return $this->toJson($this->normalize($records), \true);
}
/**
* Use new lines to separate records instead of a
* JSON-encoded array.
*
* @phpstan-param Record[] $records
*/
protected function formatBatchNewlines(array $records) : string
{
$instance = $this;
$oldNewline = $this->appendNewline;
$this->appendNewline = \false;
\array_walk($records, function (&$value, $key) use($instance) {
$value = $instance->format($value);
});
$this->appendNewline = $oldNewline;
return \implode("\n", $records);
}
/**
* Normalizes given $data.
*
* @param mixed $data
*
* @return mixed
*/
protected function normalize($data, int $depth = 0)
{
if ($depth > $this->maxNormalizeDepth) {
return 'Over ' . $this->maxNormalizeDepth . ' levels deep, aborting normalization';
}
if (\is_array($data)) {
$normalized = [];
$count = 1;
foreach ($data as $key => $value) {
if ($count++ > $this->maxNormalizeItemCount) {
$normalized['...'] = 'Over ' . $this->maxNormalizeItemCount . ' items (' . \count($data) . ' total), aborting normalization';
break;
}
$normalized[$key] = $this->normalize($value, $depth + 1);
}
return $normalized;
}
if (\is_object($data)) {
if ($data instanceof \DateTimeInterface) {
return $this->formatDate($data);
}
if ($data instanceof \Throwable) {
return $this->normalizeException($data, $depth);
}
// if the object has specific json serializability we want to make sure we skip the __toString treatment below
if ($data instanceof \JsonSerializable) {
return $data;
}
if (\method_exists($data, '__toString')) {
return $data->__toString();
}
return $data;
}
if (\is_resource($data)) {
return parent::normalize($data);
}
return $data;
}
/**
* Normalizes given exception with or without its own stack trace based on
* `includeStacktraces` property.
*
* {@inheritDoc}
*/
protected function normalizeException(\Throwable $e, int $depth = 0) : array
{
$data = parent::normalizeException($e, $depth);
if (!$this->includeStacktraces) {
unset($data['trace']);
}
return $data;
}
}

View File

@@ -0,0 +1,206 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
use FlexibleCouponsProVendor\Monolog\Utils;
/**
* Formats incoming records into a one-line string
*
* This is especially useful for logging to files
*
* @author Jordi Boggiano <j.boggiano@seld.be>
* @author Christophe Coevoet <stof@notk.org>
*/
class LineFormatter extends \FlexibleCouponsProVendor\Monolog\Formatter\NormalizerFormatter
{
public const SIMPLE_FORMAT = "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n";
/** @var string */
protected $format;
/** @var bool */
protected $allowInlineLineBreaks;
/** @var bool */
protected $ignoreEmptyContextAndExtra;
/** @var bool */
protected $includeStacktraces;
/** @var ?callable */
protected $stacktracesParser;
/**
* @param string|null $format The format of the message
* @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format
* @param bool $allowInlineLineBreaks Whether to allow inline line breaks in log entries
* @param bool $ignoreEmptyContextAndExtra
*/
public function __construct(?string $format = null, ?string $dateFormat = null, bool $allowInlineLineBreaks = \false, bool $ignoreEmptyContextAndExtra = \false, bool $includeStacktraces = \false)
{
$this->format = $format === null ? static::SIMPLE_FORMAT : $format;
$this->allowInlineLineBreaks = $allowInlineLineBreaks;
$this->ignoreEmptyContextAndExtra = $ignoreEmptyContextAndExtra;
$this->includeStacktraces($includeStacktraces);
parent::__construct($dateFormat);
}
public function includeStacktraces(bool $include = \true, ?callable $parser = null) : self
{
$this->includeStacktraces = $include;
if ($this->includeStacktraces) {
$this->allowInlineLineBreaks = \true;
$this->stacktracesParser = $parser;
}
return $this;
}
public function allowInlineLineBreaks(bool $allow = \true) : self
{
$this->allowInlineLineBreaks = $allow;
return $this;
}
public function ignoreEmptyContextAndExtra(bool $ignore = \true) : self
{
$this->ignoreEmptyContextAndExtra = $ignore;
return $this;
}
/**
* {@inheritDoc}
*/
public function format(array $record) : string
{
$vars = parent::format($record);
$output = $this->format;
foreach ($vars['extra'] as $var => $val) {
if (\false !== \strpos($output, '%extra.' . $var . '%')) {
$output = \str_replace('%extra.' . $var . '%', $this->stringify($val), $output);
unset($vars['extra'][$var]);
}
}
foreach ($vars['context'] as $var => $val) {
if (\false !== \strpos($output, '%context.' . $var . '%')) {
$output = \str_replace('%context.' . $var . '%', $this->stringify($val), $output);
unset($vars['context'][$var]);
}
}
if ($this->ignoreEmptyContextAndExtra) {
if (empty($vars['context'])) {
unset($vars['context']);
$output = \str_replace('%context%', '', $output);
}
if (empty($vars['extra'])) {
unset($vars['extra']);
$output = \str_replace('%extra%', '', $output);
}
}
foreach ($vars as $var => $val) {
if (\false !== \strpos($output, '%' . $var . '%')) {
$output = \str_replace('%' . $var . '%', $this->stringify($val), $output);
}
}
// remove leftover %extra.xxx% and %context.xxx% if any
if (\false !== \strpos($output, '%')) {
$output = \preg_replace('/%(?:extra|context)\\..+?%/', '', $output);
if (null === $output) {
$pcreErrorCode = \preg_last_error();
throw new \RuntimeException('Failed to run preg_replace: ' . $pcreErrorCode . ' / ' . \FlexibleCouponsProVendor\Monolog\Utils::pcreLastErrorMessage($pcreErrorCode));
}
}
return $output;
}
public function formatBatch(array $records) : string
{
$message = '';
foreach ($records as $record) {
$message .= $this->format($record);
}
return $message;
}
/**
* @param mixed $value
*/
public function stringify($value) : string
{
return $this->replaceNewlines($this->convertToString($value));
}
protected function normalizeException(\Throwable $e, int $depth = 0) : string
{
$str = $this->formatException($e);
if ($previous = $e->getPrevious()) {
do {
$depth++;
if ($depth > $this->maxNormalizeDepth) {
$str .= "\n[previous exception] Over " . $this->maxNormalizeDepth . ' levels deep, aborting normalization';
break;
}
$str .= "\n[previous exception] " . $this->formatException($previous);
} while ($previous = $previous->getPrevious());
}
return $str;
}
/**
* @param mixed $data
*/
protected function convertToString($data) : string
{
if (null === $data || \is_bool($data)) {
return \var_export($data, \true);
}
if (\is_scalar($data)) {
return (string) $data;
}
return $this->toJson($data, \true);
}
protected function replaceNewlines(string $str) : string
{
if ($this->allowInlineLineBreaks) {
if (0 === \strpos($str, '{')) {
$str = \preg_replace('/(?<!\\\\)\\\\[rn]/', "\n", $str);
if (null === $str) {
$pcreErrorCode = \preg_last_error();
throw new \RuntimeException('Failed to run preg_replace: ' . $pcreErrorCode . ' / ' . \FlexibleCouponsProVendor\Monolog\Utils::pcreLastErrorMessage($pcreErrorCode));
}
}
return $str;
}
return \str_replace(["\r\n", "\r", "\n"], ' ', $str);
}
private function formatException(\Throwable $e) : string
{
$str = '[object] (' . \FlexibleCouponsProVendor\Monolog\Utils::getClass($e) . '(code: ' . $e->getCode();
if ($e instanceof \SoapFault) {
if (isset($e->faultcode)) {
$str .= ' faultcode: ' . $e->faultcode;
}
if (isset($e->faultactor)) {
$str .= ' faultactor: ' . $e->faultactor;
}
if (isset($e->detail)) {
if (\is_string($e->detail)) {
$str .= ' detail: ' . $e->detail;
} elseif (\is_object($e->detail) || \is_array($e->detail)) {
$str .= ' detail: ' . $this->toJson($e->detail, \true);
}
}
}
$str .= '): ' . $e->getMessage() . ' at ' . $e->getFile() . ':' . $e->getLine() . ')';
if ($this->includeStacktraces) {
$str .= $this->stacktracesParser($e);
}
return $str;
}
private function stacktracesParser(\Throwable $e) : string
{
$trace = $e->getTraceAsString();
if ($this->stacktracesParser) {
$trace = $this->stacktracesParserCustom($trace);
}
return "\n[stacktrace]\n" . $trace . "\n";
}
private function stacktracesParserCustom(string $trace) : string
{
return \implode("\n", \array_filter(\array_map($this->stacktracesParser, \explode("\n", $trace))));
}
}

View File

@@ -0,0 +1,43 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
/**
* Encodes message information into JSON in a format compatible with Loggly.
*
* @author Adam Pancutt <adam@pancutt.com>
*/
class LogglyFormatter extends \FlexibleCouponsProVendor\Monolog\Formatter\JsonFormatter
{
/**
* Overrides the default batch mode to new lines for compatibility with the
* Loggly bulk API.
*/
public function __construct(int $batchMode = self::BATCH_MODE_NEWLINES, bool $appendNewline = \false)
{
parent::__construct($batchMode, $appendNewline);
}
/**
* Appends the 'timestamp' parameter for indexing by Loggly.
*
* @see https://www.loggly.com/docs/automated-parsing/#json
* @see \Monolog\Formatter\JsonFormatter::format()
*/
public function format(array $record) : string
{
if (isset($record["datetime"]) && $record["datetime"] instanceof \DateTimeInterface) {
$record["timestamp"] = $record["datetime"]->format("Y-m-d\\TH:i:s.uO");
unset($record["datetime"]);
}
return parent::format($record);
}
}

View File

@@ -0,0 +1,57 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
/**
* Encodes message information into JSON in a format compatible with Logmatic.
*
* @author Julien Breux <julien.breux@gmail.com>
*/
class LogmaticFormatter extends \FlexibleCouponsProVendor\Monolog\Formatter\JsonFormatter
{
protected const MARKERS = ["sourcecode", "php"];
/**
* @var string
*/
protected $hostname = '';
/**
* @var string
*/
protected $appname = '';
public function setHostname(string $hostname) : self
{
$this->hostname = $hostname;
return $this;
}
public function setAppname(string $appname) : self
{
$this->appname = $appname;
return $this;
}
/**
* Appends the 'hostname' and 'appname' parameter for indexing by Logmatic.
*
* @see http://doc.logmatic.io/docs/basics-to-send-data
* @see \Monolog\Formatter\JsonFormatter::format()
*/
public function format(array $record) : string
{
if (!empty($this->hostname)) {
$record["hostname"] = $this->hostname;
}
if (!empty($this->appname)) {
$record["appname"] = $this->appname;
}
$record["@marker"] = static::MARKERS;
return parent::format($record);
}
}

View File

@@ -0,0 +1,89 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
/**
* Serializes a log message to Logstash Event Format
*
* @see https://www.elastic.co/products/logstash
* @see https://github.com/elastic/logstash/blob/master/logstash-core/src/main/java/org/logstash/Event.java
*
* @author Tim Mower <timothy.mower@gmail.com>
*/
class LogstashFormatter extends \FlexibleCouponsProVendor\Monolog\Formatter\NormalizerFormatter
{
/**
* @var string the name of the system for the Logstash log message, used to fill the @source field
*/
protected $systemName;
/**
* @var string an application name for the Logstash log message, used to fill the @type field
*/
protected $applicationName;
/**
* @var string the key for 'extra' fields from the Monolog record
*/
protected $extraKey;
/**
* @var string the key for 'context' fields from the Monolog record
*/
protected $contextKey;
/**
* @param string $applicationName The application that sends the data, used as the "type" field of logstash
* @param string|null $systemName The system/machine name, used as the "source" field of logstash, defaults to the hostname of the machine
* @param string $extraKey The key for extra keys inside logstash "fields", defaults to extra
* @param string $contextKey The key for context keys inside logstash "fields", defaults to context
*/
public function __construct(string $applicationName, ?string $systemName = null, string $extraKey = 'extra', string $contextKey = 'context')
{
// logstash requires a ISO 8601 format date with optional millisecond precision.
parent::__construct('Y-m-d\\TH:i:s.uP');
$this->systemName = $systemName === null ? (string) \gethostname() : $systemName;
$this->applicationName = $applicationName;
$this->extraKey = $extraKey;
$this->contextKey = $contextKey;
}
/**
* {@inheritDoc}
*/
public function format(array $record) : string
{
$record = parent::format($record);
if (empty($record['datetime'])) {
$record['datetime'] = \gmdate('c');
}
$message = ['@timestamp' => $record['datetime'], '@version' => 1, 'host' => $this->systemName];
if (isset($record['message'])) {
$message['message'] = $record['message'];
}
if (isset($record['channel'])) {
$message['type'] = $record['channel'];
$message['channel'] = $record['channel'];
}
if (isset($record['level_name'])) {
$message['level'] = $record['level_name'];
}
if (isset($record['level'])) {
$message['monolog_level'] = $record['level'];
}
if ($this->applicationName) {
$message['type'] = $this->applicationName;
}
if (!empty($record['extra'])) {
$message[$this->extraKey] = $record['extra'];
}
if (!empty($record['context'])) {
$message[$this->contextKey] = $record['context'];
}
return $this->toJson($message) . "\n";
}
}

View File

@@ -0,0 +1,134 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
use MongoDB\BSON\Type;
use MongoDB\BSON\UTCDateTime;
use FlexibleCouponsProVendor\Monolog\Utils;
/**
* Formats a record for use with the MongoDBHandler.
*
* @author Florian Plattner <me@florianplattner.de>
*/
class MongoDBFormatter implements \FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface
{
/** @var bool */
private $exceptionTraceAsString;
/** @var int */
private $maxNestingLevel;
/** @var bool */
private $isLegacyMongoExt;
/**
* @param int $maxNestingLevel 0 means infinite nesting, the $record itself is level 1, $record['context'] is 2
* @param bool $exceptionTraceAsString set to false to log exception traces as a sub documents instead of strings
*/
public function __construct(int $maxNestingLevel = 3, bool $exceptionTraceAsString = \true)
{
$this->maxNestingLevel = \max($maxNestingLevel, 0);
$this->exceptionTraceAsString = $exceptionTraceAsString;
$this->isLegacyMongoExt = \extension_loaded('mongodb') && \version_compare((string) \phpversion('mongodb'), '1.1.9', '<=');
}
/**
* {@inheritDoc}
*
* @return mixed[]
*/
public function format(array $record) : array
{
/** @var mixed[] $res */
$res = $this->formatArray($record);
return $res;
}
/**
* {@inheritDoc}
*
* @return array<mixed[]>
*/
public function formatBatch(array $records) : array
{
$formatted = [];
foreach ($records as $key => $record) {
$formatted[$key] = $this->format($record);
}
return $formatted;
}
/**
* @param mixed[] $array
* @return mixed[]|string Array except when max nesting level is reached then a string "[...]"
*/
protected function formatArray(array $array, int $nestingLevel = 0)
{
if ($this->maxNestingLevel > 0 && $nestingLevel > $this->maxNestingLevel) {
return '[...]';
}
foreach ($array as $name => $value) {
if ($value instanceof \DateTimeInterface) {
$array[$name] = $this->formatDate($value, $nestingLevel + 1);
} elseif ($value instanceof \Throwable) {
$array[$name] = $this->formatException($value, $nestingLevel + 1);
} elseif (\is_array($value)) {
$array[$name] = $this->formatArray($value, $nestingLevel + 1);
} elseif (\is_object($value) && !$value instanceof \MongoDB\BSON\Type) {
$array[$name] = $this->formatObject($value, $nestingLevel + 1);
}
}
return $array;
}
/**
* @param mixed $value
* @return mixed[]|string
*/
protected function formatObject($value, int $nestingLevel)
{
$objectVars = \get_object_vars($value);
$objectVars['class'] = \FlexibleCouponsProVendor\Monolog\Utils::getClass($value);
return $this->formatArray($objectVars, $nestingLevel);
}
/**
* @return mixed[]|string
*/
protected function formatException(\Throwable $exception, int $nestingLevel)
{
$formattedException = ['class' => \FlexibleCouponsProVendor\Monolog\Utils::getClass($exception), 'message' => $exception->getMessage(), 'code' => (int) $exception->getCode(), 'file' => $exception->getFile() . ':' . $exception->getLine()];
if ($this->exceptionTraceAsString === \true) {
$formattedException['trace'] = $exception->getTraceAsString();
} else {
$formattedException['trace'] = $exception->getTrace();
}
return $this->formatArray($formattedException, $nestingLevel);
}
protected function formatDate(\DateTimeInterface $value, int $nestingLevel) : \MongoDB\BSON\UTCDateTime
{
if ($this->isLegacyMongoExt) {
return $this->legacyGetMongoDbDateTime($value);
}
return $this->getMongoDbDateTime($value);
}
private function getMongoDbDateTime(\DateTimeInterface $value) : \MongoDB\BSON\UTCDateTime
{
return new \MongoDB\BSON\UTCDateTime((int) \floor((float) $value->format('U.u') * 1000));
}
/**
* This is needed to support MongoDB Driver v1.19 and below
*
* See https://github.com/mongodb/mongo-php-driver/issues/426
*
* It can probably be removed in 2.1 or later once MongoDB's 1.2 is released and widely adopted
*/
private function legacyGetMongoDbDateTime(\DateTimeInterface $value) : \MongoDB\BSON\UTCDateTime
{
$milliseconds = \floor((float) $value->format('U.u') * 1000);
$milliseconds = \PHP_INT_SIZE == 8 ? (int) $milliseconds : (string) $milliseconds;
// @phpstan-ignore-next-line
return new \MongoDB\BSON\UTCDateTime($milliseconds);
}
}

View File

@@ -0,0 +1,238 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
use FlexibleCouponsProVendor\Monolog\DateTimeImmutable;
use FlexibleCouponsProVendor\Monolog\Utils;
use Throwable;
/**
* Normalizes incoming records to remove objects/resources so it's easier to dump to various targets
*
* @author Jordi Boggiano <j.boggiano@seld.be>
*/
class NormalizerFormatter implements \FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface
{
public const SIMPLE_DATE = "Y-m-d\\TH:i:sP";
/** @var string */
protected $dateFormat;
/** @var int */
protected $maxNormalizeDepth = 9;
/** @var int */
protected $maxNormalizeItemCount = 1000;
/** @var int */
private $jsonEncodeOptions = \FlexibleCouponsProVendor\Monolog\Utils::DEFAULT_JSON_FLAGS;
/**
* @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format
*/
public function __construct(?string $dateFormat = null)
{
$this->dateFormat = null === $dateFormat ? static::SIMPLE_DATE : $dateFormat;
if (!\function_exists('json_encode')) {
throw new \RuntimeException('PHP\'s json extension is required to use Monolog\'s NormalizerFormatter');
}
}
/**
* {@inheritDoc}
*
* @param mixed[] $record
*/
public function format(array $record)
{
return $this->normalize($record);
}
/**
* {@inheritDoc}
*/
public function formatBatch(array $records)
{
foreach ($records as $key => $record) {
$records[$key] = $this->format($record);
}
return $records;
}
public function getDateFormat() : string
{
return $this->dateFormat;
}
public function setDateFormat(string $dateFormat) : self
{
$this->dateFormat = $dateFormat;
return $this;
}
/**
* The maximum number of normalization levels to go through
*/
public function getMaxNormalizeDepth() : int
{
return $this->maxNormalizeDepth;
}
public function setMaxNormalizeDepth(int $maxNormalizeDepth) : self
{
$this->maxNormalizeDepth = $maxNormalizeDepth;
return $this;
}
/**
* The maximum number of items to normalize per level
*/
public function getMaxNormalizeItemCount() : int
{
return $this->maxNormalizeItemCount;
}
public function setMaxNormalizeItemCount(int $maxNormalizeItemCount) : self
{
$this->maxNormalizeItemCount = $maxNormalizeItemCount;
return $this;
}
/**
* Enables `json_encode` pretty print.
*/
public function setJsonPrettyPrint(bool $enable) : self
{
if ($enable) {
$this->jsonEncodeOptions |= \JSON_PRETTY_PRINT;
} else {
$this->jsonEncodeOptions &= ~\JSON_PRETTY_PRINT;
}
return $this;
}
/**
* @param mixed $data
* @return null|scalar|array<array|scalar|null>
*/
protected function normalize($data, int $depth = 0)
{
if ($depth > $this->maxNormalizeDepth) {
return 'Over ' . $this->maxNormalizeDepth . ' levels deep, aborting normalization';
}
if (null === $data || \is_scalar($data)) {
if (\is_float($data)) {
if (\is_infinite($data)) {
return ($data > 0 ? '' : '-') . 'INF';
}
if (\is_nan($data)) {
return 'NaN';
}
}
return $data;
}
if (\is_array($data)) {
$normalized = [];
$count = 1;
foreach ($data as $key => $value) {
if ($count++ > $this->maxNormalizeItemCount) {
$normalized['...'] = 'Over ' . $this->maxNormalizeItemCount . ' items (' . \count($data) . ' total), aborting normalization';
break;
}
$normalized[$key] = $this->normalize($value, $depth + 1);
}
return $normalized;
}
if ($data instanceof \DateTimeInterface) {
return $this->formatDate($data);
}
if (\is_object($data)) {
if ($data instanceof \Throwable) {
return $this->normalizeException($data, $depth);
}
if ($data instanceof \JsonSerializable) {
/** @var null|scalar|array<array|scalar|null> $value */
$value = $data->jsonSerialize();
} elseif (\get_class($data) === '__PHP_Incomplete_Class') {
$accessor = new \ArrayObject($data);
$value = (string) $accessor['__PHP_Incomplete_Class_Name'];
} elseif (\method_exists($data, '__toString')) {
/** @var string $value */
$value = $data->__toString();
} else {
// the rest is normalized by json encoding and decoding it
/** @var null|scalar|array<array|scalar|null> $value */
$value = \json_decode($this->toJson($data, \true), \true);
}
return [\FlexibleCouponsProVendor\Monolog\Utils::getClass($data) => $value];
}
if (\is_resource($data)) {
return \sprintf('[resource(%s)]', \get_resource_type($data));
}
return '[unknown(' . \gettype($data) . ')]';
}
/**
* @return mixed[]
*/
protected function normalizeException(\Throwable $e, int $depth = 0)
{
if ($depth > $this->maxNormalizeDepth) {
return ['Over ' . $this->maxNormalizeDepth . ' levels deep, aborting normalization'];
}
if ($e instanceof \JsonSerializable) {
return (array) $e->jsonSerialize();
}
$data = ['class' => \FlexibleCouponsProVendor\Monolog\Utils::getClass($e), 'message' => $e->getMessage(), 'code' => (int) $e->getCode(), 'file' => $e->getFile() . ':' . $e->getLine()];
if ($e instanceof \SoapFault) {
if (isset($e->faultcode)) {
$data['faultcode'] = $e->faultcode;
}
if (isset($e->faultactor)) {
$data['faultactor'] = $e->faultactor;
}
if (isset($e->detail)) {
if (\is_string($e->detail)) {
$data['detail'] = $e->detail;
} elseif (\is_object($e->detail) || \is_array($e->detail)) {
$data['detail'] = $this->toJson($e->detail, \true);
}
}
}
$trace = $e->getTrace();
foreach ($trace as $frame) {
if (isset($frame['file'])) {
$data['trace'][] = $frame['file'] . ':' . $frame['line'];
}
}
if ($previous = $e->getPrevious()) {
$data['previous'] = $this->normalizeException($previous, $depth + 1);
}
return $data;
}
/**
* Return the JSON representation of a value
*
* @param mixed $data
* @throws \RuntimeException if encoding fails and errors are not ignored
* @return string if encoding fails and ignoreErrors is true 'null' is returned
*/
protected function toJson($data, bool $ignoreErrors = \false) : string
{
return \FlexibleCouponsProVendor\Monolog\Utils::jsonEncode($data, $this->jsonEncodeOptions, $ignoreErrors);
}
/**
* @return string
*/
protected function formatDate(\DateTimeInterface $date)
{
// in case the date format isn't custom then we defer to the custom DateTimeImmutable
// formatting logic, which will pick the right format based on whether useMicroseconds is on
if ($this->dateFormat === self::SIMPLE_DATE && $date instanceof \FlexibleCouponsProVendor\Monolog\DateTimeImmutable) {
return (string) $date;
}
return $date->format($this->dateFormat);
}
public function addJsonEncodeOption(int $option) : self
{
$this->jsonEncodeOptions |= $option;
return $this;
}
public function removeJsonEncodeOption(int $option) : self
{
$this->jsonEncodeOptions &= ~$option;
return $this;
}
}

View File

@@ -0,0 +1,47 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
/**
* Formats data into an associative array of scalar values.
* Objects and arrays will be JSON encoded.
*
* @author Andrew Lawson <adlawson@gmail.com>
*/
class ScalarFormatter extends \FlexibleCouponsProVendor\Monolog\Formatter\NormalizerFormatter
{
/**
* {@inheritDoc}
*
* @phpstan-return array<string, scalar|null> $record
*/
public function format(array $record) : array
{
$result = [];
foreach ($record as $key => $value) {
$result[$key] = $this->normalizeValue($value);
}
return $result;
}
/**
* @param mixed $value
* @return scalar|null
*/
protected function normalizeValue($value)
{
$normalized = $this->normalize($value);
if (\is_array($normalized)) {
return $this->toJson($normalized, \true);
}
return $normalized;
}
}

View File

@@ -0,0 +1,107 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Formatter;
use FlexibleCouponsProVendor\Monolog\Logger;
/**
* Serializes a log message according to Wildfire's header requirements
*
* @author Eric Clemmons (@ericclemmons) <eric@uxdriven.com>
* @author Christophe Coevoet <stof@notk.org>
* @author Kirill chEbba Chebunin <iam@chebba.org>
*
* @phpstan-import-type Level from \Monolog\Logger
*/
class WildfireFormatter extends \FlexibleCouponsProVendor\Monolog\Formatter\NormalizerFormatter
{
/**
* Translates Monolog log levels to Wildfire levels.
*
* @var array<Level, string>
*/
private $logLevels = [\FlexibleCouponsProVendor\Monolog\Logger::DEBUG => 'LOG', \FlexibleCouponsProVendor\Monolog\Logger::INFO => 'INFO', \FlexibleCouponsProVendor\Monolog\Logger::NOTICE => 'INFO', \FlexibleCouponsProVendor\Monolog\Logger::WARNING => 'WARN', \FlexibleCouponsProVendor\Monolog\Logger::ERROR => 'ERROR', \FlexibleCouponsProVendor\Monolog\Logger::CRITICAL => 'ERROR', \FlexibleCouponsProVendor\Monolog\Logger::ALERT => 'ERROR', \FlexibleCouponsProVendor\Monolog\Logger::EMERGENCY => 'ERROR'];
/**
* @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format
*/
public function __construct(?string $dateFormat = null)
{
parent::__construct($dateFormat);
// http headers do not like non-ISO-8559-1 characters
$this->removeJsonEncodeOption(\JSON_UNESCAPED_UNICODE);
}
/**
* {@inheritDoc}
*
* @return string
*/
public function format(array $record) : string
{
// Retrieve the line and file if set and remove them from the formatted extra
$file = $line = '';
if (isset($record['extra']['file'])) {
$file = $record['extra']['file'];
unset($record['extra']['file']);
}
if (isset($record['extra']['line'])) {
$line = $record['extra']['line'];
unset($record['extra']['line']);
}
/** @var mixed[] $record */
$record = $this->normalize($record);
$message = ['message' => $record['message']];
$handleError = \false;
if ($record['context']) {
$message['context'] = $record['context'];
$handleError = \true;
}
if ($record['extra']) {
$message['extra'] = $record['extra'];
$handleError = \true;
}
if (\count($message) === 1) {
$message = \reset($message);
}
if (isset($record['context']['table'])) {
$type = 'TABLE';
$label = $record['channel'] . ': ' . $record['message'];
$message = $record['context']['table'];
} else {
$type = $this->logLevels[$record['level']];
$label = $record['channel'];
}
// Create JSON object describing the appearance of the message in the console
$json = $this->toJson([['Type' => $type, 'File' => $file, 'Line' => $line, 'Label' => $label], $message], $handleError);
// The message itself is a serialization of the above JSON object + it's length
return \sprintf('%d|%s|', \strlen($json), $json);
}
/**
* {@inheritDoc}
*
* @phpstan-return never
*/
public function formatBatch(array $records)
{
throw new \BadMethodCallException('Batch formatting does not make sense for the WildfireFormatter');
}
/**
* {@inheritDoc}
*
* @return null|scalar|array<array|scalar|null>|object
*/
protected function normalize($data, int $depth = 0)
{
if (\is_object($data) && !$data instanceof \DateTimeInterface) {
return $data;
}
return parent::normalize($data, $depth);
}
}

View File

@@ -0,0 +1,102 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Handler;
use FlexibleCouponsProVendor\Monolog\Logger;
use FlexibleCouponsProVendor\Monolog\ResettableInterface;
use Psr\Log\LogLevel;
/**
* Base Handler class providing basic level/bubble support
*
* @author Jordi Boggiano <j.boggiano@seld.be>
*
* @phpstan-import-type Level from \Monolog\Logger
* @phpstan-import-type LevelName from \Monolog\Logger
*/
abstract class AbstractHandler extends \FlexibleCouponsProVendor\Monolog\Handler\Handler implements \FlexibleCouponsProVendor\Monolog\ResettableInterface
{
/**
* @var int
* @phpstan-var Level
*/
protected $level = \FlexibleCouponsProVendor\Monolog\Logger::DEBUG;
/** @var bool */
protected $bubble = \true;
/**
* @param int|string $level The minimum logging level at which this handler will be triggered
* @param bool $bubble Whether the messages that are handled can bubble up the stack or not
*
* @phpstan-param Level|LevelName|LogLevel::* $level
*/
public function __construct($level = \FlexibleCouponsProVendor\Monolog\Logger::DEBUG, bool $bubble = \true)
{
$this->setLevel($level);
$this->bubble = $bubble;
}
/**
* {@inheritDoc}
*/
public function isHandling(array $record) : bool
{
return $record['level'] >= $this->level;
}
/**
* Sets minimum logging level at which this handler will be triggered.
*
* @param Level|LevelName|LogLevel::* $level Level or level name
* @return self
*/
public function setLevel($level) : self
{
$this->level = \FlexibleCouponsProVendor\Monolog\Logger::toMonologLevel($level);
return $this;
}
/**
* Gets minimum logging level at which this handler will be triggered.
*
* @return int
*
* @phpstan-return Level
*/
public function getLevel() : int
{
return $this->level;
}
/**
* Sets the bubbling behavior.
*
* @param bool $bubble true means that this handler allows bubbling.
* false means that bubbling is not permitted.
* @return self
*/
public function setBubble(bool $bubble) : self
{
$this->bubble = $bubble;
return $this;
}
/**
* Gets the bubbling behavior.
*
* @return bool true means that this handler allows bubbling.
* false means that bubbling is not permitted.
*/
public function getBubble() : bool
{
return $this->bubble;
}
/**
* {@inheritDoc}
*/
public function reset()
{
}
}

View File

@@ -0,0 +1,61 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Handler;
/**
* Base Handler class providing the Handler structure, including processors and formatters
*
* Classes extending it should (in most cases) only implement write($record)
*
* @author Jordi Boggiano <j.boggiano@seld.be>
* @author Christophe Coevoet <stof@notk.org>
*
* @phpstan-import-type LevelName from \Monolog\Logger
* @phpstan-import-type Level from \Monolog\Logger
* @phpstan-import-type Record from \Monolog\Logger
* @phpstan-type FormattedRecord array{message: string, context: mixed[], level: Level, level_name: LevelName, channel: string, datetime: \DateTimeImmutable, extra: mixed[], formatted: mixed}
*/
abstract class AbstractProcessingHandler extends \FlexibleCouponsProVendor\Monolog\Handler\AbstractHandler implements \FlexibleCouponsProVendor\Monolog\Handler\ProcessableHandlerInterface, \FlexibleCouponsProVendor\Monolog\Handler\FormattableHandlerInterface
{
use ProcessableHandlerTrait;
use FormattableHandlerTrait;
/**
* {@inheritDoc}
*/
public function handle(array $record) : bool
{
if (!$this->isHandling($record)) {
return \false;
}
if ($this->processors) {
/** @var Record $record */
$record = $this->processRecord($record);
}
$record['formatted'] = $this->getFormatter()->format($record);
$this->write($record);
return \false === $this->bubble;
}
/**
* Writes the record down to the log of the implementing handler
*
* @phpstan-param FormattedRecord $record
*/
protected abstract function write(array $record) : void;
/**
* @return void
*/
public function reset()
{
parent::reset();
$this->resetProcessors();
}
}

View File

@@ -0,0 +1,85 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Handler;
use FlexibleCouponsProVendor\Monolog\Logger;
use FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface;
use FlexibleCouponsProVendor\Monolog\Formatter\LineFormatter;
/**
* Common syslog functionality
*
* @phpstan-import-type Level from \Monolog\Logger
*/
abstract class AbstractSyslogHandler extends \FlexibleCouponsProVendor\Monolog\Handler\AbstractProcessingHandler
{
/** @var int */
protected $facility;
/**
* Translates Monolog log levels to syslog log priorities.
* @var array
* @phpstan-var array<Level, int>
*/
protected $logLevels = [\FlexibleCouponsProVendor\Monolog\Logger::DEBUG => \LOG_DEBUG, \FlexibleCouponsProVendor\Monolog\Logger::INFO => \LOG_INFO, \FlexibleCouponsProVendor\Monolog\Logger::NOTICE => \LOG_NOTICE, \FlexibleCouponsProVendor\Monolog\Logger::WARNING => \LOG_WARNING, \FlexibleCouponsProVendor\Monolog\Logger::ERROR => \LOG_ERR, \FlexibleCouponsProVendor\Monolog\Logger::CRITICAL => \LOG_CRIT, \FlexibleCouponsProVendor\Monolog\Logger::ALERT => \LOG_ALERT, \FlexibleCouponsProVendor\Monolog\Logger::EMERGENCY => \LOG_EMERG];
/**
* List of valid log facility names.
* @var array<string, int>
*/
protected $facilities = ['auth' => \LOG_AUTH, 'authpriv' => \LOG_AUTHPRIV, 'cron' => \LOG_CRON, 'daemon' => \LOG_DAEMON, 'kern' => \LOG_KERN, 'lpr' => \LOG_LPR, 'mail' => \LOG_MAIL, 'news' => \LOG_NEWS, 'syslog' => \LOG_SYSLOG, 'user' => \LOG_USER, 'uucp' => \LOG_UUCP];
/**
* @param string|int $facility Either one of the names of the keys in $this->facilities, or a LOG_* facility constant
*/
public function __construct($facility = \LOG_USER, $level = \FlexibleCouponsProVendor\Monolog\Logger::DEBUG, bool $bubble = \true)
{
parent::__construct($level, $bubble);
if (!\defined('PHP_WINDOWS_VERSION_BUILD')) {
$this->facilities['local0'] = \LOG_LOCAL0;
$this->facilities['local1'] = \LOG_LOCAL1;
$this->facilities['local2'] = \LOG_LOCAL2;
$this->facilities['local3'] = \LOG_LOCAL3;
$this->facilities['local4'] = \LOG_LOCAL4;
$this->facilities['local5'] = \LOG_LOCAL5;
$this->facilities['local6'] = \LOG_LOCAL6;
$this->facilities['local7'] = \LOG_LOCAL7;
} else {
$this->facilities['local0'] = 128;
// LOG_LOCAL0
$this->facilities['local1'] = 136;
// LOG_LOCAL1
$this->facilities['local2'] = 144;
// LOG_LOCAL2
$this->facilities['local3'] = 152;
// LOG_LOCAL3
$this->facilities['local4'] = 160;
// LOG_LOCAL4
$this->facilities['local5'] = 168;
// LOG_LOCAL5
$this->facilities['local6'] = 176;
// LOG_LOCAL6
$this->facilities['local7'] = 184;
// LOG_LOCAL7
}
// convert textual description of facility to syslog constant
if (\is_string($facility) && \array_key_exists(\strtolower($facility), $this->facilities)) {
$facility = $this->facilities[\strtolower($facility)];
} elseif (!\in_array($facility, \array_values($this->facilities), \true)) {
throw new \UnexpectedValueException('Unknown facility value "' . $facility . '" given');
}
$this->facility = $facility;
}
/**
* {@inheritDoc}
*/
protected function getDefaultFormatter() : \FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface
{
return new \FlexibleCouponsProVendor\Monolog\Formatter\LineFormatter('%channel%.%level_name%: %message% %context% %extra%');
}
}

View File

@@ -0,0 +1,134 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Handler;
use FlexibleCouponsProVendor\Monolog\Logger;
use FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface;
use FlexibleCouponsProVendor\Monolog\Formatter\JsonFormatter;
use FlexibleCouponsProVendor\PhpAmqpLib\Message\AMQPMessage;
use FlexibleCouponsProVendor\PhpAmqpLib\Channel\AMQPChannel;
use AMQPExchange;
/**
* @phpstan-import-type Record from \Monolog\Logger
*/
class AmqpHandler extends \FlexibleCouponsProVendor\Monolog\Handler\AbstractProcessingHandler
{
/**
* @var AMQPExchange|AMQPChannel $exchange
*/
protected $exchange;
/** @var array<string, mixed> */
private $extraAttributes = [];
/**
* @return array<string, mixed>
*/
public function getExtraAttributes() : array
{
return $this->extraAttributes;
}
/**
* Configure extra attributes to pass to the AMQPExchange (if you are using the amqp extension)
*
* @param array<string, mixed> $extraAttributes One of content_type, content_encoding,
* message_id, user_id, app_id, delivery_mode,
* priority, timestamp, expiration, type
* or reply_to, headers.
* @return AmqpHandler
*/
public function setExtraAttributes(array $extraAttributes) : self
{
$this->extraAttributes = $extraAttributes;
return $this;
}
/**
* @var string
*/
protected $exchangeName;
/**
* @param AMQPExchange|AMQPChannel $exchange AMQPExchange (php AMQP ext) or PHP AMQP lib channel, ready for use
* @param string|null $exchangeName Optional exchange name, for AMQPChannel (PhpAmqpLib) only
*/
public function __construct($exchange, ?string $exchangeName = null, $level = \FlexibleCouponsProVendor\Monolog\Logger::DEBUG, bool $bubble = \true)
{
if ($exchange instanceof \FlexibleCouponsProVendor\PhpAmqpLib\Channel\AMQPChannel) {
$this->exchangeName = (string) $exchangeName;
} elseif (!$exchange instanceof \AMQPExchange) {
throw new \InvalidArgumentException('PhpAmqpLib\\Channel\\AMQPChannel or AMQPExchange instance required');
} elseif ($exchangeName) {
@\trigger_error('The $exchangeName parameter can only be passed when using PhpAmqpLib, if using an AMQPExchange instance configure it beforehand', \E_USER_DEPRECATED);
}
$this->exchange = $exchange;
parent::__construct($level, $bubble);
}
/**
* {@inheritDoc}
*/
protected function write(array $record) : void
{
$data = $record["formatted"];
$routingKey = $this->getRoutingKey($record);
if ($this->exchange instanceof \AMQPExchange) {
$attributes = ['delivery_mode' => 2, 'content_type' => 'application/json'];
if ($this->extraAttributes) {
$attributes = \array_merge($attributes, $this->extraAttributes);
}
$this->exchange->publish($data, $routingKey, 0, $attributes);
} else {
$this->exchange->basic_publish($this->createAmqpMessage($data), $this->exchangeName, $routingKey);
}
}
/**
* {@inheritDoc}
*/
public function handleBatch(array $records) : void
{
if ($this->exchange instanceof \AMQPExchange) {
parent::handleBatch($records);
return;
}
foreach ($records as $record) {
if (!$this->isHandling($record)) {
continue;
}
/** @var Record $record */
$record = $this->processRecord($record);
$data = $this->getFormatter()->format($record);
$this->exchange->batch_basic_publish($this->createAmqpMessage($data), $this->exchangeName, $this->getRoutingKey($record));
}
$this->exchange->publish_batch();
}
/**
* Gets the routing key for the AMQP exchange
*
* @phpstan-param Record $record
*/
protected function getRoutingKey(array $record) : string
{
$routingKey = \sprintf('%s.%s', $record['level_name'], $record['channel']);
return \strtolower($routingKey);
}
private function createAmqpMessage(string $data) : \FlexibleCouponsProVendor\PhpAmqpLib\Message\AMQPMessage
{
$attributes = ['delivery_mode' => 2, 'content_type' => 'application/json'];
if ($this->extraAttributes) {
$attributes = \array_merge($attributes, $this->extraAttributes);
}
return new \FlexibleCouponsProVendor\PhpAmqpLib\Message\AMQPMessage($data, $attributes);
}
/**
* {@inheritDoc}
*/
protected function getDefaultFormatter() : \FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface
{
return new \FlexibleCouponsProVendor\Monolog\Formatter\JsonFormatter(\FlexibleCouponsProVendor\Monolog\Formatter\JsonFormatter::BATCH_MODE_JSON, \false);
}
}

View File

@@ -0,0 +1,252 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Handler;
use FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface;
use FlexibleCouponsProVendor\Monolog\Formatter\LineFormatter;
use FlexibleCouponsProVendor\Monolog\Utils;
use FlexibleCouponsProVendor\Monolog\Logger;
use function count;
use function headers_list;
use function stripos;
use function trigger_error;
use const E_USER_DEPRECATED;
/**
* Handler sending logs to browser's javascript console with no browser extension required
*
* @author Olivier Poitrey <rs@dailymotion.com>
*
* @phpstan-import-type FormattedRecord from AbstractProcessingHandler
*/
class BrowserConsoleHandler extends \FlexibleCouponsProVendor\Monolog\Handler\AbstractProcessingHandler
{
/** @var bool */
protected static $initialized = \false;
/** @var FormattedRecord[] */
protected static $records = [];
protected const FORMAT_HTML = 'html';
protected const FORMAT_JS = 'js';
protected const FORMAT_UNKNOWN = 'unknown';
/**
* {@inheritDoc}
*
* Formatted output may contain some formatting markers to be transferred to `console.log` using the %c format.
*
* Example of formatted string:
*
* You can do [[blue text]]{color: blue} or [[green background]]{background-color: green; color: white}
*/
protected function getDefaultFormatter() : \FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface
{
return new \FlexibleCouponsProVendor\Monolog\Formatter\LineFormatter('[[%channel%]]{macro: autolabel} [[%level_name%]]{font-weight: bold} %message%');
}
/**
* {@inheritDoc}
*/
protected function write(array $record) : void
{
// Accumulate records
static::$records[] = $record;
// Register shutdown handler if not already done
if (!static::$initialized) {
static::$initialized = \true;
$this->registerShutdownFunction();
}
}
/**
* Convert records to javascript console commands and send it to the browser.
* This method is automatically called on PHP shutdown if output is HTML or Javascript.
*/
public static function send() : void
{
$format = static::getResponseFormat();
if ($format === self::FORMAT_UNKNOWN) {
return;
}
if (\count(static::$records)) {
if ($format === self::FORMAT_HTML) {
static::writeOutput('<script>' . static::generateScript() . '</script>');
} elseif ($format === self::FORMAT_JS) {
static::writeOutput(static::generateScript());
}
static::resetStatic();
}
}
public function close() : void
{
self::resetStatic();
}
public function reset()
{
parent::reset();
self::resetStatic();
}
/**
* Forget all logged records
*/
public static function resetStatic() : void
{
static::$records = [];
}
/**
* Wrapper for register_shutdown_function to allow overriding
*/
protected function registerShutdownFunction() : void
{
if (\PHP_SAPI !== 'cli') {
\register_shutdown_function(['Monolog\\Handler\\BrowserConsoleHandler', 'send']);
}
}
/**
* Wrapper for echo to allow overriding
*/
protected static function writeOutput(string $str) : void
{
echo $str;
}
/**
* Checks the format of the response
*
* If Content-Type is set to application/javascript or text/javascript -> js
* If Content-Type is set to text/html, or is unset -> html
* If Content-Type is anything else -> unknown
*
* @return string One of 'js', 'html' or 'unknown'
* @phpstan-return self::FORMAT_*
*/
protected static function getResponseFormat() : string
{
// Check content type
foreach (\headers_list() as $header) {
if (\stripos($header, 'content-type:') === 0) {
return static::getResponseFormatFromContentType($header);
}
}
return self::FORMAT_HTML;
}
/**
* @return string One of 'js', 'html' or 'unknown'
* @phpstan-return self::FORMAT_*
*/
protected static function getResponseFormatFromContentType(string $contentType) : string
{
// This handler only works with HTML and javascript outputs
// text/javascript is obsolete in favour of application/javascript, but still used
if (\stripos($contentType, 'application/javascript') !== \false || \stripos($contentType, 'text/javascript') !== \false) {
return self::FORMAT_JS;
}
if (\stripos($contentType, 'text/html') !== \false) {
return self::FORMAT_HTML;
}
return self::FORMAT_UNKNOWN;
}
private static function generateScript() : string
{
$script = [];
foreach (static::$records as $record) {
$context = static::dump('Context', $record['context']);
$extra = static::dump('Extra', $record['extra']);
if (empty($context) && empty($extra)) {
$script[] = static::call_array(static::getConsoleMethodForLevel($record['level']), static::handleStyles($record['formatted']));
} else {
$script = \array_merge($script, [static::call_array('groupCollapsed', static::handleStyles($record['formatted']))], $context, $extra, [static::call('groupEnd')]);
}
}
return "(function (c) {if (c && c.groupCollapsed) {\n" . \implode("\n", $script) . "\n}})(console);";
}
private static function getConsoleMethodForLevel(int $level) : string
{
return [\FlexibleCouponsProVendor\Monolog\Logger::DEBUG => 'debug', \FlexibleCouponsProVendor\Monolog\Logger::INFO => 'info', \FlexibleCouponsProVendor\Monolog\Logger::NOTICE => 'info', \FlexibleCouponsProVendor\Monolog\Logger::WARNING => 'warn', \FlexibleCouponsProVendor\Monolog\Logger::ERROR => 'error', \FlexibleCouponsProVendor\Monolog\Logger::CRITICAL => 'error', \FlexibleCouponsProVendor\Monolog\Logger::ALERT => 'error', \FlexibleCouponsProVendor\Monolog\Logger::EMERGENCY => 'error'][$level] ?? 'log';
}
/**
* @return string[]
*/
private static function handleStyles(string $formatted) : array
{
$args = [];
$format = '%c' . $formatted;
\preg_match_all('/\\[\\[(.*?)\\]\\]\\{([^}]*)\\}/s', $format, $matches, \PREG_OFFSET_CAPTURE | \PREG_SET_ORDER);
foreach (\array_reverse($matches) as $match) {
$args[] = '"font-weight: normal"';
$args[] = static::quote(static::handleCustomStyles($match[2][0], $match[1][0]));
$pos = $match[0][1];
$format = \FlexibleCouponsProVendor\Monolog\Utils::substr($format, 0, $pos) . '%c' . $match[1][0] . '%c' . \FlexibleCouponsProVendor\Monolog\Utils::substr($format, $pos + \strlen($match[0][0]));
}
$args[] = static::quote('font-weight: normal');
$args[] = static::quote($format);
return \array_reverse($args);
}
private static function handleCustomStyles(string $style, string $string) : string
{
static $colors = ['blue', 'green', 'red', 'magenta', 'orange', 'black', 'grey'];
static $labels = [];
$style = \preg_replace_callback('/macro\\s*:(.*?)(?:;|$)/', function (array $m) use($string, &$colors, &$labels) {
if (\trim($m[1]) === 'autolabel') {
// Format the string as a label with consistent auto assigned background color
if (!isset($labels[$string])) {
$labels[$string] = $colors[\count($labels) % \count($colors)];
}
$color = $labels[$string];
return "background-color: {$color}; color: white; border-radius: 3px; padding: 0 2px 0 2px";
}
return $m[1];
}, $style);
if (null === $style) {
$pcreErrorCode = \preg_last_error();
throw new \RuntimeException('Failed to run preg_replace_callback: ' . $pcreErrorCode . ' / ' . \FlexibleCouponsProVendor\Monolog\Utils::pcreLastErrorMessage($pcreErrorCode));
}
return $style;
}
/**
* @param mixed[] $dict
* @return mixed[]
*/
private static function dump(string $title, array $dict) : array
{
$script = [];
$dict = \array_filter($dict);
if (empty($dict)) {
return $script;
}
$script[] = static::call('log', static::quote('%c%s'), static::quote('font-weight: bold'), static::quote($title));
foreach ($dict as $key => $value) {
$value = \json_encode($value);
if (empty($value)) {
$value = static::quote('');
}
$script[] = static::call('log', static::quote('%s: %o'), static::quote((string) $key), $value);
}
return $script;
}
private static function quote(string $arg) : string
{
return '"' . \addcslashes($arg, "\"\n\\") . '"';
}
/**
* @param mixed $args
*/
private static function call(...$args) : string
{
$method = \array_shift($args);
if (!\is_string($method)) {
throw new \UnexpectedValueException('Expected the first arg to be a string, got: ' . \var_export($method, \true));
}
return static::call_array($method, $args);
}
/**
* @param mixed[] $args
*/
private static function call_array(string $method, array $args) : string
{
return 'c.' . $method . '(' . \implode(', ', $args) . ');';
}
}

View File

@@ -0,0 +1,143 @@
<?php
declare (strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FlexibleCouponsProVendor\Monolog\Handler;
use FlexibleCouponsProVendor\Monolog\Logger;
use FlexibleCouponsProVendor\Monolog\ResettableInterface;
use FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface;
/**
* Buffers all records until closing the handler and then pass them as batch.
*
* This is useful for a MailHandler to send only one mail per request instead of
* sending one per log message.
*
* @author Christophe Coevoet <stof@notk.org>
*
* @phpstan-import-type Record from \Monolog\Logger
*/
class BufferHandler extends \FlexibleCouponsProVendor\Monolog\Handler\AbstractHandler implements \FlexibleCouponsProVendor\Monolog\Handler\ProcessableHandlerInterface, \FlexibleCouponsProVendor\Monolog\Handler\FormattableHandlerInterface
{
use ProcessableHandlerTrait;
/** @var HandlerInterface */
protected $handler;
/** @var int */
protected $bufferSize = 0;
/** @var int */
protected $bufferLimit;
/** @var bool */
protected $flushOnOverflow;
/** @var Record[] */
protected $buffer = [];
/** @var bool */
protected $initialized = \false;
/**
* @param HandlerInterface $handler Handler.
* @param int $bufferLimit How many entries should be buffered at most, beyond that the oldest items are removed from the buffer.
* @param bool $flushOnOverflow If true, the buffer is flushed when the max size has been reached, by default oldest entries are discarded
*/
public function __construct(\FlexibleCouponsProVendor\Monolog\Handler\HandlerInterface $handler, int $bufferLimit = 0, $level = \FlexibleCouponsProVendor\Monolog\Logger::DEBUG, bool $bubble = \true, bool $flushOnOverflow = \false)
{
parent::__construct($level, $bubble);
$this->handler = $handler;
$this->bufferLimit = $bufferLimit;
$this->flushOnOverflow = $flushOnOverflow;
}
/**
* {@inheritDoc}
*/
public function handle(array $record) : bool
{
if ($record['level'] < $this->level) {
return \false;
}
if (!$this->initialized) {
// __destructor() doesn't get called on Fatal errors
\register_shutdown_function([$this, 'close']);
$this->initialized = \true;
}
if ($this->bufferLimit > 0 && $this->bufferSize === $this->bufferLimit) {
if ($this->flushOnOverflow) {
$this->flush();
} else {
\array_shift($this->buffer);
$this->bufferSize--;
}
}
if ($this->processors) {
/** @var Record $record */
$record = $this->processRecord($record);
}
$this->buffer[] = $record;
$this->bufferSize++;
return \false === $this->bubble;
}
public function flush() : void
{
if ($this->bufferSize === 0) {
return;
}
$this->handler->handleBatch($this->buffer);
$this->clear();
}
public function __destruct()
{
// suppress the parent behavior since we already have register_shutdown_function()
// to call close(), and the reference contained there will prevent this from being
// GC'd until the end of the request
}
/**
* {@inheritDoc}
*/
public function close() : void
{
$this->flush();
$this->handler->close();
}
/**
* Clears the buffer without flushing any messages down to the wrapped handler.
*/
public function clear() : void
{
$this->bufferSize = 0;
$this->buffer = [];
}
public function reset()
{
$this->flush();
parent::reset();
$this->resetProcessors();
if ($this->handler instanceof \FlexibleCouponsProVendor\Monolog\ResettableInterface) {
$this->handler->reset();
}
}
/**
* {@inheritDoc}
*/
public function setFormatter(\FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface $formatter) : \FlexibleCouponsProVendor\Monolog\Handler\HandlerInterface
{
if ($this->handler instanceof \FlexibleCouponsProVendor\Monolog\Handler\FormattableHandlerInterface) {
$this->handler->setFormatter($formatter);
return $this;
}
throw new \UnexpectedValueException('The nested handler of type ' . \get_class($this->handler) . ' does not support formatters.');
}
/**
* {@inheritDoc}
*/
public function getFormatter() : \FlexibleCouponsProVendor\Monolog\Formatter\FormatterInterface
{
if ($this->handler instanceof \FlexibleCouponsProVendor\Monolog\Handler\FormattableHandlerInterface) {
return $this->handler->getFormatter();
}
throw new \UnexpectedValueException('The nested handler of type ' . \get_class($this->handler) . ' does not support formatters.');
}
}

Some files were not shown because too many files have changed in this diff Show More