From 1bf839601a127c63355f809cf427e4ad85015882 Mon Sep 17 00:00:00 2001 From: jekkos-t520 Date: Sat, 31 Jan 2015 15:41:28 +0100 Subject: [PATCH] Barcode patch applied (using barcodegen) --- application/config/config.php | 4 +- application/controllers/barcode.php | 3 +- application/controllers/config.php | 32 +- application/controllers/item_kits.php | 3 + application/controllers/items.php | 9 +- application/controllers/sales.php | 2 +- application/language/en/config_lang.php | 38 + application/language/es/config_lang.php | 38 + application/language/fr/config_lang.php | 38 + application/language/id/config_lang.php | 38 + application/language/nl-BE/config_lang.php | 38 + .../language/nl-BE/form_validation_lang.php | 24 +- application/language/ru/config_lang.php | 38 + application/language/th/config_lang.php | 38 + application/language/tr/config_lang.php | 38 + application/language/zh/config_lang.php | 38 + application/libraries/Barcode_lib.php | 102 ++ .../libraries/barcodegen/README_1D.txt | 48 + application/libraries/barcodegen/VERSION_1D | 412 ++++++++ .../barcodegen/class/BCGArgumentException.php | 25 + .../libraries/barcodegen/class/BCGBarcode.php | 436 +++++++++ .../barcodegen/class/BCGBarcode1D.php | 259 +++++ .../libraries/barcodegen/class/BCGColor.php | 154 +++ .../barcodegen/class/BCGDrawException.php | 21 + .../libraries/barcodegen/class/BCGDrawing.php | 248 +++++ .../libraries/barcodegen/class/BCGFont.php | 23 + .../barcodegen/class/BCGFontFile.php | 209 +++++ .../libraries/barcodegen/class/BCGFontPhp.php | 153 +++ .../libraries/barcodegen/class/BCGLabel.php | 320 +++++++ .../barcodegen/class/BCGParseException.php | 25 + .../barcodegen/class/BCGcodabar.barcode.php | 122 +++ .../barcodegen/class/BCGcode11.barcode.php | 185 ++++ .../barcodegen/class/BCGcode128.barcode.php | 885 ++++++++++++++++++ .../barcodegen/class/BCGcode39.barcode.php | 193 ++++ .../class/BCGcode39extended.barcode.php | 208 ++++ .../barcodegen/class/BCGcode93.barcode.php | 301 ++++++ .../barcodegen/class/BCGean13.barcode.php | 322 +++++++ .../barcodegen/class/BCGean8.barcode.php | 244 +++++ .../barcodegen/class/BCGgs1128.barcode.php | 679 ++++++++++++++ .../barcodegen/class/BCGi25.barcode.php | 203 ++++ .../class/BCGintelligentmail.barcode.php | 649 +++++++++++++ .../barcodegen/class/BCGisbn.barcode.php | 164 ++++ .../barcodegen/class/BCGmsi.barcode.php | 184 ++++ .../barcodegen/class/BCGothercode.barcode.php | 88 ++ .../barcodegen/class/BCGpostnet.barcode.php | 138 +++ .../barcodegen/class/BCGs25.barcode.php | 170 ++++ .../barcodegen/class/BCGupca.barcode.php | 146 +++ .../barcodegen/class/BCGupce.barcode.php | 336 +++++++ .../barcodegen/class/BCGupcext2.barcode.php | 138 +++ .../barcodegen/class/BCGupcext5.barcode.php | 200 ++++ .../libraries/barcodegen/class/JoinDraw.php | 194 ++++ .../barcodegen/class/drawer/BCGDraw.php | 38 + .../barcodegen/class/drawer/BCGDrawJPG.php | 102 ++ .../barcodegen/class/drawer/BCGDrawPNG.php | 202 ++++ .../libraries/barcodegen/font/Arial.ttf | Bin 0 -> 311636 bytes .../libraries/barcodegen/html/BCGcodabar.php | 28 + .../libraries/barcodegen/html/BCGcode11.php | 28 + .../libraries/barcodegen/html/BCGcode128.php | 52 + .../libraries/barcodegen/html/BCGcode39.php | 42 + .../barcodegen/html/BCGcode39extended.php | 49 + .../libraries/barcodegen/html/BCGcode93.php | 38 + .../libraries/barcodegen/html/BCGean13.php | 27 + .../libraries/barcodegen/html/BCGean8.php | 26 + .../libraries/barcodegen/html/BCGgs1128.php | 250 +++++ .../libraries/barcodegen/html/BCGi25.php | 39 + .../barcodegen/html/BCGintelligentmail.php | 99 ++ .../libraries/barcodegen/html/BCGisbn.php | 27 + .../libraries/barcodegen/html/BCGmsi.php | 39 + .../barcodegen/html/BCGothercode.php | 39 + .../libraries/barcodegen/html/BCGpostnet.php | 48 + .../libraries/barcodegen/html/BCGs25.php | 41 + .../libraries/barcodegen/html/BCGupca.php | 36 + .../libraries/barcodegen/html/BCGupce.php | 27 + .../libraries/barcodegen/html/BCGupcext2.php | 25 + .../libraries/barcodegen/html/BCGupcext5.php | 33 + .../libraries/barcodegen/html/barcode.js | 120 +++ .../barcodegen/html/config/BCGBarcode1D.php | 16 + .../barcodegen/html/config/BCGcodabar.php | 6 + .../barcodegen/html/config/BCGcode11.php | 6 + .../barcodegen/html/config/BCGcode128.php | 12 + .../barcodegen/html/config/BCGcode39.php | 12 + .../html/config/BCGcode39extended.php | 12 + .../barcodegen/html/config/BCGcode93.php | 6 + .../barcodegen/html/config/BCGean13.php | 6 + .../barcodegen/html/config/BCGean8.php | 6 + .../barcodegen/html/config/BCGgs1128.php | 12 + .../barcodegen/html/config/BCGi25.php | 12 + .../html/config/BCGintelligentmail.php | 12 + .../barcodegen/html/config/BCGisbn.php | 6 + .../barcodegen/html/config/BCGmsi.php | 12 + .../barcodegen/html/config/BCGothercode.php | 12 + .../barcodegen/html/config/BCGpostnet.php | 6 + .../barcodegen/html/config/BCGs25.php | 12 + .../barcodegen/html/config/BCGupca.php | 6 + .../barcodegen/html/config/BCGupce.php | 6 + .../barcodegen/html/config/BCGupcext2.php | 6 + .../barcodegen/html/config/BCGupcext5.php | 6 + .../libraries/barcodegen/html/delete.png | Bin 0 -> 438 bytes .../libraries/barcodegen/html/error.png | Bin 0 -> 1367 bytes .../libraries/barcodegen/html/favicon.ico | Bin 0 -> 288 bytes .../libraries/barcodegen/html/image.php | 97 ++ .../barcodegen/html/include/BCGBarcode1D.php | 11 + .../barcodegen/html/include/barcode.php | 39 + .../barcodegen/html/include/footer.php | 32 + .../barcodegen/html/include/function.php | 170 ++++ .../barcodegen/html/include/header.php | 130 +++ .../libraries/barcodegen/html/index.php | 3 + .../libraries/barcodegen/html/info.gif | Bin 0 -> 222 bytes .../barcodegen/html/jquery-1.7.2.min.js | 4 + .../libraries/barcodegen/html/logo.png | Bin 0 -> 16094 bytes .../libraries/barcodegen/html/style.css | 204 ++++ application/libraries/barcodegen/img.png | Bin 0 -> 20 bytes application/libraries/barcodegen/index.php | 12 + application/libraries/barcodegen/test_1D.html | 36 + application/libraries/barcodegen/test_1D.php | 200 ++++ application/models/item.php | 2 +- application/views/barcode.php | 432 ++------- application/views/barcode_sheet.php | 38 +- application/views/configs/barcode_config.php | 297 ++++++ application/views/configs/general_config.php | 438 +++++++++ application/views/configs/manage.php | 22 + application/views/items/form.php | 4 +- barcode.png | Bin 0 -> 20 bytes css/barcode_font.css | 44 + css/tabcontent.css | 69 ++ database/2.3_to_2.3.1.sql | 15 +- database/database.sql | 15 +- font/Arial.ttf | Bin 0 -> 311636 bytes font/Arial.woff | Bin 0 -> 162048 bytes font/SansationLight.ttf | Bin 0 -> 19568 bytes font/b-de-bonita-shadow.ttf | Bin 0 -> 217736 bytes images/Thumbs.db | Bin 5632 -> 0 bytes images/tabbg.gif | Bin 0 -> 323 bytes js/tabcontent.js | 3 + translations/.~lock.config_lang.csv# | 1 + translations/config_lang.csv | 38 + translations/form_validation_lang.csv | 24 +- translations/items_lang.csv | 160 ++-- translations/receivings_lang.csv | 96 +- translations/sales_lang.csv | 178 ++-- 140 files changed, 12431 insertions(+), 631 deletions(-) create mode 100644 application/libraries/Barcode_lib.php create mode 100644 application/libraries/barcodegen/README_1D.txt create mode 100644 application/libraries/barcodegen/VERSION_1D create mode 100755 application/libraries/barcodegen/class/BCGArgumentException.php create mode 100755 application/libraries/barcodegen/class/BCGBarcode.php create mode 100755 application/libraries/barcodegen/class/BCGBarcode1D.php create mode 100755 application/libraries/barcodegen/class/BCGColor.php create mode 100755 application/libraries/barcodegen/class/BCGDrawException.php create mode 100755 application/libraries/barcodegen/class/BCGDrawing.php create mode 100755 application/libraries/barcodegen/class/BCGFont.php create mode 100755 application/libraries/barcodegen/class/BCGFontFile.php create mode 100755 application/libraries/barcodegen/class/BCGFontPhp.php create mode 100755 application/libraries/barcodegen/class/BCGLabel.php create mode 100755 application/libraries/barcodegen/class/BCGParseException.php create mode 100755 application/libraries/barcodegen/class/BCGcodabar.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGcode11.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGcode128.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGcode39.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGcode39extended.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGcode93.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGean13.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGean8.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGgs1128.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGi25.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGintelligentmail.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGisbn.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGmsi.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGothercode.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGpostnet.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGs25.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGupca.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGupce.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGupcext2.barcode.php create mode 100755 application/libraries/barcodegen/class/BCGupcext5.barcode.php create mode 100755 application/libraries/barcodegen/class/JoinDraw.php create mode 100755 application/libraries/barcodegen/class/drawer/BCGDraw.php create mode 100755 application/libraries/barcodegen/class/drawer/BCGDrawJPG.php create mode 100755 application/libraries/barcodegen/class/drawer/BCGDrawPNG.php create mode 100755 application/libraries/barcodegen/font/Arial.ttf create mode 100755 application/libraries/barcodegen/html/BCGcodabar.php create mode 100755 application/libraries/barcodegen/html/BCGcode11.php create mode 100755 application/libraries/barcodegen/html/BCGcode128.php create mode 100755 application/libraries/barcodegen/html/BCGcode39.php create mode 100755 application/libraries/barcodegen/html/BCGcode39extended.php create mode 100755 application/libraries/barcodegen/html/BCGcode93.php create mode 100755 application/libraries/barcodegen/html/BCGean13.php create mode 100755 application/libraries/barcodegen/html/BCGean8.php create mode 100755 application/libraries/barcodegen/html/BCGgs1128.php create mode 100755 application/libraries/barcodegen/html/BCGi25.php create mode 100755 application/libraries/barcodegen/html/BCGintelligentmail.php create mode 100755 application/libraries/barcodegen/html/BCGisbn.php create mode 100755 application/libraries/barcodegen/html/BCGmsi.php create mode 100755 application/libraries/barcodegen/html/BCGothercode.php create mode 100755 application/libraries/barcodegen/html/BCGpostnet.php create mode 100755 application/libraries/barcodegen/html/BCGs25.php create mode 100755 application/libraries/barcodegen/html/BCGupca.php create mode 100755 application/libraries/barcodegen/html/BCGupce.php create mode 100755 application/libraries/barcodegen/html/BCGupcext2.php create mode 100755 application/libraries/barcodegen/html/BCGupcext5.php create mode 100755 application/libraries/barcodegen/html/barcode.js create mode 100755 application/libraries/barcodegen/html/config/BCGBarcode1D.php create mode 100755 application/libraries/barcodegen/html/config/BCGcodabar.php create mode 100755 application/libraries/barcodegen/html/config/BCGcode11.php create mode 100755 application/libraries/barcodegen/html/config/BCGcode128.php create mode 100755 application/libraries/barcodegen/html/config/BCGcode39.php create mode 100755 application/libraries/barcodegen/html/config/BCGcode39extended.php create mode 100755 application/libraries/barcodegen/html/config/BCGcode93.php create mode 100755 application/libraries/barcodegen/html/config/BCGean13.php create mode 100755 application/libraries/barcodegen/html/config/BCGean8.php create mode 100755 application/libraries/barcodegen/html/config/BCGgs1128.php create mode 100755 application/libraries/barcodegen/html/config/BCGi25.php create mode 100755 application/libraries/barcodegen/html/config/BCGintelligentmail.php create mode 100755 application/libraries/barcodegen/html/config/BCGisbn.php create mode 100755 application/libraries/barcodegen/html/config/BCGmsi.php create mode 100755 application/libraries/barcodegen/html/config/BCGothercode.php create mode 100755 application/libraries/barcodegen/html/config/BCGpostnet.php create mode 100755 application/libraries/barcodegen/html/config/BCGs25.php create mode 100755 application/libraries/barcodegen/html/config/BCGupca.php create mode 100755 application/libraries/barcodegen/html/config/BCGupce.php create mode 100755 application/libraries/barcodegen/html/config/BCGupcext2.php create mode 100755 application/libraries/barcodegen/html/config/BCGupcext5.php create mode 100755 application/libraries/barcodegen/html/delete.png create mode 100755 application/libraries/barcodegen/html/error.png create mode 100755 application/libraries/barcodegen/html/favicon.ico create mode 100755 application/libraries/barcodegen/html/image.php create mode 100755 application/libraries/barcodegen/html/include/BCGBarcode1D.php create mode 100755 application/libraries/barcodegen/html/include/barcode.php create mode 100755 application/libraries/barcodegen/html/include/footer.php create mode 100755 application/libraries/barcodegen/html/include/function.php create mode 100755 application/libraries/barcodegen/html/include/header.php create mode 100755 application/libraries/barcodegen/html/index.php create mode 100755 application/libraries/barcodegen/html/info.gif create mode 100755 application/libraries/barcodegen/html/jquery-1.7.2.min.js create mode 100755 application/libraries/barcodegen/html/logo.png create mode 100755 application/libraries/barcodegen/html/style.css create mode 100644 application/libraries/barcodegen/img.png create mode 100644 application/libraries/barcodegen/index.php create mode 100644 application/libraries/barcodegen/test_1D.html create mode 100644 application/libraries/barcodegen/test_1D.php create mode 100644 application/views/configs/barcode_config.php create mode 100644 application/views/configs/general_config.php create mode 100644 application/views/configs/manage.php create mode 100644 barcode.png create mode 100644 css/barcode_font.css create mode 100644 css/tabcontent.css create mode 100755 font/Arial.ttf create mode 100644 font/Arial.woff create mode 100644 font/SansationLight.ttf create mode 100644 font/b-de-bonita-shadow.ttf delete mode 100644 images/Thumbs.db create mode 100644 images/tabbg.gif create mode 100644 js/tabcontent.js create mode 100644 translations/.~lock.config_lang.csv# diff --git a/application/config/config.php b/application/config/config.php index 4a0ff468a..8b86a1a9e 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -264,8 +264,8 @@ $config['sess_encrypt_cookie'] = FALSE; $config['sess_use_database'] = TRUE; $config['sess_table_name'] = 'sessions'; $config['sess_match_ip'] = FALSE; -$config['sess_match_useragent'] = FAlSE; -$config['sess_time_to_update'] = 0; +$config['sess_match_useragent'] = FALSE; +$config['sess_time_to_update'] = 120; /* |-------------------------------------------------------------------------- diff --git a/application/controllers/barcode.php b/application/controllers/barcode.php index 0d3d3b7b8..8d85ab974 100644 --- a/application/controllers/barcode.php +++ b/application/controllers/barcode.php @@ -1,5 +1,6 @@ load->library('barcode_lib'); } function index() { $location_names = array(); - $stock_locations = $this->Stock_locations->get_all()->result_array(); - $this->load->view("config", array('stock_locations' => $stock_locations)); + $data['stock_locations'] = $this->Stock_locations->get_all()->result_array(); + $data['support_barcode'] = $this->barcode_lib->get_list_barcodes(); + $this->load->view("configs/manage", $data); } function save() @@ -99,5 +101,31 @@ class Config extends Secure_area $this->receiving_lib->clear_stock_destination(); $this->receiving_lib->clear_all(); } + + function save_barcode() + { + $batch_save_data=array( + 'barcode_type'=>$this->input->post('barcode_type'), + 'barcode_dpi'=>$this->input->post('barcode_dpi'), + 'barcode_thickness'=>$this->input->post('barcode_thickness'), + 'barcode_scale'=>$this->input->post('barcode_scale'), + 'barcode_rotation'=>$this->input->post('barcode_rotation'), + 'barcode_font'=>$this->input->post('barcode_font'), + 'barcode_font_size'=>$this->input->post('barcode_font_size'), + 'barcode_checksum'=>$this->input->post('barcode_checksum'), + 'barcode_first_row'=>$this->input->post('barcode_first_row'), + 'barcode_second_row'=>$this->input->post('barcode_second_row'), + 'barcode_third_row'=>$this->input->post('barcode_third_row'), + 'barcode_num_in_row'=>$this->input->post('barcode_num_in_row'), + 'barcode_page_width'=>$this->input->post('barcode_page_width'), + 'barcode_page_cellspacing'=>$this->input->post('barcode_page_cellspacing') + ); + + if( $this->Appconfig->batch_save( $batch_save_data ) ) + { + echo json_encode(array('success'=>true,'message'=>$this->lang->line('config_saved_successfully'))); + } + + } } ?> \ No newline at end of file diff --git a/application/controllers/item_kits.php b/application/controllers/item_kits.php index 5d4986e99..86249bf80 100644 --- a/application/controllers/item_kits.php +++ b/application/controllers/item_kits.php @@ -123,6 +123,9 @@ class Item_kits extends Secure_area implements iData_controller } $data['items'] = $result; + $this->load->library('barcode_lib'); + $data['configs'] = $this->Appconfig->get_all(); + $data['barcode_config'] = $this->Barcode_lib->get_barcode_config(); $this->load->view("barcode_sheet", $data); } diff --git a/application/controllers/items.php b/application/controllers/items.php index 0aec46ebc..3c3b2345a 100644 --- a/application/controllers/items.php +++ b/application/controllers/items.php @@ -268,17 +268,14 @@ class Items extends Secure_area implements iData_controller function generate_barcodes($item_ids) { + $this->load->library('barcode_lib'); $result = array(); $item_ids = explode(':', $item_ids); - foreach ($item_ids as $item_id) - { - $item_info = $this->Item->get_info($item_id); - - $result[] = array('name' =>$item_info->name, 'id'=> $item_id, 'item_number'=> $item_info->item_number, 'unit_price'=>$item_info->unit_price); - } + $result = $this->Item->get_multiple_info($item_ids)->result_array(); $data['items'] = $result; + $data['barcode_config'] = $this->barcode_lib->get_barcode_config(); $this->load->view("barcode_sheet", $data); } diff --git a/application/controllers/sales.php b/application/controllers/sales.php index 897eede34..1e16f0849 100644 --- a/application/controllers/sales.php +++ b/application/controllers/sales.php @@ -5,7 +5,7 @@ class Sales extends Secure_area function __construct() { parent::__construct('sales'); - $this->load->library('sale_lib'); + $this->load->library('sale_lib'); } function index() diff --git a/application/language/en/config_lang.php b/application/language/en/config_lang.php index 8549e3b8d..6396ea6c8 100644 --- a/application/language/en/config_lang.php +++ b/application/language/en/config_lang.php @@ -2,6 +2,28 @@ $lang["config_address"] = "Company Address"; $lang["config_address_required"] = "Company address is a required field"; +$lang["config_barcode_checksum"] = "Checksum"; +$lang["config_barcode_company"] = "Company Name"; +$lang["config_barcode_content"] = "Barcode Content"; +$lang["config_barcode_dpi"] = "DPI"; +$lang["config_barcode_first_row"] = "Row 1"; +$lang["config_barcode_font"] = "Font"; +$lang["config_barcode_id"] = "Item Id/Name"; +$lang["config_barcode_info"] = "Barcode Configuration Information"; +$lang["config_barcode_labels"] = "Barcode Labels"; +$lang["config_barcode_layout"] = "Barcode layout"; +$lang["config_barcode_name"] = "Name"; +$lang["config_barcode_number"] = "UPC/EAN/ISBN"; +$lang["config_barcode_number_in_row"] = "Number in row"; +$lang["config_barcode_page_cellspacing"] = "Display page cellspacing"; +$lang["config_barcode_page_width"] = "Display page width"; +$lang["config_barcode_price"] = "Price"; +$lang["config_barcode_rotation"] = "Rotation"; +$lang["config_barcode_scale"] = "Scale"; +$lang["config_barcode_second_row"] = "Row 2"; +$lang["config_barcode_thickness"] = "Thickness"; +$lang["config_barcode_third_row"] = "Row 3"; +$lang["config_barcode_type"] = "Barcode Type"; $lang["config_company"] = "Company Name"; $lang["config_company_required"] = "Company name is a required field"; $lang["config_company_website_url"] = "Company website is not a valid URL (http://...)"; @@ -17,12 +39,27 @@ $lang["config_custom6"] = "Custom Field 6"; $lang["config_custom7"] = "Custom Field 7"; $lang["config_custom8"] = "Custom Field 8"; $lang["config_custom9"] = "Custom Field 9"; +$lang["config_default_barcode_dpi_number"] = "The default barcode dpi must be a number"; +$lang["config_default_barcode_dpi_required"] = "The default barcode dpi is a required field"; +$lang["config_default_barcode_font_size_number"] = "The default barcode font size must be a number"; +$lang["config_default_barcode_font_size_required"] = "The default barcode font size is a required field"; +$lang["config_default_barcode_num_in_row_number"] = "The default barcode num in row must be a number"; +$lang["config_default_barcode_num_in_row_required"] = "The default barcode num in row is a required field"; +$lang["config_default_barcode_page_cellspacing_number"] = "The default barcode page cellspacing must be a number"; +$lang["config_default_barcode_page_cellspacing_required"] = "The default barcode page cellspacing is a required field"; +$lang["config_default_barcode_page_width_number"] = "The default barcode page width must be a number"; +$lang["config_default_barcode_page_width_required"] = "The default barcode page width is a required field"; +$lang["config_default_barcode_scale_number"] = "The default barcode scale must be a number"; +$lang["config_default_barcode_scale_required"] = "The default barcode scale is a required field"; +$lang["config_default_barcode_thickness_number"] = "The default barcode thickness must be a number"; +$lang["config_default_barcode_thickness_required"] = "The default barcode thickness is a required field"; $lang["config_default_tax_rate"] = "Default Tax Rate %"; $lang["config_default_tax_rate_1"] = "Tax 1 Rate"; $lang["config_default_tax_rate_2"] = "Tax 2 Rate"; $lang["config_default_tax_rate_number"] = "The default tax rate must be a number"; $lang["config_default_tax_rate_required"] = "The default tax rate is a required field"; $lang["config_fax"] = "Fax"; +$lang["config_general_config"] = "General Configuration"; $lang["config_info"] = "Store Configuration Information"; $lang["config_language"] = "Language"; $lang["config_phone"] = "Company Phone"; @@ -41,6 +78,7 @@ $lang["config_stock_location_required"] = "Stock location number is a required f $lang["config_tax_included"] = "Tax Included"; $lang["config_timezone"] = "Timezone"; $lang["config_website"] = "Website"; +$lang["config_barcode_configuration"] = "Barcode Configuration"; $lang["config_barcode_number"] = "UPC/EAN/ISBN"; $lang["config_barcode_id"] = "Item Id/Name"; $lang["config_barcode_content"] = "Barcode Content"; diff --git a/application/language/es/config_lang.php b/application/language/es/config_lang.php index 11d27728a..47bf23ccd 100644 --- a/application/language/es/config_lang.php +++ b/application/language/es/config_lang.php @@ -2,6 +2,28 @@ $lang["config_address"] = "Dirección del Comercio"; $lang["config_address_required"] = "Dirección del Comercio es requerida"; +$lang["config_barcode_checksum"] = ""; +$lang["config_barcode_company"] = "Nombre del Comercio"; +$lang["config_barcode_content"] = "Barcode Content"; +$lang["config_barcode_dpi"] = ""; +$lang["config_barcode_first_row"] = ""; +$lang["config_barcode_font"] = ""; +$lang["config_barcode_id"] = "Item Id/Name"; +$lang["config_barcode_info"] = ""; +$lang["config_barcode_labels"] = "Barcode Labels"; +$lang["config_barcode_layout"] = ""; +$lang["config_barcode_name"] = "Name"; +$lang["config_barcode_number"] = "UPC/EAN/ISBN"; +$lang["config_barcode_number_in_row"] = ""; +$lang["config_barcode_page_cellspacing"] = ""; +$lang["config_barcode_page_width"] = ""; +$lang["config_barcode_price"] = "Price"; +$lang["config_barcode_rotation"] = ""; +$lang["config_barcode_scale"] = ""; +$lang["config_barcode_second_row"] = ""; +$lang["config_barcode_thickness"] = ""; +$lang["config_barcode_third_row"] = ""; +$lang["config_barcode_type"] = ""; $lang["config_company"] = "Nombre del Comercio"; $lang["config_company_required"] = "Nombre del Comercio es requerido"; $lang["config_company_website_url"] = "Sitio Web no es una URL estándard (http://...)"; @@ -17,12 +39,27 @@ $lang["config_custom6"] = "Campo Libre 6"; $lang["config_custom7"] = "Campo Libre 7"; $lang["config_custom8"] = "Campo Libre 8"; $lang["config_custom9"] = "Campo Libre 9"; +$lang["config_default_barcode_dpi_number"] = ""; +$lang["config_default_barcode_dpi_required"] = ""; +$lang["config_default_barcode_font_size_number"] = ""; +$lang["config_default_barcode_font_size_required"] = ""; +$lang["config_default_barcode_num_in_row_number"] = ""; +$lang["config_default_barcode_num_in_row_required"] = ""; +$lang["config_default_barcode_page_cellspacing_number"] = ""; +$lang["config_default_barcode_page_cellspacing_required"] = ""; +$lang["config_default_barcode_page_width_number"] = ""; +$lang["config_default_barcode_page_width_required"] = ""; +$lang["config_default_barcode_scale_number"] = ""; +$lang["config_default_barcode_scale_required"] = ""; +$lang["config_default_barcode_thickness_number"] = ""; +$lang["config_default_barcode_thickness_required"] = ""; $lang["config_default_tax_rate"] = "% de Impuestos Predeterminada"; $lang["config_default_tax_rate_1"] = "Impuesto 1"; $lang["config_default_tax_rate_2"] = "Impuesto 2"; $lang["config_default_tax_rate_number"] = "El Impuesto Predeterminado debe ser un número"; $lang["config_default_tax_rate_required"] = "El Impuesto Predeterminado es requerido"; $lang["config_fax"] = "Fax"; +$lang["config_general_config"] = ""; $lang["config_info"] = "Información del Comercio"; $lang["config_language"] = "Idioma"; $lang["config_phone"] = "Teléfono del Comercio"; @@ -41,6 +78,7 @@ $lang["config_stock_location_required"] = ""; $lang["config_tax_included"] = "Impuestos incluidos"; $lang["config_timezone"] = "Zona Horaria"; $lang["config_website"] = "Sitio Web"; +$lang["config_barcode_configuration"] = ""; $lang["config_barcode_number"] = "UPC/EAN/ISBN"; $lang["config_barcode_id"] = "Item Id/Name"; $lang["config_barcode_content"] = "Barcode Content"; diff --git a/application/language/fr/config_lang.php b/application/language/fr/config_lang.php index 0e8999538..90092cf11 100644 --- a/application/language/fr/config_lang.php +++ b/application/language/fr/config_lang.php @@ -2,6 +2,28 @@ $lang["config_address"] = "Addresse"; $lang["config_address_required"] = "L\'adresse est requise"; +$lang["config_barcode_checksum"] = ""; +$lang["config_barcode_company"] = "Nome de l\'Entreprise"; +$lang["config_barcode_content"] = "Barcode Content"; +$lang["config_barcode_dpi"] = ""; +$lang["config_barcode_first_row"] = ""; +$lang["config_barcode_font"] = ""; +$lang["config_barcode_id"] = "Item Id/Name"; +$lang["config_barcode_info"] = ""; +$lang["config_barcode_labels"] = "Barcode Labels"; +$lang["config_barcode_layout"] = ""; +$lang["config_barcode_name"] = "Name"; +$lang["config_barcode_number"] = "UPC/EAN/ISBN"; +$lang["config_barcode_number_in_row"] = ""; +$lang["config_barcode_page_cellspacing"] = ""; +$lang["config_barcode_page_width"] = ""; +$lang["config_barcode_price"] = "Price"; +$lang["config_barcode_rotation"] = ""; +$lang["config_barcode_scale"] = ""; +$lang["config_barcode_second_row"] = ""; +$lang["config_barcode_thickness"] = ""; +$lang["config_barcode_third_row"] = ""; +$lang["config_barcode_type"] = ""; $lang["config_company"] = "Nome de l\'Entreprise"; $lang["config_company_required"] = "Le nom d\'entreprise est requis"; $lang["config_company_website_url"] = "Le site web de l\'entreprise n\'est pas une URL valide (http://...)"; @@ -17,12 +39,27 @@ $lang["config_custom6"] = "Champ Personnalisé 6"; $lang["config_custom7"] = "Champ Personnalisé 7"; $lang["config_custom8"] = "Champ Personnalisé 8"; $lang["config_custom9"] = "Champ Personnalisé 9"; +$lang["config_default_barcode_dpi_number"] = ""; +$lang["config_default_barcode_dpi_required"] = ""; +$lang["config_default_barcode_font_size_number"] = ""; +$lang["config_default_barcode_font_size_required"] = ""; +$lang["config_default_barcode_num_in_row_number"] = ""; +$lang["config_default_barcode_num_in_row_required"] = ""; +$lang["config_default_barcode_page_cellspacing_number"] = ""; +$lang["config_default_barcode_page_cellspacing_required"] = ""; +$lang["config_default_barcode_page_width_number"] = ""; +$lang["config_default_barcode_page_width_required"] = ""; +$lang["config_default_barcode_scale_number"] = ""; +$lang["config_default_barcode_scale_required"] = ""; +$lang["config_default_barcode_thickness_number"] = ""; +$lang["config_default_barcode_thickness_required"] = ""; $lang["config_default_tax_rate"] = "Taux d\'Imposition par Défaut"; $lang["config_default_tax_rate_1"] = "Taux d\'Imposition 1"; $lang["config_default_tax_rate_2"] = "Taux d\'Imposition 2"; $lang["config_default_tax_rate_number"] = "Le taux d\'imposition doit etre un nombre"; $lang["config_default_tax_rate_required"] = "Le taux d\'imposition par défaut est requis"; $lang["config_fax"] = "Fax"; +$lang["config_general_config"] = ""; $lang["config_info"] = "Çonfiguration de l\'Entreprise"; $lang["config_language"] = "Langue"; $lang["config_phone"] = "Téléphone"; @@ -41,6 +78,7 @@ $lang["config_stock_location_required"] = ""; $lang["config_tax_included"] = ""; $lang["config_timezone"] = "Fuseau Horaire"; $lang["config_website"] = "Site-web"; +$lang["config_barcode_configuration"] = ""; $lang["config_barcode_number"] = "UPC/EAN/ISBN"; $lang["config_barcode_id"] = "Item Id/Name"; $lang["config_barcode_content"] = "Barcode Content"; diff --git a/application/language/id/config_lang.php b/application/language/id/config_lang.php index d05225725..e63736b09 100644 --- a/application/language/id/config_lang.php +++ b/application/language/id/config_lang.php @@ -2,6 +2,28 @@ $lang["config_address"] = "Alamat Perusahaan"; $lang["config_address_required"] = "Alamat Perusahaan wajib diisi"; +$lang["config_barcode_checksum"] = ""; +$lang["config_barcode_company"] = "Nama Perusahaan"; +$lang["config_barcode_content"] = "Barcode Content"; +$lang["config_barcode_dpi"] = ""; +$lang["config_barcode_first_row"] = ""; +$lang["config_barcode_font"] = ""; +$lang["config_barcode_id"] = "Item Id/Name"; +$lang["config_barcode_info"] = ""; +$lang["config_barcode_labels"] = "Barcode Labels"; +$lang["config_barcode_layout"] = ""; +$lang["config_barcode_name"] = "Name"; +$lang["config_barcode_number"] = "UPC/EAN/ISBN"; +$lang["config_barcode_number_in_row"] = ""; +$lang["config_barcode_page_cellspacing"] = ""; +$lang["config_barcode_page_width"] = ""; +$lang["config_barcode_price"] = "Price"; +$lang["config_barcode_rotation"] = ""; +$lang["config_barcode_scale"] = ""; +$lang["config_barcode_second_row"] = ""; +$lang["config_barcode_thickness"] = ""; +$lang["config_barcode_third_row"] = ""; +$lang["config_barcode_type"] = ""; $lang["config_company"] = "Nama Perusahaan"; $lang["config_company_required"] = "Nama Perusahaan wajib diisi"; $lang["config_company_website_url"] = "Situs Perusahaan bukan URL yang benar(http://...)"; @@ -17,12 +39,27 @@ $lang["config_custom6"] = "Custom Field 6"; $lang["config_custom7"] = "Custom Field 7"; $lang["config_custom8"] = "Custom Field 8"; $lang["config_custom9"] = "Custom Field 9"; +$lang["config_default_barcode_dpi_number"] = ""; +$lang["config_default_barcode_dpi_required"] = ""; +$lang["config_default_barcode_font_size_number"] = ""; +$lang["config_default_barcode_font_size_required"] = ""; +$lang["config_default_barcode_num_in_row_number"] = ""; +$lang["config_default_barcode_num_in_row_required"] = ""; +$lang["config_default_barcode_page_cellspacing_number"] = ""; +$lang["config_default_barcode_page_cellspacing_required"] = ""; +$lang["config_default_barcode_page_width_number"] = ""; +$lang["config_default_barcode_page_width_required"] = ""; +$lang["config_default_barcode_scale_number"] = ""; +$lang["config_default_barcode_scale_required"] = ""; +$lang["config_default_barcode_thickness_number"] = ""; +$lang["config_default_barcode_thickness_required"] = ""; $lang["config_default_tax_rate"] = "Tarif Pajak Biasa%"; $lang["config_default_tax_rate_1"] = "Tarif Pajak 1"; $lang["config_default_tax_rate_2"] = "Tarif Pajak 2"; $lang["config_default_tax_rate_number"] = "Tarif Pajak Biasa harus angka"; $lang["config_default_tax_rate_required"] = "Tarif Pajak Biasa wajib diisi"; $lang["config_fax"] = "Fax"; +$lang["config_general_config"] = ""; $lang["config_info"] = "Informasi Konfigurasi Toko"; $lang["config_language"] = "Bahasa"; $lang["config_phone"] = "Telepon Perusahaan"; @@ -41,6 +78,7 @@ $lang["config_stock_location_required"] = ""; $lang["config_tax_included"] = "Dikenakan Pajak"; $lang["config_timezone"] = "Zona Waktu"; $lang["config_website"] = "Situs Perusahaan"; +$lang["config_barcode_configuration"] = ""; $lang["config_barcode_number"] = "UPC/EAN/ISBN"; $lang["config_barcode_id"] = "Item Id/Name"; $lang["config_barcode_content"] = "Barcode Content"; diff --git a/application/language/nl-BE/config_lang.php b/application/language/nl-BE/config_lang.php index ae8bd7f6a..2d686feba 100755 --- a/application/language/nl-BE/config_lang.php +++ b/application/language/nl-BE/config_lang.php @@ -2,6 +2,28 @@ $lang["config_address"] = "Adres"; $lang["config_address_required"] = "Het adres van het bedrijf moet ingevuld worden"; +$lang["config_barcode_checksum"] = ""; +$lang["config_barcode_company"] = "Bedrijfsnaam"; +$lang["config_barcode_content"] = "Inhoud Barcode"; +$lang["config_barcode_dpi"] = ""; +$lang["config_barcode_first_row"] = ""; +$lang["config_barcode_font"] = ""; +$lang["config_barcode_id"] = "Product id/naam"; +$lang["config_barcode_info"] = ""; +$lang["config_barcode_labels"] = "Barcode Labels"; +$lang["config_barcode_layout"] = ""; +$lang["config_barcode_name"] = "Productnaam"; +$lang["config_barcode_number"] = "UPC/EAN/ISBN"; +$lang["config_barcode_number_in_row"] = ""; +$lang["config_barcode_page_cellspacing"] = ""; +$lang["config_barcode_page_width"] = ""; +$lang["config_barcode_price"] = "Prijs"; +$lang["config_barcode_rotation"] = ""; +$lang["config_barcode_scale"] = ""; +$lang["config_barcode_second_row"] = ""; +$lang["config_barcode_thickness"] = ""; +$lang["config_barcode_third_row"] = ""; +$lang["config_barcode_type"] = ""; $lang["config_company"] = "Bedrijfsnaam"; $lang["config_company_required"] = "De bedrijfsnaam moet ingevuld worden"; $lang["config_company_website_url"] = "De website van het bedrijf is geen geldige URL (http://...)"; @@ -17,12 +39,27 @@ $lang["config_custom6"] = "Custom Veld 6"; $lang["config_custom7"] = "Custom Veld 7"; $lang["config_custom8"] = "Custom Veld 8"; $lang["config_custom9"] = "Custom Veld 9"; +$lang["config_default_barcode_dpi_number"] = ""; +$lang["config_default_barcode_dpi_required"] = ""; +$lang["config_default_barcode_font_size_number"] = ""; +$lang["config_default_barcode_font_size_required"] = ""; +$lang["config_default_barcode_num_in_row_number"] = ""; +$lang["config_default_barcode_num_in_row_required"] = ""; +$lang["config_default_barcode_page_cellspacing_number"] = ""; +$lang["config_default_barcode_page_cellspacing_required"] = ""; +$lang["config_default_barcode_page_width_number"] = ""; +$lang["config_default_barcode_page_width_required"] = ""; +$lang["config_default_barcode_scale_number"] = ""; +$lang["config_default_barcode_scale_required"] = ""; +$lang["config_default_barcode_thickness_number"] = ""; +$lang["config_default_barcode_thickness_required"] = ""; $lang["config_default_tax_rate"] = "Standaard VAT %"; $lang["config_default_tax_rate_1"] = "VAT 1 %"; $lang["config_default_tax_rate_2"] = "VAT 2 %"; $lang["config_default_tax_rate_number"] = "Het percentage VAT moet een nummer zijn"; $lang["config_default_tax_rate_required"] = "Het percentage VAT moet ingevuld worden"; $lang["config_fax"] = "Fax"; +$lang["config_general_config"] = ""; $lang["config_info"] = "Configuratie Informatie"; $lang["config_language"] = "Taal"; $lang["config_phone"] = "Telefoon"; @@ -41,6 +78,7 @@ $lang["config_stock_location_required"] = "Naam van de stock locatie is een verp $lang["config_tax_included"] = "VAT Ingebgrepen"; $lang["config_timezone"] = "Tijdzone"; $lang["config_website"] = "Website"; +$lang["config_barcode_configuration"] = "Barcode Configuratie"; $lang["config_barcode_number"] = "UPC/EAN/ISBN"; $lang["config_barcode_id"] = "Product id/naam"; $lang["config_barcode_content"] = "Inhoud Barcode"; diff --git a/application/language/nl-BE/form_validation_lang.php b/application/language/nl-BE/form_validation_lang.php index 2b41ae549..e66250b4a 100644 --- a/application/language/nl-BE/form_validation_lang.php +++ b/application/language/nl-BE/form_validation_lang.php @@ -1,18 +1,18 @@ 'Codabar', + 'BCGcode11' => 'Code 11', + 'BCGcode39' => 'Code 39', + 'BCGcode39extended' => 'Code 39 Extended', + 'BCGcode93' => 'Code 93', + 'BCGcode128' => 'Code 128', + 'BCGean8' => 'EAN-8', + 'BCGean13' => 'EAN-13', + 'BCGgs1128' => 'GS1-128 (EAN-128)', + 'BCGisbn' => 'ISBN', + 'BCGi25' => 'Interleaved 2 of 5', + 'BCGs25' => 'Standard 2 of 5', + 'BCGmsi' => 'MSI Plessey', + 'BCGupca' => 'UPC-A', + 'BCGupce' => 'UPC-E', + 'BCGupcext2' => 'UPC Extenstion 2 Digits', + 'BCGupcext5' => 'UPC Extenstion 5 Digits', + 'BCGpostnet' => 'Postnet', + 'BCGintelligentmail' => 'Intelligent Mail', + 'BCGothercode' => 'Other Barcode'); + + function __construct() + { + $this->CI =& get_instance(); + } + + function get_list_barcodes() + { + return $this->supported_barcodes; + } + + function get_barcode_config() + { + $data['barcode_dpi'] = $this->CI->Appconfig->get('barcode_dpi'); + $data['barcode_scale'] = $this->CI->Appconfig->get('barcode_scale'); + $data['barcode_rotation'] = $this->CI->Appconfig->get('barcode_rotation'); + $data['barcode_font'] = $this->CI->Appconfig->get('barcode_font'); + $data['barcode_font_size'] = $this->CI->Appconfig->get('barcode_font_size'); + $data['barcode_thickness'] = $this->CI->Appconfig->get('barcode_thickness'); + $data['barcode_checksum'] = $this->CI->Appconfig->get('barcode_checksum'); + $data['barcode_first_row'] = $this->CI->Appconfig->get('barcode_first_row'); + $data['barcode_second_row'] = $this->CI->Appconfig->get('barcode_second_row'); + $data['barcode_third_row'] = $this->CI->Appconfig->get('barcode_third_row'); + $data['barcode_num_in_row'] = $this->CI->Appconfig->get('barcode_num_in_row'); + $data['barcode_page_width'] = $this->CI->Appconfig->get('barcode_page_width'); + $data['barcode_page_cellspacing'] = $this->CI->Appconfig->get('barcode_page_cellspacing'); + return $data; + } + + function create_display_barcode($item, $barcode_config) + { + $display_table = ""; + $display_table .= ""; + $display_table .= ""; + $display_table .= ""; + $display_table .= "
". $this->manage_display_layout($barcode_config['barcode_first_row'], $item, $barcode_config)."
". $this->manage_display_layout($barcode_config['barcode_second_row'], $item, $barcode_config)."
". $this->manage_display_layout($barcode_config['barcode_third_row'], $item, $barcode_config)."
"; + return $display_table; + } + + private function manage_display_layout($layout_type, $item, $barcode_config) + { + $result; + if($layout_type == 'item_code') + { + $result = ""; + } + else if($layout_type == 'name'){ + $result = $this->CI->lang->line('items_name') . " " . $item['name']; + } + else if($layout_type == 'category'){ + $result = $this->CI->lang->line('items_category') . " " . $item['category']; + } + else if($layout_type == 'cost_price'){ + $result = $this->CI->lang->line('items_cost_price') . " " . to_currency($item['cost_price']); + } + else if($layout_type == 'unit_price'){ + $result = $this->CI->lang->line('items_unit_price') . " " . to_currency($item['unit_price']); + } + return $result; + } + + function get_font_name($font_file_name) + { + return substr($font_file_name, 0, -4); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/README_1D.txt b/application/libraries/barcodegen/README_1D.txt new file mode 100644 index 000000000..78e653e74 --- /dev/null +++ b/application/libraries/barcodegen/README_1D.txt @@ -0,0 +1,48 @@ +This script is free for personal use. The program is provide "AS IS" +without warranty of any kind. If you want to use it as +commercial use, you have to purchase it on +http://www.barcodephp.com +You must let the copyright intact. + +Ce script est gratuit pour usage personnel. Le programme est +fourni "TEL QUEL" sans aucune garantie que ce soit. +Si vous voulez l'utiliser pour un usage commercial, +vous devez l'acheter sur +http://www.barcodephp.com +Vous devez laisser les droits d'auteur intacts. +This script is free for personal use. The program is provide "AS IS" +without warranty of any kind. If you want to use it as +commercial use, you have to purchase it on +http://www.barcodephp.com +You must let the copyright intact. + +Ce script est gratuit pour usage personnel. Le programme est +fourni "TEL QUEL" sans aucune garantie que ce soit. +Si vous voulez l'utiliser pour un usage commercial, +vous devez l'acheter sur +http://www.barcodephp.com +Vous devez laisser les droits d'auteur intacts. +This script is free for personal use. The program is provide "AS IS" +without warranty of any kind. If you want to use it as +commercial use, you have to purchase it on +http://www.barcodephp.com +You must let the copyright intact. + +Ce script est gratuit pour usage personnel. Le programme est +fourni "TEL QUEL" sans aucune garantie que ce soit. +Si vous voulez l'utiliser pour un usage commercial, +vous devez l'acheter sur +http://www.barcodephp.com +Vous devez laisser les droits d'auteur intacts. +This script is free for personal use. The program is provide "AS IS" +without warranty of any kind. If you want to use it as +commercial use, you have to purchase it on +http://www.barcodephp.com +You must let the copyright intact. + +Ce script est gratuit pour usage personnel. Le programme est +fourni "TEL QUEL" sans aucune garantie que ce soit. +Si vous voulez l'utiliser pour un usage commercial, +vous devez l'acheter sur +http://www.barcodephp.com +Vous devez laisser les droits d'auteur intacts. \ No newline at end of file diff --git a/application/libraries/barcodegen/VERSION_1D b/application/libraries/barcodegen/VERSION_1D new file mode 100644 index 000000000..4f6b77e0b --- /dev/null +++ b/application/libraries/barcodegen/VERSION_1D @@ -0,0 +1,412 @@ +v5.2.0 26 may 2014 Fix potential break in PNG writter. + Fix BCGColor. Deprecated usage of string character reference. + Rotation of text or barcode is now CLOCKWISE. + Fix Code11. Incorrect size when using a scale bigger than 1. + Fix Code128. Potential incorrect table lookup. + Fix IntelligentMail user interface not accepting correct serial number. + Improve speed by setting some methods static. + Fix OtherCode. It now checks for incorrect input. + Use ISO-8859-1 when generating a barcode with the user interface. + Usage of quotes and double quotes was not working properly with the user interface. +v5.1.0 4 oct 2012 Files moved to support 1D and 2D barcodes together + Whiskers has been removed from writing a small line in scale 1 (bug in PHP) + Add alignDefaultLabel for EAN-13 and UPC-A + Versioning is now per file + BoxFix can now be overriden + Fix some references +v5.0.1 18 apr 2012 Fix Navigation support +v5.0.0 18 apr 2012 HTML5 support. Fix some exception file inclusion bugs. + Using space instead of tabs! Added support to change the boxfix. + Added support to Intelligent Mail. Better support for Postnet. Following standard for printing. + Added getters in GS1-128. +v4.1.0 3 aug 2011 Support for transparent background +v4.0.0 15 apr 2011 Brand new version which includes some breaking changes. + Now supports the possibility to add labels around the barcode really easily thanks to the method addLabel() + You can also specify the alignment of the label, rotation, etc. + If the label is bigger than the barcode itself, the image will get bigger to avoid text clipping. + Add the setRatio method for I25 barcodes + Fix EAN-13 and ISBN +v3.0.2 4 apr 2011 Fixing the test.php +v3.0.1 26 mar 2011 Minor fixes for IE9 +v3.0.0 21 mar 2011 Better support for failure instead of writing the error on the UI, an exception is being thrown. +v2.2.0 13 feb 2010 Added the support for GS1-128 (EAN-128). + Fix ISBN text support to be the right font. + Make sure the /html files are formatted. +v2.1.0 8 nov 2009 Added a way to change the DPI before saving (BCGDrawing::setDPI()). Set the value to null if you want to improve the performance and still have 72dpi. + But you can set it to 300 if you wish to print it. + You do not need an additional DLL for this. + Added a way to rotate in degree the barcode before saving (BCGDrawing::setRotationAngle()). + Added a verification if you have GD installed... So that way you know it before contacting support :) + Fix HTML display for Code 93 and Code 39 Extended buttons + You can now specify a specific table for Code 128. For instance, if you want to force to use the table B, you would write the following to parse + array(CODE128_B, 'The Text To Encode') + The default table selection for Code 128 is automatically chosen. + Fix many PHP4 errors. +v2.0.1Fix 28 jul 2009 Change UPC-E encoding from UTF-8 to ANSI +v2.0.1 21 may 2009 Fix the Code 128C, Fix EAN-8, EAN-13, UPC-A, UPC-E and Postnet padding, MSI checksum can be 1 or 2 + Fix JoinDraw class + Added GIF and WBMP support + Fix the Checksum Text displayed for ISBN + Fix padding for ISBN with setOffsetY + Fix Button in /html for IE8 +v2.0.0 23 apr 2008 The new version has been released... All the codes have been revamped to fit with + common file for 2D barcodes. Instead of using "setText()" method, the method + parse() is used. + Thickness is modified by the scale. + Code 128: it has been modified completely, no need to specify which encoding you want to + use, it will select it for you automatically and try to get the shortest barcode. + Codabar: you can't only put one letter as a barcode. + Code 93: supports now the extended full ASCII 0 to 127 + Code 39 extended has been added in a separate file since the extended + version of Code 39 is totally optional. + Codabar has been fixed for B and C letter + We got our real nice domain: http://www.barcodephp.com +v1.3.0 13 apr 2007 Remove ISBN from EAN-13 and a new file has been created to handle + ISBN-10 and ISBN-13. +v1.2.4 1 feb 2007 Fix Code128. There were some errors dealing with C table +v1.2.3pl1 11 mar 2006 Correct the EAN-13/ISBN file. There was a problem with displaying correctly an ISBN. +v1.2.3 8 feb 2006 Int for font is no longer deprecated and can be used. + Correct many labels' positions : ean8, ean13, upca, upce + Correct getWidth of Font. +v1.2.3b 5 jan 2006 Add separate checksum method to calculate and get this special number created and a way to display it with the label. + Correct code for PHP5.1 compatibility. Selecting a char by { } is now deprecated. Using of [ ] is used instead. + Correct checksum for Code11. In some case, the checksum was bad. + Correct problem displaying label with text under the baseline (letters such as p, g...). + SIZE_SPACING_FONT_END has been suppressed since the previous bug has been fixed. + Correct label if two barcode were generated with the same font. The font is now cloned immediately before using. + The FDrawing has new methods now, use setBarcode and draw instead of add_barcode and draw_all. Only one barcode per FDrawing is possible now. + Correct errors of othercode if no text font has been selected. + othercode was not working for PHP4 due to the lack of the str_split function. Now the function is emulated. + New file : JoinDraw allows you to join 2 graphic and align each of them. (Useful for UCPExt). PHP5 only + Currently Working on UPC-A label +v1.2.2 23 jul 2005 Correct checksum for i25 and s25 barcode (thanks to Gerald Pienkowski (Germany)) + Enhance rapidity for some barcode + Change almost all comment in files : the update 1.2.1 was in 2005, not in 2004 ;) +v1.2.1 27 jun 2005 The php code is now cleaner :) + Increase rapidity of execution + Type verifications in conditions + NEW support of exterior font (Arial, Courier, etc.) with a size that you can specify + Use PHP fonts is deprecated and they will be deleted in further versions. + Remove the "alt" text on the image (IE displays it as a tooltip) + Color class has been enhanced and accept new parameter for constructor + Now you don't have to provide a specific size of the image, it will be calculated automatically for barcodes and errors + Added the version number at the bottom of the script html. + Correcting code 128 to output code correctly when passing from code C to another code +v1.05 27 jun 2005 UPCext2 has been corrected. It could display a wrong barcode. + Correcting UPC-A, bad output when writting text +v1.04 2 apr 2005 Correcting some bugs and makes available for commercial usage : purchase it on http://www.barcodephp.com +v1.03 28 mar 2005 Correcting DrawChar +v1.02 8 mar 2005 Transforming PHPDOC and converting to XHTML1.0 Transitionnal + And adding a special option that check if you have PHP5 installed + Because to many people are writing to me that saying the script doesn't work (because they have PHP4). +v1.01 7 jul 2004 Correcting code39.barcode.php +v1.00 17 jun 2004 New :) +v5.2.0 26 may 2014 Fix potential break in PNG writter. + Fix BCGColor. Deprecated usage of string character reference. + Rotation of text or barcode is now CLOCKWISE. + Fix Code11. Incorrect size when using a scale bigger than 1. + Fix Code128. Potential incorrect table lookup. + Fix IntelligentMail user interface not accepting correct serial number. + Improve speed by setting some methods static. + Fix OtherCode. It now checks for incorrect input. + Use ISO-8859-1 when generating a barcode with the user interface. + Usage of quotes and double quotes was not working properly with the user interface. +v5.1.0 4 oct 2012 Files moved to support 1D and 2D barcodes together + Whiskers has been removed from writing a small line in scale 1 (bug in PHP) + Add alignDefaultLabel for EAN-13 and UPC-A + Versioning is now per file + BoxFix can now be overriden + Fix some references +v5.0.1 18 apr 2012 Fix Navigation support +v5.0.0 18 apr 2012 HTML5 support. Fix some exception file inclusion bugs. + Using space instead of tabs! Added support to change the boxfix. + Added support to Intelligent Mail. Better support for Postnet. Following standard for printing. + Added getters in GS1-128. +v4.1.0 3 aug 2011 Support for transparent background +v4.0.0 15 apr 2011 Brand new version which includes some breaking changes. + Now supports the possibility to add labels around the barcode really easily thanks to the method addLabel() + You can also specify the alignment of the label, rotation, etc. + If the label is bigger than the barcode itself, the image will get bigger to avoid text clipping. + Add the setRatio method for I25 barcodes + Fix EAN-13 and ISBN +v3.0.2 4 apr 2011 Fixing the test.php +v3.0.1 26 mar 2011 Minor fixes for IE9 +v3.0.0 21 mar 2011 Better support for failure instead of writing the error on the UI, an exception is being thrown. +v2.2.0 13 feb 2010 Added the support for GS1-128 (EAN-128). + Fix ISBN text support to be the right font. + Make sure the /html files are formatted. +v2.1.0 8 nov 2009 Added a way to change the DPI before saving (BCGDrawing::setDPI()). Set the value to null if you want to improve the performance and still have 72dpi. + But you can set it to 300 if you wish to print it. + You do not need an additional DLL for this. + Added a way to rotate in degree the barcode before saving (BCGDrawing::setRotationAngle()). + Added a verification if you have GD installed... So that way you know it before contacting support :) + Fix HTML display for Code 93 and Code 39 Extended buttons + You can now specify a specific table for Code 128. For instance, if you want to force to use the table B, you would write the following to parse + array(CODE128_B, 'The Text To Encode') + The default table selection for Code 128 is automatically chosen. + Fix many PHP4 errors. +v2.0.1Fix 28 jul 2009 Change UPC-E encoding from UTF-8 to ANSI +v2.0.1 21 may 2009 Fix the Code 128C, Fix EAN-8, EAN-13, UPC-A, UPC-E and Postnet padding, MSI checksum can be 1 or 2 + Fix JoinDraw class + Added GIF and WBMP support + Fix the Checksum Text displayed for ISBN + Fix padding for ISBN with setOffsetY + Fix Button in /html for IE8 +v2.0.0 23 apr 2008 The new version has been released... All the codes have been revamped to fit with + common file for 2D barcodes. Instead of using "setText()" method, the method + parse() is used. + Thickness is modified by the scale. + Code 128: it has been modified completely, no need to specify which encoding you want to + use, it will select it for you automatically and try to get the shortest barcode. + Codabar: you can't only put one letter as a barcode. + Code 93: supports now the extended full ASCII 0 to 127 + Code 39 extended has been added in a separate file since the extended + version of Code 39 is totally optional. + Codabar has been fixed for B and C letter + We got our real nice domain: http://www.barcodephp.com +v1.3.0 13 apr 2007 Remove ISBN from EAN-13 and a new file has been created to handle + ISBN-10 and ISBN-13. +v1.2.4 1 feb 2007 Fix Code128. There were some errors dealing with C table +v1.2.3pl1 11 mar 2006 Correct the EAN-13/ISBN file. There was a problem with displaying correctly an ISBN. +v1.2.3 8 feb 2006 Int for font is no longer deprecated and can be used. + Correct many labels' positions : ean8, ean13, upca, upce + Correct getWidth of Font. +v1.2.3b 5 jan 2006 Add separate checksum method to calculate and get this special number created and a way to display it with the label. + Correct code for PHP5.1 compatibility. Selecting a char by { } is now deprecated. Using of [ ] is used instead. + Correct checksum for Code11. In some case, the checksum was bad. + Correct problem displaying label with text under the baseline (letters such as p, g...). + SIZE_SPACING_FONT_END has been suppressed since the previous bug has been fixed. + Correct label if two barcode were generated with the same font. The font is now cloned immediately before using. + The FDrawing has new methods now, use setBarcode and draw instead of add_barcode and draw_all. Only one barcode per FDrawing is possible now. + Correct errors of othercode if no text font has been selected. + othercode was not working for PHP4 due to the lack of the str_split function. Now the function is emulated. + New file : JoinDraw allows you to join 2 graphic and align each of them. (Useful for UCPExt). PHP5 only + Currently Working on UPC-A label +v1.2.2 23 jul 2005 Correct checksum for i25 and s25 barcode (thanks to Gerald Pienkowski (Germany)) + Enhance rapidity for some barcode + Change almost all comment in files : the update 1.2.1 was in 2005, not in 2004 ;) +v1.2.1 27 jun 2005 The php code is now cleaner :) + Increase rapidity of execution + Type verifications in conditions + NEW support of exterior font (Arial, Courier, etc.) with a size that you can specify + Use PHP fonts is deprecated and they will be deleted in further versions. + Remove the "alt" text on the image (IE displays it as a tooltip) + Color class has been enhanced and accept new parameter for constructor + Now you don't have to provide a specific size of the image, it will be calculated automatically for barcodes and errors + Added the version number at the bottom of the script html. + Correcting code 128 to output code correctly when passing from code C to another code +v1.05 27 jun 2005 UPCext2 has been corrected. It could display a wrong barcode. + Correcting UPC-A, bad output when writting text +v1.04 2 apr 2005 Correcting some bugs and makes available for commercial usage : purchase it on http://www.barcodephp.com +v1.03 28 mar 2005 Correcting DrawChar +v1.02 8 mar 2005 Transforming PHPDOC and converting to XHTML1.0 Transitionnal + And adding a special option that check if you have PHP5 installed + Because to many people are writing to me that saying the script doesn't work (because they have PHP4). +v1.01 7 jul 2004 Correcting code39.barcode.php +v1.00 17 jun 2004 New :) +v5.2.0 26 may 2014 Fix potential break in PNG writter. + Fix BCGColor. Deprecated usage of string character reference. + Rotation of text or barcode is now CLOCKWISE. + Fix Code11. Incorrect size when using a scale bigger than 1. + Fix Code128. Potential incorrect table lookup. + Fix IntelligentMail user interface not accepting correct serial number. + Improve speed by setting some methods static. + Fix OtherCode. It now checks for incorrect input. + Use ISO-8859-1 when generating a barcode with the user interface. + Usage of quotes and double quotes was not working properly with the user interface. +v5.1.0 4 oct 2012 Files moved to support 1D and 2D barcodes together + Whiskers has been removed from writing a small line in scale 1 (bug in PHP) + Add alignDefaultLabel for EAN-13 and UPC-A + Versioning is now per file + BoxFix can now be overriden + Fix some references +v5.0.1 18 apr 2012 Fix Navigation support +v5.0.0 18 apr 2012 HTML5 support. Fix some exception file inclusion bugs. + Using space instead of tabs! Added support to change the boxfix. + Added support to Intelligent Mail. Better support for Postnet. Following standard for printing. + Added getters in GS1-128. +v4.1.0 3 aug 2011 Support for transparent background +v4.0.0 15 apr 2011 Brand new version which includes some breaking changes. + Now supports the possibility to add labels around the barcode really easily thanks to the method addLabel() + You can also specify the alignment of the label, rotation, etc. + If the label is bigger than the barcode itself, the image will get bigger to avoid text clipping. + Add the setRatio method for I25 barcodes + Fix EAN-13 and ISBN +v3.0.2 4 apr 2011 Fixing the test.php +v3.0.1 26 mar 2011 Minor fixes for IE9 +v3.0.0 21 mar 2011 Better support for failure instead of writing the error on the UI, an exception is being thrown. +v2.2.0 13 feb 2010 Added the support for GS1-128 (EAN-128). + Fix ISBN text support to be the right font. + Make sure the /html files are formatted. +v2.1.0 8 nov 2009 Added a way to change the DPI before saving (BCGDrawing::setDPI()). Set the value to null if you want to improve the performance and still have 72dpi. + But you can set it to 300 if you wish to print it. + You do not need an additional DLL for this. + Added a way to rotate in degree the barcode before saving (BCGDrawing::setRotationAngle()). + Added a verification if you have GD installed... So that way you know it before contacting support :) + Fix HTML display for Code 93 and Code 39 Extended buttons + You can now specify a specific table for Code 128. For instance, if you want to force to use the table B, you would write the following to parse + array(CODE128_B, 'The Text To Encode') + The default table selection for Code 128 is automatically chosen. + Fix many PHP4 errors. +v2.0.1Fix 28 jul 2009 Change UPC-E encoding from UTF-8 to ANSI +v2.0.1 21 may 2009 Fix the Code 128C, Fix EAN-8, EAN-13, UPC-A, UPC-E and Postnet padding, MSI checksum can be 1 or 2 + Fix JoinDraw class + Added GIF and WBMP support + Fix the Checksum Text displayed for ISBN + Fix padding for ISBN with setOffsetY + Fix Button in /html for IE8 +v2.0.0 23 apr 2008 The new version has been released... All the codes have been revamped to fit with + common file for 2D barcodes. Instead of using "setText()" method, the method + parse() is used. + Thickness is modified by the scale. + Code 128: it has been modified completely, no need to specify which encoding you want to + use, it will select it for you automatically and try to get the shortest barcode. + Codabar: you can't only put one letter as a barcode. + Code 93: supports now the extended full ASCII 0 to 127 + Code 39 extended has been added in a separate file since the extended + version of Code 39 is totally optional. + Codabar has been fixed for B and C letter + We got our real nice domain: http://www.barcodephp.com +v1.3.0 13 apr 2007 Remove ISBN from EAN-13 and a new file has been created to handle + ISBN-10 and ISBN-13. +v1.2.4 1 feb 2007 Fix Code128. There were some errors dealing with C table +v1.2.3pl1 11 mar 2006 Correct the EAN-13/ISBN file. There was a problem with displaying correctly an ISBN. +v1.2.3 8 feb 2006 Int for font is no longer deprecated and can be used. + Correct many labels' positions : ean8, ean13, upca, upce + Correct getWidth of Font. +v1.2.3b 5 jan 2006 Add separate checksum method to calculate and get this special number created and a way to display it with the label. + Correct code for PHP5.1 compatibility. Selecting a char by { } is now deprecated. Using of [ ] is used instead. + Correct checksum for Code11. In some case, the checksum was bad. + Correct problem displaying label with text under the baseline (letters such as p, g...). + SIZE_SPACING_FONT_END has been suppressed since the previous bug has been fixed. + Correct label if two barcode were generated with the same font. The font is now cloned immediately before using. + The FDrawing has new methods now, use setBarcode and draw instead of add_barcode and draw_all. Only one barcode per FDrawing is possible now. + Correct errors of othercode if no text font has been selected. + othercode was not working for PHP4 due to the lack of the str_split function. Now the function is emulated. + New file : JoinDraw allows you to join 2 graphic and align each of them. (Useful for UCPExt). PHP5 only + Currently Working on UPC-A label +v1.2.2 23 jul 2005 Correct checksum for i25 and s25 barcode (thanks to Gerald Pienkowski (Germany)) + Enhance rapidity for some barcode + Change almost all comment in files : the update 1.2.1 was in 2005, not in 2004 ;) +v1.2.1 27 jun 2005 The php code is now cleaner :) + Increase rapidity of execution + Type verifications in conditions + NEW support of exterior font (Arial, Courier, etc.) with a size that you can specify + Use PHP fonts is deprecated and they will be deleted in further versions. + Remove the "alt" text on the image (IE displays it as a tooltip) + Color class has been enhanced and accept new parameter for constructor + Now you don't have to provide a specific size of the image, it will be calculated automatically for barcodes and errors + Added the version number at the bottom of the script html. + Correcting code 128 to output code correctly when passing from code C to another code +v1.05 27 jun 2005 UPCext2 has been corrected. It could display a wrong barcode. + Correcting UPC-A, bad output when writting text +v1.04 2 apr 2005 Correcting some bugs and makes available for commercial usage : purchase it on http://www.barcodephp.com +v1.03 28 mar 2005 Correcting DrawChar +v1.02 8 mar 2005 Transforming PHPDOC and converting to XHTML1.0 Transitionnal + And adding a special option that check if you have PHP5 installed + Because to many people are writing to me that saying the script doesn't work (because they have PHP4). +v1.01 7 jul 2004 Correcting code39.barcode.php +v1.00 17 jun 2004 New :) +v5.2.0 26 may 2014 Fix potential break in PNG writter. + Fix BCGColor. Deprecated usage of string character reference. + Rotation of text or barcode is now CLOCKWISE. + Fix Code11. Incorrect size when using a scale bigger than 1. + Fix Code128. Potential incorrect table lookup. + Fix IntelligentMail user interface not accepting correct serial number. + Improve speed by setting some methods static. + Fix OtherCode. It now checks for incorrect input. + Use ISO-8859-1 when generating a barcode with the user interface. + Usage of quotes and double quotes was not working properly with the user interface. +v5.1.0 4 oct 2012 Files moved to support 1D and 2D barcodes together + Whiskers has been removed from writing a small line in scale 1 (bug in PHP) + Add alignDefaultLabel for EAN-13 and UPC-A + Versioning is now per file + BoxFix can now be overriden + Fix some references +v5.0.1 18 apr 2012 Fix Navigation support +v5.0.0 18 apr 2012 HTML5 support. Fix some exception file inclusion bugs. + Using space instead of tabs! Added support to change the boxfix. + Added support to Intelligent Mail. Better support for Postnet. Following standard for printing. + Added getters in GS1-128. +v4.1.0 3 aug 2011 Support for transparent background +v4.0.0 15 apr 2011 Brand new version which includes some breaking changes. + Now supports the possibility to add labels around the barcode really easily thanks to the method addLabel() + You can also specify the alignment of the label, rotation, etc. + If the label is bigger than the barcode itself, the image will get bigger to avoid text clipping. + Add the setRatio method for I25 barcodes + Fix EAN-13 and ISBN +v3.0.2 4 apr 2011 Fixing the test.php +v3.0.1 26 mar 2011 Minor fixes for IE9 +v3.0.0 21 mar 2011 Better support for failure instead of writing the error on the UI, an exception is being thrown. +v2.2.0 13 feb 2010 Added the support for GS1-128 (EAN-128). + Fix ISBN text support to be the right font. + Make sure the /html files are formatted. +v2.1.0 8 nov 2009 Added a way to change the DPI before saving (BCGDrawing::setDPI()). Set the value to null if you want to improve the performance and still have 72dpi. + But you can set it to 300 if you wish to print it. + You do not need an additional DLL for this. + Added a way to rotate in degree the barcode before saving (BCGDrawing::setRotationAngle()). + Added a verification if you have GD installed... So that way you know it before contacting support :) + Fix HTML display for Code 93 and Code 39 Extended buttons + You can now specify a specific table for Code 128. For instance, if you want to force to use the table B, you would write the following to parse + array(CODE128_B, 'The Text To Encode') + The default table selection for Code 128 is automatically chosen. + Fix many PHP4 errors. +v2.0.1Fix 28 jul 2009 Change UPC-E encoding from UTF-8 to ANSI +v2.0.1 21 may 2009 Fix the Code 128C, Fix EAN-8, EAN-13, UPC-A, UPC-E and Postnet padding, MSI checksum can be 1 or 2 + Fix JoinDraw class + Added GIF and WBMP support + Fix the Checksum Text displayed for ISBN + Fix padding for ISBN with setOffsetY + Fix Button in /html for IE8 +v2.0.0 23 apr 2008 The new version has been released... All the codes have been revamped to fit with + common file for 2D barcodes. Instead of using "setText()" method, the method + parse() is used. + Thickness is modified by the scale. + Code 128: it has been modified completely, no need to specify which encoding you want to + use, it will select it for you automatically and try to get the shortest barcode. + Codabar: you can't only put one letter as a barcode. + Code 93: supports now the extended full ASCII 0 to 127 + Code 39 extended has been added in a separate file since the extended + version of Code 39 is totally optional. + Codabar has been fixed for B and C letter + We got our real nice domain: http://www.barcodephp.com +v1.3.0 13 apr 2007 Remove ISBN from EAN-13 and a new file has been created to handle + ISBN-10 and ISBN-13. +v1.2.4 1 feb 2007 Fix Code128. There were some errors dealing with C table +v1.2.3pl1 11 mar 2006 Correct the EAN-13/ISBN file. There was a problem with displaying correctly an ISBN. +v1.2.3 8 feb 2006 Int for font is no longer deprecated and can be used. + Correct many labels' positions : ean8, ean13, upca, upce + Correct getWidth of Font. +v1.2.3b 5 jan 2006 Add separate checksum method to calculate and get this special number created and a way to display it with the label. + Correct code for PHP5.1 compatibility. Selecting a char by { } is now deprecated. Using of [ ] is used instead. + Correct checksum for Code11. In some case, the checksum was bad. + Correct problem displaying label with text under the baseline (letters such as p, g...). + SIZE_SPACING_FONT_END has been suppressed since the previous bug has been fixed. + Correct label if two barcode were generated with the same font. The font is now cloned immediately before using. + The FDrawing has new methods now, use setBarcode and draw instead of add_barcode and draw_all. Only one barcode per FDrawing is possible now. + Correct errors of othercode if no text font has been selected. + othercode was not working for PHP4 due to the lack of the str_split function. Now the function is emulated. + New file : JoinDraw allows you to join 2 graphic and align each of them. (Useful for UCPExt). PHP5 only + Currently Working on UPC-A label +v1.2.2 23 jul 2005 Correct checksum for i25 and s25 barcode (thanks to Gerald Pienkowski (Germany)) + Enhance rapidity for some barcode + Change almost all comment in files : the update 1.2.1 was in 2005, not in 2004 ;) +v1.2.1 27 jun 2005 The php code is now cleaner :) + Increase rapidity of execution + Type verifications in conditions + NEW support of exterior font (Arial, Courier, etc.) with a size that you can specify + Use PHP fonts is deprecated and they will be deleted in further versions. + Remove the "alt" text on the image (IE displays it as a tooltip) + Color class has been enhanced and accept new parameter for constructor + Now you don't have to provide a specific size of the image, it will be calculated automatically for barcodes and errors + Added the version number at the bottom of the script html. + Correcting code 128 to output code correctly when passing from code C to another code +v1.05 27 jun 2005 UPCext2 has been corrected. It could display a wrong barcode. + Correcting UPC-A, bad output when writting text +v1.04 2 apr 2005 Correcting some bugs and makes available for commercial usage : purchase it on http://www.barcodephp.com +v1.03 28 mar 2005 Correcting DrawChar +v1.02 8 mar 2005 Transforming PHPDOC and converting to XHTML1.0 Transitionnal + And adding a special option that check if you have PHP5 installed + Because to many people are writing to me that saying the script doesn't work (because they have PHP4). +v1.01 7 jul 2004 Correcting code39.barcode.php +v1.00 17 jun 2004 New :) \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGArgumentException.php b/application/libraries/barcodegen/class/BCGArgumentException.php new file mode 100755 index 000000000..a0e98e795 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGArgumentException.php @@ -0,0 +1,25 @@ +param = $param; + parent::__construct($message, 20000); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGBarcode.php b/application/libraries/barcodegen/class/BCGBarcode.php new file mode 100755 index 000000000..66ea3e281 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGBarcode.php @@ -0,0 +1,436 @@ +setOffsetX(0); + $this->setOffsetY(0); + $this->setForegroundColor(0x000000); + $this->setBackgroundColor(0xffffff); + $this->setScale(1); + } + + /** + * Parses the text before displaying it. + * + * @param mixed $text + */ + public function parse($text) { + } + + /** + * Gets the foreground color of the barcode. + * + * @return BCGColor + */ + public function getForegroundColor() { + return $this->colorFg; + } + + /** + * Sets the foreground color of the barcode. It could be a BCGColor + * value or simply a language code (white, black, yellow...) or hex value. + * + * @param mixed $code + */ + public function setForegroundColor($code) { + if ($code instanceof BCGColor) { + $this->colorFg = $code; + } else { + $this->colorFg = new BCGColor($code); + } + } + + /** + * Gets the background color of the barcode. + * + * @return BCGColor + */ + public function getBackgroundColor() { + return $this->colorBg; + } + + /** + * Sets the background color of the barcode. It could be a BCGColor + * value or simply a language code (white, black, yellow...) or hex value. + * + * @param mixed $code + */ + public function setBackgroundColor($code) { + if ($code instanceof BCGColor) { + $this->colorBg = $code; + } else { + $this->colorBg = new BCGColor($code); + } + + foreach ($this->labels as $label) { + $label->setBackgroundColor($this->colorBg); + } + } + + /** + * Sets the color. + * + * @param mixed $fg + * @param mixed $bg + */ + public function setColor($fg, $bg) { + $this->setForegroundColor($fg); + $this->setBackgroundColor($bg); + } + + /** + * Gets the scale of the barcode. + * + * @return int + */ + public function getScale() { + return $this->scale; + } + + /** + * Sets the scale of the barcode in pixel. + * If the scale is lower than 1, an exception is raised. + * + * @param int $scale + */ + public function setScale($scale) { + $scale = intval($scale); + if ($scale <= 0) { + throw new BCGArgumentException('The scale must be larger than 0.', 'scale'); + } + + $this->scale = $scale; + } + + /** + * Abstract method that draws the barcode on the resource. + * + * @param resource $im + */ + public abstract function draw($im); + + /** + * Returns the maximal size of a barcode. + * [0]->width + * [1]->height + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $labels = $this->getBiggestLabels(false); + $pixelsAround = array(0, 0, 0, 0); // TRBL + if (isset($labels[BCGLabel::POSITION_TOP])) { + $dimension = $labels[BCGLabel::POSITION_TOP]->getDimension(); + $pixelsAround[0] += $dimension[1]; + } + + if (isset($labels[BCGLabel::POSITION_RIGHT])) { + $dimension = $labels[BCGLabel::POSITION_RIGHT]->getDimension(); + $pixelsAround[1] += $dimension[0]; + } + + if (isset($labels[BCGLabel::POSITION_BOTTOM])) { + $dimension = $labels[BCGLabel::POSITION_BOTTOM]->getDimension(); + $pixelsAround[2] += $dimension[1]; + } + + if (isset($labels[BCGLabel::POSITION_LEFT])) { + $dimension = $labels[BCGLabel::POSITION_LEFT]->getDimension(); + $pixelsAround[3] += $dimension[0]; + } + + $finalW = ($w + $this->offsetX) * $this->scale; + $finalH = ($h + $this->offsetY) * $this->scale; + + // This section will check if a top/bottom label is too big for its width and left/right too big for its height + $reversedLabels = $this->getBiggestLabels(true); + foreach ($reversedLabels as $label) { + $dimension = $label->getDimension(); + $alignment = $label->getAlignment(); + if ($label->getPosition() === BCGLabel::POSITION_LEFT || $label->getPosition() === BCGLabel::POSITION_RIGHT) { + if ($alignment === BCGLabel::ALIGN_TOP) { + $pixelsAround[2] = max($pixelsAround[2], $dimension[1] - $finalH); + } elseif ($alignment === BCGLabel::ALIGN_CENTER) { + $temp = ceil(($dimension[1] - $finalH) / 2); + $pixelsAround[0] = max($pixelsAround[0], $temp); + $pixelsAround[2] = max($pixelsAround[2], $temp); + } elseif ($alignment === BCGLabel::ALIGN_BOTTOM) { + $pixelsAround[0] = max($pixelsAround[0], $dimension[1] - $finalH); + } + } else { + if ($alignment === BCGLabel::ALIGN_LEFT) { + $pixelsAround[1] = max($pixelsAround[1], $dimension[0] - $finalW); + } elseif ($alignment === BCGLabel::ALIGN_CENTER) { + $temp = ceil(($dimension[0] - $finalW) / 2); + $pixelsAround[1] = max($pixelsAround[1], $temp); + $pixelsAround[3] = max($pixelsAround[3], $temp); + } elseif ($alignment === BCGLabel::ALIGN_RIGHT) { + $pixelsAround[3] = max($pixelsAround[3], $dimension[0] - $finalW); + } + } + } + + $this->pushLabel[0] = $pixelsAround[3]; + $this->pushLabel[1] = $pixelsAround[0]; + + $finalW = ($w + $this->offsetX) * $this->scale + $pixelsAround[1] + $pixelsAround[3]; + $finalH = ($h + $this->offsetY) * $this->scale + $pixelsAround[0] + $pixelsAround[2]; + + return array($finalW, $finalH); + } + + /** + * Gets the X offset. + * + * @return int + */ + public function getOffsetX() { + return $this->offsetX; + } + + /** + * Sets the X offset. + * + * @param int $offsetX + */ + public function setOffsetX($offsetX) { + $offsetX = intval($offsetX); + if ($offsetX < 0) { + throw new BCGArgumentException('The offset X must be 0 or larger.', 'offsetX'); + } + + $this->offsetX = $offsetX; + } + + /** + * Gets the Y offset. + * + * @return int + */ + public function getOffsetY() { + return $this->offsetY; + } + + /** + * Sets the Y offset. + * + * @param int $offsetY + */ + public function setOffsetY($offsetY) { + $offsetY = intval($offsetY); + if ($offsetY < 0) { + throw new BCGArgumentException('The offset Y must be 0 or larger.', 'offsetY'); + } + + $this->offsetY = $offsetY; + } + + /** + * Adds the label to the drawing. + * + * @param BCGLabel $label + */ + public function addLabel(BCGLabel $label) { + $label->setBackgroundColor($this->colorBg); + $this->labels[] = $label; + } + + /** + * Removes the label from the drawing. + * + * @param BCGLabel $label + */ + public function removeLabel(BCGLabel $label) { + $remove = -1; + $c = count($this->labels); + for ($i = 0; $i < $c; $i++) { + if ($this->labels[$i] === $label) { + $remove = $i; + break; + } + } + + if ($remove > -1) { + array_splice($this->labels, $remove, 1); + } + } + + /** + * Clears the labels. + */ + public function clearLabels() { + $this->labels = array(); + } + + /** + * Draws the text. + * The coordinate passed are the positions of the barcode. + * $x1 and $y1 represent the top left corner. + * $x2 and $y2 represent the bottom right corner. + * + * @param resource $im + * @param int $x1 + * @param int $y1 + * @param int $x2 + * @param int $y2 + */ + protected function drawText($im, $x1, $y1, $x2, $y2) { + foreach ($this->labels as $label) { + $label->draw($im, + ($x1 + $this->offsetX) * $this->scale + $this->pushLabel[0], + ($y1 + $this->offsetY) * $this->scale + $this->pushLabel[1], + ($x2 + $this->offsetX) * $this->scale + $this->pushLabel[0], + ($y2 + $this->offsetY) * $this->scale + $this->pushLabel[1]); + } + } + + /** + * Draws 1 pixel on the resource at a specific position with a determined color. + * + * @param resource $im + * @param int $x + * @param int $y + * @param int $color + */ + protected function drawPixel($im, $x, $y, $color = self::COLOR_FG) { + $xR = ($x + $this->offsetX) * $this->scale + $this->pushLabel[0]; + $yR = ($y + $this->offsetY) * $this->scale + $this->pushLabel[1]; + + // We always draw a rectangle + imagefilledrectangle($im, + $xR, + $yR, + $xR + $this->scale - 1, + $yR + $this->scale - 1, + $this->getColor($im, $color)); + } + + /** + * Draws an empty rectangle on the resource at a specific position with a determined color. + * + * @param resource $im + * @param int $x1 + * @param int $y1 + * @param int $x2 + * @param int $y2 + * @param int $color + */ + protected function drawRectangle($im, $x1, $y1, $x2, $y2, $color = self::COLOR_FG) { + if ($this->scale === 1) { + imagefilledrectangle($im, + ($x1 + $this->offsetX) + $this->pushLabel[0], + ($y1 + $this->offsetY) + $this->pushLabel[1], + ($x2 + $this->offsetX) + $this->pushLabel[0], + ($y2 + $this->offsetY) + $this->pushLabel[1], + $this->getColor($im, $color)); + } else { + imagefilledrectangle($im, ($x1 + $this->offsetX) * $this->scale + $this->pushLabel[0], ($y1 + $this->offsetY) * $this->scale + $this->pushLabel[1], ($x2 + $this->offsetX) * $this->scale + $this->pushLabel[0] + $this->scale - 1, ($y1 + $this->offsetY) * $this->scale + $this->pushLabel[1] + $this->scale - 1, $this->getColor($im, $color)); + imagefilledrectangle($im, ($x1 + $this->offsetX) * $this->scale + $this->pushLabel[0], ($y1 + $this->offsetY) * $this->scale + $this->pushLabel[1], ($x1 + $this->offsetX) * $this->scale + $this->pushLabel[0] + $this->scale - 1, ($y2 + $this->offsetY) * $this->scale + $this->pushLabel[1] + $this->scale - 1, $this->getColor($im, $color)); + imagefilledrectangle($im, ($x2 + $this->offsetX) * $this->scale + $this->pushLabel[0], ($y1 + $this->offsetY) * $this->scale + $this->pushLabel[1], ($x2 + $this->offsetX) * $this->scale + $this->pushLabel[0] + $this->scale - 1, ($y2 + $this->offsetY) * $this->scale + $this->pushLabel[1] + $this->scale - 1, $this->getColor($im, $color)); + imagefilledrectangle($im, ($x1 + $this->offsetX) * $this->scale + $this->pushLabel[0], ($y2 + $this->offsetY) * $this->scale + $this->pushLabel[1], ($x2 + $this->offsetX) * $this->scale + $this->pushLabel[0] + $this->scale - 1, ($y2 + $this->offsetY) * $this->scale + $this->pushLabel[1] + $this->scale - 1, $this->getColor($im, $color)); + } + } + + /** + * Draws a filled rectangle on the resource at a specific position with a determined color. + * + * @param resource $im + * @param int $x1 + * @param int $y1 + * @param int $x2 + * @param int $y2 + * @param int $color + */ + protected function drawFilledRectangle($im, $x1, $y1, $x2, $y2, $color = self::COLOR_FG) { + if ($x1 > $x2) { // Swap + $x1 ^= $x2 ^= $x1 ^= $x2; + } + + if ($y1 > $y2) { // Swap + $y1 ^= $y2 ^= $y1 ^= $y2; + } + + imagefilledrectangle($im, + ($x1 + $this->offsetX) * $this->scale + $this->pushLabel[0], + ($y1 + $this->offsetY) * $this->scale + $this->pushLabel[1], + ($x2 + $this->offsetX) * $this->scale + $this->pushLabel[0] + $this->scale - 1, + ($y2 + $this->offsetY) * $this->scale + $this->pushLabel[1] + $this->scale - 1, + $this->getColor($im, $color)); + } + + /** + * Allocates the color based on the integer. + * + * @param resource $im + * @param int $color + * @return resource + */ + protected function getColor($im, $color) { + if ($color === self::COLOR_BG) { + return $this->colorBg->allocate($im); + } else { + return $this->colorFg->allocate($im); + } + } + + /** + * Returning the biggest label widths for LEFT/RIGHT and heights for TOP/BOTTOM. + * + * @param bool $reversed + * @return BCGLabel[] + */ + private function getBiggestLabels($reversed = false) { + $searchLR = $reversed ? 1 : 0; + $searchTB = $reversed ? 0 : 1; + + $labels = array(); + foreach ($this->labels as $label) { + $position = $label->getPosition(); + if (isset($labels[$position])) { + $savedDimension = $labels[$position]->getDimension(); + $dimension = $label->getDimension(); + if ($position === BCGLabel::POSITION_LEFT || $position === BCGLabel::POSITION_RIGHT) { + if ($dimension[$searchLR] > $savedDimension[$searchLR]) { + $labels[$position] = $label; + } + } else { + if ($dimension[$searchTB] > $savedDimension[$searchTB]) { + $labels[$position] = $label; + } + } + } else { + $labels[$position] = $label; + } + } + + return $labels; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGBarcode1D.php b/application/libraries/barcodegen/class/BCGBarcode1D.php new file mode 100755 index 000000000..a4f5c50e3 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGBarcode1D.php @@ -0,0 +1,259 @@ +setThickness(30); + + $this->defaultLabel = new BCGLabel(); + $this->defaultLabel->setPosition(BCGLabel::POSITION_BOTTOM); + $this->setLabel(self::AUTO_LABEL); + $this->setFont(new BCGFontPhp(5)); + + $this->text = ''; + $this->checksumValue = false; + $this->positionX = 0; + } + + /** + * Gets the thickness. + * + * @return int + */ + public function getThickness() { + return $this->thickness; + } + + /** + * Sets the thickness. + * + * @param int $thickness + */ + public function setThickness($thickness) { + $thickness = intval($thickness); + if ($thickness <= 0) { + throw new BCGArgumentException('The thickness must be larger than 0.', 'thickness'); + } + + $this->thickness = $thickness; + } + + /** + * Gets the label. + * If the label was set to BCGBarcode1D::AUTO_LABEL, the label will display the value from the text parsed. + * + * @return string + */ + public function getLabel() { + $label = $this->label; + if ($this->label === self::AUTO_LABEL) { + $label = $this->text; + if ($this->displayChecksum === true && ($checksum = $this->processChecksum()) !== false) { + $label .= $checksum; + } + } + + return $label; + } + + /** + * Sets the label. + * You can use BCGBarcode::AUTO_LABEL to have the label automatically written based on the parsed text. + * + * @param string $label + */ + public function setLabel($label) { + $this->label = $label; + } + + /** + * Gets the font. + * + * @return BCGFont + */ + public function getFont() { + return $this->font; + } + + /** + * Sets the font. + * + * @param mixed $font BCGFont or int + */ + public function setFont($font) { + if (is_int($font)) { + if ($font === 0) { + $font = null; + } else { + $font = new BCGFontPhp($font); + } + } + + $this->font = $font; + } + + /** + * Parses the text before displaying it. + * + * @param mixed $text + */ + public function parse($text) { + $this->text = $text; + $this->checksumValue = false; // Reset checksumValue + $this->validate(); + + parent::parse($text); + + $this->addDefaultLabel(); + } + + /** + * Gets the checksum of a Barcode. + * If no checksum is available, return FALSE. + * + * @return string + */ + public function getChecksum() { + return $this->processChecksum(); + } + + /** + * Sets if the checksum is displayed with the label or not. + * The checksum must be activated in some case to make this variable effective. + * + * @param boolean $displayChecksum + */ + public function setDisplayChecksum($displayChecksum) { + $this->displayChecksum = (bool)$displayChecksum; + } + + /** + * Adds the default label. + */ + protected function addDefaultLabel() { + $label = $this->getLabel(); + $font = $this->font; + if ($label !== null && $label !== '' && $font !== null && $this->defaultLabel !== null) { + $this->defaultLabel->setText($label); + $this->defaultLabel->setFont($font); + $this->addLabel($this->defaultLabel); + } + } + + /** + * Validates the input + */ + protected function validate() { + // No validation in the abstract class. + } + + /** + * Returns the index in $keys (useful for checksum). + * + * @param mixed $var + * @return mixed + */ + protected function findIndex($var) { + return array_search($var, $this->keys); + } + + /** + * Returns the code of the char (useful for drawing bars). + * + * @param mixed $var + * @return string + */ + protected function findCode($var) { + return $this->code[$this->findIndex($var)]; + } + + /** + * Draws all chars thanks to $code. If $startBar is true, the line begins by a space. + * If $startBar is false, the line begins by a bar. + * + * @param resource $im + * @param string $code + * @param boolean $startBar + */ + protected function drawChar($im, $code, $startBar = true) { + $colors = array(BCGBarcode::COLOR_FG, BCGBarcode::COLOR_BG); + $currentColor = $startBar ? 0 : 1; + $c = strlen($code); + for ($i = 0; $i < $c; $i++) { + for ($j = 0; $j < intval($code[$i]) + 1; $j++) { + $this->drawSingleBar($im, $colors[$currentColor]); + $this->nextX(); + } + + $currentColor = ($currentColor + 1) % 2; + } + } + + /** + * Draws a Bar of $color depending of the resolution. + * + * @param resource $img + * @param int $color + */ + protected function drawSingleBar($im, $color) { + $this->drawFilledRectangle($im, $this->positionX, 0, $this->positionX, $this->thickness - 1, $color); + } + + /** + * Moving the pointer right to write a bar. + */ + protected function nextX() { + $this->positionX++; + } + + /** + * Method that saves FALSE into the checksumValue. This means no checksum + * but this method should be overriden when needed. + */ + protected function calculateChecksum() { + $this->checksumValue = false; + } + + /** + * Returns FALSE because there is no checksum. This method should be + * overriden to return correctly the checksum in string with checksumValue. + * + * @return string + */ + protected function processChecksum() { + return false; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGColor.php b/application/libraries/barcodegen/class/BCGColor.php new file mode 100755 index 000000000..5ece68db7 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGColor.php @@ -0,0 +1,154 @@ +r = intval($args[0]); + $this->g = intval($args[1]); + $this->b = intval($args[2]); + } elseif ($c === 1) { + if (is_string($args[0]) && strlen($args[0]) === 7 && $args[0][0] === '#') { // Hex Value in String + $this->r = intval(substr($args[0], 1, 2), 16); + $this->g = intval(substr($args[0], 3, 2), 16); + $this->b = intval(substr($args[0], 5, 2), 16); + } else { + if (is_string($args[0])) { + $args[0] = self::getColor($args[0]); + } + + $args[0] = intval($args[0]); + $this->r = ($args[0] & 0xff0000) >> 16; + $this->g = ($args[0] & 0x00ff00) >> 8; + $this->b = ($args[0] & 0x0000ff); + } + } else { + $this->r = $this->g = $this->b = 0; + } + } + + /** + * Sets the color transparent. + * + * @param bool $transparent + */ + public function setTransparent($transparent) { + $this->transparent = $transparent; + } + + /** + * Returns Red Color. + * + * @return int + */ + public function r() { + return $this->r; + } + + /** + * Returns Green Color. + * + * @return int + */ + public function g() { + return $this->g; + } + + /** + * Returns Blue Color. + * + * @return int + */ + public function b() { + return $this->b; + } + + /** + * Returns the int value for PHP color. + * + * @param resource $im + * @return int + */ + public function allocate(&$im) { + $allocated = imagecolorallocate($im, $this->r, $this->g, $this->b); + if ($this->transparent) { + return imagecolortransparent($im, $allocated); + } else { + return $allocated; + } + } + + /** + * Returns class of BCGColor depending of the string color. + * + * If the color doens't exist, it takes the default one. + * + * @param string $code + * @param string $default + */ + public static function getColor($code, $default = 'white') { + switch(strtolower($code)) { + case '': + case 'white': + return 0xffffff; + case 'black': + return 0x000000; + case 'maroon': + return 0x800000; + case 'red': + return 0xff0000; + case 'orange': + return 0xffa500; + case 'yellow': + return 0xffff00; + case 'olive': + return 0x808000; + case 'purple': + return 0x800080; + case 'fuchsia': + return 0xff00ff; + case 'lime': + return 0x00ff00; + case 'green': + return 0x008000; + case 'navy': + return 0x000080; + case 'blue': + return 0x0000ff; + case 'aqua': + return 0x00ffff; + case 'teal': + return 0x008080; + case 'silver': + return 0xc0c0c0; + case 'gray': + return 0x808080; + default: + return self::getColor($default, 'white'); + } + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGDrawException.php b/application/libraries/barcodegen/class/BCGDrawException.php new file mode 100755 index 000000000..8c85f8c2b --- /dev/null +++ b/application/libraries/barcodegen/class/BCGDrawException.php @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGDrawing.php b/application/libraries/barcodegen/class/BCGDrawing.php new file mode 100755 index 000000000..6766c1e41 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGDrawing.php @@ -0,0 +1,248 @@ +im = null; + $this->setFilename($filename); + $this->color = $color; + $this->dpi = null; + $this->rotateDegree = 0.0; + } + + /** + * Destructor. + */ + public function __destruct() { + $this->destroy(); + } + + /** + * Gets the filename. + * + * @return string + */ + public function getFilename() { + return $this->filename; + } + + /** + * Sets the filename. + * + * @param string $filaneme + */ + public function setFilename($filename) { + $this->filename = $filename; + } + + /** + * @return resource. + */ + public function get_im() { + return $this->im; + } + + /** + * Sets the image. + * + * @param resource $im + */ + public function set_im($im) { + $this->im = $im; + } + + /** + * Gets barcode for drawing. + * + * @return BCGBarcode + */ + public function getBarcode() { + return $this->barcode; + } + + /** + * Sets barcode for drawing. + * + * @param BCGBarcode $barcode + */ + public function setBarcode(BCGBarcode $barcode) { + $this->barcode = $barcode; + } + + /** + * Gets the DPI for supported filetype. + * + * @return float + */ + public function getDPI() { + return $this->dpi; + } + + /** + * Sets the DPI for supported filetype. + * + * @param float $dpi + */ + public function setDPI($dpi) { + $this->dpi = $dpi; + } + + /** + * Gets the rotation angle in degree clockwise. + * + * @return float + */ + public function getRotationAngle() { + return $this->rotateDegree; + } + + /** + * Sets the rotation angle in degree clockwise. + * + * @param float $degree + */ + public function setRotationAngle($degree) { + $this->rotateDegree = (float)$degree; + } + + /** + * Draws the barcode on the image $im. + */ + public function draw() { + $size = $this->barcode->getDimension(0, 0); + $this->w = max(1, $size[0]); + $this->h = max(1, $size[1]); + $this->init(); + $this->barcode->draw($this->im); + } + + /** + * Saves $im into the file (many format available). + * + * @param int $image_style + * @param int $quality + */ + public function finish($image_style = self::IMG_FORMAT_PNG, $quality = 100) { + $drawer = null; + + $im = $this->im; + if ($this->rotateDegree > 0.0) { + if (function_exists('imagerotate')) { + $im = imagerotate($this->im, 360 - $this->rotateDegree, $this->color->allocate($this->im)); + } else { + throw new BCGDrawException('The method imagerotate doesn\'t exist on your server. Do not use any rotation.'); + } + } + + if ($image_style === self::IMG_FORMAT_PNG) { + $drawer = new BCGDrawPNG($im); + $drawer->setFilename($this->filename); + $drawer->setDPI($this->dpi); + } elseif ($image_style === self::IMG_FORMAT_JPEG) { + $drawer = new BCGDrawJPG($im); + $drawer->setFilename($this->filename); + $drawer->setDPI($this->dpi); + $drawer->setQuality($quality); + } elseif ($image_style === self::IMG_FORMAT_GIF) { + // Some PHP versions have a bug if passing 2nd argument as null. + if ($this->filename === null || $this->filename === '') { + imagegif($im); + } else { + imagegif($im, $this->filename); + } + } elseif ($image_style === self::IMG_FORMAT_WBMP) { + imagewbmp($im, $this->filename); + } + + if ($drawer !== null) { + $drawer->draw(); + } + } + + /** + * Writes the Error on the picture. + * + * @param Exception $exception + */ + public function drawException($exception) { + $this->w = 1; + $this->h = 1; + $this->init(); + + // Is the image big enough? + $w = imagesx($this->im); + $h = imagesy($this->im); + + $text = 'Error: ' . $exception->getMessage(); + + $width = imagefontwidth(2) * strlen($text); + $height = imagefontheight(2); + if ($width > $w || $height > $h) { + $width = max($w, $width); + $height = max($h, $height); + + // We change the size of the image + $newimg = imagecreatetruecolor($width, $height); + imagefill($newimg, 0, 0, imagecolorat($this->im, 0, 0)); + imagecopy($newimg, $this->im, 0, 0, 0, 0, $w, $h); + $this->im = $newimg; + } + + $black = new BCGColor('black'); + imagestring($this->im, 2, 0, 0, $text, $black->allocate($this->im)); + } + + /** + * Free the memory of PHP (called also by destructor). + */ + public function destroy() { + @imagedestroy($this->im); + } + + /** + * Init Image and color background. + */ + private function init() { + if ($this->im === null) { + $this->im = imagecreatetruecolor($this->w, $this->h) + or die('Can\'t Initialize the GD Libraty'); + imagefilledrectangle($this->im, 0, 0, $this->w - 1, $this->h - 1, $this->color->allocate($this->im)); + } + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGFont.php b/application/libraries/barcodegen/class/BCGFont.php new file mode 100755 index 000000000..a2a8f2f19 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGFont.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGFontFile.php b/application/libraries/barcodegen/class/BCGFontFile.php new file mode 100755 index 000000000..756046686 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGFontFile.php @@ -0,0 +1,209 @@ +path = $fontPath; + $this->size = $size; + $this->foregroundColor = new BCGColor('black'); + $this->setRotationAngle(0); + $this->setBoxFix(self::PHP_BOX_FIX); + } + + /** + * Gets the text associated to the font. + * + * @return string + */ + public function getText() { + return $this->text; + } + + /** + * Sets the text associated to the font. + * + * @param string text + */ + public function setText($text) { + $this->text = $text; + $this->box = null; + } + + /** + * Gets the rotation in degree. + * + * @return int + */ + public function getRotationAngle() { + return (360 - $this->rotationAngle) % 360; + } + + /** + * Sets the rotation in degree. + * + * @param int + */ + public function setRotationAngle($rotationAngle) { + $this->rotationAngle = (int)$rotationAngle; + if ($this->rotationAngle !== 90 && $this->rotationAngle !== 180 && $this->rotationAngle !== 270) { + $this->rotationAngle = 0; + } + + $this->rotationAngle = (360 - $this->rotationAngle) % 360; + + $this->box = null; + } + + /** + * Gets the background color. + * + * @return BCGColor + */ + public function getBackgroundColor() { + } + + /** + * Sets the background color. + * + * @param BCGColor $backgroundColor + */ + public function setBackgroundColor($backgroundColor) { + } + + /** + * Gets the foreground color. + * + * @return BCGColor + */ + public function getForegroundColor() { + return $this->foregroundColor; + } + + /** + * Sets the foreground color. + * + * @param BCGColor $foregroundColor + */ + public function setForegroundColor($foregroundColor) { + $this->foregroundColor = $foregroundColor; + } + + /** + * Gets the box fix information. + * + * @return int + */ + public function getBoxFix() { + return $this->boxFix; + } + + /** + * Sets the box fix information. + * + * @param int $value + */ + public function setBoxFix($value) { + $this->boxFix = intval($value); + } + + /** + * Returns the width and height that the text takes to be written. + * + * @return int[] + */ + public function getDimension() { + $w = 0.0; + $h = 0.0; + $box = $this->getBox(); + + if ($box !== null) { + $minX = min(array($box[0], $box[2], $box[4], $box[6])); + $maxX = max(array($box[0], $box[2], $box[4], $box[6])); + $minY = min(array($box[1], $box[3], $box[5], $box[7])); + $maxY = max(array($box[1], $box[3], $box[5], $box[7])); + + $w = $maxX - $minX; + $h = $maxY - $minY; + } + + $rotationAngle = $this->getRotationAngle(); + if ($rotationAngle === 90 || $rotationAngle === 270) { + return array($h + self::PHP_BOX_FIX, $w); + } else { + return array($w + self::PHP_BOX_FIX, $h); + } + } + + /** + * Draws the text on the image at a specific position. + * $x and $y represent the left bottom corner. + * + * @param resource $im + * @param int $x + * @param int $y + */ + public function draw($im, $x, $y) { + $drawingPosition = $this->getDrawingPosition($x, $y); + imagettftext($im, $this->size, $this->rotationAngle, $drawingPosition[0], $drawingPosition[1], $this->foregroundColor->allocate($im), $this->path, $this->text); + } + + private function getDrawingPosition($x, $y) { + $dimension = $this->getDimension(); + $box = $this->getBox(); + $rotationAngle = $this->getRotationAngle(); + if ($rotationAngle === 0) { + $y += abs(min($box[5], $box[7])); + } elseif ($rotationAngle === 90) { + $x += abs(min($box[5], $box[7])); + $y += $dimension[1]; + } elseif ($rotationAngle === 180) { + $x += $dimension[0]; + $y += abs(max($box[1], $box[3])); + } elseif ($rotationAngle === 270) { + $x += abs(max($box[1], $box[3])); + } + + return array($x, $y); + } + + private function getBox() { + if ($this->box === null) { + $gd = imagecreate(1, 1); + $this->box = imagettftext($gd, $this->size, 0, 0, 0, 0, $this->path, $this->text); + } + + return $this->box; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGFontPhp.php b/application/libraries/barcodegen/class/BCGFontPhp.php new file mode 100755 index 000000000..e556e49aa --- /dev/null +++ b/application/libraries/barcodegen/class/BCGFontPhp.php @@ -0,0 +1,153 @@ +font = max(0, intval($font)); + $this->backgroundColor = new BCGColor('white'); + $this->foregroundColor = new BCGColor('black'); + $this->setRotationAngle(0); + } + + /** + * Gets the text associated to the font. + * + * @return string + */ + public function getText() { + return $this->text; + } + + /** + * Sets the text associated to the font. + * + * @param string text + */ + public function setText($text) { + $this->text = $text; + } + + /** + * Gets the rotation in degree. + * + * @return int + */ + public function getRotationAngle() { + return (360 - $this->rotationAngle) % 360; + } + + /** + * Sets the rotation in degree. + * + * @param int + */ + public function setRotationAngle($rotationAngle) { + $this->rotationAngle = (int)$rotationAngle; + if ($this->rotationAngle !== 90 && $this->rotationAngle !== 180 && $this->rotationAngle !== 270) { + $this->rotationAngle = 0; + } + + $this->rotationAngle = (360 - $this->rotationAngle) % 360; + } + + /** + * Gets the background color. + * + * @return BCGColor + */ + public function getBackgroundColor() { + return $this->backgroundColor; + } + + /** + * Sets the background color. + * + * @param BCGColor $backgroundColor + */ + public function setBackgroundColor($backgroundColor) { + $this->backgroundColor = $backgroundColor; + } + + /** + * Gets the foreground color. + * + * @return BCGColor + */ + public function getForegroundColor() { + return $this->foregroundColor; + } + + /** + * Sets the foreground color. + * + * @param BCGColor $foregroundColor + */ + public function setForegroundColor($foregroundColor) { + $this->foregroundColor = $foregroundColor; + } + + /** + * Returns the width and height that the text takes to be written. + * + * @return int[] + */ + public function getDimension() { + $w = imagefontwidth($this->font) * strlen($this->text); + $h = imagefontheight($this->font); + + $rotationAngle = $this->getRotationAngle(); + if ($rotationAngle === 90 || $rotationAngle === 270) { + return array($h, $w); + } else { + return array($w, $h); + } + } + + /** + * Draws the text on the image at a specific position. + * $x and $y represent the left bottom corner. + * + * @param resource $im + * @param int $x + * @param int $y + */ + public function draw($im, $x, $y) { + if ($this->getRotationAngle() !== 0) { + if (!function_exists('imagerotate')) { + throw new BCGDrawException('The method imagerotate doesn\'t exist on your server. Do not use any rotation.'); + } + + $w = imagefontwidth($this->font) * strlen($this->text); + $h = imagefontheight($this->font); + $gd = imagecreatetruecolor($w, $h); + imagefilledrectangle($gd, 0, 0, $w - 1, $h - 1, $this->backgroundColor->allocate($gd)); + imagestring($gd, $this->font, 0, 0, $this->text, $this->foregroundColor->allocate($gd)); + $gd = imagerotate($gd, $this->rotationAngle, 0); + imagecopy($im, $gd, $x, $y, 0, 0, imagesx($gd), imagesy($gd)); + } else { + imagestring($im, $this->font, $x, $y, $this->text, $this->foregroundColor->allocate($im)); + } + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGLabel.php b/application/libraries/barcodegen/class/BCGLabel.php new file mode 100755 index 000000000..1a378001e --- /dev/null +++ b/application/libraries/barcodegen/class/BCGLabel.php @@ -0,0 +1,320 @@ +setFont($font); + $this->setText($text); + $this->setPosition($position); + $this->setAlignment($alignment); + $this->setSpacing(4); + $this->setOffset(0); + $this->setRotationAngle(0); + $this->setBackgroundColor(new BCGColor('white')); + $this->setForegroundColor(new BCGColor('black')); + } + + /** + * Gets the text. + * + * @return string + */ + public function getText() { + return $this->font->getText(); + } + + /** + * Sets the text. + * + * @param string $text + */ + public function setText($text) { + $this->text = $text; + $this->font->setText($this->text); + } + + /** + * Gets the font. + * + * @return BCGFont + */ + public function getFont() { + return $this->font; + } + + /** + * Sets the font. + * + * @param BCGFont $font + */ + public function setFont($font) { + if ($font === null) { + throw new BCGArgumentException('Font cannot be null.', 'font'); + } + + $this->font = clone $font; + $this->font->setText($this->text); + $this->font->setRotationAngle($this->rotationAngle); + $this->font->setBackgroundColor($this->backgroundColor); + $this->font->setForegroundColor($this->foregroundColor); + } + + /** + * Gets the text position for drawing. + * + * @return int + */ + public function getPosition() { + return $this->position; + } + + /** + * Sets the text position for drawing. + * + * @param int $position + */ + public function setPosition($position) { + $position = intval($position); + if ($position !== self::POSITION_TOP && $position !== self::POSITION_RIGHT && $position !== self::POSITION_BOTTOM && $position !== self::POSITION_LEFT) { + throw new BCGArgumentException('The text position must be one of a valid constant.', 'position'); + } + + $this->position = $position; + } + + /** + * Gets the text alignment for drawing. + * + * @return int + */ + public function getAlignment() { + return $this->alignment; + } + + /** + * Sets the text alignment for drawing. + * + * @param int $alignment + */ + public function setAlignment($alignment) { + $alignment = intval($alignment); + if ($alignment !== self::ALIGN_LEFT && $alignment !== self::ALIGN_TOP && $alignment !== self::ALIGN_CENTER && $alignment !== self::ALIGN_RIGHT && $alignment !== self::ALIGN_BOTTOM) { + throw new BCGArgumentException('The text alignment must be one of a valid constant.', 'alignment'); + } + + $this->alignment = $alignment; + } + + /** + * Gets the offset. + * + * @return int + */ + public function getOffset() { + return $this->offset; + } + + /** + * Sets the offset. + * + * @param int $offset + */ + public function setOffset($offset) { + $this->offset = intval($offset); + } + + /** + * Gets the spacing. + * + * @return int + */ + public function getSpacing() { + return $this->spacing; + } + + /** + * Sets the spacing. + * + * @param int $spacing + */ + public function setSpacing($spacing) { + $this->spacing = max(0, intval($spacing)); + } + + /** + * Gets the rotation angle in degree. + * + * @return int + */ + public function getRotationAngle() { + return $this->font->getRotationAngle(); + } + + /** + * Sets the rotation angle in degree. + * + * @param int $rotationAngle + */ + public function setRotationAngle($rotationAngle) { + $this->rotationAngle = intval($rotationAngle); + $this->font->setRotationAngle($this->rotationAngle); + } + + /** + * Gets the background color in case of rotation. + * + * @return BCGColor + */ + public function getBackgroundColor() { + return $this->backgroundColor; + } + + /** + * Sets the background color in case of rotation. + * + * @param BCGColor $backgroundColor + */ + public /*internal*/ function setBackgroundColor($backgroundColor) { + $this->backgroundColor = $backgroundColor; + $this->font->setBackgroundColor($this->backgroundColor); + } + + /** + * Gets the foreground color. + * + * @return BCGColor + */ + public function getForegroundColor() { + return $this->font->getForegroundColor(); + } + + /** + * Sets the foreground color. + * + * @param BCGColor $foregroundColor + */ + public function setForegroundColor($foregroundColor) { + $this->foregroundColor = $foregroundColor; + $this->font->setForegroundColor($this->foregroundColor); + } + + /** + * Gets the dimension taken by the label, including the spacing and offset. + * [0]: width + * [1]: height + * + * @return int[] + */ + public function getDimension() { + $w = 0; + $h = 0; + + $dimension = $this->font->getDimension(); + $w = $dimension[0]; + $h = $dimension[1]; + + if ($this->position === self::POSITION_TOP || $this->position === self::POSITION_BOTTOM) { + $h += $this->spacing; + $w += max(0, $this->offset); + } else { + $w += $this->spacing; + $h += max(0, $this->offset); + } + + return array($w, $h); + } + + /** + * Draws the text. + * The coordinate passed are the positions of the barcode. + * $x1 and $y1 represent the top left corner. + * $x2 and $y2 represent the bottom right corner. + * + * @param resource $im + * @param int $x1 + * @param int $y1 + * @param int $x2 + * @param int $y2 + */ + public /*internal*/ function draw($im, $x1, $y1, $x2, $y2) { + $x = 0; + $y = 0; + + $fontDimension = $this->font->getDimension(); + + if ($this->position === self::POSITION_TOP || $this->position === self::POSITION_BOTTOM) { + if ($this->position === self::POSITION_TOP) { + $y = $y1 - $this->spacing - $fontDimension[1]; + } elseif ($this->position === self::POSITION_BOTTOM) { + $y = $y2 + $this->spacing; + } + + if ($this->alignment === self::ALIGN_CENTER) { + $x = ($x2 - $x1) / 2 + $x1 - $fontDimension[0] / 2 + $this->offset; + } elseif ($this->alignment === self::ALIGN_LEFT) { + $x = $x1 + $this->offset; + } else { + $x = $x2 + $this->offset - $fontDimension[0]; + } + } else { + if ($this->position === self::POSITION_LEFT) { + $x = $x1 - $this->spacing - $fontDimension[0]; + } elseif ($this->position === self::POSITION_RIGHT) { + $x = $x2 + $this->spacing; + } + + if ($this->alignment === self::ALIGN_CENTER) { + $y = ($y2 - $y1) / 2 + $y1 - $fontDimension[1] / 2 + $this->offset; + } elseif ($this->alignment === self::ALIGN_TOP) { + $y = $y1 + $this->offset; + } else { + $y = $y2 + $this->offset - $fontDimension[1]; + } + } + + $this->font->setText($this->text); + $this->font->draw($im, $x, $y); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGParseException.php b/application/libraries/barcodegen/class/BCGParseException.php new file mode 100755 index 000000000..0582d0bca --- /dev/null +++ b/application/libraries/barcodegen/class/BCGParseException.php @@ -0,0 +1,25 @@ +barcode = $barcode; + parent::__construct($message, 10000); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGcodabar.barcode.php b/application/libraries/barcodegen/class/BCGcodabar.barcode.php new file mode 100755 index 000000000..9616fb905 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGcodabar.barcode.php @@ -0,0 +1,122 @@ +keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '$', ':', '/', '.', '+', 'A', 'B', 'C', 'D'); + $this->code = array( // 0 added to add an extra space + '00000110', /* 0 */ + '00001100', /* 1 */ + '00010010', /* 2 */ + '11000000', /* 3 */ + '00100100', /* 4 */ + '10000100', /* 5 */ + '01000010', /* 6 */ + '01001000', /* 7 */ + '01100000', /* 8 */ + '10010000', /* 9 */ + '00011000', /* - */ + '00110000', /* $ */ + '10001010', /* : */ + '10100010', /* / */ + '10101000', /* . */ + '00111110', /* + */ + '00110100', /* A */ + '01010010', /* B */ + '00010110', /* C */ + '00011100' /* D */ + ); + } + + /** + * Parses the text before displaying it. + * + * @param mixed $text + */ + public function parse($text) { + parent::parse(strtoupper($text)); // Only Capital Letters are Allowed + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + $c = strlen($this->text); + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, $this->findCode($this->text[$i]), true); + } + + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $textLength = 0; + $c = strlen($this->text); + for ($i = 0; $i < $c; $i++) { + $index = $this->findIndex($this->text[$i]); + if ($index !== false) { + $textLength += 8; + $textLength += substr_count($this->code[$index], '1'); + } + } + + $w += $textLength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Validates the input. + */ + protected function validate() { + $c = strlen($this->text); + if ($c === 0) { + throw new BCGParseException('codabar', 'No data has been entered.'); + } + + // Checking if all chars are allowed + for ($i = 0; $i < $c; $i++) { + if (array_search($this->text[$i], $this->keys) === false) { + throw new BCGParseException('codabar', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } + } + + // Must start by A, B, C or D + if ($c == 0 || ($this->text[0] !== 'A' && $this->text[0] !== 'B' && $this->text[0] !== 'C' && $this->text[0] !== 'D')) { + throw new BCGParseException('codabar', 'The text must start by the character A, B, C, or D.'); + } + + // Must end by A, B, C or D + $c2 = $c - 1; + if ($c2 === 0 || ($this->text[$c2] !== 'A' && $this->text[$c2] !== 'B' && $this->text[$c2] !== 'C' && $this->text[$c2] !== 'D')) { + throw new BCGParseException('codabar', 'The text must end by the character A, B, C, or D.'); + } + + parent::validate(); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGcode11.barcode.php b/application/libraries/barcodegen/class/BCGcode11.barcode.php new file mode 100755 index 000000000..2a21e9b32 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGcode11.barcode.php @@ -0,0 +1,185 @@ +keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-'); + $this->code = array( // 0 added to add an extra space + '000010', /* 0 */ + '100010', /* 1 */ + '010010', /* 2 */ + '110000', /* 3 */ + '001010', /* 4 */ + '101000', /* 5 */ + '011000', /* 6 */ + '000110', /* 7 */ + '100100', /* 8 */ + '100000', /* 9 */ + '001000' /* - */ + ); + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + // Starting Code + $this->drawChar($im, '001100', true); + + // Chars + $c = strlen($this->text); + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, $this->findCode($this->text[$i]), true); + } + + // Checksum + $this->calculateChecksum(); + $c = count($this->checksumValue); + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, $this->code[$this->checksumValue[$i]], true); + } + + // Ending Code + $this->drawChar($im, '00110', true); + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $startlength = 8; + + $textlength = 0; + $c = strlen($this->text); + for ($i = 0; $i < $c; $i++) { + $textlength += $this->getIndexLength($this->findIndex($this->text[$i])); + } + + $checksumlength = 0; + $this->calculateChecksum(); + $c = count($this->checksumValue); + for ($i = 0; $i < $c; $i++) { + $checksumlength += $this->getIndexLength($this->checksumValue[$i]); + } + + $endlength = 7; + + $w += $startlength + $textlength + $checksumlength + $endlength; + $h += $this->thickness; + + return parent::getDimension($w, $h); + } + + /** + * Validates the input. + */ + protected function validate() { + $c = strlen($this->text); + if ($c === 0) { + throw new BCGParseException('code11', 'No data has been entered.'); + } + + // Checking if all chars are allowed + for ($i = 0; $i < $c; $i++) { + if (array_search($this->text[$i], $this->keys) === false) { + throw new BCGParseException('code11', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } + } + + parent::validate(); + } + + /** + * Overloaded method to calculate checksum. + */ + protected function calculateChecksum() { + // Checksum + // First CheckSUM "C" + // The "C" checksum character is the modulo 11 remainder of the sum of the weighted + // value of the data characters. The weighting value starts at "1" for the right-most + // data character, 2 for the second to last, 3 for the third-to-last, and so on up to 20. + // After 10, the sequence wraps around back to 1. + + // Second CheckSUM "K" + // Same as CheckSUM "C" but we count the CheckSum "C" at the end + // After 9, the sequence wraps around back to 1. + $sequence_multiplier = array(10, 9); + $temp_text = $this->text; + $this->checksumValue = array(); + for ($z = 0; $z < 2; $z++) { + $c = strlen($temp_text); + + // We don't display the K CheckSum if the original text had a length less than 10 + if ($c <= 10 && $z === 1) { + break; + } + + $checksum = 0; + for ($i = $c, $j = 0; $i > 0; $i--, $j++) { + $multiplier = $i % $sequence_multiplier[$z]; + if ($multiplier === 0) { + $multiplier = $sequence_multiplier[$z]; + } + + $checksum += $this->findIndex($temp_text[$j]) * $multiplier; + } + + $this->checksumValue[$z] = $checksum % 11; + $temp_text .= $this->keys[$this->checksumValue[$z]]; + } + } + + /** + * Overloaded method to display the checksum. + */ + protected function processChecksum() { + if ($this->checksumValue === false) { // Calculate the checksum only once + $this->calculateChecksum(); + } + + if ($this->checksumValue !== false) { + $ret = ''; + $c = count($this->checksumValue); + for ($i = 0; $i < $c; $i++) { + $ret .= $this->keys[$this->checksumValue[$i]]; + } + + return $ret; + } + + return false; + } + + private function getIndexLength($index) { + $length = 0; + if ($index !== false) { + $length += 6; + $length += substr_count($this->code[$index], '1'); + } + + return $length; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGcode128.barcode.php b/application/libraries/barcodegen/class/BCGcode128.barcode.php new file mode 100755 index 000000000..da89080c4 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGcode128.barcode.php @@ -0,0 +1,885 @@ +keysA = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_'; + for ($i = 0; $i < 32; $i++) { + $this->keysA .= chr($i); + } + + /* CODE 128 B */ + $this->keysB = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~' . chr(127); + + /* CODE 128 C */ + $this->keysC = '0123456789'; + + $this->code = array( + '101111', /* 00 */ + '111011', /* 01 */ + '111110', /* 02 */ + '010112', /* 03 */ + '010211', /* 04 */ + '020111', /* 05 */ + '011102', /* 06 */ + '011201', /* 07 */ + '021101', /* 08 */ + '110102', /* 09 */ + '110201', /* 10 */ + '120101', /* 11 */ + '001121', /* 12 */ + '011021', /* 13 */ + '011120', /* 14 */ + '002111', /* 15 */ + '012011', /* 16 */ + '012110', /* 17 */ + '112100', /* 18 */ + '110021', /* 19 */ + '110120', /* 20 */ + '102101', /* 21 */ + '112001', /* 22 */ + '201020', /* 23 */ + '200111', /* 24 */ + '210011', /* 25 */ + '210110', /* 26 */ + '201101', /* 27 */ + '211001', /* 28 */ + '211100', /* 29 */ + '101012', /* 30 */ + '101210', /* 31 */ + '121010', /* 32 */ + '000212', /* 33 */ + '020012', /* 34 */ + '020210', /* 35 */ + '001202', /* 36 */ + '021002', /* 37 */ + '021200', /* 38 */ + '100202', /* 39 */ + '120002', /* 40 */ + '120200', /* 41 */ + '001022', /* 42 */ + '001220', /* 43 */ + '021020', /* 44 */ + '002012', /* 45 */ + '002210', /* 46 */ + '022010', /* 47 */ + '202010', /* 48 */ + '100220', /* 49 */ + '120020', /* 50 */ + '102002', /* 51 */ + '102200', /* 52 */ + '102020', /* 53 */ + '200012', /* 54 */ + '200210', /* 55 */ + '220010', /* 56 */ + '201002', /* 57 */ + '201200', /* 58 */ + '221000', /* 59 */ + '203000', /* 60 */ + '110300', /* 61 */ + '320000', /* 62 */ + '000113', /* 63 */ + '000311', /* 64 */ + '010013', /* 65 */ + '010310', /* 66 */ + '030011', /* 67 */ + '030110', /* 68 */ + '001103', /* 69 */ + '001301', /* 70 */ + '011003', /* 71 */ + '011300', /* 72 */ + '031001', /* 73 */ + '031100', /* 74 */ + '130100', /* 75 */ + '110003', /* 76 */ + '302000', /* 77 */ + '130001', /* 78 */ + '023000', /* 79 */ + '000131', /* 80 */ + '010031', /* 81 */ + '010130', /* 82 */ + '003101', /* 83 */ + '013001', /* 84 */ + '013100', /* 85 */ + '300101', /* 86 */ + '310001', /* 87 */ + '310100', /* 88 */ + '101030', /* 89 */ + '103010', /* 90 */ + '301010', /* 91 */ + '000032', /* 92 */ + '000230', /* 93 */ + '020030', /* 94 */ + '003002', /* 95 */ + '003200', /* 96 */ + '300002', /* 97 */ + '300200', /* 98 */ + '002030', /* 99 */ + '003020', /* 100*/ + '200030', /* 101*/ + '300020', /* 102*/ + '100301', /* 103*/ + '100103', /* 104*/ + '100121', /* 105*/ + '122000' /*STOP*/ + ); + $this->setStart($start); + $this->setTilde(true); + + // Latches and Shifts + $this->latch = array( + array(null, self::KEYA_CODEB, self::KEYA_CODEC), + array(self::KEYB_CODEA, null, self::KEYB_CODEC), + array(self::KEYC_CODEA, self::KEYC_CODEB, null) + ); + $this->shift = array( + array(null, self::KEYA_SHIFT), + array(self::KEYB_SHIFT, null) + ); + $this->fnc = array( + array(self::KEYA_FNC1, self::KEYA_FNC2, self::KEYA_FNC3, self::KEYA_FNC4), + array(self::KEYB_FNC1, self::KEYB_FNC2, self::KEYB_FNC3, self::KEYB_FNC4), + array(self::KEYC_FNC1, null, null, null) + ); + + // Method available + $this->METHOD = array(CODE128_A => 'A', CODE128_B => 'B', CODE128_C => 'C'); + } + + /** + * Specifies the start code. Can be 'A', 'B', 'C', or null + * - Table A: Capitals + ASCII 0-31 + punct + * - Table B: Capitals + LowerCase + punct + * - Table C: Numbers + * + * If null is specified, the table selection is automatically made. + * The default is null. + * + * @param string $table + */ + public function setStart($table) { + if ($table !== 'A' && $table !== 'B' && $table !== 'C' && $table !== null) { + throw new BCGArgumentException('The starting table must be A, B, C or null.', 'table'); + } + + $this->starting_text = $table; + } + + /** + * Gets the tilde. + * + * @return bool + */ + public function getTilde() { + return $this->tilde; + } + + /** + * Accepts tilde to be process as a special character. + * If true, you can do this: + * - ~~ : to make ONE tilde + * - ~Fx : to insert FCNx. x is equal from 1 to 4. + * + * @param boolean $accept + */ + public function setTilde($accept) { + $this->tilde = (bool)$accept; + } + + /** + * Parses the text before displaying it. + * + * @param mixed $text + */ + public function parse($text) { + $this->setStartFromText($text); + + $this->text = ''; + $seq = ''; + + $currentMode = $this->starting_text; + + // Here, we format correctly what the user gives. + if (!is_array($text)) { + $seq = $this->getSequence($text, $currentMode); + $this->text = $text; + } else { + // This loop checks for UnknownText AND raises an exception if a character is not allowed in a table + reset($text); + while (list($key1, $val1) = each($text)) { // We take each value + if (!is_array($val1)) { // This is not a table + if (is_string($val1)) { // If it's a string, parse as unknown + $seq .= $this->getSequence($val1, $currentMode); + $this->text .= $val1; + } else { + // it's the case of "array(ENCODING, 'text')" + // We got ENCODING in $val1, calling 'each' again will get 'text' in $val2 + list($key2, $val2) = each($text); + $seq .= $this->{'setParse' . $this->METHOD[$val1]}($val2, $currentMode); + $this->text .= $val2; + } + } else { // The method is specified + // $val1[0] = ENCODING + // $val1[1] = 'text' + $value = isset($val1[1]) ? $val1[1] : ''; // If data available + $seq .= $this->{'setParse' . $this->METHOD[$val1[0]]}($value, $currentMode); + $this->text .= $value; + } + } + } + + if ($seq !== '') { + $bitstream = $this->createBinaryStream($this->text, $seq); + $this->setData($bitstream); + } + + $this->addDefaultLabel(); + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + $c = count($this->data); + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, $this->data[$i], true); + } + + $this->drawChar($im, '1', true); + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + // Contains start + text + checksum + stop + $textlength = count($this->data) * 11; + $endlength = 2; // + final bar + + $w += $textlength + $endlength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Validates the input. + */ + protected function validate() { + $c = count($this->data); + if ($c === 0) { + throw new BCGParseException('code128', 'No data has been entered.'); + } + + parent::validate(); + } + + /** + * Overloaded method to calculate checksum. + */ + protected function calculateChecksum() { + // Checksum + // First Char (START) + // + Starting with the first data character following the start character, + // take the value of the character (between 0 and 102, inclusive) multiply + // it by its character position (1) and add that to the running checksum. + // Modulated 103 + $this->checksumValue = $this->indcheck[0]; + $c = count($this->indcheck); + for ($i = 1; $i < $c; $i++) { + $this->checksumValue += $this->indcheck[$i] * $i; + } + + $this->checksumValue = $this->checksumValue % 103; + } + + /** + * Overloaded method to display the checksum. + */ + protected function processChecksum() { + if ($this->checksumValue === false) { // Calculate the checksum only once + $this->calculateChecksum(); + } + + if ($this->checksumValue !== false) { + if ($this->lastTable === 'C') { + return (string)$this->checksumValue; + } + + return $this->{'keys' . $this->lastTable}[$this->checksumValue]; + } + + return false; + } + + /** + * Specifies the starting_text table if none has been specified earlier. + * + * @param string $text + */ + private function setStartFromText($text) { + if ($this->starting_text === null) { + // If we have a forced table at the start, we get that one... + if (is_array($text)) { + if (is_array($text[0])) { + // Code like array(array(ENCODING, '')) + $this->starting_text = $this->METHOD[$text[0][0]]; + return; + } else { + if (is_string($text[0])) { + // Code like array('test') (Automatic text) + $text = $text[0]; + } else { + // Code like array(ENCODING, '') + $this->starting_text = $this->METHOD[$text[0]]; + return; + } + } + } + + // At this point, we had an "automatic" table selection... + // If we can get at least 4 numbers, go in C; otherwise go in B. + $tmp = preg_quote($this->keysC, '/'); + $length = strlen($text); + if ($length >= 4 && preg_match('/[' . $tmp . ']/', substr($text, 0, 4))) { + $this->starting_text = 'C'; + } else { + if ($length > 0 && strpos($this->keysB, $text[0]) !== false) { + $this->starting_text = 'B'; + } else { + $this->starting_text = 'A'; + } + } + } + } + + /** + * Extracts the ~ value from the $text at the $pos. + * If the tilde is not ~~, ~F1, ~F2, ~F3, ~F4; an error is raised. + * + * @param string $text + * @param int $pos + * @return string + */ + private static function extractTilde($text, $pos) { + if ($text[$pos] === '~') { + if (isset($text[$pos + 1])) { + // Do we have a tilde? + if ($text[$pos + 1] === '~') { + return '~~'; + } elseif ($text[$pos + 1] === 'F') { + // Do we have a number after? + if (isset($text[$pos + 2])) { + $v = intval($text[$pos + 2]); + if ($v >= 1 && $v <= 4) { + return '~F' . $v; + } else { + throw new BCGParseException('code128', 'Bad ~F. You must provide a number from 1 to 4.'); + } + } else { + throw new BCGParseException('code128', 'Bad ~F. You must provide a number from 1 to 4.'); + } + } else { + throw new BCGParseException('code128', 'Wrong code after the ~.'); + } + } else { + throw new BCGParseException('code128', 'Wrong code after the ~.'); + } + } else { + throw new BCGParseException('code128', 'There is no ~ at this location.'); + } + } + + /** + * Gets the "dotted" sequence for the $text based on the $currentMode. + * There is also a check if we use the special tilde ~ + * + * @param string $text + * @param string $currentMode + * @return string + */ + private function getSequenceParsed($text, $currentMode) { + if ($this->tilde) { + $sequence = ''; + $previousPos = 0; + while (($pos = strpos($text, '~', $previousPos)) !== false) { + $tildeData = self::extractTilde($text, $pos); + + $simpleTilde = ($tildeData === '~~'); + if ($simpleTilde && $currentMode !== 'B') { + throw new BCGParseException('code128', 'The Table ' . $currentMode . ' doesn\'t contain the character ~.'); + } + + // At this point, we know we have ~Fx + if ($tildeData !== '~F1' && $currentMode === 'C') { + // The mode C doesn't support ~F2, ~F3, ~F4 + throw new BCGParseException('code128', 'The Table C doesn\'t contain the function ' . $tildeData . '.'); + } + + $length = $pos - $previousPos; + if ($currentMode === 'C') { + if ($length % 2 === 1) { + throw new BCGParseException('code128', 'The text "' . $text . '" must have an even number of character to be encoded in Table C.'); + } + } + + $sequence .= str_repeat('.', $length); + $sequence .= '.'; + $sequence .= (!$simpleTilde) ? 'F' : ''; + $previousPos = $pos + strlen($tildeData); + } + + // Flushing + $length = strlen($text) - $previousPos; + if ($currentMode === 'C') { + if ($length % 2 === 1) { + throw new BCGParseException('code128', 'The text "' . $text . '" must have an even number of character to be encoded in Table C.'); + } + } + + $sequence .= str_repeat('.', $length); + + return $sequence; + } else { + return str_repeat('.', strlen($text)); + } + } + + /** + * Parses the text and returns the appropriate sequence for the Table A. + * + * @param string $text + * @param string $currentMode + * @return string + */ + private function setParseA($text, &$currentMode) { + $tmp = preg_quote($this->keysA, '/'); + + // If we accept the ~ for special character, we must allow it. + if ($this->tilde) { + $tmp .= '~'; + } + + $match = array(); + if (preg_match('/[^' . $tmp . ']/', $text, $match) === 1) { + // We found something not allowed + throw new BCGParseException('code128', 'The text "' . $text . '" can\'t be parsed with the Table A. The character "' . $match[0] . '" is not allowed.'); + } else { + $latch = ($currentMode === 'A') ? '' : '0'; + $currentMode = 'A'; + + return $latch . $this->getSequenceParsed($text, $currentMode); + } + } + + /** + * Parses the text and returns the appropriate sequence for the Table B. + * + * @param string $text + * @param string $currentMode + * @return string + */ + private function setParseB($text, &$currentMode) { + $tmp = preg_quote($this->keysB, '/'); + + $match = array(); + if (preg_match('/[^' . $tmp . ']/', $text, $match) === 1) { + // We found something not allowed + throw new BCGParseException('code128', 'The text "' . $text . '" can\'t be parsed with the Table B. The character "' . $match[0] . '" is not allowed.'); + } else { + $latch = ($currentMode === 'B') ? '' : '1'; + $currentMode = 'B'; + + return $latch . $this->getSequenceParsed($text, $currentMode); + } + } + + /** + * Parses the text and returns the appropriate sequence for the Table C. + * + * @param string $text + * @param string $currentMode + * @return string + */ + private function setParseC($text, &$currentMode) { + $tmp = preg_quote($this->keysC, '/'); + + // If we accept the ~ for special character, we must allow it. + if ($this->tilde) { + $tmp .= '~F'; + } + + $match = array(); + if (preg_match('/[^' . $tmp . ']/', $text, $match) === 1) { + // We found something not allowed + throw new BCGParseException('code128', 'The text "' . $text . '" can\'t be parsed with the Table C. The character "' . $match[0] . '" is not allowed.'); + } else { + $latch = ($currentMode === 'C') ? '' : '2'; + $currentMode = 'C'; + + return $latch . $this->getSequenceParsed($text, $currentMode); + } + } + + /** + * Depending on the $text, it will return the correct + * sequence to encode the text. + * + * @param string $text + * @param string $starting_text + * @return string + */ + private function getSequence($text, &$starting_text) { + $e = 10000; + $latLen = array( + array(0, 1, 1), + array(1, 0, 1), + array(1, 1, 0) + ); + $shftLen = array( + array($e, 1, $e), + array(1, $e, $e), + array($e, $e, $e) + ); + $charSiz = array(2, 2, 1); + + $startA = $e; + $startB = $e; + $startC = $e; + if ($starting_text === 'A') { $startA = 0; } + if ($starting_text === 'B') { $startB = 0; } + if ($starting_text === 'C') { $startC = 0; } + + $curLen = array($startA, $startB, $startC); + $curSeq = array(null, null, null); + + $nextNumber = false; + + $x = 0; + $xLen = strlen($text); + for ($x = 0; $x < $xLen; $x++) { + $input = $text[$x]; + + // 1. + for ($i = 0; $i < 3; $i++) { + for ($j = 0; $j < 3; $j++) { + if (($curLen[$i] + $latLen[$i][$j]) < $curLen[$j]) { + $curLen[$j] = $curLen[$i] + $latLen[$i][$j]; + $curSeq[$j] = $curSeq[$i] . $j; + } + } + } + + // 2. + $nxtLen = array($e, $e, $e); + $nxtSeq = array(); + + // 3. + $flag = false; + $posArray = array(); + + // Special case, we do have a tilde and we process them + if ($this->tilde && $input === '~') { + $tildeData = self::extractTilde($text, $x); + + if ($tildeData === '~~') { + // We simply skip a tilde + $posArray[] = 1; + $x++; + } elseif (substr($tildeData, 0, 2) === '~F') { + $v = intval($tildeData[2]); + $posArray[] = 0; + $posArray[] = 1; + if ($v === 1) { + $posArray[] = 2; + } + + $x += 2; + $flag = true; + } + } else { + $pos = strpos($this->keysA, $input); + if ($pos !== false) { + $posArray[] = 0; + } + + $pos = strpos($this->keysB, $input); + if ($pos !== false) { + $posArray[] = 1; + } + + // Do we have the next char a number?? OR a ~F1 + $pos = strpos($this->keysC, $input); + if ($nextNumber || ($pos !== false && isset($text[$x + 1]) && strpos($this->keysC, $text[$x + 1]) !== false)) { + $nextNumber = !$nextNumber; + $posArray[] = 2; + } + } + + $c = count($posArray); + for ($i = 0; $i < $c; $i++) { + if (($curLen[$posArray[$i]] + $charSiz[$posArray[$i]]) < $nxtLen[$posArray[$i]]) { + $nxtLen[$posArray[$i]] = $curLen[$posArray[$i]] + $charSiz[$posArray[$i]]; + $nxtSeq[$posArray[$i]] = $curSeq[$posArray[$i]] . '.'; + } + + for ($j = 0; $j < 2; $j++) { + if ($j === $posArray[$i]) { continue; } + if (($curLen[$j] + $shftLen[$j][$posArray[$i]] + $charSiz[$posArray[$i]]) < $nxtLen[$j]) { + $nxtLen[$j] = $curLen[$j] + $shftLen[$j][$posArray[$i]] + $charSiz[$posArray[$i]]; + $nxtSeq[$j] = $curSeq[$j] . chr($posArray[$i] + 65) . '.'; + } + } + } + + if ($c === 0) { + // We found an unsuported character + throw new BCGParseException('code128', 'Character ' . $input . ' not supported.'); + } + + if ($flag) { + for ($i = 0; $i < 5; $i++) { + if (isset($nxtSeq[$i])) { + $nxtSeq[$i] .= 'F'; + } + } + } + + // 4. + for ($i = 0; $i < 3; $i++) { + $curLen[$i] = $nxtLen[$i]; + if (isset($nxtSeq[$i])) { + $curSeq[$i] = $nxtSeq[$i]; + } + } + } + + // Every curLen under $e is possible but we take the smallest + $m = $e; + $k = -1; + for ($i = 0; $i < 3; $i++) { + if ($curLen[$i] < $m) { + $k = $i; + $m = $curLen[$i]; + } + } + + if ($k === -1) { + return ''; + } + + return $curSeq[$k]; + } + + /** + * Depending on the sequence $seq given (returned from getSequence()), + * this method will return the code stream in an array. Each char will be a + * string of bit based on the Code 128. + * + * Each letter from the sequence represents bits. + * + * 0 to 2 are latches + * A to B are Shift + Letter + * . is a char in the current encoding + * + * @param string $text + * @param string $seq + * @return string[][] + */ + private function createBinaryStream($text, $seq) { + $c = strlen($seq); + + $data = array(); // code stream + $indcheck = array(); // index for checksum + + $currentEncoding = 0; + if ($this->starting_text === 'A') { + $currentEncoding = 0; + $indcheck[] = self::KEY_STARTA; + $this->lastTable = 'A'; + } elseif ($this->starting_text === 'B') { + $currentEncoding = 1; + $indcheck[] = self::KEY_STARTB; + $this->lastTable = 'B'; + } elseif ($this->starting_text === 'C') { + $currentEncoding = 2; + $indcheck[] = self::KEY_STARTC; + $this->lastTable = 'C'; + } + + $data[] = $this->code[103 + $currentEncoding]; + + $temporaryEncoding = -1; + for ($i = 0, $counter = 0; $i < $c; $i++) { + $input = $seq[$i]; + $inputI = intval($input); + if ($input === '.') { + $this->encodeChar($data, $currentEncoding, $seq, $text, $i, $counter, $indcheck); + if ($temporaryEncoding !== -1) { + $currentEncoding = $temporaryEncoding; + $temporaryEncoding = -1; + } + } elseif ($input >= 'A' && $input <= 'B') { + // We shift + $encoding = ord($input) - 65; + $shift = $this->shift[$currentEncoding][$encoding]; + $indcheck[] = $shift; + $data[] = $this->code[$shift]; + if ($temporaryEncoding === -1) { + $temporaryEncoding = $currentEncoding; + } + + $currentEncoding = $encoding; + } elseif ($inputI >= 0 && $inputI < 3) { + $temporaryEncoding = -1; + + // We latch + $latch = $this->latch[$currentEncoding][$inputI]; + if ($latch !== null) { + $indcheck[] = $latch; + $this->lastTable = chr(65 + $inputI); + $data[] = $this->code[$latch]; + $currentEncoding = $inputI; + } + } + } + + return array($indcheck, $data); + } + + /** + * Encodes characters, base on its encoding and sequence + * + * @param int[] $data + * @param int $encoding + * @param string $seq + * @param string $text + * @param int $i + * @param int $counter + * @param int[] $indcheck + */ + private function encodeChar(&$data, $encoding, $seq, $text, &$i, &$counter, &$indcheck) { + if (isset($seq[$i + 1]) && $seq[$i + 1] === 'F') { + // We have a flag !! + if ($text[$counter + 1] === 'F') { + $number = $text[$counter + 2]; + $fnc = $this->fnc[$encoding][$number - 1]; + $indcheck[] = $fnc; + $data[] = $this->code[$fnc]; + + // Skip F + number + $counter += 2; + } else { + // Not supposed + } + + $i++; + } else { + if ($encoding === 2) { + // We take 2 numbers in the same time + $code = (int)substr($text, $counter, 2); + $indcheck[] = $code; + $data[] = $this->code[$code]; + $counter++; + $i++; + } else { + $keys = ($encoding === 0) ? $this->keysA : $this->keysB; + $pos = strpos($keys, $text[$counter]); + $indcheck[] = $pos; + $data[] = $this->code[$pos]; + } + } + + $counter++; + } + + /** + * Saves data into the classes. + * + * This method will save data, calculate real column number + * (if -1 was selected), the real error level (if -1 was + * selected)... It will add Padding to the end and generate + * the error codes. + * + * @param array $data + */ + private function setData($data) { + $this->indcheck = $data[0]; + $this->data = $data[1]; + $this->calculateChecksum(); + $this->data[] = $this->code[$this->checksumValue]; + $this->data[] = $this->code[self::KEY_STOP]; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGcode39.barcode.php b/application/libraries/barcodegen/class/BCGcode39.barcode.php new file mode 100755 index 000000000..6a77c260a --- /dev/null +++ b/application/libraries/barcodegen/class/BCGcode39.barcode.php @@ -0,0 +1,193 @@ +starting = $this->ending = 43; + $this->keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '-', '.', ' ', '$', '/', '+', '%', '*'); + $this->code = array( // 0 added to add an extra space + '0001101000', /* 0 */ + '1001000010', /* 1 */ + '0011000010', /* 2 */ + '1011000000', /* 3 */ + '0001100010', /* 4 */ + '1001100000', /* 5 */ + '0011100000', /* 6 */ + '0001001010', /* 7 */ + '1001001000', /* 8 */ + '0011001000', /* 9 */ + '1000010010', /* A */ + '0010010010', /* B */ + '1010010000', /* C */ + '0000110010', /* D */ + '1000110000', /* E */ + '0010110000', /* F */ + '0000011010', /* G */ + '1000011000', /* H */ + '0010011000', /* I */ + '0000111000', /* J */ + '1000000110', /* K */ + '0010000110', /* L */ + '1010000100', /* M */ + '0000100110', /* N */ + '1000100100', /* O */ + '0010100100', /* P */ + '0000001110', /* Q */ + '1000001100', /* R */ + '0010001100', /* S */ + '0000101100', /* T */ + '1100000010', /* U */ + '0110000010', /* V */ + '1110000000', /* W */ + '0100100010', /* X */ + '1100100000', /* Y */ + '0110100000', /* Z */ + '0100001010', /* - */ + '1100001000', /* . */ + '0110001000', /* */ + '0101010000', /* $ */ + '0101000100', /* / */ + '0100010100', /* + */ + '0001010100', /* % */ + '0100101000' /* * */ + ); + + $this->setChecksum(false); + } + + /** + * Sets if we display the checksum. + * + * @param bool $checksum + */ + public function setChecksum($checksum) { + $this->checksum = (bool)$checksum; + } + + /** + * Parses the text before displaying it. + * + * @param mixed $text + */ + public function parse($text) { + parent::parse(strtoupper($text)); // Only Capital Letters are Allowed + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + // Starting * + $this->drawChar($im, $this->code[$this->starting], true); + + // Chars + $c = strlen($this->text); + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, $this->findCode($this->text[$i]), true); + } + + // Checksum (rarely used) + if ($this->checksum === true) { + $this->calculateChecksum(); + $this->drawChar($im, $this->code[$this->checksumValue % 43], true); + } + + // Ending * + $this->drawChar($im, $this->code[$this->ending], true); + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $textlength = 13 * strlen($this->text); + $startlength = 13; + $checksumlength = 0; + if ($this->checksum === true) { + $checksumlength = 13; + } + + $endlength = 13; + + $w += $startlength + $textlength + $checksumlength + $endlength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Validates the input. + */ + protected function validate() { + $c = strlen($this->text); + if ($c === 0) { + throw new BCGParseException('code39', 'No data has been entered.'); + } + + // Checking if all chars are allowed + for ($i = 0; $i < $c; $i++) { + if (array_search($this->text[$i], $this->keys) === false) { + throw new BCGParseException('code39', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } + } + + if (strpos($this->text, '*') !== false) { + throw new BCGParseException('code39', 'The character \'*\' is not allowed.'); + } + + parent::validate(); + } + + /** + * Overloaded method to calculate checksum. + */ + protected function calculateChecksum() { + $this->checksumValue = 0; + $c = strlen($this->text); + for ($i = 0; $i < $c; $i++) { + $this->checksumValue += $this->findIndex($this->text[$i]); + } + + $this->checksumValue = $this->checksumValue % 43; + } + + /** + * Overloaded method to display the checksum. + */ + protected function processChecksum() { + if ($this->checksumValue === false) { // Calculate the checksum only once + $this->calculateChecksum(); + } + + if ($this->checksumValue !== false) { + return $this->keys[$this->checksumValue]; + } + + return false; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGcode39extended.barcode.php b/application/libraries/barcodegen/class/BCGcode39extended.barcode.php new file mode 100755 index 000000000..67d991588 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGcode39extended.barcode.php @@ -0,0 +1,208 @@ +keys[self::EXTENDED_1] = '($)'; + $this->keys[self::EXTENDED_2] = '(/)'; + $this->keys[self::EXTENDED_3] = '(+)'; + $this->keys[self::EXTENDED_4] = '(%)'; + } + + /** + * Parses the text before displaying it. + * + * @param mixed $text + */ + public function parse($text) { + $this->text = $text; + + $data = array(); + $indcheck = array(); + + $c = strlen($this->text); + for ($i = 0; $i < $c; $i++) { + $pos = array_search($this->text[$i], $this->keys); + if ($pos === false) { + // Search in extended? + $extended = self::getExtendedVersion($this->text[$i]); + if ($extended === false) { + throw new BCGParseException('code39extended', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } else { + $extc = strlen($extended); + for ($j = 0; $j < $extc; $j++) { + $v = $extended[$j]; + if ($v === '$') { + $indcheck[] = self::EXTENDED_1; + $data[] = $this->code[self::EXTENDED_1]; + } elseif ($v === '%') { + $indcheck[] = self::EXTENDED_2; + $data[] = $this->code[self::EXTENDED_2]; + } elseif ($v === '/') { + $indcheck[] = self::EXTENDED_3; + $data[] = $this->code[self::EXTENDED_3]; + } elseif ($v === '+') { + $indcheck[] = self::EXTENDED_4; + $data[] = $this->code[self::EXTENDED_4]; + } else { + $pos2 = array_search($v, $this->keys); + $indcheck[] = $pos2; + $data[] = $this->code[$pos2]; + } + } + } + } else { + $indcheck[] = $pos; + $data[] = $this->code[$pos]; + } + } + + $this->setData(array($indcheck, $data)); + $this->addDefaultLabel(); + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + // Starting * + $this->drawChar($im, $this->code[$this->starting], true); + $c = count($this->data); + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, $this->data[$i], true); + } + + // Checksum (rarely used) + if ($this->checksum === true) { + $this->drawChar($im, $this->code[$this->checksumValue % 43], true); + } + + // Ending * + $this->drawChar($im, $this->code[$this->ending], true); + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $textlength = 13 * count($this->data); + $startlength = 13; + $checksumlength = 0; + if ($this->checksum === true) { + $checksumlength = 13; + } + + $endlength = 13; + + $w += $startlength + $textlength + $checksumlength + $endlength; + $h += $this->thickness; + return BCGBarcode1D::getDimension($w, $h); + } + + /** + * Validates the input. + */ + protected function validate() { + $c = count($this->data); + if ($c === 0) { + throw new BCGParseException('code39extended', 'No data has been entered.'); + } + + parent::validate(); + } + + /** + * Overloaded method to calculate checksum. + */ + protected function calculateChecksum() { + $this->checksumValue = 0; + $c = count($this->indcheck); + for ($i = 0; $i < $c; $i++) { + $this->checksumValue += $this->indcheck[$i]; + } + + $this->checksumValue = $this->checksumValue % 43; + } + + /** + * Saves data into the classes. + * + * This method will save data, calculate real column number + * (if -1 was selected), the real error level (if -1 was + * selected)... It will add Padding to the end and generate + * the error codes. + * + * @param array $data + */ + private function setData($data) { + $this->indcheck = $data[0]; + $this->data = $data[1]; + $this->calculateChecksum(); + } + + /** + * Returns the extended reprensentation of the character. + * + * @param string $char + * @return string + */ + private static function getExtendedVersion($char) { + $o = ord($char); + if ($o === 0) { + return '%U'; + } elseif ($o >= 1 && $o <= 26) { + return '$' . chr($o + 64); + } elseif (($o >= 33 && $o <= 44) || $o === 47 || $o === 48) { + return '/' . chr($o + 32); + } elseif ($o >= 97 && $o <= 122) { + return '+' . chr($o - 32); + } elseif ($o >= 27 && $o <= 31) { + return '%' . chr($o + 38); + } elseif ($o >= 59 && $o <= 63) { + return '%' . chr($o + 11); + } elseif ($o >= 91 && $o <= 95) { + return '%' . chr($o - 16); + } elseif ($o >= 123 && $o <= 127) { + return '%' . chr($o - 43); + } elseif ($o === 64) { + return '%V'; + } elseif ($o === 96) { + return '%W'; + } elseif ($o > 127) { + return false; + } else { + return $char; + } + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGcode93.barcode.php b/application/libraries/barcodegen/class/BCGcode93.barcode.php new file mode 100755 index 000000000..7d9397c4b --- /dev/null +++ b/application/libraries/barcodegen/class/BCGcode93.barcode.php @@ -0,0 +1,301 @@ +starting = $this->ending = 47; /* * */ + $this->keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '-', '.', ' ', '$', '/', '+', '%', '($)', '(%)', '(/)', '(+)', '(*)'); + $this->code = array( + '020001', /* 0 */ + '000102', /* 1 */ + '000201', /* 2 */ + '000300', /* 3 */ + '010002', /* 4 */ + '010101', /* 5 */ + '010200', /* 6 */ + '000003', /* 7 */ + '020100', /* 8 */ + '030000', /* 9 */ + '100002', /* A */ + '100101', /* B */ + '100200', /* C */ + '110001', /* D */ + '110100', /* E */ + '120000', /* F */ + '001002', /* G */ + '001101', /* H */ + '001200', /* I */ + '011001', /* J */ + '021000', /* K */ + '000012', /* L */ + '000111', /* M */ + '000210', /* N */ + '010011', /* O */ + '020010', /* P */ + '101001', /* Q */ + '101100', /* R */ + '100011', /* S */ + '100110', /* T */ + '110010', /* U */ + '111000', /* V */ + '001011', /* W */ + '001110', /* X */ + '011010', /* Y */ + '012000', /* Z */ + '010020', /* - */ + '200001', /* . */ + '200100', /* */ + '210000', /* $ */ + '001020', /* / */ + '002010', /* + */ + '100020', /* % */ + '010110', /*($)*/ + '201000', /*(%)*/ + '200010', /*(/)*/ + '011100', /*(+)*/ + '000030' /*(*)*/ + ); + } + + /** + * Parses the text before displaying it. + * + * @param mixed $text + */ + public function parse($text) { + $this->text = $text; + + $data = array(); + $indcheck = array(); + + $c = strlen($this->text); + for ($i = 0; $i < $c; $i++) { + $pos = array_search($this->text[$i], $this->keys); + if ($pos === false) { + // Search in extended? + $extended = self::getExtendedVersion($this->text[$i]); + if ($extended === false) { + throw new BCGParseException('code93', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } else { + $extc = strlen($extended); + for ($j = 0; $j < $extc; $j++) { + $v = $extended[$j]; + if ($v === '$') { + $indcheck[] = self::EXTENDED_1; + $data[] = $this->code[self::EXTENDED_1]; + } elseif ($v === '%') { + $indcheck[] = self::EXTENDED_2; + $data[] = $this->code[self::EXTENDED_2]; + } elseif ($v === '/') { + $indcheck[] = self::EXTENDED_3; + $data[] = $this->code[self::EXTENDED_3]; + } elseif ($v === '+') { + $indcheck[] = self::EXTENDED_4; + $data[] = $this->code[self::EXTENDED_4]; + } else { + $pos2 = array_search($v, $this->keys); + $indcheck[] = $pos2; + $data[] = $this->code[$pos2]; + } + } + } + } else { + $indcheck[] = $pos; + $data[] = $this->code[$pos]; + } + } + + $this->setData(array($indcheck, $data)); + $this->addDefaultLabel(); + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + // Starting * + $this->drawChar($im, $this->code[$this->starting], true); + $c = count($this->data); + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, $this->data[$i], true); + } + + // Checksum + $c = count($this->checksumValue); + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, $this->code[$this->checksumValue[$i]], true); + } + + // Ending * + $this->drawChar($im, $this->code[$this->ending], true); + + // Draw a Final Bar + $this->drawChar($im, '0', true); + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $startlength = 9; + $textlength = 9 * count($this->data); + $checksumlength = 2 * 9; + $endlength = 9 + 1; // + final bar + + $w += $startlength + $textlength + $checksumlength + $endlength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Validates the input. + */ + protected function validate() { + $c = count($this->data); + if ($c === 0) { + throw new BCGParseException('code93', 'No data has been entered.'); + } + + parent::validate(); + } + + /** + * Overloaded method to calculate checksum. + */ + protected function calculateChecksum() { + // Checksum + // First CheckSUM "C" + // The "C" checksum character is the modulo 47 remainder of the sum of the weighted + // value of the data characters. The weighting value starts at "1" for the right-most + // data character, 2 for the second to last, 3 for the third-to-last, and so on up to 20. + // After 20, the sequence wraps around back to 1. + + // Second CheckSUM "K" + // Same as CheckSUM "C" but we count the CheckSum "C" at the end + // After 15, the sequence wraps around back to 1. + $sequence_multiplier = array(20, 15); + $this->checksumValue = array(); + $indcheck = $this->indcheck; + for ($z = 0; $z < 2; $z++) { + $checksum = 0; + for ($i = count($indcheck), $j = 0; $i > 0; $i--, $j++) { + $multiplier = $i % $sequence_multiplier[$z]; + if ($multiplier === 0) { + $multiplier = $sequence_multiplier[$z]; + } + + $checksum += $indcheck[$j] * $multiplier; + } + + $this->checksumValue[$z] = $checksum % 47; + $indcheck[] = $this->checksumValue[$z]; + } + } + + /** + * Overloaded method to display the checksum. + */ + protected function processChecksum() { + if ($this->checksumValue === false) { // Calculate the checksum only once + $this->calculateChecksum(); + } + + if ($this->checksumValue !== false) { + $ret = ''; + $c = count($this->checksumValue); + for ($i = 0; $i < $c; $i++) { + $ret .= $this->keys[$this->checksumValue[$i]]; + } + + return $ret; + } + + return false; + } + + /** + * Saves data into the classes. + * + * This method will save data, calculate real column number + * (if -1 was selected), the real error level (if -1 was + * selected)... It will add Padding to the end and generate + * the error codes. + * + * @param array $data + */ + private function setData($data) { + $this->indcheck = $data[0]; + $this->data = $data[1]; + $this->calculateChecksum(); + } + + /** + * Returns the extended reprensentation of the character. + * + * @param string $char + * @return string + */ + private static function getExtendedVersion($char) { + $o = ord($char); + if ($o === 0) { + return '%U'; + } elseif ($o >= 1 && $o <= 26) { + return '$' . chr($o + 64); + } elseif (($o >= 33 && $o <= 44) || $o === 47 || $o === 48) { + return '/' . chr($o + 32); + } elseif ($o >= 97 && $o <= 122) { + return '+' . chr($o - 32); + } elseif ($o >= 27 && $o <= 31) { + return '%' . chr($o + 38); + } elseif ($o >= 59 && $o <= 63) { + return '%' . chr($o + 11); + } elseif ($o >= 91 && $o <= 95) { + return '%' . chr($o - 16); + } elseif ($o >= 123 && $o <= 127) { + return '%' . chr($o - 43); + } elseif ($o === 64) { + return '%V'; + } elseif ($o === 96) { + return '%W'; + } elseif ($o > 127) { + return false; + } else { + return $char; + } + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGean13.barcode.php b/application/libraries/barcodegen/class/BCGean13.barcode.php new file mode 100755 index 000000000..3cf6d7175 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGean13.barcode.php @@ -0,0 +1,322 @@ +keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); + + // Left-Hand Odd Parity starting with a space + // Left-Hand Even Parity is the inverse (0=0012) starting with a space + // Right-Hand is the same of Left-Hand starting with a bar + $this->code = array( + '2100', /* 0 */ + '1110', /* 1 */ + '1011', /* 2 */ + '0300', /* 3 */ + '0021', /* 4 */ + '0120', /* 5 */ + '0003', /* 6 */ + '0201', /* 7 */ + '0102', /* 8 */ + '2001' /* 9 */ + ); + + // Parity, 0=Odd, 1=Even for manufacturer code. Depending on 1st System Digit + $this->codeParity = array( + array(0, 0, 0, 0, 0), /* 0 */ + array(0, 1, 0, 1, 1), /* 1 */ + array(0, 1, 1, 0, 1), /* 2 */ + array(0, 1, 1, 1, 0), /* 3 */ + array(1, 0, 0, 1, 1), /* 4 */ + array(1, 1, 0, 0, 1), /* 5 */ + array(1, 1, 1, 0, 0), /* 6 */ + array(1, 0, 1, 0, 1), /* 7 */ + array(1, 0, 1, 1, 0), /* 8 */ + array(1, 1, 0, 1, 0) /* 9 */ + ); + + $this->alignDefaultLabel(true); + } + + public function alignDefaultLabel($align) { + $this->alignLabel = (bool)$align; + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + $this->drawBars($im); + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + + if ($this->isDefaultEanLabelEnabled()) { + $dimension = $this->labelCenter1->getDimension(); + $this->drawExtendedBars($im, $dimension[1] - 2); + } + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $startlength = 3; + $centerlength = 5; + $textlength = 12 * 7; + $endlength = 3; + + $w += $startlength + $centerlength + $textlength + $endlength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Adds the default label. + */ + protected function addDefaultLabel() { + if ($this->isDefaultEanLabelEnabled()) { + $this->processChecksum(); + $label = $this->getLabel(); + $font = $this->font; + + $this->labelLeft = new BCGLabel(substr($label, 0, 1), $font, BCGLabel::POSITION_LEFT, BCGLabel::ALIGN_BOTTOM); + $this->labelLeft->setSpacing(4 * $this->scale); + + $this->labelCenter1 = new BCGLabel(substr($label, 1, 6), $font, BCGLabel::POSITION_BOTTOM, BCGLabel::ALIGN_LEFT); + $labelCenter1Dimension = $this->labelCenter1->getDimension(); + $this->labelCenter1->setOffset(($this->scale * 44 - $labelCenter1Dimension[0]) / 2 + $this->scale * 2); + + $this->labelCenter2 = new BCGLabel(substr($label, 7, 5) . $this->keys[$this->checksumValue], $font, BCGLabel::POSITION_BOTTOM, BCGLabel::ALIGN_LEFT); + $this->labelCenter2->setOffset(($this->scale * 44 - $labelCenter1Dimension[0]) / 2 + $this->scale * 48); + + if ($this->alignLabel) { + $labelDimension = $this->labelCenter1->getDimension(); + $this->labelLeft->setOffset($labelDimension[1]); + } else { + $labelDimension = $this->labelLeft->getDimension(); + $this->labelLeft->setOffset($labelDimension[1] / 2); + } + + $this->addLabel($this->labelLeft); + $this->addLabel($this->labelCenter1); + $this->addLabel($this->labelCenter2); + } + } + + /** + * Checks if the default ean label is enabled. + * + * @return bool + */ + protected function isDefaultEanLabelEnabled() { + $label = $this->getLabel(); + $font = $this->font; + return $label !== null && $label !== '' && $font !== null && $this->defaultLabel !== null; + } + + /** + * Validates the input. + */ + protected function validate() { + $c = strlen($this->text); + if ($c === 0) { + throw new BCGParseException('ean13', 'No data has been entered.'); + } + + $this->checkCharsAllowed(); + $this->checkCorrectLength(); + + parent::validate(); + } + + /** + * Check chars allowed. + */ + protected function checkCharsAllowed() { + // Checking if all chars are allowed + $c = strlen($this->text); + for ($i = 0; $i < $c; $i++) { + if (array_search($this->text[$i], $this->keys) === false) { + throw new BCGParseException('ean13', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } + } + } + + /** + * Check correct length. + */ + protected function checkCorrectLength() { + // If we have 13 chars, just flush the last one without throwing anything + $c = strlen($this->text); + if ($c === 13) { + $this->text = substr($this->text, 0, 12); + } elseif ($c !== 12) { + throw new BCGParseException('ean13', 'Must contain 12 digits, the 13th digit is automatically added.'); + } + } + + /** + * Overloaded method to calculate checksum. + */ + protected function calculateChecksum() { + // Calculating Checksum + // Consider the right-most digit of the message to be in an "odd" position, + // and assign odd/even to each character moving from right to left + // Odd Position = 3, Even Position = 1 + // Multiply it by the number + // Add all of that and do 10-(?mod10) + $odd = true; + $this->checksumValue = 0; + $c = strlen($this->text); + for ($i = $c; $i > 0; $i--) { + if ($odd === true) { + $multiplier = 3; + $odd = false; + } else { + $multiplier = 1; + $odd = true; + } + + if (!isset($this->keys[$this->text[$i - 1]])) { + return; + } + + $this->checksumValue += $this->keys[$this->text[$i - 1]] * $multiplier; + } + + $this->checksumValue = (10 - $this->checksumValue % 10) % 10; + } + + /** + * Overloaded method to display the checksum. + */ + protected function processChecksum() { + if ($this->checksumValue === false) { // Calculate the checksum only once + $this->calculateChecksum(); + } + + if ($this->checksumValue !== false) { + return $this->keys[$this->checksumValue]; + } + + return false; + } + + /** + * Draws the bars + * + * @param resource $im + */ + protected function drawBars($im) { + // Checksum + $this->calculateChecksum(); + $temp_text = $this->text . $this->keys[$this->checksumValue]; + + // Starting Code + $this->drawChar($im, '000', true); + + // Draw Second Code + $this->drawChar($im, $this->findCode($temp_text[1]), false); + + // Draw Manufacturer Code + for ($i = 0; $i < 5; $i++) { + $this->drawChar($im, self::inverse($this->findCode($temp_text[$i + 2]), $this->codeParity[(int)$temp_text[0]][$i]), false); + } + + // Draw Center Guard Bar + $this->drawChar($im, '00000', false); + + // Draw Product Code + for ($i = 7; $i < 13; $i++) { + $this->drawChar($im, $this->findCode($temp_text[$i]), true); + } + + // Draw Right Guard Bar + $this->drawChar($im, '000', true); + } + + /** + * Draws the extended bars on the image. + * + * @param resource $im + * @param int $plus + */ + protected function drawExtendedBars($im, $plus) { + $rememberX = $this->positionX; + $rememberH = $this->thickness; + + // We increase the bars + $this->thickness = $this->thickness + intval($plus / $this->scale); + $this->positionX = 0; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + $this->positionX += 2; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + + // Center Guard Bar + $this->positionX += 44; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + $this->positionX += 2; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + + // Last Bars + $this->positionX += 44; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + $this->positionX += 2; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + + $this->positionX = $rememberX; + $this->thickness = $rememberH; + } + + /** + * Inverses the string when the $inverse parameter is equal to 1. + * + * @param string $text + * @param int $inverse + * @return string + */ + private static function inverse($text, $inverse = 1) { + if ($inverse === 1) { + $text = strrev($text); + } + + return $text; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGean8.barcode.php b/application/libraries/barcodegen/class/BCGean8.barcode.php new file mode 100755 index 000000000..818a2fd94 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGean8.barcode.php @@ -0,0 +1,244 @@ +keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); + + // Left-Hand Odd Parity starting with a space + // Right-Hand is the same of Left-Hand starting with a bar + $this->code = array( + '2100', /* 0 */ + '1110', /* 1 */ + '1011', /* 2 */ + '0300', /* 3 */ + '0021', /* 4 */ + '0120', /* 5 */ + '0003', /* 6 */ + '0201', /* 7 */ + '0102', /* 8 */ + '2001' /* 9 */ + ); + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + // Checksum + $this->calculateChecksum(); + $temp_text = $this->text . $this->keys[$this->checksumValue]; + + // Starting Code + $this->drawChar($im, '000', true); + + // Draw First 4 Chars (Left-Hand) + for ($i = 0; $i < 4; $i++) { + $this->drawChar($im, $this->findCode($temp_text[$i]), false); + } + + // Draw Center Guard Bar + $this->drawChar($im, '00000', false); + + // Draw Last 4 Chars (Right-Hand) + for ($i = 4; $i < 8; $i++) { + $this->drawChar($im, $this->findCode($temp_text[$i]), true); + } + + // Draw Right Guard Bar + $this->drawChar($im, '000', true); + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + + if ($this->isDefaultEanLabelEnabled()) { + $dimension = $this->labelRight->getDimension(); + $this->drawExtendedBars($im, $dimension[1] - 2); + } + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $startlength = 3; + $centerlength = 5; + $textlength = 8 * 7; + $endlength = 3; + + $w += $startlength + $centerlength + $textlength + $endlength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Adds the default label. + */ + protected function addDefaultLabel() { + if ($this->isDefaultEanLabelEnabled()) { + $this->processChecksum(); + $label = $this->getLabel(); + $font = $this->font; + + $this->labelLeft = new BCGLabel(substr($label, 0, 4), $font, BCGLabel::POSITION_BOTTOM, BCGLabel::ALIGN_LEFT); + $labelLeftDimension = $this->labelLeft->getDimension(); + $this->labelLeft->setOffset(($this->scale * 30 - $labelLeftDimension[0]) / 2 + $this->scale * 2); + + $this->labelRight = new BCGLabel(substr($label, 4, 3) . $this->keys[$this->checksumValue], $font, BCGLabel::POSITION_BOTTOM, BCGLabel::ALIGN_LEFT); + $labelRightDimension = $this->labelRight->getDimension(); + $this->labelRight->setOffset(($this->scale * 30 - $labelRightDimension[0]) / 2 + $this->scale * 34); + + $this->addLabel($this->labelLeft); + $this->addLabel($this->labelRight); + } + } + + /** + * Checks if the default ean label is enabled. + * + * @return bool + */ + protected function isDefaultEanLabelEnabled() { + $label = $this->getLabel(); + $font = $this->font; + return $label !== null && $label !== '' && $font !== null && $this->defaultLabel !== null; + } + + /** + * Validates the input. + */ + protected function validate() { + $c = strlen($this->text); + if ($c === 0) { + throw new BCGParseException('ean8', 'No data has been entered.'); + } + + // Checking if all chars are allowed + for ($i = 0; $i < $c; $i++) { + if (array_search($this->text[$i], $this->keys) === false) { + throw new BCGParseException('ean8', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } + } + + // If we have 8 chars just flush the last one + if ($c === 8) { + $this->text = substr($this->text, 0, 7); + } elseif ($c !== 7) { + throw new BCGParseException('ean8', 'Must contain 7 digits, the 8th digit is automatically added.'); + } + + parent::validate(); + } + + /** + * Overloaded method to calculate checksum. + */ + protected function calculateChecksum() { + // Calculating Checksum + // Consider the right-most digit of the message to be in an "odd" position, + // and assign odd/even to each character moving from right to left + // Odd Position = 3, Even Position = 1 + // Multiply it by the number + // Add all of that and do 10-(?mod10) + $odd = true; + $this->checksumValue = 0; + $c = strlen($this->text); + for ($i = $c; $i > 0; $i--) { + if ($odd === true) { + $multiplier = 3; + $odd = false; + } else { + $multiplier = 1; + $odd = true; + } + + if (!isset($this->keys[$this->text[$i - 1]])) { + return; + } + + $this->checksumValue += $this->keys[$this->text[$i - 1]] * $multiplier; + } + + $this->checksumValue = (10 - $this->checksumValue % 10) % 10; + } + + /** + * Overloaded method to display the checksum. + */ + protected function processChecksum() { + if ($this->checksumValue === false) { // Calculate the checksum only once + $this->calculateChecksum(); + } + + if ($this->checksumValue !== false) { + return $this->keys[$this->checksumValue]; + } + + return false; + } + + /** + * Draws the extended bars on the image. + * + * @param resource $im + * @param int $plus + */ + private function drawExtendedBars($im, $plus) { + $rememberX = $this->positionX; + $rememberH = $this->thickness; + + // We increase the bars + $this->thickness = $this->thickness + intval($plus / $this->scale); + $this->positionX = 0; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + $this->positionX += 2; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + + // Center Guard Bar + $this->positionX += 30; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + $this->positionX += 2; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + + // Last Bars + $this->positionX += 30; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + $this->positionX += 2; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + + $this->positionX = $rememberX; + $this->thickness = $rememberH; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGgs1128.barcode.php b/application/libraries/barcodegen/class/BCGgs1128.barcode.php new file mode 100755 index 000000000..a3c1a5031 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGgs1128.barcode.php @@ -0,0 +1,679 @@ +identifiersAi = array( + '00' => array(self::NUMERIC, 18, 18, true), + '01' => array(self::NUMERIC, 14, 14, true), + '02' => array(self::NUMERIC, 14, 14, true), + '10' => array(self::ALPHA_NUMERIC, 1, 20, false), + '11' => array(self::DATE_YYMMDD, 6, 6, false), + '12' => array(self::DATE_YYMMDD, 6, 6, false), + '13' => array(self::DATE_YYMMDD, 6, 6, false), + '15' => array(self::DATE_YYMMDD, 6, 6, false), + '17' => array(self::DATE_YYMMDD, 6, 6, false), + '20' => array(self::NUMERIC, 2, 2, false), + '21' => array(self::ALPHA_NUMERIC, 1, 20, false), + '240' => array(self::ALPHA_NUMERIC, 1, 30, false), + '241' => array(self::ALPHA_NUMERIC, 1, 30, false), + '250' => array(self::ALPHA_NUMERIC, 1, 30, false), + '251' => array(self::ALPHA_NUMERIC, 1, 30, false), + '253' => array(self::NUMERIC, 14, 30, false), + '30' => array(self::NUMERIC, 1, 8, false), + '310y' => array(self::NUMERIC, 6, 6, false), + '311y' => array(self::NUMERIC, 6, 6, false), + '312y' => array(self::NUMERIC, 6, 6, false), + '313y' => array(self::NUMERIC, 6, 6, false), + '314y' => array(self::NUMERIC, 6, 6, false), + '315y' => array(self::NUMERIC, 6, 6, false), + '316y' => array(self::NUMERIC, 6, 6, false), + '320y' => array(self::NUMERIC, 6, 6, false), + '321y' => array(self::NUMERIC, 6, 6, false), + '322y' => array(self::NUMERIC, 6, 6, false), + '323y' => array(self::NUMERIC, 6, 6, false), + '324y' => array(self::NUMERIC, 6, 6, false), + '325y' => array(self::NUMERIC, 6, 6, false), + '326y' => array(self::NUMERIC, 6, 6, false), + '327y' => array(self::NUMERIC, 6, 6, false), + '328y' => array(self::NUMERIC, 6, 6, false), + '329y' => array(self::NUMERIC, 6, 6, false), + '330y' => array(self::NUMERIC, 6, 6, false), + '331y' => array(self::NUMERIC, 6, 6, false), + '332y' => array(self::NUMERIC, 6, 6, false), + '333y' => array(self::NUMERIC, 6, 6, false), + '334y' => array(self::NUMERIC, 6, 6, false), + '335y' => array(self::NUMERIC, 6, 6, false), + '336y' => array(self::NUMERIC, 6, 6, false), + '337y' => array(self::NUMERIC, 6, 6, false), + '340y' => array(self::NUMERIC, 6, 6, false), + '341y' => array(self::NUMERIC, 6, 6, false), + '342y' => array(self::NUMERIC, 6, 6, false), + '343y' => array(self::NUMERIC, 6, 6, false), + '344y' => array(self::NUMERIC, 6, 6, false), + '345y' => array(self::NUMERIC, 6, 6, false), + '346y' => array(self::NUMERIC, 6, 6, false), + '347y' => array(self::NUMERIC, 6, 6, false), + '348y' => array(self::NUMERIC, 6, 6, false), + '349y' => array(self::NUMERIC, 6, 6, false), + '350y' => array(self::NUMERIC, 6, 6, false), + '351y' => array(self::NUMERIC, 6, 6, false), + '352y' => array(self::NUMERIC, 6, 6, false), + '353y' => array(self::NUMERIC, 6, 6, false), + '354y' => array(self::NUMERIC, 6, 6, false), + '355y' => array(self::NUMERIC, 6, 6, false), + '356y' => array(self::NUMERIC, 6, 6, false), + '357y' => array(self::NUMERIC, 6, 6, false), + '360y' => array(self::NUMERIC, 6, 6, false), + '361y' => array(self::NUMERIC, 6, 6, false), + '362y' => array(self::NUMERIC, 6, 6, false), + '363y' => array(self::NUMERIC, 6, 6, false), + '364y' => array(self::NUMERIC, 6, 6, false), + '365y' => array(self::NUMERIC, 6, 6, false), + '366y' => array(self::NUMERIC, 6, 6, false), + '367y' => array(self::NUMERIC, 6, 6, false), + '368y' => array(self::NUMERIC, 6, 6, false), + '369y' => array(self::NUMERIC, 6, 6, false), + '37' => array(self::NUMERIC, 1, 8, false), + '390y' => array(self::NUMERIC, 1, 15, false), + '391y' => array(self::NUMERIC, 4, 18, false), + '392y' => array(self::NUMERIC, 1, 15, false), + '393y' => array(self::NUMERIC, 4, 18, false), + '400' => array(self::ALPHA_NUMERIC, 1, 30, false), + '401' => array(self::ALPHA_NUMERIC, 1, 30, false), + '402' => array(self::NUMERIC, 17, 17, false), + '403' => array(self::ALPHA_NUMERIC, 1, 30, false), + '410' => array(self::NUMERIC, 13, 13, true), + '411' => array(self::NUMERIC, 13, 13, true), + '412' => array(self::NUMERIC, 13, 13, true), + '413' => array(self::NUMERIC, 13, 13, true), + '414' => array(self::NUMERIC, 13, 13, true), + '415' => array(self::NUMERIC, 13, 13, true), + '420' => array(self::ALPHA_NUMERIC, 1, 20, false), + '421' => array(self::ALPHA_NUMERIC, 4, 12, false), + '422' => array(self::NUMERIC, 3, 3, false), + '8001' => array(self::NUMERIC, 14, 14, false), + '8002' => array(self::ALPHA_NUMERIC, 1, 20, false), + '8003' => array(self::ALPHA_NUMERIC, 15, 30, false), + '8004' => array(self::ALPHA_NUMERIC, 1, 30, false), + '8005' => array(self::NUMERIC, 6, 6, false), + '8006' => array(self::NUMERIC, 18, 18, false), + '8007' => array(self::ALPHA_NUMERIC, 1, 30, false), + '8018' => array(self::NUMERIC, 18, 18, false), + '8020' => array(self::ALPHA_NUMERIC, 1, 25, false), + '8100' => array(self::NUMERIC, 6, 6, false), + '8101' => array(self::NUMERIC, 10, 10, false), + '8102' => array(self::NUMERIC, 2, 2, false), + '90' => array(self::ALPHA_NUMERIC, 1, 30, false), + '91' => array(self::ALPHA_NUMERIC, 1, 30, false), + '92' => array(self::ALPHA_NUMERIC, 1, 30, false), + '93' => array(self::ALPHA_NUMERIC, 1, 30, false), + '94' => array(self::ALPHA_NUMERIC, 1, 30, false), + '95' => array(self::ALPHA_NUMERIC, 1, 30, false), + '96' => array(self::ALPHA_NUMERIC, 1, 30, false), + '97' => array(self::ALPHA_NUMERIC, 1, 30, false), + '98' => array(self::ALPHA_NUMERIC, 1, 30, false), + '99' => array(self::ALPHA_NUMERIC, 1, 30, false) + ); + + $this->setStrictMode(true); + $this->setTilde(true); + $this->setAllowsUnknownIdentifier(false); + $this->setNoLengthLimit(false); + } + + /** + * Gets the content checksum for an identifier. + * Do not pass the identifier code. + * + * @param string $content + * @return int + */ + public static function getAiContentChecksum($content) { + return self::calculateChecksumMod10($content); + } + + /** + * Enables or disables the strict mode. + * + * @param bool $strictMode + */ + public function setStrictMode($strictMode) { + $this->strictMode = $strictMode; + } + + /** + * Gets if the strict mode is activated. + * + * @return bool + */ + public function getStrictMode() { + return $this->strictMode; + } + + /** + * Allows unknown identifiers. + * + * @param bool $allow + */ + public function setAllowsUnknownIdentifier($allow) { + $this->allowsUnknownIdentifier = (bool)$allow; + } + + /** + * Gets if unkmown identifiers are allowed. + * + * @return bool + */ + public function getAllowsUnknownIdentifier() { + return $this->allowsUnknownIdentifier; + } + + /** + * Removes the limit of 48 characters. + * + * @param bool $noLengthLimit + */ + public function setNoLengthLimit($noLengthLimit) { + $this->noLengthLimit = (bool)$noLengthLimit; + } + + /** + * Gets if the limit of 48 characters is removed. + * + * @return bool + */ + public function getNoLengthLimit() { + return $this->noLengthLimit; + } + + /** + * Parses Text. + * + * @param string $text + */ + public function parse($text) { + parent::parse($this->parseGs1128($text)); + } + + /** + * Formats data for gs1-128. + * + * @return string + */ + private function formatGs1128() { + $formatedText = '~F1'; + $formatedLabel = ''; + $c = count($this->identifiersId); + + for ($i = 0; $i < $c; $i++) { + if ($i > 0) { + $formatedLabel .= ' '; + } + + if ($this->identifiersId[$i] !== null) { + $formatedLabel .= '(' . $this->identifiersId[$i] . ')'; + } + + $formatedText .= $this->identifiersId[$i]; + + $formatedLabel .= $this->identifiersContent[$i]; + $formatedText .= $this->identifiersContent[$i]; + + if (isset($this->identifiersAi[$this->identifiersId[$i]])) { + $ai_data = $this->identifiersAi[$this->identifiersId[$i]]; + } elseif (isset($this->identifiersId[$i][3])) { + $identifierWithVar = substr($this->identifiersId[$i], 0, -1) . 'y'; + $ai_data = isset($this->identifiersAi[$identifierWithVar]) ? $this->identifiersAi[$identifierWithVar] : null; + } else { + $ai_data = null; + } + + /* We'll check if we need to add a ~F1 () char */ + /* If we use the legacy mode, we always add a ~F1 () char between AIs */ + if ($ai_data !== null) { + if ((strlen($this->identifiersContent[$i]) < $ai_data[self::MAXLENGTH] && ($i + 1) !== $c) || (!$this->strictMode && ($i + 1) !== $c)) { + $formatedText .= '~F1'; + } + } elseif ($this->allowsUnknownIdentifier && $this->identifiersId[$i] === null && ($i + 1) !== $c) { + /* If this id is unknown, we add a ~F1 () char */ + $formatedText .= '~F1'; + } + } + + if ($this->noLengthLimit === false && (strlen(str_replace('~F1', chr(29), $formatedText)) - 1) > self::MAX_GS1128_CHARS) { + throw new BCGParseException('gs1128', 'The barcode can\'t contain more than ' . self::MAX_GS1128_CHARS . ' characters.'); + } + + $this->label = $formatedLabel; + return $formatedText; + } + + /** + * Parses the text to gs1-128. + * + * @param mixed $text + * @return mixed + */ + private function parseGs1128($text) { + /* We format correctly what the user gives */ + if (is_array($text)) { + $formatArray = array(); + foreach ($text as $content) { + if (is_array($content)) { /* double array */ + if (count($content) === 2) { + if (is_array($content[self::ID]) || is_array($content[self::CONTENT])) { + throw new BCGParseException('gs1128', 'Double arrays can\'t contain arrays.'); + } else { + $formatArray[] = '(' . $content[self::ID] . ')' . $content[self::CONTENT]; + } + } else { + throw new BCGParseException('gs1128', 'Double arrays must contain 2 values.'); + } + } else { /* simple array */ + $formatArray[] = $content; + } + } + + unset($text); + $text = $formatArray; + } else { /* string */ + $text = array($text); + } + + $textCount = count($text); + for ($cmpt = 0; $cmpt < $textCount; $cmpt++) { + /* We parse the content of the array */ + if (!$this->parseContent($text[$cmpt])) { + return; + } + } + + return $this->formatGs1128(); + } + + /** + * Splits the id and the content for each application identifiers (AIs). + * + * @param string $text + * @param int $cmpt + * @return bool + */ + private function parseContent($text) { + /* $yAlreadySet has 3 states: */ + /* null: There is no variable in the ID; true: the variable is already set; false: the variable is not set yet; */ + $content = null; + $yAlreadySet = null; + $realNameId = null; + $separatorsFound = 0; + $checksumAdded = 0; + $decimalPointRemoved = 0; + $toParse = str_replace('~F1', chr(29), $text); + $nbCharToParse = strlen($toParse); + $nbCharId = 0; + $isFormated = $toParse[0] === '(' ? true : false; + $maxCharId = $isFormated ? self::MAX_ID_FORMATED : self::MAX_ID_NOT_FORMATED; + $id = strtolower(substr($toParse, 0, min($maxCharId, $nbCharToParse))); + $id = $isFormated ? $this->findIdFormated($id, $yAlreadySet, $realNameId) : $this->findIdNotFormated($id, $yAlreadySet, $realNameId); + + if ($id === false) { + if ($this->allowsUnknownIdentifier === false) { + return false; + } + + $id = null; + $nbCharId = 0; + $content = $toParse; + } else { + $nbCharId = strlen($id) + ($isFormated ? 2 : 0); + $n = min($this->identifiersAi[$realNameId][self::MAXLENGTH], $nbCharToParse); + $content = substr($toParse, $nbCharId, $n); + } + + if ($id !== null) { + /* If we have an AI with an "y" var, we check if there is a decimal point in the next *MAXLENGTH* characters */ + /* if there is one, we take an extra character */ + if ($yAlreadySet !== null) { + if (strpos($content, '.') !== false || strpos($content, ',') !== false) { + $n++; + if ($n <= $nbCharToParse) { + /* We take an extra char */ + $content = substr($toParse, $nbCharId, $n); + } + } + } + } + + /* We check for separator */ + $separator = strpos($content, chr(29)); + if ($separator !== false) { + $content = substr($content, 0, $separator); + $separatorsFound++; + } + + if ($id !== null) { + /* We check the conformity */ + if (!$this->checkConformity($content, $id, $realNameId)) { + return false; + } + + /* We check the checksum */ + if (!$this->checkChecksum($content, $id, $realNameId, $checksumAdded)) { + return false; + } + + /* We check the vars */ + if (!$this->checkVars($content, $id, $yAlreadySet, $decimalPointRemoved)) { + return false; + } + } + + $this->identifiersId[] = $id; + $this->identifiersContent[] = $content; + + $nbCharLastContent = (((strlen($content) + $nbCharId) - $checksumAdded) + $decimalPointRemoved) + $separatorsFound; + if ($nbCharToParse - $nbCharLastContent > 0) { + /* If there is more than one content in this array, we parse again */ + $otherContent = substr($toParse, $nbCharLastContent, $nbCharToParse); + $nbCharOtherContent = strlen($otherContent); + + if ($otherContent[0] === chr(29)) { + $otherContent = substr($otherContent, 1); + $nbCharOtherContent--; + } + + if ($nbCharOtherContent > 0) { + $text = $otherContent; + return $this->parseContent($text); + } + } + + return true; + } + + /** + * Checks if an id exists. + * + * @param string $id + * @param bool $yAlreadySet + * @param string $realNameId + * @return bool + */ + private function idExists($id, &$yAlreadySet, &$realNameId) { + $yFound = isset($id[3]) && $id[3] === 'y'; + $idVarAdded = substr($id, 0, -1) . 'y'; + + if (isset($this->identifiersAi[$id])) { + if ($yFound) { + $yAlreadySet = false; + } + + $realNameId = $id; + return true; + } elseif (!$yFound && isset($this->identifiersAi[$idVarAdded])) { + /* if the id don't exist, we try to find this id with "y" at the last char */ + $yAlreadySet = true; + $realNameId = $idVarAdded; + return true; + } + + return false; + } + + /** + * Finds ID with formated content. + * + * @param string $id + * @param bool $yAlreadySet + * @param string $realNameId + * @return mixed + */ + private function findIdFormated($id, &$yAlreadySet, &$realNameId) { + $pos = strpos($id, ')'); + if ($pos === false) { + throw new BCGParseException('gs1128', 'Identifiers must have no more than 4 characters.'); + } else { + if ($pos < 3) { + throw new BCGParseException('gs1128', 'Identifiers must have at least 2 characters.'); + } + + $id = substr($id, 1, $pos - 1); + if ($this->idExists($id, $yAlreadySet, $realNameId)) { + return $id; + } + + if ($this->allowsUnknownIdentifier === false) { + throw new BCGParseException('gs1128', 'The identifier ' . $id . ' doesn\'t exist.'); + } + + return false; + } + } + + /** + * Finds ID with non-formated content. + * + * @param string $id + * @param bool $yAlreadySet + * @param string $realNameId + * @return mixed + */ + private function findIdNotFormated($id, &$yAlreadySet, &$realNameId) { + $tofind = $id; + + while (strlen($tofind) >= 2) { + if ($this->idExists($tofind, $yAlreadySet, $realNameId)) { + return $tofind; + } else { + $tofind = substr($tofind, 0, -1); + } + } + + if ($this->allowsUnknownIdentifier === false) { + throw new BCGParseException('gs1128', 'Error in formatting, can\'t find an identifier.'); + } + + return false; + } + + /** + * Checks confirmity of the content. + * + * @param string $content + * @param string $id + * @param string $realNameId + * @return bool + */ + private function checkConformity(&$content, $id, $realNameId) { + switch ($this->identifiersAi[$realNameId][self::KIND_OF_DATA]) { + case self::NUMERIC: + $content = str_replace(',', '.', $content); + if (!preg_match("/^[0-9.]+$/", $content)) { + throw new BCGParseException('gs1128', 'The value of "' . $id . '" must be numerical.'); + } + + break; + case self::DATE_YYMMDD: + $valid_date = true; + if (preg_match("/^[0-9]{6}$/", $content)) { + $year = substr($content, 0, 2); + $month = substr($content, 2, 2); + $day = substr($content, 4, 2); + + /* day can be 00 if we only need month and year */ + if (intval($month) < 1 || intval($month) > 12 || intval($day) < 0 || intval($day) > 31) { + $valid_date = false; + } + } else { + $valid_date = false; + } + + if (!$valid_date) { + throw new BCGParseException('gs1128', 'The value of "' . $id . '" must be in YYMMDD format.'); + } + + break; + } + + // We check the length of the content + $nbCharContent = strlen($content); + $checksumChar = 0; + $minlengthContent = $this->identifiersAi[$realNameId][self::MINLENGTH]; + $maxlengthContent = $this->identifiersAi[$realNameId][self::MAXLENGTH]; + + if ($this->identifiersAi[$realNameId][self::CHECKSUM]) { + $checksumChar++; + } + + if ($nbCharContent < ($minlengthContent - $checksumChar)) { + if ($minlengthContent === $maxlengthContent) { + throw new BCGParseException('gs1128', 'The value of "' . $id . '" must contain ' . $minlengthContent . ' character(s).'); + } else { + throw new BCGParseException('gs1128', 'The value of "' . $id . '" must contain between ' . $minlengthContent . ' and ' . $maxlengthContent . ' character(s).'); + } + } + + return true; + } + + /** + * Verifies the checksum. + * + * @param string $content + * @param string $id + * @param int $realNameId + * @param int $checksumAdded + * @return bool + */ + private function checkChecksum(&$content, $id, $realNameId, &$checksumAdded) { + if ($this->identifiersAi[$realNameId][self::CHECKSUM]) { + $nbCharContent = strlen($content); + $minlengthContent = $this->identifiersAi[$realNameId][self::MINLENGTH]; + if ($nbCharContent === ($minlengthContent - 1)) { + /* we need to calculate the checksum */ + $content .= self::getAiContentChecksum($content); + $checksumAdded++; + } elseif ($nbCharContent === $minlengthContent) { + /* we need to check the checksum */ + $checksum = self::getAiContentChecksum(substr($content, 0, -1)); + if (intval($content[$nbCharContent - 1]) !== $checksum) { + throw new BCGParseException('gs1128', 'The checksum of "(' . $id . ') ' . $content . '" must be: ' . $checksum); + } + } + } + + return true; + } + + /** + * Checks vars "y". + * + * @param string $content + * @param string $id + * @param bool $yAlreadySet + * @param int $decimalPointRemoved + * @return bool + */ + private function checkVars(&$content, &$id, $yAlreadySet, &$decimalPointRemoved) { + $nbCharContent = strlen($content); + /* We check for "y" var in AI */ + if ($yAlreadySet) { + /* We'll check if we have a decimal point */ + if (strpos($content, '.') !== false) { + throw new BCGParseException('gs1128', 'If you do not use any "y" variable, you have to insert a whole number.'); + } + } elseif ($yAlreadySet !== null) { + /* We need to replace the "y" var with the position of the decimal point */ + $pos = strpos($content, '.'); + if ($pos === false) { + $pos = $nbCharContent - 1; + } + + $id = str_replace('y', $nbCharContent - ($pos + 1), strtolower($id)); + $content = str_replace('.', '', $content); + $decimalPointRemoved++; + } + + return true; + } + + /** + * Checksum Mod10. + * + * @param int $content + * @return int + */ + private static function calculateChecksumMod10($content) { + // Calculating Checksum + // Consider the right-most digit of the message to be in an "odd" position, + // and assign odd/even to each character moving from right to left + // Odd Position = 3, Even Position = 1 + // Multiply it by the number + // Add all of that and do 10-(?mod10) + $odd = true; + $checksumValue = 0; + $c = strlen($content); + + for ($i = $c; $i > 0; $i--) { + if ($odd === true) { + $multiplier = 3; + $odd = false; + } else { + $multiplier = 1; + $odd = true; + } + + $checksumValue += ($content[$i - 1] * $multiplier); + } + + return (10 - $checksumValue % 10) % 10; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGi25.barcode.php b/application/libraries/barcodegen/class/BCGi25.barcode.php new file mode 100755 index 000000000..871aeabd5 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGi25.barcode.php @@ -0,0 +1,203 @@ +keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); + $this->code = array( + '00110', /* 0 */ + '10001', /* 1 */ + '01001', /* 2 */ + '11000', /* 3 */ + '00101', /* 4 */ + '10100', /* 5 */ + '01100', /* 6 */ + '00011', /* 7 */ + '10010', /* 8 */ + '01010' /* 9 */ + ); + + $this->setChecksum(false); + $this->setRatio(2); + } + + /** + * Sets the checksum. + * + * @param bool $checksum + */ + public function setChecksum($checksum) { + $this->checksum = (bool)$checksum; + } + + /** + * Sets the ratio of the black bar compared to the white bars. + * + * @param int $ratio + */ + public function setRatio($ratio) { + $this->ratio = $ratio; + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + $temp_text = $this->text; + + // Checksum + if ($this->checksum === true) { + $this->calculateChecksum(); + $temp_text .= $this->keys[$this->checksumValue]; + } + + // Starting Code + $this->drawChar($im, '0000', true); + + // Chars + $c = strlen($temp_text); + for ($i = 0; $i < $c; $i += 2) { + $temp_bar = ''; + $c2 = strlen($this->findCode($temp_text[$i])); + for ($j = 0; $j < $c2; $j++) { + $temp_bar .= substr($this->findCode($temp_text[$i]), $j, 1); + $temp_bar .= substr($this->findCode($temp_text[$i + 1]), $j, 1); + } + + $this->drawChar($im, $this->changeBars($temp_bar), true); + } + + // Ending Code + $this->drawChar($im, $this->changeBars('100'), true); + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $textlength = (3 + ($this->ratio + 1) * 2) * strlen($this->text); + $startlength = 4; + $checksumlength = 0; + if ($this->checksum === true) { + $checksumlength = (3 + ($this->ratio + 1) * 2); + } + + $endlength = 2 + ($this->ratio + 1); + + $w += $startlength + $textlength + $checksumlength + $endlength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Validates the input. + */ + protected function validate() { + $c = strlen($this->text); + if ($c === 0) { + throw new BCGParseException('i25', 'No data has been entered.'); + } + + // Checking if all chars are allowed + for ($i = 0; $i < $c; $i++) { + if (array_search($this->text[$i], $this->keys) === false) { + throw new BCGParseException('i25', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } + } + + // Must be even + if ($c % 2 !== 0 && $this->checksum === false) { + throw new BCGParseException('i25', 'i25 must contain an even amount of digits if checksum is false.'); + } elseif ($c % 2 === 0 && $this->checksum === true) { + throw new BCGParseException('i25', 'i25 must contain an odd amount of digits if checksum is true.'); + } + + parent::validate(); + } + + /** + * Overloaded method to calculate checksum. + */ + protected function calculateChecksum() { + // Calculating Checksum + // Consider the right-most digit of the message to be in an "even" position, + // and assign odd/even to each character moving from right to left + // Even Position = 3, Odd Position = 1 + // Multiply it by the number + // Add all of that and do 10-(?mod10) + $even = true; + $this->checksumValue = 0; + $c = strlen($this->text); + for ($i = $c; $i > 0; $i--) { + if ($even === true) { + $multiplier = 3; + $even = false; + } else { + $multiplier = 1; + $even = true; + } + + $this->checksumValue += $this->keys[$this->text[$i - 1]] * $multiplier; + } + + $this->checksumValue = (10 - $this->checksumValue % 10) % 10; + } + + /** + * Overloaded method to display the checksum. + */ + protected function processChecksum() { + if ($this->checksumValue === false) { // Calculate the checksum only once + $this->calculateChecksum(); + } + + if ($this->checksumValue !== false) { + return $this->keys[$this->checksumValue]; + } + + return false; + } + + /** + * Changes the size of the bars based on the ratio + * + * @param string $in + * @return string + */ + private function changeBars($in) { + if ($this->ratio > 1) { + $c = strlen($in); + for ($i = 0; $i < $c; $i++) { + $in[$i] = $in[$i] === '1' ? $this->ratio : $in[$i]; + } + } + + return $in; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGintelligentmail.barcode.php b/application/libraries/barcodegen/class/BCGintelligentmail.barcode.php new file mode 100755 index 000000000..4226abeea --- /dev/null +++ b/application/libraries/barcodegen/class/BCGintelligentmail.barcode.php @@ -0,0 +1,649 @@ +setQuietZone(true); + $this->setThickness(9); + } + + /** + * Gets the Quiet zone. + * + * @return bool + */ + public function getQuietZone() { + return $this->quietZone; + } + + /** + * Sets the Quiet zone. + * + * @param bool $quietZone + */ + public function setQuietZone($quietZone) { + $this->quietZone = (bool)$quietZone; + } + + /** + * Sets the tracking code. + * + * @param int $barcodeIdentifier 2-digit number. 2nd digit must be 0-4 + * @param int $serviceTypeIdentifier 3 digits + * @param int $mailerIdentifier 6 or 9 digits + * @param int $serialNumber 9 (if mailerId is 6) or 6 digits (if mailerId is 9) + */ + public function setTrackingCode($barcodeIdentifier, $serviceTypeIdentifier, $mailerIdentifier, $serialNumber) { + $barcodeIdentifier = (string)(int)$barcodeIdentifier; + $serviceTypeIdentifier = (int)$serviceTypeIdentifier; + $mailerIdentifier = (int)$mailerIdentifier; + $serialNumber = (string)(int)$serialNumber; + + $barcodeIdentifier = str_pad($barcodeIdentifier, 2, '0', STR_PAD_LEFT); + + if (strlen($barcodeIdentifier) !== 2) { + throw new BCGArgumentException('Barcode Identifier must contain 2 digits.', 'barcodeIdentifier'); + } + + $barcodeIdentifierSecondNumber = $barcodeIdentifier[1]; + if ($barcodeIdentifierSecondNumber !== '0' && $barcodeIdentifierSecondNumber !== '1' && $barcodeIdentifierSecondNumber !== '2' && $barcodeIdentifierSecondNumber !== '3' && $barcodeIdentifierSecondNumber !== '4') { + throw new BCGArgumentException('Barcode Identifier second digit must be a number between 0 and 4.', 'barcodeIdentifier'); + } + + if ($serviceTypeIdentifier < 0 || $serviceTypeIdentifier > 999) { + throw new BCGArgumentException('Service Type Identifier must be between 0 and 999.', 'serviceTypeIdentifier'); + } + + $mailerIdentifierLength = 6; + if ($mailerIdentifier > 899999) { + $mailerIdentifierLength = 9; + } + + if ($mailerIdentifierLength === 9 && strlen($serialNumber) > 6) { + throw new BCGArgumentException('If the Serial Number has more than 6 digits, the Mailer Identifier must be lower than 900000.', 'mailerIdentifier'); + } + + if ($mailerIdentifierLength === 9) { + if ($mailerIdentifierLength < 0 || $mailerIdentifier > 999999999) { + throw new BCGArgumentException('Mailer Identifier must be between 0 and 999999999.', 'mailerIdentifier'); + } + } + + $this->barcodeIdentifier = $barcodeIdentifier; + $this->serviceTypeIdentifier = str_pad($serviceTypeIdentifier, 3, '0', STR_PAD_LEFT); + $this->mailerIdentifier = str_pad($mailerIdentifier, $mailerIdentifierLength, '0', STR_PAD_LEFT); + $this->serialNumber = str_pad((int)$serialNumber, $mailerIdentifierLength === 6 ? 9 : 6, '0', STR_PAD_LEFT); + } + + /** + * Parses the text before displaying it. + * + * @param mixed $text + */ + public function parse($text) { + parent::parse($text); + + $number = self::executeStep1($this->text, $this->barcodeIdentifier, $this->serviceTypeIdentifier, $this->mailerIdentifier, $this->serialNumber); + $crc = self::executeStep2($number); + $codewords = self::executeStep3($number); + $codewords = self::executeStep4($codewords, $crc); + $characters = self::executeStep5($codewords, $crc); + $this->data = self::executeStep6($characters); + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + if ($this->quietZone) { + $this->positionX += 9; + } + + $c = strlen($this->data); + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, $this->data[$i]); + } + + $this->drawText($im, 0, 0, $this->positionX, $this->thickness + ($this->quietZone ? 4 : 0)); + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $w += 65 * 3; + $h += $this->thickness; + + // We remove the white on the right + $w -= 1.56; + + if ($this->quietZone) { + $w += 18; + $h += 4; + } + + return parent::getDimension($w, $h); + } + + /** + * Validates the input. + */ + protected function validate() { + // Tracking must have been entered + if ($this->barcodeIdentifier === null || $this->serviceTypeIdentifier === null || $this->mailerIdentifier === null || $this->serialNumber === null) { + throw new BCGParseException('intelligentmail', 'The tracking code must be set before calling the parse method.'); + } + + // Checking if all chars are allowed + $match = array(); + if (preg_match('/[^0-9]/', $this->text, $match)) { + throw new BCGParseException('intelligentmail', 'The character \'' . $match[0] . '\' is not allowed.'); + } + + // Must contain 0, 5, 9 or 11 chars + $c = strlen($this->text); + if ($c !== 0 && $c !== 5 && $c !== 9 && $c !== 11) { + throw new BCGParseException('intelligentmail', 'Must contain 0, 5, 9, or 11 characters.'); + } + + parent::validate(); + } + + /** + * Overloaded method for drawing special barcode. + * + * @param resource $im + * @param string $code + * @param boolean $startBar + */ + protected function drawChar($im, $code, $startBar = true) { + $y1 = 0; + $y2 = 0; + switch ($code) { + case 'A': + $y1 = 0; + $y2 = $this->thickness - ($this->thickness / 2.5); + break; + case 'D': + $y1 = 3.096; + $y2 = $this->thickness - 1; + break; + case 'F': + $y1 = 0; + $y2 = $this->thickness - 1; + break; + case 'T': + $y1 = 3.096; + $y2 = $this->thickness - ($this->thickness / 2.5); + break; + } + + if ($this->quietZone) { + $y1 += 2; + $y2 += 2; + } + + $this->drawFilledRectangle($im, $this->positionX, $y1, $this->positionX + 0.44, $y2, BCGBarcode::COLOR_FG); + $this->positionX += 3; + } + + /** + * Executes Step 1: Conversion of Data Fields into Binary Data + * + * @param string $text + * @param string $barcodeIdentifier + * @param string $serviceTypeIdentifier + * @param string $mailerIdentifier + * @param string $serialNumber + * @return string BCNumber + */ + private static function executeStep1($text, $barcodeIdentifier, $serviceTypeIdentifier, $mailerIdentifier, $serialNumber) { + $number = self::conversionRoutingCode($text); + $number = self::conversionTrackingCode($number, $barcodeIdentifier, $serviceTypeIdentifier, $mailerIdentifier, $serialNumber); + + return $number; + } + + /** + * Executes Step 2: Generation of 11-Bit CRC on Binary Data + * + * @param $number BCNumber + * @return int + */ + private static function executeStep2($number) { + $byteArray = str_pad(self::bcdecuc($number), 13, chr(0), STR_PAD_LEFT); + + $generatorPolynomial = 0x0f35; + $frameCheckSequence = 0x07ff; + $data = 0; + $byteIndex = 0; + $bit = 0; + + $data = (ord($byteArray[$byteIndex]) << 5) & 0xffff; + for ($bit = 2; $bit < 8; $bit++) { + if (($frameCheckSequence ^ $data) & 0x400) { + $frameCheckSequence = ($frameCheckSequence << 1) ^ $generatorPolynomial; + } else { + $frameCheckSequence = ($frameCheckSequence << 1); + } + + $frameCheckSequence &= 0x7ff; + $data <<= 1; + $data &= 0xffff; + } + + for ($byteIndex = 1; $byteIndex < 13; $byteIndex++) { + $data = (ord($byteArray[$byteIndex]) << 3) & 0xffff; + for ($bit = 0; $bit < 8; $bit++) { + if (($frameCheckSequence ^ $data) & 0x0400) { + $frameCheckSequence = ($frameCheckSequence << 1) ^ $generatorPolynomial; + } else { + $frameCheckSequence = ($frameCheckSequence << 1); + } + + $frameCheckSequence &= 0x7ff; + $data <<= 1; + $data &= 0xffff; + } + } + + return $frameCheckSequence; + } + + /** + * Executes Step 3: Conversion from Binary Data to Codewords + * + * @param string $number BCNumber + * @return int[] + */ + private static function executeStep3($number) { + $codewords = array(); + $codewords[9] = (int)bcmod($number, '636'); + $number = bcdiv($number, '636', 0); + + for ($i = 8; $i >= 0; $i--) { + $codewords[$i] = (int)bcmod($number, '1365'); + $number = bcdiv($number, '1365', 0); + } + + return $codewords; + } + + /** + * Executes Step 4: Inserting Additional Information into Codewords + * + * @param int[] $codewords + * @param int $crc + * @return int[] + */ + private static function executeStep4($codewords, $crc) { + $codewords[9] *= 2; + if ($crc & 0x400) { + $codewords[0] += 659; + } + + return $codewords; + } + + /** + * Executes Step 5: Conversion from Codewords to Characters + * + * @param int[] $codewords + * @param int $crc + * @return int[] + */ + private static function executeStep5($codewords, $crc) { + $characters = array(); + for ($i = 0; $i < 10; $i++) { + if ($codewords[$i] <= 1286) { + $characters[$i] = self::$characterTable1[$codewords[$i]]; + } else { + $characters[$i] = self::$characterTable2[$codewords[$i] - 1287]; + } + } + + for ($i = 0; $i < 10; $i++) { + $mask = 1 << $i; + if ($crc & $mask) { + $characters[$i] ^= 0x1fff; + } + } + + return $characters; + } + + /** + * Executes Step 6: Conversion from Characters to the Intelligent Mail Barcode + * + * @param int[] $characters + * @return string + */ + private static function executeStep6($characters) { + $bars = ''; + for ($i = 0; $i < 65; $i++) { + $barPosition = self::$barPositions[$i]; + $descender = $barPosition[0]; + $ascender = $barPosition[1]; + $extenderDescender = !!($characters[$descender[0]] & (1 << $descender[1])); + $extenderAscender = !!($characters[$ascender[0]] & (1 << $ascender[1])); + + if ($extenderDescender && $extenderAscender) { + $bars .= 'F'; + } elseif ($extenderDescender) { + $bars .= 'D'; + } elseif ($extenderAscender) { + $bars .= 'A'; + } else { + $bars .= 'T'; + } + } + + return $bars; + } + + /** + * Converts the routing code zipcode. + * + * @param string $zipcode + * @return string BCNumber + */ + private static function conversionRoutingCode($zipcode) { + $number = $zipcode; + switch (strlen($zipcode)) { + case 11: + $number = bcadd($number, '1000000000', 0); + case 9: + $number = bcadd($number, '100000', 0); + case 5: + $number = bcadd($number, '1', 0); + default: + return $number; + } + } + + /** + * Converts the tracking code number. + * + * @param string $number BCNumber + * @param string $barcodeIdentifier + * @param string $serviceTypeIdentifier + * @param string $mailerIdentifier + * @param string $serialNumber + * @return string BCNumber + */ + private static function conversionTrackingCode($number, $barcodeIdentifier, $serviceTypeIdentifier, $mailerIdentifier, $serialNumber) { + $number = bcmul($number, 10, 0); + $number = bcadd($number, $barcodeIdentifier[0], 0); + $number = bcmul($number, 5, 0); + $number = bcadd($number, $barcodeIdentifier[1], 0); + + $temp = $serviceTypeIdentifier . $mailerIdentifier . $serialNumber; + for ($i = 0; $i < 18; $i++) { + $number = bcmul($number, 10, 0); + $number = bcadd($number, $temp[$i], 0); + } + + return $number; + } + + /** + * Transforms a BCNumber into unsigned char*. + * + * @param string $dec BCNumber + * @param string + */ + private static function bcdecuc($dec) { + $last = bcmod($dec, 256); + $remain = bcdiv(bcsub($dec, $last), 256, 0); + + if ($remain == 0) { + return pack('C', $last); + } else { + return self::bcdecuc($remain) . pack('C', $last); + } + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGisbn.barcode.php b/application/libraries/barcodegen/class/BCGisbn.barcode.php new file mode 100755 index 000000000..cba00d6c2 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGisbn.barcode.php @@ -0,0 +1,164 @@ +setGS1($gs1); + } + + /** + * Adds the default label. + */ + protected function addDefaultLabel() { + if ($this->isDefaultEanLabelEnabled()) { + $isbn = $this->createISBNText(); + $font = $this->font; + + $topLabel = new BCGLabel($isbn, $font, BCGLabel::POSITION_TOP, BCGLabel::ALIGN_CENTER); + + $this->addLabel($topLabel); + } + + parent::addDefaultLabel(); + } + + /** + * Sets the first numbers of the barcode. + * - GS1_AUTO: Adds 978 before the code + * - GS1_PREFIX978: Adds 978 before the code + * - GS1_PREFIX979: Adds 979 before the code + * + * @param int $gs1 + */ + public function setGS1($gs1) { + $gs1 = (int)$gs1; + if ($gs1 !== self::GS1_AUTO && $gs1 !== self::GS1_PREFIX978 && $gs1 !== self::GS1_PREFIX979) { + throw new BCGArgumentException('The GS1 argument must be BCGisbn::GS1_AUTO, BCGisbn::GS1_PREFIX978, or BCGisbn::GS1_PREFIX979', 'gs1'); + } + + $this->gs1 = $gs1; + } + + /** + * Check chars allowed. + */ + protected function checkCharsAllowed() { + $c = strlen($this->text); + + // Special case, if we have 10 digits, the last one can be X + if ($c === 10) { + if (array_search($this->text[9], $this->keys) === false && $this->text[9] !== 'X') { + throw new BCGParseException('isbn', 'The character \'' . $this->text[9] . '\' is not allowed.'); + } + + // Drop the last char + $this->text = substr($this->text, 0, 9); + } + + return parent::checkCharsAllowed(); + } + + /** + * Check correct length. + */ + protected function checkCorrectLength() { + $c = strlen($this->text); + + // If we have 13 chars just flush the last one + if ($c === 13) { + $this->text = substr($this->text, 0, 12); + } elseif ($c === 9 || $c === 10) { + if ($c === 10) { + // Before dropping it, we check if it's legal + if (array_search($this->text[9], $this->keys) === false && $this->text[9] !== 'X') { + throw new BCGParseException('isbn', 'The character \'' . $this->text[9] . '\' is not allowed.'); + } + + $this->text = substr($this->text, 0, 9); + } + + if ($this->gs1 === self::GS1_AUTO || $this->gs1 === self::GS1_PREFIX978) { + $this->text = '978' . $this->text; + } elseif ($this->gs1 === self::GS1_PREFIX979) { + $this->text = '979' . $this->text; + } + } elseif ($c !== 12) { + throw new BCGParseException('isbn', 'The code parsed must be 9, 10, 12, or 13 digits long.'); + } + } + + /** + * Creates the ISBN text. + * + * @return string + */ + private function createISBNText() { + $isbn = ''; + if (!empty($this->text)) { + // We try to create the ISBN Text... the hyphen really depends the ISBN agency. + // We just put one before the checksum and one after the GS1 if present. + $c = strlen($this->text); + if ($c === 12 || $c === 13) { + // If we have 13 characters now, just transform it temporarily to find the checksum... + // Further in the code we take care of that anyway. + $lastCharacter = ''; + if ($c === 13) { + $lastCharacter = $this->text[12]; + $this->text = substr($this->text, 0, 12); + } + + $checksum = $this->processChecksum(); + $isbn = 'ISBN ' . substr($this->text, 0, 3) . '-' . substr($this->text, 3, 9) . '-' . $checksum; + + // Put the last character back + if ($c === 13) { + $this->text .= $lastCharacter; + } + } elseif ($c === 9 || $c === 10) { + $checksum = 0; + for ($i = 10; $i >= 2; $i--) { + $checksum += $this->text[10 - $i] * $i; + } + + $checksum = 11 - $checksum % 11; + if ($checksum === 10) { + $checksum = 'X'; // Changing type + } + + $isbn = 'ISBN ' . substr($this->text, 0, 9) . '-' . $checksum; + } + } + + return $isbn; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGmsi.barcode.php b/application/libraries/barcodegen/class/BCGmsi.barcode.php new file mode 100755 index 000000000..92bb77ff9 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGmsi.barcode.php @@ -0,0 +1,184 @@ +keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); + $this->code = array( + '01010101', /* 0 */ + '01010110', /* 1 */ + '01011001', /* 2 */ + '01011010', /* 3 */ + '01100101', /* 4 */ + '01100110', /* 5 */ + '01101001', /* 6 */ + '01101010', /* 7 */ + '10010101', /* 8 */ + '10010110' /* 9 */ + ); + + $this->setChecksum(0); + } + + /** + * Sets how many checksums we display. 0 to 2. + * + * @param int $checksum + */ + public function setChecksum($checksum) { + $checksum = intval($checksum); + if ($checksum < 0 && $checksum > 2) { + throw new BCGArgumentException('The checksum must be between 0 and 2 included.', 'checksum'); + } + + $this->checksum = $checksum; + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + // Checksum + $this->calculateChecksum(); + + // Starting Code + $this->drawChar($im, '10', true); + + // Chars + $c = strlen($this->text); + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, $this->findCode($this->text[$i]), true); + } + + $c = count($this->checksumValue); + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, $this->findCode($this->checksumValue[$i]), true); + } + + // Ending Code + $this->drawChar($im, '010', true); + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $textlength = 12 * strlen($this->text); + $startlength = 3; + $checksumlength = $this->checksum * 12; + $endlength = 4; + + $w += $startlength + $textlength + $checksumlength + $endlength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Validates the input. + */ + protected function validate() { + $c = strlen($this->text); + if ($c === 0) { + throw new BCGParseException('msi', 'No data has been entered.'); + } + + // Checking if all chars are allowed + for ($i = 0; $i < $c; $i++) { + if (array_search($this->text[$i], $this->keys) === false) { + throw new BCGParseException('msi', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } + } + } + + /** + * Overloaded method to calculate checksum. + */ + protected function calculateChecksum() { + // Forming a new number + // If the original number is even, we take all even position + // If the original number is odd, we take all odd position + // 123456 = 246 + // 12345 = 135 + // Multiply by 2 + // Add up all the digit in the result (270 : 2+7+0) + // Add up other digit not used. + // 10 - (? Modulo 10). If result = 10, change to 0 + $last_text = $this->text; + $this->checksumValue = array(); + for ($i = 0; $i < $this->checksum; $i++) { + $new_text = ''; + $new_number = 0; + $c = strlen($last_text); + if ($c % 2 === 0) { // Even + $starting = 1; + } else { + $starting = 0; + } + + for ($j = $starting; $j < $c; $j += 2) { + $new_text .= $last_text[$j]; + } + + $new_text = strval(intval($new_text) * 2); + $c2 = strlen($new_text); + for ($j = 0; $j < $c2; $j++) { + $new_number += intval($new_text[$j]); + } + + for ($j = ($starting === 0) ? 1 : 0; $j < $c; $j += 2) { + $new_number += intval($last_text[$j]); + } + + $new_number = (10 - $new_number % 10) % 10; + $this->checksumValue[] = $new_number; + $last_text .= $new_number; + } + } + + /** + * Overloaded method to display the checksum. + */ + protected function processChecksum() { + if ($this->checksumValue === false) { // Calculate the checksum only once + $this->calculateChecksum(); + } + + if ($this->checksumValue !== false) { + $ret = ''; + $c = count($this->checksumValue); + for ($i = 0; $i < $c; $i++) { + $ret .= $this->keys[$this->checksumValue[$i]]; + } + + return $ret; + } + + return false; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGothercode.barcode.php b/application/libraries/barcodegen/class/BCGothercode.barcode.php new file mode 100755 index 000000000..bb7e6b0d8 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGothercode.barcode.php @@ -0,0 +1,88 @@ +keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + $this->drawChar($im, $this->text, true); + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + } + + /** + * Gets the label. + * If the label was set to BCGBarcode1D::AUTO_LABEL, the label will display the value from the text parsed. + * + * @return string + */ + public function getLabel() { + $label = $this->label; + if ($this->label === BCGBarcode1D::AUTO_LABEL) { + $label = ''; + } + + return $label; + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $array = str_split($this->text, 1); + $textlength = array_sum($array) + count($array); + + $w += $textlength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Validates the input. + */ + protected function validate() { + $c = strlen($this->text); + if ($c === 0) { + throw new BCGParseException('othercode', 'No data has been entered.'); + } + + // Checking if all chars are allowed + for ($i = 0; $i < $c; $i++) { + if (array_search($this->text[$i], $this->keys) === false) { + throw new BCGParseException('othercode', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } + } + + parent::validate(); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGpostnet.barcode.php b/application/libraries/barcodegen/class/BCGpostnet.barcode.php new file mode 100755 index 000000000..cb0eac2a0 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGpostnet.barcode.php @@ -0,0 +1,138 @@ +keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); + $this->code = array( + '11000', /* 0 */ + '00011', /* 1 */ + '00101', /* 2 */ + '00110', /* 3 */ + '01001', /* 4 */ + '01010', /* 5 */ + '01100', /* 6 */ + '10001', /* 7 */ + '10010', /* 8 */ + '10100' /* 9 */ + ); + + $this->setThickness(9); + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + // Checksum + $checksum = 0; + $c = strlen($this->text); + for ($i = 0; $i < $c; $i++) { + $checksum += intval($this->text[$i]); + } + + $checksum = 10 - ($checksum % 10); + + // Starting Code + $this->drawChar($im, '1'); + + // Code + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, $this->findCode($this->text[$i])); + } + + // Checksum + $this->drawChar($im, $this->findCode($checksum)); + + // Ending Code + $this->drawChar($im, '1'); + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $c = strlen($this->text); + $startlength = 3; + $textlength = $c * 5 * 3; + $checksumlength = 5 * 3; + $endlength = 3; + + // We remove the white on the right + $removelength = -1.56; + + $w += $startlength + $textlength + $checksumlength + $endlength + $removelength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Validates the input. + */ + protected function validate() { + $c = strlen($this->text); + if ($c === 0) { + throw new BCGParseException('postnet', 'No data has been entered.'); + } + + // Checking if all chars are allowed + for ($i = 0; $i < $c; $i++) { + if (array_search($this->text[$i], $this->keys) === false) { + throw new BCGParseException('postnet', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } + } + + // Must contain 5, 9 or 11 chars + if ($c !== 5 && $c !== 9 && $c !== 11) { + throw new BCGParseException('postnet', 'Must contain 5, 9, or 11 characters.'); + } + + parent::validate(); + } + + /** + * Overloaded method for drawing special barcode. + * + * @param resource $im + * @param string $code + * @param boolean $startBar + */ + protected function drawChar($im, $code, $startBar = true) { + $c = strlen($code); + for ($i = 0; $i < $c; $i++) { + if ($code[$i] === '0') { + $posY = $this->thickness - ($this->thickness / 2.5); + } else { + $posY = 0; + } + + $this->drawFilledRectangle($im, $this->positionX, $posY, $this->positionX + 0.44, $this->thickness - 1, BCGBarcode::COLOR_FG); + $this->positionX += 3; + } + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGs25.barcode.php b/application/libraries/barcodegen/class/BCGs25.barcode.php new file mode 100755 index 000000000..6dc10e27e --- /dev/null +++ b/application/libraries/barcodegen/class/BCGs25.barcode.php @@ -0,0 +1,170 @@ + 1/3 or 1/2 for the big bar + * + *-------------------------------------------------------------------- + * Copyright (C) Jean-Sebastien Goupil + * http://www.barcodephp.com + */ +include_once('BCGParseException.php'); +include_once('BCGBarcode1D.php'); + +class BCGs25 extends BCGBarcode1D { + private $checksum; + + /** + * Constructor. + */ + public function __construct() { + parent::__construct(); + + $this->keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); + $this->code = array( + '0000202000', /* 0 */ + '2000000020', /* 1 */ + '0020000020', /* 2 */ + '2020000000', /* 3 */ + '0000200020', /* 4 */ + '2000200000', /* 5 */ + '0020200000', /* 6 */ + '0000002020', /* 7 */ + '2000002000', /* 8 */ + '0020002000' /* 9 */ + ); + + $this->setChecksum(false); + } + + /** + * Sets if we display the checksum. + * + * @param bool $checksum + */ + public function setChecksum($checksum) { + $this->checksum = (bool)$checksum; + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + $temp_text = $this->text; + + // Checksum + if ($this->checksum === true) { + $this->calculateChecksum(); + $temp_text .= $this->keys[$this->checksumValue]; + } + + // Starting Code + $this->drawChar($im, '101000', true); + + // Chars + $c = strlen($temp_text); + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, $this->findCode($temp_text[$i]), true); + } + + // Ending Code + $this->drawChar($im, '10001', true); + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $c = strlen($this->text); + $startlength = 8; + $textlength = $c * 14; + $checksumlength = 0; + if ($c % 2 !== 0) { + $checksumlength = 14; + } + + $endlength = 7; + + $w += $startlength + $textlength + $checksumlength + $endlength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Validates the input. + */ + protected function validate() { + $c = strlen($this->text); + if ($c === 0) { + throw new BCGParseException('s25', 'No data has been entered.'); + } + + // Checking if all chars are allowed + for ($i = 0; $i < $c; $i++) { + if (array_search($this->text[$i], $this->keys) === false) { + throw new BCGParseException('s25', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } + } + + // Must be even + if ($c % 2 !== 0 && $this->checksum === false) { + throw new BCGParseException('s25', 's25 must contain an even amount of digits if checksum is false.'); + } elseif ($c % 2 === 0 && $this->checksum === true) { + throw new BCGParseException('s25', 's25 must contain an odd amount of digits if checksum is true.'); + } + + parent::validate(); + } + + /** + * Overloaded method to calculate checksum. + */ + protected function calculateChecksum() { + // Calculating Checksum + // Consider the right-most digit of the message to be in an "even" position, + // and assign odd/even to each character moving from right to left + // Even Position = 3, Odd Position = 1 + // Multiply it by the number + // Add all of that and do 10-(?mod10) + $even = true; + $this->checksumValue = 0; + $c = strlen($this->text); + for ($i = $c; $i > 0; $i--) { + if ($even === true) { + $multiplier = 3; + $even = false; + } else { + $multiplier = 1; + $even = true; + } + + $this->checksumValue += $this->keys[$this->text[$i - 1]] * $multiplier; + } + $this->checksumValue = (10 - $this->checksumValue % 10) % 10; + } + + /** + * Overloaded method to display the checksum. + */ + protected function processChecksum() { + if ($this->checksumValue === false) { // Calculate the checksum only once + $this->calculateChecksum(); + } + + if ($this->checksumValue !== false) { + return $this->keys[$this->checksumValue]; + } + + return false; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGupca.barcode.php b/application/libraries/barcodegen/class/BCGupca.barcode.php new file mode 100755 index 000000000..828bb8f07 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGupca.barcode.php @@ -0,0 +1,146 @@ +text = '0' . $this->text; // We will remove it at the end... don't worry + + parent::draw($im); + + // We remove the 0 in front, as we said :) + $this->text = substr($this->text, 1); + } + + /** + * Draws the extended bars on the image. + * + * @param resource $im + * @param int $plus + */ + protected function drawExtendedBars($im, $plus) { + $temp_text = $this->text . $this->keys[$this->checksumValue]; + $rememberX = $this->positionX; + $rememberH = $this->thickness; + + // We increase the bars + // First 2 Bars + $this->thickness = $this->thickness + intval($plus / $this->scale); + $this->positionX = 0; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + $this->positionX += 2; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + + // Attemping to increase the 2 following bars + $this->positionX += 1; + $temp_value = $this->findCode($temp_text[1]); + $this->drawChar($im, $temp_value, false); + + // Center Guard Bar + $this->positionX += 36; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + $this->positionX += 2; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + + // Attemping to increase the 2 last bars + $this->positionX += 37; + $temp_value = $this->findCode($temp_text[12]); + $this->drawChar($im, $temp_value, true); + + // Completly last bars + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + $this->positionX += 2; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + + $this->positionX = $rememberX; + $this->thickness = $rememberH; + } + + /** + * Adds the default label. + */ + protected function addDefaultLabel() { + if ($this->isDefaultEanLabelEnabled()) { + $this->processChecksum(); + $label = $this->getLabel(); + $font = $this->font; + + $this->labelLeft = new BCGLabel(substr($label, 0, 1), $font, BCGLabel::POSITION_LEFT, BCGLabel::ALIGN_BOTTOM); + $this->labelLeft->setSpacing(4 * $this->scale); + + $this->labelCenter1 = new BCGLabel(substr($label, 1, 5), $font, BCGLabel::POSITION_BOTTOM, BCGLabel::ALIGN_LEFT); + $labelCenter1Dimension = $this->labelCenter1->getDimension(); + $this->labelCenter1->setOffset(($this->scale * 44 - $labelCenter1Dimension[0]) / 2 + $this->scale * 6); + + $this->labelCenter2 = new BCGLabel(substr($label, 6, 5), $font, BCGLabel::POSITION_BOTTOM, BCGLabel::ALIGN_LEFT); + $this->labelCenter2->setOffset(($this->scale * 44 - $labelCenter1Dimension[0]) / 2 + $this->scale * 45); + + $this->labelRight = new BCGLabel($this->keys[$this->checksumValue], $font, BCGLabel::POSITION_RIGHT, BCGLabel::ALIGN_BOTTOM); + $this->labelRight->setSpacing(4 * $this->scale); + + if ($this->alignLabel) { + $labelDimension = $this->labelCenter1->getDimension(); + $this->labelLeft->setOffset($labelDimension[1]); + $this->labelRight->setOffset($labelDimension[1]); + } else { + $labelDimension = $this->labelLeft->getDimension(); + $this->labelLeft->setOffset($labelDimension[1] / 2); + $labelDimension = $this->labelLeft->getDimension(); + $this->labelRight->setOffset($labelDimension[1] / 2); + } + + $this->addLabel($this->labelLeft); + $this->addLabel($this->labelCenter1); + $this->addLabel($this->labelCenter2); + $this->addLabel($this->labelRight); + } + } + + /** + * Check correct length. + */ + protected function checkCorrectLength() { + // If we have 12 chars, just flush the last one without throwing anything + $c = strlen($this->text); + if ($c === 12) { + $this->text = substr($this->text, 0, 11); + } elseif ($c !== 11) { + throw new BCGParseException('upca', 'Must contain 11 digits, the 12th digit is automatically added.'); + } + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGupce.barcode.php b/application/libraries/barcodegen/class/BCGupce.barcode.php new file mode 100755 index 000000000..f22c408cd --- /dev/null +++ b/application/libraries/barcodegen/class/BCGupce.barcode.php @@ -0,0 +1,336 @@ +keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); + + // Odd Parity starting with a space + // Even Parity is the inverse (0=0012) starting with a space + $this->code = array( + '2100', /* 0 */ + '1110', /* 1 */ + '1011', /* 2 */ + '0300', /* 3 */ + '0021', /* 4 */ + '0120', /* 5 */ + '0003', /* 6 */ + '0201', /* 7 */ + '0102', /* 8 */ + '2001' /* 9 */ + ); + + // Parity, 0=Odd, 1=Even for manufacturer code. Depending on 1st System Digit and Checksum + $this->codeParity = array( + array( + array(1, 1, 1, 0, 0, 0), /* 0,0 */ + array(1, 1, 0, 1, 0, 0), /* 0,1 */ + array(1, 1, 0, 0, 1, 0), /* 0,2 */ + array(1, 1, 0, 0, 0, 1), /* 0,3 */ + array(1, 0, 1, 1, 0, 0), /* 0,4 */ + array(1, 0, 0, 1, 1, 0), /* 0,5 */ + array(1, 0, 0, 0, 1, 1), /* 0,6 */ + array(1, 0, 1, 0, 1, 0), /* 0,7 */ + array(1, 0, 1, 0, 0, 1), /* 0,8 */ + array(1, 0, 0, 1, 0, 1) /* 0,9 */ + ), + array( + array(0, 0, 0, 1, 1, 1), /* 0,0 */ + array(0, 0, 1, 0, 1, 1), /* 0,1 */ + array(0, 0, 1, 1, 0, 1), /* 0,2 */ + array(0, 0, 1, 1, 1, 0), /* 0,3 */ + array(0, 1, 0, 0, 1, 1), /* 0,4 */ + array(0, 1, 1, 0, 0, 1), /* 0,5 */ + array(0, 1, 1, 1, 0, 0), /* 0,6 */ + array(0, 1, 0, 1, 0, 1), /* 0,7 */ + array(0, 1, 0, 1, 1, 0), /* 0,8 */ + array(0, 1, 1, 0, 1, 0) /* 0,9 */ + ) + ); + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + $this->calculateChecksum(); + + // Starting Code + $this->drawChar($im, '000', true); + $c = strlen($this->upce); + for ($i = 0; $i < $c; $i++) { + $this->drawChar($im, self::inverse($this->findCode($this->upce[$i]), $this->codeParity[intval($this->text[0])][$this->checksumValue][$i]), false); + } + + // Draw Center Guard Bar + $this->drawChar($im, '00000', false); + + // Draw Right Bar + $this->drawChar($im, '0', true); + $this->text = $this->text[0] . $this->upce; + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + + if ($this->isDefaultEanLabelEnabled()) { + $dimension = $this->labelCenter->getDimension(); + $this->drawExtendedBars($im, $dimension[1] - 2); + } + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $startlength = 3; + $centerlength = 5; + $textlength = 6 * 7; + $endlength = 1; + + $w += $startlength + $centerlength + $textlength + $endlength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Adds the default label. + */ + protected function addDefaultLabel() { + if ($this->isDefaultEanLabelEnabled()) { + $this->processChecksum(); + $font = $this->font; + + $this->labelLeft = new BCGLabel(substr($this->text, 0, 1), $font, BCGLabel::POSITION_LEFT, BCGLabel::ALIGN_BOTTOM); + $labelLeftDimension = $this->labelLeft->getDimension(); + $this->labelLeft->setSpacing(8); + $this->labelLeft->setOffset($labelLeftDimension[1] / 2); + + $this->labelCenter = new BCGLabel($this->upce, $font, BCGLabel::POSITION_BOTTOM, BCGLabel::ALIGN_LEFT); + $labelCenterDimension = $this->labelCenter->getDimension(); + $this->labelCenter->setOffset(($this->scale * 46 - $labelCenterDimension[0]) / 2 + $this->scale * 2); + + $this->labelRight = new BCGLabel($this->keys[$this->checksumValue], $font, BCGLabel::POSITION_RIGHT, BCGLabel::ALIGN_BOTTOM); + $labelRightDimension = $this->labelRight->getDimension(); + $this->labelRight->setSpacing(8); + $this->labelRight->setOffset($labelRightDimension[1] / 2); + + $this->addLabel($this->labelLeft); + $this->addLabel($this->labelCenter); + $this->addLabel($this->labelRight); + } + } + + /** + * Checks if the default ean label is enabled. + * + * @return bool + */ + protected function isDefaultEanLabelEnabled() { + $label = $this->getLabel(); + $font = $this->font; + return $label !== null && $label !== '' && $font !== null && $this->defaultLabel !== null; + } + + /** + * Validates the input. + */ + protected function validate() { + $c = strlen($this->text); + if ($c === 0) { + throw new BCGParseException('upce', 'No data has been entered.'); + } + + // Checking if all chars are allowed + for ($i = 0; $i < $c; $i++) { + if (array_search($this->text[$i], $this->keys) === false) { + throw new BCGParseException('upce', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } + } + + // Must contain 11 chars + // Must contain 6 chars (if starting with upce directly) + // First Chars must be 0 or 1 + if ($c !== 11 && $c !== 6) { + throw new BCGParseException('upce', 'You must provide a UPC-A (11 characters) or a UPC-E (6 characters).'); + } elseif ($this->text[0] !== '0' && $this->text[0] !== '1' && $c !== 6) { + throw new BCGParseException('upce', 'UPC-A must start with 0 or 1 to be converted to UPC-E.'); + } + + // Convert part + $this->upce = ''; + if ($c !== 6) { + // Checking if UPC-A is convertible + $temp1 = substr($this->text, 3, 3); + if ($temp1 === '000' || $temp1 === '100' || $temp1 === '200') { // manufacturer code ends with 100, 200 or 300 + if (substr($this->text, 6, 2) === '00') { // Product must start with 00 + $this->upce = substr($this->text, 1, 2) . substr($this->text, 8, 3) . substr($this->text, 3, 1); + } + } elseif (substr($this->text, 4, 2) === '00') { // manufacturer code ends with 00 + if (substr($this->text, 6, 3) === '000') { // Product must start with 000 + $this->upce = substr($this->text, 1, 3) . substr($this->text, 9, 2) . '3'; + } + } elseif (substr($this->text, 5, 1) === '0') { // manufacturer code ends with 0 + if (substr($this->text, 6, 4) === '0000') { // Product must start with 0000 + $this->upce = substr($this->text, 1, 4) . substr($this->text, 10, 1) . '4'; + } + } else { // No zero leading at manufacturer code + $temp2 = intval(substr($this->text, 10, 1)); + if (substr($this->text, 6, 4) === '0000' && $temp2 >= 5 && $temp2 <= 9) { // Product must start with 0000 and must end by 5, 6, 7, 8 or 9 + $this->upce = substr($this->text, 1, 5) . substr($this->text, 10, 1); + } + } + } else { + $this->upce = $this->text; + } + + if ($this->upce === '') { + throw new BCGParseException('upce', 'Your UPC-A can\'t be converted to UPC-E.'); + } + + if ($c === 6) { + $upca = ''; + + // We convert UPC-E to UPC-A to find the checksum + if ($this->text[5] === '0' || $this->text[5] === '1' || $this->text[5] === '2') { + $upca = substr($this->text, 0, 2) . $this->text[5] . '0000' . substr($this->text, 2, 3); + } elseif ($this->text[5] === '3') { + $upca = substr($this->text, 0, 3) . '00000' . substr($this->text, 3, 2); + } elseif ($this->text[5] === '4') { + $upca = substr($this->text, 0, 4) . '00000' . $this->text[4]; + } else { + $upca = substr($this->text, 0, 5) . '0000' . $this->text[5]; + } + + $this->text = '0' . $upca; + } + + parent::validate(); + } + + /** + * Overloaded method to calculate checksum. + */ + protected function calculateChecksum() { + // Calculating Checksum + // Consider the right-most digit of the message to be in an "odd" position, + // and assign odd/even to each character moving from right to left + // Odd Position = 3, Even Position = 1 + // Multiply it by the number + // Add all of that and do 10-(?mod10) + $odd = true; + $this->checksumValue = 0; + $c = strlen($this->text); + for ($i = $c; $i > 0; $i--) { + if ($odd === true) { + $multiplier = 3; + $odd = false; + } else { + $multiplier = 1; + $odd = true; + } + + if (!isset($this->keys[$this->text[$i - 1]])) { + return; + } + + $this->checksumValue += $this->keys[$this->text[$i - 1]] * $multiplier; + } + + $this->checksumValue = (10 - $this->checksumValue % 10) % 10; + } + + /** + * Overloaded method to display the checksum. + */ + protected function processChecksum() { + if ($this->checksumValue === false) { // Calculate the checksum only once + $this->calculateChecksum(); + } + + if ($this->checksumValue !== false) { + return $this->keys[$this->checksumValue]; + } + + return false; + } + + /** + * Draws the extended bars on the image. + * + * @param resource $im + * @param int $plus + */ + protected function drawExtendedBars($im, $plus) { + $rememberX = $this->positionX; + $rememberH = $this->thickness; + + // We increase the bars + $this->thickness = $this->thickness + intval($plus / $this->scale); + $this->positionX = 0; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + $this->positionX += 2; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + + // Last Bars + $this->positionX += 46; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + $this->positionX += 2; + $this->drawSingleBar($im, BCGBarcode::COLOR_FG); + + $this->positionX = $rememberX; + $this->thickness = $rememberH; + } + + /** + * Inverses the string when the $inverse parameter is equal to 1. + * + * @param string $text + * @param int $inverse + * @return string + */ + private static function inverse($text, $inverse = 1) { + if ($inverse === 1) { + $text = strrev($text); + } + + return $text; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGupcext2.barcode.php b/application/libraries/barcodegen/class/BCGupcext2.barcode.php new file mode 100755 index 000000000..3f1be1655 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGupcext2.barcode.php @@ -0,0 +1,138 @@ +keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); + $this->code = array( + '2100', /* 0 */ + '1110', /* 1 */ + '1011', /* 2 */ + '0300', /* 3 */ + '0021', /* 4 */ + '0120', /* 5 */ + '0003', /* 6 */ + '0201', /* 7 */ + '0102', /* 8 */ + '2001' /* 9 */ + ); + + // Parity, 0=Odd, 1=Even. Depending on ?%4 + $this->codeParity = array( + array(0, 0), /* 0 */ + array(0, 1), /* 1 */ + array(1, 0), /* 2 */ + array(1, 1) /* 3 */ + ); + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + // Starting Code + $this->drawChar($im, '001', true); + + // Code + for ($i = 0; $i < 2; $i++) { + $this->drawChar($im, self::inverse($this->findCode($this->text[$i]), $this->codeParity[intval($this->text) % 4][$i]), false); + if ($i === 0) { + $this->drawChar($im, '00', false); // Inter-char + } + } + + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $startlength = 4; + $textlength = 2 * 7; + $intercharlength = 2; + + $w += $startlength + $textlength + $intercharlength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Adds the default label. + */ + protected function addDefaultLabel() { + parent::addDefaultLabel(); + + if ($this->defaultLabel !== null) { + $this->defaultLabel->setPosition(BCGLabel::POSITION_TOP); + } + } + + /** + * Validates the input. + */ + protected function validate() { + $c = strlen($this->text); + if ($c === 0) { + throw new BCGParseException('upcext2', 'No data has been entered.'); + } + + // Checking if all chars are allowed + for ($i = 0; $i < $c; $i++) { + if (array_search($this->text[$i], $this->keys) === false) { + throw new BCGParseException('upcext2', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } + } + + // Must contain 2 digits + if ($c !== 2) { + throw new BCGParseException('upcext2', 'Must contain 2 digits.'); + } + + parent::validate(); + } + + /** + * Inverses the string when the $inverse parameter is equal to 1. + * + * @param string $text + * @param int $inverse + * @return string + */ + private static function inverse($text, $inverse = 1) { + if ($inverse === 1) { + $text = strrev($text); + } + + return $text; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/BCGupcext5.barcode.php b/application/libraries/barcodegen/class/BCGupcext5.barcode.php new file mode 100755 index 000000000..a643672d0 --- /dev/null +++ b/application/libraries/barcodegen/class/BCGupcext5.barcode.php @@ -0,0 +1,200 @@ + No suggested Retail Price + * If 99991 -> Book Complimentary (normally free) + * If 90001 to 98999 -> Internal Purpose of Publisher + * If 99990 -> Used by the National Association of College Stores to mark used books + * If 0xxxx -> Price Expressed in British Pounds (xx.xx) + * If 5xxxx -> Price Expressed in U.S. dollars (US$xx.xx) + * + *-------------------------------------------------------------------- + * Copyright (C) Jean-Sebastien Goupil + * http://www.barcodephp.com + */ +include_once('BCGParseException.php'); +include_once('BCGBarcode1D.php'); +include_once('BCGLabel.php'); + +class BCGupcext5 extends BCGBarcode1D { + protected $codeParity = array(); + + /** + * Constructor. + */ + public function __construct() { + parent::__construct(); + + $this->keys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); + $this->code = array( + '2100', /* 0 */ + '1110', /* 1 */ + '1011', /* 2 */ + '0300', /* 3 */ + '0021', /* 4 */ + '0120', /* 5 */ + '0003', /* 6 */ + '0201', /* 7 */ + '0102', /* 8 */ + '2001' /* 9 */ + ); + + // Parity, 0=Odd, 1=Even. Depending Checksum + $this->codeParity = array( + array(1, 1, 0, 0, 0), /* 0 */ + array(1, 0, 1, 0, 0), /* 1 */ + array(1, 0, 0, 1, 0), /* 2 */ + array(1, 0, 0, 0, 1), /* 3 */ + array(0, 1, 1, 0, 0), /* 4 */ + array(0, 0, 1, 1, 0), /* 5 */ + array(0, 0, 0, 1, 1), /* 6 */ + array(0, 1, 0, 1, 0), /* 7 */ + array(0, 1, 0, 0, 1), /* 8 */ + array(0, 0, 1, 0, 1) /* 9 */ + ); + } + + /** + * Draws the barcode. + * + * @param resource $im + */ + public function draw($im) { + // Checksum + $this->calculateChecksum(); + + // Starting Code + $this->drawChar($im, '001', true); + + // Code + for ($i = 0; $i < 5; $i++) { + $this->drawChar($im, self::inverse($this->findCode($this->text[$i]), $this->codeParity[$this->checksumValue][$i]), false); + if ($i < 4) { + $this->drawChar($im, '00', false); // Inter-char + } + } + + $this->drawText($im, 0, 0, $this->positionX, $this->thickness); + } + + /** + * Returns the maximal size of a barcode. + * + * @param int $w + * @param int $h + * @return int[] + */ + public function getDimension($w, $h) { + $startlength = 4; + $textlength = 5 * 7; + $intercharlength = 2 * 4; + + $w += $startlength + $textlength + $intercharlength; + $h += $this->thickness; + return parent::getDimension($w, $h); + } + + /** + * Adds the default label. + */ + protected function addDefaultLabel() { + parent::addDefaultLabel(); + + if ($this->defaultLabel !== null) { + $this->defaultLabel->setPosition(BCGLabel::POSITION_TOP); + } + } + + /** + * Validates the input. + */ + protected function validate() { + $c = strlen($this->text); + if ($c === 0) { + throw new BCGParseException('upcext5', 'No data has been entered.'); + } + + // Checking if all chars are allowed + for ($i = 0; $i < $c; $i++) { + if (array_search($this->text[$i], $this->keys) === false) { + throw new BCGParseException('upcext5', 'The character \'' . $this->text[$i] . '\' is not allowed.'); + } + } + + // Must contain 5 digits + if ($c !== 5) { + throw new BCGParseException('upcext5', 'Must contain 5 digits.'); + } + + parent::validate(); + } + + /** + * Overloaded method to calculate checksum. + */ + protected function calculateChecksum() { + // Calculating Checksum + // Consider the right-most digit of the message to be in an "odd" position, + // and assign odd/even to each character moving from right to left + // Odd Position = 3, Even Position = 9 + // Multiply it by the number + // Add all of that and do ?mod10 + $odd = true; + $this->checksumValue = 0; + $c = strlen($this->text); + for ($i = $c; $i > 0; $i--) { + if ($odd === true) { + $multiplier = 3; + $odd = false; + } else { + $multiplier = 9; + $odd = true; + } + + if (!isset($this->keys[$this->text[$i - 1]])) { + return; + } + + $this->checksumValue += $this->keys[$this->text[$i - 1]] * $multiplier; + } + + $this->checksumValue = $this->checksumValue % 10; + } + + /** + * Overloaded method to display the checksum. + */ + protected function processChecksum() { + if ($this->checksumValue === false) { // Calculate the checksum only once + $this->calculateChecksum(); + } + + if ($this->checksumValue !== false) { + return $this->keys[$this->checksumValue]; + } + + return false; + } + + /** + * Inverses the string when the $inverse parameter is equal to 1. + * + * @param string $text + * @param int $inverse + * @return string + */ + private static function inverse($text, $inverse = 1) { + if ($inverse === 1) { + $text = strrev($text); + } + + return $text; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/JoinDraw.php b/application/libraries/barcodegen/class/JoinDraw.php new file mode 100755 index 000000000..79913a8ef --- /dev/null +++ b/application/libraries/barcodegen/class/JoinDraw.php @@ -0,0 +1,194 @@ +image1 = $image1->get_im(); + } else { + $this->image1 = $image1; + } + if ($image2 instanceof BCGDrawing) { + $this->image2 = $image2->get_im(); + } else { + $this->image2 = $image2; + } + + $this->background = $background; + $this->space = (int)$space; + $this->position = (int)$position; + $this->alignment = (int)$alignment; + + $this->createIm(); + } + + /** + * Destroys the image. + */ + public function __destruct() { + imagedestroy($this->im); + } + + /** + * Finds the position where the barcode should be aligned. + * + * @param int $size1 + * @param int $size2 + * @param int $ailgnment + * @return int + */ + private function findPosition($size1, $size2, $alignment) { + $rsize1 = max($size1, $size2); + $rsize2 = min($size1, $size2); + + if ($alignment === self::ALIGN_LEFT) { // Or TOP + return 0; + } elseif ($alignment === self::ALIGN_CENTER) { + return $rsize1 / 2 - $rsize2 / 2; + } else { // RIGHT or TOP + return $rsize1 - $rsize2; + } + } + + /** + * Change the alignments. + * + * @param int $alignment + * @return int + */ + private function changeAlignment($alignment) { + if ($alignment === 0) { + return 1; + } elseif ($alignment === 1) { + return 0; + } else { + return 2; + } + } + + /** + * Creates the image. + */ + private function createIm() { + $w1 = imagesx($this->image1); + $w2 = imagesx($this->image2); + $h1 = imagesy($this->image1); + $h2 = imagesy($this->image2); + + if ($this->position === self::POSITION_LEFT || $this->position === self::POSITION_RIGHT) { + $w = $w1 + $w2 + $this->space; + $h = max($h1, $h2); + } else { + $w = max($w1, $w2); + $h = $h1 + $h2 + $this->space; + } + + $this->im = imagecreatetruecolor($w, $h); + imagefill($this->im, 0, 0, $this->background->allocate($this->im)); + + // We start defining position of images + if ($this->position === self::POSITION_TOP) { + if ($w1 > $w2) { + $posX1 = 0; + $posX2 = $this->findPosition($w1, $w2, $this->alignment); + } else { + $a = $this->changeAlignment($this->alignment); + $posX1 = $this->findPosition($w1, $w2, $a); + $posX2 = 0; + } + + $posY2 = 0; + $posY1 = $h2 + $this->space; + } elseif ($this->position === self::POSITION_LEFT) { + if ($w1 > $w2) { + $posY1 = 0; + $posY2 = $this->findPosition($h1, $h2, $this->alignment); + } else { + $a = $this->changeAlignment($this->alignment); + $posY2 = 0; + $posY1 = $this->findPosition($h1, $h2, $a); + } + + $posX2 = 0; + $posX1 = $w2 + $this->space; + } elseif ($this->position === self::POSITION_BOTTOM) { + if ($w1 > $w2) { + $posX2 = $this->findPosition($w1, $w2, $this->alignment); + $posX1 = 0; + } else { + $a = $this->changeAlignment($this->alignment); + $posX2 = 0; + $posX1 = $this->findPosition($w1, $w2, $a); + } + + $posY1 = 0; + $posY2 = $h1 + $this->space; + } else { // defaults to RIGHT + if ($w1 > $w2) { + $posY2 = $this->findPosition($h1, $h2, $this->alignment); + $posY1 = 0; + } else { + $a = $this->changeAlignment($this->alignment); + $posY2 = 0; + $posY1 = $this->findPosition($h1, $h2, $a); + } + + $posX1 = 0; + $posX2 = $w1 + $this->space; + } + + imagecopy($this->im, $this->image1, $posX1, $posY1, 0, 0, $w1, $h1); + imagecopy($this->im, $this->image2, $posX2, $posY2, 0, 0, $w2, $h2); + } + + /** + * Returns the new $im created. + * + * @return resource + */ + public function get_im() { + return $this->im; + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/drawer/BCGDraw.php b/application/libraries/barcodegen/class/drawer/BCGDraw.php new file mode 100755 index 000000000..0eab27dd8 --- /dev/null +++ b/application/libraries/barcodegen/class/drawer/BCGDraw.php @@ -0,0 +1,38 @@ +im = $im; + } + + /** + * Sets the filename. + * + * @param string $filename + */ + public function setFilename($filename) { + $this->filename = $filename; + } + + /** + * Method needed to draw the image based on its specification (JPG, GIF, etc.). + */ + abstract public function draw(); +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/drawer/BCGDrawJPG.php b/application/libraries/barcodegen/class/drawer/BCGDrawJPG.php new file mode 100755 index 000000000..72bdd74de --- /dev/null +++ b/application/libraries/barcodegen/class/drawer/BCGDrawJPG.php @@ -0,0 +1,102 @@ +dpi = max(1, $dpi); + } else { + $this->dpi = null; + } + } + + /** + * Sets the quality of the JPG. + * + * @param int $quality + */ + public function setQuality($quality) { + $this->quality = $quality; + } + + /** + * Draws the JPG on the screen or in a file. + */ + public function draw() { + ob_start(); + imagejpeg($this->im, null, $this->quality); + $bin = ob_get_contents(); + ob_end_clean(); + + $this->setInternalProperties($bin); + + if (empty($this->filename)) { + echo $bin; + } else { + file_put_contents($this->filename, $bin); + } + } + + private function setInternalProperties(&$bin) { + $this->internalSetDPI($bin); + $this->internalSetC($bin); + } + + private function internalSetDPI(&$bin) { + if ($this->dpi !== null) { + $bin = substr_replace($bin, pack("Cnn", 0x01, $this->dpi, $this->dpi), 13, 5); + } + } + + private function internalSetC(&$bin) { + if(strcmp(substr($bin, 0, 4), pack('H*', 'FFD8FFE0')) === 0) { + $offset = 4 + (ord($bin[4]) << 8 | ord($bin[5])); + $firstPart = substr($bin, 0, $offset); + $secondPart = substr($bin, $offset); + $cr = pack('H*', 'FFFE004447656E657261746564207769746820426172636F64652047656E657261746F7220666F722050485020687474703A2F2F7777772E626172636F64657068702E636F6D'); + $bin = $firstPart; + $bin .= $cr; + $bin .= $secondPart; + } + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/class/drawer/BCGDrawPNG.php b/application/libraries/barcodegen/class/drawer/BCGDrawPNG.php new file mode 100755 index 000000000..cd3164f7a --- /dev/null +++ b/application/libraries/barcodegen/class/drawer/BCGDrawPNG.php @@ -0,0 +1,202 @@ +dpi = max(1, $dpi); + } else { + $this->dpi = null; + } + } + + /** + * Draws the PNG on the screen or in a file. + */ + public function draw() { + ob_start(); + imagepng($this->im); + $bin = ob_get_contents(); + ob_end_clean(); + + $this->setInternalProperties($bin); + + if (empty($this->filename)) { + echo $bin; + } else { + file_put_contents($this->filename, $bin); + } + } + + private function setInternalProperties(&$bin) { + // Scan all the ChunkType + if (strcmp(substr($bin, 0, 8), pack('H*', '89504E470D0A1A0A')) === 0) { + $chunks = $this->detectChunks($bin); + + $this->internalSetDPI($bin, $chunks); + $this->internalSetC($bin, $chunks); + } + } + + private function detectChunks($bin) { + $data = substr($bin, 8); + $chunks = array(); + $c = strlen($data); + + $offset = 0; + while ($offset < $c) { + $packed = unpack('Nsize/a4chunk', $data); + $size = $packed['size']; + $chunk = $packed['chunk']; + + $chunks[] = array('offset' => $offset + 8, 'size' => $size, 'chunk' => $chunk); + $jump = $size + 12; + $offset += $jump; + $data = substr($data, $jump); + } + + return $chunks; + } + + private function internalSetDPI(&$bin, &$chunks) { + if ($this->dpi !== null) { + $meters = (int)($this->dpi * 39.37007874); + + $found = -1; + $c = count($chunks); + for($i = 0; $i < $c; $i++) { + // We already have a pHYs + if($chunks[$i]['chunk'] === 'pHYs') { + $found = $i; + break; + } + } + + $data = 'pHYs' . pack('NNC', $meters, $meters, 0x01); + $crc = self::crc($data, 13); + $cr = pack('Na13N', 9, $data, $crc); + + // We didn't have a pHYs + if($found == -1) { + // Don't do anything if we have a bad PNG + if($c >= 2 && $chunks[0]['chunk'] === 'IHDR') { + array_splice($chunks, 1, 0, array(array('offset' => 33, 'size' => 9, 'chunk' => 'pHYs'))); + + // Push the data + for($i = 2; $i < $c; $i++) { + $chunks[$i]['offset'] += 21; + } + + $firstPart = substr($bin, 0, 33); + $secondPart = substr($bin, 33); + $bin = $firstPart; + $bin .= $cr; + $bin .= $secondPart; + } + } else { + $bin = substr_replace($bin, $cr, $chunks[$i]['offset'], 21); + } + } + } + + private function internalSetC(&$bin, &$chunks) { + if (count($chunks) >= 2 && $chunks[0]['chunk'] === 'IHDR') { + $firstPart = substr($bin, 0, 33); + $secondPart = substr($bin, 33); + $cr = pack('H*', '0000004C74455874436F707972696768740047656E657261746564207769746820426172636F64652047656E657261746F7220666F722050485020687474703A2F2F7777772E626172636F64657068702E636F6D597F70B8'); + $bin = $firstPart; + $bin .= $cr; + $bin .= $secondPart; + } + + // Chunks is dirty!! But we are done. + } + + private static $crc_table = array(); + private static $crc_table_computed = false; + + private static function make_crc_table() { + for ($n = 0; $n < 256; $n++) { + $c = $n; + for ($k = 0; $k < 8; $k++) { + if (($c & 1) == 1) { + $c = 0xedb88320 ^ (self::SHR($c, 1)); + } else { + $c = self::SHR($c, 1); + } + } + self::$crc_table[$n] = $c; + } + + self::$crc_table_computed = true; + } + + private static function SHR($x, $n) { + $mask = 0x40000000; + + if ($x < 0) { + $x &= 0x7FFFFFFF; + $mask = $mask >> ($n - 1); + return ($x >> $n) | $mask; + } + + return (int)$x >> (int)$n; + } + + private static function update_crc($crc, $buf, $len) { + $c = $crc; + + if (!self::$crc_table_computed) { + self::make_crc_table(); + } + + for ($n = 0; $n < $len; $n++) { + $c = self::$crc_table[($c ^ ord($buf[$n])) & 0xff] ^ (self::SHR($c, 8)); + } + + return $c; + } + + private static function crc($data, $len) { + return self::update_crc(-1, $data, $len) ^ -1; + } +} +?> diff --git a/application/libraries/barcodegen/font/Arial.ttf b/application/libraries/barcodegen/font/Arial.ttf new file mode 100755 index 0000000000000000000000000000000000000000..886789b85b4b4e662519fcb7fe4d88ddf2205c5b GIT binary patch literal 311636 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 VXQc0|TekeI1$m{%qWu+${|A + +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Known also as Ames Code, NW-7, Monarch, 2 of 7, Rationalized Codabar.
  • +
  • Codabar was developed in 1972 by Pitney Bowes, Inc.
  • +
  • This symbology is useful to encode digital information. It is a self-checking code, there is no check digit.
  • +
  • Codabar is used by blood bank, photo labs, library, FedEx...
  • +
  • Coding can be with an unspecified length composed by numbers, plus and minus sign, colon, slash, dot, dollar.
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGcode11.php b/application/libraries/barcodegen/html/BCGcode11.php new file mode 100755 index 000000000..f7bccd8e2 --- /dev/null +++ b/application/libraries/barcodegen/html/BCGcode11.php @@ -0,0 +1,28 @@ + + +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Known also as USD-8.
  • +
  • Code 11 was developed in 1977 as a high-density numeric symbology.
  • +
  • Used to identify telecommunications equipment.
  • +
  • Code 11 is a numeric symbology and its character set consists of 10 digital characters and the dash symbol (-).
  • +
  • There is a "C" check digit. If the length of encoded message is greater thant 10, a "K" check digit may be used.
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGcode128.php b/application/libraries/barcodegen/html/BCGcode128.php new file mode 100755 index 000000000..6a458b447 --- /dev/null +++ b/application/libraries/barcodegen/html/BCGcode128.php @@ -0,0 +1,52 @@ +', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 'DEL' +); +?> + +
    +
  • +
    + +
    +
    + 'Auto', 'A' => 'Code 128-A', 'B' => 'Code 128-B', 'C' => 'Code 128-C')); ?> +
    +
  • +
+ +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Code 128 is a high-density alphanumeric symbology.
  • +
  • Used extensively worldwide.
  • +
  • Code 128 is designed to encode 128 full ASCII characters.
  • +
  • The symbology includes a checksum digit.
  • +
  • Code 128A handles capital letters
    Code 128B handles capital letters and lowercase
    Code 128C handles group of 2 numbers
  • +
  • Your browser may not be able to write the special characters (NUL, SOH, etc.) but you can write them with the code.
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGcode39.php b/application/libraries/barcodegen/html/BCGcode39.php new file mode 100755 index 000000000..7cd0c96a2 --- /dev/null +++ b/application/libraries/barcodegen/html/BCGcode39.php @@ -0,0 +1,42 @@ + + +
    +
  • +
    + +
    +
    + 1)); ?> +
    +
  • +
+ +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Known also as USS Code 39, 3 of 9.
  • +
  • Code 39 can encode alphanumeric characters.
  • +
  • The symbology is used in non-retail environment.
  • +
  • Code 39 is designed to encode 26 upper case letters, 10 digits and 7 special characters.
  • +
  • Code 39 has a checksum but it's rarely used.
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGcode39extended.php b/application/libraries/barcodegen/html/BCGcode39extended.php new file mode 100755 index 000000000..9eefaa9e8 --- /dev/null +++ b/application/libraries/barcodegen/html/BCGcode39extended.php @@ -0,0 +1,49 @@ +', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 'DEL' +); +?> + +
    +
  • +
    + +
    +
    + 1)); ?> +
    +
  • +
+ +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Supports the ASCII 0 to 127.
  • +
  • This mode is "optional" for Code 39, you have to specify your reader that you have extended code.
  • +
  • Your browser may not be able to write the special characters (NUL, SOH, etc.) but you can write them with the code.
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGcode93.php b/application/libraries/barcodegen/html/BCGcode93.php new file mode 100755 index 000000000..aa3f7dd5b --- /dev/null +++ b/application/libraries/barcodegen/html/BCGcode93.php @@ -0,0 +1,38 @@ +', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 'DEL' +); +?> + +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Known also as USS Code 93.
  • +
  • Code 93 was designed to provide a higher density and data security enhancement to Code 39.
  • +
  • Used primarily by Canadian postal office to encode supplementary delivery information.
  • +
  • Similar to Code 39, Code 93 has the same 43 characters plus 5 special ones to encode the ASCII 0 to 127.
  • +
  • This symbology composed of 2 check digits ("C" and "K").
  • +
  • Your browser may not be able to write the special characters (NUL, SOH, etc.) but you can write them with the code.
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGean13.php b/application/libraries/barcodegen/html/BCGean13.php new file mode 100755 index 000000000..761bbf04e --- /dev/null +++ b/application/libraries/barcodegen/html/BCGean13.php @@ -0,0 +1,27 @@ + + +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • EAN means Internal Article Numbering.
  • +
  • It is an extension of UPC-A to include the country information.
  • +
  • Used with consumer products internationally.
  • +
  • Composed by 2 number system, 5 manufacturer code, 5 product code and 1 check digit.
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGean8.php b/application/libraries/barcodegen/html/BCGean8.php new file mode 100755 index 000000000..b1ad3471e --- /dev/null +++ b/application/libraries/barcodegen/html/BCGean8.php @@ -0,0 +1,26 @@ + + +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • EAN-8 is a short version of EAN-13.
  • +
  • Composed by 7 digits and 1 check digit.
  • +
  • There is no conversion available between EAN-8 and EAN-13.
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGgs1128.php b/application/libraries/barcodegen/html/BCGgs1128.php new file mode 100755 index 000000000..2dc9dda25 --- /dev/null +++ b/application/libraries/barcodegen/html/BCGgs1128.php @@ -0,0 +1,250 @@ + 'Select an identifier', + '00' => 'Serial Shipping Container Code (SSCC-18)', + '01' => 'Shipping Container Code (SSC)', + '02' => 'Number of containers', + '10' => 'Batch Number', + '11' => 'Production Date', + '12' => 'Due date', + '13' => 'Packaging Date', + '15' => 'Sell by Date (Quality Control)', + '17' => 'Expiration Date', + '20' => 'Product Variant', + '21' => 'Serial Number', + '240' => 'Additional Product Identification', + '241' => 'Customer part number', + '250' => 'Second Serial Number', + '251' => 'Reference to source entity', + '253' => 'Global Document Type Identifier', + '30' => 'Quantity Each', + '310y' => 'Product Net Weight in kg', + '311y' => 'Product Length/1st Dimension, in meters', + '312y' => 'Product Width/Diameter/2nd Dimension, in meters', + '313y' => 'Product Depth/Thickness/3rd Dimension, in meters', + '314y' => 'Product Area, in square meters', + '315y' => 'Product Volume, in liters', + '316y' => 'product Volume, in cubic meters', + '320y' => 'Product Net Weight, in pounds', + '321y' => 'Product Length/1st Dimension, in inches', + '322y' => 'Product Length/1st Dimension, in feet', + '323y' => 'Product Length/1st Dimension, in yards', + '324y' => 'Product Width/Diameter/2nd Dimension, in inches', + '325y' => 'Product Width/Diameter/2nd Dimension, in feet', + '326y' => 'Product Width/Diameter/2nd Dimension, in yards', + '327y' => 'Product Depth/Thickness/3rd Dimension, in inches', + '328y' => 'Product Depth/Thickness/3rd Dimension, in feet', + '329y' => 'Product Depth/Thickness/3rd Dimension, in yards', + '330y' => 'Container Gross Weight (Kg)', + '331y' => 'Container Length/1st Dimension (Meters)', + '332y' => 'Container Width/Diameter/2nd Dimension (Meters)', + '333y' => 'Container Depth/Thickness/3rd Dimension (Meters)', + '334y' => 'Container Area (Square Meters)', + '335y' => 'Container Gross Volume (Liters)', + '336y' => 'Container Gross Volume (Cubic Meters)', + '337y' => 'Kilograms per square meter', + '340y' => 'Container Gross Weight (Pounds)', + '341y' => 'Container Length/1st Dimension, in inches', + '342y' => 'Container Length/1st Dimension, in feet', + '343y' => 'Container Length/1st Dimension in, in yards', + '344y' => 'Container Width/Diameter/2nd Dimension, in inches', + '345y' => 'Container Width/Diameter/2nd Dimension, in feet', + '346y' => 'Container Width/Diameter/2nd Dimension, in yards', + '347y' => 'Container Depth/Thickness/Height/3rd Dimension, in inches', + '348y' => 'Container Depth/Thickness/Height/3rd Dimension, in feet', + '349y' => 'Container Depth/Thickness/Height/3rd Dimension, in yards', + '350y' => 'Product Area (Square Inches)', + '351y' => 'Product Area (Square Feet)', + '352y' => 'Product Area (Square Yards)', + '353y' => 'Container Area (Square Inches)', + '354y' => 'Container Area (Square Feet)', + '355y' => 'Container Area (Square Yards)', + '356y' => 'Net Weight (Troy Ounces)', + '357y' => 'Kilograms per square meter', + '360y' => 'Product Volume (Quarts)', + '361y' => 'Product Volume (Gallons)', + '362y' => 'Container Gross Volume (Quarts)', + '363y' => 'Container Gross Volume (Gallons)', + '364y' => 'Product Volume (Cubic Inches)', + '365y' => 'Product Volume (Cubic Feet)', + '366y' => 'Product Volume (Cubic Yards)', + '367y' => 'Container Gross Volume (Cubic Inches)', + '368y' => 'Container Gross Volume (Cubic Feet)', + '369y' => 'Container Gross Volume (Cubic Yards)', + '37' => 'Number of Units Contained', + '390y' => 'Amount payable-single monetary area', + '391y' => 'Amount payable with ISO currency code', + '392y' => 'Amount payable for a Variable Measure Trade Item single monetary unit', + '393y' => 'Amount payable for a Variable Measure Trade Item - with ISO currency code', + '400' => 'Customer Purchase Order Number', + '401' => 'Consignment number', + '402' => 'Shipment Identification Number', + '403' => 'Routing code', + '410' => 'Ship To/Deliver To Location Code (EAN13 or DUNS code)', + '411' => 'Bill To/Invoice Location Code (EAN13 or DUNS code)', + '412' => 'Purchase From Location Code (EAN13 or DUNS code)', + '413' => 'Ship for - deliver for - forward to EAN.UCC Global Location Number', + '414' => 'Identification of a physical location EAN.UCC Global Location Number', + '415' => 'EAN.UCC Global Location Number of the invoicing party', + '420' => 'Ship To/Deliver To Postal Code (Single Postal Authority)', + '421' => 'Ship To/Deliver To Postal Code (Multiple Postal Authority)', + '422' => 'Country of origin of a trade item', + '8001' => 'Roll Products - Width/Length/Core Diameter', + '8002' => 'Electronic Serial Number (ESN) for Cellular Phone', + '8003' => 'UPC/EAN Number and Serial Number of Returnable Asset', + '8004' => 'UPC/EAN Serial Identification', + '8005' => 'Price per Unit of Measure', + '8006' => 'Identification of the component of a trade item', + '8007' => 'International Bank Account Number', + '8018' => 'EAN.UCC Global Service Relation Number', + '8020' => 'Payment Slip Reference Number', + '8100' => 'Coupon Extended Code: Number System and Offer', + '8101' => '8101 Coupon Extended Code: Number System, Offer, End of Offer', + '8102' => 'Coupon Extended Code: Number System preceded by 0', + '90' => 'Mutually Agreed Between Trading Partners', + '91' => 'Internal Company Codes', + '92' => 'Internal Company Codes', + '93' => 'Internal Company Codes', + '94' => 'Internal Company Codes', + '95' => 'Internal Company Codes', + '96' => 'Internal Company Codes', + '97' => 'Internal Company Codes', + '98' => 'Internal Company Codes', + '99' => 'Internal Company Codes' +); + +foreach ($identifiers as $key => $value) { + if ($key) { + $identifiers[$key] = $key . ' - ' . $value; + } +} + +registerImageKey('code', 'BCGgs1128'); + +$vals = array(); +for($i = 0; $i <= 127; $i++) { + $vals[] = '%' . sprintf('%02X', $i); +} +$characters = array( + 'NUL', 'SOH', 'STX', 'ETX', 'EOT', 'ENQ', 'ACK', 'BEL', 'BS', 'TAB', 'LF', 'VT', 'FF', 'CR', 'SO', 'SI', 'DLE', 'DC1', 'DC2', 'DC3', 'DC4', 'NAK', 'SYN', 'ETB', 'CAN', 'EM', 'SUB', 'ESC', 'FS', 'GS', 'RS', 'US', + ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 'DEL' +); +?> + +
    +
  • +
    + +
    +
    + 'Auto', 'A' => 'Code 128-A', 'B' => 'Code 128-B', 'C' => 'Code 128-C')); ?> +
    +
  • +
  • +
    + +
    +
    + +
    +
    +
  • +
+ +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Encoded as Code 128.
  • +
  • The former correct name was UCC/EAN-128.
  • +
  • Used for shipping containers.
  • +
  • Based on the GS1 standard.
  • +
+
+ + + + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGi25.php b/application/libraries/barcodegen/html/BCGi25.php new file mode 100755 index 000000000..7b5fbe66c --- /dev/null +++ b/application/libraries/barcodegen/html/BCGi25.php @@ -0,0 +1,39 @@ + + +
    +
  • +
    + +
    +
    + 1)); ?> +
    +
  • +
+ +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Interleaved 2 of 5 is based on Standard 2 of 5 symbology.
  • +
  • There is an optional checksum.
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGintelligentmail.php b/application/libraries/barcodegen/html/BCGintelligentmail.php new file mode 100755 index 000000000..94bba9f87 --- /dev/null +++ b/application/libraries/barcodegen/html/BCGintelligentmail.php @@ -0,0 +1,99 @@ + + +
    +
  • +
    + +
    +
    + 'text', 'maxlength' => 2, 'required' => 'required')); ?> +
    +
  • +
  • +
    + +
    +
    + 'text', 'maxlength' => 3, 'required' => 'required')); ?> +
    +
  • +
  • +
    + +
    +
    + 'text', 'maxlength' => 9, 'required' => 'required')); ?> +
    +
  • +
  • +
    + +
    +
    + 'text', 'maxlength' => 9, 'required' => 'required')); ?> +
    +
  • +
+ +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Used to encode enveloppe in USA.
  • +
  • + You can provide +
    5 digits (ZIP Code) +
    9 digits (ZIP+4 code) +
    11 digits (ZIP+4 code+2 digits) +
  • +
  • Contains a barcode identifier, service type identifier, mailer id and serial number.
  • +
+
+ + + + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGisbn.php b/application/libraries/barcodegen/html/BCGisbn.php new file mode 100755 index 000000000..2f6581218 --- /dev/null +++ b/application/libraries/barcodegen/html/BCGisbn.php @@ -0,0 +1,27 @@ + + +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • ISBN stands for International Standard Book Number.
  • +
  • ISBN type is based on EAN-13.
  • +
  • Previously, all ISBN were in EAN-10 format. EAN-13 uses the same encoding but may contain different data in the ISBN number.
  • +
  • Composed by a GS1 prefix (for ISBN-13), a group identifier, a publisher code, an item number and a check digit.
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGmsi.php b/application/libraries/barcodegen/html/BCGmsi.php new file mode 100755 index 000000000..6a09c9a1d --- /dev/null +++ b/application/libraries/barcodegen/html/BCGmsi.php @@ -0,0 +1,39 @@ + + +
    +
  • +
    + +
    +
    + 1)); ?> +
    +
  • +
+ +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Developed by the MSI Data Corporation.
  • +
  • Used primarily to mark retail shelves for inventory control.
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGothercode.php b/application/libraries/barcodegen/html/BCGothercode.php new file mode 100755 index 000000000..3d72c026a --- /dev/null +++ b/application/libraries/barcodegen/html/BCGothercode.php @@ -0,0 +1,39 @@ + + +
    +
  • +
    + +
    +
    + +
    +
  • +
+ +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Enter width of each bars with one characters. Begin by a bar.
  • +
  • 10523: Will do 2px bar, 1px space, 6px bar, 3px space, 4px bar.
  • +
+
+ + diff --git a/application/libraries/barcodegen/html/BCGpostnet.php b/application/libraries/barcodegen/html/BCGpostnet.php new file mode 100755 index 000000000..5d628b1c8 --- /dev/null +++ b/application/libraries/barcodegen/html/BCGpostnet.php @@ -0,0 +1,48 @@ + + +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Used to encode enveloppe in USA.
  • +
  • + You can provide +
    5 digits (ZIP Code) +
    9 digits (ZIP+4 code) +
    11 digits (ZIP+4 code+2 digits) +
    (Those 2 digits are taken from your address. If your address is 6453, the code will be 53.) +
  • +
+
+ + + + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGs25.php b/application/libraries/barcodegen/html/BCGs25.php new file mode 100755 index 000000000..441c3bfaa --- /dev/null +++ b/application/libraries/barcodegen/html/BCGs25.php @@ -0,0 +1,41 @@ + + +
    +
  • +
    + +
    +
    + 1)); ?> +
    +
  • +
+ +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Known also as Industrial 2 of 5.
  • +
  • Standard 2 of 5 is a low-density numeric symbology that has been with us since the 1960s.
  • +
  • There is an optional checksum.
  • +
  • Note: Standard 2 of 5 is really tough to read!
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGupca.php b/application/libraries/barcodegen/html/BCGupca.php new file mode 100755 index 000000000..2bcee8a39 --- /dev/null +++ b/application/libraries/barcodegen/html/BCGupca.php @@ -0,0 +1,36 @@ + + +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Encoded as EAN-13.
  • +
  • Most common and well-known in the USA.
  • +
  • There is 1 number system (NS), 5 manufacturer code, 5 product code and 1 check digit.
  • +
  • + NS Description : +
    0 = Regular UPC Code +
    2 = Weight Items +
    3 = Drug/Health Items +
    4 = In-Store Use on Non-Food Items +
    5 = Coupons +
    7 = Regular UPC Code +
    And other are Reserved. +
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGupce.php b/application/libraries/barcodegen/html/BCGupce.php new file mode 100755 index 000000000..73a4d8f37 --- /dev/null +++ b/application/libraries/barcodegen/html/BCGupce.php @@ -0,0 +1,27 @@ + + +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Short version of UPC symbol, 8 characters.
  • +
  • It is a conversion of an UPC-A for small package.
  • +
  • You can provide directly an UPC-A (11 chars) or UPC-E (6 chars) code.
  • +
  • UPC-E contain a system number and a check digit.
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGupcext2.php b/application/libraries/barcodegen/html/BCGupcext2.php new file mode 100755 index 000000000..1288d70be --- /dev/null +++ b/application/libraries/barcodegen/html/BCGupcext2.php @@ -0,0 +1,25 @@ + + +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Extension for UPC-A, UPC-E, EAN-13 and EAN-8.
  • +
  • Used for encode additional information for newspaper, books...
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/BCGupcext5.php b/application/libraries/barcodegen/html/BCGupcext5.php new file mode 100755 index 000000000..cd911c4da --- /dev/null +++ b/application/libraries/barcodegen/html/BCGupcext5.php @@ -0,0 +1,33 @@ + + +
+

Valid Characters

+ +
+ +
+

Explanation

+
    +
  • Extension for UPC-A, UPC-E, EAN-13 and EAN-8.
  • +
  • Used to encode suggested retail price.
  • +
  • If the first number is a 0, the price xx.xx is expressed in British Pounds. If it is a 5, it is expressed in US dollars.
  • +
  • + Special Code Description: +
    90000: No suggested retail price +
    99991: The item is a complementary of another one. Normally free +
    99990: Used bh National Association of College Stores to mark "used book" +
    90001 to 98999: Internal purposes for some publishers +
  • +
+
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/barcode.js b/application/libraries/barcodegen/html/barcode.js new file mode 100755 index 000000000..016638670 --- /dev/null +++ b/application/libraries/barcodegen/html/barcode.js @@ -0,0 +1,120 @@ +$(function() { + var attachMainBehaviors = function() { + $("select[name=type]").on("change", function() { + var selected = $(this).find("option:selected"); + window.location.href = selected.val(); + }); + + $("select[name=filetype]").on("change", function() { + var selected = $(this).find("option:selected"), + val = selected.val(), + dpi = $("input[name=dpi]"), + dpiUnavailable = $("#dpiUnavailable"); + + if (val === "PNG" || val === "JPEG") { + dpi.prop("disabled", false); + dpiUnavailable.hide(); + } else { + dpi.prop("disabled", true); + dpiUnavailable.show(); + } + }).change(); + + var text = $("input[name=text]"); + + $("#validCharacters").on("click", "[data-output]", function() { + var $this = $(this), + escaped = $this.data("escaped"), + value = $this.data("output"); + if (escaped) { + value = unescape(value); + } + + text + .val(text.val() + value) + .focus(); + }); + }, attachUIBehaviors = function() { + $("table").each(function() { + var $this = $(this); + $this.find("tr:even").addClass("even"); + $this.find("tr:odd").addClass("odd"); + }); + }, attachSpecificBehaviors = function() { + $("#specificOptions li").each(function() { + var $this = $(this), + code = $(""); + code.find(".title").append($this.find(".title")); + code.find(".value").append($this.find(".value")); + + $("div.configurations tr:last").before(code); + }); + }, attachInfoBehaviors = function() { + var showTooltip = function(object) { + object + .on("mouseover", function() { + var timer = $(this).data("timer"); + if (timer) { + clearTimeout(timer); + } + }) + .on("mouseout", function() { + var that = $(this); + that.data("timer", setTimeout(function() { + that.removeClass("visible"); + }, 1000)); + }); + + return function() { + var $this = $(this), + offset = $this.offset(), + timer = object.data("timer"); + + if (timer) { + clearTimeout(timer); + } + + // Show it once so we can get the outerWidth properly + object + .css({ + left: -99999, + top: -99999 + }) + .addClass("visible") + .css({ + left: offset.left + $this.width() - object.outerWidth(), + top: offset.top + $this.height() + }); + return false; + }; + }, + hideTooltip = function(object) { + return function() { + object.data("timer", setTimeout(function() { + object.removeClass("visible"); + }, 1000)); + }; + }, + bubbleize = function(object) { + return object + .addClass("bubble") + .attr("role", "tooltip") + .appendTo(document.body); + }, + explanation = bubbleize($("#explanation")), + validCharacters = bubbleize($("#validCharacters")); + + $(".info.explanation") + .on("mouseover focusin", showTooltip(explanation)) + .on("mouseout focusout", hideTooltip(explanation)); + + $(".info.characters") + .on("mouseover focusin", showTooltip(validCharacters)) + .on("mouseout focusout", hideTooltip(validCharacters)); + }; + + attachSpecificBehaviors(); + attachMainBehaviors(); + attachUIBehaviors(); + attachInfoBehaviors(); +}); \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGBarcode1D.php b/application/libraries/barcodegen/html/config/BCGBarcode1D.php new file mode 100755 index 000000000..ca56f3589 --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGBarcode1D.php @@ -0,0 +1,16 @@ +setThickness(max(9, min(90, intval($get['thickness'])))); + } + + $font = 0; + if ($get['font_family'] !== '0' && intval($get['font_size']) >= 1) { + $font = new BCGFontFile($font_dir . '/' . $get['font_family'], intval($get['font_size'])); + } + + $barcode->setFont($font); +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGcodabar.php b/application/libraries/barcodegen/html/config/BCGcodabar.php new file mode 100755 index 000000000..a3a574cf7 --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGcodabar.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGcode11.php b/application/libraries/barcodegen/html/config/BCGcode11.php new file mode 100755 index 000000000..0bd083ae4 --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGcode11.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGcode128.php b/application/libraries/barcodegen/html/config/BCGcode128.php new file mode 100755 index 000000000..521e000bb --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGcode128.php @@ -0,0 +1,12 @@ +setStart($get['start'] === 'NULL' ? null : $get['start']); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGcode39.php b/application/libraries/barcodegen/html/config/BCGcode39.php new file mode 100755 index 000000000..ce6cfd5df --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGcode39.php @@ -0,0 +1,12 @@ +setChecksum($get['checksum'] === '1' ? true : false); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGcode39extended.php b/application/libraries/barcodegen/html/config/BCGcode39extended.php new file mode 100755 index 000000000..ab8185475 --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGcode39extended.php @@ -0,0 +1,12 @@ +setChecksum($get['checksum'] === '1' ? true : false); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGcode93.php b/application/libraries/barcodegen/html/config/BCGcode93.php new file mode 100755 index 000000000..2f58b460d --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGcode93.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGean13.php b/application/libraries/barcodegen/html/config/BCGean13.php new file mode 100755 index 000000000..8f10a68f4 --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGean13.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGean8.php b/application/libraries/barcodegen/html/config/BCGean8.php new file mode 100755 index 000000000..4072741c2 --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGean8.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGgs1128.php b/application/libraries/barcodegen/html/config/BCGgs1128.php new file mode 100755 index 000000000..e4c6b66fe --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGgs1128.php @@ -0,0 +1,12 @@ +setStart($get['start'] === 'NULL' ? null : $get['start']); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGi25.php b/application/libraries/barcodegen/html/config/BCGi25.php new file mode 100755 index 000000000..cb5003b30 --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGi25.php @@ -0,0 +1,12 @@ +setChecksum($get['checksum'] === '1' ? true : false); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGintelligentmail.php b/application/libraries/barcodegen/html/config/BCGintelligentmail.php new file mode 100755 index 000000000..eb1bbebcd --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGintelligentmail.php @@ -0,0 +1,12 @@ +setTrackingCode(intval($get['barcodeIdentifier']), intval($get['serviceType']), intval($get['mailerIdentifier']), intval($get['serialNumber'])); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGisbn.php b/application/libraries/barcodegen/html/config/BCGisbn.php new file mode 100755 index 000000000..57e5ddc87 --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGisbn.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGmsi.php b/application/libraries/barcodegen/html/config/BCGmsi.php new file mode 100755 index 000000000..74c30c35a --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGmsi.php @@ -0,0 +1,12 @@ +setChecksum($get['checksum'] === '1' ? true : false); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGothercode.php b/application/libraries/barcodegen/html/config/BCGothercode.php new file mode 100755 index 000000000..1acc70969 --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGothercode.php @@ -0,0 +1,12 @@ +setLabel($get['label']); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGpostnet.php b/application/libraries/barcodegen/html/config/BCGpostnet.php new file mode 100755 index 000000000..142843dff --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGpostnet.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGs25.php b/application/libraries/barcodegen/html/config/BCGs25.php new file mode 100755 index 000000000..5266cecab --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGs25.php @@ -0,0 +1,12 @@ +setChecksum($get['checksum'] === '1' ? true : false); + } +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGupca.php b/application/libraries/barcodegen/html/config/BCGupca.php new file mode 100755 index 000000000..b4e5e2b70 --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGupca.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGupce.php b/application/libraries/barcodegen/html/config/BCGupce.php new file mode 100755 index 000000000..294a9ecd3 --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGupce.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGupcext2.php b/application/libraries/barcodegen/html/config/BCGupcext2.php new file mode 100755 index 000000000..158a20292 --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGupcext2.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/config/BCGupcext5.php b/application/libraries/barcodegen/html/config/BCGupcext5.php new file mode 100755 index 000000000..f518ebc13 --- /dev/null +++ b/application/libraries/barcodegen/html/config/BCGupcext5.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/delete.png b/application/libraries/barcodegen/html/delete.png new file mode 100755 index 0000000000000000000000000000000000000000..fb0c022debaf6b8af48e02df9d5ff8bb5b378664 GIT binary patch literal 438 zcmV;n0ZIOeP)L_MQNkwe2i-VKk&^4151UFY*1Sco|2|;vo5vM|j!oyh~HPq_R zhB|d{cx@07BG;i!sw5Q(e$(ULeZRYV?|?(d;+!VBPJ%J|uQvbyOT)m>Fu+PBEPB1Y z5Q}q~HyUnEz&TvSV))!_a96EjJHgS)G-=WA)2L9u(lESa!5B?+ojR&Y9aW|0T#i=^>y0?&b$_e{h=A5VsTD=O{01=N~2`b_ZKYA{UIyUq;V!g^=Op(n&#Qcm1z=-$7!PLJ8^e}kHG-# z=@bBPkb64@ybQWWX3)xyv)unqqOFa}}UNQc8X%jbPxTuvmU>r@K15Z)04V>HfW g=)K+EziEfo7fgfTpMi_Y-v9sr07*qoM6N<$f=Oq}PXGV_ literal 0 HcmV?d00001 diff --git a/application/libraries/barcodegen/html/error.png b/application/libraries/barcodegen/html/error.png new file mode 100755 index 0000000000000000000000000000000000000000..ceab5af8c31bbc754ed29245447c4506d2f33807 GIT binary patch literal 1367 zcmbtUZB&wH7=92WL{LPtR2*b#wk$OnC7D9K8j>Pb=10yjNy%}RY4%~;LQu057d4Y< z7}$r$Scax$^rfbTBO6*OQrcwdTy@k!m(4c!?%#gw-+tWBb?)n2&wby|IoJK1?XGSprs4x9$KISZ( zQ&L&mq5#PC0zf1I;KKrpzX6cr55OxP0CYJ3OZK1H-4PC7?T&z$JC2z4e6&a5F7liV z1b`wu6%b0S5|JX{8pXdT8V3|nxZ|LYG6-OlJrE5mume^Cs!VEC@qZ;n1;p;Uy1FA{ zQmNF1PN!q8TGwVDIDkkctUva<@8+;DYtAesN2OBX*lf0sS)owi)N$9*uNNVhOr}QL z*htm5`!ni37y)eq^AEjVAM@rC4Gb=EcJ9oa8s6wn9^H9bLAfOYk6%g<@WUP+#{zC> zG7cxK?h{W>4&7M?|GVnKF?7fSfG_0xy< zr*(%O-#qf*piN8S?aKfsVNCxO_ttl~HV5n0E+88iA>!AP#tk2&{OCGG<6DPy?_zr+ z?au8|aen0q9Lw)@-0z?2e|FZ?4xO9p>i0cw34VLYJ?&=J(4Rl1Zcd(gCE3aMN?uu5 zrLb7s)ph~7hqQEZP)gOV>IVrmpn6}9^v-nq!j5jE#&+#jYi8+W-<=>W!*SI0t5!~j4re3 zB~KO>S!wg#5lk6-BJad1*+}38ITVhe+(GR0P_6J0j*HnOZiIO9o0)v1Su(R{D}TZ( zsIJ%j_CbgNX*}>f4JabuZJ{q2>-y1pRGn!wRl*KECgttkR zgF17wDgIJLv@TSakuok~+s30*E3V|R`I-u=I6tTUE6bZ|qA&oZ?7+c$$)wCJ?0!UY zM)wrQ5}tzz|d<|OH&`x_lR~>(DoGScj6ThgFTDx2_ zX)B3{YWP%jot1{0b|Kenv7K8%`(d?u-OGS2prP|C5o zszqU*xn0)VB~|gd0J571AH=)icvJw&6A#|%@sPDX1_gLwymcl0^t|ENfQG2xKFuQl z45f4A<`nTLV=&d9!S3!@w}&j!f^{-yEieo)5_SePT0YmAxHYcN%0RY++D3Z_Bfa<*vIHlZ@GYV ziOo*E3I~^@qy$FQcoV}JhnzAN97=k^V766fve=o!S+=_@^hy=P-?$4Gx7=boWy9xT jCY=y${ox{qKmx;NW0Rjg2_hCi-!OQ(`njxgN@xNAliy*w literal 0 HcmV?d00001 diff --git a/application/libraries/barcodegen/html/image.php b/application/libraries/barcodegen/html/image.php new file mode 100755 index 000000000..9f8dc7c3f --- /dev/null +++ b/application/libraries/barcodegen/html/image.php @@ -0,0 +1,97 @@ + BCGDrawing::IMG_FORMAT_PNG, 'JPEG' => BCGDrawing::IMG_FORMAT_JPEG, 'GIF' => BCGDrawing::IMG_FORMAT_GIF); + +$drawException = null; +try { + $color_black = new BCGColor(0, 0, 0); + $color_white = new BCGColor(255, 255, 255); + + $code_generated = new $className(); + + if (function_exists('baseCustomSetup')) { + baseCustomSetup($code_generated, $_GET); + } + + if (function_exists('customSetup')) { + customSetup($code_generated, $_GET); + } + + $code_generated->setScale(max(1, min(4, $_GET['scale']))); + $code_generated->setBackgroundColor($color_white); + $code_generated->setForegroundColor($color_black); + + if ($_GET['text'] !== '') { + $text = convertText($_GET['text']); + $code_generated->parse($text); + } +} catch(Exception $exception) { + $drawException = $exception; +} + +$drawing = new BCGDrawing('', $color_white); +if($drawException) { + $drawing->drawException($drawException); +} else { + $drawing->setBarcode($code_generated); + $drawing->setRotationAngle($_GET['rotation']); + $drawing->setDPI($_GET['dpi'] === 'NULL' ? null : max(72, min(300, intval($_GET['dpi'])))); + $drawing->draw(); +} + +switch ($_GET['filetype']) { + case 'PNG': + header('Content-Type: image/png'); + break; + case 'JPEG': + header('Content-Type: image/jpeg'); + break; + case 'GIF': + header('Content-Type: image/gif'); + break; +} + +$drawing->finish($filetypes[$_GET['filetype']]); +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/html/include/BCGBarcode1D.php b/application/libraries/barcodegen/html/include/BCGBarcode1D.php new file mode 100755 index 000000000..dcb4ce9fd --- /dev/null +++ b/application/libraries/barcodegen/html/include/BCGBarcode1D.php @@ -0,0 +1,11 @@ + + + + 'number', 'min' => 20, 'max' => 90, 'step' => 5, 'required' => 'required')); ?> + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/include/barcode.php b/application/libraries/barcodegen/html/include/barcode.php new file mode 100755 index 000000000..317d8c525 --- /dev/null +++ b/application/libraries/barcodegen/html/include/barcode.php @@ -0,0 +1,39 @@ + 'Codabar', + 'BCGcode11.php' => 'Code 11', + 'BCGcode39.php' => 'Code 39', + 'BCGcode39extended.php' => 'Code 39 Extended', + 'BCGcode93.php' => 'Code 93', + 'BCGcode128.php' => 'Code 128', + 'BCGean8.php' => 'EAN-8', + 'BCGean13.php' => 'EAN-13', + 'BCGgs1128.php' => 'GS1-128 (EAN-128)', + 'BCGisbn.php' => 'ISBN', + 'BCGi25.php' => 'Interleaved 2 of 5', + 'BCGs25.php' => 'Standard 2 of 5', + 'BCGmsi.php' => 'MSI Plessey', + 'BCGupca.php' => 'UPC-A', + 'BCGupce.php' => 'UPC-E', + 'BCGupcext2.php' => 'UPC Extenstion 2 Digits', + 'BCGupcext5.php' => 'UPC Extenstion 5 Digits', + 'BCGpostnet.php' => 'Postnet', + 'BCGintelligentmail.php' => 'Intelligent Mail', + 'BCGothercode.php' => 'Other Barcode', + + // Databar + 'BCGdatabarexpanded.php' => 'Databar Expanded', + 'BCGdatabarlimited.php' => 'Databar Limited', + 'BCGdatabaromni.php' => 'Databar Omni', + + // 2D + 'BCGaztec.php' => 'Aztec', + 'BCGdatamatrix.php' => 'DataMatrix', + 'BCGmaxicode.php' => 'MaxiCode', + 'BCGpdf417.php' => 'PDF417', + 'BCGqrcode.php' => 'QRCode' +); +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/html/include/footer.php b/application/libraries/barcodegen/html/include/footer.php new file mode 100755 index 000000000..c1bde56d7 --- /dev/null +++ b/application/libraries/barcodegen/html/include/footer.php @@ -0,0 +1,32 @@ + + +
+
+

Output

+ $value) { + $finalRequest .= '&' . $key . '=' . urlencode($value); + } + if (strlen($finalRequest) > 0) { + $finalRequest[0] = '?'; + } + ?> +
+ Barcode ImageFill the form to generate a barcode. +
+
+
+ + +
+ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/include/function.php b/application/libraries/barcodegen/html/include/function.php new file mode 100755 index 000000000..40543d280 --- /dev/null +++ b/application/libraries/barcodegen/html/include/function.php @@ -0,0 +1,170 @@ + $value) { + $code .= ' ' . $attribute . '="' . htmlentities(stripslashes($value), ENT_COMPAT) . '"'; + } + + if ($content === false || $content === null) { + $code .= ' />'; + } else { + $code .= '>' . $content . ''; + } + + return $code; +} + +function getInputTextHtml($name, $currentValue, $attributes = array()) { + $defaultAttributes = array( + 'id' => $name, + 'name' => $name + ); + + $finalAttributes = array_merge($defaultAttributes, $attributes); + if ($currentValue !== null) { + $finalAttributes['value'] = $currentValue; + } + + return getElementHtml('input', $finalAttributes, false); +} + +function getOptionGroup($options, $currentValue) { + $content = ''; + foreach ($options as $optionKey => $optionValue) { + if (is_array($optionValue)) { + $content .= '' . getOptionGroup($optionValue, $currentValue) . ''; + } else { + $optionAttributes = array(); + if ($currentValue == $optionKey) { + $optionAttributes['selected'] = 'selected'; + } + $content .= getOptionHtml($optionKey, $optionValue, $optionAttributes); + } + } + + return $content; +} + +function getOptionHtml($value, $content, $attributes = array()) { + $defaultAttributes = array( + 'value' => $value + ); + + $finalAttributes = array_merge($defaultAttributes, $attributes); + + return getElementHtml('option', $finalAttributes, $content); +} + +function getSelectHtml($name, $currentValue, $options, $attributes = array()) { + $defaultAttributes = array( + 'size' => 1, + 'id' => $name, + 'name' => $name + ); + + $finalAttributes = array_merge($defaultAttributes, $attributes); + $content = getOptionGroup($options, $currentValue); + + return getElementHtml('select', $finalAttributes, $content); +} + +function getCheckboxHtml($name, $currentValue, $attributes = array()) { + $defaultAttributes = array( + 'type' => 'checkbox', + 'id' => $name, + 'name' => $name, + 'value' => isset($attributes['value']) ? $attributes['value'] : 'On' + ); + + $finalAttributes = array_merge($defaultAttributes, $attributes); + if ($currentValue == $finalAttributes['value']) { + $finalAttributes['checked'] = 'checked'; + } + + return getElementHtml('input', $finalAttributes, false); +} + +function getButton($value, $output = null) { + $escaped = false; + $finalValue = $value[0] === '&' ? $value : htmlentities($value); + if ($output === null) { + $output = $value; + } else { + $escaped = true; + } + + $code = ''; + return $code; +} + +/** + * Returns the fonts available for drawing. + * + * @return string[] + */ +function listfonts($folder) { + $array = array(); + if (($handle = opendir($folder)) !== false) { + while (($file = readdir($handle)) !== false) { + if(substr($file, -4, 4) === '.ttf') { + $array[$file] = $file; + } + } + } + closedir($handle); + + array_unshift($array, 'No Label'); + + return $array; +} + +/** + * Returns the barcodes present for drawing. + * + * @return string[] + */ +function listbarcodes() { + include_once('barcode.php'); + + $availableBarcodes = array(); + foreach ($supportedBarcodes as $file => $title) { + if (file_exists($file)) { + $availableBarcodes[$file] = $title; + } + } + + return $availableBarcodes; +} + +function findValueFromKey($haystack, $needle) { + foreach ($haystack as $key => $value) { + if (strcasecmp($key, $needle) === 0) { + return $value; + } + } + + return null; +} + +function convertText($text) { + $text = stripslashes($text); + if (function_exists('mb_convert_encoding')) { + $text = mb_convert_encoding($text, 'ISO-8859-1', 'UTF-8'); + } + + return $text; +} +?> \ No newline at end of file diff --git a/application/libraries/barcodegen/html/include/header.php b/application/libraries/barcodegen/html/include/header.php new file mode 100755 index 000000000..ed37a527f --- /dev/null +++ b/application/libraries/barcodegen/html/include/header.php @@ -0,0 +1,130 @@ +=') !== true) { + exit('Sorry, but you have to run this script with PHP5... You currently have the version ' . phpversion() . '.'); +} + +if (!function_exists('imagecreate')) { + exit('Sorry, make sure you have the GD extension installed before running this script.'); +} + +include_once('function.php'); + +// FileName & Extension +$system_temp_array = explode('/', $_SERVER['PHP_SELF']); +$filename = $system_temp_array[count($system_temp_array) - 1]; +$system_temp_array2 = explode('.', $filename); +$availableBarcodes = listBarcodes(); +$barcodeName = findValueFromKey($availableBarcodes, $filename); +$code = $system_temp_array2[0]; + +// Check if the code is valid +if (file_exists('config' . DIRECTORY_SEPARATOR . $code . '.php')) { + include_once('config' . DIRECTORY_SEPARATOR . $code . '.php'); +} +?> + + + + <?php echo $barcodeName; ?> - Barcode Generator + + + + + + + + + + +
+
+ + +
+
+ +
+

Barcode Generator

+

+
+
+

Configurations

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
'PNG - Portable Network Graphics', 'JPEG' => 'JPEG - Joint Photographic Experts Group', 'GIF' => 'GIF - Graphics Interchange Format')); ?>
'number', 'min' => 72, 'max' => 300, 'required' => 'required')); ?> DPI is available only for PNG and JPEG.
'number', 'min' => 1, 'max' => 4, 'required' => 'required')); ?>
'No rotation', 90 => '90° clockwise', 180 => '180° clockwise', 270 => '270° clockwise')); ?>
'number', 'min' => 1, 'max' => 30)); ?>
+
'text', 'required' => 'required')); ?>
+
Help
+
+
+
\ No newline at end of file diff --git a/application/libraries/barcodegen/html/index.php b/application/libraries/barcodegen/html/index.php new file mode 100755 index 000000000..f806fcc53 --- /dev/null +++ b/application/libraries/barcodegen/html/index.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/application/libraries/barcodegen/html/info.gif b/application/libraries/barcodegen/html/info.gif new file mode 100755 index 0000000000000000000000000000000000000000..f7fda8881b69275b6229dbf82af6807bee596c0b GIT binary patch literal 222 zcmZ?wbhEHb6krfwIKsf-=H}MZ({u6S#h{>||Ns9VJ9ezTzW&RXFN+s1E-5LQIdf)O zTH3mG>tbVL8yXs%ot-r`HG#?)hz5#3Ss2+F1Q~QdIzV}- z#q1@ynz2bGTbE0lCDEf`P0U0Qy=4jvp==j<+%--t*?hF|Ky+ewZ*Ic3P*skel^!dl iRHQa%JXu-9Az-YsCVc8oH}l|n6%8X@{SH+{25SJxPD6SC literal 0 HcmV?d00001 diff --git a/application/libraries/barcodegen/html/jquery-1.7.2.min.js b/application/libraries/barcodegen/html/jquery-1.7.2.min.js new file mode 100755 index 000000000..45bb4fc1f --- /dev/null +++ b/application/libraries/barcodegen/html/jquery-1.7.2.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.2 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="
"+""+"
",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="
t
",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( +a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f +.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/application/libraries/barcodegen/html/logo.png b/application/libraries/barcodegen/html/logo.png new file mode 100755 index 0000000000000000000000000000000000000000..0e85c449c770b27339ae7994ba4361482d77e3e0 GIT binary patch literal 16094 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 literal 0 HcmV?d00001 diff --git a/application/libraries/barcodegen/html/style.css b/application/libraries/barcodegen/html/style.css new file mode 100755 index 000000000..5895cb0ff --- /dev/null +++ b/application/libraries/barcodegen/html/style.css @@ -0,0 +1,204 @@ +body { + font-family: Segoe UI, Calibri, Arial, Helvetica; + font-size: 12px; + color: #111; + margin: 8px; +} + +.footer { + text-align: center; + margin-top: 40px; +} + +form, .header { + display: block; + margin: auto; + width: 60%; + min-width: 600px; + max-width: 700px; + position: relative; +} + +input, select { + margin: 0; +} + +input[type=text], input[type=number], select { + border: 1px solid #ababab; + padding: 2px; +} + +select { + padding-top: 1px; + padding-bottom: 1px; +} + +ul { + margin: 0; + padding: 0; + list-style: none; +} + +section { + margin-bottom: 24px; +} + +h1 { + display: none; +} + +h2 { + margin: 14px 0 8px 0; + font-weight: normal; + font-size: 20px; +} + +h3 { + font-size: 16px; + font-weight: normal; + font-style: italic; + padding-bottom: 4px; + border-bottom: 1px solid #c8c8c8; + margin: 0 0 14px 0; +} + +.logo { + margin-top: 8px; +} + +nav { + float: right; + position: absolute; + top: 34px; + right: 0; +} + +nav label { + display: block; +} + +nav select { + margin: 2px 0; + margin-left: 0; +} + +table { + table-layout: fixed; + border-collapse: collapse; + width: 100%; +} + +table td { + padding: 3px 25px 1px 4px; + vertical-align: top; + height: 26px; /* This act as a min-height */ + line-height: 30px; +} + +table tr.odd { + background-color: #eee; +} + +table tr.even { +} + +table .col1 { + width: 180px; +} + +table .info { + position: absolute; + dtop: 0; + dright: 5px; + line-height: 34px; +} + +.info img { + border: 0; + vertical-align: text-bottom; +} + +.generate { + float: left; +} + +.possiblechars { + float: right; + position: relative; +} + +#dpiUnavailable { + display: none; + padding-left: 8px; +} + +div.configurations select { + min-width: 70px; +} + +div.configurations input[type=number] { + width: 70px; +} + +/* Moved section by script */ +#explanation, #dpiExplain, #validCharacters { + display: none; + max-width: 450px; +} + +#explanation ul { + list-style: disc; + margin-left: 20px; +} + +#specificOptions { + display: none; +} + +#validCharacters input[type=button] { + width: 25px; + padding: 1px 6px; +} + +.BCGcode128 #validCharacters input[type=button], +.BCGcode39extended #validCharacters input[type=button], +.BCGcode93 #validCharacters input[type=button], +.BCGgs1128 #validCharacters input[type=button], +.BCGaztec #validCharacters input[type=button], +.BCGdatamatrix #validCharacters input[type=button], +.BCGmaxicode #validCharacters input[type=button], +.BCGqrcode #validCharacters input[type=button], +.BCGpdf417 #validCharacters input[type=button] { + width: 39px; +} + +.bubble { + display: none; +} + +.bubble.visible { + display: block !important; + position: absolute; + background-color: #f8f8f8; + border: 2px solid #ddd; + padding: 16px; +} + +.gs1128_id { + width: 40px; + text-align: center; +} + +.gs1128_value { + width: 295px; +} + +.gs1128_delete img { + border: 0; + margin-left: 5px; + vertical-align: text-bottom; +} + +#identifierContainer { + margin-top: 4px; +} \ No newline at end of file diff --git a/application/libraries/barcodegen/img.png b/application/libraries/barcodegen/img.png new file mode 100644 index 0000000000000000000000000000000000000000..229151a5a27ab0cc4661f529cc0eda27e3c03e10 GIT binary patch literal 20 Rcmb2|=3oE=W@ZQtBmoVe0J#7F literal 0 HcmV?d00001 diff --git a/application/libraries/barcodegen/index.php b/application/libraries/barcodegen/index.php new file mode 100644 index 000000000..506e9ae08 --- /dev/null +++ b/application/libraries/barcodegen/index.php @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/application/libraries/barcodegen/test_1D.html b/application/libraries/barcodegen/test_1D.html new file mode 100644 index 000000000..7663d1ef9 --- /dev/null +++ b/application/libraries/barcodegen/test_1D.html @@ -0,0 +1,36 @@ + + + +Test with embedded image + + + barcode + + + + + +Test with embedded image + + + barcode + + + + + +Test with embedded image + + + barcode + + + + + +Test with embedded image + + + barcode + + \ No newline at end of file diff --git a/application/libraries/barcodegen/test_1D.php b/application/libraries/barcodegen/test_1D.php new file mode 100644 index 000000000..33b891475 --- /dev/null +++ b/application/libraries/barcodegen/test_1D.php @@ -0,0 +1,200 @@ +setScale(2); // Resolution + $code->setThickness(30); // Thickness + $code->setForegroundColor($color_black); // Color of bars + $code->setBackgroundColor($color_white); // Color of spaces + $code->setFont($font); // Font (or 0) + $code->parse($text); // Text +} catch(Exception $exception) { + $drawException = $exception; +} + +/* Here is the list of the arguments +1 - Filename (empty : display on screen) +2 - Background color */ +$drawing = new BCGDrawing('', $color_white); +if($drawException) { + $drawing->drawException($drawException); +} else { + $drawing->setBarcode($code); + $drawing->draw(); +} + +// Header that says it is an image (remove it if you save the barcode to a file) +header('Content-Type: image/png'); +header('Content-Disposition: inline; filename="barcode.png"'); + +// Draw (or save) the image into PNG format. +$drawing->finish(BCGDrawing::IMG_FORMAT_PNG); +?> +setScale(2); // Resolution + $code->setThickness(30); // Thickness + $code->setForegroundColor($color_black); // Color of bars + $code->setBackgroundColor($color_white); // Color of spaces + $code->setFont($font); // Font (or 0) + $code->parse($text); // Text +} catch(Exception $exception) { + $drawException = $exception; +} + +/* Here is the list of the arguments +1 - Filename (empty : display on screen) +2 - Background color */ +$drawing = new BCGDrawing('', $color_white); +if($drawException) { + $drawing->drawException($drawException); +} else { + $drawing->setBarcode($code); + $drawing->draw(); +} + +// Header that says it is an image (remove it if you save the barcode to a file) +header('Content-Type: image/png'); +header('Content-Disposition: inline; filename="barcode.png"'); + +// Draw (or save) the image into PNG format. +$drawing->finish(BCGDrawing::IMG_FORMAT_PNG); +?> +setScale(2); // Resolution + $code->setThickness(30); // Thickness + $code->setForegroundColor($color_black); // Color of bars + $code->setBackgroundColor($color_white); // Color of spaces + $code->setFont($font); // Font (or 0) + $code->parse($text); // Text +} catch(Exception $exception) { + $drawException = $exception; +} + +/* Here is the list of the arguments +1 - Filename (empty : display on screen) +2 - Background color */ +$drawing = new BCGDrawing('', $color_white); +if($drawException) { + $drawing->drawException($drawException); +} else { + $drawing->setBarcode($code); + $drawing->draw(); +} + +// Header that says it is an image (remove it if you save the barcode to a file) +header('Content-Type: image/png'); +header('Content-Disposition: inline; filename="barcode.png"'); + +// Draw (or save) the image into PNG format. +$drawing->finish(BCGDrawing::IMG_FORMAT_PNG); +?> +setScale(2); // Resolution + $code->setThickness(30); // Thickness + $code->setForegroundColor($color_black); // Color of bars + $code->setBackgroundColor($color_white); // Color of spaces + $code->setFont($font); // Font (or 0) + $code->parse($text); // Text +} catch(Exception $exception) { + $drawException = $exception; +} + +/* Here is the list of the arguments +1 - Filename (empty : display on screen) +2 - Background color */ +$drawing = new BCGDrawing('', $color_white); +if($drawException) { + $drawing->drawException($drawException); +} else { + $drawing->setBarcode($code); + $drawing->draw(); +} + +// Header that says it is an image (remove it if you save the barcode to a file) +header('Content-Type: image/png'); +header('Content-Disposition: inline; filename="barcode.png"'); + +// Draw (or save) the image into PNG format. +$drawing->finish(BCGDrawing::IMG_FORMAT_PNG); +?> \ No newline at end of file diff --git a/application/models/item.php b/application/models/item.php index 7025e1294..ea3553db0 100644 --- a/application/models/item.php +++ b/application/models/item.php @@ -131,7 +131,7 @@ class Item extends CI_Model { $this->db->from('items'); $this->db->where_in('item_id',$item_ids); - $this->db->order_by("item", "asc"); + $this->db->order_by('item_id', 'asc'); return $this->db->get(); } diff --git a/application/views/barcode.php b/application/views/barcode.php index b80af25b9..284b18480 100644 --- a/application/views/barcode.php +++ b/application/views/barcode.php @@ -1,362 +1,96 @@ =1 to enable - - - NOTE: You must have GD-1.8 or higher compiled into PHP - in order to use PNG and JPEG. GIF images only work with - GD-1.5 and lower. (http://www.boutell.com) - - - ANOTHER NOTE: If you actually intend to print the barcodes - and scan them with a scanner, I highly recommend choosing - JPEG with a quality of 100. Most browsers can't seem to print - a PNG without mangling it beyond recognition. - - - USAGE EXAMPLES FOR ANY PLAIN OLD HTML DOCUMENT: - ----------------------------------------------- - - - - - - - - -*/ -/*=============================================================================*/ - - -//----------------------------------------------------------------------------- -// Startup code -//----------------------------------------------------------------------------- - - -if(isset($_GET["text"])) $text=$_GET["text"]; -if(isset($_GET["format"])) $format=$_GET["format"]; -if(isset($_GET["quality"])) $quality=$_GET["quality"]; -if(isset($_GET["width"])) $width=$_GET["width"]; -if(isset($_GET["height"])) $height=$_GET["height"]; -if(isset($_GET["type"])) $type=$_GET["type"]; -if(isset($_GET["barcode"])) $barcode=$_GET["barcode"]; - - -if(isset($_POST["text"])) $text=$_POST["text"]; -if(isset($_POST["format"])) $format=$_POST["format"]; -if(isset($_POST["quality"])) $quality=$_POST["quality"]; -if(isset($_POST["width"])) $width=$_POST["width"]; -if(isset($_POST["height"])) $height=$_POST["height"]; -if(isset($_POST["type"])) $type=$_POST["type"]; -if(isset($_POST["barcode"])) $barcode=$_POST["barcode"]; - - -if (!isset ($text)) $text = 1; -if (!isset ($type)) $type = 1; -if (empty ($quality)) $quality = 100; -if (empty ($width)) $width = 160; -if (empty ($height)) $height = 80; -if (!empty ($format)) $format = strtoupper ($format); - else $format="PNG"; - - -switch ($type) -{ - default: - $type = 1; - case 1: - Barcode39 ($barcode, $width, $height, $quality, $format, $text); - break; +function showError() { + header('Content-Type: image/png'); + readfile('error.png'); + exit; } +$requiredKeys = array('code', 'filetype', 'dpi', 'scale', 'rotation', 'font_family', 'font_size', 'text'); -//----------------------------------------------------------------------------- -// Generate a Code 3 of 9 barcode -//----------------------------------------------------------------------------- -function Barcode39 ($barcode, $width, $height, $quality, $format, $text) -{ - switch ($format) - { - default: - $format = "JPEG"; - case "JPEG": - header ("Content-type: image/jpeg"); - break; - case "PNG": - header ("Content-type: image/png"); - break; - case "GIF": - header ("Content-type: image/gif"); - break; - } - - - $im = ImageCreate ($width, $height) - or die ("Cannot Initialize new GD image stream"); - $White = ImageColorAllocate ($im, 255, 255, 255); - $Black = ImageColorAllocate ($im, 0, 0, 0); - //ImageColorTransparent ($im, $White); - ImageInterLace ($im, 1); - - - - $NarrowRatio = 20; - $WideRatio = 55; - $QuietRatio = 35; - - - $nChars = (strlen($barcode)+2) * ((6 * $NarrowRatio) + (3 * $WideRatio) + ($QuietRatio)); - $Pixels = $width / $nChars; - $NarrowBar = (int)(20 * $Pixels); - $WideBar = (int)(55 * $Pixels); - $QuietBar = (int)(35 * $Pixels); - - - $ActualWidth = (($NarrowBar * 6) + ($WideBar*3) + $QuietBar) * (strlen ($barcode)+2); - - if (($NarrowBar == 0) || ($NarrowBar == $WideBar) || ($NarrowBar == $QuietBar) || ($WideBar == 0) || ($WideBar == $QuietBar) || ($QuietBar == 0)) - { - ImageString ($im, 1, 0, 0, "Image is too small!", $Black); - OutputImage ($im, $format, $quality); - exit; - } - - $CurrentBarX = (int)(($width - $ActualWidth) / 2); - $Color = $White; - $BarcodeFull = "*".strtoupper ($barcode)."*"; - settype ($BarcodeFull, "string"); - - $FontNum = 3; - $FontHeight = ImageFontHeight ($FontNum); - $FontWidth = ImageFontWidth ($FontNum); - if (!empty($text)) - { - $CenterLoc = (int)(($width) / 2) - (int)(($FontWidth * strlen($text)) / 2); - ImageString ($im, $FontNum, $CenterLoc, $height-$FontHeight, "$text", $Black); - } - else - { - $FontHeight=-2; - } - - - for ($i=0; $i BCGDrawing::IMG_FORMAT_PNG, 'JPEG' => BCGDrawing::IMG_FORMAT_JPEG, 'GIF' => BCGDrawing::IMG_FORMAT_GIF); + +$drawException = null; +try { + $color_black = new BCGColor(0, 0, 0); + $color_white = new BCGColor(255, 255, 255); + + $code_generated = new $className(); + + if (function_exists('baseCustomSetup')) { + baseCustomSetup($code_generated, $_GET); + } + + if (function_exists('customSetup')) { + customSetup($code_generated, $_GET); + } + + $code_generated->setScale(max(1, min(4, $_GET['scale']))); + $code_generated->setBackgroundColor($color_white); + $code_generated->setForegroundColor($color_black); + + if ($_GET['text'] !== '') { + $text = convertText($_GET['text']); + $code_generated->parse($text); + } +} catch(Exception $exception) { + $drawException = $exception; +} + +$drawing = new BCGDrawing('', $color_white); +if($drawException) { + $drawing->drawException($drawException); +} else { + $drawing->setBarcode($code_generated); + $drawing->setRotationAngle($_GET['rotation']); + $drawing->setDPI($_GET['dpi'] === 'NULL' ? null : max(72, min(300, intval($_GET['dpi'])))); + $drawing->draw(); +} + +switch ($_GET['filetype']) { +case 'PNG': + header('Content-Type: image/png'); + break; +case 'JPEG': + header('Content-Type: image/jpeg'); + break; +case 'GIF': + header('Content-Type: image/gif'); + break; +} + +$drawing->finish($filetypes[$_GET['filetype']]); ?> diff --git a/application/views/barcode_sheet.php b/application/views/barcode_sheet.php index d8e89addd..54cd14f67 100644 --- a/application/views/barcode_sheet.php +++ b/application/views/barcode_sheet.php @@ -1,8 +1,11 @@ - + + + <?php echo $this->lang->line('items_generate_barcodes'); ?> + - -
+ +barcode_lib->get_font_name($barcode_config['barcode_font']); ?> + style="font-size:px"> +
width= > -config->item('barcode_content') === "id" ? $item['id'] : $item['item_number']; - $text = $this->config->item('barcode_content') === "id" ? $item['name'] : $item['item_number']; - - if ($count % 2 ==0 and $count!=0) + if ($count % $barcode_config['barcode_num_in_row'] ==0 and $count!=0) { echo ''; } - echo ""; - $count++; + echo ""; + $count++; } ?> diff --git a/application/views/configs/barcode_config.php b/application/views/configs/barcode_config.php new file mode 100644 index 000000000..6c8435ddc --- /dev/null +++ b/application/views/configs/barcode_config.php @@ -0,0 +1,297 @@ + + + +
lang->line('config_barcode_configuration'); ?>
+'barcode_config_form')); +?> +
+
+
lang->line('common_fields_required_message'); ?>
+
    + lang->line("config_barcode_info"); ?> + +
    + lang->line('config_barcode_type').':', 'barcode_type',array('class'=>'wide')); ?> +
    + config->item('barcode_type'));?> +
    +
    + +
    + lang->line('config_barcode_dpi').':', 'barcode_dpi',array('class'=>'wide required')); ?> +
    + '300', + 'min'=>'72', + 'type'=>'number', + 'name'=>'barcode_dpi', + 'id'=>'barcode_dpi', + 'value'=>$this->config->item('barcode_dpi')));?> +
    +
    + +
    + lang->line('config_barcode_thickness').':', 'barcode_thickness',array('class'=>'wide required')); ?> +
    + '5', + 'max'=>'90', + 'min'=>'20', + 'type'=>'number', + 'name'=>'barcode_thickness', + 'id'=>'barcode_thickness', + 'value'=>$this->config->item('barcode_thickness')));?> +
    +
    + +
    + lang->line('config_barcode_scale').':', 'barcode_scale',array('class'=>'wide required')); ?> +
    + 'number', + 'min' => 1, + 'max' => 4, + 'name'=>'barcode_scale', + 'id'=>'barcode_scale', + 'value'=>$this->config->item('barcode_scale')));?> +
    +
    + +
    + lang->line('config_barcode_rotation').':', 'barcode_rotation',array('class'=>'wide')); ?> +
    + 'No rotation', + '90' => '90° clockwise', + '180' => '180° clockwise', + '270' => '270° clockwise' + ), + $this->config->item('barcode_rotation')); + ?> +
    +
    + +
    + lang->line('config_barcode_font').':', 'barcode_font',array('class'=>'wide required')); ?> +
    + config->item('barcode_font')); + ?> + + 'number', + 'min' => '1', + 'max' => '30', + 'name'=>'barcode_font_size', + 'id'=>'barcode_font_size', + 'value'=>$this->config->item('barcode_font_size')));?> +
    +
    + +
    + lang->line('config_barcode_checksum').':', 'barcode_checksum',array('class'=>'wide')); ?> +
    + 'barcode_checksum', + 'id'=>'barcode_checksum', + 'value'=>'barcode_checksum', + 'checked'=>$this->config->item('barcode_checksum')));?> +
    +
    + +
    + lang->line('config_barcode_layout').':', 'barcode_layout',array('class'=>'wide')); ?> +
    + lang->line('config_barcode_first_row').' '; ?> + 'Not show', + 'name' => 'Name', + 'category' => 'Category', + 'item_code' => 'Item code', + 'cost_price' => 'Cost price', + 'unit_price' => 'Unit price' + ), + $this->config->item('barcode_first_row')); + ?> + lang->line('config_barcode_second_row').' '; ?> + 'Not show', + 'name' => 'Name', + 'category' => 'Category', + 'item_code' => 'Item code', + 'cost_price' => 'Cost price', + 'unit_price' => 'Unit price' + ), + $this->config->item('barcode_second_row')); + ?> + lang->line('config_barcode_third_row').' '; ?> + 'Not show', + 'name' => 'Name', + 'category' => 'Category', + 'item_code' => 'Item code', + 'cost_price' => 'Cost price', + 'unit_price' => 'Unit price' + ), + $this->config->item('barcode_third_row')); + ?> +
    +
    + +
    + lang->line('config_barcode_number_in_row').':', 'barcode_num_in_row',array('class'=>'wide required')); ?> +
    + 'barcode_num_in_row', + 'id'=>'barcode_num_in_row', + 'value'=>$this->config->item('barcode_num_in_row')));?> +
    +
    + +
    + lang->line('config_barcode_page_width').':', 'barcode_page_width',array('class'=>'wide required')); ?> +
    + 'barcode_page_width', + 'id'=>'barcode_page_width', + 'value'=>$this->config->item('barcode_page_width')));?> + % +
    +
    + +
    + lang->line('config_barcode_page_cellspacing').':', 'barcode_page_cellspacing',array('class'=>'wide required')); ?> +
    + 'barcode_page_cellspacing', + 'id'=>'barcode_page_cellspacing', + 'value'=>$this->config->item('barcode_page_cellspacing')));?> + pixl +
    +
    + + 'submit', + 'id'=>'submit', + 'value'=>$this->lang->line('common_submit'), + 'class'=>'submit_button float_right') + ); + ?> +
    +
    + + + + diff --git a/application/views/configs/general_config.php b/application/views/configs/general_config.php new file mode 100644 index 000000000..4955df7dd --- /dev/null +++ b/application/views/configs/general_config.php @@ -0,0 +1,438 @@ +
    lang->line('config_general_config'); ?>
    +'config_form')); +?> +
    +
    +
    lang->line('common_fields_required_message'); ?>
    +
      +lang->line("config_info"); ?> + +
      +lang->line('config_company').':', 'company',array('class'=>'wide required')); ?> +
      + 'company', + 'id'=>'company', + 'value'=>$this->config->item('company')));?> +
      +
      + +
      +lang->line('config_address').':', 'address',array('class'=>'wide required')); ?> +
      + 'address', + 'id'=>'address', + 'rows'=>4, + 'cols'=>17, + 'value'=>$this->config->item('address')));?> +
      +
      + +
      +lang->line('config_phone').':', 'phone',array('class'=>'wide required')); ?> +
      + 'phone', + 'id'=>'phone', + 'value'=>$this->config->item('phone')));?> +
      +
      + +
      +lang->line('config_default_tax_rate_1').':', 'default_tax_1_rate',array('class'=>'wide required')); ?> +
      + 'default_tax_1_name', + 'id'=>'default_tax_1_name', + 'size'=>'10', + 'value'=>$this->config->item('default_tax_1_name')!==FALSE ? $this->config->item('default_tax_1_name') : $this->lang->line('items_sales_tax_1')));?> + + 'default_tax_1_rate', + 'id'=>'default_tax_1_rate', + 'size'=>'4', + 'value'=>$this->config->item('default_tax_1_rate')));?>% +
      +
      + +
      +lang->line('config_default_tax_rate_2').':', 'default_tax_1_rate',array('class'=>'wide')); ?> +
      + 'default_tax_2_name', + 'id'=>'default_tax_2_name', + 'size'=>'10', + 'value'=>$this->config->item('default_tax_2_name')!==FALSE ? $this->config->item('default_tax_2_name') : $this->lang->line('items_sales_tax_2')));?> + + 'default_tax_2_rate', + 'id'=>'default_tax_2_rate', + 'size'=>'4', + 'value'=>$this->config->item('default_tax_2_rate')));?>% +
      +
      + +
      + lang->line('config_currency_symbol').':', 'currency_symbol',array('class'=>'wide')); ?> +
      + 'currency_symbol', + 'id'=>'currency_symbol', + 'value'=>$this->config->item('currency_symbol')));?> +
      + + lang->line('config_currency_side').':', 'currency_side',array('class'=>''));?> +
      + 'currency_side', + 'id'=>'currency_side', + 'value'=>'currency_side', + 'checked'=>$this->config->item('currency_side')));?> +
      +
      + + +
      +lang->line('common_email').':', 'email',array('class'=>'wide')); ?> +
      + 'email', + 'id'=>'email', + 'value'=>$this->config->item('email')));?> +
      +
      + + +
      +lang->line('config_fax').':', 'fax',array('class'=>'wide')); ?> +
      + 'fax', + 'id'=>'fax', + 'value'=>$this->config->item('fax')));?> +
      +
      + +
      +lang->line('config_website').':', 'website',array('class'=>'wide')); ?> +
      + 'website', + 'id'=>'website', + 'value'=>$this->config->item('website')));?> +
      +
      + +
      +lang->line('common_return_policy').':', 'return_policy',array('class'=>'wide required')); ?> +
      + 'return_policy', + 'id'=>'return_policy', + 'rows'=>'4', + 'cols'=>'17', + 'value'=>$this->config->item('return_policy')));?> +
      +
      + +
      +lang->line('config_language').':', 'language',array('class'=>'wide required')); ?> +
      + 'Azerbaijan', + 'BahasaIndonesia' => 'BahasaIndonesia', + 'english' => 'English', + 'Spanish' => 'Spanish', + 'Russian' => 'Russian', + 'Thai' => 'Thai' + ), + $this->config->item('language')); + ?> +
      +
      + +
      +lang->line('config_timezone').':', 'timezone',array('class'=>'wide required')); ?> +
      + '(GMT-11:00) Midway Island, Samoa', + 'America/Adak'=>'(GMT-10:00) Hawaii-Aleutian', + 'Etc/GMT+10'=>'(GMT-10:00) Hawaii', + 'Pacific/Marquesas'=>'(GMT-09:30) Marquesas Islands', + 'Pacific/Gambier'=>'(GMT-09:00) Gambier Islands', + 'America/Anchorage'=>'(GMT-09:00) Alaska', + 'America/Ensenada'=>'(GMT-08:00) Tijuana, Baja California', + 'Etc/GMT+8'=>'(GMT-08:00) Pitcairn Islands', + 'America/Los_Angeles'=>'(GMT-08:00) Pacific Time (US & Canada)', + 'America/Denver'=>'(GMT-07:00) Mountain Time (US & Canada)', + 'America/Chihuahua'=>'(GMT-07:00) Chihuahua, La Paz, Mazatlan', + 'America/Dawson_Creek'=>'(GMT-07:00) Arizona', + 'America/Belize'=>'(GMT-06:00) Saskatchewan, Central America', + 'America/Cancun'=>'(GMT-06:00) Guadalajara, Mexico City, Monterrey', + 'Chile/EasterIsland'=>'(GMT-06:00) Easter Island', + 'America/Chicago'=>'(GMT-06:00) Central Time (US & Canada)', + 'America/New_York'=>'(GMT-05:00) Eastern Time (US & Canada)', + 'America/Havana'=>'(GMT-05:00) Cuba', + 'America/Bogota'=>'(GMT-05:00) Bogota, Lima, Quito, Rio Branco', + 'America/Caracas'=>'(GMT-04:30) Caracas', + 'America/Santiago'=>'(GMT-04:00) Santiago', + 'America/La_Paz'=>'(GMT-04:00) La Paz', + 'Atlantic/Stanley'=>'(GMT-04:00) Faukland Islands', + 'America/Campo_Grande'=>'(GMT-04:00) Brazil', + 'America/Goose_Bay'=>'(GMT-04:00) Atlantic Time (Goose Bay)', + 'America/Glace_Bay'=>'(GMT-04:00) Atlantic Time (Canada)', + 'America/St_Johns'=>'(GMT-03:30) Newfoundland', + 'America/Araguaina'=>'(GMT-03:00) UTC-3', + 'America/Montevideo'=>'(GMT-03:00) Montevideo', + 'America/Miquelon'=>'(GMT-03:00) Miquelon, St. Pierre', + 'America/Godthab'=>'(GMT-03:00) Greenland', + 'America/Argentina/Buenos_Aires'=>'(GMT-03:00) Buenos Aires', + 'America/Sao_Paulo'=>'(GMT-03:00) Brasilia', + 'America/Noronha'=>'(GMT-02:00) Mid-Atlantic', + 'Atlantic/Cape_Verde'=>'(GMT-01:00) Cape Verde Is.', + 'Atlantic/Azores'=>'(GMT-01:00) Azores', + 'Europe/Belfast'=>'(GMT) Greenwich Mean Time : Belfast', + 'Europe/Dublin'=>'(GMT) Greenwich Mean Time : Dublin', + 'Europe/Lisbon'=>'(GMT) Greenwich Mean Time : Lisbon', + 'Europe/London'=>'(GMT) Greenwich Mean Time : London', + 'Africa/Abidjan'=>'(GMT) Monrovia, Reykjavik', + 'Europe/Amsterdam'=>'(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna', + 'Europe/Belgrade'=>'(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague', + 'Europe/Brussels'=>'(GMT+01:00) Brussels, Copenhagen, Madrid, Paris', + 'Africa/Algiers'=>'(GMT+01:00) West Central Africa', + 'Africa/Windhoek'=>'(GMT+01:00) Windhoek', + 'Asia/Beirut'=>'(GMT+02:00) Beirut', + 'Africa/Cairo'=>'(GMT+02:00) Cairo', + 'Asia/Gaza'=>'(GMT+02:00) Gaza', + 'Africa/Blantyre'=>'(GMT+02:00) Harare, Pretoria', + 'Asia/Jerusalem'=>'(GMT+02:00) Jerusalem', + 'Europe/Minsk'=>'(GMT+02:00) Minsk', + 'Asia/Damascus'=>'(GMT+02:00) Syria', + 'Europe/Moscow'=>'(GMT+03:00) Moscow, St. Petersburg, Volgograd', + 'Africa/Addis_Ababa'=>'(GMT+03:00) Nairobi', + 'Asia/Tehran'=>'(GMT+03:30) Tehran', + 'Asia/Dubai'=>'(GMT+04:00) Abu Dhabi, Muscat', + 'Asia/Yerevan'=>'(GMT+04:00) Yerevan', + 'Asia/Kabul'=>'(GMT+04:30) Kabul', + 'Asia/Baku'=>'(GMT+05:00) Baku',/*GARRISON ADDED 4/20/2013*/ + 'Asia/Yekaterinburg'=>'(GMT+05:00) Ekaterinburg', + 'Asia/Tashkent'=>'(GMT+05:00) Tashkent', + 'Asia/Kolkata'=>'(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi', + 'Asia/Katmandu'=>'(GMT+05:45) Kathmandu', + 'Asia/Dhaka'=>'(GMT+06:00) Astana, Dhaka', + 'Asia/Novosibirsk'=>'(GMT+06:00) Novosibirsk', + 'Asia/Rangoon'=>'(GMT+06:30) Yangon (Rangoon)', + 'Asia/Bangkok'=>'(GMT+07:00) Bangkok, Hanoi, Jakarta', + 'Asia/Krasnoyarsk'=>'(GMT+07:00) Krasnoyarsk', + 'Asia/Hong_Kong'=>'(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi', + 'Asia/Irkutsk'=>'(GMT+08:00) Irkutsk, Ulaan Bataar', + 'Australia/Perth'=>'(GMT+08:00) Perth', + 'Australia/Eucla'=>'(GMT+08:45) Eucla', + 'Asia/Tokyo'=>'(GMT+09:00) Osaka, Sapporo, Tokyo', + 'Asia/Seoul'=>'(GMT+09:00) Seoul', + 'Asia/Yakutsk'=>'(GMT+09:00) Yakutsk', + 'Australia/Adelaide'=>'(GMT+09:30) Adelaide', + 'Australia/Darwin'=>'(GMT+09:30) Darwin', + 'Australia/Brisbane'=>'(GMT+10:00) Brisbane', + 'Australia/Hobart'=>'(GMT+10:00) Hobart', + 'Asia/Vladivostok'=>'(GMT+10:00) Vladivostok', + 'Australia/Lord_Howe'=>'(GMT+10:30) Lord Howe Island', + 'Etc/GMT-11'=>'(GMT+11:00) Solomon Is., New Caledonia', + 'Asia/Magadan'=>'(GMT+11:00) Magadan', + 'Pacific/Norfolk'=>'(GMT+11:30) Norfolk Island', + 'Asia/Anadyr'=>'(GMT+12:00) Anadyr, Kamchatka', + 'Pacific/Auckland'=>'(GMT+12:00) Auckland, Wellington', + 'Etc/GMT-12'=>'(GMT+12:00) Fiji, Kamchatka, Marshall Is.', + 'Pacific/Chatham'=>'(GMT+12:45) Chatham Islands', + 'Pacific/Tongatapu'=>'(GMT+13:00) Nuku\'alofa', + 'Pacific/Kiritimati'=>'(GMT+14:00) Kiritimati' + ), $this->config->item('timezone') ? $this->config->item('timezone') : date_default_timezone_get()); + ?> +
      +
      + +
      +lang->line('config_print_after_sale').':', 'print_after_sale',array('class'=>'wide')); ?> +
      + 'print_after_sale', + 'id'=>'print_after_sale', + 'value'=>'print_after_sale', + 'checked'=>$this->config->item('print_after_sale')));?> +
      +
      + +
      +lang->line('config_custom1').':', 'website',array('class'=>'wide')); ?> +
      + 'custom1_name', + 'id'=>'custom1_name', + 'value'=>$this->config->item('custom1_name')));?> +
      +
      + +
      +lang->line('config_custom2').':', 'website',array('class'=>'wide')); ?> +
      + 'custom2_name', + 'id'=>'custom2_name', + 'value'=>$this->config->item('custom2_name')));?> +
      +
      + +
      +lang->line('config_custom3').':', 'website',array('class'=>'wide')); ?> +
      + 'custom3_name', + 'id'=>'custom3_name', + 'value'=>$this->config->item('custom3_name')));?> +
      +
      + +
      +lang->line('config_custom4').':', 'website',array('class'=>'wide')); ?> +
      + 'custom4_name', + 'id'=>'custom4_name', + 'value'=>$this->config->item('custom4_name')));?> +
      +
      + +
      +lang->line('config_custom5').':', 'website',array('class'=>'wide')); ?> +
      + 'custom5_name', + 'id'=>'custom5_name', + 'value'=>$this->config->item('custom5_name')));?> +
      +
      + +
      +lang->line('config_custom6').':', 'website',array('class'=>'wide')); ?> +
      + 'custom6_name', + 'id'=>'custom6_name', + 'value'=>$this->config->item('custom6_name')));?> +
      +
      + +
      +lang->line('config_custom7').':', 'website',array('class'=>'wide')); ?> +
      + 'custom7_name', + 'id'=>'custom7_name', + 'value'=>$this->config->item('custom7_name')));?> +
      +
      + +
      +lang->line('config_custom8').':', 'website',array('class'=>'wide')); ?> +
      + 'custom8_name', + 'id'=>'custom8_name', + 'value'=>$this->config->item('custom8_name')));?> +
      +
      + +
      +lang->line('config_custom9').':', 'website',array('class'=>'wide')); ?> +
      + 'custom9_name', + 'id'=>'custom9_name', + 'value'=>$this->config->item('custom9_name')));?> +
      +
      + +
      +lang->line('config_custom10').':', 'website',array('class'=>'wide')); ?> +
      + 'custom10_name', + 'id'=>'custom10_name', + 'value'=>$this->config->item('custom10_name')));?> +
      +
      + +'submit', + 'id'=>'submit', + 'value'=>$this->lang->line('common_submit'), + 'class'=>'submit_button float_right') +); +?> +
      +
      + + + \ No newline at end of file diff --git a/application/views/configs/manage.php b/application/views/configs/manage.php new file mode 100644 index 000000000..4248db6c4 --- /dev/null +++ b/application/views/configs/manage.php @@ -0,0 +1,22 @@ +load->view("partial/header"); ?> + + + +
      +
      lang->line('module_config'); ?>
      +
      +
      + +
      +
      + load->view("configs/general_config"); ?> +
      +
      + load->view("configs/barcode_config"); ?> +
      +
      +
      +load->view("partial/footer"); ?> \ No newline at end of file diff --git a/application/views/items/form.php b/application/views/items/form.php index 4ae726a77..37cd6466d 100644 --- a/application/views/items/form.php +++ b/application/views/items/form.php @@ -7,7 +7,7 @@ echo form_open('items/save/'.$item_info->item_id,array('id'=>'item_form')); lang->line("items_basic_information"); ?>
      -lang->line('items_item_number').':', 'name',array('class'=>'wide')); ?> +lang->line('items_item_number').':', 'name',array('class'=>'required wide')); ?>
      'item_number', @@ -447,6 +447,7 @@ $(document).ready(function() wrapper: "li", rules: { + item_number:"required", name:"required", category:"required", cost_price: @@ -474,6 +475,7 @@ $(document).ready(function() }, messages: { + item_number:"lang->line('items_number_required'); ?>", name:"lang->line('items_name_required'); ?>", category:"lang->line('items_category_required'); ?>", cost_price: diff --git a/barcode.png b/barcode.png new file mode 100644 index 0000000000000000000000000000000000000000..229151a5a27ab0cc4661f529cc0eda27e3c03e10 GIT binary patch literal 20 Rcmb2|=3oE=W@ZQtBmoVe0J#7F literal 0 HcmV?d00001 diff --git a/css/barcode_font.css b/css/barcode_font.css new file mode 100644 index 000000000..dd6007319 --- /dev/null +++ b/css/barcode_font.css @@ -0,0 +1,44 @@ +@font-face +{ + font-family:'SansationLight'; + src: url('../font/SansationLight.eot'); + src: local('SansationLight'), url('../font/SansationLight.woff') format('woff'), url('../font/SansationLight.ttf') format('truetype'); +} + +.font_SansationLight { + font-family: 'SansationLight' !important; +} + +@font-face +{ + font-family:'Arial'; + src: url('../font/Arial.eot'); + src: local('Arial'), url('../font/Arial.woff') format('woff'), url('../font/Arial.ttf') format('truetype'); +} + +.font_Arial { + font-family: 'Arial' !important; +} + +@font-face +{ + font-family:'JUNEBUG'; + src: url('../font/JUNEBUG.eot'); + src: local('JUNEBUG'), url('../font/JUNEBUG.woff') format('woff'), url('../font/JUNEBUG.ttf') format('truetype'); +} + +.font_JUNEBUG { + font-family: 'JUNEBUG' !important; +} + +@font-face +{ + font-family:'b-de-bonita-shadow'; + src: url('../font/b-de-bonita-shadow.eot'); + src: local('JUNEBUG'), url('../font/b-de-bonita-shadow.woff') format('woff'), url('../font/b-de-bonita-shadow.ttf') format('truetype'); +} + +.font_b-de-bonita-shadow { + font-family: 'b-de-bonita-shadow' !important; +} + diff --git a/css/tabcontent.css b/css/tabcontent.css new file mode 100644 index 000000000..dc9eb1247 --- /dev/null +++ b/css/tabcontent.css @@ -0,0 +1,69 @@ +/* Tab Content - menucool.com */ + +ul.tabs +{ + padding: 7px 0; + font-size: 0; + margin:0; + list-style-type: none; + text-align: left; /*set to left, center, or right to align the tabs as desired*/ +} + +ul.tabs li +{ + display: inline; + margin: 0; + margin-right:3px; /*distance between tabs*/ +} + +ul.tabs li a +{ + font: normal 12px Verdana; + text-decoration: none; + position: relative; + padding: 7px 16px; + border: 1px solid #CCC; + border-bottom-color:#B7B7B7; + color: #000; + background: #F0F0F0 url(../images/tabbg.gif) 0 0 repeat-x; + border-radius: 3px 3px 0 0; + outline:none; +} + +ul.tabs li a:visited +{ + color: #000; +} + +ul.tabs li a:hover +{ + border: 1px solid #B7B7B7; + background-color:#F0F0F0; + background-image:url(../images/tabbg.gif); + background-position:0 -36px; + background-repeat:repeat-x; +} + +ul.tabs li.selected a, ul.tabs li.selected a:hover +{ + position: relative; + top: 0px; + font-weight:bold; + background: white; + border: 1px solid #B7B7B7; + border-bottom-color: white; +} + + +ul.tabs li.selected a:hover +{ + text-decoration: none; +} + + +div.tabcontents +{ + border: 1px solid #B7B7B7; padding: 30px; + background-color:#FFF; + border-radius: 0 3px 3px 3px; +} \ No newline at end of file diff --git a/database/2.3_to_2.3.1.sql b/database/2.3_to_2.3.1.sql index 93291b1c8..a7f413649 100644 --- a/database/2.3_to_2.3.1.sql +++ b/database/2.3_to_2.3.1.sql @@ -89,7 +89,20 @@ INSERT INTO `ospos_app_config` (`key`, `value`) VALUES ('recv_invoice_format', '$CO'), ('sales_invoice_format', '$CO'), ('barcode_content', 'id'), -('barcode_labels', ''); +('barcode_labels', ''), +('barcode_dpi', '72'), +('barcode_scale', '1'), +('barcode_rotation', 'no_rotation'), +('barcode_font', ''), +('barcode_font_size', ''), +('barcode_thickness', '20'), +('barcode_checksum', '0'), +('barcode_first_row', 'category'), +('barcode_second_row', 'item_code'), +('barcode_third_row', 'cost_price'), +('barcode_num_in_row', '2'), +('barcode_page_width', '100'), +('barcode_page_cellspacing', '20'); -- add invoice_number column to receivings table ALTER TABLE `ospos_receivings` diff --git a/database/database.sql b/database/database.sql index 67c53e136..64487bf1e 100644 --- a/database/database.sql +++ b/database/database.sql @@ -41,7 +41,20 @@ INSERT INTO `ospos_app_config` (`key`, `value`) VALUES ('sales_invoice_format', '$CO'), ('tax_included', '0'), ('barcode_content', 'id'), -('barcode_labels', ''); +('barcode_labels', ''), +('barcode_dpi', '72'), +('barcode_scale', '1'), +('barcode_rotation', 'no_rotation'), +('barcode_font', 'Arial'), +('barcode_font_size', '10'), +('barcode_thickness', '20'), +('barcode_checksum', '0'), +('barcode_first_row', 'category'), +('barcode_second_row', 'item_code'), +('barcode_third_row', 'cost_price'), +('barcode_num_in_row', '2'), +('barcode_page_width', '100'), +('barcode_page_cellspacing', '20'); -- -------------------------------------------------------- diff --git a/font/Arial.ttf b/font/Arial.ttf new file mode 100755 index 0000000000000000000000000000000000000000..886789b85b4b4e662519fcb7fe4d88ddf2205c5b GIT binary patch literal 311636 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 z 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 AlmGw# literal 0 HcmV?d00001 diff --git a/font/b-de-bonita-shadow.ttf b/font/b-de-bonita-shadow.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5d259b02d7aa5b8ba587604da485d1e07cdf14bb GIT binary patch literal 217736 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°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

      sQnp#EBx@*r&x1ArGvfH zvaAZBM7gHN+geE@F4@WbjRU)JPtJW;E2Uloa#fgVaBU^z6(y@$6S+!Qx%<5wWeSz; zQ~OcTUGQE22I*5D7~|oSBXn52X!X{LetID!ebW8YdvFRvO{36iz4cLA9HiqV4ukWP z&Fd!sg^m|)W}U6^gHUn|nV{1&P60~{+S&DC?>L4xL;N9`S=5G26fBvrD!@uu^V>4C zj<#3bxP8{X(j!^uHl69NJ%`|7jI%6(oNIUBb3tkW>hqeyThA#I#dia zSrIZJ&zj{%b$WKIb+`3EF}Oln(x`n$-0F-St(e6r>>S!1(sNFmd{;VY1uu$xbKpD`|jzd!~YEBcTZYGPtLOQeqpRg#;4qH?xB;v-A=Sz865F?*BZZxWc zzsQ?R*aRnp52Yo^%<<^~YlgEe)t z_VIe+J_Bu#*N%7{Usw4`_Pu|qeUg4$kB;2`7kkd~m2NcZq7*;%TcqjYPm}GhVxUs4 z$Z%{ZdQ~f6DR=-#=VOKG6fN^bCBqOGnNWK&=I%0OS897f1D$2^Tz)oMKh#D1(L^%L zLQSjK6dTL@og!QlyHR>&#|WMJh)QTh9r6ImaeiIC)amhtiGgFb#71%tPs%sc`c600 z+GIZCyxUAjFR+wQBBQKrEU4bxPANALvxF!RZ`y0^j()aEeMbDuwI)z*0wVytm<(Qck<-xTbB|Q2kj1fS#^N~dyUMg&*)BH za6f9PM|+fu`hu`Py7^)+9ml=_ew}rear4cQXE{t5V&W?}9vp8v&D66E)F)oPCUh)i ziWyfy`wG8rxl4!}f<7kVp)GN0@DAA-QiQ5ao*L42gujTXl!#%c*PMC2#^h;ZaCtzm z&4!aaBzgLLQGqYys*4puMUj@`;d26or^U560cgulqLvT1Y$DMc5@L@$3wXrEBsr@ zdczCKMYM=-;!KcgdD^`jab0YR?HA@GOhYulIz>kj`Aa_(tRasC&v~k z3k0ns=0bW&!id0-@te#=07HF4^NG(w!paoc!B8q8E$6+BCuNvlmcC0rg{R#YEtFFC zU(1y>-uSjkJ5Fkdy?1tZm^hSKgxDjO&oP07Rr($PrRNqI*N zDA4NMls;S^&OwR}5f9FV=)k6-J7W+-qoGqrDKes<1MwtkF3CN99jg zk;C+8TiY+ji~YrsIk(EoPl4-%xwWz|5=4&`WGU2=a!J(vQt2bKP-`T2sO^7l8+qjZ zA68D5QvH<6yAMzQ`BHAuG(;06y96|k7k7Q}br&bNKg^JmNghFFmkB!yYEQYR>a$JM zZ;Ws;KKZw@0c0(K6COF+!O*ptzz06oZ>IXEJpm;*#_MK%_Rsy$X*F6`nm~r=_v;)p zNE1;I0J^2scN+plgu10jhhb+<*{a%GHb@S!iw&b8Jh_ez{6_P~5iNtp!+NW0XWo2G z3KxK%YmCX6vAppPUkonj)T=WX3Nirj+Q`McQ=gGjnc_VbUq1Q9-n@~C&Jy`pN_ObThs z_dybExKUcr*uf=3n}pXSycrGyA3Fz;#8E34IE^-(1QKRpujC&zE`_g+?hYuG=(Vd} zheyaq?bLkHinM5QVl+m*>g~|ULdZv{fdUO$x#go;+Q&T!sU3Ue!h}B^!>J-IhoVnO zh1#`<%m|z^H1ZmDJD`CGj6UTbalO$c8u86fkcV`BuWI6&#a~`b2dt&^Q>tB|-)L#}RTjW;#NMRdc-vkXuWx%C26{@h$ z=h!4QNpNi%>3GWpH}xEZ9c#KdnG`+P2Zv|c8ObWwoXnczJ7E_dd-}iUy<{b*o#NyJ zK21hOtKW0-vmpWl3r;neU8Yx-WN%1{P?GN!RY$wMe)x#qntXCJZQ9!9R~FKXw=;Rc zkak)M&|7zZPG~Kveyw*U_ZN+@X)kc2m`rkOSnN7W_Cg#LFF8dJ;#F@*`kNTK4sY=O zjkJg0lIjx4M(|xc)0LFZNQyQRy2_X_Of6(XXJ0p~1y(}Ifx=u)kDOPHwuTM%F1>)YxW~eIT{1OxF6duixPzUlMlLh2v;|4swht}4-Xe$qW*T*9J0U|+gEbHfg7A0KE*F!^K7Onj5tTv} zPns;YlG^O6_hBnQ+iNOjgj?dDY2T;)I6mI3%G=Po6{*m%fMiu9oJPYkRza4qRFV>i zC=I7%1SR`7QZn*1WMot4M%5+T97t2x*gH9E zOC`o3f2=3#rkTXCwu1<1^A|5pvjqX436a76+3#rD`|W;u_*680`0|#Kj9=J^lILmwq;gdbH?kVX0{YztfpQf_}_3zH;v})6s@D(38m{eQ25}W(V6n*t%F03j34)JP8%&J4h`9?Ty>I;t^(L1x@)p!nAuNt4C_gW;L;Ir6Op z$~1E+p(C9sb^?2`Z6>ypn#&NVo9T9%ja>8p6(R+cH`(4^1TcIFWDSirjXRgd>y=MTkov#?yMLHKh|YCGW?aeZ8SRX78MgBfHxO@dMbA{+>u8`R2`o&n3J?u& z4n00(i@TomM=^YouT%3-&kbU53&KJa%@W5uu>J9TD{j(=u9MyP1?@*Ge_VNS<;TcH zDT|@4A;3NmO6_%9m1$Wz;oeKCXoJ+(<6~_l@S4~Pl)U^u<%?El5A4TM{B zqJX?^q?59!W9xKA$M&M)s38+sY2lbmCqV*SohmdViExHcQGxCD@uLb8@?Vr%G;O2{ zz91V36c8kiR^1=q^#CuV-D8WlwBV;Dr-@;y@*yLJfO4l~G8V2d>GNEu7GzEn*%SJ# zEmsH-tj?`sY*uozDy=9Zg@ll$qEL|L)|lRWQ7xz= z9y*bXrFicARi>;MQohU5qNDIhvLk`XZPd!Hruajc1H##q2@;(nZqIzd=BO4uov|lU zXw<6zMeS?_JkuF2R!M7CONI-oGRMW`vo-jvDBPV49=$rpN8OtM@A|LUJ=MkayQAr0 zeMxld(M0I(UB1S&rQEohjdktEn{(6P!x+`?k~)D2B0m%YKQxmbX4FEHahF!OdW!xZ z0m-djt2HOP?RXLRz_9x3OWkUd;sLnbC;hnEzp@8=fFBTn>u%F?BfGmlBa=XQJss)# zl(AZnx=JD2xc8ZRdrVjROJb&W3sW%b{U+`{`xa zj`01l$=d#lp8t0Z=w~}&7WsL?#E5xhjUI2(D`@Xbn9Pw+sCC4&5uo#sy4FEo6lT0G z=+q!EXgDslWE%0pSu{BXBBnc|dFzRh88&h}K&#$JTqpB_mc31ep_yneY+oDGIX<5I zZ5j9RSgqB%(H5&MixlMk$({c++Lv`j(x;0pIL_djZ4MtDMqt)F+i$}GPwqnkW*CIp zPWwxG>_oeFtL?U1X-y_6u;Dyfu<*mORG-?$@bOX6m1?XboqC>N>U4|U5gv_y+B=>a zN!X

      EFA;`u%z3<(2Ql&zF8YdKEy~lK0(QZ&?)Da>{GUYHR(8T4)7~;~3ioJn~=+dlg+yjoA_8F;NE330E8T1#}geqSJMH z(0lrYWY3D6DQaPJO2PSV)2KF9w^se*94vZ&X)W;faRfmgN&ILw2NP*ysgm-K+L!7~ zmC4L)++N&T7%IN6w_9%&cK#2*8Kf}M$&yu}#vag$UC1z0`b8rm4=37hv-tSi{$w_< zV;uJBpfidYZ>L;pHG#oB@2y<#x!8{i1OfMmv8(qkqd<=Q39YmZRxI*gobQT z(*Mw*ZM?ZxP{-H3j}4fyi#ft)GJOw#69?7tS}&S*+a#^iyVVz1kQqWA%#I=OpwpXJ ztJm-Py=b&=Y+)8>V?v$`_^n<vZrqXt}u zbyL^69?Mm|H1C|PJM6jG?!{V5TjER3_KFUvqy)!Mt6typQU~rf34VPvUlwM~!-gO_ zq~w7Fj46ib)z03P?&#QG($so9^Sdp$|MwomV>PJY;WmFl>;AFXXfm7$+7;Q>lJ%o2 zB_btaa>4OhW&TFB9|Ku{E29TH2MflMHoUBX>m*&|k|n01O>z=;qxzD$qii-GN`_h; zFBCJadD+}`VbXx3(uEy2%qK=SOd<+BpJKnsC;s-XltSUT{u_h|VkE&tz8UM5l zno<^3MLNibNW+{RhLQwxT!u*Ji5f=yomAugb=uH1zs=}Apm`xJbav5dyA8O3CHcxi zn^CXbr7*d*+kes0252{TMWxL)8W%3l~(M)>d#DX^H^~92jw@5f)au zOT!G=4Sm}W=T8rA6g1EP3mX7}tPbPE?qIhHL6t?ZzKvUnuS48p|7!v!+&g;dqnJ5d zl5uGbhEz|v)?~>%pm>_Tx>e+?)Sy$7NVoteffjyb&XYyI%fjjY8lJVEQ z($LFe_R9C#Jpzik+l~)91X|FHvc&aapES2A(X!0Q)xcZo4!SY|tM>zyzb1zG2&j?@ zii=g1AaxTOuoCL8O-!l07xUc6QP#m+s)2DNvcxA+84Yy~5e{>~ef(ejsESjmLpMPJ zKBnwmMTv8+QAM{ZQ7Ox%yiyh&?R_dw-7kK(HeH}XnHoVJ){P6_LiSTPfgOV-@_PM2 z5OzI;-emQ4*bCcL^G;Kbty1SXfgiv~ilf&}mPrih26mCWC{q?Ka#0Ol{B!S~J7)w(daD#KX zI$791OYyNvMc}jAztB>UBhOSm%&umavA?9*@nTvw>2&4$2(`LOSeyeC4$t9!7u%d= zQY-|bUrlT!YbN`ayUPVnB^*VB~u*QC$`L_+Y4H%1J zOtSWhNu!7iB4Qc|K?}BnAch(uNiV~SnmL69AY?#UW-0yoMmi&F-}ia18ThY80}r6) zxUFqJLP+SnD@beucGW!vUyerP;2s%~h7^`0(WH zbeA}2vqa@Xo8*8b87c1Q3PrwI^(sq_62}0T);>^741!wrs>KOq*~{Oh0!M&2q1xoK z!$ptFsn5#%cQ#SaLKZH5+1fR4)987ojj4(#4&HLT6gC)ZejN_pdgb}O&;MgT@ z^0GSgt6S}OV6;u<*l63f8?8Gvw_0BvGP)!0^=@^&Wxx<%z1o~@`35vb`Wg-GFdx>3 zI}u$pkii!98FPk6sj|5iN0chkhvm6$0XHl2Lq^(lg%-)FXZ7KXq(cN+ zpCD`7ap6?cii1_3PS9R4!tV~iFM9dev5XfnEdc3gLbu;=sbeuQb`0$;Rhy8{52qs1 z+liB-rWJrhym#-%w0{p@_}2&;nEAt-WD-+_W&10GU4}_4rzn(j6D=aZ4p-@>ZT*P3 zPbIHC9<|IC?&BOF5=sQ99G->b+~LahrYo$>#E1>HfVLZ$e05Lh1$jLYV5)h z&!kKsB*aSuVbKe>Q7rTkHH^s4)4Cs}Kx~)}igNIAE~G9H=vyy;{sWn9Mz^NZBJjuU zbh|!r>fP%DT8tfiZQx`NuL32c$ynRAq~*at2qQSb38C!7pK;Lv+%$}OjE$>X5Ok9S z(xOqFXAb#zw%75g*i#KIh>Q5dULfrj)CzrgK*4>9G%-vXw^oaH3!4GNhy_oCHp-;W zPzGI-0-(Hanl@un(&g{CG_o<;C7n1-q4BYkPEq&UEI+)(JG?D~UR3r(39oD#i1GR1 zIUpCteNduKwP+AD0#Ft_pUnG*@A=vE)&|JziYp^1ccvpsD_ls*QuPQwiB{l*YDD~HUg=oxL`81>t&6R@8+qfiU zfw+AC)8n&4z%l%x3>FGU2~_z?#SOnX$@x3(qwDZgHk?x%l_sA8zf?q1$^2Be>Wrtm zIfU;TLeZYD_4TOb_Tn3_oKU@@MMeu@q;w&_v(s&I9P|t14Z)9)&I)0n1fRh4zFM~q zJ{6!odZk#$F5@RC-fYLq+!kkEVhc0(M-SdO%@`p59|0ddvU;knxmt8N-u=y%(-cwg*}6LDo2=%_l7M zwe6)ljSn;Eqwwl2kA5l{7phS}ltCJuTRWr&K+Ryz_*ZW>o3vd5d#yVpE~|VOhS#*h z4(#oc9!=LNY!|RDLHz}3ZHtz?gb88+lWI_id_YF_MX;vznXv$;yC#krpSnjs7R^1_ z;ILD+S$bSE-=m7?HK-jdBCKGe8-uEl4Z)f8_00~gUR({LJe|@Kqipjfp3=<9{MMBs zS;KsY&$dH%&N9Vjy7zuw`|Zkqpx*rU%I`5&^AnZ#BeQBY=bjAO-2397&C18*j*s1U z$H(Q4kKcF4b8^RX_ucX9a>uWicRWW^_odI@?vS~?#Jt-}AiOUzo8eOB5pFNx_Bw9g z#O=M@zMI=exqY15FL4WAb=#=?OAh{soBpcjNP0Y1xkTyv6P2sK@m%F8KG*wIA^aOI zj(*_c=(jdUgyl&7*g7+ zP17Mw9!p>;gh`-W^vs2_gV=`r2BQTT_af)7@hrk#J`a8&i_#t06x$=e6!EbZ zR#d0SsCw_u@BOIu-)X-@p6KP3pHSH%cx5WPk}aZV80I<6To4W_)xIkV7ztITK=iEK zD<$!QY)~nGmNbkh#Z1)`VPtv^t|)oEBeF}nItw8Rrxw92YgmBIO2dJVAgMbUK!-?4 z-AWbPMe3l=M9uS4%Bey)itmim!9Dz+G#d@^@CEDU&))E?ZsrdfZ74PRZOd;l9a&=( zDnqpO>h6}b|Bz6q9ix}&9twrS)b?&VCSw{y(;*`8BW!-(*MdP{VY76+Gs(TfZ;n0xkG! z-QyV$G9gIPfAoaU_2w(^4r0ER&hIs}Q% z3F{|=D?OEOithbr-4Z9_u$WCNu+e+JJ(yWBVB zlLW2OOtNM>F)@=VWd~fUfY1-QH-wXojg&E@Z5unGy6vHt0anNNM1);8Fm`cncoDcr zafUqY`whoC9k0G>z4M6AE&(JKKD@jCy7lmc2!v8Dg|J}VriE+$y8XRJ6JE@7YP(j= ze`IIzfn#3KK6^Gs}>%!K<6ZXe?IU97+x2 zk(Wuq!3qf<5;HH-e&_%lsJG(>N5X|nJVzwDA_drqygE}1c@Q3B8Mun?0k3Rz8@$qY zG_`+;+7-9$5Adydmz?U!WQ0A4hH2fUT`(E-+8!7Q&=eAoFlRij_l6VVWO4`43NRi+ zz&Vf{$fFFR?I(1fH9MA`=TkxyIC_F?Kur|&O(H2uWux0I!Ta|Pix}_@S7W>Cx`0fB zdNeP@o$5>jGFTbaaJn}d<_c>PKmT)0$q%QMHv*oiR%Vq~S0=b0J9Nh|MWeEVP%ROv zCDJ3u>rM*IHX!dk=;fWSucv{_!vz);kZ++k4IQsO5FNVmqz{qo8*b zG7uC&kbQ4O5AQk+x0yBYuVXu&AUBz_4Z*bgX$#~onRDP~g@)*u429=}{;W?=|E;_6%F`&ICy|XOk&T!030{S>`rVsHkr2AU$wo5H;FJyo5fGN#T(IcM z`;@&c%3Mjv*#=Xk0ygf+$Ve&aILDS_5hyz3#Yrk6MNwBpZe`j_0GQmVSk_eJCokns zUV!bF3WIVHRJFFmUzPbR@dOt0jEZc)7hR;oC969eEWzY+_&Lt4OW>PuuJwa-YHP>v<9QJ-8s2*s55}<0%>n0^Vgtbm!Vypw}ze?oWkXc*H+agS6UwWqfY&u z0E(Qa{#I`+StrNZf;LDP8hpEZoun%7W9z-O%#^NBZ`br)j34W1>lDgBS@<2BIta*Gn1S=a;DPo=Tq$D z0?0KeWpeS2Qo%Bk*#I}CwrWgY(1WGGqD)Y2-s$PZEc2M1S@V4a!__C$8X<*crnaaj zw0qZG?80oM4|_4_DOdjibi7PmajS#s8W&y`QR_c3quSyDxm%@lywFoA6BzfV&HzP7 zAZ{m_o_4H-r8D!?jh*kSHGI3(?MWWvqkxSYWCo-;CrN9|N4KS4)50}EA_F%>HDW zfrO`!o5OCE+VO&DBSC(v4p^Qq-23_J3E8Ni@-giR?OE;1Rh)4#-_0z09PlI*Ac`eo zWzh}df3RF4h0-gv7z>UH3sgd*a5hc>5 z>hJPN7rThhqr&p?H*d#}`o3z2C&EYhr3`_}udFPteCP6;^JV7L2Ff?M0WeEqCT2Yq zQk&zUT@=GSLSB9OCsev(c4pI%P(!Ftr^PH|j5o z;S+o9{Q_x%h0v?j$L`j{U8n+MIy{NDwa{;W#U;NJPrvrj#fhZ8on=n|DXk`KT~T-L~Gb9&Jx}xD(A!C>buw z`CIVnm1{JXmQ?vXttF&O{39Rp{9G^%HL?z$)7RQh!MXF_YKfMsDNdin7x@`(f5Gi9 z352R(|9(dKGR=#lXD^OEcyaWvE{;CGIl_a%abS;#%HY4EJQT-+tzR4o7#9`4tFtY| z_1$IPh*nVO@*9dheIZbo%?~??z-xn!A#{>WEKlWBD*vI>34fobH#ikPsk{|GWoAsC zBQF$t!uzQWtn@;uyySG{eAS%S5^j|`gG2J>h2YoJ$&~ReqcWvVHjOEqQ`u~sbJZC- zF((9n3hJ@Qi{F2>kzZ~DCKuNNb*vYMOkKTpbUA;O! zy4jySBy4UX39$a%xx9M@<+SR$K+@`v?=gN67Yt-Nockj zH;oxuqMf;2b6Z>*CadQM2kQoCA*@(npFLtT5voRMjgOgS`6DwxrK?986SCO-o;MJP zH_%Y_4W3`-v`@ZY(|Nm#i>)i`Jqciygzrv5e+V{;Qe2ILgVm z)$%X^EJ8LSYa~O@g+PHmF7>|T`}ryW%`HD`1ekT|m^QQ`@?@qnwSqXI&BmVf>eDF5 z+=PxbhR@PF%FF}uj>ed6-w?l!Eo|ka=7){k>jv>G!Yh*Ial?y)83EEjCM0Z^GuRlb z7B}1hHA8fWH%S==1?H1a6wPE_lpZ(6VZl5?Y7yFws2Pcn(IU}r>vUyQuEP!W1wszN z)}AR_EWFVZ$@xh!@Azzioh=Qe$hE?qV53D?m3@=ia4G(!@%a#yedMYJi;Y0U2Xn4M zJm}gGkn4>)SjllwTgdyPj#Z47 z5;mv|(t1v0>;!rm4)?sRhf;Q0*8B)fbtK5s+>g;2|pLpo-Sv6oLRd;0m0 zqX+!dS=^~Jo&`o&?OFWj#}_=l{*rfUOm2h-bwWohHbmp8qZvdvdcJOkt)P#?r;96)j2!eyYk=7?kQwv8B z+Mq5#2}saDrbA9fUPF8W`Ld)!xWLv9=r(M(-1Bb6WKLXoQjv4=mjqt`53;k(CKFX6uC@q2LR=~lRE+=;)sEm${*w308EQX!18yFt9st0r95(mfI+^;$Q**OV=7BE{ps7oOWCklGj1h z^~Ub@aC$f)At>tu5{ThyrcWy*#GQ@!kzu>u6OxS9Sj(>rv;0e1Y*va*Z3*yoD86<@ z>g*abPY2+lfVq$t!#LE7IJA*V2a!+rdo#4 z;|Tf`FK$DhNp0j2S9^<-_}L&?Eyg}jwko~A(8*YgZgUs|T1yu>{v$*pj4^Nt(=E2B z)F_<)p8gGOd=rza7Yxse0(!@?{+d~&GPx8)rS0V|Qw+gj&X!BCfwFI~^TXXq$M5b! z$?9k~qM_GlcHPX+DFB237+S)uHlz^8Kfay8Qt{7hxHW&L-PoN12qpyx`TefTK~*Mu>Gi2!?K(?#M=_`tNuK@9+$i$w7MF4jcX{!f`RezWp%?VZ}& z@je5lDXg%2kCV5Pz63!>f2mYBCTM(Xll_xNFYAQv+Q72%MHFCCdky^ z!gDu&wOY*f+U*^ta*;_;M-<>2Lq&bW%|a z&89sVJt@CxLpwI34n5ypJK|l*1)+@WZjgmM9A&K_NJIL5>nYPFyR?z$?F^d4u+wB* zRZOWh$5W`@`{U|Z`$%OUj;oi#9s6PW-d;z(`E8Xqss8WRka?E8^V`TLrsNg{Y4RG5 zU(NBWITrTxH*ow0j^#Pu!tu9kp7Xt*e-1{c*Hpe&l}P>}kNiU-fRAzJw{Z{pNv^Om z-eZf>gIH1JzN?fJGnkaFxw!nNea08dh2PZ||M}8TSMTe}k5)y-i5TEranx1FeGY3z zgQ$9ya3P?I&_led_y)j_G32~vzA)cfJAC5HPj9|8oCHD{iw(_Fn#u$I?am>hE55TZ7+dKCmd7`_J^T zS5cxxJ>b+%4Bhm~cC*;%Jphxwt8L#sYS&&{>n*CCUe$Lfcv2xI3R*nMbC( zzW(T9@q$}>ZnZI3ciQdl;)z>(*u33kr?F!PjAETI`iVqeR2;P9I<-sa1#G%34O~RB zQj=9qBMCTCeNZoO>}r+AD!-!r-`aP9xp=Pfsmd>siBxJkOU2Bv>H4Dm#Ufn%jVC0r z6qKyutCbd^e4?5}x=@CSE>YR3vYa9|G#?;HW#&dwNjzUkmP+a^#H*$LEY@dFGmlC$ zG@r=3=3)(bLeqtT{{@@xVLVZ3UZfpXa;heRc(c$iE;r#C9*KrW z0v4bk(enrlf>8P>)IL?AL51_UA8ht*!5X0L#aZCzuNF6$`2#l+7K`yKmnRm8jD}YY zyOLoKocYz57F9kGRdvSj)wSgEkdRxO*V|CrsbV%`G9`<{wbIe?ybA9uq;X3;xVb~e zP*_OHR$?5gP(Q4_gYO}HF(b-NuTpmEVZO!PjkmUcW+L!#a31k~_)nYdalEUb6My?2 zz6w908TmGHw6Rc9Kt_s1p~@Hj0P9+-zCpuFXNk9}A@Mwo;Sw@sK;Js*iimxtpTr*(QD`{Q=fMyb;q0(5tGxRzml399n{F7#q>_tk)Q*F z`BY=5IG!y{+BOaet`i(5@OdG!Q=^V_Q?G*_m^Bv&O9Kdt5y5ZOItE3ehwtZd9*V}YK) z&OE_fk5=>vEoWK>xJd2I9KVs{H*&3C%kkSeemmD3+zACK@m;xoy|bxuye|I0Te z5+rI|sHcc_nyYj-51R`<00=IT2i~h3o2!IFSx|ZP`2lPt{FJB;{cypH#R|#?5{ajn zi>6dyN(C|y$6Z-VvQ6Z$$Q*hD{(trMaFpo}NJUjW?!|6#3YrQlAqSVOT%m79rXH~Dz{1?3C>7%fLD^2G} z6E)30N>&Gtz4p%X?xiWIFRc@|ADcFIi}XMSdQ6)AXV&O$y+7T4cDBFIDeWkLqJgdc z=p*Z|+27uVJ#%=Y4eK9;5)>R7o+%O2;_~iE8 znd9QwX71{VM{ae%TSkM(@Ajb{?gKxElT@gQrSNU|ySJZu5EM^iuj>uN%U}M)iO(QX z@b6kb>>5kj6VvecMPL6!zLj2iNin99NS?mb)`^?U>wR{Vt#xic_T&;8-4!Mo4(jnE zw~ixi2Y_6y={B;y(+*F*@!GA&I*#mgsVH?wT_1k!x|Q#r+B3LP>2$MlXGIPna%Qhy zp(&G5NG84Ku9WKUZXaj8juTmvM}A3zK2R<#$_7OPFa&5@vPDXe7#D;+@iJM1yQ~V+ z-?@_dm-1{gGXuP)MR=Brol$slX&F=ap|xp-dSM7!$=>ryjGe$|FM$4&5N^^UlRvRaaH z;oE3?UE4FG+<%tJh>GBQLt5Ahf-;z|vHtPWvcq{Jn9fGjiHlTqPhr*&Pdv6us3Hf#t8%eztqIKxe$f-JSYAJ*Th{T_Vt z?*J?HZz}&ux)P)ff1~c$uj7;Pd>fshk$q#EqCD!-FIu(o(rG)DUKoDPHQ-HMb)t$& zQI<{R2TBVkstHB9Q758cxI-1#PRXGu1xh!tf)${#0WgY=J3RTK`q_Y-R5Mhuzu>H2 z{G3$Q_;~0wv@fM0X$co|S^g+1d7*(%_-v-O9qyi<=22a@yTkU42Oec|Aw6YW$oBqn z1Z^QhW?&7;gX(Z=O2wwiRNSg@_Y$>%n!k;4QE^J+lZluDqy}zG@eWU%-1Nx!Z zXR>IxTtbj$R^yyG31F5I=G=Qkf7Ge0!MOME3%_(bUE*OHc8qdj^~KVgXV~DK$5RS7 zOhik}c=*^a`u)b?E61&Nwzo6&YrhbkT)vdr<2oEhgQEq+p7Lh-{>~f@4vI_cV4FHO z)#aq!r$){OT#&-(-oCQ7!uifFv}}3vC^~ykW+jl~HN5`TVLv|W~0&pfbtv`raP&PXalJr{PlKd8fT^K?rG*8#Z9j*~kN2IDlnxz)Qp%ntWfArL`w z=EHk`s(+{U>dIl|UD{gtV>j>-J|_N{;HlJ)vYaAoH#I#ZDd+LA+@C^Cc+kMLqD{+i|u?(V%}<^Y|e<@Pm4ZB(-$o*CGL@}>d=jV?0; zZ4->Q8$306aIS05|87(>+urmQd*Z{>e=Aaezzbh8o;=1LkT37#LbLZ&QWr3qE@qa2 zdU8KRHm!rEUoaZBRmwDGEWpWH@cC7kgN;{@9_KWcGO-tz^ZHj60~>`Q;AZT29J8sV3_<++u#K z`lXscplM=~KjaxC(-fsHgP=^G1hoUYxoXPw zq|omBmT(fQFQV?1$~kukKfk=vUK+lzDyl!!c^G43r&71qWzW^_&F*RX2elt0BKp6; zsQ<9+IyLe1b)`p+elE9zlE4gh0;DrldxHbF`g+>K)ZdCE6&@Uj8oii_i%3Ly8h*lA&Xbi#Z2>l53tF#Z{$ia0>i3A~q+$$N+w!5n#ox~cAk`D<72h8=y zSB>gYR5%C(t42n;HtYArjnTYoQ;4Z*I;Q)m*uU0J7s=~p*XhNA7%W((aO0#qG;hY? z&Lh305#zmw%&t2c*^O}hhU>*%oPxrd-Ff*D-Aq8pskw|Uzy5{0)!LQO1vw8nUcmJX1|0udPXLs*j9|&!qXbL{B zI8x-ZgQ`sXVy98_rm+|a_XbhkVWKiwTFrlGUu#p}VnR((L)%0$s3vjg8=%z{okZ<8 za-byj8shRFeEmbsvm$OV3zSs&>hZ6<#H`MU8dV0$wJGTq$A&!voIlq)7*ip?acTdy zHz#b?-dYTG>V7DjS5dN;IptIb0HHBhL2bh(MOV^*WQTDbX^iBfLm(BlTFrpAUB|VW z-r<)`apjvG!(6osK?RUsM;Ae9(&$0!ADe+OetKb^F$2T z{Af4uaCq<%29a7oH5fppy~&k=OH1uB=(GU2;gkw=1xlQ0k`n<0cKg~qXay!$l}k*? z0cipy?$GkV$3?$!CY09rnfz8qC^K*Nwt0yqZcQmQCEt1NHO4CdDr+j@gG|8zcTOD6-k z<0_=)Fqp$Y%XBcN!SLR8Fv{}Yp=mUW8D=3~=|#|Ou(#>s{oK93t9_{QXO(Z$;BA?e zRW;dt%1cX3rm!0OB_Oil-b%`Lw=}y3Gb;y@Wg;*|o6@pKZ zRt>OrFlODTu3E@`0`-e0*fDHpsC+us)=%I%4QjOW2P82wH=U>34G;8*uJ6pCoUhw4 z+?sYhmGr9=diCm=vO1(nWw8-(&gZ2_>6)Q4ou$WMU!$=rsZXSj<{Qr7>@e;}j3%Ky zVwnmYiWs+@6~NHL<55&<)!F7T2n6V2rxVSE3iPRAQ2G#vg5fhuzvFmCuqjQtg0 zFJj8~Ar2e@y^&B4rXL&vu8T6XHI0r@V0!W--c33mhRynv2tl?%GHn2QOPJ9NeK?$- zK-AcFNVrFHG)WZrD|ni2ZBs@Ui!R$pc9pzVtB(M=NJ=vX7eLWSQgDkcKH3B~M zoyrd|-|Cx*9iL)8L`B0wVZK3^DEXQw6E3n!PO6X$KXzI~@7y$}M42Kwhl|q^i6KE- zY2w8u9a-w7=eAICYGUcOnZ0vh9*Pm%WSy{LY6H=lUI{bghc)FQ(S;Ho_DD6>0wd`! zpP+W)R1XK2p2|pJE@$bO36y<;G_nshTssL`c%=pDJzt&+@N4aAHP2plHo9b>@)-z+ zx}oWqe>5iPPCqP0QWTiPorR~pjH^XrLska&6ifuq@Pg1x8ugCF)vd!qxYKF}aW480 zsTKN0bQ2r9h@*?Uk;$TR`umRhb$;u7i@*U-~65(Qdounhl zIe`$EcKU}?w!*46>LroGq<6|b(BhmFGhsr9bk?LrKC`M3N~62$EZ7y$SJ+N{@AOK0 zbR0&5JH!5dI0q3==WBd?_1c%3#^90O;LfibRU)GJpNoJbUY?MmBYcS4{}@Li97V8X zQ8#3)Z>z5DUjO-Oqr(V+Sv_Zd)Tl$B8*_tN!Af7mwPs=lfy3=vD>M03mn0Eb>{m z@neYL@g&$nesEkA$Mn7bc<&!;?*>mZr{eG-Fm;t#xkw9otYstp?Vl8uI*1X}BHv#z zP%b|UyIEAcXtn8R*2Cm;ub6%w&bX=Ah2VpB6Z&P;xl}2ElOk3Nbq6psUWqJSFe326 zGQ1HFVPob|iXuigOFy2^#3y4T%l_w&BeCq+8H4p0bU$4*ByA$lMwx7fB}A2nOrb** z#ObYmMV(n}p@x2^6=zWQVAuDJn7|ZrEes6ANa36u`#XUAF;F>k7?mhaGvTVfeIit*qTc?i&?!W z&dBN`BUFz#QfZ>OG+rxtL-+_HK}nEe;!z+j{KbKaD^X16!mE@LphaF(imNIUA#9uC z5s~ES;Z@ROh?tyC-sa;C+9$cBc6E%MXrH$H!tWlo$+;A(l(`3h1|(F2!WxZ0Ng$Zz zlc#z#0W<4|rFV@s{ZELXO=l&jc_zET>0-eD3(PErV3@5gfdb^(yKqCnsA)GZwP_fq z(E#E$+P1lrBOV671cT5oizmoBL8>k3cDydRzI?iLsj$8@+DzgW!7J+|&K16oJRfDq zi{u|w0>-oy(O9y-l&{fUD&0h(S9u1QBV$z~or`&sH{un<13yU~{Xy+Bl@DrNWplnj zHL@akj@|PW;F6jGbDfx|0JVlJjm)N{yqL?Plnb@-|9OCbKotUIHP5Sl`-}6@KT-l_ zG3E>PGB}XOXbd^c{Xdu?1*It=e((UnOpT@yTQBPe>yU&GXb)2Cl6K(d!UqroHD8nr zgfc8r)?1cbg#dhX=^f=wOE}LYy{Mk5_(cSUfusju_JLdRG5Y5p3_p3kV9#IOojla8 zHzegHN`NW}2e?1gjIs4vm_S<23~`D};!4{|YuaL`4x5_MpnKd1cf08-8m@;(3`;57 zEa=d;grkd^;&dLzki<01M8Ze$+IWi8slDv5C`2y?ACgUG5Y?V%veF3B^;AY=Dw}Ipm{ACQ`fssjqc= zQJcwR#J!A`HsLUW+j91C1Lz6YKwSdKcu1|2sJ#YrPGi&uTbs_EfPw?}E-?X)-z?F8 z&=b%}BLQCdYMfe1U;+G3Ge{PAcW^T+3^pyClnUjl8R;Vno^47Taqstt9Zt}IqslFr zbhJ=A0*NV774I&T4<>p{3QgQERQ~yY_K-MM7Lo;!NBL|@j?X2UU_o9kk_+BQ^5$4g z{xAPiNHLK~q>`>posh^X&{@-|WU>Ky&{0aBX)qoKxA=OUJqI3T&ED$9({YcH&OQ)m zcQ}O&@iEGXX4@YOdydfzakj|cYQ7)k`i|u$SNmL72o-53zzR6@K~)EtOg~3>$*JJw z{vh!x>lV*)LS`?+TxUfAr#;Ug45p_VE-IRMTGBz)p4P1_ZxTAQ$`EH2jT&?*_(*!) zsl{pT5IHjh7v(CoSj*j}vuXu(o8D%)dg0=#Ig6l<1eiMnxk!nGE_C)(#`pe%_D0PG zoqw(JcNPDyAgAQ&ijFFE#3tX$##VWZf=kPzcrEzKJVu8dz)Gb@1a2pPp{Po@Fz4b& ziW%u#Im5C9N`q}2Vo^cj1M!mAFu?b47*0oRrpgCq;N9f2vU>&xi~)Ya2{dDOJiQ%g zKGC_^8F9Td-|FodZw{djl_GaNW6oksF@P&?fG4| zjdQ7!Hk#F-@ziN}cb4Nak+5ba`U!=6rXO~X#pp9GCbrx;p9n4|*@$8x$}XF?FbN`ds~ z#$9XWt9Cvx{375a572{nk~TRI+x1PsQ}RzTl0Lna(j*R_Gfk32*E-C=8YvL`!fK}K zCVFj$G>DA($*JtHcvAG?&A>d^`jXhZ9v}e$G`Bd0*1}-WnH_TjZ58sNOmseupx~Y? zcmV&G+WWLWWu+gj{4zbYAJV>4`yM*#K2doqp58mSeJdWsb#4!E6aEn96CKgrL)gly zT|}-d{XX>(*;VB_%i_`!dGN9m~^aRAmkh?@#;$QF=J6krf@-O7K9EdVBGs>77 z=#YXush}js<2#qJFA{~6Z&%QB16@!lY;tBP&@i=_&8)JOCyCVkB!z+=hX^c1rq5sm|yorQS;#W4_*7lgxo2JQ<~@r*6@DSnNhMFH$)^Zi9MsveHT*0e_J(eNec5+-!f|9!l@GsgkQPI~## z5x7Q%&bRj-+I{!~SFQDfFFAbt>z_UiBVct*Y^AA3uY1A%S>+U6>d_~@Sd`kH| zJ6u7CG;j8vSrZNS05DDW50v4TiH=gjsNQ{K{rdf#m7(SN_7{Ga4M-l=hbQoap^`fx zJSfY8+~D4>Gp^dp(f%9O-R91*Jx7Rv4m1oh?R$6tU;*65YIn^jT%D{L z`&y#CbGn5yVt9#U9NCAsZ_q;4V*(uV1+8F0SH$>{9&LSEGGtoKoe%yb2J*AI_Mjxd zZ2P~t{5a!6=e_H3e?4hBexQ5JPTLP#M1Pb88g8+}JJ)%sbodvI`z zx6H3}%obH);9FD@e5X4<7-SFh3Z`}$_Vt4d?j-|c5?y%{KcK0QT&wB95;_`fU`dTx zoJ^>1ab3AERC*gxEi}L+F(r|(M<^b}6*JimHX>s5n#Exj*X`urh10A)od8Wb+yb7( zRRUG1X@h7C_v$ik0Shl;2o>-e1!Su2;R9e@LYgtrZd`oL^;QO?Dt}S(oY3dHTuuE2ntGHLgD&9U(JdYOaq==1SPX z#AeLv)pdLs;!aehdv{;2eiFlEkz@N6{oPtvY0!oEP9~}UEKGX8ESMowOlc_;R+~OP zay!M@ShNsO2@FsPE#OINb8ZwES(2jEIlD?1ou}AvHqP}7dvcd}smu|V+DgR|ea$E> zkxJi5c~of%Wy;VLR<6+hvisFG7tJE-j~|{lKM}8mvgn?6sQpmb^HACKE`$#xpj;!G z{GO|sw8YZz<-tBJFawCB8ERWJg2{YNQ#d-k9v?RKUua!9J0J&9W!6r(+TBlDTrvpB z&HSK$%7E_LZYNy}W3jc>V_y}d@OIZx0(k4nYW{+uaqaovfW|0Eqg^t4KDpx7%40%q zyq|YYEEtokk+uu;EIPb=wKY5o{r(F^@MFEb-l0LinjaPV599MCN&K}{?Kj0y_53Dt zy-97-blL7;Nr@w*9>+FjC=w$S7z+kZSbeH%d)S7V8*C=Ss>sm2-^~NKRE;)(O~$lRGSuFvlLtAdJfMBP^6APLJ}>F; zc`4TL6_Wc<(Gwa+r**xo_a8=@G2)iY(A#p3q|HT~I#F`); z&w9WG8__VT4;pfEylX^a zLL>~qbOs}BFC;hZQwOl5NA{hPqY~S|c14p)3X?!p=sVC6_$z1}6Se}`+RAW%&4wSF zHYn=Qs!*lwE)_g>g&&h^b*=J{{^82M#&dWa->}>PD))1KWsrZY;^w++(g-)T$!Y1@ zVfi*!fj29ExDa2K-klu3<4U$09$?K{ufO)LtLe_x(4;lF4u4}6>b${nH*H_;G12n% zXzLxmQWzgv>dUw-Kf12QUt64Uyy{LOD2(O8|hmnED$VJL7UPmAaRc* zA*;;erRiG-DkMr%E)y+ls3yL7O&}%U75}jEDL4nd8M$ayPUwSvr&K(SGCJocCeaBK zA|V-pB4AABwA}70xuP84v827Y8}`gyo;e5hElx3)Mvrz{kZ4i3m7N(vwBDPjQ9r9=1SQzdu0@Z zW<8?mj$w$s_L$!VX#~Eq-TCscFZ_920l9AZqwJc z*wPwSkm4ZkiMp=l><7Qq;EW4bL9+&o1uJlE2 zO3pjsKNUMNdw20}RcIEGA|QUV7U2Dm;kDl$4Q#-{vJM*QA%ZyI-4ZjW?pLD4I#ZeC zq<7RRbRh2qh}Mi_{|y4Z1-`9$u|Dt38ulpdkJKa?-*)CSdYZa41+}08rkUmm0l2A7 zJ>)>hce$*XfTuCtSq9Bd7C59ZNxb-YfvgvMoCaqPmgzd#F4}xqd8Ub4 z;*Hi*!hNA6NdhY?DG)2w<1U$z`QlL#WLpL&J7-uqDC*&Dg(#}mn(&)ZS0pUj>1zSJ z0#%Q*Q3+gewo9?#j)9uV2fT6PQBqY*TuJ)83*dgfO!HFOA8 zg?fzdtSCZBDYVPP!6sUdIepd2S5!WyZBe0dVfKBXQpXxx!x{*7^A;8%F()$P;4}l2 zK?>q;ixc`^uEF9|ad+^{^GKtVAaVNt2Pj%i4>Wv0z1G#*L-JaD&2D=N;?#btvIPe+Olld9CU5?>=>(lYl z=bOKaeoG%x%6F+=7LliKpa`98vA6PqezEWm+A)-x+q8w*K(ppwuT0+(NtmuH!z;Ym-GPtLnbv(E`6@oC* z83ryrRfWjMg)+4nAZMFQVoJcqe|<}gDa~n2Oo)*Zw?2y{U1HZLl`i|^020hwCq~_P zl1x<9coW4h^VN9iK0SrdzyxSU42Su3+(mMCbC>GLdL8Lp-T;AAnqP9AlKP+$DhK?q z`=oY4>YM#fOF4cC*b#EaSQ^QifCWi`>qv!*=@D}_F|U%m3chKu9zhC)7y0~Sg+$SopN6tQ6`DrEXAC5jzIYqWk zxnGWdh~ppP_@_DkB*&kWT*!r#C@NK!on=M^VEaV|L}FAf0~;^Tlo$Z34T4G8A+bp6 zhor&($J?8LOOlp#z8QON5s?uYk&*kppM9@=>#pwV?&_kTX(*r(XcT1;d_YG*5reXik#ua@Yue%PzaIaL|-}^=8sdK8U8(a`h zR_BS685tSh_wN7q|H|LfUolsTevS>rR-CYnpihK;NMZ^0wc0S_iR?;4-a!UVJcJa3 zB72IDhtO5k#MqxwE7?=pMt!`>M2sg=G7+7_ww01Cn^y^d;$l!&0n>^0mnUC;vU@qM zZPWor!KxRbEcKV7Op=u<*4`SQy}q&W%=->PrtHvCA8ej^VEXV2gwp+w$zdfYUUdRj z>ip}@+a)8kPQL0?vQyvr%C*iuQ^E^in#cfOIa{k-jYz_r$G8l}b4w*;C*tAC&G*;oTcv)X!NO>gGk^AB^@3e-l`46)5}H%C z98(pD%k*|!frFF3Fe*^Yvv}kBL;_x%bIlC-vrxj|3e2U4w@dv1orlekcm(Mr*~T|V zE*CmqSnhX_uW?!-kiW~_P>JLPqKg|O_XROQCPWr@_a9^E_Ey*H^_ooTAf!6Io;T=t zZ*E$elv-9{<+ZaYA+AkWqfb)gXKIzXLK^Nw-HltO|33jXBy-n^8302SS>c1IFqbCD-ehEm+qj53+UZPxP15H)Z0JG$E9J z0c=Kj<)3^zy6QW4h;2k8F)fHbj*1=gbRR!N5*7BCplfhIJ0xFF4)Bf9St{#@rbz=5 zJUB^e9@A86avU{ZNsbD7OEevKRGoT#XlrZ!bM7AHPv?P?Fg``;F)*{mw#Ik@)AlrYLBN1 zlXIu%)h^-#pA`F`Y2Tw&ErzDhTSSfXK{O1*>Nyb9+Yhv7x^cnX87r2}xDwW-nwe#S z$_w`q_;O+Gi>5Y{W}v{&W8ZvQLN3kQQ(ZsrZBG<}W2FqdT=$%n$M*>WqQZ-=^ZEt@ zdC(OuIgvs*XxA<<;hxk-u2!_@M9>x_NwcTN`OTyKj--?jy;^Z`N)`) z7_xUBpQC}9GJs9E6oNZm(l+fuDm|O&hEKK$u z!LX?i|Kp-c5KmqESv-B(6Wby4E%6_#Wnusa*q=qfNCg+X6Oz*FpX+Rt4lx$r6h03!Vkq8fL3sNZzZ9*^JCn1GaP~X0X~j!lUgeHK=E)1 z;u-JL^4YnQ2a#(sW1ARb*!9I|2pu*n$_$u4*5fHd`) zPY^^ZF3GH99?yI{^GT$nM!!|&KrjaE)QQptJfEbFVS->N)PZu~&;wF#kX`d)66&l< z3m`1r>qA_zM%4*jlAW3_|Y?Fg@~qdB!q>2lbx+X39k8QU@FxYgwEH-__=q9 zCSaTy*psJ=M})m7XvG6R@F>)FVf0O7CqrT<0S)A8#8ZHZ=yx(_trit4v?`%gzln(0 zQ4Tg>E?Sr=?-9F$C%Fg~BQFnW42CFlY8DwLfCCKW2C2LV5?yg+p=>2a_ip`D?E=h< zMKVMC#OU9kbd$sdr+B;)-E=V6ob2wleas2M5s-o7;neiS-m;Xx^VB`QWftv`^lQiGo(XM`CN|MN90A>Tc~0y$@m zR+)rQ06v)p>O#4b#s28MxIXw|YJv40of48bsSQ+k#w+7Kh4EZ22P71>hFNPh45yWe zg$)C9O+7B3>qhy+4hp>*>INTsuJvgR;GQG9cns`iUMhpOd#n3)P<_KTB4kjBaI(R@5K_QV>8(78+!w0lm z|JgX9eKTv)&s>1>`}MGP|EBh+_Qjb;@q>Shb@^TV;5TU}#Shj_;_nvlcMBZraZCmf zybs3B^jSKB;2r$^9lTG*5qyB>AK5Oi zkL2o?(sXoBNjP`(cdWg9)_x>cwVlw0nI7O6KkP4zlQKnd+5%kZ=zO{K8>APDExKI- zlpPl(YS;00`3;N8v&43=c^ew;eR?DK3tx|>ii8qnx^rn!QWmnj0OyK`@PF+sg4iH+ zYwF1^Brto~dA$fF9n{>RSDJ*y|IWG-i)f*bFXd9%8PuQ&m%gQXf+O`?!89t-m*jfE znQj@*Cq_{Mm%-RvuART{>S*?~%exe$sNvE5w0qCB$>4#@XRDYpCYIlPV}0KCb#r&x z-f7W7kYFy>+QZmH>CJscVzC_y-RsRTF^% zpdmQjgw6~#6}Pe2_c7m2@mH}4#1&SyP}=K~R+Ms~6aY#L&chy<^qFMK(_A6whef7a zQZx|^m+OZ^Da;u~?t0E{Zj>}QeT+5KlV>KE$3{FZz{cF`xR`vvykU977t`x2-p$`t z!3w|NlHikH$h=c~p>}U(NWOf4rpcf&B#+ePG2k)hvBqPA#~zje2)Cg5;;79WN~8)2 zBk{5eY+$0C$Q_61WDi@ZgcNKaHEDR4zzbmHQvnlE6HcXf>q4MRZG)+kW@YBN!xqv} zDkf#uumbLa`9*G{Lcxlh0YzuVdQvf}FcM+~6&z<9BiEZo5Xi21r zwA~`jW_Fek#w(Fm2+9!-mSe+ z8^ekArHXGT=KCi+PVl&2EF|ALRVq8%TPQktK2|wZhrE$JmKiDo0+)5AoUoMfAk`-5 z%EvmIz=e`6OqaUXa$6%jRnId4kozG@iP@WJ=N)ViErJMbk$TNC7x0o=Gg4GyKEHv|bvqK$jRo&dhH2JAXyWRqmrv+Zn>pXbd#Az8(4 z0VIi|fnq^Efr}e9&N(+jeR*__8ni&qG}!^ULwbIW6QzT>dbf5>+r)#qKz6;2@sVZ_ zzJOr(#T<%pqA!nUs@ib`<*L4u1V~~e$CImtGcCW*d0F>cU&$Wd;Xb_p-+3`hW*}o<21mvaPUOJk$bsj{f#=Bqf$1MXDr~2e?}kI|_D?eJ(#~qnq?S`9E_^8S8mSwS2RhhK`jWj>`V@-fZDJBsCvJpjNfnOq zrTIzIx%?${NF`1?@&}PaIhVXpwu#(Wc|Z4X@t@Rx{Tb1CISTiV@s+6pq+^w@brwh> zGF7OT@ro+h>Xfl>x;}2yTd&cZ5$z()kfKf{UzrpF=|ZnJ+BuLC!%jc3+m+hHnWJo) zfjg~c8DZ#7XkfD#eZ(!qJCnOX5>2PQP};*Kb16Yy4*p-fGbY()%S=m#b*Uy&LWK}C z1nn{W0kUC_j<0awFwT(8O5Zm_)n^o#V|q=opg_!V!i0D@Pmx&F$@R=*xBi(n;4U|* z&`Q-zY<`tTL-g|DPK3i`oZd@r9euxJnl`aj+`O2wca-Wm0SNwz+EMtMM&SgaL#FaoiqN%MNm#Aom1 zN=BSdyqr0!gZyCJEcge~$DomYpI%*ka*C_T?>y7hL~D>X}Y4Bw%O z*j6?`-2rmU(S(iP?m;^Cz?)uj+A!Bz^;KAgP^*F`6i_p6*7%<1Y?1r3izSB&IAA*L z9{~%|p+6oE7%B}Sgf@*uw}|ZzkzS|3VAdXd5F2QPkjUE96C(ahy+=tyxan<0ool9+@_(7_XH5nVXD3~FT- z0^jxZFbH?6!%L@k$~NP<#4!W_Cqv-b(Wo(aB#;TiDtL6>$3Q{{4VKMOb)XPLNdY?}l?m}{Q_YNlk#`OrsEZ4X zqsO#u$C0d27Jz{IZ02&=$-#vy(|FR5gy+23hud`i;H8s^EpumiJKhElT1tWVz=27E zl~xa|fR?Y~X4CQxI~~9Gie9+AJ-hjPUfZMY8*ZOG*QxNi7zNmb_Naxez+Hzc#3|L= z|0O+dw5OU-K!}fJ+l66XM zgGS@Z+NcKJGMLdEK$d~aB(H&i&4N_)2tRRCz;p`_j*-2GEoAo^dM+w$v;NwxFVo*m zO{kc8yEdh#X~BKZ4Yvmqr9Ks9J}OXk)uoR2&VJk!{!LM~=}OCnkjNt49jrWNne8KM zFVXekCOLeI>>5H4T9$bWq_XL>GnI^!ZRgm#@-IKUTl8+QEFTfDe(?W5o*3CO^7 z7jo8k_3;-zyVJ(e%02d=L;FiX8kR~fwHiQ&?zi37XBbT#szY+OwZ_F+mg2 zI%ihSJ^1ulq34~tLhh^Cx&G`&hqX}_Mt#6jT0LsT4wHXTBH$J%R7!9M;@pt(HN9xm z{@C}B#yP=$gXZX2QyPAh&XGR~NQrD_)PO+CWNthPFISO-F2gHJjZ&%ZOo0m%u<2U= z!7GR`=PlgFby=?y5t-;QPe)oPDiubt?TAT4U#6oZp7S;m457*Ivh@s%no=viu zM()Od(eqNo1W`O8+s&owo888__UP;efO5M4!C_D*de+T=LTH1ge}YizDe^*OMY3m< z=F{86-7k<`K?iW=RLoMP%m+hmWC-Nd$`OzPZzplj^%(74j|vvsXF`gn$pYxP?#f=f zb*he%ms41^?l|OQ=#pIFzGtK9plMeK$QicX#8Ax16G`!h{>@RRvEI4X>s{O(fg8!R z;CA>keMST^*B;EA&b*IeIsIzn$v5zcrsTe-^vRg`L>fMk#&eEqYdj~jrJir`d`o;K zks<1$%3~Bwn(k)_-WNZrWwyT%HT<1zGUxCCE<0v;S?bMj9#zWbm1?M)yhAp*Xk#T8 z>LX~pMxLCuE-r`?U=VufcibqE9k~|qW>u~kU$zp7_bmpXkBIR+l|YdtDLgH%*TBJI zMsNZfFI8jtM}C)I+u9DEaYqB^l)6~bE~E0^)SpFGMYk*^Qwc9={d1^PX{M3O=3B@M zcsovoTpeJ@UvUR@8S(73hV-w_9~*}!&YUcJxB(mO=g#BR%H}D{Xl&g(ZlBrg8s@O? zHi?mNmFi509#_jFZ*#{orstkE-+bnoj%i%Ez(AE?5?BGr0b2Uo2O(^{h`6_PVn5_U zHlyxNwL*W3%QQLJ$2r$EX&mLd?9?>~pxAB0 znKi;6s3zG?c9q~C+tMqSH@9~x;m-b6iS`>A0)nT8sPh3t%A-DlAPL-44-|%cG|fEc z9^DFu;m)=4&}DeYMh#Fm3icXz5QLf)NoHiN7_Cu>~wcTiUPOh~rs>dGf zJ=CRhfC{rUztGTrA3`FAT-a8RJe(C3tguptr8pmz3nd&xxCo-C-@+Npg?`ipwTl=) zI3r^s=|~J#>S2vStqu2nHGy#kKaUrPQ1NvgR2T`wgdrX_4XMaKX+c_`QKi^6Q5}ZI zaEOWkxya|rv^7Qm;o?BZRHMp#Dc>och*4YZVNCp!XoRMFK!_#k6LYoVnf{WL0?)vzq z4A^5ZG(jOsYf5CyAPqiAqF4h4!JpOMradF`RSe?(FSnyXm2i%BhzNHuQ>yh%39k|f zf(psZfmlFf*AI=VG?S!1gB=w?sALP2g9H2%@=of2 z2ppn!I-Mx0bcVz!s)|JVPgDW16bxFbY9*m8v~&GG@_O`Kk+meL8o)NIL0@9n(+g|V zk0yP`r=$;@1}2r>G%SM`1@^_xV4dC|){_SCX1W$} zj1K0~$^-R@5BxmICe!Od&o7Ol0@W_`tye7=P)h4`{FJF&hK1TDq#(+_(yV@VOp8!s z<5aV|Uz~(kwrYU3q1EF0sq=6?nTW=&utThh%UoDY zE=Nc!MJ2pCSX^PN%MvFul{YBiGna_KRdR`4lnaV+fK3E_%U;3+n=VxJZn+d_bM_Pm6Jk8uf{>aKSQsHrP>?yau+9V!WECgy<;HOBX$?Pg z>s7Yh)Q+j=-24kZ3B)pfyL0Q;Z~mEaLvMlQi8H6Poc2rFZ_s<&fvxgUY=_`v;g(l; z#FP9NY>)N=u_Md6pe^P>G^=bl*#OEb!oxZ(sMLL7fk^?@=x%#F*fkWu2QO_bKACua z>5i4{x7ciQEHy@Q-gAbcliib}qK?xa`TJh_!SWjQBe@W#9}NVH*p?%*=amXq%=hB) z?e1(6lZ&SaCEfbsT%3`sBpj2S?Q8N$OH0FNDg%M-QSu>gu|{bPR;Ad)-&9fejzsYC zcK#!AH$TcAEhJ|mqBFqqrGGm7cVPF$J(LSg?bFgY$t7`X)UWEZ56AL|$yVn%{Nf8= zR?S=66H2>nX+Yp1M4KYpu=&uSEhpoEbkGtdMXZsvGtvJXD5B*|FD3byKiSb~5(irJ z*$#TT-AwL%+KsvRBm@XFspww2;AneacOe-TIe;%|oSZ+mZ{~>@2{Whts4Y%f>46*1 z?d{+%>CyFRV+|&E+J*}4u(lfw&z(4E(K>E*?&*@U52x|tKd?8Rn;O`Hb`Y&q?)!$5 z)%CJhc6aX;<*MMfv~NI*Ij#q*Rl2bJ)|sln%sIWba*n*Oo|JvFYz!y8q(7{=uL@`VN+I5_c98?~NIvn?F0} z{rGltK_qk_csQo575>CH_(01hRy*%?NfTs|N4RoN{^R@O^*GOnqNp$e5UsCG`j4N| zjWHE&7$!=&Le1^&d*ce-L-F%o`r1fPNIbD!hPaNKlfx6L^FTt9|V#+XWAQ76LmejtreWxrLL!;c(} zM?J4hFA*iWu-X}Y+H#8IV0{bch=p^DGg7qCK~HSAQ81#h8w?rm8@e;oE)dysL)-H8 z`O%oyIls4-B`zXH7}-oH*h(TQX$HfHiv5uOUotJQzfo|GO6~12Q?JWDHIs71?~g|z z6FJ+0tnEHHVJI7Qdzr~8dxx_t7lj3c9xqRaC0d=TziCfB>X+|lSf2^OPO^0cOqO-) z`);|~Z)wuy(aHQXt*LcYRaPpCeI6qo|F`H}(F!W`M7a{=%A6MjJk=-ER_SkUAL>KZ zBe*+O+HW8)Q$LEocm1~RTXNUfpmf#Ig+k^7#-J>f##(|}XmOXAt-O{()ix)9`qlBS+)qJdFKg3{r_QdNi3pe{1mrx3I(VyM3>MlyBn zyZ|L9LA>a;R6jfR*1q;n#ut-fV!(KKYUJzD&8wuKN6+7BKMZpL^8)m?o~8e$RXY2E z0qmSPk}`#C0f{1MNs-QoR&wA>P#Zx2lMMAl6oI7TB%;)!^?KAOgly|Z2{KL6FG5hg z9^^t|V`ID$%qwvTd*8eF+&;K1UHjFbflr4!QjiWG(ms@`^Q&b!odn|SeYHO*PC@er z=^M&)@WQkGsz)z9`-NDx?6t118Roc7;m`{U;dV?x#P_vTz!Do}XlrxD`U?A$&CE{Y zlx%i6Ez)C5n)TYH@pC!2Pba3-Ms;)$o|krWZ2MMw9t?IP0f^C*$5wTm#-&yECIgB% zN03muz$&;_Fp=q)IYz(}pSV&`7nmWN9Nk=MG4NH$Im_!&JcBwIFUnbQa{e@d_y|vm`iAhk;a98nU;KJ*j$@6P zVb}8h+R%kB(Z2OT;}!Y@WLiw+;l9jYYX3F!6V!^fkhDD>f5qdkdE5e3_S>27Qr#K9 zO|)$hZCf1wE}pwQclmpXzyG$XR-8M0_R7Vx^p$Vrm2X|V>w9?qJ-q8@4qqYX{XLHU z-p2dj=U<#lJ9YT%okw4((Fdaa1n1&i+DCZ)5zz~34lLrZpK1gJ*PJN7f^-}H(6Jg4 z1pHSHXloW<3IGNwa)3#FNs=Ssg9uU7S$^vm9M?DltYM5!PhIP$&abL9r(IxnInCN^hl z1pqPS&z{keVxdy3HEI3O{?HxOaX%@+FtrwXgFw)jk_MpUqETS0&Tl?nZ&s@ZlVE$C zi(w;uzp~jVh5f6|?u7DNH)!Vf&z8|Ix%mSlX+H<@+1g{+j+bwp>1vHLt?F9MYk{rP zcUq0@SX3b5MU6)vzv$GYS8Nq#&p1Cat$TJ$Lvq!Xd8QaxWozm%i$BpS|O zE)or?w^zMx$Vj-(g%)SD8S`DJ9dvL;!J69rgL<;PI%L*dT*@cb3gMPCY(U`{?p!V~ zWzrm7dgdJdBW_?Yj0$mKaJFs>pSXN6T4F03^?a1~sw$i5)w?CH4>7pYI908kOqd{q zGU9aTP*Ffx3wk!(f%3)O0?h2w{0NSNwO;M&0hfyYOR)`sO{ zfq{8M5H61#fxP^I9QcDH2mXf~_#a0Od|D2C`t|{>zyUbZLCL%~BV*hi`^3ctodS=6 z{do*H&0|=i$3WyiMlaQ4;PM`$|MaoUn|ZvA#}D%OaUQ?O!+rimEA#6-`2!yM^WR57 z{nMGpRD0?RJ_g7E#X^?X*_DJQE|=m`Orq_y>LT&vVeVDM+DZ}a$P8I|rqrBht@LLR zP0L@Dz7h=_N9cNiKuSjwpRu0ikZ$X9AXS>wQ3!?!R~dV@E6fACf^OTHP(|M-x5U|Q zYdy)~s?*~rN+Lks%OQmcl8kVAEgV^f)dH9!dZxpM&u4g)xW*HEi+|HR!6JBG=;ZTS z+KO}V0Na`&NBIwW!>Uyx4VbSoe}{Ak*?iHaxDNDDZQmQh9AXYn4KB0mcYI#9^s4FBC&CRt!nH z)YrUDt7enjMMQPbB(l40DC}&1y;3X`tXa`<3e1BT_&z$TXE7lhfD_wV>Uk>$8Oj_p zXnH|o3)$p2)NZaX)44S>xxWiIrD+puh(6)O{sicZJ)Pf}XC@6jV`WV6X#a6@FEjtV1{H!SlP9p*2ROT^tb znX=;)X14E3GaEvG>o@eD(ev;*bTe?>W6eV_(af;$JIY*eqZu?1xnILhL zXeh7nMwMGb0Mf+MBHWTP#~27dACpRlEgpvQTa-s6wN4rYDhZQeQ;%z+5=WFs7LXK8 zl!I`hisK`%O0R0^->7fHC9D5#3osH8$;(LEz$Hb_dVRIv*Zi;093 z6^6CeqfFvJ?glF_9Bgh5&y-x&20NQO91 zB^JCgo?H_C3qL_+4g_Qg+k&aXlD2q!$PVL_@ zwn&6zVowJB1t^OE4pm}= z{`U5%79j|y=O?v&>pZ8EozD>|VgJW!n=gU@Wwdy0MJ}EnE@l~B!1a)tqGMvhYn7c# zzvdzhjCpcID24mWBH>IzmVZ*?q>7vBmZW)){n7e@#X-Kf>Mc;8>!d+V`br9|0-nc& z$~B-)B$dm{s8N0vN@yD5vvqWIq2)Fwg}e{O*QV}8$r&!`Uf^}^3gmcYn8*4E777qH&7xMSe1-ACSo?TyVdg2kq&`U@qC+@aU^}0I$u8&bBbE-8HY@ zWjKRxg}G=}rQ5iHmkxkeGN?t9011(d!&-rC9O3#?K5VX3oVDDxSlB#cF1ekq@U5FSzXBuZS12uM zKZ6OQqN?m8mH0eLOUJk1A2FDyr~-TvZ%!tqBx3SH3?#!cN{moqRDHJ;!a4>VHlbEp zec;*^y6Ql9A=~7i-5h-Gy)0x#a&okhK^>9-MQ|~0 z*4+8pS`g>qJELtkxw^wg$b3W3YZUvCnw4suLb+QDz|&Sn#lV|YnNUp*YDSH_8mz9( zU6}p2ZkHw`JR_4VGaiA2DG@G4$?Ju^>PhNrMdk%r)hG5<-+HYg0O< z-G08gwoQD2U0txWdSw1x97NE#l z+*6zeO#55Go(f`{KF=)GtN)^ZH}jM21$WG=@smGE=2S4hA4ePgCXe3{jf9YZ_!m)D zz<&}KqE#@-X*2GDBra3mcyXkRWFcayHCCKh2lA#09dZXdc(2Oo#UvuE3m~@ClO&;` z6xW2elNnJ4HFX6r%1hJ8Lh)AdoQlaxoCP{{6Z%4K+j6 z+0cNc=xcQomC-0S1|Urtl{cZ_>g7(YJV?Kz!^Wv!b9JU66F_L%CvtOlnili0h|F!2iWRiGjdJ>ywZV!vD|+v3*0 z0VEvFv_Om)@W7@+_@w0P`z5_c>l!AQ0+ik?jv7|~0j3gjI>7s3c<;AsKgk{h`a}H| ztR_>j;MLX5ip=^J$CF4vT02Pi3e}7pvTl9|8cqSTPiyV7fp+r#ATcVtwJvToH-QR& zzOoi*bfdGaK?yPHO!{_&hI9OqkHO-=<=M4dYqHgj?rC+m_}wt;)4g_OcW*1QYZdS2 z%cvXqgMO>f*qU|o5H>@v1Llb24|SD11*l@$eoy=|r|k}RsRN&{9dGaNC+*!CT{V0L zdg7#5FneBihOwG5jL96+FsY<7N90|{y(dj$#m%&lKDzEt;! zQaw5sR_F`*HSMjLSH2G(uAjw8CJg;=Jo$fk=+7sZ&GDqhW5(koj|X@>hsR5Kyq3o| z^Z0Ha|C+~7@c1wf_xUNf8}cU2#?Ago-0Ytu75eSK!EIvNg#hnDtwsR?2^Pm%L~YT; zb4->M2h%ZGhJr((`jpSDJPd>nc@uRY9)O6`dK&Dec#4DVb6|fYR23g0ElF@M5r1^T zksp=!RC2ulV(c?`oRi60xIWw!&Mr>>=&-RU*+1Ca+u_$#z_)0uSFV8aV+Jz+jE_-x zemJG1Ji_UuAkEJro;{~8+#vNIoW1m~BHkz*fnupl zTS4CYoqWAfr83gX6&Njixi@GA6mY#-5BJw`P!WEo2|E&4nIPKkme-Tnm3;`@ONF>* zx$rL-O>$*IL{{H8(~aidYEy7HM&V?eovKI_^`OI`F>`A$olmblaIul21C~@_w~!bp z8{ioU04zz}#cPw6?c}0xaPzOtB2e*a2VfBGJ3+D9;u!;@k*1P91AE<`uEkomnjj=P z-iEHVJm?0A-Szo%Rw3|Zg42X9Hn-Lb`)WFxR!ml0^o%zzuRI*{4!z}iHRc9cBhWqV z6A#VfEzs&t-1AD2)yFD|Ro!heOv3??O&Sft%r<;|X79dxFEl`b_uN1$GC7dRg+17U z9h#K>FA0!QJ4j^ibgl*RQlQ`0$VQ@706z+5Mp0aqc^SA|vRp~3oizJmu0NgN2r^wN z+E|-Q28N*Ns*^m^?g(TY_L*0;9fa6BfJ3&agK#Wb0>zP+=7A_VOkPDY&^Em@Rn zjS}O)$&x_t$$elN5#2|5ld3!FdBeN1JDPeW zWVP63d86RyH~)&3-e|pIx~>sFqj_(pN zdAmE~gGyS(N>6iipQJlPZ9TC8i;c3t;w?klg`uF`oR8;>3RTOD5|EQ{F68q5roPs0 zjX*fJ+T-T{Y0)~iw!6j#K`_?$POAOk-u%yOkF7O!M^Y|#QHD0nAX0PC>$8G*Tx5mF zgxH#SZm~OB+ME1Fo@pTEX4o83*I0>fZx4TE|6I?ajUpd6gZ3^7c~CulP6P_uyZPtR z=pC(7{%&oRG`M+0rAU4cFbs8*szka*{l%K+?F?$j)$_H?cA78vBBI z1n6|x7LcL?z-M2uBjl0yZANXS+hP#+8%B0DTcX~PLo?E~De4PF%T?V>`&e>lD^-Z8$nY{t~;pogT46d#P?EyZd4-hZHNkzC&% zG4ZZWri(G7W^-OrOiTsKALhq*-yP)U!Q$hjhzEYU@-EeG0z$4gF zVmu`rDlikQHoEH$N%zPvX#Yuj8ky(QnO7->(F`Ru(G8JG0m%|AxF^<+sEmUaC&M{El_P8pZGDGk{usY((BfddJ8fE@z%C-oxl*e0~51=Tk5P4pT?Xs2}fg?$9C&D?>uuBK=&h44zDnlyvj_Z6lM7X&hY3R+?dhLSeib z-PR+?LmM>QnJ&W=1N!PWphHv-_b2glXItT3BB7ErxMUx=d9A_1J)aUC6Yc% z-BQ~PO&Z4?Co1D4OGIf9u#&MWtO$dLUeD)C)l|#qk(V?)(K3<)F>d`FnB6mIoC3Uq zTd-bzW9CDdUscmobn+h^9z7nybMiwxenj#iAjDaJ0gBoOPvERo5fth{EY*UnOw`lj zA;wC@Jjz-f-FmWDKEJ(p%&+0RM;x1U>m5&sER!K1)D|(!5ywV*CUjPM_Vu`kPcuQ@ zX>}EckTA=8|HuH{rE_4&o@mx`?pOQRGaAaZ+E$XfJclOjh|4n^$=u~0-Tim5YK{({ z!V#CpZ|3w>EI^XqtGMyJa%3|;vV%X)2x0~?H3@yd7s7a5Z4-6CdDc#7*rYI#%isJ9 z?3?VyVsld?+eXqrY5@dOw0LDHg+Yx13mvo)5Ex1RL5SWsq@4aQW^>{b1@Xcqx^4It z+jHp>-QD&vxXnGXKl@D+#uFcph$h24Db(fmtRDcqK<^fc0N&|mk{(pNNT_g)nQeM? zi+R@pGg6cpWP?UHMY2D|4*s0>U$ynj2(FZ`A>{vg_%~2$iuMFT(47h%2tdQsVFe?d zI!8tNBuC(7el5`y)ag zdIL~#XucRXm%OXwt5v?0ZK)Ry?$}$0?lyb!n7jRV+gsJG(6eJpsFfxEi*rY8Mgn*> z&luDv?yEt%uk>5LpnXU?N3ORAD&w0n{}fMKR0$eFt)%QD7E#qcZL&F%+n@rf^qNY% zl9@Tc`NH0&Ds40UQ@a1e>It4TjjGfZScYQi4a*!0ib_6>Z36u|zi2O?oQu@V>+*>K zwN(5O(GTm(sr&_6UZt~wV=JKvlR99n`yVU@S$)D0c# z-Ky7+6u7v}iAZd^z>;^PtMK*;gBIMnbA_X$E9`I%l4RoMNHJjP5%1s~pH{@ZvH>C` z{i(TPk=QC}3;Dj3&MRAAJ-$z3Ch{8sU62BY9jvxURX}NK++S{cu(A3qJs>UvAjn|0 zSo`y={i*#5{1_NA256>B4?qvn%;IXjwI@qI>&Npq)w%W4-Nq2T((r-XLitpIfItoX zmAa6jZ|ET60G=g;R(_Ekai)H~dyyMnsIAD_j4{kVpXg?Vfj}Yx0ipN+6sd+SY3$WVg~f!#=_m4O}x6O zf$}O4X}v(&NGps_Zz$=hW(xb}Z&h7A}A_HPku!jZ}lobjRw2@onL?NVRL^Qkwi%l?M=d7(veQBYg zrV&Mfar5TwjiG#7{npQG@6k>i*7q*sLHrCQgN)#3CCA2MN?k9K+ML=f3y1YCMS$D3 z;0{fpc0_6mq`N;g2FLb{?1bYP{6)Er?Go>(=Epwp88H@uU1LL~R%N+^q|$vM8Oj3T_a1)DK|_`OuT46=RFFC>6Hed_2r-v!VI ztAePR{F?28M-o#+J5Xuh*Oe*yo~+OPrUWOxgTWlP4{OiTw!rPHnY(3KFcoTxa!?My zF;K~YFh!|VRSDZP{E=}>GDPXnQ%GMR3T48s;FSA2c#v(ymnZJ}qJAT)E? z1*gYBiJR#_Uk&ny0(rh{p)7L43gdhIq@5jAMab=>R-uvrl?0q5(S?aN^y*-gar%rR zqX1zmdr`JCnU)-%o;!h9({I64pF9L5g!eg0k7j8yYLktnn_G8YvLMFxWa={tADA_( z<0Q287KylxViQISwnIKk7Ma=QrP;JAgh8<6SwNLpi(7wu>qD8Fa6ENkRg?*@Y0g6- zc_uf#XoJ@SnJDq`R-c zi2*XZ9Az7DOu&kvS+ycN)G(@*0ZJ25BImq{y@kR1`)ykf$Qv$z>xWuGf|5HCaMLk9t@h;;FiuF9FFx_OjI~1qX`ykYs_Q zgZiyraES5V3VOr z0Su%UyA>%vM7YMZicTo?Fx)B&(RK34{Q|Iy8Ra%D4rCk#2q| zI-J;nrT}~`SnTl*Vb#i7ZIdq58lea)B^j=kOtzAhnitE!`{Vs&V0bwOqedm=qi1h@ z2zcupn=4b6wlgmzcb$=y!_X2?DRYZDTU6NBSy?GrA0Ci|QJ(_+ovS)HzN)I+AtiPo zaSHjejrL6QK#e zA!gNrg(2sjJ-X0sX4GdH=TT&Sxh!<5WSzs6-t^phmz>R1h?u6$K90PFYLsQpvp=(f%Zzp1IRh$Rm zOR^2oa(Y5&bH&$6^D_j4LWQ_c`y+SP}BA5+=7F~;aD`$sH$_9}XR$$!Io0a~gzFE!}0nO3S;Q2W%D#N`^ zWa#%wjT)#+p^_*wOp{Eu6T}pz%99Z_ja(K`Z!GL}*y5-g>?LC1ixr$T6an}p@I8LH zmS2HAmjXG)AC!|6uKGp&dub$f?)@Y?MiG_rCsG77?Z|rtvxw41SD~iha*Q1UkQi#N2u&HW;V9FT{p4eHG*_@8bs58 zc2Xc;c21@VG4hlB%ZGCXd?s(i$DsD+mvYp;t)Q56!7E6*L7m$SxXF)Nwi8QYgNxYHCy+C}# zwU@nPM=5L=Kb`|@47Rq~swx^BPxf|67YJ2^A@pDD8u2I`d6{}U+(m*$hMNw5Vi6VK zbnre&Gwgu;S?lcsU>x8eEGZpAt?8yg1ZZ->vFoz`!H+4Wf8tX?PWQm@Nc(jAq#d_!_T9C*DPNOM7w zrr|Df%Qtkaztm325-6C~Vi6;mg68xmED$hC@jISs;l%yB%VMdV&|yM|*C@Rrifu_A zn7n*?5fU&Ygxn9bn0n(BE6PwR>)&OKq^0L!q~K<1##hQxqPn}2dAT+sE}1~2xLdz` zW~N&QJDn@1)lv=^M(}NjK)Qqv^jN}S-PS6j&1x@Z4vg6G?g2AV>43o_w7#V}rW(7$ zOuYLM3kB0rqYAK4;)9dOwX$DVb-GIMwwjtrPH45N(0t;)87Q2TkXJV47I9vSEF_u~_5(oqUc@-TOh1 zGVg#5@<&yFz(i&Dn9Olp==x-3?@acnF zU*$z!M}#u%3?>V(nT!WAd3f8R*}ujb8rw%xJ#$y3dT7srNF#){CszREaPOhO&db$w zmGkCqSUhED|{9BI8cQo!bo?O14O934n@8K*{ zd0)k80hPxbB*z@1hwqT~>iVS5t$=agbSmU=K3bY3no-A7{stYAp`4QYw`$v9NZm{; zvyr(3B=jrD{r>pUvqY^bPIh3+NAtgH|?o`pDM!l&m(}3~w|0 z%41vPs}{Z|2XQpX+gQ{TN#O{@nIjG$s_bk3CYxj=Y~6tOfcs^EgwdmD&~HT+yJc$4 zC+rcl2gKm`r~l$`dkFuO*n}U{#^{R^)UICwIQU(eA9#Xg?oU#qEVCt!c%rNiq*6N+ z2bPYgWL!QUZQ(2oGZs4aFM-e{iXA{^?1*Q{xsRxgH1B^-Ot-T$Ij$l84;VE{enAG( z6q;UjRv<fsd~oZUYSa$S8Lv(Ua(j|9}NA_g0g<7Q%Dh34*?7 zn{79gapI+D1;XT6a&$YqIvLrfQVp-u!sD9ZVK#)6fW$9?0Gw72iwBBLxp>TeG%oy2 z7X1^L_he<;%en@R5N=UMMF;3&V8 z8Dt-&n|WdEV=?ye?PlrB3+2EIj~w{ta^RmIIq-Hl@b>h;3jvN_P1~uj(oTJqcIvCN zQ(vW>`YP?zSNXWBv{PTDo%$+H$5q1Gt0X-1rR~4hjS06rm z@8PpwI(+ug#WOG!?3cY14k{ap{b;D2C~l-J5spMW@?197(I5Uu&4Qi951l4zBTJ0L zMi(|(@hQ`gNnT)=mtoH09Jnva^W>${45EIObe3cr(@&9SSVBHTPd`LuLzZwr6^UUw z#Z^r+lFr^lduV(+u`R(HKryNFr!ON}9|`p!2qzmDU5Q7`Bz{)jU{d zNf^^nFZxF-)^u~wPiU2Ls-(1;K?DBV&MRb04+0!?F@Jgv>E6CWbvZ)&gGKL(}_8AVReZp3dhtKt+Jr8jG&Nf&bSHm$?d`Ij;w z`~TU2%z zax%a{tEe2W0z;;oeQ&&!8s+cbAvPj2pP#%qYU|5u`Pol#ZO~Klo8&9_adr~^lEjL| zS-Fs@Ksk|e`0pxE$mrxi=6{|S$x13O8C@>n1PH4K+gB7Cz!Pi{!XQEP_*k zDHSao<)bXzrt}dd7aE8S(0*nX(TxZ(#;9ARma!BWLquk{6q)x3s=XetJCK6B-N7~M zGfv7fA+#rpJY%aiuYZ>BFYDTJksI?WOp zQ{|aKN=y44|0e(^@mu_@RBT8yEu@A%0VOtuV*Ib4i&L2y2U2GaR{{n*9+#ID|F*mw zVE@DIh!hrk-z#*DA`M}D2kwi2v?bTUvw~rD_zzRbCB&30nOoUonz1o|qA+o(KV7c6 zHO6LT8JC2t$ZUz9*S=eO0AKSpnV-viBJ-P>-$7a;;txR@yq3q;^H3pXPeh@2L^fU_ z2VQaH!1u|4?>lnfhvmQzrw3kv^xR0L=LXVq1L?Ve^xQytZXi83ke(Yz&kdyK2GVl_ z>A8XQ+(3G6ET!iL(sM&e&#U?18%lb<w zF!m+|y#S&(E>hGD^+l^PmO_b?P!l~tu%xj0L_;(oZALm+mAIDZP<(2VAiVg=Ezx)( zxwoYe!Nb$W0!`Fas50t#L$2bywiSO1npbNukH&LHRmQ|y{Rv5I@K+EZx6U0GF44{r zGm%UPx=9LEPga$58K5B8O%ejTSfybPtK>Tv1F=emd(UOo-s(_}A_(Z34HWyk`}XQ>lq^hccd8ssunqj~FR90`6j^K43##Nb?aD zt32H~KuY1ag8&iP$`vcSNY)d~6a|qz(#Yd4X*8 zJAVFVZr~zmiPVUo>}<=(vWoPWEG6(MoWUa^h!ifo!9>NosZGNjO-1p?gnnDoUoO+G z(9bi5E-&!33a^m!zS?9MeLAODg}(7ckx0*|9Q6|s$R{|8X7$M(#p5D*C2(hbNmR#B zdfTOP!Gs{75kWnw{KawVFNR0`#a{lXP%iz&QZ3J%fQw6qkvxe-g!XCBkL0|e!6I`@ z4nu{*s=ZfO)~yKt&}BlUikTfOul}h!B~*El2ERY*{@Gx!kHb*diZp-IjvvE9u2kuMldmbz8zDe@9)r#X`6dz zy&lA*h73cci2-Qgq?PmpqdD{xK-FoSI%r{rpqo@G|!#yyi_ot}ScEHVd&j32;^q>@{IfWh2!(!}j6 zY#t+yhIv;c`AR*2wWh!`a=BMtLXt6}Iaq&ixWFWzW1uUE)F zEA?R#$XK^NOP%pG+IJJtlrv+HyKe{0g{!@9ur8YiXSK~eh3qQtvL{$1S=V$=7&siP zi8v0T-1r&ukLWzvMa!Q=7LMdj8dIk&%`wUv?lIW_iM(AFU)0@V@i~JmzMwxAXEB@! z&+LgNIHM1->fE7n{!a}icI#D{0cp}+kS%>AAD8KUEoi-wXF$OG*iO9K_`S>jBUR(DVf=7K_-n-go7wcm(~}(y4IlYmmx6aCa;6U zmKIuYR;(=}n+F%hTEQ-_Ob2;QqVpntcgn}{CscP{k@?QdZ)pw1#PI>-{TFzANIFmO zOl1kA$OaUrovx=Wr2HV?RFzdOPaQ~sSqoA9duHKqWCO^BkY_oaCJg~MU`v(qkfMW{ zSEQ)31k8XM;X=|>3I)A%GjgrT-=2tr!I6dwEp{3B2FU~R_N_6wLl0o4jK5`eAWFk+ zhNUimyPx{Pvv7RebBy*VV4F$ypEi(ULdAi!Ka`d$^hlDF=--`kqkD|LBbo#d%l*jT zo`vJxNC7}q2?Z6P2~cBRsP8by{43%mzAF%y{H@Fvn0~{}CI-#&{7+qqbi~6vmtDyN zHl%I;ZbTd1V}u>dtIleF^ta*O$liJfoZ!Et@UMc!*~*;H{0I1mt}15m3rN%@9``bl z!9%jx%uLk*Pa_Z=RW~^T(Yd2;0zragK&WPm)b%H@hAVr=p|lW&woE%FI3g%T^`i{& zdTN;EeG9dV&zYWQVV#lg@jzMU!^l(Kzpd1|r*J`$;CHFQDEC!$cMY)QV&QRO)06Qp zk!w2XO+Ddx>fug!M%AW|#^xD6d@iIFlE6%>Hhft6i&8awA;{}Q`^#$=UqtF+}JDsa*43o9(w(i&S z?b4~odom<5t4Hu(GcyLJ8TKo?X2CCxCruZitLVj%E&iYqMhklJ5Mmfl=*9Dl05Ff! zi<3FwwMQw&op#&`aR_r-Tuj<@hEOYFpXy0iv$bLowsDXcY+LNU9A@Kk0vXyR#Ts=O zJ>Gx(WYEpIRl-!l!=VWyc%=yOI0%A@VRoWOcoihC1;;kCPvGsg>uZ67(}6R9r%5YF zF{eSMUS1FWU)&^oX~2nDYDo)Mn&hlxtjLO`*kHyYE0~k!+&opvr%dF+LJQf5kWAI? zV;Te(3$=w_5{i86DDi_8Op7}GKnT4Fh6F1m{VZlqn8^KX4HIHJf>r>Zv4|1Mnd^9%TPhwuDO8^DU1_ zksA0h0U7d@@y+bgG$wA&FXpfW_(geYBSYfN=V>kN_q9LQ{z^?_c^Pv4O5|PUvp<{1 zb9uanW3LgbDvXaz$l4?>O_A|O3#SW?D=DQO%3a9#4gnKWw{7L{tA7FWpPHPeP7kDyc^eKn6i26A8W2;;)%8&1nLbsXE zB2n?}rcuGKC4aa1Ea{!n4wQ~j%7e=geWwnn&%Wz?7Er01%BxViQ&|^2M6l+XWWfg&Xk6Mz%zN9?)zGadz=# zCyMZ*;*!(uBBLXKol$H84+owwOKj2iCIMkNu03V_F#DJ3@RsV<%}*|ew>%de1#vC^ zny90N`lM|`HB!*5!=ZwiCp{1Mn9z}F&Sx(@>3A3DebG@*J>8{HNQb+G)DP}5-Q_yT z2Q}X1Z0mE5ccJhNPcIfm^x|EoyX13Gtpt&&M**49{#CD`= z#)w5@20l7)Z0~c7bOG=vH3L!2cZ_slZi|}eVlmLA&@Vg7fiAkyai3(Q3l>`Rx~BIp z&m~yX^H@hBD^j--*X0LwX8&RenDy z?qt4GOBBB_Yp(c(KS_Gz`J_jlj~<8kOfw-sGew`{wBWW#dSt;bEb0|)a3Ee1x=mHf z=!l%8krN~^DB;EQmCuK7Skxs7SM*Gp2T2t&4j6>PoPY5*j!Jq^6keKzQ6ZaT`{|s+ zSxbF3Y=vkqMLo<3d6Q%$75DIxc$nTyg6!kO!{->h8uIi#78>ZP_ zh)0dJwE`&@==XH`_mhe1P8t^dc6L4)0=PVpvWFt_Q4TZ7fx^ur8>7WUz_m+w>$8XB$>0}kiV ztQPa&^-bC^d~*dK&&l;uCSs>_NJLCBM306?n23djxKh~+`w!N&o;^GP3Gu1NukIDu zJwig9_scZeO!>l5;GcT-tM6AF#8Y~2#;wM=md&7=H5toF21kg8f1Eg8hOfJ6KOamd zJ`!4t- zO6N?b9dkpZqfIaL;fH3DDVkBr_mC1(zDqfY>lI{5KvWA-;(X|nULl`33h>m(inKbN zqC-7C(wba`01GQgy?($1dh~{3RO}! zAXz#xEk0{Y$Ux&nz>H5Vc8Jsw%I~L=yeHxOPKEC#k&0$~lTEW-=eQh_W~9NQ5!D8? zrApW0*TTDzhDNY#@cV!JLJHy99(KcYnT~`VWy|IC*o76;p(+rhD9Wc6L&!rHeBhst zAf|laPb!PQjPa)2jvlb=_a4gS$HY_%O^29jp$Qc%rp{1#+Nlo7Je=2kK}EAd5*F?( zDJWpXi9VEtqAf_%W>BCo9$<`~cnS%{+=k)jC89@2!=E6e3;U=20rqc}d9xNM>HIjQ zLXpmoBb|>RosS@$8J^$d`OPQVKTy0$Wx)8Mv@5Vb*~TcP%voO;F;sSsPg9bXNW&mk z5GQDfWxX4l_vBXZ??e3VuzlO(%Mcpr**sHHZ19%ExNBFm98qlf3n^?&&6|bH*)EJu zRT#KU8UYWMuA%JOZg%|CayBLD@%JZaw~gNW6;4H}6@qq$wHBjj<)8Bf6(&-lb2|{; z9b7@|7s&U#Rt?5aAwDVV{@+=C1Rwh$N6IF+Kr9N%Dg!T#Jh!1Gr0CbHr&W9Hz(hui=)_##AhN zlLv7WwMs#ITdln|&pF$N~hy zE=WkozL1cF(AG}&eP78q);b+pXSCBcZRb~GRXVLRb=o@JBt*VcSz8&<`wZSMd5Jm0WbQ9CpC^)Kqj%l)2v&U2paJZERasE1E9Xa75KsZ@B3*$~LB zD{LNSc8{s5K^q(YWieMcX2WK~S-hsj~y z?yg^`31WoKH89jY$b*ws16k&-ds<{t(eD}-u25P?gl|N|>~PK)a0zQHWHlK5 zB{pC(hruu>(_I`7zc7D3$F*WUr16gU0(VMq@8&g>NpqKWwF)bTPu9#=rsp3!}6o%vfP?&H=%}zqn+mi%T$6wN!U3H7wH4&pn(2VO-tazEB;Ep)!Z>9_Zm6 zDtAL%-A*IJXN1tJ#W2IMR5>M=OPj<}8Odg7@Xzctjw|^%b(KJpz2%WCKe)z2W~UkK zhhXeACTtdg0n^?y@E44G(P1ub;^ZQ%H!8|6%y*vOMT7N^2$|*10a2{h6oaMvN|x-r zcbX~@H{mc^ek}J4kD2&S%H6 zSnnUO*!Qv6_p#XdSN8a54Mk6NR7D!6SUP@J&WkyQ$>E)jXOr~edM@ngq8Wd<$<%~8 z-i^}p@2A`G#b%1)`S+p~JHF<{mF=aFh?&vANoO!5G$B!!EX=ksW}=4)GsJ({pjn>@ z1u_g2KTXTU@sy8gJg?SjPTTGkt!5&v3;J(!|CX)<^Qd&5!Hh?wf5ZYEdUp5u7rKHv z7QN7MS%lAnS2n951W41(s>7aX*`!@%LH?D^st+f^d`h#b*39-In;FOIi>o)PdC`7z z{XE%M?BvVw*4NBsu_LFvN65*GOI)3n%qD)DHfmR=xp5dYA>`t3mijKdY74vEJu*Ca z&J1Z`o!l41#7*@(oBmfct(;9SO)K{>NYhGOEKO^S%!skASz=RX7nnppP)=Nu8zk5$ z!8LKrjnOrvWX@>UQCyetOLl#^0lq=an%OpKfnD9)FE_v+vTLU1uiE}Pi&b;1JWGx~ zq4_mAFvnANWO=cwjIe=Ksq_}*Gyz$C<{zokaF^R-SEpGsuy@YGF#qoF!*CRT-WvNy z&UCcKUOs_Qks(tXSx$7R8FuFE5!3Jpmic>ahYjmt+wZt{E!4Qz45Tv}YbKb^8$abj<>`#F*UkM+?rhDJPZ$B`q+$ zf-sT)V%fE;>-?DbP;ZtJFJ%!M$KP=0Ax)8Aq!+E9qlL3Amq`WDM4DuogbpQ0mdW&h zrJ=ka5lg5!mgDPXoZap`Gt6;r6|10qm&d0>a2xczD7?1jBn-VMjRX9pQCFTMO&HP!-HJXqws}PJNqh zYG>SoqX!F&m*o}elOO5S<0tt#~KWYDET3rtLqvzq~{+2Jh zGqj!L#unRBj%ks545&8jV3n7I0G`W;^Mz7gvk}Y3B_w9%EdIg(tZxX}@JOESwxXtR zgy68)8FPK*d}Ilr{bz;FcJtfpL_;j$asU@fIC+MNoidq&+Yc;;F^@1>GrhLU=EU4| zf$>#ixAC5??Yf&7`N#bC6R}HCU&2m@PRcT8Cox9pFiJD_8L!`>O~i1fn?N2ND@bG^ zsLT;xb+s0K$WXNwF&dT=GT$t5FGl*I3zTg1Pl?u9!*cZtlx&d;vqL3jV?{=A@*IC# zaNb{kZB~%~ELj1{f)XEBKi9eJ!KMxQ=-o#jUWhe|GXuP4vQ5v8jdq@)Yq(M5<1R*; z!yx7--i&mCCI6f{gduu`alVneZL0ULy!5KjanB*AV4=D`zEM}b)#$^Et$h4+29m&( zJCA)Mr$#<@-4#9UkG=GWc=MvZ%N~XXPM1Asx~sn5kFIa!zXwI%S=!G*ZfF!5gwi{f zFvQCEh;;t~|BA{ln{OzW)=ZR_rT=nIm^^->{yV}+0^q=p)qV3*bl?0O(@P%S-cD@D z@m@5`WrmBZ*Q|vMDs$i)J5-$gLnH3^>l?$6cUUmp#~GYC?ao}R*K+AO%>7F&BJA2A z+!Whhp!h#N-Wuk9iZMLI{Wv&Gt{IoBa~O|xa-Bz(GXL%75)d3T_10h6HvC)z0t1+G zlS6aZl9tZ{t8g<#l*>-0L`7ubthX?(*t3`Yah zI_|?VHuK*Wu@2O6HYzIKpXL0~mp6EZ{8cR@MK%vC0x4gwn4XTA{sQa3q~t5dzj6@p z$J@!LwGmFC91`HWC?|kRB-yDY%SMTToI(>9aCk=j~Wa7(wG0PbI z++&uz|3xc!{iFPr2D-R%g3>Gw3&6&8*gNOr4d&CDk6>9YI7WAnsD*BcjH(b|ur-I_ z24|P4vwvlCnI+}1F~Wtzx#Z6r|G#AAuBXcq_A?u+{->3M>r;J1gn8*iKdSxkQZ1a zJ2_;;K$u7+NJq#V(?w%92oai#RcRKq6h)=UA=hWL&!VZuP>fK!zy& zoP$ypaH(mK>)+x%cTxTk94utIacv#l`2YK*cG|i4q!SLi4^$7uq#*IW05Q62E!P^kHDbZ2a51ysnPRg*ny}qxtMEt7B?Jm(H=w z>?7CJE%-|=tMi^SH;P+9q(^9TS?tPj@V*gxX2i6=S%AM;%2k@*5`XgoJJ)5H^acFQ zX8g@&hrij1zu9`x-)zO-Y{lPf#ouhj-)zO-Y{lPf#ouhj-)zO-Y{lPf#ouhj-)#Me zzmWkL$9i9J9ypeT(brBdIQtuLJ!0$ACxr!va-{5MvUi{T1B3;> zTtF@^(&_rYJ$Kb2OE%avHN%eqF78mL%ksB#$EL$=algSVPAGL-D$~)vF7ClWGw5Ql zPgG+i^8&tWKC?UJ=C_U50rN&9K)jcEBi`$mc&}g5*$Cjdi=kn8ci8cNa|8e1Fg+wC z)}H9Pz!AkrjKkrAEH%Z<9LLRsu)*>F=U|Arp3lk)eO6)60@)xYp&yH%LgIo_*}x%w zQnL@1VRg1m!9qEn{R;0i)f1hI88KeN20m^@aScscXnF)O@MxOz{uUimfX||!&&n5l zMuC#Y%!u%*Gl8zok*vB3lHQ7RlsJ}m8BfmaqhecuTTrg7uD!xLt#I~Y6B_1D0=$u& zlEot%{jT}jb4$*04AN)ji2l#<(~L!nq8GRXF}BWHX4p+{&&~ZBvegUTIiST07m81^ z;g!aXDdQA7FoGq5F2Ad`qI(itd0f@N^3FX3;!MUdow#^I6I>bB_B`?&jcBF}ZI5eIm-1KJBCQzP+O6M{^If>+}Ty zT;S`;9k`7OmA?~xu^RQZ+{|B zpE*$+OC_zLEFyQaaleCQ9cEZ;8z;f;rnBqC`44jb(${tTREOX3A~H4vBjnN*X5Sqg zbS$k|EgJ;5g!f_>Rl0C-t|2g6K9SBT1EDVBiQpO2b@=vJ84sPFP$NIMEXPAIb1xeV zq%iFkG9i}`pJpzS!-IwWx*JRSjq{kdV111Qhz_SL%jZ~MCMWb!P9n1cbef52%?Fu= z;z9-YnKRfK=*=Nkt}|ruy0hEYt$6SX`hCSV22C4&|v%!!J1)-}VP zzB5dhb;(QC#<5Vse_q`Dkd&18glfrad*do1*jPy`$ z4hr%L@JcF6o6D&NKG7bLevt{w=U{CM1H)KUDHFxlu-Kn%147blCeJ;%FG0>3vw3jT zhRml=J>;?=+LgW6rc+QP*OKXZLoU`c)_qRZwgqU`GNX@!Fq$||!m(n4IaSwbbCkst zj(?@;3U&>afe$3j&IPSc)6NN$dIYAMe`OildMV%6J&mjarwj$S$n~Q;~U3# z{q#wVY`2jelhG`dbaM@Moi~GJ2Bzyuhq>rf82(6fS!j`IEzKh|cG~C2FQWXb66H5& z6g{3^EF#NBgdx+8D8m*fRgPJ-z(EE-LcML+^zroYXUq&`1Bxwht!?hi@U_XSzZSoM6BTiu{x-M3lqgO`_4Noy%vv|!)0O)uLOqvU zmzy~&aB+ZVa7s8wiMR*21uO~lmMqN_&(2m3cdlBtIW1j1lZ$(3b7bKONGKuGelDTj93<`>KDCbn zED0;vhGfRnETLs_^6(49s<{r^-Q7#P6&vN4;1`yfoTkb2vnR);uo82rlbaU@XEMkm zvIZFlV}221R^^UIBX9L4s~n^3UcG{`+2ywtN8_W3*zwR=~7QMY(D-o z=OAOB4%YxGTRzD(u=+%uqHI1-T(BzC7Vkd8ef}4t6aIcxbOJX>iTLP9t6T8!40TzO z8{izClaO(9{O9JOBCc%IH-j8*!80J?vRhbu-CA)A{$9b!;Y78#1^=aiUaSnoEyTNX zL4>=Xvj+zgM2KJD?i`M?5wqb8eQyu(E8#3J44i-2H_+b7(3lrXUr;@kI?|vzo8d`| zxlh++Y9q0z!%2k9b)V^-a7(gZgpboTf$q*Ty_TkglQY_EG6{{D_?pWJoX|S5qu!E$ZiC3k^YJG=$GBv+1;#a+01_%90h zsJmF38IQa8Jm&+kOj6dVxGh=E#yZp6yzn7M;VcInUUCyQr{A+=1#;)jTUxh5&MV+k zc8z@0QOvpKlN<$CfwFkSmqSeP6l-(}MdodoXr$uYdZoRME8PV=;cNqq8!&TZ?<&sU z)qUy-Cr{dN7PQ7RE+lv`ZA)GKID~hQOYS6yCIVx6g@8a`@$9-tY-~D?a743L z2_+JAO(~Z13892!_Gh8QB^PojkXYzCy;e=4;7h>*pMEG_AZ7@PzT_INj2F~-NnG-g zSV2PtGQw|M-5p$8sdrE1u!#NI^xKIud$y*&CU@qsZ zI5|~4B%1TM;%`Zf%ME4ePT-o?y+XY)|KMvvW_-`Q!un^^bI88Vp zkpffN8Y#qlo*PLB$=HHC9Vg&pICPukLF{;;JL=+d4JCWKcm}fp@lsSEK7`l?&oZAY z&m}0}6f#_*=|V{0;_c0$w9^rRukU=fK<~f^K9E1~Pe`~N57=Cna!`(*2<1HYn&p1x zGX9F6@vtp#S~O>&D;H-(PQ46oy~Df-5}bZ%at5Nr2;Z=+H0Bvu#$NNw=D(O<*Iwx$ zz0zSFG9(b5zGFbzSed+76nAm-?hWUWVVax47KR@Q*xA7r~Fab%Lh52y-uX5jao6(M1SeJOc|yXV^n> zv4`L{Bm8rz_?88$n2f}^e7I}E{apAKkBeOsub`9&7GI+9S9DE2A4~+|K(>~==Na5^s zGu;NFi0NoR`VDx*EBg)C=7h=yXlI7;FLxX0az%>|QZM`Iy_IPnbg8pq?va(S9# zdI-}#;=L9*{4qZ*hz+&XNavd)d>9sGl0MQma*?;2uaB3jD<>*)c%`%NEKV?G$TH!g zYw_cf7F2+K_N5UFhijRk;e%uJVJ^p~GWMX3MS=%$EZVsyn7_iaOouI>=vo$Em$zC* zJ=C?ZDeXh9Wu1f(?t~G4v2$4Sxi2pI%bbH>qz~)s=_vUunBl+B$IHdfHNwZk+b?h# zbF+&gWI^L)4~EwyV!4_JyXTTuVSl&HJcRRLpB{rSVu##_<{>u-asers5&ghb9L}V} zvs{i={>-yn>Sm~8A)L8lKmx}in~!7_)`vWcBf9xtdX~@O8=QTJHEf@aYw+}Q58^H` z52oO$yfir+vr34t@OSu_YgQ^FIw=uI6O8B*3xkS;sCGUh4MzZ#@j=`&W%T zWHflTEtF#7i9@u9q#NjDz1Wpr#)-;)ih~J_p2MzsCvMR+ZQrAVYNLx_a$jO(Acq2T z3v!r;@2yOBy4d7Sce%qo%)|Ssi;iZ-C&VywE)H{E>1bq-QymRa_W#t&d?Sofgj`hQHF!xUqQpQ@jkZOS2hlo@c1kjS)yD zmgSmxFBeZb5p1HHK3~PLuZ|v^Y_*fqDP5;t{GWw0SMfS{FOSdG=Q#O$$er4sjnnZ7 zarfdtXCHStJ>E%9h@%50&%v%7n&uZFy|F8TC4S)^)lc*}K`UzHG|H>|vE9L|2JhqQo#_?=y_J z8w_Jrw_(JO8b;DG!$>JGj8uM0<9#}Lr2o+{GWmW@40p3+8b;n5hVl7V4dd^wGmQM> zhEc@(k{-h-Wf+^FdGj9)!~O%qcp%9z zc0l7plsOP-82flX^v{N|zriqu_ZY?q-;Um77-Qr!PMY7Q8O9@b8^%HCd3>f}JaN!4 zj!@=P>kQ-RCk^9w{C500!#KhF31~aL)iBPu8^#L{8^+lo!#GDiulO0ptFIcy>t_t( zjYEdz6oY7*Keo=-Q zSV9n5VVI%!7-raeh8dY=n6sP>b2i^aZ)3WQ_e=Ti+LsJ-<*SAnM?R~*ZkP%DmQ30d zzR6f+n5%~jGi#k;W-m6(ya~hne2!s$fwb2(80Hr#FaHL^EGRI{LeiE{ZrR(0Sz+)W z`PNWgO}Amz-e#Efk%rlPw_&zyHOy9iYddI|>!G2Y@7hNV^Ll>&2h!b;X_#MHW|%kq z(J;Tle_yLG%v-KA%&+$t=C{)f^WXUX`=sB<-+xFxKZcf{JZYFeKW>=6qTKtu4YMo8 zFuOMxraj0oe{+LjJ_udgR~hC`=zOT#F#CA!cQ?!d^4YV;Fb98TnEOdH0=;814Rf5| ze>>kW57rpw6VP;&_fP-AFn`CpW0Y}{d`_ns=1b)N3gw^Y|8JHU=7swV^L@Vg(=yf# z95-xE2MwF+ONPxe%CPzVz_0~gXV^j~42~E!Y!Mp_+njG1w&+pAw&*^?wv4p~F(rm= z6}n)s`R*Uu4AcKigJF1kRj~g()3U&9qYf;#4uYlD5zdXxxB9_C>$hN$^$1vOjew=r zufQ^^4=lHy0V}Mhz)I^RSZzHE)>yBBwdCe()LBDdz10ggSc71rbpmX*UIbe;|2FFv zJg?VZ+cmu%bRoAF!5ZsTu+DlJY|!UM>kXb;tP5b9^#s^XJ}!nG3^gLHhuKTAfYKw3 z71SkylR3h`HP#r|W}O4utz)2F@wlcrp?Fg9l;VWqBp6Aotooz%bE`a_yh9A_-;Vwc_kp6iv5}N0bz8{qIbBwu~a-Ow|=V(|E9yCPp{w;6;Im{)WF)-3P4$iUe2BYBrTz);mSX8*R6O1JNJbv8+N-6Wm zVFK#IkykXoJ`B#WehSL3(foRn)p6m-Za%-h3C^+hgA0($d}9&cF5uUj!AR>ia5l17 zK$=^@DAFvT7LsP3^^ah*H4M(DMhmnq3;Ff|?r4aF@`Zf$?_d6Y-S6HXPm5jNqFcPfyz$7HK!pMQ2D~z?)B$#Kt z4dx^F6-I&e3RsBTSD@AMzSueomgujgaC-&1E#H>wn+mIk=Su4ZunG!Spp(ylHP$Jx z7GAADGv(KM{i;FfX;f^oj`F@4d96TKp8{L;eH(mUfwoV8?Mh*X=GIB=Rv6t%m0jO& zQ`)v`&O4Nzo%*H+3tD0HT4%srnp?ltXh7fW)|~g~S9>-6pgs@jultqSVZ{;sbyQ0~ zp!tt09!Cl*j1!6{6;CNnC{BVg$Y=tLMD8(2;agw~b&Nq4eqbE3jNxW&Mr08Kx6gyEXm1Rb-V3g`-T^!G*G|p9~(xhOOD~&WxA6jXo>zfSgcRa7g zqE{MOntl!5W+fb!oO98omDs`waGmuKD12UtExZmELjOv5ejY4F16RWNb6}aZ4=h(2 zD)D59}zt(5~`&w!2(KLhT@JeGyald{$tSLv( zmX*dR8nV(D(|itSiR1d_xOIT{ClpUAo>H7poCIUh^R1wG_*i83FJKJ5D3HG#vW7IAdZI1%iSl!@S>p#JDlp72G9|wi=v2gwbSPaKv;rwG@ndV0Ya1DIre8BDR_ z!E`KT6}PL;0<-bztKi;wFqal~72LZSl(uyh+NWl+WG=mqwj02Jf7>USg^s$0voMXu*v#Yu-PgETdW(wRts%_t1H0u zn!dvd<+;Jl>V!xHc^MKN}+xiaAdz6yB*4KC*RQiXkzvFqorX1E^M>MxlE1UOY`t1R09na%d zK6u;;0#7KOR6M0Pp*RV~tLKTw3O4b)0!hUqqvydCYcrTe{1cC!2Y_p_(|DxtESOK^ z9Ip{hJp4b)b1~K(5C12?GVC!P{yzg&p||ny{|T@L-HXSoJPFp}m*RI6+@iX)dIF!F<_hWZN0v4*OXsH zE(z$sGO!b?Prx3fcHg&lfOn$33HUwXK$q6ETkEn#>tfd&wqY*`SSVf|3l$o6YK?ld z#9nJHZ~Cl6a2HmVKzk%92dp%3x3wPJW0it?t?R)-t=EwCMV|LttHEKF?}*lM6i=0a z&Rh!~z*8k)p;F)DTJ8zOlZvMlCln{aM06$wj3j*`+VVqi33W_FTZjqJmaSkMeX&Gz z;~6j!pP7hOG=VAbGto#jW`e7UvJ#Q|S#S;hH4%xQ0N29jL}dLAxDKC|h^%h}3#@y= zLi|r6vi>GmZ2dD>V%-jwQtL!4{Z_D?mNb#}OG>P??gFcbWVj6m-hioJ?`in|p16$g}(-9$Kv$af6ftGLhV1kb5ndjweh)?h|09rp&^F zB_a1C;9BdeU><%W3Ayh8^O1ED5|`YH^w(m1OOnbu30dF7bGcGjNn4qOl>ZH^*7r5Y zB?&1@`Z{bs2`LK=4c6ztMym~MLLZWl@|VC?Y$pl%=78(boFwF%33g~rJL&r;Az7ie zTPfV46xub-Hl<-ZT9JfgrNo_Dx=1z&4=^r8J|rWr8^L1yZ8GxuSFj8{Oh#U}f|b^tV3qYtuo^BUW0hY8YprIm&hQ2s z;7>A=5^REF$w*3aZqd55BD-WHwHfTNR)L-Pv}C;QLGb%%S~8Ln3b!bQ+w|M*Ryl8W z;9-)HQ4!dKJ|`oiM6i!oB^mE}J=jkal#F+k^t-X0WMs4j+)KNkjErsphpYl{Ke13U zG7=7q5CtV8Bl&8~`UZGFDIZswk1MxND4tY2r8t44l8s58Q?R>};1b&O6r}S27=u4a zK|1m#7Ad44qbEVJwG?C|n2ZIbAgQOoRN~bXTHAAAIvzCzsXYy5>Q~}#Q)pq|26ON# zDYUS!foqX<3NjrA*J0Nw$n+RkpuZMs&PDWYQjqC0V2RRGs?TLwO1Y+~q}5B&C@Te- z9_G1LQ`VsyDadpm*r+)-VL>U#bOda{x1?Z$lDTel-_{a=r{X!E17#dL71{j+Y$Rey z#U398o8dqzvXk6e72ELDsaWL>upK{^iUfZIc49TDNbm@_5e-j8j#95~t;H6tg3@U0#2cwdQ*alpb1HWFEpR|og>L z2UvhlOGC2%35sOXknB&uQd<8s^{Z*f^d6oo;X@kMHwM;F_cY}A3$OvNn}+Nde%|lB6eq@w})FkDI zemjbGr6IMQ-~mk|QcFW>!v7PBCq4UkKBdnSij!bE-gOfgiAJSki3MN`-XI+rJp(3L zKLb+71@rAJUOjKUjnCrd6$T}VC`z^SO)+!x2N=*m!c{goJy86;|3em#0=y(2o@68Wgy3|fyG1x8OZS@ zSW1hZfgJAw%h9L|B)An6yUS1sW+1^`Jl7JZW#B(6zy{=!f$V+=Ho=n&wZRNzcMs34 zL=+jwPD)=-yp(~|ZUQ^467Y6f@C+>RAShlm138`pwjn4Ve=?BNcR{hZ4E*Fz!C~|v14#)bqxA7Jkd&l9pp=gj z5oI7L;r0ndvA7H@PTou?PJ*kElpTyzTtU3L8tFU%CNKlC8o4|Vra;wdB(em|WUgd2 z68Sl}PE+QiGpmuv1Xze2twtj9TnrypBa1^|8Jf8oS;()IaA`HNcoD2dyH+C$d9Fov ztFb2ewgI2N8d*sCCfdQ($U>f5HP1Grxf&@*$_}NWQ%kv1-)zx0+lhHr!)+;jC+!aR z3Tyto^buCWZF#ecSYkEYmYfH)ltKM!2)kPipXJwK<-my6aa4aDL#C?@8Od2qdn7a; zSH7K4JgIm}aYAtt%p|s#8Ky`gicBoxC2$2LX2R_!!8lrGvV`hz;Zl!rfPd89Nx;a#0;5m_=ljx44LTs zAlRU^HCq3{a}ySk37-X9(CtjPeK#oF&V<`P2Rn!XGST@PL7B12M9(L{ElTG${9z_~ z{!?%VZA2!V7wpkDy_#DeJ%UU)|0A#;+ss76g(u>XGSTxNfJ5k8Cj9>uIIK8A+nR}< z{}LQSe=^~}9UNDl99K@BP&}!4N^wGQ63jx+e+WvXmj(Zy2UlQ^S<3$`qW9N$jzgMR zL)DV{9{vxP1~_O&plT*vJwvoAal#wDrltI)29UI%20R zWcN+50MDO=?Cu1MloF9$7P7O0rL z_;VH#yculJ_c9Kah3q6{i@tBA4b4J!*MsZvIa%tjvXGsm+@iEeRFH+dz6S0<2eOdY z-C&Q>(5uu+zc>qd2|fMjUKW-jHIfmnEMzB?%b0T(vXdGO>970s+hIIv7C!15r=A3t=$jQ&*Yg}h z|8Wg+{0bNg{cDgW?FZu?+rfA%1WX``SYsqkjetp0FM`QPe2tMZCGS)53~T6@apySl zl^imV&KjirB`_0vUqhsE3|zzb!x~~jp(F6Fk}HdO$YPhAIAPDw4QrtSf&r`CZrQ)OW7R1#P>CG#H* zQ*mJ9)Jm{C(EN8QRXtO}=iVu)Y2TFOuxqLq?4Mc>4ronxPYKWWOl<=9PIZBU zQfgYTDdFU(=0CuvFq!>1|p4YTEJ$oNz=6G`&Pv^#%;2(Ybmi^ z%j&>;WMkc50`JtiY*A|M`s+6AE*ndioOdv0m5rqfe|qo?*+d{xZlAv2rO*BP>j3(Y zjitW|$_Q9CmOcRvV(-~ly3}PqJ%wz%^nZY3*g`heeGfR!2wpbUEzc(uPb!{LoKTzu zbCBTY!AQl$$Swy7J`Ap4%s)pZn1cl0<~a^~lv%G(FrHRGM#Lk*L?p<#ApFc>oW=)C z(cIGL5#-QH1b}N;@sk5Bl0H}8uf?b3Ak#x&KK#rV-7MEY|uO#;cyNzmAW)54K46F zht^g~Y*WhD;~{g9>_37X_^})$n+M9wcn&MX)?bImlEf*~vJ04lHp znuGTi&h!&)=HR{M%^rI9IY{#pLn~%=qBB?R3P@jvi%nIzCW&fKB0J0@s#3(;v~3Medb!^@*SR6FuSxC zxf}*p(gLnUI?sV(Uu%(0KbQplYmv@Zz;t5uwRp>O;2Kuoksnf9ORIMZ%!l)9k;TtI z;s09rybo-qj%(3yd9$84YArnc2H1%;tz|ac5A4<)q=&l}?)?|`yVtrO970Ri!Z&#y)!fGL%xmG5ls*pU*P_EWgC`VE zDxOlDP@Dww;MEu?I-I9%N*=sA&9lUcvM#_IOkfpb9=zHHrqI{RV~olVOf#+p*Ul!6LLe4<1U1rPMJGef}>{Mg{ZG&pwzAakNO^1$X5m2I%a~!`Yh{?3gG!`pscAbKm*T%)zq}W zs9}9`fl-T>E}*_IfX&vsV2kF~iqs15oQJ{nL=gql^a*eS^b}B2$)S^#-UWDoaPWRj zZ`U;2pu7NID!J`Y3U^w6;<-nudI-)Jpr4YaPv7iP>{lFshXrs(((h5q_rm!CW6*F1 zhiG>SjQ#pN%u2ZeV?>`vS;19c$ZG5Y;{aWET%42v#=S08`{lwJt0-Uo{) zu~2zcXp|5=7NQ~Vfo1TpQ2AB}-`?T5l0IW0+TsM(Xv$hRP>8ljKJ`ea&}i28Et;kk z-6({6=fL&)Yr8&gK(7kno_y7*Wyy$rA>4Zdv}+pSULo9*G&|s7A$Bd;qwgQma(k7k zK5AEpbqn@uy<{Y$5bg;I_X^Rj^WdO;Tw;Eb(()YZDkSmxC?C5uVn2|5gPk6*g|_( zL<_YWY{MTG!SnrKJD#lwjokxwFveR1&m{+0!Bu2zro}0O^HMLnrrf4A+OF?+Fp^LN z=LLI+C5nuPG*20)EkbXl#9eq%Zu!$U1I%F+!TIOFJzAH&$fXFomN$dSlOaV}WmJT9 z9|dK!wg?~lEI6ikK))T=UyngaF?t*YMlv>Dj1RDZ1?WRD@-e|8WLL~T^1cMED2C5} z1jW-9!{O(_N=32#Vzk#2tVLIg;jQFTk9`#rHN6jt4j02ud2U5-i{a$!U_1I*3?~IU z(4S&BDY%jG;bOJ@Vt6RO?$q}^c!pv)CfKLBiFFs__k^n5c)4P@B<1eaH-k$5km7#D zVZ{-=Q?W5hFQ6Ff_6HAe&u}sNIRiWfwIyigqhJJlEM(YYQ8OnWAa>! zXD)?H=fFnFEyY6RTiIVz3LjntJCScG(fFg_MmSaq2jtg%n*RuXsT5iJ;FlxN$ue!} z%G7U{LBpH8DTBf?Xpl6OlwJl6XTchMUq?JphP++{8{k73l)MJY+S)SY^#`zpx|c!Q z3t&6iQigOs06X>lowSu@&~_NytU22?%>cSx2Ayvk<=AN;7|H+3(Ymu>0k&KYwJ(81 zlwJ~MVeB`p<*wk!Crykmn6Zyqvn620JzVoy;PX8ym5&a^e&D_I@~A4$me1HvDQitC0h3yC_9oW z(Ylwx67s1;>s|!QXj?1cq&!z*@0IA=<6sT)s>Hudf%VvXC7N~wY}A~a;AbWFG6}X| z9hGREPSp_<0VLRXSC0^%=097QYIvz796R!z#Scb6~T6E4#X?;OfI*8yu^G zt51O9k*eV839v&;?9|-uRGK%UKUMJdP4IqNpDJuw(#z`TDr{MBhrZdVIrQlBL;BpS z&wZL^7g|vTZ{^zod|eeS^-*vS9<>VIz7Ot0B31DABsipB?Puhn3Jy!{MwBz7nsN+3 zP(^Q1@EAE)!_O(O7@k+dz1P4>mXrD{0#Dp-%as^QWZuo0hJ4S(JOTlA|| zO~0O;tKrOPuv7Dt+1qL~?J;n({%Y4>d!eVAR#MVSoLo&Ur1VkfkzSBDD81AgDEuQ> zO!^w6{2Ew>q-v1wd9aemp$0n7g0dsEMpx6-K<%46H;{9U%CrWVzRh#9=F_6jZTQ9- zsC^miq;@sXISAVI%|1%0rEQ%6BjIW-n)V(jrPosWvtSjTu$I!_25XQ=EgJPaSg&sy z^i3lzMJ=Vj1GXr(5uw$pRo0?Er+Mzcx71Sl7`R#U7yn-iC8HpFe8FRQp*rY!5sXwU z!WY#+&-<0;?&d4tg$tb!bJM@}UksyvegfL3L>IK~VaSbT!N>!IN+n2#r~r*AhKEQFqV+6Z5;Sl^crMbty#AHi~c zu3#NPJ#3(wV^anW~Xd3Xw@?LsC4R~Y8UwS|d zSd*ZvRB6Db9tH=rUb~fkS#i{W$B?@3)8|30%MgB`fl(&GVJ&xrxViyLd>S0nx*R~_ z4fu`2wAtLV0ftiFM)-Udls#OH@cCI#_8T_B=Si>#-D^}Y-3Xr#@m!`kNMzLrpXE&@ zB{t%1!G<3K1(T$`o0M--3Xs0WeZ-Y5k4OQ+u%|od=}ay zs&9nPBcQBmXvD^kfwCK`5k9{O-j8Q%gwK+48$4-*&yr>b7SRZwCI24y&TnaheTFync;+T}`#ji)FKvRWuY%&$o8amTU>mJc6I^{1Y}a2mXek|V zvI(vp1~)RN(*!>!LA$2eru1xwGfnVQ%G#;vd-T2Vvk89w4itVi!O!PF*$vbLKc575 zYq@)nR1^G^G}8NMf}ip{q`%5O&?fX&z8z5tGkc5T7R2EcH}z+0gF zUqR_Rx1b4cfrZqx1xvbUfWg1fYi!kHGd;w-oueQv?Z zUIF(a(-t@;DF=xhTF?qX8Le%hjj(|u=u8V%CiIIwv=I5cO;1C5&8=|tX)vEri&k1O zKd_MgMJuhC3s{Oiw8GCfz;asTR$}}RunOt4!pV2Q8YpaqldpkwaJv;wUH}^?s})Y3 z1DiDm;bAL0l&{27wW1r(g3{8p5(9XGowRPP@a;Tk*I#>x4O)#prDvDYDLt1~V?c4Y zzS*l^NiVOJQQ1Inh*q_gQQ0tXSf5AeakpX@e*zC^p5vOsF>2I?pP2>b!`n8r>kY6F z>9nC;XTcKM**3Uw94y19wV_=vfwHE$4ego)tEhDwJUIu-3bZ!$;cf8bIi6)?rVXCR zSB=QJ4ULlYt$2erxbX}qE702DiKO2^l-q_zN$IkqzYU(e0B%MKZD`aP(5@-BYl+e? zZbO&keUDNu{ggIz=``4<@1 zXc*D5M)i3NEowuf&V%FVZ5uICD7{wkGwac-N5N9+xE_wZ3QDB99{#)x)}X!X;mmok zUQyzo^>F45Q06t(tA?zH8;|fTy^QtfhAX&HzqRXop>{p;^#UadYDa?4fd$mJ9SJ@K zN-Nxse~{-=G^!nXUI(R@)DBf=!73GK#RdbeI|Lsuw2G~K1(2msPSMdPtc)7R1`!xp{lWfNi$gkV=s~uX_PJDhlvXl1@ z>HA(Sw@-7Eeo#BII||AP812YT=$8@8c5Q9jk)1pbV$to|4{FB`2seglW!jP5GvKIx zJBF;=k)70HTq!&T2R6XHcfb;)xdC2%07`qh0X;tpN{g@oF3Fo3c(nlu{sFAl_YImx zW~MgaIbQ^usr3f9^eot_Dch*U2K4-WupJsUpu^7_w@~hDU;(Ayf~4fRgs*OahSOjf zJh=sVy#-e28;P23fs$jO?CQM*d0hbOsQWF@a}I2v6}Sa?Ny;Y8Q#|=C(DM@5N_}rZ z$M%5hk;pC3vlA3AeJk{A1Pho|zZEUI4=iGy_f}}LgC)dTw?f-pU>WnFw?f-yu!0%k zTj7#m6=VCiLg9acHOwa83WYxf>zMJs6$WzX z8^HDY+|KH_TcJ?!Adzzibe;nX(3TG9JPV4y>VQspUxKA{K<7(f8GP=5&SRiNo*mHn zA}Hs*bU>#(OFy>*I_0Z6eN#_OJD_tC6v=i#=W$RZ+X0;?z*e-h13D$mdd*GFd+C7A zN#izXcnK_ps@tI9S+E=nx(ynh0%e@%HcEdItU-3SQSLEN`j59!uDp?RW^SWg`AXW6 z+bCCZlX=hED0e$361)uw%JVJo_BKl2j=zw&u@nA04NBbD34bQRVnx~0)Cq0!UPewj zq3v<7La~x^JK@h;U^V*F35D{emRffzot@Ar>E*npPUt)bHc{VBrLz+{<$Wu$K__$` z0@o95c0#AnV+U_%K6((0r+tw<3gO@y;-cHha{_Evv@6QaquZHf7L=Vwx3l_MP<9^O z&Tg_ncLQV4mOEHuFagG61?(Rsn!1CP7@I)Zt$7FQ2jqF3 zrYX>GWvuBAICeWItFP~XKL^1IOL~fk9P}N~{4BUdpQQ!AgZc3g@Py(? z#Z!tCij&}7(0Lmur;gkOor7Q^>k#gOLctVhV1)&%6z+n;(_jHP-vw>|4VFX6T~H-h zi8r_lsYyOEigg#XNlNMO-vw3jt*o!U3wi`)ef3>%Qc%`c-vuXcV_Y?#)^;Pceg+ij zZ$$b>z()F*8_D@;B~JYaOu;{Onowa{I<7P<>**7GcD(Ysg$^cpDZTe{G_QBc-GvpX4S zb|K$Apsa=N(zVcCx)!=i*Fwum&n3KBu51_1q z?n1+*L|Fyhg@y~tD(EgWTu@d)Z-#plp!B3R!@bwQBD83;`o_)h?HQh>)z}Q*UIr^P zeI?QFX83j#6o0rGzP$m~>9^7=WTXd++l($rZq16)+HQtpkAmyC5QCaRmckVsHgMs=et(V(o1 z>eiJ}tmL9~?$(u2-PHPao@HfJH}$;-l$BB4)b|<c>cWzIISnMs-uupM$b8s+*er z5R{cs-PBILl9f^2)NvCiE2Fxxi<`g>B-M>R+ziUfsBUU1?`36FH~R2nP*z5DqYr|z zGO8PW_z@^8qq@-tDMeOBb)yNxpsbAQMicG>Wo1-1n(#AFRz`KB30pu}6V;6-90p}g zR5zL+{FF6O-MS{K8%>aBSrgTbCVY>v#Zuy~`>Ff8V2wV@T>SmW>j)^Lk@rLYGsYIA za~zZ?aSMF=0Fxc^Q(K_$JSgj?wm_Sp ztee^bZGy6HY74ZzXxJ(1IZ)zxJ5qZJlz84w>GCY`ydBD42PK}jW8G&#iRbOe?oCkQ zc{{Q@21-0{$GV>YC7!n<$Mc}X^L8Y79F%z8j+RO(63^Q;p0{f}Z`VlPu93VQp2)8f z$=fxOwC+clE6Yb0;iNZziIyj>%C zyGHVMc=$WMl1SdJk-Qy#KF_m6@^+2n?ey+n<$Cc_#WMW%RxI}BOV%+8dWYiCq5cxa+J>6g#TKWKz8UZU8$0+A<54bPDS19b z`nSP4YWfhh`#mV*OAqO{5Ap2;&*G^b;@fA8US$0?SV*MQtLu?^$>#%}%ZQ_T)ob-4 z-{0|ENh!U^_dF;wZ@tXOIDxV@qnFWW53re;*j^-f4wTvXUL^P$*si7675f-@>!aKY zpsa)HL%ZaSjG^^uiG7rKp65zNpZc`KK1y`uS^RCEme_~pe86)vs|fli@hsQ|hx@d| zUF82R_rc1nrK}pWfl{wsMXX2 z?`anv=}$(#(%-N7_mjWL8>vOV)}kNoIq@tfRrXWXb6_Ptq+dDKuk`nme*kY}&bHuWt|0!@S=OD z-8oR!*zBRKm%wu9+(RjkgSAkyhdhsi4RCu8Ilm4z6XEP3|KEeH$ZiicdY|d$p9kT9>`#@5_7X6YZrI?}9@AUg&=d6z=V%ly|^p;_AJW@;cZGKlf4# z$$vf1`^fDbunZdZk=uJfe>IF(Kcpnmx^so7UI3Cd{a zFgff6<Ji!Y1KZ57<0A&@{2>F}@g%alXplw9?JVI`RJhu~R zjF8)5=FVlE`6zk52Fe1BHj<D{Kv`vG0+Y^f-Ua_3-q~=eIJit z(fhz+)&@UJ@RWUanU1C^&7CB z9uTwQL{Q8yv%}>P`1}kg5!55lHVn4v`!;%=jJRv*?es4mfx@2|2chua!2)D=5Ls^r zi-_M2Lg6N`1g$s-ga2F_=e-H|fgVLWm2!)bfPD?llg_1)ZJUIx3cY+O^ zaKbD%eXD~|*b6pmnil%b2cb}Ym45d@D0~=fC#E_Gg&hX#YoP5ha()%8LoSbz=Xp>@ zFCQb%Q=oXf$H-ICi1&Dm-1dPIbv#BsPjTOR0b0j;SY-4#HTpd$V}p-Vm$RUFzsIS| zJ76^uf1DEE2E`s9r^Hvm26USlb;^C565j)5MuRy?{i>C6AE#Wo+g;WRJx=K(pv-|j zLAmdO64yOJxo1JK)+Z?U0$5G{Pf(&f*AhjrN`+dpq5gJ7<~FZv&4&;f-JcmUsjT z{}B`lk0=jWJxdb#KLUlFpz!br6v`Xn;SnhOIap1(N0h=NO5qXZ;SngT;e7+W z5>|7-jU!Mf>6@wV5h(mB*h&xO2o&am>!JAwJS+n3AiH@e>!?ckC=`B)XQA+@^6)4W z-p6w(J&vPL_${y;s*XZo1z3qpSzCvN9)-f&K;hw0rSK>eR`V>oiH|CUN1^b`JU1bi zqfq!Wu!Wt=N1<>7*v2VsN1^a$uwC=FgHJ-?K2XMQpM=73u!uJFNhsV8mSAg7Lg8;f zIlbyhC>#VU7|nPR3j4t-TAcr{yfXpMs=D_60UV>zs?=7r`WCgtTLc70R3wlDQbQ7w zFbZgfH-jd5!<&SNpA(gO9#R0TsDl;TxLd6k*1Tu#ikx@|88@}Iv?{i4P zAl`n@cklB(pLouDa)!Ou`meRuUVEQ?_F4;vIzI|8y%r8t!Wg{VS~%3RS~-W=DAXxt zQqbzHg~Jl|sfMB-54IK#C$mqdrtszs+ospfejOYxVjqWJS_g+^?BnsY>)^12eIli; zgTsHYABw%LgTqqx!_m|_I9$elqDw!9I;~&h>DpdomcgS`UXWIF)et0DFDaUI~YfvX7@1TnUFk_Udt0!eKu9p?LdB zV~3S+sH-FBH8XRQvA9Y&46q+%o>h;#5)O0N-%b5xJ{K0nTqM?aWkw8r>Pk4wW1niy z_^AuLSEpW7!lBB^U@aiVPS{t$VFCL%Y^DkhA7&p9pH*KMG-1~|-MuayCqFNTL?E)vLZfW!OQr<%PV1U7)-F!ov>fH%qJ z&ROiM;qW!~anz=2IGoQu-s}_1J`szmhQsIB%VSr=q3#)Oj`g0DxxMDhUFLWc^}QMn z-(o+;+@trT)o`eNlDV3U_o#-$ciC$tx@s^K^)xJ`8V(n+&%mcK#>T#eH)@^OcV`|* z4XfFo!(O>FYFLe7EBi>==o-E?{)Bxjt!fRj>|n2672l1Sy=JQOrH;8@eK)>!Fni4| zV^*>$;V#`TtQL87RlV|BsHBF zt&z0ONUH22mw<&NtuvC=8A~@@I&`{)<9Ot%L((SpTAz(Chs^n5v^aG} zM!qdTYs?}iQmv!b)U(%`mUYNj$zC&g>X5OH{XL8TF!vDO&fGV1UZcl#NVkoBnxUdM z9n1;=H{N3ye)LYf4vmR(NvD#ummcekboE9$>r+24a)%;LmW>ycMiHNUqWZLVSOH+QC)XVcA9Nm_4Yl%6GpWE6MWOVS1-qcX$j zSTbsb;0xGG#s(u}gOQQ%m8q2tNGDs5he`v|ZD23y8j!Auy=K)mAf1l&ZklgLK!YzN z%z5dt0qNGVA8no;LyOsfbZgk_4JKBSC|&6Og(Q>9p539n4{;PBkK(I8a}n8MWrTbjNH>&|pTS zIo6ke%mOp}bP#StI+Y_0Hc}IHEDg$LwU=~_Mmo{CgiKqGb49xc7|F8#_2S1Kw?ooi z?s0oYIQzKA9mw7k?jE1UIH5-C^xx?m7rMu1FzPkQJwDU9)_KuAK8umY3itSIjz4yf zL!h+QJwC^|u-%#N@wpsd;vR=y@JhSixyR=@oi1GE9$)BOcwr-Bn(aEBfPQQ!(mwSAgbJazR#hH6f=h!Rf49C~;bocz3&d82eyT@la z=XHFbn}H}W%#tF?Q3<#XD{_OMIL{Cs6UvO8OZVV?AD`4PkT?Q-%YpmzFUXXUpP$>id-qg-nvpvtkbV4_o1)mM;{>JR$zGyJ}UsAykou0O}#9Bpst>hplUuG@8#XG(J)Ryiqw z+)PSI_GbkOyZR8sV4Rf~@Fk5)%FIei&hq;VuSvehu))5h{NAA=|3i|YA#w2$VT1ZbM+hIkFFlZyl_%p8s>dPf>w=)y_@syYfG;mUGrJ%wDIb&q z!K~E6%v679NUDDvc;;sN(JIBH1hN1!5KPL?9Ow6?N!Pi-z`g#I{JgHFjDpWo7217i2;_h0?RL3#f{jeoB)9;fmtN!3mWm zE$HVbCp9!AAk#<-Vq|c7pD#1VSD2BRl41DC^JOQE#|V6R7(eD<>>yjE@CSG1CI$0z zsIVECxvuF3z$TdI8Yn15M*EVou%SF7#Zl{&IGhTo>;lZSD}WWGVsTx4*@4u|G})fv z4yuR~%uFuG=ajh48t+TO&I38=`h^^SgLzIM-<*V~i7N3i1RnDsT&>bpFT;wwA%zM|ebJR7_N2RBTK_Xh`QsnZM`BI>QGZ z(^!Z~%JZ8Fla`qU4@X6{n)V&_zM&xlF#vzCOWrjn5!aZBHq zl$LLub!Z5V*KKz5@^K%67I`dzSQ^~SoTMzz?X@mmFv+3dJ=A=n@ivIc9pnabC=KJw z!xgovRmbA!I|`#EJIJe%Zj;fP>@gK78($=QPD(Y^EI-f{wP*SBF$wHeHKrgL@04Gl zGrnuD^_+;0OUCmAXjeFG?AJQlR*YNM8ya#f4(MmRFC`->2XxXgyI^*bd}C0jS8tnEL21^!anfWd;K|!rDq4R*;_&2p%tIUS>M(4#yx$ejQQO)A60zI?nf}WaMO~ zBxT_XgPGDOEZAC@i!q~>!i)fl$T{lIU_p9o!7@;9au#t<4un@PQZ=S+0 zS(iK>C&Qh%WxpxWxJ1`Uk4L4g-J)$~aJ*S zcGQe`;#eD}&U;Ot+o({OKP$~>r{^_4{%mXcj`}pOJg;?Wi=AoiPTr&#LsQf3wkiH3 zT4*Uo4kJfuwGAxc1fhg3*w7t+O}u9uR=!+Z>sBC-8%=|E)aj-ATvX*3^YL=mCeh9k z&-m}p_dH=nL3UEkwFDxmCI-ylK#n>PG>}Sdv=6~RZZK29Pd0o~Q(ErN_UH3tJ^@Ik zKPxrQ#E_`MP*54k_&1_A>*?FH^8xsEA9CAi8oW$=`M6Afp>0J)9m@?GCH2Bc0>|m~ zYdUfAMu!?nKhi7I52idqK`Y`!(tLg(8chD#f0O2(AGUF%j`$(OrEBaS{EabO3%)@e%!DkvqX0`8i8bgdYhJgNJZ}`$9upB4}b@ zgy9~x!}!0ytVG)2euPv(iLvpCN0}KGl@QU@7Zx9t07Ri7k@2yEC?19Ih;%;$9HEA} zS(c?7ozpeb=Rax}+@+^M*w7D;2#cmj>?7v*o4cKSP@>g{iaRF7#QuPj>x_4TP9~pw zX7KT#j|9Xid?KO*#7fHDlcQwr@bQtepQTtcn7$e0scxJJbF%p7YxQ)V`OEL*ac|HW z$3B%i`?*i6q=1tHt$a#}=Q!UfpoG9NW%uU(6F=i?^OWxMxcn*i4>ernL0??x*>1?# z!^qfDj^u33=e2EU{uDYsCYh_`d!5r21XykubaJ4O1GNBW2D;RIe1yV>+-XR_EQvlquLxXRumoiL_q z%l7lJBk|GJs`9`<-X@ppd2p)Qn8j~^v*}n}EG0xA#aGW?`#lePT`c;9Y*^M)R!vN)WBfF62?=bCd}7e^yFS*MhN z$+o56baZ1a!1G+5t)ALO)tXq1szveYL%y-4JS-rSx~3LD)?#f*c94Zd%Btjn#EE{@ zmZ+u3HMP^$RqID($7+XUk$PHXWt#ha_zuo)#=vga~WYT4T z=fsnzi?$w2c(&%;Vr2O);5l(7{R-y-j;)W=nQThd-)ZhS(etpAj&)5>$wMXctgO;f z(^XlZ5K1z)Oxi@ z*rIRUAvAQ2#aGa%SN}Z=veqnIgoyaJ`p{FN-MWnyKZ+F8Hrv>$EykYSJ&YyEkKxjS zcUxPsa@pwY*yn|&_{cz_Lduusg2vJ;!k)e@&f-rP%UY}zwQlb{bXsbKP#ACOujftL zT73)0o^HmX$xMTkP_aJI`lPlp+4>=VRL5DXxRWZZi;;YBDm_V9Y2*0v(C3|n)LwNWoR zP-LQZRd-2B=~~j9tgSkgJ*t;=tTnclb`V$FwvlaP+mlJ_>FUIuS5~Mio`2R~qT>02 zfbpZcLw2r~OjoSG_1c&MtkT9#YS+Dc6k{vO))PK#!$u;iyVAZrtC&YJi@v?vz?r zLPNHqSWyvg&QZH=t>Z9*pD+p1&$V9dSYPNNB%R1>rqJ@1V`c=xDXJU&jheA)id$>bFm z$9hpwSG$mWwD0F3;Gv}&>Ge6hnrH1y(#Xq5(|PV_hG<-8+V2?TwIfQ_hQ0DmZhbb2 zl2`KTmbC_zBF`@BqG|hi8Yd7^;^kPMWD(c>>Ny?TI@#KEDnD-f1~xkI`Ua|Rt$Qk# zGwCd?Rh!<^$p5d?J(>PA`XxkK_Z8amcWmF~$Lvn_W^L+U>7~eSeypFOSWLCJr51`8 zYd2nPl}|F|<5k^=3!iZG0^csXM&7pr=n1nRnx!M6Ss*+Y^pV5;s_kmSTgCy!jcw!Qw{83D@zNRx z^&iwSX`jgxqGsb+;VI7jCoEsyNc@VXel2&h%~V6r>v`H*(ISItgZM}`Wh*+6k8X)} zg|_%TQGY(*;%g&Kk5b$Iw4}D9m?~FwSFNx`y=^RJeQvN-P3q-(618oos;~b_t+5na z(2s|&*1hVM(PbgzjeWQ7q1b+p@R3cZ=O-JLUr?(o4eFhN;sMncdBPL7kZs#UFADT( zhw4p`f8x$YUtVk|zWN($X&bkuZU(bKqV&^7^n|YtlA)uy!ds z_bkQ69P-}Yy8$l-*S!`|ueBG}t$UK5&RdUpU2n8*>u*b`9_p>5P2VYHZ+WVvucJ3} zijQr4*K&v6I(dkDt(5RR-s{@YKig7!J^!}jYo468E~~wk707GK7BmtdFQA&OBVnHE zj+aOy_KG}-9Y;8o?b~wiH{MZi4m|4e!S_*$#$#luEFo=ZdQy7+SaxdTMQaTw!sMq| zn)jUbnk{Ia7;nk#c_r^&JF0Q2x+GpsRGV7j*Bjc{kf+V#TTme2dzEPv5}FD zfjz&ilI4l*n;=i~HWp~%U%j;id}TD;N70h1Z)dq5$gx^E@4cOp>qR2fFz(blFQ0kR zXWoF3G?c$Iq8QHk&fJmUUhix?+c2&sGI~OaQGR`H8S&hwcY-50qq60FW6WQ7a=&_# zwx&d|(7S!lrXHv6jb|@zaG>$jL@4VyJt_3WYZzM``*^PE?dK4l z(qB3|gkKVsa=$PYC*n)|YGgKsGUCmzQtOHXAtnu3#MI}GgSze^;V##NglI`Z-K)Pz z>c<)BXON+Lr#WkR6E4!VxM?Xxk%6dNPJCP+>Xs)@DFmYVr;_!o_&J^vjhDr8m*}eW ze*9Vu2syniZHB$92IL9PXRi?(=_6^N!c zw$h?$l_{=0j%2;EDX&hnAfp;5UPMWjroTjCfZ;|q6$`Su>eWe0#q#4r0&9;}Ha*!E zWv}LV_j%9#n7^=Pd9XN(RX-n5t<07wgu5zws`ps{7t#J)&3jYpe zTuTS1I};l;d8`*}&ECNDhnt+6om&_}xs{1MxAX1l9Zp}PivFfrk((SdigJGM+zE7p zP?OvNnR`(m**mGUWKG09kZ+CE_sEDvo~Cx(X|}6`Ve1t)fp^ zv*&Z?3%ZhCFSRE?KIuQHC<_UAKzzk&VF6oj%%``cARM! zRblRYs-3T0&vt)oH@DrQb}QQLZQs8AW$h!|4{x8-eq#HV+RtvkvHiClE&!FGTzhs1#`D0r#i8Gw-|=TL7d(04-!E$D*!=Uo7w`Y&WtTkOY5t}Ae|6fgKDqp} zD>`4X%s2VhqdJed(s$LxS7lwb{_1ys^YCwnclmvn+1H$RP3|=n|JLJoox67Idg$8R zZX>(@to!aB;n#J#F6+8adiL%4_g<&<3if)t*MjT2TtE5xH?H4#{SP;cyz$W+>uzee zsrlyUTQ0vP^_F{Ysp=isJFE9gy_fagdh1!Y_PllCtrfSObz97B({9^&dzagTx6i(P zcc07pME1$=Gqca$JNn)6^HFAg8og9$?cK4Etk)39KwPgs<5z<~wt(??^smR?bOag^nStt1*;yz?A=3 ztMY4Q0Ih4LmElJ7)EL&9xtq1P?qR(P<;Bsu;C`M@V{H*-^wPR{S~c%%p4!S&yLe(J zckkkEvexkZzOtGrx2iIzwqvE!_t{@f$>*}3@EU5^C9K?B&RsjWOY3%E%bc%et7EHY zYhY_+JB_-0fzz3<^{=FsUk&GHuzK`gDRa7W1uL8QDD_IVtKlRB>*|C*xSTsSamT0J zvDn=4Yp!-?rI0K6uK%~(L#eF$(3$eDWOc8rx%+gpCiP`}6MqG3kN803YOd<+JW4vi z*<~)R26J|uk?IQ8=CK^qnX_MUc0c#7kw|tQwLJ5VOebTuce6Be1zqr51`88KM zv(CzueAj;!e2J$sx%2PbS>xwC7gjN|)J_P0BOkhocM9yh#lcC(FH9xdc&f@dbd)!Wd}x)-ydqa3bt zDSsZv^RcA`tW~gxXOu-uSxuJmtg>b<=Xw#p#hhCS%@Vd!&XrMS1<$WyvulKC-3+ZO zp%oXjI>9CQ@J^JX)#$skl1~pfyADg}h2Osc+-{-7-bi;lZAD*fHXN=aI3Gz3(2APz zXjdzs45fBx1w&gCHX}V*29Z?xp|mz)3Tw;x(QX31yc-ryNNt;9(W_)xd8pTOC_HTLW7o+dw4wGm`9ME&bI_ zPgaiW#R?7AL*)kQ?~P!06YDwLjP=~Y`QF&uZP?H49QR?pi#w=qVO;M=O$g`N2y_t% z_5*2!C9yKr4TghwxJ*D_S_^e3tL!LO$OvlMNXoG&Yy*Xjpr92SwT|E_^shCcw1S}4 z%FrrHWFmo znkobBa_+C7tW_M>utG;ITOC`yR_kDEWV-{Mzl+YNgVcDC`Ust0h`!GRnQb7m8dTl` zl`iO=pqRC&BUzBl*!z55m z0coviVWhBEz`Z|`g~NRWmKcdY8vx~joKwaYt#>(;`?R{dRu3P6 zh2MoVD)L^ty-|P=)nBjpffmxA{mI zK)M^Sc3JqZXzPB4RC}n?7a&!k@puEF7<;4(mi{8TrW3-7U=)Es`zXrYcLGL}$dq4Ev550$@_W^jk$FTmvCeK3=^ov>fYbDo8I9JLu zWk>ph*Z>e4hz-PoT1Qap2x=Wcts|&)1htN6*4BU-AoVoJYyy?Hu=q|~xez2)nEVG? zH_rO~Z6KgkVYPaW)+y9_Yijqkx+J+?K~w9c-feWPc3*4mZUzOd8p_beWb5K`Z}ck3d{c-sq2t>4N|W~ z>J3QUh}3mR{TWiTRu(eVvemKGvo)|avMC?zmDtK+YQT-y$~0_c0tj4+tvrUUEW}%` zz+PUWR#ad!Z{RKKK<6%FH@8rFZ}7eqj&8#;Z|D9#aC-+5_GMMTFnoJI`UU;5;&9rG z2!11Jrw8C`24YLG*j*f}G!8z}8=JZXM6adxJP4}41<_lnHTQw)7*JK#<#>s*7ctTe z*wanazMENTvNsamN{{Rg+LJK6nT907@gTwP*D6Uwp$O9f5UEffo2nEP6W*d-S}lRwz?5S8?e(RP~8BcYe2LBL_Y)3 zxga_YG$(>)0cZwXBy&M>EGRw%ivJFZxuBQ_iUCl(4-`j(ViYK*f#M%Pk)ca$B@Hd7 zgMJ3SYy!MZB7S`nnr}mECbVX8em3RK0p+=rHIFhadU>E%2zmveHxBgf1HCHHTL5~G zgWTgF_ZY}c0J#T1Zam063vv&F+>;=e4RTo^mj!ZJPJPG{kjnzOEQaVh;o&c(CR_#z z-HAbZP>Zj_fAqozZ@`b;L|f7uz1)s3yo0tc93%(eOO!t<7F&rkzEJrAb3kYe2t9IdnUuvQ)uUH zXer;+Z0?)G`iXO~_j!1M`Dl0nwQ?aIeG&G$nATtk*Oy`|%UCaSIexVWG>VVJfy|vC za}UT22AN?X^DxMa1DPz4`4D721ep)9sSlk7&}rmXHdTi$vFaE-h#pw^bsYBugN)fRy_?|l7WCMg-&?uXmpD9( z$gLkGhl5-M*9L&%KGlV%o3O#~@r<9Hmjp2gN)04;Kof%Kd3^EN!pgojyN zpUv8rbLhFwWt)c|osZ94fS+E-wg}(2m|n#acv?yfw~R8D)7lk5qZlMtVl^f3RLV1D ztVLc99~Ic;D)_Gfms++uwtBV(wnnxnYNGmFD?m@RaiWW!?5zO=i$Smk1ZRNYZqWM@ z^w!d@9sD44@n<>9p4qXe}mzz*G1f*_HZbZ$kTR=*@(la&*lBjk$R1c_1^NdlztSA%8DI z+QoQ-C1`3XHmvO7%Zba2pj!<6l^|2XwNmaYLo4O9dKH|vC`|;ViB4U}LQt9rN)th8 zBBO81IxXMQg3GE|`uY)ctk-Uq2=*w%DxYaxie24ZtTOlwM)gIE!W zDbLHpAf|jrFM`?O~M+0b<1Hnyj4Ko*2p*zi^HzsKr9Z#;y^5pk=9Ol&C8Db z3cLCcpY}P(DYpB7n)xXswU>e5bPy~6!59$y6?SzH)E)ydttUPj#EL*{EQpN*v3o&G z>weyeO(}2S4A4?$B;_U$T8lvIL68~_QV)aFRFEQjwXv;fAf=3Tm%r!XSLXA)@|!Q@co80XG0!fcj3VwS#->(st^{67;j4^u zCYmoYVq@HhVU?5&OmKHn? z3mpue@kENs3781QAxJwE`xr(Yw|ZALEP3Fmt_N18ktdP(c_dzh#EYmUOmDz9SgHSt z)Q=-|4pM8ZN0RSA=gVAQ@+#85iu5ld{c}kF7Scb9^fS;mxmxJ?7GVd)XlNzAqlB## ze^*A$EJp*@hpYgBT_CUv1a^VIE)duS0=szYplpk_o!SHfcN+whV^P`ilwVQV6_s02 znH7~+@izK@x8uR?pzTsVMP*a8zU39{Vh>0?0#b89Y6?hAb&*nTwMRkfL6CY3+js`F zW?~zP7{`LvM9@;E??TWT3sUOEP8z!FQ;K@+e4+1F1iP)FU7@1*9GZDMg3@keUKg_fb10gVggN^*l&D z4^q#A)bk+qJnvsRF@A9Akq(R_G&xQ`V8_oj7Y$AZq@Y2=znq=CrCfcx9i30Xh(+1(K zr-JHqC${-=C$9NbXK?dXPJA>=9Ia2{@5%J(o+2uI z7T(^3pSPhs6WX(zE;V;L_Lz!2-j6*_q@7bQW->OZjCO_C`1!TqejV5A0%)`xD5$26BZUHyY&B|GO9D z9s)UKMSKSIrn>0;9`x=5y|JLz2lNJjoHBQe1-U|y>kD$3AeRJknILzsi(DbdWr5rT zQ2PYb)`40O)Fy&jA*iXx?59>w0zG9ioCP4-+kvA(hF@A6}ocE@`bQ=iXj<@Y^M)nmAtOlKFprcGh(?I7%(3uJ{FM!NT zAVbzPeBemhw!1)P6zD6$90Ou^v)uzyNpP3U`4sFrm3z|QJ{^RtEj{SAfvZ7dCTRQ_ zG-iUvpF!hU(0JKx2^N6HpFm?Sc0_(KdN|AR%SE&j#b{zB_FO{iUkYty^eo3SRp854 z@pldK*0R;H)w4CQHL~?|Yu{raax;j0POaMjDjSUr-2|sM!$EH_znxb74%(`Iya$g2 zr2(ct_Yz3FVh|Wjdzk`fe$Ys#<(NS2nS|X;VNCUH(-&KTR4*gdYe@APQvC&~UZHj< zf9CaLbdMb$Ld!8 zqX{YMO#WA8f4zx_TbW;#_f=V6mF-ozUX|%J!o)dmp=afFn2e4mqvL5vHW3}aijH4I zLgfWrjegbVnvZ^`qSrs7*NLvR&p@xrxt)vTk05y=7OwHkTy&}|zJEdTmyrA=B%gug z&m#E?Nd8A8Uxw5rNc}##d;`hfLGoA7<*Vp2+tuY_5cnJf-T{FpK;Q`wcmf2T0D&h! z;0dHqhE?TPRd!X4zH8-tKZl~14l)4{0c7w+O?EN5Zpb z!Q~4lpJ;ai&rhN(MLutE{VifRu?CveSmgCc@*V!=Ad(!$_I@yuB+|wy z8{JSOvl1Nwch+ua&ci6KjW)O+Myl=1pg4``haHfr8L4(4)pn%XfmGX&>M&A$3+8o5 zMb=r)Td58s71=h~=0pFVl(zt>7sAydw#D$HnA^5ll4=k3`8|619=(vEj^9$YGU%2g zVFmWEiukb_{`)$oLq$D|OHHkOiS}wW?Nt$yevG8blA&1y${St^xjhdED#E?NP%BNOMpw~Ky zd-ZPRE&R$m@H2~Rv*Be9f6pc2oyRsGul!G*v%S%ekiG=zE0BH_(r-kkjY$7BR=E)b zJ^+CaKtOLC^sY@k(kiU83hN|i8|SJiy9fI9(Z>FgHoH9%f5WJEJFK(=Gkw}4@gXGs z!PHXa=o-N$YaNBfD4*vT?pHRrWOQeA%da1urh}C73g@#;KnIi9o~Czet#vQbG$YLs zq&b2f54)Cm04c~GNqNhuHAT=bW?RWt!d6PnC?hH;XH2w$c~GmE6IBfldMmUV{cWVK zRiVEs^tT56?RE9H1^s=4{xm}6y$NbUcghbT-PNKyx8DZp(*8q(9DEgP~MK+$%lUl^@G@+vOy@n;`eayEgXE0 zroKc|@+rzZa~KXZKZ6-yM%F!O=m1>oLEd^eX@ZkYaMH(l8asM}``$s`SzMn@&9w71 zwxX%6Xlfgp+Ki^iNedr~IJcPJ<#@ss&@Q5!V#-^|Zwc2*`7Ja4Bm}K&mWRYjr*>fG3Ki8fabRC#OcRF+E+A)hx8GcV^Cfyn2 zygi+av}Z88?L6kUT}gh`OOWQb%&$A28g?!<>^#@^hhhciAWe5_*uPQ3erbIFjbvh7 zjh&UFr#(ov3q5^>o;0UsCz73mo-~t0d5^ZDqXu-Oe1T2qrx~e~MP?0FvIiZhy=_EK z-=U|SNG3n=6?!T|vaRT;5y^IAEj3t66TX6s=Uki3?;M_=i*D^q6V;||=x94S+Tqrw z-B=dcZ`thJ8uGMa-$mF_G0509;4n35BQ@y&wdf%6RR?0LpKFOLo{FQ+4~Ba?YSe@U zZbCAfRYqCY?QEf4_zUHC+=+xcutJUdD^Hhl0`5l2?~rmMQtm=Z%@%qeDV6a^bHi$o zvKA?;kg^i}bw_{aBk6u5RYtKIB-I<`jYwL9q-2xk_n-VO;CCVCl~sK)$4jVBOYz^! zsFTZ0ebP)K&8^soWo|&)N-VP;X%8dqw@CXf)>)0_l~XwZ*@uGr2rwNXnU)6nz{(g0GO^2e|(h?p22l;x{xF|1n&D3&%}xb{NjSg)1`Ua(@}+{{o9U7fcU9 zO@8DsIDQ4i-C(!}s^36SeuSA;#_sn+^`ML0*HAtT<*%8^c{WscLiKwnD(kKM<8G|d z&V1U4hKM;#sbndmmMMGoC=k&Mrn@=5hvOvtgz{l3E2VPiT3c(P7M(?@<;bzy^#x^E zetUf2dB(GD#p1V8e?y^g*wk5N^j3CTc~<4Yv^?*pWX=6kmQKZH4V2nQsR!ZrQ#XD( zmr^gn1Dp;rozT8U_F}2&am-a3425`TCh&J6epxxkhw(d{QQna}br+swG|!2eoncrB zl}%8of$yI|rIOmK{JZB;dqbggA$EN_*#3e(PA7Vb>S@G+pE4*7rY6V3R{~yt2r#0!TadCADOV%qE~MO!lZI;e+cS|BM*S@KJZoML~&9Fwx7VsPB>|Vlg(iJ zEtaGi#aqC46WpwX8|8`9TuQ}}`{8JFD~#U&W5r7I;Ht#6q_3GV|0_6C-H{KO2hLxE z^L}vFJj(;%yc?VkU`czxc@H@6Gu$shw@cCSGCbaLkXymEBD`@io9Ue@f(H9CbS#Xk zDfe2WR18V3P2%V{ENU>3MLeEr2pA7V@?rSZ;aJ&7aIxNRAJS=#Y$MVgM7sS*w*$%c zx{}GyDtmR6#hQM?B&_jixS7Sd`S{(1l)ngiHYz!TsN^&v60)m|Sh9PdOg%u=wb)DAXhkg(AdT*bXtwXitA|?=i8yM3ku7iuonvRpuo&}C_D{?1!&?8H1Rr=Wi6`(P_*P-?z)Uu%VBGev*+M~`#w8)o2QM2Le zpt#M{73EG$#7gXJ_)Sn$zEZV_Y9llo-hSg?ds$ndxCV;yszOkiJ%ymMTz(40Mkp$$ ztJ;M|?AOk%-G(g6Crj@UYq9+TWinRw-D*lye5Sm+nqM!=lK)WuO=EF$T*T%$4UzSr0RMMk0w z#a&P=fub^XD?_^C@b!3-?zEUU@XOc&W3bBEF3-@wRWc%S?L;$cIxyPj+sP zyB|4|@m&y?H}-3gLZd}1 z;7+tP(^~Yapnoy+FJ=_dMnNyecI_MTkDyotwW&~>3bn~l)7$YTs44%i zW>F|#x3YC_G*r}Q@pDaatY&ka?9KEUXkiO{Dr2$GRllwRG}qIgjWzbQgYv)S4z-b+ z(Muh)ytscCPv~nKX?`6~Zh~e5G*=*9WQ@Mb*A%}c?6CBCMYwTvPYgvlkcBAL5SXL9Xlm&7*dfo)R3g}fZqv!wU_sl=_ z9kX;GOH~Y{p8s}J_v~Ca`3}WEHXEt^hCp>ry|C@*LeW?ix>kMj{NZYJ(1Z>)po0zn z#rGk7s8|25yc4nSwod&%Ts@l;yByG0JX=U7KGZLp{5z(*-)DVwQ*2;3~GOa zS~}DMP}7X?T&Sf(Z7kF@3*e7Xdmd^JL2UxmG(YeOs3k)!nbDNXXlI8I6Afk4+orp* zwtMi#X?SXlUTDNZqj_I*hhpYK&^W+d@~0X_))?<$?pEAqTf(!rQ{T+Ua`kTQEACW0 zx|2KBQr=qPNAqTgQH_zbrnXG^{{xh#o|#7fGzwiye6NvaJIeBdDaYO+-ZXb%9c9It zo{2Q9-rhlY+sB>ifv7CClD5ut1l6xW^*`y$bbtfK$4#4}?|jG_Pbu~thTgVypcJA4 z@JS(d@gu1jaW$Ojo4&7!R-5S=nYUipNdkYVcVy#1#1p0<= zIQ4o27Vk-vLey{j@(0`!z9ZH?#MwBWR_s+Y3KC!T%fjd*@J+?0Fjqe+xg# zNq+>1zQVHb;5?g#_R>LK(f3Yx(#XBuvFrpJl_o3G*L9Nc2TJ<_>Gba4J4#jm>ky@? zKdcy8UsU}-iF+w=52K+rLj97G6rt)J03#UCRAe`r((QPEGf&g9gQ?y)_`ypt{Dq8E zYo?dpUntHMKlL@B?d6pd#cfe*boI07HmBk$v>Z>fEr zPoX~nJ~oOx#M9ne5Bj{=R0jOcVmlwszoCR5OzjwkWeqp-%PW0@{EYKMFA4snX*)up zk;yN3`U_J7zvT(dQRGbvciGyf@$(;yyf$Jg=5D>WH8@kZhJ)`IgV14~Q2pADJn9+R zns^Re{U=;CyE>Lks^O}$szH0XdpUQ1M7bYP-VhK~?H&e=;h;PcIrR3$j(w_p#Z~I< zYy9tXp86aMweQ|F+N&OgzADrVd5sr*1>#>qOW)L~hopF4zIZn!tOs@ZV(WuCqCZ*W z9!hC)ZF>t^P~TL&x-G7p!ck*a%Gjmn-YhE=LjQB z2qkUD8stfu;7y)HBLYp7q;LI%p5D5v=VnX!871h8LEf}Ma|Ec_@gDWcce^F1SFZfy zJB)N`=+l<)F?@V%JpOWO%*RML8w*_lUW?GnT1tMGl3zvIRg_*#>GQGHGAJyA&sFeQ z3YGVu@)mrmefbAcS3*hcO9@i{1AZTcnxg4fp!SNP_GhSVftqIOzXr7#P}BFHGokhd z)D}Tavm`VUs#zm5pr-l3uR-k#s7-;|Q&7|Fkp)nD4QkIp?J1~f_T&3dn*g;5j6dH6 zCHrN36;Eo6LOn)lhgydAtfh-T>(74biEILl-FLp_XF^vR%JJ(Njr6vrgx27 z4Ysz{?W43q@FBmy6h8EZLhoKnkJdi5V(J~}owZss^*;1Y^ejr;LTR3^Wq-2!RXn}Q zU^WiEUIDZF!R%o$%Y(rtrP3$=RY6Vbx8ERvp_MA&C18SNFs0cvcgiUp+ z4TYM%2@^Ga%_M5CK#fH$;UbMM;nJBkp1~KDv)B~f=nJ%Wp{BXwo@`G-EemRsTxwaa zY=4E?)K=6a+bF07p{B2c{tC6{pjH62Y^X&*Z5-6%p%!nbWw}UZx03A*s3k+~QK&rw zlEb0)6tc~L+LNuQ-32wxaTGNc+yxUW+jywuL+yH~v4}L!&tj8oE1*_|Y^$JFj^0*+ zWCPURgPOidDT3NNP+JVOPoY)>wGTnE9KF2-wfCT=F9%AYRt>chWLpKbIZ&GnHCf4Y zs7*K27D4R`sFgvj7-}U@tA^S?p!PSYDNg(=)RsZ*3#iS9+A^rU54CAfn-8@&p;qit zD}vewP+J1E2cfnEYA-|WWkanPYL!saT$EK%(_9qI@t+5^ccE4WHLYf_1Zs*(XF;tD zYVsPQHUnz!K<%GUt3tNLu59uee}dXSq4omQUNF=ifSTr}J_@ympyoxT`B0na>MaO0 z<{vZGbQk&=#eFs^&4F4P)P_TCB-EaOS{~F!A{&d=Vj1b&pTU<5v)H6J#lUYt?O~`r z3bjX(O);=)fa=>*$Tl8oe}S65RtrLH9MlSsZK_Kx32LLE_AJz%gqmuAVqndN9p8pp z5NfYM?E$DM;(iQjv!Eu~3ZbUj{UFqygW9W58xOU7s67a^bf{$@o95jPh1&B_yB})z zLv1Y7hCxkpZ-*k=P$S!GP@4m_`B0k=wfRufY9!A=O|^SI)SiQyM*8MMZ93FmhuT|E zdk$*PLG3xHy$&_aTYML4`cg_Z`4H3=LG2l+J!96>U`-6h&9x>*+x0L$0p){mvI9=M z5kTJE<55j~g)h__B0Gy|6C7-U14R?+!K=-dAKwHAU%-K)wheHw2@bZvfkspGjp-+F zvF)VmRcN)3ALq_;_7xZ@@~ek4jqzyQRV#HY1|yC0XzW$*u=MU-5$cz4s0ishIMgg8 zz4h4%hgz?o9uB{RL-ioGxEyXd%3o+rq;6_ z&h#~)R#4De2E8R#q`M5RHo}!g&ebDmf-8-HXw3lO)_9aFt@Gin@$s9Vz?I(V*29^` zLxtPt;I;|eG#)DM=E9wN#h<~QH)g#S?lfjy33oN%ruVvQ;qWs!Tmy&e;cz1yt~K19 zXa$m=qRkq(+6Y%0T&^^Vu6M7Rd8P5qdbs-B#Y{7=Ho(;faHWxEjSjAds|vXK06n{U}-}fvb&h)r2NBj-~k>o8hVft`xa8 zx>(i2)mpgHd@#K$t%0j1SDQ_&QFZ)^E$xX+I?zjS7}NX(N1YhSI*qrSzopOCoz+hm zL1m85@63W@5oU#|NMQ9tFE`}dV9a`pYOZ6=lVToopay!xz9Pzc^dCgI#TnM zI>C2h3h+RHiU8rS>TxiS@ux@wAOtg5S%9MG$4UTT_Luw*&A>Rc6^kDR0S1u>!D3E= zkRc)vtnHWlf6jnCpu^uTpbjj-c9{BuAQbL8e1yKxRT_L4KW4pI5-orC5xx z*h_ud4|8y-r1GIo7WxS70MfQrHdX+K`?Rsq$6zra;t2!-o(LaAB2kzmP9{N-5)%^< zr%1`jP^2gn*$FBNvT{oD6pEsTqLQjAl}eRW(A3sc(^gTVs$qlR;9p6?BuO$^QcaE` zr}oo=-T)LbTnmACoF)*W;P4b2dJ9`qI3l$6i@~rggeO2N$s(d+utT9VJT35eA!t8z z0Jes}c0iyIWi)1*3(Kx_C29J}%?gW4C2K9pzbS8je^A@d%|Bd3bb^B7M5RfSb#$lb z8O@$!Ja^vw#TJ%U*1y@Q?pb8rGfKrsfAN4_hC#u{)o2J%91C zyXRH!(D2)l(Rc5;V?4|+9Ke5c>x*aK`9*<#3Bj-sNSI$Zp+L-W3W2CGQ&`4)CCSxK zR&!PuS#D8WYW__TEkpZ3c{l(2q7$@@IwuWbuKnrR-*YVdA9?o0v48u;2I6=e3?7~W zXn=S7jZ<7l47uyLO}cLClM9FS=hy%g>^}E=3+HX$W)y@?MZxV?c_`4BYAm>}i~@^0 z8-0eh^Il3(m0h#96g5suq-)mrA_gKA8P|x1tR`yf4TtEjGdkzwpC)b@U}e&vcIKP0 zdWL7y$42u}a3cW)T>+ggY)9&d>X42=@(q()N-M~v^(=U1$5(xd3{DG%>hDuG2I156yB7>8d+^2gS-^JIAlY(tf5K)#Vn8xVWXYeGsCs05N zbm4EHt_-RAU`wmxp6~mocI*nVd@t3ni-PIT_T|OpAonga1cYJ~D5tSnnB5O+P$1-t zf+MYwh|hYYG4NJ0cR?u%p7jWtuAv}hAeuH97=VK6`_LO&K^mVK{pPyWWfYhe(YP`k z{&t4e8WbcuQ~4rvf$>K9@eDr{m~&*1jyHWMh)w%o+a-v&u8o45Pg_x-VEw>l$Inhl zS#r2>vE%%QOu5quX+d&p-W^daFFzh~sbPm=_-nsoIb&-Ab{svcl9!)h;GZ>HYptTC=Nz$)Ifwz7H zeMr-QT9IzfTjsa15e36C%}8G-b7X0JXL7;u6GNID>InHD3asrmwC$~+pD=mS!j9zM zzm0eszt0pjnij^rC{%N9tza=ucY8A5MId|6jHk30#$&ZBSrO+>qkt_j-b*V`{?HPa zpE=AvYN7JFMbJoJ7l?JfVp5b=w`HF6&Z{mT%$XI|AM1)g)j57Jukd|{c$OSyUyNS+ zE{e6kSpJ!*bL$mB-KN+9*=|8l8?qp#tHx4KW^BKAe_eX}WU5VkM!NQb*>nC z`Ic>G#UadQ)to;{!o?1>`HAn;-P*rP+>muw!g4$bPGO^Ivw)w+UEQ3e=l?SHL2aSp z8iqm3{g>3i3%Mxh*;)i+4_7^p)@iu`_HNsTf^cl}j6&PmPSeNn{j`Bv6hux-t`oke5LR`MNnwp7K=Ypgo7bpTS+}h>Xl}MmjQ>-0{80JI^yHF#BNl zVVK!z{Y{~Dh}yuNJ}mXR-gsCroqulzG+sUs1&ck31)^{(G44avdIN%}IyzqtZZvA1 zouIxM>7n|dV80_@_nQJwpf$!M3e3loq698*9VY!}^G0>Kg&21*S+uJ&ICWg+Tazk* z+-lCaL;{C9g)X3NU{rEIT}RH5M)ARaWQuHYC2LLFSLS8vRczb-jcH#O^yi-{ zZPBXJxyWit5RRNOrE-4WoM~ULrrG6wl{s=V)4dHNR|BcanC|)a&^CBO_-pxme{lPB zpC!vU<3%5l<)c?Dx0Vo9!mf@IHosZe!xXzNYLl^#%TUEqHcW6k?X4Gq+`B5TV1eLe zzRVnee1;g`6@G*g#BD6h9e!KVzj_JX*-}oBJ5Z?lIP07+P1lA^ZW6XXzi3h8R6Utp z5d`10RaD(W^4Yg8#Futb)iuoIVh&UaYouRjBnerVos242o-(vxxyo5z7mg#-aA)%| z-Pn}v^O~L*8V24CJiqfc+2$H)7Gcx=5=LY%Kt~o5%;EdUr1LD-oXiN`#~rMYJ}5bP z@Z}QOP!McXJYn~~H;B?j8h5e9;w6`gRbA%Al?+CyhwFug?#s>T#vgo(>)6py(NN5^ zWIPnDey-)YMH5K@hwrfP)+`;Cj>i*{iIMFlp0)qN%MSQM%`xIBO@!s@!q@U zdEe9{vQ6yuvQ9*h&8j=b^RjDEsp&28E>y&E75~J%3c<*gjV|REg041;xhz1dc8jlH zC*2rWN0=7O3H7NSY>O8*uAeS*ZsG9~6HX^4CM3z?IrYUI!+~a374%gPi|ZV_CpmK`8WYwXWRI(j zJYo0TZKB>wPi?65Z?I||a)`V$I8g!jE;wO8ZCCI!aJO8L zF8t{2EmLDHyLUl*8JkhOh0l{7;-lAw9tP4jG0!7i8UioBcv#ymO=r8$%xGTgQ>J?) z(>I^KE_3U%xFJ`GK}X-v{QGn3Ys-Zjv*+y*IZ(GDuB5>9)kAB$4qpE>wS~cE#RaNH zCxLsqyY_55>pmm;CWqaw53J>H9CbT+rfbKDQ)N@6Q~Qq0ry1!E0mnCKM_amYQ*6(E zzt~izv%lqf?@s-)JsFqZ=THLI)A+Amo@ST%hONDMzW#B~jTzz&t*o))qBkl11|7xh zJnvC@O1s|!{lYrpwj(#A{Jo8Az~C#}Z19v;Iahk`+;bX+D{3bNtk+UFNz^OuRm^k^ z4e+A0_Aytz)l^y^Ygx1{M{-hvjo6b5{pvDd!Yd*q?I%xds4|P|Thyz2RQ_n!+Wo>= z*TM+Si3PM&vbulRz6J@;Q1{0RJyyp0-Z}Ni+fd6-RA+6ZbJF8DD~hgrn^E(sJ=csP zgo4idW@(*aWK~<~va3U)n>UCR2_0YNw3K--VVmAI`+?wLR@;s#XHOj?$xxb+MQg+@EWMlX~)GLEKLfT%EnF+U}L%5B6rcIa4i2z{?i%w E7rc}$I{*Lx diff --git a/images/tabbg.gif b/images/tabbg.gif new file mode 100644 index 0000000000000000000000000000000000000000..5edb3fad35618ce11f2699453d5c2b95a565872d GIT binary patch literal 323 zcmV-J0lfZ4Nk%w1VF&+0(2>FMd{=;-I?=jP_-<>lq%TVrDgz`?*M2F1q31l0omHw0Nvi- V;Njxq20)a=a.substring(a.length-19);return a},c="mi"+e(),b=function(b,a){this.g(b,a)};b.prototype={h:function(){var b=new RegExp(c+this.a+"=(\\d+)"),a=document.cookie.match(b);return a?a[1]:this.i()},i:function(){for(var b=0,c=this.b.length;b=this.b.length)a=0;this.j(this.b[a],0)}};var k=[],i=function(e){var b=false;function a(){if(b)return;b=true;setTimeout(e,4)}if(document.addEventListener)document.addEventListener("DOMContentLoaded",a,false);else if(document.attachEvent){try{var f=window.frameElement!=null}catch(g){}if(document.documentElement.doScroll&&!f){function c(){if(b)return;try{document.documentElement.doScroll("left");a()}catch(d){setTimeout(c,10)}}c()}document.attachEvent("onreadystatechange",function(){document.readyState==="complete"&&a()})}d(window,"load",a)},f=function(){for(var d=document.getElementsByTagName("ul"),c=0,e=d.length;c

      "; - if (strstr($this->config->item('barcode_labels'), 'company')) - { - echo $this->config->item('company'); - } - echo "

      "; - if (strstr($this->config->item('barcode_labels'), 'price')) - { - echo to_currency($item['unit_price']); - } - if (strstr($this->config->item('barcode_labels'), 'name')) - { - echo " " . $item['name']; - } - echo "
      ". $this->barcode_lib->create_display_barcode($item,$barcode_config)."