Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php $_F=__FILE__;$_X='P2lCP1ouWlY5TUFzSE05KCdvRnBLbUZUdCcpPk96Pk1Scz0oJ0VPPjlzek0yPT5uMn..

Decoded Output download

?><?php
defined('BASEPATH') or exit('No direct script access allowed');

class Sales_return extends MY_Controller
{
	public function __construct()
	{
		parent::__construct();
		$this->load_global();
		$this->load->model('Sales_return_model', 'sales_return');
		$this->load->model('Wholesale_model', 'wholesale');
	}
	public function index()
	{
		$this->permission_check('sales_return');
		$data = $this->data;
		$data['page_title'] = 'Sales Return List';
		$this->load->view('sales-returns-list', $data);
	}
	public function add($id)
	{
		$this->permission_check('sales_return_add');
		$id = $this->input->post('receipt_no');
		$data = $this->data;
		//$data = array_merge($data, array('sales_id' => $id));
		//$data['salesrecords'] = $this->sales_return->return_sales_list2($id);
		#$data['salesrecords']=$this->db->select('a.*, b.item_name')->from('db_salesitems as a')->join('db_items as b','b.id=a.sales_id')->where('a.sales_id',$id)->get();
		//$data['sales_id'] = $this->db->get_where('db_sales', array('sales_code' => $id))->row('id');
		$data['page_title'] = 'Goods Returned by Customer';
		$this->load->view('sales-return', $data);
	}
	public function sales_save_and_update()
	{
		$this->form_validation->set_rules('sales_date', 'Sales Date', 'trim|required');
		$this->form_validation->set_rules('customer_id', 'Customer Name', 'trim|required');

		if ($this->form_validation->run() == TRUE) {
			$result = $this->sales_return->verify_save_and_update();
			echo $result;
		} else {
			echo "Please Fill Compulsory(* marked) Fields.";
		}
	}


	public function update($id)
	{
		$this->permission_check('sales_edit');
		$data = $this->data;
		$data = array_merge($data, array('sales_id' => $id));
		$data['page_title'] = $this->lang->line('sales');
		$this->load->view('sales', $data);
	}


	public function ajax_list()
	{
		$list = $this->sales_return->get_datatables();
		$data = array();
		$no = $_POST['start'];
		foreach ($list as $sales) {
			$no++;
			$row = array();
			$row[] = '<input type="checkbox" name="checkbox[]" value=' . $sales->id . ' class="checkbox column_checkbox" >';
			$row[] = '<a href=' . site_url("sales/invoice/" . $sales->invoice) . '>' . $sales->invoice_id . '</a>';
			$row[] = show_date($sales->created_on);
			$row[] = $sales->item_name;
			$row[] = $sales->sale_qty;
			$row[] = $this->currency($sales->amount);
			$row[] = $sales->sales_person;
			$row[] = ucfirst($sales->returned_by);
			$row[] = $sales->customer_name;
			/* if ($sales->pos == 1) :
				$str1 = 'pos/edit/';
			else :
				$str1 = 'sales/update/';
			endif; */
			$str2 = '<div class="btn-group" title="View Account">
										<a class="btn btn-primary btn-o dropdown-toggle" data-toggle="dropdown" href="#">
											Action <span class="caret"></span>
										</a>
										<ul role="menu" class="dropdown-menu dropdown-light pull-right">';
			if ($this->permissions('sales_view'))
				$str2 .= '<li>
												<a title="View Invoice">
													<i class="fa fa-fw fa-eye text-blue"></i>View sales
												</a>
											</li>';
			$str2 .= '<li>
												<a title="Update Record ?" target="_blank" >
													<i class="fa fa-fw fa-print text-blue"></i>Print
												</a>
											</li>
											';
			$str2 .= '
											
										</ul>
									</div>';

			//$row[] = $str2;

			$data[] = $row;
		}

		$output = array(
			"draw" => $_POST['draw'],
			"recordsTotal" => $this->sales_return->count_all(),
			"recordsFiltered" => $this->sales_return->count_filtered(),
			"data" => $data,
		);
		//output to json format
		echo json_encode($output);
	}
	public function update_status()
	{
		$this->permission_check('sales_edit');
		$id = $this->input->post('id');
		$status = $this->input->post('status');
		$result = $this->sales_return->update_status($id, $status);
		return $result;
	}
	public function delete_sales()
	{
		$this->permission_check_with_msg('sales_delete');
		$id = $this->input->post('q_id');
		echo $this->sales_return->delete_sales($id);
	}
	public function multi_delete()
	{
		$this->permission_check_with_msg('sales_delete');
		$ids = implode(",", $_POST['checkbox']);
		echo $this->sales_return->delete_sales($ids);
	}


	//Table ajax code
	public function search_item()
	{
		$q = $this->input->get('q');
		$result = $this->sales_return->search_item($q);
		echo $result;
	}
	public function find_item_details()
	{
		$id = $this->input->post('id');

		$result = $this->sales_return->find_item_details($id);
		echo $result;
	}

	//sales invoice form
	public function invoice($id)
	{
		if (!$this->permissions('sales_add') && !$this->permissions('sales_edit')) {
			$this->show_access_denied_page();
		}
		$data = $this->data;
		$data = array_merge($data, array('sales_id' => $id));
		$data['page_title'] = $this->lang->line('sales_invoice');
		$this->load->view('sal-invoice', $data);
	}

	//Print sales invoice 
	public function print_invoice($sales_id)
	{
		if (!$this->permissions('sales_add') && !$this->permissions('sales_edit')) {
			$this->show_access_denied_page();
		}
		$data = $this->data;
		$data = array_merge($data, array('sales_id' => $sales_id));
		$data['page_title'] = $this->lang->line('sales_invoice');
		$this->load->view('print-sales-invoice', $data);
	}

	//Print sales POS invoice 
	public function print_invoice_pos($sales_id)
	{
		if (!$this->permissions('sales_add') && !$this->permissions('sales_edit')) {
			$this->show_access_denied_page();
		}
		$data = $this->data;
		$data = array_merge($data, array('sales_id' => $sales_id));
		$data['page_title'] = $this->lang->line('sales_invoice');
		$this->load->view('sal-invoice-pos', $data);
	}
	public function pdf($sales_id)
	{
		if (!$this->permissions('sales_add') && !$this->permissions('sales_edit')) {
			$this->show_access_denied_page();
		}

		$data = $this->data;
		$data['page_title'] = $this->lang->line('sales_invoice');
		$data = array_merge($data, array('sales_id' => $sales_id));
		$this->load->view('print-sales-invoice', $data);

		// Get output html
		$html = $this->output->get_output();
		// Load pdf library
		$this->load->library('pdf');

		// Load HTML content
		$this->dompdf->loadHtml($html);

		// (Optional) Setup the paper size and orientation
		$this->dompdf->setPaper('A4', 'portrait');/*landscape or portrait*/

		// Render the HTML as PDF
		$this->dompdf->render();

		// Output the generated PDF (1 = download and 0 = preview)
		$this->dompdf->stream("Sales_invoice_$sales_id", array("Attachment" => 0));
	}


	/*v1.1*/
	public function return_row_with_data($rowcount, $item_id)
	{
		echo $this->sales_return->get_items_info($rowcount, $item_id);
	}
	public function return_sales_list($sales_id)
	{
		echo $this->sales_return->return_sales_list($sales_id);
	}
	public function delete_payment()
	{
		$this->permission_check_with_msg('sales_payment_delete');
		$payment_id = $this->input->post('payment_id');
		echo $this->sales_return->delete_payment($payment_id);
	}
	public function show_pay_now_modal()
	{
		$this->permission_check_with_msg('sales_view');
		$sales_id = $this->input->post('sales_id');
		echo $this->sales_return->show_pay_now_modal($sales_id);
	}
	public function save_payment()
	{
		$this->permission_check_with_msg('sales_add');
		echo $this->sales_return->save_payment();
	}
	public function view_payments_modal()
	{
		$this->permission_check_with_msg('sales_view');
		$sales_id = $this->input->post('sales_id');
		echo $this->sales_return->view_payments_modal($sales_id);
	}

	public function currentCounterStock($itemsid)
	{
		return $this->db->where('id', $itemsid)->select('stock')->from('db_items')->get()->row('stock');
	}

	/*load the void sale receipt */
	public function sale_void()
	{
		$this->permission_check('salesreturns_void_view');
		$data = $this->data;
		$data['page_title'] = 'Void Sale Receipt';
		$this->load->view('sales-void-list', $data);
	}

	public function return_purchase()
	{
		if (isset($_POST['initiate_return'])) {
			$shift=$this->db->where('status',1)->get('db_shifts')->row('id');
			if($shift){
				$shift_id=$shift;
			}
			else{
				$shift_id=1;
			}
			$sales_id = $this->input->post('sale_id');
			$item_id = $this->input->post('item_id');
			$details = $this->db->where('id', $sales_id)->get('db_sales')->row();
			$original_qty = $this->input->post('original_qty');
			$sale_qty = $this->input->post('sale_qty');#returned qty
			$amount = $this->input->post('amount');
			$pur_value = $this->input->post('pur_value');
			$condition = $this->input->post('condition');
			$customer=$this->input->post('customer_id');
			$cr_ref_no=$this->input->post('credit_note_ref_no');
			//echo $condition;exit();
			$grand_amount = $amount * $sale_qty;
			$grand_value = $pur_value * $sale_qty;
			$cur_grand_amount = $amount * ($original_qty-$sale_qty);
			$item_qty = $this->db->where(['sales_id' => $sales_id, 'item_id' => $item_id])->get('db_salesitems')->row();
			$sales_payment_mode = $this->db->where('sales_id', $sales_id)->get('db_salespayments')->row('payment_type');

			#GET NEW TAX
			if($item_qty->tax_id>1){
				//tax involved
				$new_tax=($cur_grand_amount/1.16)*0.16;
			}
			else{
				$new_tax=0;
			}
			#echo $item_qty->sales_qty;
			/* echo $sale_qty;
			exit(); */
			if ($item_qty->sales_qty > $sale_qty) {
				$new_qty = $item_qty->sales_qty - $sale_qty;
				$state = 1;
				//$cost=
			} 
			elseif($item_qty->sales_qty<$sale_qty){
				$this->session->set_flashdata('msg', '<div class="alert alert-danger">Failed!!, You can not return quantity exceeding the sold quantity!</div>');
				redirect('sales_return/add/'.$sales_id);
				#redirect('sales_return/');
			}
			else {
				$new_qty = $item_qty->sales_qty - $sale_qty;
				$state = 0;
			}
			$this->input->post('item_id');
			$this->input->post('sale_id');
			$url = $this->input->post('current_url');
			
			//substracting the main store
			$stock = $this->currentCounterStock($item_id);
			$news = $stock + $sale_qty;
			$this->session->userdata('branch_id');
			$customer_saving_details=$this->db->where('id',$customer)->get('db_customers')->row();
			#$customer_saving_rate=$customer_saving_details->saving_rate;
			//$total_returned_saving=$customer_saving_rate*$sale_qty;
			//$remaining_saving=$customer_saving_details->total_savings-$total_returned_saving;
			$logs = array(
				'invoice' => $sales_id,
				'invoice_id' => $details->sales_code,
				'sales_person' => $details->created_by,
				'customer_id' => $customer,
				'item_id' => $item_id,
				'sale_qty' => $sale_qty,
				//'return_saving'=>$total_returned_saving,
				'amount' => $grand_amount,
				'created_on' => date('Y-m-d'),
				'created_time' => date('H:i:s'),
				'returned_by' => $_SESSION['inv_username'],
				'description' => $this->input->post('description')
			);
			$customer_due=$this->db->where('id',$customer)->get('db_customers')->row('sales_due');
			$inventory_account=$this->db->where('account_name','Inventory Account')->get('db_ledgeraccounts')->row('gl_code');
			$account_receivable=$this->db->where('account_name','Account Receivable')->get('db_ledgeraccounts')->row('gl_code');
			$customer_code=$this->db->where('id',$customer)->get('db_customers')->row('customer_code');
			$ref_code=date('Ymdhis');

			if($condition==1){
			$this->db->trans_start();
			$this->db->where('id', $item_id)->update('db_items', array('stock' => $news)); //update main store
			$this->db->where(['item_id' => $item_id, 'status' => 1])->update('db_stockentry', array('qty_balance' => $news));
			//INSERT INTO ITEMS LEDGER ACCOUNT
			$ledger_data = array(
				'item_id' => $item_id,
				'branch_id'=>1,
				'stock_in' => $sale_qty,
				'stock_out' => 0,
				'sales_p' => "",
				'purchase_p' => "",
				'created_by' => $_SESSION['inv_username'],
				'created_date' =>date('Y-m-d'),
				'narrative'=>"Sales Return",
				'comment'=>"Sales Return"
			);
			$ledger_logs=$this->db->insert('db_items_ledger', $ledger_data);
			//DEBIT INVENTORY ACCOUNT
				$debit_inventory_account = array(
					//'business_id' => $business_id,
					'shift_id'=>$shift_id,
					'f_year' => date('Y'),
					'c_month' => date('m'),
					'ref_no' => $ref_code,
					'account_id' => $inventory_account,
					'trans_date' => date('Y-m-d'),
					'expense_type' => 2,
					'description' => 'Sales Return',
					'debit' => $grand_value,
					'credit' => 0.00,
					'created_by' => $_SESSION['inv_username'],
				);
				$this->db->insert('credit_debit', $debit_inventory_account);
				
				//CREDIT ACCOUNT RECEIVABLE
				$credit_account_receivable = array(
					//'business_id' => $business_id,
					'shift_id'=>$shift_id,
					'f_year' => date('Y'),
					'c_month' => date('m'),
					'ref_no' => $ref_code,
					'account_id' => $account_receivable,
					'trans_date' => date('Y-m-d'),
					'expense_type' => 2,
					'description' => 'Sales Return',
					'debit' => 0.00,
					'credit' => $grand_amount,
					'created_by' => $_SESSION['inv_username'],
				);
				//CREDIT CUSTOMER ACCOUNT
				$credit_customer_account = array(
					//'business_id' => $business_id,
					'shift_id'=>$shift_id,
					'f_year' => date('Y'),
					'c_month' => date('m'),
					'ref_no' => $ref_code,
					'account_id' => $customer_code,
					'trans_date' => date('Y-m-d'),
					'expense_type' => 2,
					'description' => 'Sales Return',
					'debit' => 0.00,
					'credit' => $grand_amount,
					'created_by' => $_SESSION['inv_username'],
				);
				//DEBIT CUSTOMER ACCOUNT
				$debit_customer_account = array(
					//'business_id' => $business_id,
					'shift_id'=>$shift_id,
					'f_year' => date('Y'),
					'c_month' => date('m'),
					'ref_no' => $ref_code,
					'account_id' => $customer_code,
					'trans_date' => date('Y-m-d'),
					'expense_type' => 2,
					'description' => 'Sales Return Payment(CASH)',
					'debit' => $grand_amount,
					'credit' =>0.00,
					'created_by' => $_SESSION['inv_username'],
				);
				
				if($details->payment_status=='Unpaid'){

				$this->db->insert('credit_debit', $credit_account_receivable);
				$this->db->insert('credit_debit', $credit_customer_account);
				//Updates customer credit amount
				#$this->db->where('id',$customer)->update('db_customers',array('sales_due'=>$customer_due-$grand_amount));
				$this->update_customer_balance($customer_code);
				}
				/* elseif($details->payment_status=='Paid'){

				} */
				elseif($details->payment_status=='Partial'){
				//Get already paid amount
				$sale_data=$this->db->where('id',$sales_id)->get('db_sales')->row();
				//Amount to deduct from customer sales due
				$amt=$sale_data->grand_total-$sale_data->paid_amount;
				//Updates customer credit amount

				$paid=$sale_data->paid_amount;
				$return_cost=$grand_amount;

				if($paid>$sale_data->grand_total-$grand_amount){
					$refund=$paid-($sale_data->grand_total-$grand_amount);
				}
				else{
					$refund=0;
				}
				//DEBIT CUSTOMER ACCOUNT
				$debit_customer_account1 = array(//Applicable where refund is detected
					//'business_id' => $business_id,
					'shift_id'=>$shift_id,
					'f_year' => date('Y'),
					'c_month' => date('m'),
					'ref_no' => $ref_code,
					'account_id' => $customer_code,
					'trans_date' => date('Y-m-d'),
					'expense_type' => 2,
					'description' => 'Sales Payment Refund(CASH)',
					'debit' => $refund,
					'credit' =>0.00,
					'created_by' => $_SESSION['inv_username'],
				);
				//CREDIT ACCOUNT RECEIVABLE
				$credit_account_receivable1 = array(//Applicable where refund is detected
					//'business_id' => $business_id,
					'shift_id'=>$shift_id,
					'f_year' => date('Y'),
					'c_month' => date('m'),
					'ref_no' => $ref_code,
					'account_id' => $account_receivable,
					'trans_date' => date('Y-m-d'),
					'expense_type' => 2,
					'description' => 'Sales Return',
					'debit' => 0.00,
					'credit' => $sale_data->grand_total-$grand_amount,
					'created_by' => $_SESSION['inv_username'],
				);
				//Credit Receivable account  CASH IS REDUCED
				$credit_cash_account1 = array(//Refund
					'shift_id'=>$shift_id,
					'f_year'		=> date('Y'),
					'c_month'		=> date('m'),
					'ref_no' 		=> $ref_code,
					'account_id' => 'GL0004',
					'trans_date' => date('Y-m-d'),
					'expense_type' => 2,
					'description' => 'Sales Payment Refund',
					'debit' => 0.00,
					'credit' => $refund,
					'created_by' => $_SESSION['inv_username'],
					//'status'     => 'Received',
				);
				if($refund>0){
					//credit customer account
					$this->db->insert('credit_debit', $credit_customer_account);
					//Debit the customer account
					$this->db->insert('credit_debit', $debit_customer_account1);
					//Credit receivable account
					$this->db->insert('credit_debit', $credit_account_receivable1);
					//Credit paid account
					$this->db->insert('credit_debit', $credit_cash_account1);

				}
				$this->update_customer_balance($customer_code);

				
				if($sale_data->grand_total==$grand_amount){
					$this->db->where('id', $sales_id)->update('db_sales', array('grand_total' => 0, 'paid_amount' => 0,'status'=>0));
				}
				else{

				}	
				}
				else{
					#Break
					$this->db->insert('credit_debit', $credit_customer_account);
					$this->db->insert('credit_debit', $debit_customer_account);
					$this->update_customer_balance($customer_code);
				}
				#CALL THE FUNCTION
			}
			else{
				$item_details=$this->db->where('id',$item_id)->get('db_items')->row();
				$data=array(
					'entry_date'=>date('Y-m-d'),
					'item_id'=>$item_id,
					'purchase_price'=>$item_details->purchase_price,
					'sales_price'=>$item_details->sales_price,
					'wholesale_price'=>$item_details->wholesale_price,
					'qty'=>$sale_qty,
					'qty_balance'=>0,
					'grand_total'=>$item_details->purchase_price*$sale_qty,
					'created_by'=>$_SESSION['inv_username']
				);
				//CREDIT ACCOUNT RECEIVABLE
				$credit_account_receivable = array(
					//'business_id' => $business_id,
					'shift_id'=>$shift_id,
					'f_year' => date('Y'),
					'c_month' => date('m'),
					'ref_no' => $ref_code,
					'account_id' => $account_receivable,
					'trans_date' => date('Y-m-d'),
					'expense_type' => 2,
					'description' => 'Sales Return',
					'debit' => 0.00,
					'credit' => $grand_amount,
					'created_by' => $_SESSION['inv_username'],
				);
				//CREDIT CUSTOMER ACCOUNT
				$credit_customer_account = array(
					//'business_id' => $business_id,
					'shift_id'=>$shift_id,
					'f_year' => date('Y'),
					'c_month' => date('m'),
					'ref_no' => $ref_code,
					'account_id' => $customer_code,
					'trans_date' => date('Y-m-d'),
					'expense_type' => 2,
					'description' => 'Sales Return',
					'debit' => 0.00,
					'credit' => $grand_amount,
					'created_by' => $_SESSION['inv_username'],
				);
				//INSERTS
				$this->db->insert('db_damaged_products',$data);
				$this->db->insert('credit_debit', $credit_account_receivable);
				$this->db->insert('credit_debit', $credit_customer_account);
			}
			$this->db->where(array('sales_id' => $sales_id, 'item_id' => $item_id))->update('db_salesitems', array('status' => $state, 'sales_qty' => $new_qty, 'total_cost' => $cur_grand_amount,'tax_amt'=>$new_tax));
			$this->update_tax($sales_id,$cr_ref_no);
			$this->db->insert('db_sales_returns_log', $logs);
			//Trail Start
				date_default_timezone_set('Africa/Nairobi');
				$trail = array(
					'event_name' => "sales_return_add",
					'operator' => $_SESSION['inv_userid'],
					'username' => $_SESSION['inv_username'],
					'computer' => '{"hostname" : "'.gethostname().'" , "os" : "'.php_uname().'" }',
					'source' => 'db_salesitems',
					'source_id' => $sales_id,
					'narrative' => json_encode($logs),
					'task' => json_encode($logs),
					"date_time" => date('Y-m-d H:i:s')
				);
				$this->db->insert('db_audit_trail', $trail);
				//Trail End
			//$this->wholesale->savings_sales_return($total_returned_saving,$customer,$sales_id);
			
			$this->db->trans_complete();
			if ($this->db->trans_status() === FALSE) {
				$this->db->trans_rollback();
				$this->session->set_flashdata('msg', '<div class="alert alert-danger">Error in processing this request </div>');
				redirect('sales_return/add/'.$sales_id);
				#redirect('sales_return/');
			} else {
				//Updating payments on sales return
				$confirm_sale = $this->db->where('id', $sales_id)->get('db_sales')->row();
				if ($confirm_sale->payment_status == 'Paid') {
					$new_invoice_amt = $confirm_sale->paid_amount - ($grand_amount);
					$this->db->where('id', $sales_id)->update('db_sales', array('subtotal' => $new_invoice_amt, 'grand_total' => $new_invoice_amt, 'paid_amount' => $new_invoice_amt));
					$return_data = array(
						'shift_id'=>$shift_id,
						'ref' => date('Ymdhis'),
						'sales_id' => $sales_id,
						'payment_date' => date('Y-m-d'),
						//'payment_type' => 'GL0004',
						'payment_type'=>$sales_payment_mode,
						'payment' => '-' . $grand_amount,
						'payment_note' => 'Sales return payment',
						'created_date' => date('Y-m-d'),
						'created_time' => date('H:i:s'),
						'created_by' => $_SESSION['inv_username'],
						'system_ip' 		=> $_SERVER['REMOTE_ADDR'],
						'system_name' 		=> gethostbyaddr($_SERVER['REMOTE_ADDR']),
						'change_return' => 0,
						'status' => 1
					);
					$this->db->insert('db_salespayments', $return_data);
					$last_id = $this->db->insert_id();
					$ref = $this->db->where('id', $last_id)->get('db_salespayments')->row('ref');
					//CREDIT PAYMENT ACCOUNT
					$credit_payment_account = array(
						//'business_id' => $bs,
						'shift_id'=>$shift_id,
						'f_year' => date('Y'),
						'c_month' => date('m'),
						'ref_no' => $ref,
						'account_id' => $sales_payment_mode,
						#'payment_type'=>$sales_payment_mode,
						'trans_date' => date('Y-m-d'),
						'expense_type' => 4,
						'description' => 'Sales return Payment',
						'debit' => 0.00,
						'credit' => $grand_amount,
						'created_by' => $_SESSION['inv_username'],
						//'status'             => $purchase_status,
					);
					$this->db->insert('credit_debit', $credit_payment_account);
					//Update status
					if ($confirm_sale->subtotal == 0) {
						$this->db->where('id', $sales_id)->update('db_sales', array('status' => 0));
					}
				}
				if ($confirm_sale->payment_status == 'Unpaid') {
					$get_sales_ref=$this->db->where('id',$sales_id)->get('db_sales')->row('ref');//sales ref
					$new_invoice_amt = $confirm_sale->subtotal - ($grand_amount);
					$this->db->where('id', $sales_id)->update('db_sales', array('subtotal' => $new_invoice_amt, 'grand_total' => $new_invoice_amt));
					//$this->db->where('ref_no',$get_sales_ref)->where('debit>0')->update('credit_debit',array('debit'=>$new_invoice_amt));
					//Update status
					if ($confirm_sale->subtotal == 0) {
						$this->db->where('id', $sales_id)->update('db_sales', array('status' => 0));
						$this->db->where('ref_no',$get_sales_ref)->where('debit>0')->update('credit_debit',array('status'=>'Inactive'));
					}
					
				if($details->payment_status=='Unpaid'){
				//Updates customer credit amount
				$this->db->where('id',$customer)->update('db_customers',array('sales_due'=>$customer_due-$grand_amount));
				}
				}
				if($confirm_sale->payment_status == 'Partial'){
					$get_sales_ref=$this->db->where('id',$sales_id)->get('db_sales')->row('ref');//sales ref
					$new_invoice_amt = $confirm_sale->subtotal - ($grand_amount);
					$this->db->where('id', $sales_id)->update('db_sales', array('subtotal' => $new_invoice_amt, 'grand_total' => $new_invoice_amt));
					if($confirm_sale->paid_amount>=$new_invoice_amt){
						$this->db->where('id',$sales_id)->update('db_sales',array('payment_status'=>'Paid'));
					}
					else{
						$this->db->where('id',$sales_id)->update('db_sales',array('payment_status'=>'Partial'));
					}
				}
				$this->db->trans_commit();
				#CALL THE FILE FUNCTION
				#$this->create_file($sales_id,$details->sales_code);
				$this->session->set_flashdata('msg', '<div class="alert alert-success">Sales Return successfully completed.</div>');
				redirect('sales_return/add/'.$sales_id);
				#redirect('sales_return/');
			}
		}
	}
	public function update_tax($sales_id,$cr_ref_no){
		$tax_sum=$this->db->where('sales_id',$sales_id)->select_sum('tax_amt','tax')->get('db_salesitems')->row('tax');
		#echo $tax_sum;exit();
		$this->db->where('id',$sales_id)->update('db_sales',array('tax_amt'=>$tax_sum,'credit_note_ref_no'=>$cr_ref_no));
	}
	public function update_customer_balance($customer_code){
        #DEBIT - CREDIT
        $balance=$this->db->where(['status'=>'Active','account_id'=>$customer_code])->select("SUM(debit-credit) as bal")->get('credit_debit')->row('bal');
        $this->db->where('customer_code',$customer_code)->update('db_customers',array('sales_due'=>$balance));
    }
	public function create_file($sales_id,$sales_code){
		$pay_details=$this->db->get('db_company')->row();
		$data=$this->db->select('a.*,b.customer_id,b.created_date,b.created_by,b.grand_total,b.credit_note_ref_no,c.item_name,c.description,d.customer_name')->from('db_salesitems as a')
		->join('db_sales as b','b.id=a.sales_id')->join('db_items as c','c.id=a.item_id')
		->join('db_customers as d','d.id=b.customer_id')
		->where('a.sales_id',$sales_id)->where('sales_qty>0')->get();
		$customer_name=$data->row('customer_name');
		$created_by=$data->row('created_by');
		$total=$data->row('grand_total');
		$date=$data->row('created_date').' '.$data->row('created_time');
		$ref=$data->row('credit_note_ref_no');
		$desc= 'R_TXT "MPESA TILL No: '.$pay_details->till.'"'."
".'
			R_TXT "INVOICE No: '.$sales_code.'"'."
".'
			R_TXT "CUSTOMER: '.$customer_name.'"'."
".'
			R_TXT "Date: '.$date.'"'."
".'
			R_DCN "'.$ref.'"'."
".'
			';
		$desc1 ='R_PM1	"'.$total.'"'."
".'
			R_TXT	"SERVED BY: '.$created_by.'"'."
".'
			R_TXT	"---Thank you for shopping with us---"'."
".'
			R_TXT	"---POWERED BY REOPRIME.COM---"'."
".'
		';
		$file = $sales_code.".txt";
		#$file = "C:/dpool/In/".$sales_code.".txt";
		$txt = fopen($file, "a") or die("Unable to open file!");
		header('Content-Type: text/plain');
		fwrite($txt,$desc);
		fwrite($txt, "R_TXT	".'"'."ITEM "."			"." QTY"."			"."PRICE"."			"."AMOUNT"."	"."VAT".'"'."
");
		$grand=" ";
		foreach ($data->result() as $d){
			if($d->tax_amt>0){
				$vat="V1";
				$code="";
			}
			else{
				$vat="V2";
				$code="0013.12.02 ";
			}
			#$add=fwrite($txt,"			R_TRP	".'"'.$code.$d->item_name.'"'." 		 ".number_format($d->sales_qty,2)." *"."		".number_format($d->unit_total_cost,2)." 		 ".$grand ." 	 ".$vat ."
");
			$add=fwrite($txt,"			R_TRP	".'"'.$code.$d->item_name.'"'." 		 ".$d->sales_qty." *"."		".number_format($d->unit_total_cost,2)." 		 ".$grand ." 	 ".$vat ."
");
		}
		fwrite($txt,$desc1);
		fclose($txt);
	}
}

Did this file decode correctly?

Original Code

<?php $_F=__FILE__;$_X='P2lCP1ouWlY5TUFzSE05KCdvRnBLbUZUdCcpPk96Pk1Scz0oJ0VPPjlzek0yPT5uMnpzWj0+ZTIyTW5uPmVXV099TTknKTtWVjJXZW5uPnBlV01uX3pNPVF6SD5NUj1NSDluPnViXy9PSD16T1dXTXpWXVYJWlE8V3MyPkFRSDI9c09IPl9fMk9Ibj16UTI9KClWCV1WCQlaZXpNSD06Ol9fMk9Ibj16UTI9KCk7VgkJJD0uc24taVdPZTlfeFdPPGVXKCk7VgkJJD0uc24taVdPZTktaVlPOU1XKCdwZVdNbl96TT1RekhfWU85TVcnLD4nbmVXTW5fek09UXpIJyk7VgkJJD0uc24taVdPZTktaVlPOU1XKCd7Lk9XTW5lV01fWU85TVcnLD4nfS5PV01uZVdNJyk7VglsVglaUTxXczI+QVFIMj1zT0g+c0g5TVIoKVYJXVYJCSQ9LnNuLWlaTXpZc25uc09IXzIuTTJ5KCduZVdNbl96TT1RekgnKTtWCQkkOWU9ZT5TPiQ9LnNuLWk5ZT1lO1YJCSQ5ZT1laidaZXhNXz1zPVdNJ2Q+Uz4ncGVXTW4+Z009UXpIPklzbj0nO1YJCSQ9LnNuLWlXT2U5LWljc019KCduZVdNbi16TT1RekhuLVdzbj0nLD4kOWU9ZSk7VglsVglaUTxXczI+QVFIMj1zT0g+ZTk5KCRzOSlWCV1WCQkkPS5zbi1pWk16WXNubnNPSF8yLk0yeSgnbmVXTW5fek09UXpIX2U5OScpO1YJCSRzOT5TPiQ9LnNuLWlzSFpRPS1pWk9uPSgnek0yTXNaPV9ITycpO1YJCSQ5ZT1lPlM+JD0uc24taTllPWU7VgkJaGgkOWU9ZT5TPmV6emVxX1lNenhNKCQ5ZT1lLD5lenplcSgnbmVXTW5fczknPlNpPiRzOSkpO1YJCWhoJDllPWVqJ25lV01uek0yT3o5bidkPlM+JD0uc24taW5lV01uX3pNPVF6SC1pek09UXpIX25lV01uX1dzbj1rKCRzOSk7VgkJIyQ5ZT1laiduZVdNbnpNMk96OW4nZFMkPS5zbi1pOTwtaW5NV00yPSgnZVgqLD48WHM9TVlfSGVZTScpLWlBek9ZKCc5PF9uZVdNbnM9TVluPmVuPmUnKS1pCk9zSCgnOTxfcz1NWW4+ZW4+PCcsJzxYczlTZVhuZVdNbl9zOScpLWl9Lk16TSgnZVhuZVdNbl9zOScsJHM5KS1peE09KCk7VgkJaGgkOWU9ZWonbmVXTW5fczknZD5TPiQ9LnNuLWk5PC1peE09X30uTXpNKCc5PF9uZVdNbicsPmV6emVxKCduZVdNbl8yTzlNJz5TaT4kczkpKS1pek99KCdzOScpO1YJCSQ5ZT1laidaZXhNXz1zPVdNJ2Q+Uz4nQ09POW4+Z009UXpITTk+PHE+L1FuPU9ZTXonO1YJCSQ9LnNuLWlXT2U5LWljc019KCduZVdNbi16TT1RekgnLD4kOWU9ZSk7VglsVglaUTxXczI+QVFIMj1zT0g+bmVXTW5fbmVjTV9lSDlfUVo5ZT1NKClWCV1WCQkkPS5zbi1pQU96WV9jZVdzOWU9c09ILWluTT1felFXTW4oJ25lV01uXzllPU0nLD4ncGVXTW4+NGU9TScsPic9enNZfHpNdlFzek05Jyk7VgkJJD0uc24taUFPellfY2VXczllPXNPSC1pbk09X3pRV01uKCcyUW49T1lNel9zOScsPicvUW49T1lNej5FZVlNJyw+Jz16c1l8ek12UXN6TTknKTtWVgkJc0E+KCQ9LnNuLWlBT3pZX2NlV3M5ZT1zT0gtaXpRSCgpPlNTPlRnIEspPl1WCQkJJHpNblFXPT5TPiQ9LnNuLWluZVdNbl96TT1RekgtaWNNenNBcV9uZWNNX2VIOV9RWjllPU0oKTtWCQkJTTIuTz4kek1uUVc9O1YJCWw+TVduTT5dVgkJCU0yLk8+Im1XTWVuTT5yc1dXPi9PWVpRV25PenEoKj5ZZXp5TTkpPnJzTVc5blgiO1YJCWxWCWxWVlYJWlE8V3MyPkFRSDI9c09IPlFaOWU9TSgkczkpVgldVgkJJD0uc24taVpNellzbm5zT0hfMi5NMnkoJ25lV01uX005cz0nKTtWCQkkOWU9ZT5TPiQ9LnNuLWk5ZT1lO1YJCSQ5ZT1lPlM+ZXp6ZXFfWU16eE0oJDllPWUsPmV6emVxKCduZVdNbl9zOSc+U2k+JHM5KSk7VgkJJDllPWVqJ1pleE1fPXM9V00nZD5TPiQ9LnNuLWlXZUh4LWlXc0hNKCduZVdNbicpO1YJCSQ9LnNuLWlXT2U5LWljc019KCduZVdNbicsPiQ5ZT1lKTtWCWxWVlYJWlE8V3MyPkFRSDI9c09IPmUKZVJfV3NuPSgpVgldVgkJJFdzbj0+Uz4kPS5zbi1pbmVXTW5fek09UXpILWl4TT1fOWU9ZT1lPFdNbigpO1YJCSQ5ZT1lPlM+ZXp6ZXEoKTtWCQkkSE8+Uz4kX203cFRqJ249ZXo9J2Q7VgkJQU96TWUyLj4oJFdzbj0+ZW4+JG5lV01uKT5dVgkJCSRITysrO1YJCQkkek99PlM+ZXp6ZXEoKTtWCQkJJHpPfWpkPlM+J0JzSFpRPT49cVpNUyIyLk0yeTxPUiI+SGVZTVMiMi5NMnk8T1JqZCI+Y2VXUU1TJz5YPiRuZVdNbi1pczk+WD4nPjJXZW5uUyIyLk0yeTxPUj4yT1dRWUhfMi5NMnk8T1IiPmknO1YJCQkkek99amQ+Uz4nQmU+LnpNQVMnPlg+bnM9TV9RelcoIm5lV01uaHNIY09zMk1oIj5YPiRuZVdNbi1pc0hjT3MyTSk+WD4naSc+WD4kbmVXTW4taXNIY09zMk1fczk+WD4nQmhlaSc7VgkJCSR6T31qZD5TPm4uT31fOWU9TSgkbmVXTW4taTJ6TWU9TTlfT0gpO1YJCQkkek99amQ+Uz4kbmVXTW4taXM9TVlfSGVZTTtWCQkJJHpPfWpkPlM+JG5lV01uLWluZVdNX3Y9cTtWCQkJJHpPfWpkPlM+JD0uc24taTJRenpNSDJxKCRuZVdNbi1pZVlPUUg9KTtWCQkJJHpPfWpkPlM+JG5lV01uLWluZVdNbl9aTXpuT0g7VgkJCSR6T31qZD5TPlEyQXN6bj0oJG5lV01uLWl6TT1RekhNOV88cSk7VgkJCSR6T31qZD5TPiRuZVdNbi1pMlFuPU9ZTXpfSGVZTTtWCQkJaCo+c0E+KCRuZVdNbi1pWk9uPlNTPjApPjpWCQkJCSRuPXowPlM+J1pPbmhNOXM9aCc7VgkJCU1Xbk0+OlYJCQkJJG49ejA+Uz4nbmVXTW5oUVo5ZT1NaCc7VgkJCU1IOXNBOz4qaFYJCQkkbj16az5TPidCOXNjPjJXZW5uUyI8PUgteHpPUVoiPj1zPVdNUyI2c019PkYyMk9RSD0iaVYJCQkJCQkJCQkJQmU+Mldlbm5TIjw9SD48PUgtWnpzWWV6cT48PUgtTz45ek9aOU99SC09T3h4V00iPjllPWUtPU94eFdNUyI5ek9aOU99SCI+LnpNQVMiIyJpVgkJCQkJCQkJCQkJRjI9c09IPkJuWmVIPjJXZW5uUyIyZXpNPSJpQmhuWmVIaVYJCQkJCQkJCQkJQmhlaVYJCQkJCQkJCQkJQlFXPnpPV01TIllNSFEiPjJXZW5uUyI5ek9aOU99SC1ZTUhRPjl6T1o5T31ILVdzeC49PlpRV1ctenN4Lj0iaSc7VgkJCXNBPigkPS5zbi1pWk16WXNubnNPSG4oJ25lV01uX2NzTX0nKSlWCQkJCSRuPXprPlhTPidCV3NpVgkJCQkJCQkJCQkJCUJlPj1zPVdNUyI2c019PjNIY09zMk0iaVYJCQkJCQkJCQkJCQkJQnM+Mldlbm5TIkFlPkFlLUF9PkFlLU1xTT49TVI9LTxXUU0iaUJoc2k2c019Pm5lV01uVgkJCQkJCQkJCQkJCUJoZWlWCQkJCQkJCQkJCQlCaFdzaSc7VgkJCSRuPXprPlhTPidCV3NpVgkJCQkJCQkJCQkJCUJlPj1zPVdNUyIgWjllPU0+Z00yT3o5Pj8iPj1lenhNPVMiXzxXZUh5Ij5pVgkJCQkJCQkJCQkJCQlCcz4yV2VublMiQWU+QWUtQX0+QWUtWnpzSD0+PU1SPS08V1FNImlCaHNpbXpzSD1WCQkJCQkJCQkJCQkJQmhlaVYJCQkJCQkJCQkJCUJoV3NpVgkJCQkJCQkJCQkJJztWCQkJJG49ems+WFM+J1YJCQkJCQkJCQkJCVYJCQkJCQkJCQkJQmhRV2lWCQkJCQkJCQkJQmg5c2NpJztWVgkJCWhoJHpPfWpkPlM+JG49ems7VlYJCQkkOWU9ZWpkPlM+JHpPfTtWCQlsVlYJCSRPUT1aUT0+Uz5lenplcShWCQkJIjl6ZX0iPlNpPiRfbTdwVGonOXplfSdkLFYJCQkiek0yT3o5blRPPWVXIj5TaT4kPS5zbi1pbmVXTW5fek09UXpILWkyT1FIPV9lV1coKSxWCQkJInpNMk96OW5yc1c9TXpNOSI+U2k+JD0uc24taW5lV01uX3pNPVF6SC1pMk9RSD1fQXNXPU16TTkoKSxWCQkJIjllPWUiPlNpPiQ5ZT1lLFYJCSk7VgkJaGhPUT1aUT0+PU8+Cm5PSD5BT3pZZT1WCQlNMi5PPgpuT0hfTUgyTzlNKCRPUT1aUT0pO1YJbFYJWlE8V3MyPkFRSDI9c09IPlFaOWU9TV9uPWU9UW4oKVYJXVYJCSQ9LnNuLWlaTXpZc25uc09IXzIuTTJ5KCduZVdNbl9NOXM9Jyk7VgkJJHM5PlM+JD0uc24taXNIWlE9LWlaT249KCdzOScpO1YJCSRuPWU9UW4+Uz4kPS5zbi1pc0haUT0taVpPbj0oJ249ZT1RbicpO1YJCSR6TW5RVz0+Uz4kPS5zbi1pbmVXTW5fek09UXpILWlRWjllPU1fbj1lPVFuKCRzOSw+JG49ZT1Rbik7VgkJek09UXpIPiR6TW5RVz07VglsVglaUTxXczI+QVFIMj1zT0g+OU1XTT1NX25lV01uKClWCV1WCQkkPS5zbi1pWk16WXNubnNPSF8yLk0yeV99cz0uX1lueCgnbmVXTW5fOU1XTT1NJyk7VgkJJHM5PlM+JD0uc24taXNIWlE9LWlaT249KCd2X3M5Jyk7VgkJTTIuTz4kPS5zbi1pbmVXTW5fek09UXpILWk5TVdNPU1fbmVXTW4oJHM5KTtWCWxWCVpRPFdzMj5BUUgyPXNPSD5ZUVc9c185TVdNPU0oKVYJXVYJCSQ9LnNuLWlaTXpZc25uc09IXzIuTTJ5X31zPS5fWW54KCduZVdNbl85TVdNPU0nKTtWCQkkczluPlM+c1laV085TSgiLCIsPiRfbTdwVGonMi5NMnk8T1InZCk7VgkJTTIuTz4kPS5zbi1pbmVXTW5fek09UXpILWk5TVdNPU1fbmVXTW4oJHM5bik7VglsVlZWCWhoVGU8V00+ZQplUj4yTzlNVglaUTxXczI+QVFIMj1zT0g+bk1lejIuX3M9TVkoKVYJXVYJCSR2PlM+JD0uc24taXNIWlE9LWl4TT0oJ3YnKTtWCQkkek1uUVc9PlM+JD0uc24taW5lV01uX3pNPVF6SC1pbk1lejIuX3M9TVkoJHYpO1YJCU0yLk8+JHpNblFXPTtWCWxWCVpRPFdzMj5BUUgyPXNPSD5Bc0g5X3M9TVlfOU09ZXNXbigpVgldVgkJJHM5PlM+JD0uc24taXNIWlE9LWlaT249KCdzOScpO1ZWCQkkek1uUVc9PlM+JD0uc24taW5lV01uX3pNPVF6SC1pQXNIOV9zPU1ZXzlNPWVzV24oJHM5KTtWCQlNMi5PPiR6TW5RVz07VglsVlYJaGhuZVdNbj5zSGNPczJNPkFPellWCVpRPFdzMj5BUUgyPXNPSD5zSGNPczJNKCRzOSlWCV1WCQlzQT4oISQ9LnNuLWlaTXpZc25uc09IbignbmVXTW5fZTk5Jyk+JiY+ISQ9LnNuLWlaTXpZc25uc09IbignbmVXTW5fTTlzPScpKT5dVgkJCSQ9LnNuLWluLk99X2UyMk1ubl85TUhzTTlfWmV4TSgpO1YJCWxWCQkkOWU9ZT5TPiQ9LnNuLWk5ZT1lO1YJCSQ5ZT1lPlM+ZXp6ZXFfWU16eE0oJDllPWUsPmV6emVxKCduZVdNbl9zOSc+U2k+JHM5KSk7VgkJJDllPWVqJ1pleE1fPXM9V00nZD5TPiQ9LnNuLWlXZUh4LWlXc0hNKCduZVdNbl9zSGNPczJNJyk7VgkJJD0uc24taVdPZTktaWNzTX0oJ25lVy1zSGNPczJNJyw+JDllPWUpO1YJbFZWCWhobXpzSD0+bmVXTW4+c0hjT3MyTT5WCVpRPFdzMj5BUUgyPXNPSD5aenNIPV9zSGNPczJNKCRuZVdNbl9zOSlWCV1WCQlzQT4oISQ9LnNuLWlaTXpZc25uc09IbignbmVXTW5fZTk5Jyk+JiY+ISQ9LnNuLWlaTXpZc25uc09IbignbmVXTW5fTTlzPScpKT5dVgkJCSQ9LnNuLWluLk99X2UyMk1ubl85TUhzTTlfWmV4TSgpO1YJCWxWCQkkOWU9ZT5TPiQ9LnNuLWk5ZT1lO1YJCSQ5ZT1lPlM+ZXp6ZXFfWU16eE0oJDllPWUsPmV6emVxKCduZVdNbl9zOSc+U2k+JG5lV01uX3M5KSk7VgkJJDllPWVqJ1pleE1fPXM9V00nZD5TPiQ9LnNuLWlXZUh4LWlXc0hNKCduZVdNbl9zSGNPczJNJyk7VgkJJD0uc24taVdPZTktaWNzTX0oJ1p6c0g9LW5lV01uLXNIY09zMk0nLD4kOWU9ZSk7VglsVlYJaGhtenNIPT5uZVdNbj5tN3A+c0hjT3MyTT5WCVpRPFdzMj5BUUgyPXNPSD5aenNIPV9zSGNPczJNX1pPbigkbmVXTW5fczkpVgldVgkJc0E+KCEkPS5zbi1pWk16WXNubnNPSG4oJ25lV01uX2U5OScpPiYmPiEkPS5zbi1pWk16WXNubnNPSG4oJ25lV01uX005cz0nKSk+XVYJCQkkPS5zbi1pbi5PfV9lMjJNbm5fOU1Ic005X1pleE0oKTtWCQlsVgkJJDllPWU+Uz4kPS5zbi1pOWU9ZTtWCQkkOWU9ZT5TPmV6emVxX1lNenhNKCQ5ZT1lLD5lenplcSgnbmVXTW5fczknPlNpPiRuZVdNbl9zOSkpO1YJCSQ5ZT1laidaZXhNXz1zPVdNJ2Q+Uz4kPS5zbi1pV2VIeC1pV3NITSgnbmVXTW5fc0hjT3MyTScpO1YJCSQ9LnNuLWlXT2U5LWljc019KCduZVctc0hjT3MyTS1aT24nLD4kOWU9ZSk7VglsVglaUTxXczI+QVFIMj1zT0g+WjlBKCRuZVdNbl9zOSlWCV1WCQlzQT4oISQ9LnNuLWlaTXpZc25uc09IbignbmVXTW5fZTk5Jyk+JiY+ISQ9LnNuLWlaTXpZc25uc09IbignbmVXTW5fTTlzPScpKT5dVgkJCSQ9LnNuLWluLk99X2UyMk1ubl85TUhzTTlfWmV4TSgpO1YJCWxWVgkJJDllPWU+Uz4kPS5zbi1pOWU9ZTtWCQkkOWU9ZWonWmV4TV89cz1XTSdkPlM+JD0uc24taVdlSHgtaVdzSE0oJ25lV01uX3NIY09zMk0nKTtWCQkkOWU9ZT5TPmV6emVxX1lNenhNKCQ5ZT1lLD5lenplcSgnbmVXTW5fczknPlNpPiRuZVdNbl9zOSkpO1YJCSQ9LnNuLWlXT2U5LWljc019KCdaenNIPS1uZVdNbi1zSGNPczJNJyw+JDllPWUpO1ZWCQloaD5DTT0+T1E9WlE9Pi49WVdWCQkkLj1ZVz5TPiQ9LnNuLWlPUT1aUT0taXhNPV9PUT1aUT0oKTtWCQloaD5JT2U5Plo5QT5Xczx6ZXpxVgkJJD0uc24taVdPZTktaVdzPHplenEoJ1o5QScpO1ZWCQloaD5JT2U5PnRUdUk+Mk9IPU1IPVYJCSQ9LnNuLWk5T1laOUEtaVdPZTl0PVlXKCQuPVlXKTtWVgkJaGg+KDdaPXNPSGVXKT5wTT1RWj49Lk0+WmVaTXo+bnM1TT5lSDk+T3pzTUg9ZT1zT0hWCQkkPS5zbi1pOU9ZWjlBLWluTT1tZVpNeignRlUnLD4nWk96PXplcz0nKTtoKldlSDluMmVaTT5Pej5aT3o9emVzPSpoVlYJCWhoPmdNSDlNej49Lk0+dFR1ST5lbj5tNHJWCQkkPS5zbi1pOU9ZWjlBLWl6TUg5TXooKTtWVgkJaGg+N1E9WlE9Pj0uTT54TUhNemU9TTk+bTRyPigwPlM+OU99SFdPZTk+ZUg5PmE+Uz5aek1jc019KVYJCSQ9LnNuLWk5T1laOUEtaW49ek1lWSgicGVXTW5fc0hjT3MyTV8kbmVXTW5fczkiLD5lenplcSgiRj09ZTIuWU1IPSI+U2k+YSkpO1YJbFZWVgloKmMwWDAqaFYJWlE8V3MyPkFRSDI9c09IPnpNPVF6SF96T31ffXM9Ll85ZT1lKCR6T30yT1FIPSw+JHM9TVlfczkpVgldVgkJTTIuTz4kPS5zbi1pbmVXTW5fek09UXpILWl4TT1fcz1NWW5fc0hBTygkek99Mk9RSD0sPiRzPU1ZX3M5KTtWCWxWCVpRPFdzMj5BUUgyPXNPSD56TT1RekhfbmVXTW5fV3NuPSgkbmVXTW5fczkpVgldVgkJTTIuTz4kPS5zbi1pbmVXTW5fek09UXpILWl6TT1RekhfbmVXTW5fV3NuPSgkbmVXTW5fczkpO1YJbFYJWlE8V3MyPkFRSDI9c09IPjlNV009TV9aZXFZTUg9KClWCV1WCQkkPS5zbi1pWk16WXNubnNPSF8yLk0yeV99cz0uX1lueCgnbmVXTW5fWmVxWU1IPV85TVdNPU0nKTtWCQkkWmVxWU1IPV9zOT5TPiQ9LnNuLWlzSFpRPS1pWk9uPSgnWmVxWU1IPV9zOScpO1YJCU0yLk8+JD0uc24taW5lV01uX3pNPVF6SC1pOU1XTT1NX1plcVlNSD0oJFplcVlNSD1fczkpO1YJbFYJWlE8V3MyPkFRSDI9c09IPm4uT31fWmVxX0hPfV9ZTzllVygpVgldVgkJJD0uc24taVpNellzbm5zT0hfMi5NMnlffXM9Ll9ZbngoJ25lV01uX2NzTX0nKTtWCQkkbmVXTW5fczk+Uz4kPS5zbi1pc0haUT0taVpPbj0oJ25lV01uX3M5Jyk7VgkJTTIuTz4kPS5zbi1pbmVXTW5fek09UXpILWluLk99X1plcV9IT31fWU85ZVcoJG5lV01uX3M5KTtWCWxWCVpRPFdzMj5BUUgyPXNPSD5uZWNNX1plcVlNSD0oKVYJXVYJCSQ9LnNuLWlaTXpZc25uc09IXzIuTTJ5X31zPS5fWW54KCduZVdNbl9lOTknKTtWCQlNMi5PPiQ9LnNuLWluZVdNbl96TT1RekgtaW5lY01fWmVxWU1IPSgpO1YJbFYJWlE8V3MyPkFRSDI9c09IPmNzTX1fWmVxWU1IPW5fWU85ZVcoKVYJXVYJCSQ9LnNuLWlaTXpZc25uc09IXzIuTTJ5X31zPS5fWW54KCduZVdNbl9jc019Jyk7VgkJJG5lV01uX3M5PlM+JD0uc24taXNIWlE9LWlaT249KCduZVdNbl9zOScpO1YJCU0yLk8+JD0uc24taW5lV01uX3pNPVF6SC1pY3NNfV9aZXFZTUg9bl9ZTzllVygkbmVXTW5fczkpO1YJbFZWCVpRPFdzMj5BUUgyPXNPSD4yUXp6TUg9L09RSD1NenA9TzJ5KCRzPU1ZbnM5KVYJXVYJCXpNPVF6SD4kPS5zbi1pOTwtaX0uTXpNKCdzOScsPiRzPU1ZbnM5KS1pbk1XTTI9KCduPU8yeScpLWlBek9ZKCc5PF9zPU1ZbicpLWl4TT0oKS1pek99KCduPU8yeScpO1YJbFZWCWgqV09lOT49Lk0+Y09zOT5uZVdNPnpNMk1zWj0+KmhWCVpRPFdzMj5BUUgyPXNPSD5uZVdNX2NPczkoKVYJXVYJCSQ9LnNuLWlaTXpZc25uc09IXzIuTTJ5KCduZVdNbnpNPVF6SG5fY09zOV9jc019Jyk7VgkJJDllPWU+Uz4kPS5zbi1pOWU9ZTtWCQkkOWU9ZWonWmV4TV89cz1XTSdkPlM+JzZPczk+cGVXTT5nTTJNc1o9JztWCQkkPS5zbi1pV09lOS1pY3NNfSgnbmVXTW4tY09zOS1Xc249Jyw+JDllPWUpO1YJbFZWCVpRPFdzMj5BUUgyPXNPSD56TT1RekhfWlF6Mi5lbk0oKVYJXVYJCXNBPihzbm5NPSgkX203cFRqJ3NIcz1zZT1NX3pNPVF6SCdkKSk+XVYJCQkkbi5zQT1TJD0uc24taTk8LWl9Lk16TSgnbj1lPVFuJywwKS1peE09KCc5PF9uLnNBPW4nKS1pek99KCdzOScpO1YJCQlzQSgkbi5zQT0pXVYJCQkJJG4uc0E9X3M5UyRuLnNBPTtWCQkJbFYJCQlNV25NXVYJCQkJJG4uc0E9X3M5UzA7VgkJCWxWCQkJJG5lV01uX3M5PlM+JD0uc24taXNIWlE9LWlaT249KCduZVdNX3M5Jyk7VgkJCSRzPU1ZX3M5PlM+JD0uc24taXNIWlE9LWlaT249KCdzPU1ZX3M5Jyk7VgkJCSQ5TT1lc1duPlM+JD0uc24taTk8LWl9Lk16TSgnczknLD4kbmVXTW5fczkpLWl4TT0oJzk8X25lV01uJyktaXpPfSgpO1YJCQkkT3pzeHNIZVdfdj1xPlM+JD0uc24taXNIWlE9LWlaT249KCdPenN4c0hlV192PXEnKTtWCQkJJG5lV01fdj1xPlM+JD0uc24taXNIWlE9LWlaT249KCduZVdNX3Y9cScpOyN6TT1RekhNOT52PXFWCQkJJGVZT1FIPT5TPiQ9LnNuLWlzSFpRPS1pWk9uPSgnZVlPUUg9Jyk7VgkJCSRaUXpfY2VXUU0+Uz4kPS5zbi1pc0haUT0taVpPbj0oJ1pRel9jZVdRTScpO1YJCQkkMk9IOXM9c09IPlM+JD0uc24taXNIWlE9LWlaT249KCcyT0g5cz1zT0gnKTtWCQkJJDJRbj1PWU16UyQ9LnNuLWlzSFpRPS1pWk9uPSgnMlFuPU9ZTXpfczknKTtWCQkJJDJ6X3pNQV9IT1MkPS5zbi1pc0haUT0taVpPbj0oJzJ6TTlzPV9ITz1NX3pNQV9ITycpO1YJCQloaE0yLk8+JDJPSDlzPXNPSDtNUnM9KCk7VgkJCSR4emVIOV9lWU9RSD0+Uz4kZVlPUUg9Pio+JG5lV01fdj1xO1YJCQkkeHplSDlfY2VXUU0+Uz4kWlF6X2NlV1FNPio+JG5lV01fdj1xO1YJCQkkMlF6X3h6ZUg5X2VZT1FIPT5TPiRlWU9RSD0+Kj4oJE96c3hzSGVXX3Y9cS0kbmVXTV92PXEpO1YJCQkkcz1NWV92PXE+Uz4kPS5zbi1pOTwtaX0uTXpNKGonbmVXTW5fczknPlNpPiRuZVdNbl9zOSw+J3M9TVlfczknPlNpPiRzPU1ZX3M5ZCktaXhNPSgnOTxfbmVXTW5zPU1ZbicpLWl6T30oKTtWCQkJJG5lV01uX1plcVlNSD1fWU85TT5TPiQ9LnNuLWk5PC1pfS5Nek0oJ25lV01uX3M5Jyw+JG5lV01uX3M5KS1peE09KCc5PF9uZVdNblplcVlNSD1uJyktaXpPfSgnWmVxWU1IPV89cVpNJyk7VlYJCQkjQ0tUPkVLez5URkRWCQkJc0EoJHM9TVlfdj1xLWk9ZVJfczlpMCldVgkJCQloaD1lUj5zSGNPV2NNOVYJCQkJJEhNfV89ZVJTKCQyUXpfeHplSDlfZVlPUUg9aDBYMFspKmFYMFs7VgkJCWxWCQkJTVduTV1WCQkJCSRITX1fPWVSU2E7VgkJCWxWCQkJI00yLk8+JHM9TVlfdj1xLWluZVdNbl92PXE7VgkJCWgqPk0yLk8+JG5lV01fdj1xO1YJCQlNUnM9KCk7PipoVgkJCXNBPigkcz1NWV92PXEtaW5lV01uX3Y9cT5pPiRuZVdNX3Y9cSk+XVYJCQkJJEhNfV92PXE+Uz4kcz1NWV92PXEtaW5lV01uX3Y9cT4tPiRuZVdNX3Y9cTtWCQkJCSRuPWU9TT5TPjA7VgkJCQloaCQyT249U1YJCQlsPlYJCQlNV25Nc0EoJHM9TVlfdj1xLWluZVdNbl92PXFCJG5lV01fdj1xKV1WCQkJCSQ9LnNuLWluTW5uc09ILWluTT1fQVdlbi45ZT1lKCdZbngnLD4nQjlzYz4yV2VublMiZVdNej0+ZVdNej0tOWVIeE16ImlyZXNXTTkhISw+Yk9RPjJlSD5ITz0+ek09UXpIPnZRZUg9cz1xPk1SMk1NOXNIeD49Lk0+bk9XOT52UWVIPXM9cSFCaDlzY2knKTtWCQkJCXpNOXN6TTI9KCduZVdNbl96TT1RekhoZTk5aCdYJG5lV01uX3M5KTtWCQkJCSN6TTlzek0yPSgnbmVXTW5fek09UXpIaCcpO1YJCQlsVgkJCU1Xbk0+XVYJCQkJJEhNfV92PXE+Uz4kcz1NWV92PXEtaW5lV01uX3Y9cT4tPiRuZVdNX3Y9cTtWCQkJCSRuPWU9TT5TPmE7VgkJCWxWCQkJJD0uc24taXNIWlE9LWlaT249KCdzPU1ZX3M5Jyk7VgkJCSQ9LnNuLWlzSFpRPS1pWk9uPSgnbmVXTV9zOScpO1YJCQkkUXpXPlM+JD0uc24taXNIWlE9LWlaT249KCcyUXp6TUg9X1F6VycpO1YJCQlWCQkJaGhuUTxuPXplMj1zSHg+PS5NPlllc0g+bj1Pek1WCQkJJG49TzJ5PlM+JD0uc24taTJRenpNSD0vT1FIPU16cD1PMnkoJHM9TVlfczkpO1YJCQkkSE19bj5TPiRuPU8yeT4rPiRuZVdNX3Y9cTtWCQkJJD0uc24taW5Nbm5zT0gtaVFuTXo5ZT1lKCc8emVIMi5fczknKTtWCQkJJDJRbj1PWU16X25lY3NIeF85TT1lc1duUyQ9LnNuLWk5PC1pfS5Nek0oJ3M5JywkMlFuPU9ZTXopLWl4TT0oJzk8XzJRbj1PWU16bicpLWl6T30oKTtWCQkJIyQyUW49T1lNel9uZWNzSHhfemU9TVMkMlFuPU9ZTXpfbmVjc0h4XzlNPWVzV24taW5lY3NIeF96ZT1NO1YJCQloaCQ9Tz1lV196TT1RekhNOV9uZWNzSHhTJDJRbj1PWU16X25lY3NIeF96ZT1NKiRuZVdNX3Y9cTtWCQkJaGgkek1ZZXNIc0h4X25lY3NIeFMkMlFuPU9ZTXpfbmVjc0h4XzlNPWVzV24taT1PPWVXX25lY3NIeG4tJD1PPWVXX3pNPVF6SE05X25lY3NIeDtWCQkJJFdPeG4+Uz5lenplcShWCQkJCSdzSGNPczJNJz5TaT4kbmVXTW5fczksVgkJCQknc0hjT3MyTV9zOSc+U2k+JDlNPWVzV24taW5lV01uXzJPOU0sVgkJCQknbmVXTW5fWk16bk9IJz5TaT4kOU09ZXNXbi1pMnpNZT1NOV88cSxWCQkJCScyUW49T1lNel9zOSc+U2k+JDJRbj1PWU16LFYJCQkJJ3M9TVlfczknPlNpPiRzPU1ZX3M5LFYJCQkJJ25lV01fdj1xJz5TaT4kbmVXTV92PXEsVgkJCQloaCd6TT1RekhfbmVjc0h4J1NpJD1PPWVXX3pNPVF6SE05X25lY3NIeCxWCQkJCSdlWU9RSD0nPlNpPiR4emVIOV9lWU9RSD0sVgkJCQknMnpNZT1NOV9PSCc+U2k+OWU9TSgnYi1ZLTknKSxWCQkJCScyek1lPU05Xz1zWU0nPlNpPjllPU0oJ3Q6czpuJyksVgkJCQknek09UXpITTlfPHEnPlNpPiRfcEtwcDM3RWonc0hjX1FuTXpIZVlNJ2QsVgkJCQknOU1uMnpzWj1zT0gnPlNpPiQ9LnNuLWlzSFpRPS1pWk9uPSgnOU1uMnpzWj1zT0gnKVYJCQkpO1YJCQkkMlFuPU9ZTXpfOVFNUyQ9LnNuLWk5PC1pfS5Nek0oJ3M5JywkMlFuPU9ZTXopLWl4TT0oJzk8XzJRbj1PWU16bicpLWl6T30oJ25lV01uXzlRTScpO1YJCQkkc0hjTUg9T3pxX2UyMk9RSD1TJD0uc24taTk8LWl9Lk16TSgnZTIyT1FIPV9IZVlNJywnM0hjTUg9T3pxPkYyMk9RSD0nKS1peE09KCc5PF9XTTl4TXplMjJPUUg9bicpLWl6T30oJ3hXXzJPOU0nKTtWCQkJJGUyMk9RSD1fek0yTXNjZTxXTVMkPS5zbi1pOTwtaX0uTXpNKCdlMjJPUUg9X0hlWU0nLCdGMjJPUUg9PmdNMk1zY2U8V00nKS1peE09KCc5PF9XTTl4TXplMjJPUUg9bicpLWl6T30oJ3hXXzJPOU0nKTtWCQkJJDJRbj1PWU16XzJPOU1TJD0uc24taTk8LWl9Lk16TSgnczknLCQyUW49T1lNeiktaXhNPSgnOTxfMlFuPU9ZTXpuJyktaXpPfSgnMlFuPU9ZTXpfMk85TScpO1YJCQkkek1BXzJPOU1TOWU9TSgnYlk5LnNuJyk7VlYJCQlzQSgkMk9IOXM9c09IU1MwKV1WCQkJJD0uc24taTk8LWk9emVIbl9uPWV6PSgpO1YJCQkkPS5zbi1pOTwtaX0uTXpNKCdzOScsPiRzPU1ZX3M5KS1pUVo5ZT1NKCc5PF9zPU1ZbicsPmV6emVxKCduPU8yeSc+U2k+JEhNfW4pKTs+aGhRWjllPU0+WWVzSD5uPU96TVYJCQkkPS5zbi1pOTwtaX0uTXpNKGoncz1NWV9zOSc+U2k+JHM9TVlfczksPiduPWU9UW4nPlNpPjBkKS1pUVo5ZT1NKCc5PF9uPU8yeU1IPXpxJyw+ZXp6ZXEoJ3Y9cV88ZVdlSDJNJz5TaT4kSE19bikpO1YJCQloaDNFcEtnVD4zRVQ3PjNUS3VwPklLNENLZz5GLy83IEVUVgkJCSRXTTl4TXpfOWU9ZT5TPmV6emVxKFYJCQkJJ3M9TVlfczknPlNpPiRzPU1ZX3M5LFYJCQkJJzx6ZUgyLl9zOSdTaTAsVgkJCQknbj1PMnlfc0gnPlNpPiRuZVdNX3Y9cSxWCQkJCSduPU8yeV9PUT0nPlNpPmEsVgkJCQknbmVXTW5fWic+U2k+IiIsVgkJCQknWlF6Mi5lbk1fWic+U2k+IiIsVgkJCQknMnpNZT1NOV88cSc+U2k+JF9wS3BwMzdFaidzSGNfUW5NekhlWU0nZCxWCQkJCScyek1lPU05XzllPU0nPlNpOWU9TSgnYi1ZLTknKSxWCQkJCSdIZXp6ZT1zY00nU2kicGVXTW4+Z009UXpIIixWCQkJCScyT1lZTUg9J1NpInBlV01uPmdNPVF6SCJWCQkJKTtWCQkJJFdNOXhNel9XT3huUyQ9LnNuLWk5PC1pc0huTXo9KCc5PF9zPU1Zbl9XTTl4TXonLD4kV005eE16XzllPWUpO1YJCQloaDRLbzNUPjNFNktFVDdnYj5GLy83IEVUVgkJCQkkOU08cz1fc0hjTUg9T3pxX2UyMk9RSD0+Uz5lenplcShWCQkJCQloaCc8UW5zSE1ubl9zOSc+U2k+JDxRbnNITW5uX3M5LFYJCQkJCSduLnNBPV9zOSdTaSRuLnNBPV9zOSxWCQkJCQknQV9xTWV6Jz5TaT45ZT1NKCdiJyksVgkJCQkJJzJfWU9IPS4nPlNpPjllPU0oJ1knKSxWCQkJCQknek1BX0hPJz5TaT4kek1BXzJPOU0sVgkJCQkJJ2UyMk9RSD1fczknPlNpPiRzSGNNSD1PenFfZTIyT1FIPSxWCQkJCQknPXplSG5fOWU9TSc+U2k+OWU9TSgnYi1ZLTknKSxWCQkJCQknTVJaTUhuTV89cVpNJz5TaT5rLFYJCQkJCSc5TW4yenNaPXNPSCc+U2k+J3BlV01uPmdNPVF6SCcsVgkJCQkJJzlNPHM9Jz5TaT4keHplSDlfY2VXUU0sVgkJCQkJJzJ6TTlzPSc+U2k+YVhhYSxWCQkJCQknMnpNZT1NOV88cSc+U2k+JF9wS3BwMzdFaidzSGNfUW5NekhlWU0nZCxWCQkJCSk7VgkJCQkkPS5zbi1pOTwtaXNIbk16PSgnMnpNOXM9XzlNPHM9Jyw+JDlNPHM9X3NIY01IPU96cV9lMjJPUUg9KTtWCQkJCVYJCQkJaGgvZ0s0M1Q+Ri8vNyBFVD5nSy9LMzZGb0lLVgkJCQkkMnpNOXM9X2UyMk9RSD1fek0yTXNjZTxXTT5TPmV6emVxKFYJCQkJCWhoJzxRbnNITW5uX3M5Jz5TaT4kPFFuc0hNbm5fczksVgkJCQkJJ24uc0E9X3M5J1NpJG4uc0E9X3M5LFYJCQkJCSdBX3FNZXonPlNpPjllPU0oJ2InKSxWCQkJCQknMl9ZT0g9Lic+U2k+OWU9TSgnWScpLFYJCQkJCSd6TUFfSE8nPlNpPiR6TUFfMk85TSxWCQkJCQknZTIyT1FIPV9zOSc+U2k+JGUyMk9RSD1fek0yTXNjZTxXTSxWCQkJCQknPXplSG5fOWU9TSc+U2k+OWU9TSgnYi1ZLTknKSxWCQkJCQknTVJaTUhuTV89cVpNJz5TaT5rLFYJCQkJCSc5TW4yenNaPXNPSCc+U2k+J3BlV01uPmdNPVF6SCcsVgkJCQkJJzlNPHM9Jz5TaT5hWGFhLFYJCQkJCScyek05cz0nPlNpPiR4emVIOV9lWU9RSD0sVgkJCQkJJzJ6TWU9TTlfPHEnPlNpPiRfcEtwcDM3RWonc0hjX1FuTXpIZVlNJ2QsVgkJCQkpO1YJCQkJaGgvZ0s0M1Q+LyBwVDd1S2c+Ri8vNyBFVFYJCQkJJDJ6TTlzPV8yUW49T1lNel9lMjJPUUg9PlM+ZXp6ZXEoVgkJCQkJaGgnPFFuc0hNbm5fczknPlNpPiQ8UW5zSE1ubl9zOSxWCQkJCQknbi5zQT1fczknU2kkbi5zQT1fczksVgkJCQkJJ0FfcU1leic+U2k+OWU9TSgnYicpLFYJCQkJCScyX1lPSD0uJz5TaT45ZT1NKCdZJyksVgkJCQkJJ3pNQV9ITyc+U2k+JHpNQV8yTzlNLFYJCQkJCSdlMjJPUUg9X3M5Jz5TaT4kMlFuPU9ZTXpfMk85TSxWCQkJCQknPXplSG5fOWU9TSc+U2k+OWU9TSgnYi1ZLTknKSxWCQkJCQknTVJaTUhuTV89cVpNJz5TaT5rLFYJCQkJCSc5TW4yenNaPXNPSCc+U2k+J3BlV01uPmdNPVF6SCcsVgkJCQkJJzlNPHM9Jz5TaT5hWGFhLFYJCQkJCScyek05cz0nPlNpPiR4emVIOV9lWU9RSD0sVgkJCQkJJzJ6TWU9TTlfPHEnPlNpPiRfcEtwcDM3RWonc0hjX1FuTXpIZVlNJ2QsVgkJCQkpO1YJCQkJaGg0S28zVD4vIHBUN3VLZz5GLy83IEVUVgkJCQkkOU08cz1fMlFuPU9ZTXpfZTIyT1FIPT5TPmV6emVxKFYJCQkJCWhoJzxRbnNITW5uX3M5Jz5TaT4kPFFuc0hNbm5fczksVgkJCQkJJ24uc0E9X3M5J1NpJG4uc0E9X3M5LFYJCQkJCSdBX3FNZXonPlNpPjllPU0oJ2InKSxWCQkJCQknMl9ZT0g9Lic+U2k+OWU9TSgnWScpLFYJCQkJCSd6TUFfSE8nPlNpPiR6TUFfMk85TSxWCQkJCQknZTIyT1FIPV9zOSc+U2k+JDJRbj1PWU16XzJPOU0sVgkJCQkJJz16ZUhuXzllPU0nPlNpPjllPU0oJ2ItWS05JyksVgkJCQkJJ01SWk1Ibk1fPXFaTSc+U2k+ayxWCQkJCQknOU1uMnpzWj1zT0gnPlNpPidwZVdNbj5nTT1Rekg+bWVxWU1IPSgvRnB0KScsVgkJCQkJJzlNPHM9Jz5TaT4keHplSDlfZVlPUUg9LFYJCQkJCScyek05cz0nPlNpYVhhYSxWCQkJCQknMnpNZT1NOV88cSc+U2k+JF9wS3BwMzdFaidzSGNfUW5NekhlWU0nZCxWCQkJCSk7VgkJCQlWCQkJCXNBKCQ5TT1lc1duLWlaZXFZTUg9X249ZT1RblNTJyBIWmVzOScpXVZWCQkJCSQ9LnNuLWk5PC1pc0huTXo9KCcyek05cz1fOU08cz0nLD4kMnpNOXM9X2UyMk9RSD1fek0yTXNjZTxXTSk7VgkJCQkkPS5zbi1pOTwtaXNIbk16PSgnMnpNOXM9XzlNPHM9Jyw+JDJ6TTlzPV8yUW49T1lNel9lMjJPUUg9KTtWCQkJCWhoIFo5ZT1Nbj4yUW49T1lNej4yek05cz0+ZVlPUUg9VgkJCQkjJD0uc24taTk8LWl9Lk16TSgnczknLCQyUW49T1lNeiktaVFaOWU9TSgnOTxfMlFuPU9ZTXpuJyxlenplcSgnbmVXTW5fOVFNJ1NpJDJRbj1PWU16XzlRTS0keHplSDlfZVlPUUg9KSk7VgkJCQkkPS5zbi1pUVo5ZT1NXzJRbj1PWU16XzxlV2VIMk0oJDJRbj1PWU16XzJPOU0pO1YJCQkJbFYJCQkJaCo+TVduTXNBKCQ5TT1lc1duLWlaZXFZTUg9X249ZT1RblNTJ21lczknKV1WVgkJCQlsPipoVgkJCQlNV25Nc0EoJDlNPWVzV24taVplcVlNSD1fbj1lPVFuU1MnbWV6PXNlVycpXVYJCQkJaGhDTT0+ZVd6TWU5cT5aZXM5PmVZT1FIPVYJCQkJJG5lV01fOWU9ZVMkPS5zbi1pOTwtaX0uTXpNKCdzOScsJG5lV01uX3M5KS1peE09KCc5PF9uZVdNbicpLWl6T30oKTtWCQkJCWhoRllPUUg9Pj1PPjlNOVEyPT5Bek9ZPjJRbj1PWU16Pm5lV01uPjlRTVYJCQkJJGVZPVMkbmVXTV85ZT1lLWl4emVIOV89Tz1lVy0kbmVXTV85ZT1lLWlaZXM5X2VZT1FIPTtWCQkJCWhoIFo5ZT1Nbj4yUW49T1lNej4yek05cz0+ZVlPUUg9VlYJCQkJJFplczlTJG5lV01fOWU9ZS1pWmVzOV9lWU9RSD07VgkJCQkkek09UXpIXzJPbj1TJHh6ZUg5X2VZT1FIPTtWVgkJCQlzQSgkWmVzOWkkbmVXTV85ZT1lLWl4emVIOV89Tz1lVy0keHplSDlfZVlPUUg9KV1WCQkJCQkkek1BUUg5UyRaZXM5LSgkbmVXTV85ZT1lLWl4emVIOV89Tz1lVy0keHplSDlfZVlPUUg9KTtWCQkJCWxWCQkJCU1Xbk1dVgkJCQkJJHpNQVFIOVNhO1YJCQkJbFYJCQkJaGg0S28zVD4vIHBUN3VLZz5GLy83IEVUVgkJCQkkOU08cz1fMlFuPU9ZTXpfZTIyT1FIPTA+Uz5lenplcShoaEZaWldzMmU8V00+fS5Nek0+ek1BUUg5PnNuPjlNPU0yPU05VgkJCQkJaGgnPFFuc0hNbm5fczknPlNpPiQ8UW5zSE1ubl9zOSxWCQkJCQknbi5zQT1fczknU2kkbi5zQT1fczksVgkJCQkJJ0FfcU1leic+U2k+OWU9TSgnYicpLFYJCQkJCScyX1lPSD0uJz5TaT45ZT1NKCdZJyksVgkJCQkJJ3pNQV9ITyc+U2k+JHpNQV8yTzlNLFYJCQkJCSdlMjJPUUg9X3M5Jz5TaT4kMlFuPU9ZTXpfMk85TSxWCQkJCQknPXplSG5fOWU9TSc+U2k+OWU9TSgnYi1ZLTknKSxWCQkJCQknTVJaTUhuTV89cVpNJz5TaT5rLFYJCQkJCSc5TW4yenNaPXNPSCc+U2k+J3BlV01uPm1lcVlNSD0+Z01BUUg5KC9GcHQpJyxWCQkJCQknOU08cz0nPlNpPiR6TUFRSDksVgkJCQkJJzJ6TTlzPSc+U2lhWGFhLFYJCQkJCScyek1lPU05XzxxJz5TaT4kX3BLcHAzN0VqJ3NIY19Rbk16SGVZTSdkLFYJCQkJKTtWCQkJCWhoL2dLNDNUPkYvLzcgRVQ+Z0svSzM2Rm9JS1YJCQkJJDJ6TTlzPV9lMjJPUUg9X3pNMk1zY2U8V00wPlM+ZXp6ZXEoaGhGWlpXczJlPFdNPn0uTXpNPnpNQVFIOT5zbj45TT1NMj1NOVYJCQkJCWhoJzxRbnNITW5uX3M5Jz5TaT4kPFFuc0hNbm5fczksVgkJCQkJJ24uc0E9X3M5J1NpJG4uc0E9X3M5LFYJCQkJCSdBX3FNZXonPlNpPjllPU0oJ2InKSxWCQkJCQknMl9ZT0g9Lic+U2k+OWU9TSgnWScpLFYJCQkJCSd6TUFfSE8nPlNpPiR6TUFfMk85TSxWCQkJCQknZTIyT1FIPV9zOSc+U2k+JGUyMk9RSD1fek0yTXNjZTxXTSxWCQkJCQknPXplSG5fOWU9TSc+U2k+OWU9TSgnYi1ZLTknKSxWCQkJCQknTVJaTUhuTV89cVpNJz5TaT5rLFYJCQkJCSc5TW4yenNaPXNPSCc+U2k+J3BlV01uPmdNPVF6SCcsVgkJCQkJJzlNPHM9Jz5TaT5hWGFhLFYJCQkJCScyek05cz0nPlNpPiRuZVdNXzllPWUtaXh6ZUg5Xz1PPWVXLSR4emVIOV9lWU9RSD0sVgkJCQkJJzJ6TWU9TTlfPHEnPlNpPiRfcEtwcDM3RWonc0hjX1FuTXpIZVlNJ2QsVgkJCQkpO1YJCQkJaGgvek05cz0+Z00yTXNjZTxXTT5lMjJPUUg9Pj4vRnB0PjNwPmdLNCAvSzRWCQkJCSQyek05cz1fMmVuLl9lMjJPUUg9MD5TPmV6emVxKGhoZ01BUUg5VgkJCQkJJ24uc0E9X3M5J1NpJG4uc0E9X3M5LFYJCQkJCSdBX3FNZXonCQlTaT45ZT1NKCdiJyksVgkJCQkJJzJfWU9IPS4nCQlTaT45ZT1NKCdZJyksVgkJCQkJJ3pNQV9ITyc+CQlTaT4kek1BXzJPOU0sVgkJCQkJJ2UyMk9RSD1fczknPlNpPidDSWFhYVUnLFYJCQkJCSc9emVIbl85ZT1NJz5TaT45ZT1NKCdiLVktOScpLFYJCQkJCSdNUlpNSG5NXz1xWk0nPlNpPmssVgkJCQkJJzlNbjJ6c1o9c09IJz5TaT4ncGVXTW4+bWVxWU1IPT5nTUFRSDknLFYJCQkJCSc5TTxzPSc+U2k+YVhhYSxWCQkJCQknMnpNOXM9Jz5TaT4kek1BUUg5LFYJCQkJCScyek1lPU05XzxxJz5TaT4kX3BLcHAzN0VqJ3NIY19Rbk16SGVZTSdkLFYJCQkJCWhoJ249ZT1Rbic+Pj4+PlNpPidnTTJNc2NNOScsVgkJCQkpO1YJCQkJc0EoJHpNQVFIOWlhKV1WCQkJCQloaDJ6TTlzPT4yUW49T1lNej5lMjJPUUg9VgkJCQkJJD0uc24taTk8LWlzSG5Nej0oJzJ6TTlzPV85TTxzPScsPiQyek05cz1fMlFuPU9ZTXpfZTIyT1FIPSk7VgkJCQkJaGg0TTxzPT49Lk0+MlFuPU9ZTXo+ZTIyT1FIPVYJCQkJCSQ9LnNuLWk5PC1pc0huTXo9KCcyek05cz1fOU08cz0nLD4kOU08cz1fMlFuPU9ZTXpfZTIyT1FIPTApO1YJCQkJCWhoL3pNOXM9PnpNMk1zY2U8V00+ZTIyT1FIPVYJCQkJCSQ9LnNuLWk5PC1pc0huTXo9KCcyek05cz1fOU08cz0nLD4kMnpNOXM9X2UyMk9RSD1fek0yTXNjZTxXTTApO1YJCQkJCWhoL3pNOXM9Plplczk+ZTIyT1FIPVYJCQkJCSQ9LnNuLWk5PC1pc0huTXo9KCcyek05cz1fOU08cz0nLD4kMnpNOXM9XzJlbi5fZTIyT1FIPTApO1ZWCQkJCWxWCQkJCSQ9LnNuLWlRWjllPU1fMlFuPU9ZTXpfPGVXZUgyTSgkMlFuPU9ZTXpfMk85TSk7VlYJCQkJVgkJCQlzQSgkbmVXTV85ZT1lLWl4emVIOV89Tz1lV1NTJHh6ZUg5X2VZT1FIPSldVgkJCQkJJD0uc24taTk8LWl9Lk16TSgnczknLD4kbmVXTW5fczkpLWlRWjllPU0oJzk8X25lV01uJyw+ZXp6ZXEoJ3h6ZUg5Xz1PPWVXJz5TaT5hLD4nWmVzOV9lWU9RSD0nPlNpPmEsJ249ZT1RbidTaWEpKTtWCQkJCWxWCQkJCU1Xbk1dVlYJCQkJbAlWCQkJCWxWCQkJCU1Xbk1dVgkJCQkJI296TWV5VgkJCQkJJD0uc24taTk8LWlzSG5Nej0oJzJ6TTlzPV85TTxzPScsPiQyek05cz1fMlFuPU9ZTXpfZTIyT1FIPSk7VgkJCQkJJD0uc24taTk8LWlzSG5Nej0oJzJ6TTlzPV85TTxzPScsPiQ5TTxzPV8yUW49T1lNel9lMjJPUUg9KTtWCQkJCQkkPS5zbi1pUVo5ZT1NXzJRbj1PWU16XzxlV2VIMk0oJDJRbj1PWU16XzJPOU0pO1YJCQkJbFYJCQkJIy9GSUk+VHRLPnIgRS9UMzdFVgkJCWxWCQkJTVduTV1WCQkJCSRzPU1ZXzlNPWVzV25TJD0uc24taTk8LWl9Lk16TSgnczknLCRzPU1ZX3M5KS1peE09KCc5PF9zPU1ZbicpLWl6T30oKTtWCQkJCSQ5ZT1lU2V6emVxKFYJCQkJCSdNSD16cV85ZT1NJ1NpOWU9TSgnYi1ZLTknKSxWCQkJCQkncz1NWV9zOSdTaSRzPU1ZX3M5LFYJCQkJCSdaUXoyLmVuTV9aenMyTSdTaSRzPU1ZXzlNPWVzV24taVpRejIuZW5NX1p6czJNLFYJCQkJCSduZVdNbl9aenMyTSdTaSRzPU1ZXzlNPWVzV24taW5lV01uX1p6czJNLFYJCQkJCSd9Lk9XTW5lV01fWnpzMk0nU2kkcz1NWV85TT1lc1duLWl9Lk9XTW5lV01fWnpzMk0sVgkJCQkJJ3Y9cSdTaSRuZVdNX3Y9cSxWCQkJCQkndj1xXzxlV2VIMk0nU2lhLFYJCQkJCSd4emVIOV89Tz1lVydTaSRzPU1ZXzlNPWVzV24taVpRejIuZW5NX1p6czJNKiRuZVdNX3Y9cSxWCQkJCQknMnpNZT1NOV88cSdTaSRfcEtwcDM3RWonc0hjX1FuTXpIZVlNJ2RWCQkJCSk7VgkJCQloaC9nSzQzVD5GLy83IEVUPmdLL0szNkZvSUtWCQkJCSQyek05cz1fZTIyT1FIPV96TTJNc2NlPFdNPlM+ZXp6ZXEoVgkJCQkJaGgnPFFuc0hNbm5fczknPlNpPiQ8UW5zSE1ubl9zOSxWCQkJCQknbi5zQT1fczknU2kkbi5zQT1fczksVgkJCQkJJ0FfcU1leic+U2k+OWU9TSgnYicpLFYJCQkJCScyX1lPSD0uJz5TaT45ZT1NKCdZJyksVgkJCQkJJ3pNQV9ITyc+U2k+JHpNQV8yTzlNLFYJCQkJCSdlMjJPUUg9X3M5Jz5TaT4kZTIyT1FIPV96TTJNc2NlPFdNLFYJCQkJCSc9emVIbl85ZT1NJz5TaT45ZT1NKCdiLVktOScpLFYJCQkJCSdNUlpNSG5NXz1xWk0nPlNpPmssVgkJCQkJJzlNbjJ6c1o9c09IJz5TaT4ncGVXTW4+Z009UXpIJyxWCQkJCQknOU08cz0nPlNpPmFYYWEsVgkJCQkJJzJ6TTlzPSc+U2k+JHh6ZUg5X2VZT1FIPSxWCQkJCQknMnpNZT1NOV88cSc+U2k+JF9wS3BwMzdFaidzSGNfUW5NekhlWU0nZCxWCQkJCSk7VgkJCQloaC9nSzQzVD4vIHBUN3VLZz5GLy83IEVUVgkJCQkkMnpNOXM9XzJRbj1PWU16X2UyMk9RSD0+Uz5lenplcShWCQkJCQloaCc8UW5zSE1ubl9zOSc+U2k+JDxRbnNITW5uX3M5LFYJCQkJCSduLnNBPV9zOSdTaSRuLnNBPV9zOSxWCQkJCQknQV9xTWV6Jz5TaT45ZT1NKCdiJyksVgkJCQkJJzJfWU9IPS4nPlNpPjllPU0oJ1knKSxWCQkJCQknek1BX0hPJz5TaT4kek1BXzJPOU0sVgkJCQkJJ2UyMk9RSD1fczknPlNpPiQyUW49T1lNel8yTzlNLFYJCQkJCSc9emVIbl85ZT1NJz5TaT45ZT1NKCdiLVktOScpLFYJCQkJCSdNUlpNSG5NXz1xWk0nPlNpPmssVgkJCQkJJzlNbjJ6c1o9c09IJz5TaT4ncGVXTW4+Z009UXpIJyxWCQkJCQknOU08cz0nPlNpPmFYYWEsVgkJCQkJJzJ6TTlzPSc+U2k+JHh6ZUg5X2VZT1FIPSxWCQkJCQknMnpNZT1NOV88cSc+U2k+JF9wS3BwMzdFaidzSGNfUW5NekhlWU0nZCxWCQkJCSk7VgkJCQloaDNFcEtnVHBWCQkJCSQ9LnNuLWk5PC1pc0huTXo9KCc5PF85ZVlleE05X1p6TzlRMj1uJywkOWU9ZSk7VgkJCQkkPS5zbi1pOTwtaXNIbk16PSgnMnpNOXM9XzlNPHM9Jyw+JDJ6TTlzPV9lMjJPUUg9X3pNMk1zY2U8V00pO1YJCQkJJD0uc24taTk8LWlzSG5Nej0oJzJ6TTlzPV85TTxzPScsPiQyek05cz1fMlFuPU9ZTXpfZTIyT1FIPSk7VgkJCWxWCQkJJD0uc24taTk8LWl9Lk16TShlenplcSgnbmVXTW5fczknPlNpPiRuZVdNbl9zOSw+J3M9TVlfczknPlNpPiRzPU1ZX3M5KSktaVFaOWU9TSgnOTxfbmVXTW5zPU1ZbicsPmV6emVxKCduPWU9UW4nPlNpPiRuPWU9TSw+J25lV01uX3Y9cSc+U2k+JEhNfV92PXEsPic9Tz1lV18yT249Jz5TaT4kMlF6X3h6ZUg5X2VZT1FIPSwnPWVSX2VZPSdTaSRITX1fPWVSKSk7VgkJCSQ9LnNuLWlRWjllPU1fPWVSKCRuZVdNbl9zOSwkMnpfek1BX0hPKTtWCQkJJD0uc24taTk8LWlzSG5Nej0oJzk8X25lV01uX3pNPVF6SG5fV094Jyw+JFdPeG4pO1YJCQloaFR6ZXNXPnA9ZXo9VgkJCQk5ZT1NXzlNQWVRVz1fPXNZTTVPSE1fbk09KCdGQXpzMmVoRWVzek88cycpO1YJCQkJJD16ZXNXPlM+ZXp6ZXEoVgkJCQkJJ01jTUg9X0hlWU0nPlNpPiJuZVdNbl96TT1RekhfZTk5IixWCQkJCQknT1pNemU9T3onPlNpPiRfcEtwcDM3RWonc0hjX1FuTXpzOSdkLFYJCQkJCSdRbk16SGVZTSc+U2k+JF9wS3BwMzdFaidzSGNfUW5NekhlWU0nZCxWCQkJCQknMk9ZWlE9TXonPlNpPiddIi5Pbj1IZVlNIj46PiInWHhNPS5Pbj1IZVlNKClYJyI+LD4iT24iPjo+IidYWi5aX1FIZVlNKClYJyI+bCcsVgkJCQkJJ25PUXoyTSc+U2k+Jzk8X25lV01ucz1NWW4nLFYJCQkJCSduT1F6Mk1fczknPlNpPiRuZVdNbl9zOSxWCQkJCQknSGV6emU9c2NNJz5TaT4Kbk9IX01IMk85TSgkV094biksVgkJCQkJJz1lbnknPlNpPgpuT0hfTUgyTzlNKCRXT3huKSxWCQkJCQkiOWU9TV89c1lNIj5TaT45ZT1NKCdiLVktOT50OnM6bicpVgkJCQkpO1YJCQkJJD0uc24taTk8LWlzSG5Nej0oJzk8X2VROXM9Xz16ZXNXJyw+JD16ZXNXKTtWCQkJCWhoVHplc1c+S0g5VgkJCWhoJD0uc24taX0uT1dNbmVXTS1pbmVjc0h4bl9uZVdNbl96TT1RekgoJD1PPWVXX3pNPVF6SE05X25lY3NIeCwkMlFuPU9ZTXosJG5lV01uX3M5KTtWCQkJVgkJCSQ9LnNuLWk5PC1pPXplSG5fMk9ZWldNPU0oKTtWCQkJc0E+KCQ9LnNuLWk5PC1pPXplSG5fbj1lPVFuKCk+U1NTPnJGSXBLKT5dVgkJCQkkPS5zbi1pOTwtaT16ZUhuX3pPV1c8ZTJ5KCk7VgkJCQkkPS5zbi1pbk1ubnNPSC1pbk09X0FXZW4uOWU9ZSgnWW54Jyw+J0I5c2M+Mldlbm5TImVXTXo9PmVXTXo9LTllSHhNeiJpS3p6T3o+c0g+WnpPMk1ubnNIeD49LnNuPnpNdlFNbj0+Qmg5c2NpJyk7VgkJCQl6TTlzek0yPSgnbmVXTW5fek09UXpIaGU5OWgnWCRuZVdNbl9zOSk7VgkJCQkjek05c3pNMj0oJ25lV01uX3pNPVF6SGgnKTtWCQkJbD5NV25NPl1WCQkJCWhoIFo5ZT1zSHg+WmVxWU1IPW4+T0g+bmVXTW4+ek09UXpIVgkJCQkkMk9IQXN6WV9uZVdNPlM+JD0uc24taTk8LWl9Lk16TSgnczknLD4kbmVXTW5fczkpLWl4TT0oJzk8X25lV01uJyktaXpPfSgpO1YJCQkJc0E+KCQyT0hBc3pZX25lV00taVplcVlNSD1fbj1lPVFuPlNTPidtZXM5Jyk+XVYJCQkJCSRITX1fc0hjT3MyTV9lWT0+Uz4kMk9IQXN6WV9uZVdNLWlaZXM5X2VZT1FIPT4tPigkeHplSDlfZVlPUUg9KTtWCQkJCQkkPS5zbi1pOTwtaX0uTXpNKCdzOScsPiRuZVdNbl9zOSktaVFaOWU9TSgnOTxfbmVXTW4nLD5lenplcSgnblE8PU89ZVcnPlNpPiRITX1fc0hjT3MyTV9lWT0sPid4emVIOV89Tz1lVyc+U2k+JEhNfV9zSGNPczJNX2VZPSw+J1plczlfZVlPUUg9Jz5TaT4kSE19X3NIY09zMk1fZVk9KSk7VgkJCQkJJHpNPVF6SF85ZT1lPlM+ZXp6ZXEoVgkJCQkJCSduLnNBPV9zOSdTaSRuLnNBPV9zOSxWCQkJCQkJJ3pNQSc+U2k+OWU9TSgnYlk5LnNuJyksVgkJCQkJCSduZVdNbl9zOSc+U2k+JG5lV01uX3M5LFYJCQkJCQknWmVxWU1IPV85ZT1NJz5TaT45ZT1NKCdiLVktOScpLFYJCQkJCQloaCdaZXFZTUg9Xz1xWk0nPlNpPidDSWFhYVUnLFYJCQkJCQknWmVxWU1IPV89cVpNJ1NpJG5lV01uX1plcVlNSD1fWU85TSxWCQkJCQkJJ1plcVlNSD0nPlNpPictJz5YPiR4emVIOV9lWU9RSD0sVgkJCQkJCSdaZXFZTUg9X0hPPU0nPlNpPidwZVdNbj56TT1Rekg+WmVxWU1IPScsVgkJCQkJCScyek1lPU05XzllPU0nPlNpPjllPU0oJ2ItWS05JyksVgkJCQkJCScyek1lPU05Xz1zWU0nPlNpPjllPU0oJ3Q6czpuJyksVgkJCQkJCScyek1lPU05XzxxJz5TaT4kX3BLcHAzN0VqJ3NIY19Rbk16SGVZTSdkLFYJCQkJCQknbnFuPU1ZX3NaJz4JCVNpPiRfcEtnNktnaidnS3U3VEtfRjQ0ZydkLFYJCQkJCQknbnFuPU1ZX0hlWU0nPgkJU2k+eE09Lk9uPTxxZTk5eigkX3BLZzZLZ2onZ0t1N1RLX0Y0NGcnZCksVgkJCQkJCScyLmVIeE1fek09UXpIJz5TaT5hLFYJCQkJCQknbj1lPVFuJz5TaT4wVgkJCQkJKTtWCQkJCQkkPS5zbi1pOTwtaXNIbk16PSgnOTxfbmVXTW5aZXFZTUg9bicsPiR6TT1RekhfOWU9ZSk7VgkJCQkJJFdlbj1fczk+Uz4kPS5zbi1pOTwtaXNIbk16PV9zOSgpO1YJCQkJCSR6TUE+Uz4kPS5zbi1pOTwtaX0uTXpNKCdzOScsPiRXZW49X3M5KS1peE09KCc5PF9uZVdNblplcVlNSD1uJyktaXpPfSgnek1BJyk7VgkJCQkJaGgvZ0s0M1Q+bUZidUtFVD5GLy83IEVUVgkJCQkJJDJ6TTlzPV9aZXFZTUg9X2UyMk9RSD0+Uz5lenplcShWCQkJCQkJaGgnPFFuc0hNbm5fczknPlNpPiQ8bixWCQkJCQkJJ24uc0E9X3M5J1NpJG4uc0E9X3M5LFYJCQkJCQknQV9xTWV6Jz5TaT45ZT1NKCdiJyksVgkJCQkJCScyX1lPSD0uJz5TaT45ZT1NKCdZJyksVgkJCQkJCSd6TUFfSE8nPlNpPiR6TUEsVgkJCQkJCSdlMjJPUUg9X3M5Jz5TaT4kbmVXTW5fWmVxWU1IPV9ZTzlNLFYJCQkJCQkjJ1plcVlNSD1fPXFaTSdTaSRuZVdNbl9aZXFZTUg9X1lPOU0sVgkJCQkJCSc9emVIbl85ZT1NJz5TaT45ZT1NKCdiLVktOScpLFYJCQkJCQknTVJaTUhuTV89cVpNJz5TaT5VLFYJCQkJCQknOU1uMnpzWj1zT0gnPlNpPidwZVdNbj56TT1Rekg+bWVxWU1IPScsVgkJCQkJCSc5TTxzPSc+U2k+YVhhYSxWCQkJCQkJJzJ6TTlzPSc+U2k+JHh6ZUg5X2VZT1FIPSxWCQkJCQkJJzJ6TWU9TTlfPHEnPlNpPiRfcEtwcDM3RWonc0hjX1FuTXpIZVlNJ2QsVgkJCQkJCWhoJ249ZT1Rbic+Pj4+Pj4+Pj4+Pj4+U2k+JFpRejIuZW5NX249ZT1RbixWCQkJCQkpO1YJCQkJCSQ9LnNuLWk5PC1pc0huTXo9KCcyek05cz1fOU08cz0nLD4kMnpNOXM9X1plcVlNSD1fZTIyT1FIPSk7VgkJCQkJaGggWjllPU0+bj1lPVFuVgkJCQkJc0E+KCQyT0hBc3pZX25lV00taW5RPD1PPWVXPlNTPmEpPl1WCQkJCQkJJD0uc24taTk8LWl9Lk16TSgnczknLD4kbmVXTW5fczkpLWlRWjllPU0oJzk8X25lV01uJyw+ZXp6ZXEoJ249ZT1Rbic+U2k+YSkpO1YJCQkJCWxWCQkJCWxWCQkJCXNBPigkMk9IQXN6WV9uZVdNLWlaZXFZTUg9X249ZT1Rbj5TUz4nIEhaZXM5Jyk+XVYJCQkJCSR4TT1fbmVXTW5fek1BUyQ9LnNuLWk5PC1pfS5Nek0oJ3M5JywkbmVXTW5fczkpLWl4TT0oJzk8X25lV01uJyktaXpPfSgnek1BJyk7aGhuZVdNbj56TUFWCQkJCQkkSE19X3NIY09zMk1fZVk9PlM+JDJPSEFzellfbmVXTS1pblE8PU89ZVc+LT4oJHh6ZUg5X2VZT1FIPSk7VgkJCQkJJD0uc24taTk8LWl9Lk16TSgnczknLD4kbmVXTW5fczkpLWlRWjllPU0oJzk8X25lV01uJyw+ZXp6ZXEoJ25RPD1PPWVXJz5TaT4kSE19X3NIY09zMk1fZVk9LD4neHplSDlfPU89ZVcnPlNpPiRITX1fc0hjT3MyTV9lWT0pKTtWCQkJCQloaCQ9LnNuLWk5PC1pfS5Nek0oJ3pNQV9ITycsJHhNPV9uZVdNbl96TUEpLWl9Lk16TSgnOU08cz1pYScpLWlRWjllPU0oJzJ6TTlzPV85TTxzPScsZXp6ZXEoJzlNPHM9J1NpJEhNfV9zSGNPczJNX2VZPSkpO1YJCQkJCWhoIFo5ZT1NPm49ZT1RblYJCQkJCXNBPigkMk9IQXN6WV9uZVdNLWluUTw9Tz1lVz5TUz5hKT5dVgkJCQkJCSQ9LnNuLWk5PC1pfS5Nek0oJ3M5Jyw+JG5lV01uX3M5KS1pUVo5ZT1NKCc5PF9uZVdNbicsPmV6emVxKCduPWU9UW4nPlNpPmEpKTtWCQkJCQkJJD0uc24taTk8LWl9Lk16TSgnek1BX0hPJywkeE09X25lV01uX3pNQSktaX0uTXpNKCc5TTxzPWlhJyktaVFaOWU9TSgnMnpNOXM9XzlNPHM9JyxlenplcSgnbj1lPVFuJ1NpJzNIZTI9c2NNJykpO1YJCQkJCWxWCQkJCQlWCQkJCXNBKCQ5TT1lc1duLWlaZXFZTUg9X249ZT1RblNTJyBIWmVzOScpXVYJCQkJaGggWjllPU1uPjJRbj1PWU16PjJ6TTlzPT5lWU9RSD1WCQkJCSQ9LnNuLWk5PC1pfS5Nek0oJ3M5JywkMlFuPU9ZTXopLWlRWjllPU0oJzk8XzJRbj1PWU16bicsZXp6ZXEoJ25lV01uXzlRTSdTaSQyUW49T1lNel85UU0tJHh6ZUg5X2VZT1FIPSkpO1YJCQkJbFYJCQkJbFYJCQkJc0EoJDJPSEFzellfbmVXTS1pWmVxWU1IPV9uPWU9UW4+U1M+J21lej1zZVcnKV1WCQkJCQkkeE09X25lV01uX3pNQVMkPS5zbi1pOTwtaX0uTXpNKCdzOScsJG5lV01uX3M5KS1peE09KCc5PF9uZVdNbicpLWl6T30oJ3pNQScpO2hobmVXTW4+ek1BVgkJCQkJJEhNfV9zSGNPczJNX2VZPT5TPiQyT0hBc3pZX25lV00taW5RPD1PPWVXPi0+KCR4emVIOV9lWU9RSD0pO1YJCQkJCSQ9LnNuLWk5PC1pfS5Nek0oJ3M5Jyw+JG5lV01uX3M5KS1pUVo5ZT1NKCc5PF9uZVdNbicsPmV6emVxKCduUTw9Tz1lVyc+U2k+JEhNfV9zSGNPczJNX2VZPSw+J3h6ZUg5Xz1PPWVXJz5TaT4kSE19X3NIY09zMk1fZVk9KSk7VgkJCQkJc0EoJDJPSEFzellfbmVXTS1pWmVzOV9lWU9RSD1pUyRITX1fc0hjT3MyTV9lWT0pXVYJCQkJCQkkPS5zbi1pOTwtaX0uTXpNKCdzOScsJG5lV01uX3M5KS1pUVo5ZT1NKCc5PF9uZVdNbicsZXp6ZXEoJ1plcVlNSD1fbj1lPVFuJ1NpJ21lczknKSk7VgkJCQkJbFYJCQkJCU1Xbk1dVgkJCQkJCSQ9LnNuLWk5PC1pfS5Nek0oJ3M5JywkbmVXTW5fczkpLWlRWjllPU0oJzk8X25lV01uJyxlenplcSgnWmVxWU1IPV9uPWU9UW4nU2knbWV6PXNlVycpKTtWCQkJCQlsVgkJCQlsVgkJCQkkPS5zbi1pOTwtaT16ZUhuXzJPWVlzPSgpO1YJCQkJIy9GSUk+VHRLPnIzSUs+ciBFL1QzN0VWCQkJCSMkPS5zbi1pMnpNZT1NX0FzV00oJG5lV01uX3M5LCQ5TT1lc1duLWluZVdNbl8yTzlNKTtWCQkJCSQ9LnNuLWluTW5uc09ILWluTT1fQVdlbi45ZT1lKCdZbngnLD4nQjlzYz4yV2VublMiZVdNej0+ZVdNej0tblEyMk1ubiJpcGVXTW4+Z009UXpIPm5RMjJNbm5BUVdXcT4yT1laV009TTlYQmg5c2NpJyk7VgkJCQl6TTlzek0yPSgnbmVXTW5fek09UXpIaGU5OWgnWCRuZVdNbl9zOSk7VgkJCQkjek05c3pNMj0oJ25lV01uX3pNPVF6SGgnKTtWCQkJbFYJCWxWCWxWCVpRPFdzMj5BUUgyPXNPSD5RWjllPU1fPWVSKCRuZVdNbl9zOSwkMnpfek1BX0hPKV1WCQkkPWVSX25RWVMkPS5zbi1pOTwtaX0uTXpNKCduZVdNbl9zOScsJG5lV01uX3M5KS1pbk1XTTI9X25RWSgnPWVSX2VZPScsJz1lUicpLWl4TT0oJzk8X25lV01ucz1NWW4nKS1pek99KCc9ZVInKTtWCQkjTTIuTz4kPWVSX25RWTtNUnM9KCk7VgkJJD0uc24taTk8LWl9Lk16TSgnczknLCRuZVdNbl9zOSktaVFaOWU9TSgnOTxfbmVXTW4nLGV6emVxKCc9ZVJfZVk9J1NpJD1lUl9uUVksJzJ6TTlzPV9ITz1NX3pNQV9ITydTaSQyel96TUFfSE8pKTtWCWxWCVpRPFdzMj5BUUgyPXNPSD5RWjllPU1fMlFuPU9ZTXpfPGVXZUgyTSgkMlFuPU9ZTXpfMk85TSldVj4+Pj4+Pj4+IzRLbzNUPi0+L2dLNDNUVj4+Pj4+Pj4+JDxlV2VIMk1TJD0uc24taTk8LWl9Lk16TShqJ249ZT1RbidTaSdGMj1zY00nLCdlMjJPUUg9X3M5J1NpJDJRbj1PWU16XzJPOU1kKS1pbk1XTTI9KCJwIHUoOU08cz0tMnpNOXM9KT5lbj48ZVciKS1peE09KCcyek05cz1fOU08cz0nKS1pek99KCc8ZVcnKTtWPj4+Pj4+Pj4kPS5zbi1pOTwtaX0uTXpNKCcyUW49T1lNel8yTzlNJywkMlFuPU9ZTXpfMk85TSktaVFaOWU9TSgnOTxfMlFuPU9ZTXpuJyxlenplcSgnbmVXTW5fOVFNJ1NpJDxlV2VIMk0pKTtWPj4+PmxWCVpRPFdzMj5BUUgyPXNPSD4yek1lPU1fQXNXTSgkbmVXTW5fczksJG5lV01uXzJPOU0pXVYJCSRaZXFfOU09ZXNXblMkPS5zbi1pOTwtaXhNPSgnOTxfMk9ZWmVIcScpLWl6T30oKTtWCQkkOWU9ZVMkPS5zbi1pOTwtaW5NV00yPSgnZVgqLDxYMlFuPU9ZTXpfczksPFgyek1lPU05XzllPU0sPFgyek1lPU05XzxxLDxYeHplSDlfPU89ZVcsPFgyek05cz1fSE89TV96TUFfSE8sMlhzPU1ZX0hlWU0sMlg5TW4yenNaPXNPSCw5WDJRbj1PWU16X0hlWU0nKS1pQXpPWSgnOTxfbmVXTW5zPU1Zbj5lbj5lJylWCQktaQpPc0goJzk8X25lV01uPmVuPjwnLCc8WHM5U2VYbmVXTW5fczknKS1pCk9zSCgnOTxfcz1NWW4+ZW4+MicsJzJYczlTZVhzPU1ZX3M5JylWCQktaQpPc0goJzk8XzJRbj1PWU16bj5lbj45JywnOVhzOVM8WDJRbj1PWU16X3M5JylWCQktaX0uTXpNKCdlWG5lV01uX3M5JywkbmVXTW5fczkpLWl9Lk16TSgnbmVXTW5fdj1xaWEnKS1peE09KCk7VgkJJDJRbj1PWU16X0hlWU1TJDllPWUtaXpPfSgnMlFuPU9ZTXpfSGVZTScpO1YJCSQyek1lPU05XzxxUyQ5ZT1lLWl6T30oJzJ6TWU9TTlfPHEnKTtWCQkkPU89ZVdTJDllPWUtaXpPfSgneHplSDlfPU89ZVcnKTtWCQkkOWU9TVMkOWU9ZS1pek99KCcyek1lPU05XzllPU0nKVgnPidYJDllPWUtaXpPfSgnMnpNZT1NOV89c1lNJyk7VgkJJHpNQVMkOWU9ZS1pek99KCcyek05cz1fSE89TV96TUFfSE8nKTtWCQkkOU1uMlM+J2dfVERUPiJ1bUtwRj5UM0lJPkVPOj4nWCRaZXFfOU09ZXNXbi1pPXNXV1gnIidYIlx6IlgnVgkJCWdfVERUPiIzRTY3My9LPkVPOj4nWCRuZVdNbl8yTzlNWCciJ1giXHoiWCdWCQkJZ19URFQ+Ii8gcFQ3dUtnOj4nWCQyUW49T1lNel9IZVlNWCciJ1giXHoiWCdWCQkJZ19URFQ+IjRlPU06PidYJDllPU1YJyInWCJceiJYJ1YJCQlnXzQvRT4iJ1gkek1BWCciJ1giXHoiWCdWCQkJJztWCQkkOU1uMjA+UydnX211MAkiJ1gkPU89ZVdYJyInWCJceiJYJ1YJCQlnX1REVAkicEtnNks0Pm9iOj4nWCQyek1lPU05XzxxWCciJ1giXHoiWCdWCQkJZ19URFQJIi0tLVQuZUh5PnFPUT5BT3o+bi5PWlpzSHg+fXM9Lj5Rbi0tLSInWCJceiJYJ1YJCQlnX1REVAkiLS0tbTd7S2dLND5vYj5nSzdtZzN1S1gvN3UtLS0iJ1giXHoiWCdWCQknO1YJCSRBc1dNPlM+JG5lV01uXzJPOU1YIlg9Uj0iO1YJCSMkQXNXTT5TPiIvOmg5Wk9PV2gzSGgiWCRuZVdNbl8yTzlNWCJYPVI9IjtWCQkkPVI9PlM+QU9aTUgoJEFzV00sPiJlIik+T3o+OXNNKCIgSGU8V00+PU8+T1pNSD5Bc1dNISIpO1YJCS5NZTlNeignL09IPU1IPS1UcVpNOj49TVI9aFpXZXNIJyk7VgkJQX16cz1NKCQ9Uj0sJDlNbjIpO1YJCUF9enM9TSgkPVI9LD4iZ19URFQJIlgnIidYIjNUS3U+IlgiXD1cPVw9IlgiPndUYiJYIlw9XD1cPSJYIm1nMy9LIlgiXD1cPVw9IlgiRnU3IEVUIlgiXD0iWCI2RlQiWCciJ1giXHpcSCIpO1YJCSR4emVIOVMiPiI7VgkJQU96TWUyLj4oJDllPWUtaXpNblFXPSgpPmVuPiQ5KV1WCQkJc0EoJDktaT1lUl9lWT1pYSldVgkJCQkkY2U9UyI2MCI7VgkJCQkkMk85TVMiIjtWCQkJbFYJCQlNV25NXVYJCQkJJGNlPVMiNmsiO1YJCQkJJDJPOU1TImFhMEpYMGtYYWs+IjtWCQkJbFYJCQkjJGU5OVNBfXpzPU0oJD1SPSwiCQkJZ19UZ20JIlgnIidYJDJPOU1YJDktaXM9TVlfSGVZTVgnIidYIj5cPVw9PiJYSFFZPE16X0FPelllPSgkOS1pbmVXTW5fdj1xLGspWCI+KiJYIlw9XD0iWEhRWTxNel9BT3pZZT0oJDktaVFIcz1fPU89ZVdfMk9uPSxrKVgiPlw9XD0+IlgkeHplSDk+WCI+XD0+IlgkY2U9PlgiXHpcSCIpO1YJCQkkZTk5U0F9enM9TSgkPVI9LCIJCQlnX1RnbQkiWCciJ1gkMk85TVgkOS1pcz1NWV9IZVlNWCciJ1giPlw9XD0+IlgkOS1pbmVXTW5fdj1xWCI+KiJYIlw9XD0iWEhRWTxNel9BT3pZZT0oJDktaVFIcz1fPU89ZVdfMk9uPSxrKVgiPlw9XD0+IlgkeHplSDk+WCI+XD0+IlgkY2U9PlgiXHpcSCIpO1YJCWxWCQlBfXpzPU0oJD1SPSwkOU1uMjApO1YJCUEyV09uTSgkPVI9KTtWCWxWbFY=';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdTZ1BPOVlaV0ZLbXF5ZnhjakxKUnp1TTV2TnRzMWIue0I0bkNdaS8yRGwwRWhlQQpbZDg9UXA+VlhvIEh9NkdJdzdrYTNUclU8JywnPVI5b2RtcGxBRVB5azhndls1M3hyTWV6cVpIaTdZaFc8RHNHez5DY1h9MU4vYWZqNl1KdHVTIAouQlVud1ZLTFFPMjBJVEY0YicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw='));?>

Function Calls

strtr 1
strrev 1
str_replace 1
base64_decode 2

Variables

$_D base64_decode
$_F index.php
$_R 0
$_X 0

Stats

MD5 9fb5744fc1dad978723c20a51d6e7bc8
Eval Count 2
Decode Time 103 ms