Commit ff8836d5 authored by panjalasanthosh's avatar panjalasanthosh
Browse files

03-03-2021

parents
No related merge requests found
Pipeline #645 failed with stages
Showing with 4720 additions and 0 deletions
+4720 -0
<?
session_start();
include ('../init.php');
include ('fn_common.php');
checkUserSession();
loadLanguage($_SESSION["language"], $_SESSION["units"]);
// check privileges
if ($_SESSION["privileges"] == 'subuser')
{
$user_id = $_SESSION["manager_id"];
}
else
{
$user_id = $_SESSION["user_id"];
}
if(@$_GET['cmd'] == 'load_rilogbook_list')
{
$imei = @$_GET['imei'];
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
if(!$sidx) $sidx =1;
// get records number
if ($_SESSION["privileges"] == 'subuser')
{
$q = "SELECT * FROM `gs_rilogbook_data` WHERE `imei` IN (".$_SESSION["privileges_imei"].")";
}
else
{
$q = "SELECT * FROM `gs_rilogbook_data` WHERE `imei` IN (".getUserObjectIMEIs($user_id).")";
}
if (isset($imei))
{
$q .= ' AND `imei`="'.$imei.'"';
}
$group = '';
if ($_GET['drivers'] == 'true')
{
$group .= '"da",';
}
if ($_GET['passengers'] == 'true')
{
$group .= '"pa",';
}
if ($_GET['trailers'] == 'true')
{
$group .= '"ta",';
}
if ($group == '')
{
$group = '""';
}
$group = rtrim($group, ',');
$q .= ' AND `group` IN ('.$group.')';
if (isset($_GET['dtf']) && isset($_GET['dtt']))
{
$q .= " AND dt_server BETWEEN '".convUserUTCTimezone($_GET['dtf'])."' AND '".convUserUTCTimezone($_GET['dtt'])."'";
}
$r = mysqli_query($ms, $q);
if (!$r){die;}
$count = mysqli_num_rows($r);
if( $count >0 )
{
$total_pages = ceil($count/$limit);
}
else
{
$total_pages = 1;
}
if ($page > $total_pages) $page=$total_pages;
$start = $limit*$page - $limit; // do not put $limit*($page - 1)
if ($_SESSION["privileges"] == 'subuser')
{
$q = "SELECT * FROM `gs_rilogbook_data` WHERE `imei` IN (".$_SESSION["privileges_imei"].")";
}
else
{
$q = "SELECT * FROM `gs_rilogbook_data` WHERE `imei` IN (".getUserObjectIMEIs($user_id).")";
}
if (isset($imei))
{
$q .= ' AND `imei`="'.$imei.'"';
}
$group = '';
if ($_GET['drivers'] == 'true')
{
$group .= '"da",';
}
if ($_GET['passengers'] == 'true')
{
$group .= '"pa",';
}
if ($_GET['trailers'] == 'true')
{
$group .= '"ta",';
}
if ($group == '')
{
$group = '""';
}
$group = rtrim($group, ',');
$q .= ' AND `group` IN ('.$group.')';
if (isset($_GET['dtf']) && isset($_GET['dtt']))
{
$q .= " AND dt_server BETWEEN '".convUserUTCTimezone($_GET['dtf'])."' AND '".convUserUTCTimezone($_GET['dtt'])."'";
}
$q .= " ORDER BY $sidx $sord LIMIT $start, $limit";
$r = mysqli_query($ms, $q);
if (!$r){die;}
$responce = new stdClass();
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
$i=0;
while($row = mysqli_fetch_array($r))
{
$rilogbook_id = $row['rilogbook_id'];
$dt_tracker = convUserTimezone($row['dt_tracker']);
$imei = $row['imei'];
$group = $row["group"];
$assign_id = strtoupper($row["assign_id"]);
$lat = $row["lat"];
$lng = $row["lng"];
$object_name = getObjectName($imei);
if ($group == 'da')
{
$q2 = "SELECT * FROM `gs_user_object_drivers` WHERE `user_id`='".$user_id."' AND `driver_assign_id`='".$assign_id."'";
$r2 = mysqli_query($ms, $q2);
$row2 = mysqli_fetch_array($r2);
if ($row2)
{
$assign_id = '<a href="#" onclick="utilsShowDriverInfo(\''.$row2["driver_id"].'\');">';
$assign_id .= $row2["driver_name"];
$assign_id .= '</a>';
}
$group = $la['DRIVER'];
}
else if ($group == 'pa')
{
$q2 = "SELECT * FROM `gs_user_object_passengers` WHERE `user_id`='".$user_id."' AND `passenger_assign_id`='".$assign_id."'";
$r2 = mysqli_query($ms, $q2);
$row2 = mysqli_fetch_array($r2);
if ($row2)
{
$assign_id = '<a href="#" onclick="utilsShowPassengerInfo(\''.$row2["passenger_id"].'\');">';
$assign_id .= $row2["passenger_name"];
$assign_id .= '</a>';
}
$group = $la['PASSENGER'];
}
else if ($group == 'ta')
{
$q2 = "SELECT * FROM `gs_user_object_trailers` WHERE `user_id`='".$user_id."' AND `trailer_assign_id`='".$assign_id."'";
$r2 = mysqli_query($ms, $q2);
$row2 = mysqli_fetch_array($r2);
if ($row2)
{
$assign_id = '<a href="#" onclick="utilsShowTrailerInfo(\''.$row2["trailer_id"].'\');">';
$assign_id .= $row2["trailer_name"];
$assign_id .= '</a>';
}
$group = $la['TRAILER'];
}
$lat = sprintf('%0.6f', $lat);
$lng = sprintf('%0.6f', $lng);
$position = '<a href="http://maps.google.com/maps?q='.$lat.','.$lng.'&t=m" target="_blank">'.$lat.' &deg;, '.$lng.' &deg;</a>';
if ($row["address"] != '')
{
$position .= ' - '.$row["address"];
}
// set modify buttons
$modify = '</a><a href="#" onclick="rilogbookDelete(\''.$rilogbook_id.'\');" title="'.$la['DELETE'].'"><img src="theme/images/remove3.svg" /></a>';
// set row
$responce->rows[$i]['id']=$rilogbook_id;
$responce->rows[$i]['cell']=array($dt_tracker,$object_name,$group,$assign_id,$position,$modify);
$i++;
}
header('Content-type: application/json');
echo json_encode($responce);
die;
}
if(@$_POST['cmd'] == 'delete_record')
{
$rilogbook_id = $_POST["rilogbook_id"];
$q = "DELETE FROM `gs_rilogbook_data` WHERE `rilogbook_id`='".$rilogbook_id."'";
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_selected_records')
{
$items = $_POST["items"];
for ($i = 0; $i < count($items); ++$i)
{
$item = $items[$i];
$q = "DELETE FROM `gs_rilogbook_data` WHERE `rilogbook_id`='".$item."'";
$r = mysqli_query($ms, $q);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_all_records')
{
if ($_SESSION["privileges"] == 'subuser')
{
$q = "DELETE FROM `gs_rilogbook_data` WHERE `imei` IN (".$_SESSION["privileges_imei"].")";
}
else
{
$q = "DELETE FROM `gs_rilogbook_data` WHERE `imei` IN (".getUserObjectIMEIs($user_id).")";
}
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
?>
\ No newline at end of file
<?
// describe route array data
// $route[0] - dt_tracker
// $route[1] - lat
// $route[2] - lng
// $route[3] - altitude
// $route[4] - angle
// $route[5] - speed
// $route[6] - params
function getRouteRaw($imei, $accuracy, $dtf, $dtt)
{
global $ms;
$route = array();
$q = "SELECT DISTINCT dt_tracker,
lat,
lng,
altitude,
angle,
speed,
params
FROM `gs_object_data_".$imei."` WHERE dt_tracker BETWEEN '".$dtf."' AND '".$dtt."' ORDER BY dt_tracker ASC";
$r = mysqli_query($ms, $q);
while($route_data=mysqli_fetch_array($r))
{
$dt_tracker = convUserTimezone($route_data['dt_tracker']);
$lat = $route_data['lat'];
$lng = $route_data['lng'];
$altitude = $route_data['altitude'];
$angle = $route_data['angle'];
$speed = $route_data['speed'];
$params = json_decode($route_data['params'],true);
$speed = convSpeedUnits($speed, 'km', $_SESSION["unit_distance"]);
$altitude = convAltitudeUnits($altitude, 'km', $_SESSION["unit_distance"]);
if (isset($params['gpslev']) && ($accuracy['use_gpslev'] == true))
{
$gpslev = $params['gpslev'];
}
else
{
$gpslev = 0;
$accuracy['min_gpslev'] = 0;
}
if (isset($params['hdop']) && ($accuracy['use_hdop'] == true))
{
$hdop = $params['hdop'];
}
else
{
$hdop = 0;
$accuracy['max_hdop'] = 0;
}
if (($gpslev >= $accuracy['min_gpslev']) && ($hdop <= $accuracy['max_hdop']))
{
if (($lat != 0) && ($lng != 0))
{
$route[] = array( $dt_tracker,
$lat,
$lng,
$altitude,
$angle,
$speed,
$params);
}
}
}
return $route;
}
function getRouteEvents($imei, $dtf, $dtt)
{
global $ms;
// check privileges
if ($_SESSION["privileges"] == 'subuser')
{
$user_id = $_SESSION["manager_id"];
}
else
{
$user_id = $_SESSION["user_id"];
}
$events = array();
$q = "SELECT * FROM `gs_user_events_data` WHERE `user_id`='".$user_id."' AND `imei`='".$imei."' AND dt_tracker BETWEEN '".$dtf."' AND '".$dtt."' ORDER BY dt_tracker ASC";
$r = mysqli_query($ms, $q);
while($event_data=mysqli_fetch_array($r))
{
$event_data['speed'] = convSpeedUnits($event_data['speed'], 'km', $_SESSION["unit_distance"]);
$event_data['altitude'] = convAltitudeUnits($event_data['altitude'], 'km', $_SESSION["unit_distance"]);
$event_data['params'] = json_decode($event_data['params'],true);
$events[] = array( $event_data['event_desc'],
convUserTimezone($event_data['dt_tracker']),
$event_data['lat'],
$event_data['lng'],
$event_data['altitude'],
$event_data['angle'],
$event_data['speed'],
$event_data['params']
);
}
return $events;
}
function getRoute($imei, $dtf, $dtt, $min_stop_duration, $filter)
{
$accuracy = getObjectAccuracy($imei);
$result = array();
$result['route'] = array();
$result['stops'] = array();
$result['drives'] = array();
$result['events'] = array();
if (checkObjectActive($imei) != true)
{
return $result;
}
$route = getRouteRaw($imei, $accuracy, $dtf, $dtt);
if (count($route) > 0)
{
// get object fuel rates
$fcr = getObjectFCR($imei);
// get ACC sensor
$sensor = getSensorFromType($imei, 'acc');
$acc = $sensor[0]['param'];
// filter jumping cordinates
if ($filter == true)
{
$route = removeRouteJunkPoints($route, $accuracy, array());
}
$result['route'] = $route;
// create stops
if ($accuracy['stops'] == 'gpsacc')
{
$result['stops'] = getRouteStopsGPSACC($route, $accuracy, $min_stop_duration, $acc);
}
else if ($accuracy['stops'] == 'acc')
{
$result['stops'] = getRouteStopsACC($route, $accuracy, $min_stop_duration, $acc);
}
else
{
$result['stops'] = getRouteStopsGPS($route, $accuracy, $min_stop_duration, $acc);
}
// create drives
$fuel_sensors = getSensorFromType($imei, 'fuel');
$fuelcons_sensors = getSensorFromType($imei, 'fuelcons');
$result['drives'] = getRouteDrives($route, $accuracy, $result['stops'], $fcr, $fuel_sensors, $fuelcons_sensors, $acc);
// load events
$result['events'] = getRouteEvents($imei, $dtf, $dtt);
// count route_length
$result['route_length'] = 0;
for ($i=0; $i<count($result['drives']); ++$i)
{
$result['route_length'] += $result['drives'][$i][7];
}
// count top speed
$result['top_speed'] = 0;
for ($i=0; $i<count($result['drives']); ++$i)
{
if ($result['top_speed'] < $result['drives'][$i][8])
{
$result['top_speed'] = $result['drives'][$i][8];
}
}
// count avg speed
$result['avg_speed'] = 0;
for ($i=0; $i<count($result['drives']); ++$i)
{
$result['avg_speed'] += $result['drives'][$i][9];
}
if (count($result['drives']) > 0)
{
$result['avg_speed'] = floor($result['avg_speed'] / count($result['drives']));
}
// count fuel consumption
$result['fuel_consumption'] = 0;
for ($i=0; $i<count($result['drives']); ++$i)
{
$result['fuel_consumption'] += $result['drives'][$i][10];
}
// count fuel cost
$result['fuel_cost'] = 0;
for ($i=0; $i<count($result['drives']); ++$i)
{
$result['fuel_cost'] += $result['drives'][$i][11];
}
// count stops duration
$result['stops_duration_time'] = 0;
for ($i=0; $i<count($result['stops']); ++$i)
{
$diff = strtotime($result['stops'][$i][7])-strtotime($result['stops'][$i][6]);
$result['stops_duration_time'] += $diff;
}
$result['stops_duration'] = getTimeDetails($result['stops_duration_time'], true);
// count drives duration and engine work
$result['drives_duration_time'] = 0;
for ($i=0; $i<count($result['drives']); ++$i)
{
$diff = strtotime($result['drives'][$i][5])-strtotime($result['drives'][$i][4]);
$result['drives_duration_time'] += $diff;
}
$result['drives_duration'] = getTimeDetails($result['drives_duration_time'], true);
// prepare full engine work and idle info
$result['engine_work_time'] = 0;
$result['engine_idle_time'] = 0;
for ($i=0; $i<count($result['drives']); ++$i)
{
$result['engine_work_time'] += $result['drives'][$i][12];
$result['drives'][$i][12] = getTimeDetails($result['drives'][$i][12], true);
}
for ($i=0; $i<count($result['stops']); ++$i)
{
$result['engine_idle_time'] += $result['stops'][$i][9];
$result['stops'][$i][9] = getTimeDetails($result['stops'][$i][9], true);
}
// set total engine work and idle
$result['engine_work_time'] += $result['engine_idle_time'];
$result['engine_work'] = getTimeDetails($result['engine_work_time'], true);
$result['engine_idle'] = getTimeDetails($result['engine_idle_time'], true);
}
return $result;
}
function getRouteOverspeeds($route, $speed_limit)
{
$overspeeds = array();
$overspeed = 0;
$top_speed = 0;
$avg_speed = 0;
$avg_speed_c = 0;
for ($i=0; $i<count($route); ++$i)
{
$speed = $route[$i][5];
if ($speed > $speed_limit)
{
if($overspeed == 0)
{
$overspeed_start = $route[$i][0];
$overspeed = 1;
}
if ($speed >= $top_speed)
{
$top_speed = $speed;
$overspeed_lat = $route[$i][1];
$overspeed_lng = $route[$i][2];
}
$avg_speed += $speed;
$avg_speed_c++;
}
else
{
if ($overspeed == 1)
{
$overspeed_end = $route[$i][0];
$overspeed_duration = getTimeDifferenceDetails($overspeed_start, $overspeed_end);
$overspeeds[] = array( $overspeed_start,
$overspeed_end,
$overspeed_duration,
$top_speed,
floor($avg_speed / $avg_speed_c),
$overspeed_lat,
$overspeed_lng
);
$top_speed = 0;
$avg_speed = 0;
$avg_speed_c = 0;
$overspeed = 0;
}
}
}
return $overspeeds;
}
function getRouteUnderspeeds($route, $speed_limit)
{
$underpeeds = array();
$underpeed = 0;
$top_speed = 0;
$avg_speed = 0;
$avg_speed_c = 0;
for ($i=0; $i<count($route); ++$i)
{
$speed = $route[$i][5];
if ($speed < $speed_limit)
{
if($underpeed == 0)
{
$underpeed_start = $route[$i][0];
$underpeed = 1;
}
if ($speed >= $top_speed)
{
$top_speed = $speed;
$underpeed_lat = $route[$i][1];
$underpeed_lng = $route[$i][2];
}
$avg_speed += $speed;
$avg_speed_c++;
}
else
{
if ($underpeed == 1)
{
$underpeed_end = $route[$i][0];
$underpeed_duration = getTimeDifferenceDetails($underpeed_start, $underpeed_end);
$underpeeds[] = array( $underpeed_start,
$underpeed_end,
$underpeed_duration,
$top_speed,
floor($avg_speed / $avg_speed_c),
$underpeed_lat,
$underpeed_lng
);
$top_speed = 0;
$avg_speed = 0;
$avg_speed_c = 0;
$underpeed = 0;
}
}
}
return $underpeeds;
}
function getRouteStopsGPSACC($route, $accuracy, $min_stop_duration, $acc)
{
$stops = array();
$stoped = 0;
$min_moving_speed = $accuracy['min_moving_speed'];
for ($i=0; $i<count($route); ++$i)
{
$params = $route[$i][6];
if (!isset($params[$acc]))
{
$params[$acc] = '';
}
$stop_speed = $route[$i][5];
if ((($stop_speed <= $min_moving_speed) && ($i < count($route)-1)) || (($params[$acc] == '0') && ($i < count($route)-1)))
{
if($stoped == 0)
{
$start_id = $i;
$stop_start = $route[$i][0];
$stop_lat = $route[$i][1];
$stop_lng = $route[$i][2];
$stop_altitude = $route[$i][3];
$stop_angle = $route[$i][4];
$stop_params = $route[$i][6];
$stoped = 1;
}
}
else
{
if ($stoped == 1)
{
$end_id = $i;
$stop_end = $route[$i][0];
$stop_duration = getTimeDifferenceDetails($stop_start, $stop_end);
$stop_engine_hours = getRouteEngineHours($route, $start_id, $end_id, $acc);
$time_diff = strtotime($stop_end)-strtotime($stop_start);
if ($time_diff > ($min_stop_duration * 60))
{
$stops[] = array( $start_id,
$end_id,
$stop_lat,
$stop_lng,
$stop_altitude,
$stop_angle,
$stop_start,
$stop_end,
$stop_duration,
$stop_engine_hours,
$stop_params,
);
}
$stoped = 0;
}
}
}
return $stops;
}
function getRouteStopsACC($route, $accuracy, $min_stop_duration, $acc)
{
$stops = array();
$stoped = 0;
for ($i=0; $i<count($route); ++$i)
{
$params = $route[$i][6];
if (!isset($params[$acc]))
{
$params[$acc] = '';
}
if (($params[$acc] == '0') && ($i < count($route)-1))
{
if($stoped == 0)
{
$start_id = $i;
$stop_start = $route[$i][0];
$stop_lat = $route[$i][1];
$stop_lng = $route[$i][2];
$stop_altitude = $route[$i][3];
$stop_angle = $route[$i][4];
$stop_params = $route[$i][6];
$stoped = 1;
}
}
else
{
if ($stoped == 1)
{
$end_id = $i;
$stop_end = $route[$i][0];
$stop_duration = getTimeDifferenceDetails($stop_start, $stop_end);
//$stop_engine_hours = getRouteEngineHours($route, $start_id, $end_id, $acc);
$stop_engine_hours = '0'; // because Stop is detected by ACC
$time_diff = strtotime($stop_end)-strtotime($stop_start);
if ($time_diff > ($min_stop_duration * 60))
{
$stops[] = array( $start_id,
$end_id,
$stop_lat,
$stop_lng,
$stop_altitude,
$stop_angle,
$stop_start,
$stop_end,
$stop_duration,
$stop_engine_hours,
$stop_params
);
}
$stoped = 0;
}
}
}
return $stops;
}
function getRouteStopsGPS($route, $accuracy, $min_stop_duration, $acc)
{
$stops = array();
$stoped = 0;
$min_moving_speed = $accuracy['min_moving_speed'];
for ($i=0; $i<count($route); ++$i)
{
$stop_speed = $route[$i][5];
if (($stop_speed <= $min_moving_speed) && ($i < count($route)-1))
{
if($stoped == 0)
{
$start_id = $i;
$stop_start = $route[$i][0];
$stop_lat = $route[$i][1];
$stop_lng = $route[$i][2];
$stop_altitude = $route[$i][3];
$stop_angle = $route[$i][4];
$params = $route[$i][6];
$stoped = 1;
}
}
else
{
if ($stoped == 1)
{
$end_id = $i;
$stop_end = $route[$i][0];
$stop_duration = getTimeDifferenceDetails($stop_start, $stop_end);
$stop_engine_hours = getRouteEngineHours($route, $start_id, $end_id, $acc);
$time_diff = strtotime($stop_end)-strtotime($stop_start);
if ($time_diff > ($min_stop_duration * 60))
{
$stops[] = array( $start_id,
$end_id,
$stop_lat,
$stop_lng,
$stop_altitude,
$stop_angle,
$stop_start,
$stop_end,
$stop_duration,
$stop_engine_hours,
$params
);
}
$stoped = 0;
}
}
}
return $stops;
}
function getRouteDrives($route, $accuracy, $stops, $fcr, $fuel_sensors, $fuelcons_sensors, $acc)
{
$drives = array();
if (count($stops) == 0)
{
// moving between start and end marker if no stops
$id_start_s = 0;
$id_start = 0;
$id_end = count($route)-1;
$dt_start_s = $route[$id_start_s][0];
$dt_start = $route[$id_start][0];
$dt_end = $route[$id_end][0];
if ($dt_start != $dt_end)
{
$moving_duration = getTimeDifferenceDetails($dt_start, $dt_end);
$route_length = getRouteLength($route, $id_start_s, $id_end);
$top_speed = getRouteTopSpeed($route, $id_start_s, $id_end);
$avg_speed = getRouteAvgSpeed($route, $id_start_s, $id_end);
$fuel_consumption = getRouteFuelConsumption($route, $id_start, $id_end, $accuracy, $fcr, $fuel_sensors, $fuelcons_sensors);
$fuel_cost = getRouteFuelCost($fuel_consumption, $fcr);
$engine_work = getRouteEngineHours($route, $id_start, $id_end, $acc);
$drives_start_end = array( $id_start_s,
$id_start,
$id_end,
$dt_start_s,
$dt_start,
$dt_end,
$moving_duration,
$route_length,
$top_speed,
$avg_speed,
$fuel_consumption,
$fuel_cost,
$engine_work);
}
}
else
{
// moving between start and first stop
$id_start_s = 0;
$id_start = 0;
$id_end = $stops[0][0];
if ($id_end != 0)
{
$dt_start_s = $route[$id_start_s][0];
$dt_start = $route[$id_start][0];
$dt_end = $route[$id_end][0];
if ($dt_start != $dt_end)
{
$moving_duration = getTimeDifferenceDetails($dt_start, $dt_end);
$route_length = getRouteLength($route, $id_start_s, $id_end);
$top_speed = getRouteTopSpeed($route, $id_start_s, $id_end);
$avg_speed = getRouteAvgSpeed($route, $id_start_s, $id_end);
$fuel_consumption = getRouteFuelConsumption($route, $id_start, $id_end, $accuracy, $fcr, $fuel_sensors, $fuelcons_sensors);
$fuel_cost = getRouteFuelCost($fuel_consumption, $fcr);
$engine_work = getRouteEngineHours($route, $id_start, $id_end, $acc);
$drives_start = array( $id_start_s,
$id_start,
$id_end,
$dt_start_s,
$dt_start,
$dt_end,
$moving_duration,
$route_length,
$top_speed,
$avg_speed,
$fuel_consumption,
$fuel_cost,
$engine_work);
}
}
// moving between end and last stop
$id_start_s = $stops[count($stops)-1][0];
$id_start = $stops[count($stops)-1][1];
$id_end = count($route)-1;
if ($id_start != $id_end)
{
$dt_start_s = $route[$id_start_s][0];
$dt_start = $route[$id_start][0];
$dt_end = $route[$id_end][0];
if ($dt_start != $dt_end)
{
$moving_duration = getTimeDifferenceDetails($dt_start, $dt_end);
$route_length = getRouteLength($route, $id_start_s, $id_end);
$top_speed = getRouteTopSpeed($route, $id_start_s, $id_end);
$avg_speed = getRouteAvgSpeed($route, $id_start_s, $id_end);
$fuel_consumption = getRouteFuelConsumption($route, $id_start, $id_end, $accuracy, $fcr, $fuel_sensors, $fuelcons_sensors);
$fuel_cost = getRouteFuelCost($fuel_consumption, $fcr);
$engine_work = getRouteEngineHours($route, $id_start, $id_end, $acc);
$drives_end = array( $id_start_s,
$id_start,
$id_end,
$dt_start_s,
$dt_start,
$dt_end,
$moving_duration,
$route_length,
$top_speed,
$avg_speed,
$fuel_consumption,
$fuel_cost,
$engine_work);
}
}
}
// moving between stops
for ($i=0; $i<count($stops)-1; ++$i)
{
$id_start_s = $stops[$i][0];
$id_start = $stops[$i][1];
$id_end = $stops[$i+1][0];
$dt_start_s = $route[$id_start_s][0];
$dt_start = $route[$id_start][0];
$dt_end = $route[$id_end][0];
if ($dt_start != $dt_end)
{
$moving_duration = getTimeDifferenceDetails($dt_start, $dt_end);
$route_length = getRouteLength($route, $id_start_s, $id_end);
$top_speed = getRouteTopSpeed($route, $id_start_s, $id_end);
$avg_speed = getRouteAvgSpeed($route, $id_start_s, $id_end);
$fuel_consumption = getRouteFuelConsumption($route, $id_start, $id_end, $accuracy, $fcr, $fuel_sensors, $fuelcons_sensors);
$fuel_cost = getRouteFuelCost($fuel_consumption, $fcr);
$engine_work = getRouteEngineHours($route, $id_start, $id_end, $acc);
$drives_stops[] = array( $id_start_s,
$id_start,
$id_end,
$dt_start_s,
$dt_start,
$dt_end,
$moving_duration,
$route_length,
$top_speed,
$avg_speed,
$fuel_consumption,
$fuel_cost,
$engine_work);
}
}
if(isset($drives_start_end))
{
$drives[] = $drives_start_end;
}
else
{
if(isset($drives_start))
{
$drives[] = $drives_start;
}
if(isset($drives_stops))
{
$drives = array_merge($drives, $drives_stops);
}
if(isset($drives_end))
{
$drives[] = $drives_end;
}
}
return $drives;
}
function getRouteFuelCost($fuel_consumption, $fcr)
{
$fuel_cost = 0;
if ($fcr == '')
{
return $fuel_cost;
}
$fuel_cost = $fuel_consumption * $fcr['cost'];
return sprintf("%01.2f", $fuel_cost);
}
function getRouteFuelConsumption($route, $start_id, $end_id, $accuracy, $fcr, $fuel_sensors, $fuelcons_sensors)
{
$fuel_consumtion = 0;
if ($fcr == '')
{
return $fuel_consumtion;
}
$source = $fcr['source'];
$measurement = $fcr['measurement'];
$cost = $fcr['cost'];
$summer = $fcr['summer'];
$winter = $fcr['winter'];
$winter_start = $fcr['winter_start'];
$winter_end= $fcr['winter_end'];
$diff_ff = $accuracy['min_ff'];
if ($source == 'rates')
{
if (($summer > 0) && ($winter > 0))
{
for ($i=$start_id; $i<$end_id-1; ++$i)
{
$lat1 = $route[$i][1];
$lng1 = $route[$i][2];
$lat2 = $route[$i+1][1];
$lng2 = $route[$i+1][2];
$length = getLengthBetweenCoordinates($lat1, $lng1, $lat2, $lng2);
if ($measurement == 'mpg')
{
$length = convDistanceUnits($length, 'km', 'mi');
}
$f_date = strtotime($route[$i][0]);
$f_date1 = strtotime(gmdate("Y").'-'.$winter_start);
$f_date2 = strtotime(gmdate("Y").'-'.$winter_end);
if ($f_date1 >= $f_date2)
{
$f_date2 = strtotime((gmdate("Y") + 1).'-'.$winter_end);
}
if (($f_date >= $f_date1) && ($f_date <= $f_date2 ))
{
$fuel_consumtion += $length / $winter;
}
else
{
$fuel_consumtion += $length / $summer;
}
}
}
}
else if (($source == 'fuel') && ($fuel_sensors != false))
{
$params1 = $route[$start_id][6];
$params2 = $route[$end_id][6];
// loop per fuel sensors
for ($j=0; $j<count($fuel_sensors); ++$j)
{
$before = getSensorValue($params1, $fuel_sensors[$j]);
$after = getSensorValue($params2, $fuel_sensors[$j]);
$diff = $after['value'] - $before['value'];
if ($diff < 0)
{
$fuel_consumtion += $diff;
}
}
$fuel_consumtion = abs($fuel_consumtion);
}
else if (($source == 'fuelcons') && ($fuelcons_sensors != false))
{
for ($i=$start_id; $i<$end_id; ++$i)
{
$params = $route[$i][6];
$cons = getSensorValue($params, $fuelcons_sensors[0]);
$fuel_consumtion += abs($cons['value']);
}
}
return sprintf("%01.2f", $fuel_consumtion);
}
function getRouteFuelFillings($route, $accuracy, $fuel_sensors)
{
$result = array();
$result['fillings'] = array();
if ($fuel_sensors == false)
{
return $result;
}
$diff_ff = $accuracy['min_ff'];
$total_filled = 0;
for ($i=0; $i<count($route)-1; ++$i)
{
$params1 = $route[$i][6];
$params2 = $route[$i+1][6];
$speed1 = $route[$i][5];
$speed2 = $route[$i+1][5];
// loop per fuel sensors
for ($j=0; $j<count($fuel_sensors); ++$j)
{
$before = getSensorValue($params1, $fuel_sensors[$j]); // fuel level
$after = getSensorValue($params2, $fuel_sensors[$j]); // fuel level in next point
$diff = $after['value'] - $before['value']; // fuel filling
if (($diff >= $diff_ff) && (($speed1 < 10) || ($speed2 < 10)))
{
//echo $before['value'].' '.$after['value'].' '.$diff.'</br>';
$dt_tracker = $route[$i+1][0];
$lat = $route[$i+1][1];
$lng = $route[$i+1][2];
$filled = $after['value'] - $before['value'];
$total_filled += $filled;
$sensor = $fuel_sensors[$j]['name'];
$params = $route[$i+1][6];
$result['fillings'][] = array( $dt_tracker,
$lat,
$lng,
$before['value_full'],
$after['value_full'],
$filled.' '.$fuel_sensors[$j]['units'],
$sensor,
$params);
}
}
}
$result['total_filled'] = $total_filled.' '.$fuel_sensors[0]['units'];
return $result;
}
function getRouteFuelThefts($route, $accuracy, $fuel_sensors)
{
$result = array();
$result['thefts'] = array();
if ($fuel_sensors == false)
{
return $result;
}
$diff_ft = $accuracy['min_ft'];
$total_stolen = 0;
for ($i=0; $i<count($route)-1; ++$i)
{
$params1 = $route[$i][6];
$params2 = $route[$i+1][6];
$speed1 = $route[$i][5];
$speed2 = $route[$i+1][5];
// loop per fuel sensors
for ($j=0; $j<count($fuel_sensors); ++$j)
{
$before = getSensorValue($params1, $fuel_sensors[$j]); // fuel level
$after = getSensorValue($params2, $fuel_sensors[$j]); // fuel level in next point
$diff = $before['value'] - $after['value']; // fuel filling
if (($diff >= $diff_ft) && (($speed1 < 10) || ($speed2 < 10)))
{
$dt_tracker = $route[$i+1][0];
$lat = $route[$i+1][1];
$lng = $route[$i+1][2];
$stolen = $before['value'] - $after['value'];
$total_stolen += $stolen;
$sensor = $fuel_sensors[$j]['name'];
$params = $route[$i+1][6];
$result['thefts'][] = array( $dt_tracker,
$lat,
$lng,
$before['value_full'],
$after['value_full'],
$stolen.' '.$fuel_sensors[$j]['units'],
$sensor,
$params);
}
}
}
$result['total_stolen'] = $total_stolen.' '.$fuel_sensors[0]['units'];
return $result;
}
function getRouteLogicSensorInfo($route, $accuracy, $sensors)
{
$result = array();
if ($sensors == false)
{
return $result;
}
for ($i=0; $i<count($sensors); ++$i)
{
$status = false;
$activation_time = '';
$deactivation_time = '';
$activation_lat = '';
$activation_lng = '';
$deactivation_lat = '';
$deactivation_lng = '';
$sensor = $sensors[$i];
$sensor_name = $sensor['name'];
$sensor_param = $sensor['param'];
for ($j=0; $j<count($route); ++$j)
{
$dt_tracker = $route[$j][0];
$lat = $route[$j][1];
$lng = $route[$j][2];
$params = $route[$j][6];
$param_value = getParamValue($params, $sensor_param);
if ($status == false)
{
if ($param_value == 1)
{
$activation_time = $dt_tracker;
$activation_lat = $lat;
$activation_lng = $lng;
$status = true;
}
}
else
{
if ($param_value == 0)
{
$deactivation_time = $dt_tracker;
$deactivation_lat = $lat;
$deactivation_lng = $lng;
$duration = getTimeDifferenceDetails($activation_time, $deactivation_time);
$result[] = array($sensor_name,
$activation_time,
$deactivation_time,
$duration,
$activation_lat,
$activation_lng,
$deactivation_lat,
$deactivation_lng);
$status = false;
$activation_time = '';
$deactivation_time = '';
$activation_lat = '';
$activation_lng = '';
$deactivation_lat = '';
$deactivation_lng = '';
}
}
}
}
return $result;
}
function getRouteLength($route, $start_id, $end_id)
{
// check if not last point
if (count($route) == $end_id)
{
$end_id -= 1;
}
$length = 0;
for ($i=$start_id; $i<$end_id; ++$i)
{
$lat1 = $route[$i][1];
$lng1 = $route[$i][2];
$lat2 = $route[$i+1][1];
$lng2 = $route[$i+1][2];
$length += getLengthBetweenCoordinates($lat1, $lng1, $lat2, $lng2);
}
$length = convDistanceUnits($length, 'km', $_SESSION["unit_distance"]);
return sprintf("%01.2f", $length);
}
function getRouteTopSpeed($route, $start_id, $end_id)
{
$top_speed = 0;
for ($i=$start_id; $i<$end_id; ++$i)
{
if ($top_speed < $route[$i][5])
{
$top_speed = $route[$i][5];
}
}
return $top_speed;
}
function getRouteAvgSpeed($route, $start_id, $end_id)
{
$avg_speed = 0;
for ($i=$start_id; $i<$end_id; ++$i)
{
$avg_speed += $route[$i][5];
}
$num = $end_id - $start_id;
return floor($avg_speed/$num);
}
function getRouteEngineHours($route, $start_id, $end_id, $acc)
{
// check if not last point
if (count($route) == $end_id)
{
$end_id -= 1;
}
$engine_hours = 0;
for ($i=$start_id; $i<$end_id; ++$i)
{
$dt_tracker1 = $route[$i][0];
$params1 = $route[$i][6];
$dt_tracker2 = $route[$i+1][0];
$params2 = $route[$i+1][6];
if (isset($params1[$acc]) && isset($params2[$acc]))
{
if (($params1[$acc] == '1') && ($params2[$acc] == '1'))
{
$engine_hours += strtotime($dt_tracker2)-strtotime($dt_tracker1);
}
}
}
return $engine_hours;
}
function removeRouteJunkPoints($route, $accuracy)
{
$temp = array();
$min_moving_speed = $accuracy['min_moving_speed'];
$min_diff_points = $accuracy['min_diff_points'];
// filter drifting
for ($i=0; $i<count($route)-1; ++$i)
{
$dt_tracker = $route[$i][0];
$lat1 = $route[$i][1];
$lng1 = $route[$i][2];
$lat2 = $route[$i+1][1];
$lng2 = $route[$i+1][2];
$speed = $route[$i][5];
$lat_diff = abs($lat1 - $lat2);
$lng_diff = abs($lng1 - $lng2);
if (($i == 0) || ($speed > $min_moving_speed) || ($lat_diff > $min_diff_points) && ($lng_diff > $min_diff_points))
{
$lat_temp = $lat2;
$lng_temp = $lng2;
$temp[] = $route[$i];
}
else
{
if (isset($lat_temp))
{
$route[$i][1] = $lat_temp;
$route[$i][2] = $lng_temp;
}
$temp[] = $route[$i];
}
}
$temp[] = $route[count($route)-1]; // add last point
return $temp;
}
?>
\ No newline at end of file
<?
if(empty($_POST['filename']) || empty($_POST['content'])){
die;
}
if(@$_GET['format'] == 'html')
{
$filename = preg_replace('/[^a-z0-9\_\.]/i','_',$_POST['filename'].'.html');
//$filename = $_POST['filename'];
header('Content-type: text/html');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Pragma: no-cache");
header("Expires: 0");
echo base64_decode(stripslashes($_POST['content']));
}
if(@$_GET['format'] == 'pdf')
{
$filename = preg_replace('/[^a-z0-9\_\.]/i','_',$_POST['filename'].'.pdf');
//$filename = $_POST['filename'];
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Pragma: no-cache");
header("Expires: 0");
echo base64_decode(stripslashes($_POST['content']));
}
if(@$_GET['format'] == 'xls')
{
$filename = preg_replace('/[^a-z0-9\_\.]/i','_',$_POST['filename'].'.xls');
//$filename = $_POST['filename'];
header("Content-type: application/x-msdownload");
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Pragma: no-cache");
header("Expires: 0");
echo base64_decode(stripslashes($_POST['content']));
}
?>
\ No newline at end of file
<?
session_start();
include ('../init.php');
include ('fn_common.php');
checkUserSession();
loadLanguage($_SESSION["language"], $_SESSION["units"]);
// check privileges
if ($_SESSION["privileges"] == 'subuser')
{
$user_id = $_SESSION["manager_id"];
}
else
{
$user_id = $_SESSION["user_id"];
}
if(@$_POST['cmd'] == 'delete_object_custom_field')
{
$field_id = $_POST["field_id"];
$imei = $_POST["imei"];
$q = "DELETE FROM `gs_object_custom_fields` WHERE `field_id`='".$field_id."' AND `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_selected_object_custom_fields')
{
$items = $_POST["items"];
$imei = $_POST["imei"];
for ($i = 0; $i < count($items); ++$i)
{
$item = $items[$i];
$q = "DELETE FROM `gs_object_custom_fields` WHERE `field_id`='".$item."' AND `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'save_object_custom_field')
{
$field_id = $_POST["field_id"];
$imei = $_POST["imei"];
$name = $_POST["name"];
$value = $_POST["value"];
$data_list = $_POST["data_list"];
$popup = $_POST["popup"];
if ($field_id == 'false')
{
$q = "INSERT INTO `gs_object_custom_fields` (`imei`, `name`, `value`, `data_list`, `popup`) VALUES ('".$imei."', '".$name."', '".$value."', '".$data_list."', '".$popup."')";
}
else
{
$q = "UPDATE `gs_object_custom_fields` SET `imei`='".$imei."', `name`='".$name."', `value`='".$value."', `data_list`='".$data_list."', `popup`='".$popup."' WHERE `field_id`='".$field_id."'";
}
$r = mysqli_query($ms, $q);
echo 'OK';
}
if(@$_GET['cmd'] == 'load_object_custom_field_list')
{
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
$imei = $_GET['imei'];
if(!$sidx) $sidx =1;
// get records number
$q = "SELECT * FROM `gs_object_custom_fields` WHERE `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
$count = mysqli_num_rows($r);
$q = "SELECT * FROM `gs_object_custom_fields` WHERE `imei`='".$imei."' ORDER BY $sidx $sord";
$result = mysqli_query($ms, $q);
$responce = new stdClass();
$i=0;
while($row = mysqli_fetch_array($result)) {
$field_id = $row["field_id"];
$name = $row['name'];
$value = $row['value'];
$data_list = $row['data_list'];
$popup = $row['popup'];
if ($data_list == 'true')
{
$data_list = '<img src="theme/images/tick-green.svg" />';
}
else
{
$data_list = '<img src="theme/images/remove-red.svg" style="width:12px;" />';
}
if ($popup == 'true')
{
$popup = '<img src="theme/images/tick-green.svg" />';
}
else
{
$popup = '<img src="theme/images/remove-red.svg" style="width:12px;" />';
}
// set modify buttons
$modify = '<a href="#" onclick="settingsObjectCustomFieldProperties(\''.$field_id.'\');" title="'.$la['EDIT'].'"><img src="theme/images/edit.svg" />';
$modify .= '</a><a href="#" onclick="settingsObjectCustomFieldDelete(\''.$field_id.'\');" title="'.$la['DELETE'].'"><img src="theme/images/remove3.svg" /></a>';
// set row
$responce->rows[$i]['id']=$field_id;
$responce->rows[$i]['cell']=array($name,$value,$data_list,$popup,$modify);
$i++;
}
$responce->page = 1;
//$responce->total = $count;
$responce->records = $count;
header('Content-type: application/json');
echo json_encode($responce);
die;
}
?>
\ No newline at end of file
<?
session_start();
include ('../init.php');
include ('fn_common.php');
checkUserSession();
loadLanguage($_SESSION["language"], $_SESSION["units"]);
// check privileges
if ($_SESSION["privileges"] == 'subuser')
{
$user_id = $_SESSION["manager_id"];
}
else
{
$user_id = $_SESSION["user_id"];
}
if(@$_POST['cmd'] == 'delete_object_driver')
{
$driver_id = $_POST["driver_id"];
$q = "SELECT * FROM `gs_user_object_drivers` WHERE `driver_id`='".$driver_id."'";
$r = mysqli_query($ms, $q);
$row = mysqli_fetch_array($r);
$img_file = $gsValues['PATH_ROOT'].'data/user/drivers/'.$row['driver_img_file'];
if(is_file($img_file))
{
@unlink($img_file);
}
$q = "DELETE FROM `gs_user_object_drivers` WHERE `driver_id`='".$driver_id."'";
$r = mysqli_query($ms, $q);
// reset driver_id in objects
$q = "UPDATE `gs_user_objects` SET `driver_id`='0' WHERE `driver_id`='".$driver_id."'";
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_selected_object_drivers')
{
$items = $_POST["items"];
for ($i = 0; $i < count($items); ++$i)
{
$item = $items[$i];
$q = "SELECT * FROM `gs_user_object_drivers` WHERE `driver_id`='".$item."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
$row = mysqli_fetch_array($r);
$img_file = $gsValues['PATH_ROOT'].'data/user/drivers/'.$row['driver_img_file'];
if(is_file($img_file))
{
@unlink($img_file);
}
$q = "DELETE FROM `gs_user_object_drivers` WHERE `driver_id`='".$item."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
// reset driver_id in objects
$q = "UPDATE `gs_user_objects` SET `driver_id`='0' WHERE `driver_id`='".$item."'";
$r = mysqli_query($ms, $q);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'save_object_driver')
{
$driver_id = $_POST["driver_id"];
$driver_name = $_POST["driver_name"];
$driver_assign_id = strtoupper($_POST["driver_assign_id"]);
$driver_idn = $_POST["driver_idn"];
$driver_address = $_POST["driver_address"];
$driver_phone = $_POST["driver_phone"];
$driver_email = $_POST["driver_email"];
$driver_desc = $_POST["driver_desc"];
$driver_img_file = $_POST["driver_img_file"];
if ($driver_img_file == 'false')
{
$driver_img_file = '';
}
if ($driver_img_file == 'delete')
{
$driver_img_file = '';
if ($driver_id != 'false')
{
$q = "SELECT * FROM `gs_user_object_drivers` WHERE `driver_id`='".$driver_id."'";
$r = mysqli_query($ms, $q);
$row = mysqli_fetch_array($r);
$img_file = $gsValues['PATH_ROOT'].'data/user/drivers/'.$row['driver_img_file'];
if(is_file($img_file))
{
@unlink($img_file);
}
$q = "UPDATE `gs_user_object_drivers` SET `driver_img_file`='' WHERE `driver_id`='".$driver_id."'";
$r = mysqli_query($ms, $q);
}
}
if ($driver_img_file == 'true')
{
$driver_img_file = $user_id.'_'.md5(gmdate("Y-m-d H:i:s")).'.png';
$file_temp = $gsValues['PATH_ROOT'].'data/user/drivers/'.$user_id.'_temp.png';
$file_new = $gsValues['PATH_ROOT'].'data/user/drivers/'.$driver_img_file;
if(is_file($file_temp))
{
rename($file_temp, $file_new);
}
if ($driver_id != 'false')
{
$q = "SELECT * FROM `gs_user_object_drivers` WHERE `driver_id`='".$driver_id."'";
$r = mysqli_query($ms, $q);
$row = mysqli_fetch_array($r);
$img_file = $gsValues['PATH_ROOT'].'data/user/drivers/'.$row['driver_img_file'];
if(is_file($img_file))
{
@unlink($img_file);
}
$q = "UPDATE `gs_user_object_drivers` SET `driver_img_file`='".$driver_img_file."' WHERE `driver_id`='".$driver_id."'";
$r = mysqli_query($ms, $q);
}
}
if ($driver_id == 'false')
{
$q = "INSERT INTO `gs_user_object_drivers`( `user_id`,
`driver_name`,
`driver_assign_id`,
`driver_idn`,
`driver_address`,
`driver_phone`,
`driver_email`,
`driver_desc`,
`driver_img_file`)
VALUES
('".$user_id."',
'".$driver_name."',
'".$driver_assign_id."',
'".$driver_idn."',
'".$driver_address."',
'".$driver_phone."',
'".$driver_email."',
'".$driver_desc."',
'".$driver_img_file."')";
}
else
{
$q = "UPDATE `gs_user_object_drivers` SET `driver_name`='".$driver_name."',
`driver_assign_id`='".$driver_assign_id."',
`driver_idn`='".$driver_idn."',
`driver_address`='".$driver_address."',
`driver_phone`='".$driver_phone."',
`driver_email`='".$driver_email."',
`driver_desc`='".$driver_desc."'
WHERE `driver_id`='".$driver_id."'";
}
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_GET['cmd'] == 'load_object_driver_list')
{
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
if(!$sidx) $sidx =1;
$q = "SELECT * FROM `gs_user_object_drivers` WHERE `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
$count = mysqli_num_rows($r);
if( $count >0 )
{
$total_pages = ceil($count/$limit);
}
else
{
$total_pages = 1;
}
if ($page > $total_pages) $page=$total_pages;
$start = $limit*$page - $limit; // do not put $limit*($page - 1)
$q = "SELECT * FROM `gs_user_object_drivers` WHERE `user_id`='".$user_id."' ORDER BY $sidx $sord LIMIT $start, $limit";
$r = mysqli_query($ms, $q);
$responce = new stdClass();
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
$i=0;
while($row = mysqli_fetch_array($r))
{
$driver_id = $row['driver_id'];
$driver_name = $row['driver_name'];
$driver_idn = $row["driver_idn"];
$driver_desc = $row['driver_desc'];
// set modify buttons
$modify = '<a href="#" onclick="settingsObjectDriverProperties(\''.$driver_id.'\');" title="'.$la['EDIT'].'"><img src="theme/images/edit.svg" /></a>';
$modify .= '<a href="#" onclick="settingsObjectDriverDelete(\''.$driver_id.'\');" title="'.$la['DELETE'].'"><img src="theme/images/remove3.svg" /></a>';
// set row
$responce->rows[$i]['id']=$driver_id;
$responce->rows[$i]['cell']=array($driver_name,$driver_idn,$driver_desc,$modify);
$i++;
}
header('Content-type: application/json');
echo json_encode($responce);
die;
}
if(@$_POST['cmd'] == 'load_object_driver_values')
{
$q = "SELECT * FROM `gs_user_object_drivers` WHERE `user_id`='".$user_id."' ORDER BY `driver_name` ASC";
$r = mysqli_query($ms, $q);
$result = array();
while($row=mysqli_fetch_array($r))
{
$driver_id = $row['driver_id'];
$result[$driver_id] = array( 'name' => $row['driver_name'],
'assign_id' => $row['driver_assign_id'],
'idn' => $row['driver_idn'],
'address' => $row['driver_address'],
'phone' => $row['driver_phone'],
'email' => $row['driver_email'],
'desc' => $row['driver_desc'],
'img' => $row['driver_img_file']
);
}
echo json_encode($result);
die;
}
?>
\ No newline at end of file
<?
session_start();
include ('../init.php');
include ('fn_common.php');
checkUserSession();
loadLanguage($_SESSION["language"], $_SESSION["units"]);
if(@$_POST['cmd'] == 'load_event_values')
{
$user_id = $_SESSION["user_id"];
$q = "SELECT * FROM `gs_user_events` WHERE `user_id`='".$user_id."' ORDER BY `name` ASC";
$r = mysqli_query($ms, $q);
$result = array();
while($row = mysqli_fetch_array($r))
{
$event_id = $row['event_id'];
$day_time = json_decode($row['day_time'], true);
if (($row['type'] == 'param') || ($row['type'] == 'sensor'))
{
$row['checked_value'] = json_decode($row['checked_value'], true);
if ($row['checked_value'] == null)
{
$row['checked_value'] = array();
}
}
$result[$event_id] = array( 'type' => $row['type'],
'name' => $row['name'],
'active' => $row['active'],
'duration_from_last_event' => $row['duration_from_last_event'],
'duration_from_last_event_minutes' => $row['duration_from_last_event_minutes'],
'week_days' => $row['week_days'],
'day_time' => $day_time,
'imei' => $row['imei'],
'checked_value' => $row['checked_value'],
'route_trigger' => $row['route_trigger'],
'zone_trigger' => $row['zone_trigger'],
'routes' => $row['routes'],
'zones' => $row['zones'],
'notify_system' => $row['notify_system'],
'notify_email' => $row['notify_email'],
'notify_email_address' => $row['notify_email_address'],
'notify_sms' => $row['notify_sms'],
'notify_sms_number' => $row['notify_sms_number'],
'email_template_id' => $row['email_template_id'],
'sms_template_id' => $row['sms_template_id'],
'notify_arrow' => $row['notify_arrow'],
'notify_arrow_color' => $row['notify_arrow_color'],
'notify_ohc' => $row['notify_ohc'],
'notify_ohc_color' => $row['notify_ohc_color'],
'cmd_send' => $row['cmd_send'],
'cmd_gateway' => $row['cmd_gateway'],
'cmd_type' => $row['cmd_type'],
'cmd_string' => $row['cmd_string']
);
}
echo json_encode($result);
die;
}
if(@$_GET['cmd'] == 'load_event_list')
{
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
$user_id = $_SESSION["user_id"];
if(!$sidx) $sidx =1;
// get records number
$q = "SELECT * FROM `gs_user_events` WHERE `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
$count = mysqli_num_rows($r);
if( $count >0 )
{
$total_pages = ceil($count/$limit);
}
else
{
$total_pages = 1;
}
if ($page > $total_pages) $page=$total_pages;
$start = $limit*$page - $limit; // do not put $limit*($page - 1)
$q = "SELECT * FROM `gs_user_events` WHERE `user_id`='".$user_id."' ORDER BY $sidx $sord LIMIT $start, $limit";
$r = mysqli_query($ms, $q);
$responce = new stdClass();
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
$i=0;
while($row = mysqli_fetch_array($r))
{
$event_id = $row['event_id'];
$name = $row['name'];
if ($row['active'] == 'true')
{
$active = '<img src="theme/images/tick-green.svg" />';
}
else
{
$active = '<img src="theme/images/remove-red.svg" style="width:12px;" />';
}
$notify_system = explode(",", $row['notify_system']);
if (@$notify_system[0] == 'true')
{
$notify_system = '<img src="theme/images/tick-green.svg" />';
}
else
{
$notify_system = '<img src="theme/images/remove-red.svg" style="width:12px;" />';
}
if ($row['notify_email'] == 'true')
{
$notify_email = '<img src="theme/images/tick-green.svg" />';
}
else
{
$notify_email = '<img src="theme/images/remove-red.svg" style="width:12px;" />';
}
if ($row['notify_sms'] == 'true')
{
$notify_sms = '<img src="theme/images/tick-green.svg" />';
}
else
{
$notify_sms = '<img src="theme/images/remove-red.svg" style="width:12px;" />';
}
// set modify buttons
$modify = '<a href="#" onclick="settingsEventProperties(\''.$event_id.'\');" title="'.$la['EDIT'].'"><img src="theme/images/edit.svg" />';
$modify .= '</a><a href="#" onclick="settingsEventDelete(\''.$event_id.'\');" title="'.$la['DELETE'].'"><img src="theme/images/remove3.svg" /></a>';
// set row
$responce->rows[$i]['id']=$event_id;
$responce->rows[$i]['cell']=array($name,$active,$notify_system,$notify_email,$notify_sms,$modify);
$i++;
}
header('Content-type: application/json');
echo json_encode($responce);
die;
}
if(@$_POST['cmd'] == 'delete_event')
{
$event_id = $_POST["event_id"];
$user_id = $_SESSION["user_id"];
$q = "DELETE FROM `gs_user_events` WHERE `event_id`='".$event_id."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
$q = "DELETE FROM `gs_user_events_status` WHERE `event_id`='".$event_id."'";
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_selected_events')
{
$items = $_POST["items"];
$user_id = $_SESSION["user_id"];
for ($i = 0; $i < count($items); ++$i)
{
$item = $items[$i];
$q = "DELETE FROM `gs_user_events` WHERE `event_id`='".$item."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
$q = "DELETE FROM `gs_user_events_status` WHERE `event_id`='".$item."'";
$r = mysqli_query($ms, $q);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'save_event')
{
$event_id = $_POST["event_id"];
$user_id = $_SESSION["user_id"];
$type = $_POST["type"];
$name = $_POST["name"];
$active = $_POST["active"];
$duration_from_last_event = $_POST["duration_from_last_event"];
$duration_from_last_event_minutes = $_POST["duration_from_last_event_minutes"];
$week_days = $_POST["week_days"];
$day_time = $_POST["day_time"];
$imei = $_POST["imei"];
$checked_value = $_POST["checked_value"];
$route_trigger = $_POST["route_trigger"];
$zone_trigger = $_POST["zone_trigger"];
$routes = $_POST["routes"];
$zones = $_POST["zones"];
$notify_system = $_POST["notify_system"];
$notify_email = $_POST["notify_email"];
$notify_email_address = $_POST["notify_email_address"];
$notify_sms = $_POST["notify_sms"];
$notify_sms_number = $_POST["notify_sms_number"];
$email_template_id = $_POST["email_template_id"];
$sms_template_id = $_POST["sms_template_id"];
$notify_arrow = $_POST["notify_arrow"];
$notify_arrow_color = $_POST["notify_arrow_color"];
$notify_ohc = $_POST["notify_ohc"];
$notify_ohc_color = $_POST["notify_ohc_color"];
$cmd_send = $_POST["cmd_send"];
$cmd_gateway = $_POST["cmd_gateway"];
$cmd_type = $_POST["cmd_type"];
$cmd_string = $_POST["cmd_string"];
if ($event_id == 'false')
{
$q = "INSERT INTO `gs_user_events` (`user_id`,
`type`,
`name`,
`active`,
`duration_from_last_event`,
`duration_from_last_event_minutes`,
`week_days`,
`day_time`,
`imei`,
`checked_value`,
`route_trigger`,
`zone_trigger`,
`routes`,
`zones`,
`notify_system`,
`notify_email`,
`notify_email_address`,
`notify_sms`,
`notify_sms_number`,
`email_template_id`,
`sms_template_id`,
`notify_arrow`,
`notify_arrow_color`,
`notify_ohc`,
`notify_ohc_color`,
`cmd_send`,
`cmd_gateway`,
`cmd_type`,
`cmd_string`
) VALUES (
'".$user_id."',
'".$type."',
'".$name."',
'".$active."',
'".$duration_from_last_event."',
'".$duration_from_last_event_minutes."',
'".$week_days."',
'".$day_time."',
'".$imei."',
'".$checked_value."',
'".$route_trigger."',
'".$zone_trigger."',
'".$routes."',
'".$zones."',
'".$notify_system."',
'".$notify_email."',
'".$notify_email_address."',
'".$notify_sms."',
'".$notify_sms_number."',
'".$email_template_id."',
'".$sms_template_id."',
'".$notify_arrow."',
'".$notify_arrow_color."',
'".$notify_ohc."',
'".$notify_ohc_color."',
'".$cmd_send."',
'".$cmd_gateway."',
'".$cmd_type."',
'".$cmd_string."')";
}
else
{
$q = "UPDATE `gs_user_events` SET `type`='".$type."',
`name`='".$name."',
`active`='".$active."',
`duration_from_last_event`='".$duration_from_last_event."',
`duration_from_last_event_minutes`='".$duration_from_last_event_minutes."',
`week_days`='".$week_days."',
`day_time`='".$day_time."',
`imei`='".$imei."',
`checked_value`='".$checked_value."',
`route_trigger`='".$route_trigger."',
`zone_trigger`='".$zone_trigger."',
`routes`='".$routes."',
`zones`='".$zones."',
`notify_system`='".$notify_system."',
`notify_email`='".$notify_email."',
`notify_email_address`='".$notify_email_address."',
`notify_sms`='".$notify_sms."',
`notify_sms_number`='".$notify_sms_number."',
`email_template_id`='".$email_template_id."',
`sms_template_id`='".$sms_template_id."',
`notify_arrow`='".$notify_arrow."',
`notify_arrow_color`='".$notify_arrow_color."',
`notify_ohc`='".$notify_ohc."',
`notify_ohc_color`='".$notify_ohc_color."',
`cmd_send`='".$cmd_send."',
`cmd_gateway`='".$cmd_gateway."',
`cmd_type`='".$cmd_type."',
`cmd_string`='".$cmd_string."'
WHERE `event_id`='".$event_id."'";
}
$r = mysqli_query($ms, $q);
echo 'OK';
}
?>
\ No newline at end of file
<?
session_start();
include ('../init.php');
include ('fn_common.php');
checkUserSession();
loadLanguage($_SESSION["language"], $_SESSION["units"]);
// check privileges
if ($_SESSION["privileges"] == 'subuser')
{
$user_id = $_SESSION["manager_id"];
}
else
{
$user_id = $_SESSION["user_id"];
}
if(@$_POST['cmd'] == 'delete_object_group')
{
$group_id = $_POST["group_id"];
$q = "DELETE FROM `gs_user_object_groups` WHERE `group_id`='".$group_id."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
// reset group_id in objects
$q = "UPDATE `gs_user_objects` SET `group_id`='0' WHERE `group_id`='".$group_id."'";
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_selected_object_groups')
{
$items = $_POST["items"];
for ($i = 0; $i < count($items); ++$i)
{
$item = $items[$i];
$q = "DELETE FROM `gs_user_object_groups` WHERE `group_id`='".$item."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
// reset group_id in objects
$q = "UPDATE `gs_user_objects` SET `group_id`='0' WHERE `group_id`='".$item."'";
$r = mysqli_query($ms, $q);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'save_object_group')
{
$group_id = $_POST["group_id"];
$group_name = $_POST["group_name"];
$group_desc = $_POST["group_desc"];
if ($group_id == 'false')
{
$q = "INSERT INTO `gs_user_object_groups` (`user_id`, `group_name`, `group_desc`) VALUES ('".$user_id."', '".$group_name."', '".$group_desc."')";
}
else
{
$q = "UPDATE `gs_user_object_groups` SET `group_name`='".$group_name."', `group_desc`='".$group_desc."' WHERE `group_id`='".$group_id."'";
}
$r = mysqli_query($ms, $q);
echo 'OK';
}
if(@$_GET['cmd'] == 'load_object_group_list')
{
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
if(!$sidx) $sidx =1;
$q = "SELECT * FROM `gs_user_object_groups` WHERE `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
$count = mysqli_num_rows($r);
if( $count >0 )
{
$total_pages = ceil($count/$limit);
}
else
{
$total_pages = 1;
}
if ($page > $total_pages) $page=$total_pages;
$start = $limit*$page - $limit; // do not put $limit*($page - 1)
$q = "SELECT * FROM `gs_user_object_groups` WHERE `user_id`='".$user_id."' ORDER BY $sidx $sord LIMIT $start, $limit";
$r = mysqli_query($ms, $q);
$responce = new stdClass();
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
$i=0;
while($row = mysqli_fetch_array($r))
{
$group_id = $row['group_id'];
$group_name = $row['group_name'];
$group_desc = $row['group_desc'];
// get object number in group
$q2 = "SELECT * FROM `gs_user_objects` WHERE `group_id`='".$group_id."'";
$r2 = mysqli_query($ms, $q2);
$object_number = mysqli_num_rows($r2);
// set modify buttons
$modify = '<a href="#" onclick="settingsObjectGroupProperties(\''.$group_id.'\');" title="'.$la['EDIT'].'"><img src="theme/images/edit.svg" />';
$modify .= '</a><a href="#" onclick="settingsObjectGroupDelete(\''.$group_id.'\');" title="'.$la['DELETE'].'"><img src="theme/images/remove3.svg" /></a>';
// set row
$responce->rows[$i]['id']=$group_id;
$responce->rows[$i]['cell']=array($group_name,$object_number,$group_desc,$modify);
$i++;
}
header('Content-type: application/json');
echo json_encode($responce);
die;
}
if(@$_POST['cmd'] == 'load_object_group_values')
{
$q = "SELECT * FROM `gs_user_object_groups` WHERE `user_id`='".$user_id."' ORDER BY `group_name` ASC";
$r = mysqli_query($ms, $q);
$result = array();
// add ungrouped group
$result[] = array( 'name' => $la['UNGROUPED'],
'desc' => '',
'visible' => true,
'follow' => false
);
while($row=mysqli_fetch_array($r))
{
$group_id = $row['group_id'];
$result[$group_id] = array( 'name' => $row['group_name'],
'desc' => $row['group_desc'],
'visible' => true,
'follow' => false
);
}
echo json_encode($result);
die;
}
?>
\ No newline at end of file
<?
session_start();
include ('../init.php');
include ('fn_common.php');
checkUserSession();
loadLanguage($_SESSION["language"], $_SESSION["units"]);
// check privileges
if ($_SESSION["privileges"] == 'subuser')
{
$user_id = $_SESSION["manager_id"];
}
else
{
$user_id = $_SESSION["user_id"];
}
if(@$_POST['cmd'] == 'add_object')
{
if (($_SESSION["manager_id"] == 0) && ($_SESSION["obj_add"] != 'false'))
{
$name = $_POST["name"];
$imei = strtoupper($_POST["imei"]);
if (checkObjectLimitSystem())
{
echo 'LIMIT';
die;
}
if(checkObjectExistsUser($imei))
{
echo 'EXISTS';
die;
}
if($_SESSION["obj_add"] == 'true')
{
if(checkObjectLimitUser($user_id))
{
echo 'LIMIT';
die;
}
if ($_SESSION["obj_days"] == 'true')
{
$object_expire = 'true';
$object_expire_dt = $_SESSION["obj_days_dt"];
}
else
{
$object_expire = 'false';
$object_expire_dt = '';
}
}
else if ($_SESSION["obj_add"] == "trial")
{
$object_expire = 'true';
$object_expire_dt = gmdate("Y-m-d", strtotime(gmdate("Y-m-d").' + '.$gsValues['OBJ_DAYS_TRIAL'].' days'));
}
addObjectSystem($name, $imei, 'true', $object_expire, $object_expire_dt, $_SESSION["manager_id"]);
addObjectUser($user_id, $imei, 0, 0, 0);
createObjectDataTable($imei);
echo 'OK';
}
die;
}
if(@$_POST['cmd'] == 'duplicate_object')
{
if (($_SESSION["manager_id"] == 0) && ($_SESSION["obj_add"] != 'false'))
{
$duplicate_imei = strtoupper($_POST["duplicate_imei"]);
$name = $_POST["name"];
$imei = strtoupper($_POST["imei"]);
if (checkObjectLimitSystem())
{
echo 'LIMIT';
die;
}
if(checkObjectExistsUser($imei))
{
echo 'EXISTS';
die;
}
if($_SESSION["obj_add"] == 'true')
{
if(checkObjectLimitUser($user_id))
{
echo 'LIMIT';
die;
}
if ($_SESSION["obj_days"] == 'true')
{
$object_expire = 'true';
$object_expire_dt = $_SESSION["obj_days_dt"];
}
else
{
$object_expire = 'false';
$object_expire_dt = '';
}
}
else if ($_SESSION["obj_add"] == "trial")
{
$object_expire = 'true';
$object_expire_dt = gmdate("Y-m-d", strtotime(gmdate("Y-m-d").' + '.$gsValues['OBJ_DAYS_TRIAL'].' days'));
}
duplicateObjectSystem($duplicate_imei, $imei, $object_expire, $object_expire_dt, $_SESSION["manager_id"], $name);
$q = "SELECT * FROM `gs_user_objects` WHERE `imei`='".$duplicate_imei."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
$row = mysqli_fetch_array($r);
addObjectUser($user_id, $imei, $row['group_id'], $row['driver_id'], $row['trailer_id']);
createObjectDataTable($imei);
//write log
writeLog('object_op', 'Add object: successful. IMEI: '.$imei);
echo 'OK';
}
die;
}
if(@$_POST['cmd'] == 'edit_object')
{
$group_id = $_POST["group_id"];
$driver_id = $_POST["driver_id"];
$trailer_id = $_POST["trailer_id"];
$name = $_POST["name"];
$imei = $_POST["imei"];
$device = $_POST["device"];
$sim_number = $_POST["sim_number"];
$model = $_POST["model"];
$vin = $_POST["vin"];
$plate_number = $_POST["plate_number"];
$icon = $_POST["icon"];
$map_arrows = $_POST["map_arrows"];
$map_icon = $_POST["map_icon"];
$tail_color = $_POST["tail_color"];
$tail_points = $_POST["tail_points"];
$fcr = $_POST["fcr"];
$time_adj = $_POST["time_adj"];
$accuracy = $_POST["accuracy"];
$q = "UPDATE `gs_user_objects` SET `group_id`='".$group_id."',
`driver_id`='".$driver_id."',
`trailer_id`='".$trailer_id."'
WHERE `user_id`='".$user_id."' AND `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
$q = "UPDATE `gs_objects` SET `name`='".$name."',
`icon`='".$icon."',
`map_icon`='".$map_icon."',
`map_arrows`='".$map_arrows."',
`tail_color`='".$tail_color."',
`tail_points`='".$tail_points."',
`device`='".$device."',
`sim_number`='".$sim_number."',
`model`='".$model."',
`vin`='".$vin."',
`plate_number`='".$plate_number."',
`fcr`='".$fcr."',
`accuracy`='".$accuracy."'
WHERE `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
// set time adjustment
$q = "SELECT * FROM `gs_objects` WHERE `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
$row = mysqli_fetch_array($r);
if($time_adj != $row["time_adj"])
{
$q = "UPDATE `gs_objects` SET `dt_server`='0000-00-00 00:00:00',
`dt_tracker`='0000-00-00 00:00:00',
`lat`='0',
`lng`='0',
`altitude`='0',
`angle`='0',
`speed`='0',
`loc_valid`='0',
`params`='',
`time_adj`='".$time_adj."'
WHERE `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
}
// set odometer and engine hours type
$odometer_type = $_POST["odometer_type"];
$engine_hours_type = $_POST["engine_hours_type"];
$q = "UPDATE `gs_objects` SET `odometer_type`='".$odometer_type."', `engine_hours_type`='".$engine_hours_type."' WHERE `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
// get odometer and engine_hours and check if saving is needed
$odometer = $_POST["odometer"];
if ($odometer != 'false')
{
// save in km
$odometer = floor(convDistanceUnits($odometer, $_SESSION["unit_distance"], 'km'));
$q = "UPDATE `gs_objects` SET `odometer`='".$odometer."' WHERE `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
}
$engine_hours = $_POST["engine_hours"];
if ($engine_hours != 'false')
{
$engine_hours = $engine_hours * 60 * 60;
$q = "UPDATE `gs_objects` SET `engine_hours`='".$engine_hours."' WHERE `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'clear_history_object')
{
if($_SESSION["obj_history_clear"] == 'true')
{
$imei = $_POST['imei'];
$q = "SELECT * FROM `gs_user_objects` WHERE `imei`='".$imei."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
$row = mysqli_fetch_array($r);
if($row)
{
clearObjectHistory($imei);
}
echo 'OK';
}
die;
}
if(@$_POST['cmd'] == 'delete_object')
{
$imei = $_POST["imei"];
delObjectUser($user_id, $imei);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'clear_history_selected_objects')
{
if($_SESSION["obj_history_clear"] == 'true')
{
$items = $_POST["items"];
for ($i = 0; $i < count($items); ++$i)
{
$item = $items[$i];
clearObjectHistory($item);
}
echo 'OK';
die;
}
}
if(@$_POST['cmd'] == 'delete_selected_objects')
{
$items = $_POST["items"];
for ($i = 0; $i < count($items); ++$i)
{
$item = $items[$i];
delObjectUser($user_id, $item);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'load_object_values')
{
// check privileges
if ($_SESSION["privileges"] == 'subuser')
{
$q = "SELECT gs_objects.*, gs_user_objects.*
FROM gs_objects
INNER JOIN gs_user_objects ON gs_objects.imei = gs_user_objects.imei
WHERE gs_user_objects.user_id='".$user_id."'
AND gs_objects.imei IN (".$_SESSION["privileges_imei"].")";
}
else
{
$q = "SELECT gs_objects.*, gs_user_objects.*
FROM gs_objects
INNER JOIN gs_user_objects ON gs_objects.imei = gs_user_objects.imei
WHERE gs_user_objects.user_id='".$user_id."'";
}
$r = mysqli_query($ms, $q);
$result = array();
while($row = mysqli_fetch_array($r))
{
$imei = $row['imei'];
// get object accuracy
$accuracy = getObjectAccuracy($imei);
// get object sensor list
$sensors = getObjectSensors($imei);
// get object service list
$service = getObjectService($imei);
// get object custom fields list
$custom_fields = getObjectCustomFields($imei);
// set default fcr if not set in DB
$fcr = getObjectFCR($imei);
// set default odometer and engine hours type if not set in DB
if ($row['odometer_type'] == '')
{
$row['odometer_type'] = 'gps';
}
if ($row['engine_hours_type'] == '')
{
$row['engine_hours_type'] = 'acc';
}
// odometer and engine hours
$row['odometer'] = floor(convDistanceUnits($row['odometer'], 'km', $_SESSION["unit_distance"]));
$row['engine_hours'] = floor($row['engine_hours'] / 60 / 60);
// map arrows
$default = array( 'arrow_no_connection' => 'arrow_red',
'arrow_stopped' => 'arrow_red',
'arrow_moving' => 'arrow_green',
'arrow_engine_idle' => 'off'
);
if (($row['map_arrows'] == '') || (json_decode($row['map_arrows'],true) == null))
{
$map_arrows = $default;
}
else
{
$map_arrows = json_decode($row['map_arrows'],true);
if (!isset($map_arrows["arrow_no_connection"])) { $map_arrows["arrow_no_connection"] = $default["arrow_no_connection"]; }
if (!isset($map_arrows["arrow_stopped"])) { $map_arrows["arrow_stopped"] = $default["arrow_stopped"]; }
if (!isset($map_arrows["arrow_moving"])) { $map_arrows["arrow_moving"] = $default["arrow_moving"]; }
if (!isset($map_arrows["arrow_engine_idle"])) { $map_arrows["arrow_engine_idle"] = $default["arrow_engine_idle"]; }
}
$result[$imei] = array( 'protocol' => $row['protocol'],
'group_id' => $row['group_id'],
'driver_id' => $row['driver_id'],
'trailer_id' => $row['trailer_id'],
'name' => $row['name'],
'icon' => $row['icon'],
'map_arrows' => $map_arrows,
'map_icon' => $row['map_icon'],
'tail_color' => $row['tail_color'],
'tail_points' => $row['tail_points'],
'device' => $row['device'],
'sim_number' => $row['sim_number'],
'model' => $row['model'],
'vin' => $row['vin'],
'plate_number' => $row['plate_number'],
'odometer_type' => $row['odometer_type'],
'engine_hours_type' => $row['engine_hours_type'],
'odometer' => $row['odometer'],
'engine_hours' => $row['engine_hours'],
'fcr' => $fcr,
'time_adj' => $row['time_adj'],
'accuracy' => $accuracy,
'sensors' => $sensors,
'service' => $service,
'custom_fields' => $custom_fields,
'params' => getParamsArray($row['params']),
'active' => $row['active'],
'object_expire' => $row['object_expire'],
'object_expire_dt' => $row['object_expire_dt']
);
}
echo json_encode($result);
die;
}
if(@$_GET['cmd'] == 'load_object_info_list')
{
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
$imei = $_GET['imei'];
if(!$sidx) $sidx =1;
// get records number
$q = "SELECT * FROM `gs_objects` WHERE `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
$count = mysqli_num_rows($r);
$row = mysqli_fetch_array($r);
$row['dt_server'] = convUserTimezone($row['dt_server']);
$row['dt_tracker'] = convUserTimezone($row['dt_tracker']);
$row['lat'] = sprintf('%0.6f', $row['lat']);
$row['lng'] = sprintf('%0.6f', $row['lng']);
$row['altitude'] = convAltitudeUnits($row['altitude'], 'km', $_SESSION["unit_distance"]).' '.$la["UNIT_HEIGHT"];
$row['speed'] = convSpeedUnits($row['speed'], 'km', $_SESSION["unit_distance"]).' '.$la["UNIT_SPEED"];
if ($row['params'] == '')
{
$row['params'] = '';
}
else
{
$row['params'] = json_decode($row['params'],true);
$arr_params = array();
foreach ($row['params'] as $key => $value)
{
array_push($arr_params, $key.'='.$value);
}
$row['params'] = implode(', ', $arr_params);
}
$list_array = array( $la['ALTITUDE'] => $row['altitude'],
$la['ANGLE'] => $row['angle'].' &deg;',
$la['LATITUDE'] => $row['lat'].' &deg;',
$la['LONGITUDE'] => $row['lng'].' &deg;',
$la['PARAMETERS'] => $row['params'],
$la['PROTOCOL'] => $row['protocol'],
$la['SPEED'] => $row['speed'],
$la['TIME_POSITION'] => $row['dt_tracker'],
$la['TIME_SERVER'] => $row['dt_server']
);
ksort($list_array);
$responce = new stdClass();
$i=0;
foreach ($list_array as $key => $value)
{
$responce->rows[$i]['cell']=array($key, $value);
$i++;
}
$responce->page = 1;
//$responce->total = $count;
$responce->records = $count;
header('Content-type: application/json');
echo json_encode($responce);
die;
}
if(@$_GET['cmd'] == 'load_object_list')
{
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
//$search = strtoupper(@$_GET['s']); // get search
if(!$sidx) $sidx =1;
$q = "SELECT * FROM `gs_user_objects` WHERE `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
$count = mysqli_num_rows($r);
if( $count >0 )
{
$total_pages = ceil($count/$limit);
}
else
{
$total_pages = 1;
}
if ($page > $total_pages) $page=$total_pages;
$start = $limit*$page - $limit; // do not put $limit*($page - 1)
$q = "SELECT * FROM `gs_objects` WHERE `imei` IN (".getUserObjectIMEIs($user_id).") ORDER BY $sidx $sord LIMIT $start, $limit";
$r = mysqli_query($ms, $q);
$responce = new stdClass();
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
if ($r)
{
$i=0;
while($row = mysqli_fetch_array($r))
{
$imei = $row['imei'];
$object_expire_dt = '';
if ($row['active'] == 'true')
{
$active = '<img src="theme/images/tick-green.svg" />';
if ($row['object_expire'] == 'true')
{
$object_expire_dt = $row['object_expire_dt'];
}
}
else
{
$active = '<img src="theme/images/remove-red.svg" style="width:12px;" />';
if ($row['object_expire'] == 'true')
{
if ($_SESSION["billing"] == true)
{
$object_expire_dt = '<a href="#" onclick="billingOpen();">'.$la['ACTIVATE'].'</a>';
}
else
{
$object_expire_dt = $row['object_expire_dt'];
}
}
}
// set modify buttons
$modify = '<a href="#" onclick="settingsObjectEdit(\''.$imei.'\');" title="'.$la['EDIT'].'"><img src="theme/images/edit.svg" /></a>';
$modify .= '<a href="#" onclick="settingsObjectDuplicate(\''.$imei.'\');" title="'.$la['DUPLICATE'].'"><img src="theme/images/copy.svg" /></a>';
$modify .= '<a href="#" onclick="settingsObjectClearHistory(\''.$imei.'\');" title="'.$la['CLEAR_HISTORY'].'"><img src="theme/images/erase.svg" /></a>';
$modify .= '<a href="#" onclick="settingsObjectDelete(\''.$imei.'\');" title="'.$la['DELETE'].'"><img src="theme/images/remove3.svg" /></a>';
// set row
$responce->rows[$i]['id']=$imei;
$responce->rows[$i]['cell']=array($row['name'],$imei,$active,$object_expire_dt,$modify);
$i++;
}
}
header('Content-type: application/json');
echo json_encode($responce);
die;
}
if(@$_POST['cmd'] == 'delete_custom_icon')
{
$file = $_POST['file'];
$path = $gsValues['PATH_ROOT'];
$icon_file = $path.'/'.$file;
if(is_file($icon_file))
{
@unlink($icon_file);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_all_custom_icons')
{
$filter = $_SESSION['user_id'].'_';
$path = $gsValues['PATH_ROOT'].'data/user/objects';
$dh = opendir($path);
$result = array();
while (($file = readdir($dh)) !== false)
{
if ($file != '.' && $file != '..' && $file != 'Thumbs.db')
{
if (0 === strpos($file, $filter))
{
$icon_file = $path.'/'.$file;
if(is_file($icon_file))
{
@unlink($icon_file);
}
}
}
}
closedir($dh);
echo 'OK';
die;
}
?>
\ No newline at end of file
<?
session_start();
include ('../init.php');
include ('fn_common.php');
checkUserSession();
loadLanguage($_SESSION["language"], $_SESSION["units"]);
// check privileges
if ($_SESSION["privileges"] == 'subuser')
{
$user_id = $_SESSION["manager_id"];
}
else
{
$user_id = $_SESSION["user_id"];
}
if(@$_POST['cmd'] == 'delete_object_passenger')
{
$passenger_id = $_POST["passenger_id"];
$q = "DELETE FROM `gs_user_object_passengers` WHERE `passenger_id`='".$passenger_id."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_selected_object_passengers')
{
$items = $_POST["items"];
for ($i = 0; $i < count($items); ++$i)
{
$item = $items[$i];
$q = "DELETE FROM `gs_user_object_passengers` WHERE `passenger_id`='".$item."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'save_object_passenger')
{
$passenger_id = $_POST["passenger_id"];
$passenger_name = $_POST["passenger_name"];
$passenger_assign_id = strtoupper($_POST["passenger_assign_id"]);
$passenger_idn = $_POST["passenger_idn"];
$passenger_address = $_POST["passenger_address"];
$passenger_phone = $_POST["passenger_phone"];
$passenger_email = $_POST["passenger_email"];
$passenger_desc = $_POST["passenger_desc"];
if ($passenger_id == 'false')
{
$q = "INSERT INTO `gs_user_object_passengers`( `user_id`,
`passenger_name`,
`passenger_assign_id`,
`passenger_idn`,
`passenger_address`,
`passenger_phone`,
`passenger_email`,
`passenger_desc`)
VALUES
('".$user_id."',
'".$passenger_name."',
'".$passenger_assign_id."',
'".$passenger_idn."',
'".$passenger_address."',
'".$passenger_phone."',
'".$passenger_email."',
'".$passenger_desc."')";
}
else
{
$q = "UPDATE `gs_user_object_passengers` SET `passenger_name`='".$passenger_name."',
`passenger_assign_id`='".$passenger_assign_id."',
`passenger_idn`='".$passenger_idn."',
`passenger_address`='".$passenger_address."',
`passenger_phone`='".$passenger_phone."',
`passenger_email`='".$passenger_email."',
`passenger_desc`='".$passenger_desc."'
WHERE `passenger_id`='".$passenger_id."'";
}
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_GET['cmd'] == 'load_object_passenger_list')
{
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
if(!$sidx) $sidx =1;
$q = "SELECT * FROM `gs_user_object_passengers` WHERE `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
$count = mysqli_num_rows($r);
if( $count >0 )
{
$total_pages = ceil($count/$limit);
}
else
{
$total_pages = 1;
}
if ($page > $total_pages) $page=$total_pages;
$start = $limit*$page - $limit; // do not put $limit*($page - 1)
$q = "SELECT * FROM `gs_user_object_passengers` WHERE `user_id`='".$user_id."' ORDER BY $sidx $sord LIMIT $start, $limit";
$r = mysqli_query($ms, $q);
$responce = new stdClass();
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
$i=0;
while($row = mysqli_fetch_array($r))
{
$passenger_id = $row['passenger_id'];
$passenger_name = $row['passenger_name'];
$passenger_idn = $row["passenger_idn"];
$passenger_desc = $row['passenger_desc'];
// set modify buttons
$modify = '<a href="#" onclick="settingsObjectPassengerProperties(\''.$passenger_id.'\');" title="'.$la['EDIT'].'"><img src="theme/images/edit.svg" /></a>';
$modify .= '<a href="#" onclick="settingsObjectPassengerDelete(\''.$passenger_id.'\');" title="'.$la['DELETE'].'"><img src="theme/images/remove3.svg" /></a>';
// set row
$responce->rows[$i]['id']=$passenger_id;
$responce->rows[$i]['cell']=array($passenger_name,$passenger_idn,$passenger_desc,$modify);
$i++;
}
header('Content-type: application/json');
echo json_encode($responce);
die;
}
if(@$_POST['cmd'] == 'load_object_passenger_values')
{
$passenger_id = $_POST["passenger_id"];
$q = "SELECT * FROM `gs_user_object_passengers` WHERE `passenger_id`='".$passenger_id."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
$row = mysqli_fetch_array($r);
$result = array('name' => $row['passenger_name'],
'assign_id' => $row['passenger_assign_id'],
'idn' => $row['passenger_idn'],
'address' => $row['passenger_address'],
'phone' => $row['passenger_phone'],
'email' => $row['passenger_email'],
'desc' => $row['passenger_desc']
);
echo json_encode($result);
die;
}
?>
\ No newline at end of file
<?
session_start();
include ('../init.php');
include ('fn_common.php');
include ('../tools/sms.php');
checkUserSession();
loadLanguage($_SESSION["language"], $_SESSION["units"]);
if(@$_POST['cmd'] == 'clear_sms_queue')
{
clearSMSAPPQueue($_SESSION['sms_gateway_identifier']);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'load_server_values')
{
$custom_maps = array();
$q = "SELECT * FROM `gs_maps` ORDER BY `name` ASC";
$r = mysqli_query($ms, $q);
while($row=mysqli_fetch_array($r))
{
$map_id = $row['map_id'];
$name = $row['name'];
$active = $row['active'];
$type = $row['type'];
$url = $row['url'];
$layers = $row['layers'];
$layer_id = 'map_'.strtolower($name).'_'.$map_id;
if ($active == 'true')
{
$custom_maps[] = array('layer_id' => $layer_id,'name' => $name, 'active' => $active, 'type' => $type, 'url' => $url, 'layers' => $layers);
}
}
$result = array('url_root' => $gsValues['URL_ROOT'],
'map_custom' => $custom_maps,
'map_osm' => $gsValues['MAP_OSM'],
'map_bing' => $gsValues['MAP_BING'],
'map_google' => $gsValues['MAP_GOOGLE'],
'map_google_traffic' => $gsValues['MAP_GOOGLE_TRAFFIC'],
'map_mapbox' => $gsValues['MAP_MAPBOX'],
'map_yandex' => $gsValues['MAP_YANDEX'],
'map_bing_key' => $gsValues['MAP_BING_KEY'],
'map_mapbox_key' => $gsValues['MAP_MAPBOX_KEY'],
'map_layer' => $gsValues['MAP_LAYER'],
'map_zoom' => $gsValues['MAP_ZOOM'],
'map_lat' => $gsValues['MAP_LAT'],
'map_lng' => $gsValues['MAP_LNG'],
'notify_obj_expire' => $gsValues['NOTIFY_OBJ_EXPIRE'],
'notify_obj_expire_period' => $gsValues['NOTIFY_OBJ_EXPIRE_PERIOD'],
'notify_account_expire' => $gsValues['NOTIFY_ACCOUNT_EXPIRE'],
'notify_account_expire_period' => $gsValues['NOTIFY_ACCOUNT_EXPIRE_PERIOD']
);
echo json_encode($result);
die;
}
if(@$_POST['cmd'] == 'load_user_settings')
{
// groups_collapsed
$default = array( 'objects' => false,
'markers' => false,
'routes' => false,
'zones' => false
);
if (($_SESSION['groups_collapsed'] == '') || (json_decode($_SESSION['groups_collapsed'],true) == null))
{
$groups_collapsed = $default;
}
else
{
$groups_collapsed = json_decode($_SESSION['groups_collapsed'],true);
if (!isset($groups_collapsed["objects"])) { $groups_collapsed["objects"] = $default["objects"]; }
if (!isset($groups_collapsed["markers"])) { $groups_collapsed["markers"] = $default["markers"]; }
if (!isset($groups_collapsed["routes"])) { $groups_collapsed["routes"] = $default["routes"]; }
if (!isset($groups_collapsed["zones"])) { $groups_collapsed["objects"] = $default["zones"]; }
}
// ohc
$default = array( 'no_connection' => false,
'no_connection_color' => '#FFAEAE',
'stopped' => false,
'stopped_color' => '#FFAEAE',
'moving' => false,
'moving_color' => '#B0E57C',
'engine_idle' => false,
'engine_idle_color' => '#FFF0AA',
'event_sos' => false,
'event_sos_color' => '#B4D8E7'
);
if (($_SESSION['ohc'] == '') || (json_decode($_SESSION['ohc'],true) == null))
{
$ohc = $default;
}
else
{
$ohc = json_decode($_SESSION['ohc'],true);
if (!isset($ohc["no_connection"])) { $ohc["no_connection"] = $default["no_connection"]; }
if (!isset($ohc["no_connection_color"])) { $ohc["no_connection_color"] = $default["no_connection_color"]; }
if (!isset($ohc["stopped"])) { $ohc["stopped"] = $default["stopped"]; }
if (!isset($ohc["stopped_color"])) { $ohc["stopped_color"] = $default["stopped_color"]; }
if (!isset($ohc["moving"])) { $ohc["moving"] = $default["moving"]; }
if (!isset($ohc["moving_color"])) { $ohc["moving_color"] = $default["moving_color"]; }
if (!isset($ohc["engine_idle"])) { $ohc["engine_idle"] = $default["engine_idle"]; }
if (!isset($ohc["engine_idle_color"])) { $ohc["engine_idle_color"] = $default["engine_idle_color"]; }
if (!isset($ohc["event_sos"])) { $ohc["event_sos"] = $default["event_sos"]; }
if (!isset($ohc["event_sos_color"])) { $ohc["event_sos_color"] = $default["event_sos_color"]; }
}
if (($_SESSION['info'] == '') || (json_decode($_SESSION['info'],true) == null))
{
$info = array('name' => '',
'company' => '',
'address' => '',
'post_code' => '',
'city' => '',
'country' => '',
'phone1' => '',
'phone2' => '',
'email' => ''
);
}
else
{
$info = json_decode($_SESSION['info'], true);
}
if ($_SESSION['sms_gateway_identifier'] == '')
{
$_SESSION['sms_gateway_identifier'] = genSMSGatewayIdn($_SESSION["email"]);
}
$result = array('username' => $_SESSION["username"],
'email' => $_SESSION["email"],
'manager_id' => $_SESSION["manager_id"],
'cpanel_privileges' => $_SESSION["cpanel_privileges"],
'privileges' => $_SESSION["privileges"],
'privileges_imei' => $_SESSION["privileges_imei"],
'privileges_marker' => $_SESSION["privileges_marker"],
'privileges_route' => $_SESSION["privileges_route"],
'privileges_zone' => $_SESSION["privileges_zone"],
'privileges_history' => $_SESSION["privileges_history"],
'privileges_reports' => $_SESSION["privileges_reports"],
'privileges_rilogbook' => $_SESSION["privileges_rilogbook"],
'privileges_dtc' => $_SESSION["privileges_dtc"],
'privileges_object_control' => $_SESSION["privileges_object_control"],
'privileges_image_gallery' => $_SESSION["privileges_image_gallery"],
'privileges_chat' => $_SESSION["privileges_chat"],
'obj_add' => $_SESSION["obj_add"],
'obj_limit' => $_SESSION["obj_limit"],
'obj_limit_num' => $_SESSION["obj_limit_num"],
'obj_days' => $_SESSION["obj_days"],
'obj_days_dt' => $_SESSION["obj_days_dt"],
'obj_edit' => $_SESSION["obj_edit"],
'obj_history_clear' => $_SESSION["obj_history_clear"],
'chat_notify' => $_SESSION['chat_notify'],
'map_sp' => $_SESSION['map_sp'],
'map_is' => $_SESSION['map_is'],
'map_rc' => $_SESSION['map_rc'],
'map_rhc' => $_SESSION['map_rhc'],
'groups_collapsed' => $groups_collapsed,
'od' => $_SESSION['od'],
'ohc' => $ohc,
'sms_gateway' => $_SESSION['sms_gateway'],
'sms_gateway_type' => $_SESSION['sms_gateway_type'],
'sms_gateway_url' => $_SESSION['sms_gateway_url'],
'sms_gateway_identifier' => $_SESSION['sms_gateway_identifier'],
'sms_gateway_total_in_queue' => getSMSAPPTotalInQueue($_SESSION['sms_gateway_identifier']),
'language' => $_SESSION["language"],
'unit_distance' => $_SESSION["unit_distance"],
'unit_capacity' => $_SESSION["unit_capacity"],
'unit_temperature' => $_SESSION["unit_temperature"],
'currency' => $_SESSION["currency"],
'timezone' => $_SESSION["timezone"],
'dst' => $_SESSION["dst"],
'dst_start' => $_SESSION["dst_start"],
'dst_end' => $_SESSION["dst_end"],
'info' => $info
);
echo json_encode($result);
die;
}
if(@$_POST['cmd'] == 'save_user_settings')
{
$sms_gateway = $_POST["sms_gateway"];
$sms_gateway_type = $_POST["sms_gateway_type"];
$sms_gateway_url = $_POST["sms_gateway_url"];
$sms_gateway_identifier = $_POST["sms_gateway_identifier"];
$chat_notify = $_POST["chat_notify"];
$map_sp = $_POST["map_sp"];
$map_is = $_POST["map_is"];
$map_rc = $_POST["map_rc"];
$map_rhc = $_POST["map_rhc"];
$groups_collapsed = $_POST["groups_collapsed"];
$od = $_POST["od"];
$ohc = $_POST["ohc"];
$language = $_POST["language"];
$units = $_POST["units"];
$currency = $_POST["currency"];
$timezone = $_POST["timezone"];
$dst = $_POST["dst"];
$dst_start = $_POST["dst_start"];
$dst_end = $_POST["dst_end"];
$info = $_POST["info"];
$old_password = $_POST["old_password"];
$new_password = $_POST["new_password"];
$q = "UPDATE `gs_users` SET ";
if ($sms_gateway != 'na')
{
$q .= "`sms_gateway`='".$sms_gateway."',";
}
if ($sms_gateway_type != 'na')
{
$q .= "`sms_gateway_type`='".$sms_gateway_type."',";
}
if ($sms_gateway_url != 'na')
{
$q .= "`sms_gateway_url`='".$sms_gateway_url."',";
}
if ($sms_gateway_identifier != 'na')
{
$q .= "`sms_gateway_identifier`='".$sms_gateway_identifier."',";
}
if ($chat_notify != 'na')
{
$q .= "`chat_notify`='".$chat_notify."',";
}
$q .= "`map_sp`='".$map_sp."',";
$q .= "`map_is`='".$map_is."',";
if ($map_rc != 'na')
{
$q .= "`map_rc`='".$map_rc."',";
}
if ($map_rhc != 'na')
{
$q .= "`map_rhc`='".$map_rhc."',";
}
if ($groups_collapsed != 'na')
{
$q .= "`groups_collapsed`='".$groups_collapsed."',";
}
if ($od != 'na')
{
$q .= "`od`='".$od."',";
}
if ($ohc != 'na')
{
$q .= "`ohc`='".$ohc."',";
}
if ($info != 'na')
{
$q .= "`info`='".$info."',";
}
if ($currency != 'na')
{
$q .= "`currency`='".$currency."',";
}
$q .= "`language`='".$language."',
`units`='".$units."',
`timezone`='".$timezone."'";
$q .= "WHERE `id`='".$_SESSION["user_id"]."'";
$r = mysqli_query($ms, $q);
if (!$r)
{
echo 'error';
die;
}
// dst
if ($dst != 'na')
{
$q = "UPDATE `gs_users` SET dst='".$dst."', dst_start='".$dst_start."', dst_end='".$dst_end."' WHERE `id`='".$_SESSION["user_id"]."'";
$r = mysqli_query($ms, $q);
}
// password
if ($new_password != '')
{
$q = "SELECT * FROM `gs_users` WHERE `id`='".$_SESSION["user_id"]."' AND `password`='".md5($old_password)."' LIMIT 1";
$r = mysqli_query($ms, $q);
$row = mysqli_fetch_array($r);
if ($row)
{
$q = "UPDATE `gs_users` SET password='".md5($new_password)."' WHERE `id`='".$_SESSION["user_id"]."'";
$r = mysqli_query($ms, $q);
}
else
{
echo 'error_pass';
die;
}
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'save_user_language')
{
$language = $_POST["language"];
$q = "UPDATE `gs_users` SET `language`='".$language."' WHERE `id`='".$_SESSION["user_id"]."'";
$r = mysqli_query($ms, $q);
if (!$r)
{
echo 'error';
die;
}
echo 'OK';
die;
}
?>
\ No newline at end of file
<?
session_start();
include ('../init.php');
include ('fn_common.php');
checkUserSession();
loadLanguage($_SESSION["language"], $_SESSION["units"]);
if(@$_POST['cmd'] == 'clear_detected_sensor_cache')
{
$imei = $_POST["imei"];
$q = "UPDATE `gs_objects` SET `params`='' WHERE `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_object_sensor')
{
$sensor_id = $_POST["sensor_id"];
$imei = $_POST["imei"];
$q = "DELETE FROM `gs_object_sensors` WHERE `sensor_id`='".$sensor_id."' AND `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_selected_object_sensors')
{
$items = $_POST["items"];
$imei = $_POST["imei"];
for ($i = 0; $i < count($items); ++$i)
{
$item = $items[$i];
$q = "DELETE FROM `gs_object_sensors` WHERE `sensor_id`='".$item."' AND `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'save_object_sensor')
{
$sensor_id = $_POST["sensor_id"];
$imei = $_POST["imei"];
$name = $_POST["name"];
$type = $_POST["type"];
$param = $_POST["param"];
$data_list = $_POST["data_list"];
$popup = $_POST["popup"];
$result_type = $_POST["result_type"];
$text_1 = $_POST["text_1"];
$text_0 = $_POST["text_0"];
$units = $_POST["units"];
$lv = $_POST["lv"];
$hv = $_POST["hv"];
$formula = $_POST["formula"];
$calibration = $_POST["calibration"];
if ($sensor_id == 'false')
{
$q = "INSERT INTO `gs_object_sensors` (`imei`,
`name`,
`type`,
`param`,
`data_list`,
`popup`,
`result_type`,
`text_1`,
`text_0`,
`units`,
`lv`,
`hv`,
`formula`,
`calibration`)
VALUES
('".$imei."',
'".$name."',
'".$type."',
'".$param."',
'".$data_list."',
'".$popup."',
'".$result_type."',
'".$text_1."',
'".$text_0."',
'".$units."',
'".$lv."',
'".$hv."',
'".$formula."',
'".$calibration."')";
}
else
{
$q = "UPDATE `gs_object_sensors` SET `name`='".$name."',
`type`='".$type."',
`param`='".$param."',
`data_list`='".$data_list."',
`popup`='".$popup."',
`result_type`='".$result_type."',
`text_1`='".$text_1."',
`text_0`='".$text_0."',
`units`='".$units."',
`lv`='".$lv."',
`hv`='".$hv."',
`formula`='".$formula."',
`calibration`='".$calibration."'
WHERE `sensor_id`='".$sensor_id."'";
}
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_GET['cmd'] == 'load_object_sensor_list')
{
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
$imei = $_GET['imei'];
if(!$sidx) $sidx =1;
// get records number
$q = "SELECT * FROM `gs_object_sensors` WHERE `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
$count = mysqli_num_rows($r);
$q = "SELECT * FROM `gs_object_sensors` WHERE `imei`='".$imei."' ORDER BY $sidx $sord";
$result = mysqli_query($ms, $q);
$responce = new stdClass();
$i=0;
while($row = mysqli_fetch_array($result)) {
$sensor_id = $row["sensor_id"];
$name = $row['name'];
$type = $row['type'];
$param = $row['param'];
// change type
if ($type == "di") $type = $la['DIGITAL_INPUT'];
if ($type == "do") $type = $la['DIGITAL_OUTPUT'];
if ($type == "da") $type = $la['DRIVER_ASSIGN'];
if ($type == "engh") $type = $la['ENGINE_HOURS'];
if ($type == "fuel") $type = $la['FUEL_LEVEL'];
if ($type == "fuelcons") $type = $la['FUEL_CONSUMPTION'];
if ($type == "acc") $type = $la['IGNITION_ACC'];
if ($type == "odo") $type = $la['ODOMETER'];
if ($type == "pa") $type = $la['PASSENGER_ASSIGN'];
if ($type == "temp") $type = $la['TEMPERATURE'];
if ($type == "ta") $type = $la['TRAILER_ASSIGN'];
if ($type == "cust") $type = $la['CUSTOM'];
// set modify buttons
$modify = '<a href="#" onclick="settingsObjectSensorProperties(\''.$sensor_id.'\');" title="'.$la['EDIT'].'"><img src="theme/images/edit.svg" />';
$modify .= '</a><a href="#" onclick="settingsObjectSensorDelete(\''.$sensor_id.'\');" title="'.$la['DELETE'].'"><img src="theme/images/remove3.svg" /></a>';
// set row
$responce->rows[$i]['id']=$sensor_id;
$responce->rows[$i]['cell']=array($name,$type,$param,$modify);
$i++;
}
$responce->page = 1;
//$responce->total = $count;
$responce->records = $count;
header('Content-type: application/json');
echo json_encode($responce);
die;
}
?>
\ No newline at end of file
<?
session_start();
include ('../init.php');
include ('fn_common.php');
checkUserSession();
loadLanguage($_SESSION["language"], $_SESSION["units"]);
if(@$_POST['cmd'] == 'delete_object_service')
{
$service_id = $_POST["service_id"];
$imei = $_POST["imei"];
$q = "DELETE FROM `gs_object_services` WHERE `service_id`='".$service_id."' AND `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_selected_object_services')
{
$items = $_POST["items"];
$imei = $_POST["imei"];
for ($i = 0; $i < count($items); ++$i)
{
$item = $items[$i];
$q = "DELETE FROM `gs_object_services` WHERE `service_id`='".$item."' AND `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'save_object_service')
{
$service_id = $_POST["service_id"];
$imei = $_POST["imei"];
$name = $_POST["name"];
$data_list = $_POST["data_list"];
$popup = $_POST["popup"];
$odo = $_POST["odo"];
$odo_interval = $_POST["odo_interval"];
$odo_last = $_POST["odo_last"];
$engh = $_POST["engh"];
$engh_interval = $_POST["engh_interval"];
$engh_last = $_POST["engh_last"];
$days = $_POST["days"];
$days_interval = $_POST["days_interval"];
$days_last = $_POST["days_last"];
$odo_left = $_POST["odo_left"];
$odo_left_num = $_POST["odo_left_num"];
$engh_left = $_POST["engh_left"];
$engh_left_num = $_POST["engh_left_num"];
$days_left = $_POST["days_left"];
$days_left_num = $_POST["days_left_num"];
$update_last = $_POST["update_last"];
// save in km
$odo_interval = convDistanceUnits($odo_interval, $_SESSION["unit_distance"], 'km');
$odo_last = convDistanceUnits($odo_last, $_SESSION["unit_distance"], 'km');
$odo_left_num = convDistanceUnits($odo_left_num, $_SESSION["unit_distance"], 'km');
if ($service_id == 'false')
{
$q = "INSERT INTO `gs_object_services` (`imei`,
`name`,
`data_list`,
`popup`,
`odo`,
`odo_interval`,
`odo_last`,
`engh`,
`engh_interval`,
`engh_last`,
`days`,
`days_interval`,
`days_last`,
`odo_left`,
`odo_left_num`,
`engh_left`,
`engh_left_num`,
`days_left`,
`days_left_num`,
`update_last`)
VALUES
('".$imei."',
'".$name."',
'".$data_list."',
'".$popup."',
'".$odo."',
'".$odo_interval."',
'".$odo_last."',
'".$engh."',
'".$engh_interval."',
'".$engh_last."',
'".$days."',
'".$days_interval."',
'".$days_last."',
'".$odo_left."',
'".$odo_left_num."',
'".$engh_left."',
'".$engh_left_num."',
'".$days_left."',
'".$days_left_num."',
'".$update_last."')";
}
else
{
$q = "UPDATE `gs_object_services` SET `name`='".$name."',
`data_list`='".$data_list."',
`popup`='".$popup."',
`odo`='".$odo."',
`odo_interval`='".$odo_interval."',
`odo_last`='".$odo_last."',
`engh`='".$engh."',
`engh_interval`='".$engh_interval."',
`engh_last`='".$engh_last."',
`days`='".$days."',
`days_interval`='".$days_interval."',
`days_last`='".$days_last."',
`odo_left`='".$odo_left."',
`odo_left_num`='".$odo_left_num."',
`engh_left`='".$engh_left."',
`engh_left_num`='".$engh_left_num."',
`days_left`='".$days_left."',
`days_left_num`='".$days_left_num."',
`update_last`='".$update_last."'
WHERE `service_id`='".$service_id."'";
}
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_GET['cmd'] == 'load_object_service_list')
{
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
$imei = $_GET['imei'];
if(!$sidx) $sidx =1;
// get records number
$q = "SELECT * FROM `gs_object_services` WHERE `imei`='".$imei."'";
$r = mysqli_query($ms, $q);
$count = mysqli_num_rows($r);
$q = "SELECT * FROM `gs_object_services` WHERE `imei`='".$imei."' ORDER BY $sidx $sord";
$result = mysqli_query($ms, $q);
$responce = new stdClass();
// get real odometer and engine hours
$odometer = getObjectOdometer($imei);
$odometer = floor(convDistanceUnits($odometer, 'km', $_SESSION["unit_distance"]));
$engine_hours = getObjectEngineHours($imei, false);
$i=0;
while($row = mysqli_fetch_array($result)) {
$service_id = $row["service_id"];
$name = $row['name'];
$status_arr = array();
if ($row['odo'] == 'true')
{
$row['odo_interval'] = floor(convDistanceUnits($row['odo_interval'], 'km', $_SESSION["unit_distance"]));
$row['odo_last'] = floor(convDistanceUnits($row['odo_last'], 'km', $_SESSION["unit_distance"]));
$odo_diff = $odometer - $row['odo_last'];
$odo_diff = $row['odo_interval'] - $odo_diff;
if ($odo_diff <= 0)
{
$odo_diff = abs($odo_diff);
$status_arr[] = '<font color="red">'.$la['ODOMETER_EXPIRED'].' ('.$odo_diff.' '.$la["UNIT_DISTANCE"].')</font>';
}
else
{
$status_arr[] = $la['ODOMETER_LEFT'].' ('.$odo_diff.' '.$la["UNIT_DISTANCE"].')';
}
}
if ($row['engh'] == 'true')
{
$engh_diff = $engine_hours - $row['engh_last'];
$engh_diff = $row['engh_interval'] - $engh_diff;
if ($engh_diff <= 0)
{
$engh_diff = abs($engh_diff);
$status_arr[] = '<font color="red">'.$la['ENGINE_HOURS_EXPIRED'].' ('.$engh_diff.' '.$la["UNIT_H"].')</font>';
}
else
{
$status_arr[] = $la['ENGINE_HOURS_LEFT'].' ('.$engh_diff.' '.$la["UNIT_H"].')';
}
}
if ($row['days'] == 'true')
{
$days_diff = strtotime(gmdate("Y-m-d")) - (strtotime($row['days_last']));
$days_diff = floor($days_diff/3600/24);
$days_diff = $row['days_interval'] - $days_diff;
if ($days_diff <= 0)
{
$days_diff = abs($days_diff);
$status_arr[] = '<font color="red">'.$la['DAYS_EXPIRED'].' ('.$days_diff.')</font>';
}
else
{
$status_arr[] = $la['DAYS_LEFT'].' ('.$days_diff.')';
}
}
$status = strtolower(implode(", ", $status_arr));
// set modify buttons
$modify = '<a href="#" onclick="settingsObjectServiceProperties(\''.$service_id.'\');" title="'.$la['EDIT'].'"><img src="theme/images/edit.svg" />';
$modify .= '</a><a href="#" onclick="settingsObjectServiceDelete(\''.$service_id.'\');" title="'.$la['DELETE'].'"><img src="theme/images/remove3.svg" /></a>';
// set row
$responce->rows[$i]['id']=$service_id;
$responce->rows[$i]['cell']=array($name,$status,$modify);
$i++;
}
$responce->page = 1;
//$responce->total = $count;
$responce->records = $count;
header('Content-type: application/json');
echo json_encode($responce);
die;
}
?>
\ No newline at end of file
<?
session_start();
include ('../init.php');
include ('fn_common.php');
checkUserSession();
include ('../tools/email.php');
loadLanguage($_SESSION["language"], $_SESSION["units"]);
if(@$_POST['cmd'] == 'load_subaccount_values')
{
$manager_id = $_SESSION["user_id"];
$q = "SELECT * FROM `gs_users` WHERE `privileges` LIKE '%subuser%' AND `manager_id`='".$manager_id."' ORDER BY `email` ASC";
$r = mysqli_query($ms, $q);
$result = array();
while($row=mysqli_fetch_array($r))
{
$privileges = json_decode($row['privileges'],true);
$privileges = checkUserPrivilegesArray($privileges);
$imei = $privileges['imei'];
$marker = $privileges['marker'];
$route = $privileges['route'];
$zone = $privileges['zone'];
$history = $privileges['history'];
$reports = $privileges['reports'];
$rilogbook = $privileges['rilogbook'];
$dtc = $privileges['dtc'];
$object_control = $privileges['object_control'];
$image_gallery = $privileges['image_gallery'];
$chat = $privileges['chat'];
if (!isset($privileges['au_active'])) { $privileges['au_active'] = false; }
$au_active = $privileges['au_active'];
if (!isset($privileges['au'])) { $privileges['au'] = ''; }
$au = $privileges['au'];
$subaccount_id = $row['id'];
$result[$subaccount_id] = array('email' => $row['email'],
'active' => $row['active'],
'account_expire' => $row['account_expire'],
'account_expire_dt' => $row['account_expire_dt'],
'imei' => $imei,
'marker' => $marker,
'route' => $route,
'zone' => $zone,
'history' => $history,
'reports' => $reports,
'rilogbook' => $rilogbook,
'dtc' => $dtc,
'object_control' => $object_control,
'image_gallery' => $image_gallery,
'chat' => $chat,
'au_active' => $au_active,
'au' => $au
);
}
echo json_encode($result);
die;
}
if(@$_POST['cmd'] == 'delete_subaccount')
{
$subaccount_id= $_POST["subaccount_id"];
$manager_id = $_SESSION["user_id"];
$q = "DELETE FROM `gs_users` WHERE `id`='".$subaccount_id."' AND `manager_id`='".$manager_id."'";
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_selected_subaccounts')
{
$items = $_POST["items"];
$manager_id = $_SESSION["user_id"];
for ($i = 0; $i < count($items); ++$i)
{
$item = $items[$i];
$q = "DELETE FROM `gs_users` WHERE `id`='".$item."' AND `manager_id`='".$manager_id."'";
$r = mysqli_query($ms, $q);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'save_subaccount')
{
$result = '';
$subaccount_id = $_POST["subaccount_id"];
$email = strtolower($_POST["email"]);
$password = $_POST["password"];
$active = $_POST["active"];
$account_expire = $_POST["account_expire"];
$account_expire_dt = $_POST["account_expire_dt"];
$privileges = $_POST["privileges"];
$manager_id = $_SESSION["user_id"];
if ($subaccount_id == 'false')
{
$manager_id = $_SESSION["user_id"];
$result = addUser('true', $active, $account_expire, $account_expire_dt, $privileges, $manager_id, $email, $password, 'false', 'false', '', 'false', '', 'false', 'false');
}
else
{
$q = "UPDATE `gs_users` SET `active`='".$active."',
`account_expire`='".$account_expire."',
`account_expire_dt`='".$account_expire_dt."',
`username`='".$email."',
`email`='".$email."',
`privileges`='".$privileges."'
WHERE `id`='".$subaccount_id."' AND `manager_id`='".$manager_id."'";
$r = mysqli_query($ms, $q);
if ($password != '')
{
$q = "UPDATE `gs_users` SET `password`='".md5($password)."' WHERE `id`='".$subaccount_id."' AND `manager_id`='".$manager_id."'";
$r = mysqli_query($ms, $q);
}
$result = 'OK';
}
echo $result;
}
if(@$_GET['cmd'] == 'load_subaccount_list')
{
$manager_id = $_SESSION["user_id"];
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
if(!$sidx) $sidx = 1;
// get records number
$q = "SELECT * FROM `gs_users` WHERE `privileges` LIKE '%subuser%' AND `manager_id`='".$manager_id."'";
$r = mysqli_query($ms, $q);
$count = mysqli_num_rows($r);
if( $count >0 )
{
$total_pages = ceil($count/$limit);
}
else
{
$total_pages = 1;
}
if ($page > $total_pages) $page=$total_pages;
$start = $limit*$page - $limit; // do not put $limit*($page - 1)
$q = "SELECT * FROM `gs_users` WHERE `privileges` LIKE '%subuser%' AND `manager_id`='".$manager_id."' ORDER BY $sidx $sord LIMIT $start, $limit";
$r = mysqli_query($ms, $q);
$responce = new stdClass();
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
$i=0;
while($row = mysqli_fetch_array($r))
{
$subaccount_id = $row["id"];
$email = $row['email'];
if ($row['active'] == 'true')
{
$active = '<img src="theme/images/tick-green.svg" />';
}
else
{
$active = '<img src="theme/images/remove-red.svg" style="width:12px;" />';
}
$privileges = json_decode($row['privileges'],true);
$imeis = count(explode(",", $privileges['imei']));
$markers = explode(",", $privileges['marker']);
if ($markers[0] == '')
{
$markers = 0;
}
else
{
$markers = count($markers);
}
$routes = explode(",", $privileges['route']);
if ($routes[0] == '')
{
$routes = 0;
}
else
{
$routes = count($routes);
}
$zones = explode(",", $privileges['zone']);
if ($zones[0] == '')
{
$zones = 0;
}
else
{
$zones = count($zones);
}
$places = $markers.'/'.$routes.'/'.$zones;
// set modify buttons
$modify = '<a href="#" onclick="settingsSubaccountProperties(\''.$subaccount_id.'\');"><img src="theme/images/edit.svg" title="'.$la['EDIT'].'"/></a>';
$modify .= '<a href="#" onclick="settingsSubaccountDelete(\''.$subaccount_id.'\');"><img src="theme/images/remove3.svg" title="'.$la['DELETE'].'"/></a>';
// set row
$responce->rows[$i]['id']=$subaccount_id;
$responce->rows[$i]['cell']=array($email,$active,$imeis,$places,$modify);
$i++;
}
header('Content-type: application/json');
echo json_encode($responce);
die;
}
?>
\ No newline at end of file
<?
session_start();
include ('../init.php');
include ('fn_common.php');
checkUserSession();
loadLanguage($_SESSION["language"], $_SESSION["units"]);
if(@$_POST['cmd'] == 'load_template_values')
{
$user_id = $_SESSION["user_id"];
$q = "SELECT * FROM `gs_user_templates` WHERE `user_id`='".$user_id."' ORDER BY `name` ASC";
$r = mysqli_query($ms, $q);
$result = array();
while($row=mysqli_fetch_array($r))
{
$template_id = $row['template_id'];
$result[$template_id] = array( 'name' => $row['name'],
'desc' => $row['desc'],
'subject' => $row['subject'],
'message' => $row['message']
);
}
echo json_encode($result);
die;
}
if(@$_GET['cmd'] == 'load_template_list')
{
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
$user_id = $_SESSION["user_id"];
if(!$sidx) $sidx =1;
// get records number
$q = "SELECT * FROM `gs_user_templates` WHERE `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
$count = mysqli_num_rows($r);
if( $count >0 )
{
$total_pages = ceil($count/$limit);
}
else
{
$total_pages = 1;
}
if ($page > $total_pages) $page=$total_pages;
$start = $limit*$page - $limit; // do not put $limit*($page - 1)
$q = "SELECT * FROM `gs_user_templates` WHERE `user_id`='".$user_id."' ORDER BY $sidx $sord LIMIT $start, $limit";
$r = mysqli_query($ms, $q);
$responce = new stdClass();
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
$i=0;
while($row = mysqli_fetch_array($r)) {
$template_id = $row['template_id'];
$name = $row['name'];
$desc = $row['desc'];
// set modify buttons
$modify = '<a href="#" onclick="settingsTemplateProperties(\''.$template_id.'\');" title="'.$la['EDIT'].'"><img src="theme/images/edit.svg" />';
$modify .= '</a><a href="#" onclick="settingsTemplateDelete(\''.$template_id.'\');" title="'.$la['DELETE'].'"><img src="theme/images/remove3.svg" /></a>';
// set row
$responce->rows[$i]['id']=$template_id;
$responce->rows[$i]['cell']=array($name,$desc,$modify);
$i++;
}
header('Content-type: application/json');
echo json_encode($responce);
die;
}
if(@$_POST['cmd'] == 'delete_template')
{
$template_id = $_POST["template_id"];
$user_id = $_SESSION["user_id"];
$q = "DELETE FROM `gs_user_templates` WHERE `template_id`='".$template_id."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_selected_templates')
{
$items = $_POST["items"];
$user_id = $_SESSION["user_id"];
for ($i = 0; $i < count($items); ++$i)
{
$item = $items[$i];
$q = "DELETE FROM `gs_user_templates` WHERE `template_id`='".$item."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'save_template')
{
$template_id = $_POST["template_id"];
$user_id = $_SESSION["user_id"];
$name = $_POST["name"];
$desc = $_POST["desc"];
$subject = $_POST["subject"];
$message = $_POST["message"];
if ($template_id == 'false')
{
$q = "INSERT INTO `gs_user_templates` (`user_id`,
`name`,
`desc`,
`subject`,
`message`
) VALUES (
'".$user_id."',
'".$name."',
'".$desc."',
'".$subject."',
'".$message."')";
}
else
{
$q = "UPDATE `gs_user_templates` SET `name`='".$name."',
`desc`='".$desc."',
`subject`='".$subject."',
`message`='".$message."'
WHERE `template_id`='".$template_id."'";
}
$r = mysqli_query($ms, $q);
echo 'OK';
}
?>
\ No newline at end of file
<?
session_start();
include ('../init.php');
include ('fn_common.php');
checkUserSession();
loadLanguage($_SESSION["language"], $_SESSION["units"]);
// check privileges
if ($_SESSION["privileges"] == 'subuser')
{
$user_id = $_SESSION["manager_id"];
}
else
{
$user_id = $_SESSION["user_id"];
}
if(@$_POST['cmd'] == 'delete_object_trailer')
{
$trailer_id = $_POST["trailer_id"];
$q = "DELETE FROM `gs_user_object_trailers` WHERE `trailer_id`='".$trailer_id."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
// reset trailer_id in objects
$q = "UPDATE `gs_user_objects` SET `trailer_id`='0' WHERE `trailer_id`='".$trailer_id."'";
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'delete_selected_object_trailers')
{
$items = $_POST["items"];
for ($i = 0; $i < count($items); ++$i)
{
$item = $items[$i];
$q = "DELETE FROM `gs_user_object_trailers` WHERE `trailer_id`='".$item."' AND `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
// reset trailer_id in objects
$q = "UPDATE `gs_user_objects` SET `trailer_id`='0' WHERE `trailer_id`='".$item."'";
$r = mysqli_query($ms, $q);
}
echo 'OK';
die;
}
if(@$_POST['cmd'] == 'save_object_trailer')
{
$trailer_id = $_POST["trailer_id"];
$trailer_name = $_POST["trailer_name"];
$trailer_assign_id = strtoupper($_POST["trailer_assign_id"]);
$trailer_model = $_POST["trailer_model"];
$trailer_vin = $_POST["trailer_vin"];
$trailer_plate_number = $_POST["trailer_plate_number"];
$trailer_desc = $_POST["trailer_desc"];
if ($trailer_id == 'false')
{
$q = "INSERT INTO `gs_user_object_trailers`( `user_id`,
`trailer_name`,
`trailer_assign_id`,
`trailer_model`,
`trailer_vin`,
`trailer_plate_number`,
`trailer_desc`)
VALUES
('".$user_id."',
'".$trailer_name."',
'".$trailer_assign_id."',
'".$trailer_model."',
'".$trailer_vin."',
'".$trailer_plate_number."',
'".$trailer_desc."')";
}
else
{
$q = "UPDATE `gs_user_object_trailers` SET `trailer_name`='".$trailer_name."',
`trailer_assign_id`='".$trailer_assign_id."',
`trailer_model`='".$trailer_model."',
`trailer_vin`='".$trailer_vin."',
`trailer_plate_number`='".$trailer_plate_number."',
`trailer_desc`='".$trailer_desc."'
WHERE `trailer_id`='".$trailer_id."'";
}
$r = mysqli_query($ms, $q);
echo 'OK';
die;
}
if(@$_GET['cmd'] == 'load_object_trailer_list')
{
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
if(!$sidx) $sidx =1;
$q = "SELECT * FROM `gs_user_object_trailers` WHERE `user_id`='".$user_id."'";
$r = mysqli_query($ms, $q);
$count = mysqli_num_rows($r);
if( $count >0 )
{
$total_pages = ceil($count/$limit);
}
else
{
$total_pages = 1;
}
if ($page > $total_pages) $page=$total_pages;
$start = $limit*$page - $limit; // do not put $limit*($page - 1)
$q = "SELECT * FROM `gs_user_object_trailers` WHERE `user_id`='".$user_id."' ORDER BY $sidx $sord LIMIT $start, $limit";
$r = mysqli_query($ms, $q);
$responce = new stdClass();
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
$i=0;
while($row = mysqli_fetch_array($r))
{
$trailer_id = $row["trailer_id"];
$trailer_name = $row["trailer_name"];
$trailer_desc = $row["trailer_desc"];
// set modify buttons
$modify = '<a href="#" onclick="settingsObjectTrailerProperties(\''.$trailer_id.'\');" title="'.$la['EDIT'].'"><img src="theme/images/edit.svg" /></a>';
$modify .= '<a href="#" onclick="settingsObjectTrailerDelete(\''.$trailer_id.'\');" title="'.$la['DELETE'].'"><img src="theme/images/remove3.svg" /></a>';
// set row
$responce->rows[$i]['id']=$trailer_id;
$responce->rows[$i]['cell']=array($trailer_name,$trailer_desc,$modify);
$i++;
}
header('Content-type: application/json');
echo json_encode($responce);
die;
}
if(@$_POST['cmd'] == 'load_object_trailer_values')
{
$q = "SELECT * FROM `gs_user_object_trailers` WHERE `user_id`='".$user_id."' ORDER BY `trailer_name` ASC";
$r = mysqli_query($ms, $q);
$result = array();
while($row=mysqli_fetch_array($r))
{
$trailer_id = $row['trailer_id'];
$result[$trailer_id] = array( 'name' => $row['trailer_name'],
'assign_id' => $row['trailer_assign_id'],
'model' => $row['trailer_model'],
'vin' => $row['trailer_vin'],
'plate_number' => $row['trailer_plate_number'],
'desc' => $row['trailer_desc']
);
}
echo json_encode($result);
die;
}
?>
\ No newline at end of file
<?
session_start();
include ('../init.php');
include ('fn_common.php');
checkUserSession();
if(@$_GET['file'] == 'logo_png')
{
if ($_SESSION["cpanel_privileges"] != 'super_admin')
{
die;
}
$postdata = file_get_contents("php://input");
if (isset($postdata))
{
$imageData = $postdata;
$filteredData = substr($imageData, strpos($imageData, ",")+1);
$unencodedData=base64_decode($filteredData);
$file_path = $gsValues['PATH_ROOT'].'img/logo.png';
$fp = fopen( $file_path, 'wb' );
fwrite( $fp, $unencodedData);
fclose( $fp );
$file_url = $gsValues['URL_ROOT'].'/img/logo.png';
echo $file_url;
}
}
if(@$_GET['file'] == 'logo_svg')
{
if ($_SESSION["cpanel_privileges"] != 'super_admin')
{
die;
}
$postdata = file_get_contents("php://input");
if (isset($postdata))
{
$imageData = $postdata;
$filteredData = substr($imageData, strpos($imageData, ",")+1);
$unencodedData=base64_decode($filteredData);
$file_path = $gsValues['PATH_ROOT'].'img/logo.svg';
$fp = fopen( $file_path, 'wb' );
fwrite( $fp, $unencodedData);
fclose( $fp );
$file_url = $gsValues['URL_ROOT'].'/img/logo.svg';
echo $file_url;
}
}
if(@$_GET['file'] == 'driver_photo')
{
$postdata = file_get_contents("php://input");
if (isset($postdata))
{
$imageData = $postdata;
$filteredData = substr($imageData, strpos($imageData, ",")+1);
$unencodedData=base64_decode($filteredData);
$file_path = $gsValues['PATH_ROOT'].'data/user/drivers/'.$_SESSION["user_id"].'_temp.png';
$file_url = $gsValues['URL_ROOT'].'/data/user/drivers/'.$_SESSION["user_id"].'_temp.png';
$fp = fopen( $file_path, 'wb' );
fwrite( $fp, $unencodedData);
fclose( $fp );
echo $file_url;
}
}
if(@$_GET['file'] == 'object_icon_png')
{
$postdata = file_get_contents("php://input");
if (isset($postdata))
{
$imageData = $postdata;
$filteredData = substr($imageData, strpos($imageData, ",")+1);
$unencodedData=base64_decode($filteredData);
$file_path = $gsValues['PATH_ROOT'].'data/user/objects/'.$_SESSION["user_id"].'_'.md5(gmdate("Y-m-d H:i:s")).'.png';
$fp = fopen( $file_path, 'wb' );
fwrite( $fp, $unencodedData);
fclose( $fp );
}
}
if(@$_GET['file'] == 'object_icon_svg')
{
$postdata = file_get_contents("php://input");
if (isset($postdata))
{
$imageData = $postdata;
$filteredData = substr($imageData, strpos($imageData, ",")+1);
$unencodedData=base64_decode($filteredData);
$file_path = $gsValues['PATH_ROOT'].'data/user/objects/'.$_SESSION["user_id"].'_'.md5(gmdate("Y-m-d H:i:s")).'.svg';
$fp = fopen( $file_path, 'wb' );
fwrite( $fp, $unencodedData);
fclose( $fp );
}
}
if(@$_GET['file'] == 'places_icon_png')
{
$postdata = file_get_contents("php://input");
if (isset($postdata))
{
$imageData = $postdata;
$filteredData = substr($imageData, strpos($imageData, ",")+1);
$unencodedData=base64_decode($filteredData);
$file_path = $gsValues['PATH_ROOT'].'data/user/places/'.$_SESSION["user_id"].'_'.md5(gmdate("Y-m-d H:i:s")).'.png';
$fp = fopen( $file_path, 'wb' );
fwrite( $fp, $unencodedData);
fclose( $fp );
}
}
if(@$_GET['file'] == 'places_icon_svg')
{
$postdata = file_get_contents("php://input");
if (isset($postdata))
{
$imageData = $postdata;
$filteredData = substr($imageData, strpos($imageData, ",")+1);
$unencodedData=base64_decode($filteredData);
$file_path = $gsValues['PATH_ROOT'].'data/user/places/'.$_SESSION["user_id"].'_'.md5(gmdate("Y-m-d H:i:s")).'.svg';
$fp = fopen( $file_path, 'wb' );
fwrite( $fp, $unencodedData);
fclose( $fp );
}
}
?>
\ No newline at end of file
67421D253B3B5395081D034877E4B397
\ No newline at end of file
img/Group 21.png

38.6 KB

<svg width="417" height="91" viewBox="0 0 417 91" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect width="223" height="91" transform="matrix(-1 0 0 1 326 0)" fill="url(#pattern0)" fill-opacity="0.7"/>
<rect width="77" height="32" transform="matrix(-1 0 0 1 77 54)" fill="url(#pattern1)" fill-opacity="0.7"/>
<rect width="78" height="32" transform="matrix(-1 0 0 1 417 54)" fill="url(#pattern2)" fill-opacity="0.7"/>
<defs>
<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0" transform="translate(0 -0.0894665) scale(0.00151286 0.00370734)"/>
</pattern>
<pattern id="pattern1" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0" transform="translate(0 -0.0788105) scale(0.00151286 0.00364032)"/>
</pattern>
<pattern id="pattern2" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0" transform="translate(0 -0.0863275) scale(0.00151286 0.00368759)"/>
</pattern>
<image id="image0" width="661" height="318" xlink:href="data:image/png;base64,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"/>
</defs>
</svg>
<svg width="402" height="95" viewBox="0 0 402 95" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect x="88" width="214" height="95" fill="url(#pattern0)" fill-opacity="0.7"/>
<rect x="327" y="57" width="75" height="33" fill="url(#pattern1)" fill-opacity="0.7"/>
<rect y="57" width="75" height="33" fill="url(#pattern2)" fill-opacity="0.7"/>
<defs>
<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0" transform="translate(0 -0.0418584) scale(0.00151286 0.00340791)"/>
</pattern>
<pattern id="pattern1" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0" transform="translate(0 -0.0466923) scale(0.00151286 0.00343832)"/>
</pattern>
<pattern id="pattern2" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0" transform="translate(0 -0.0466923) scale(0.00151286 0.00343832)"/>
</pattern>
<image id="image0" width="661" height="318" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApUAAAE+CAYAAAGrZduBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAsW9JREFUeNrsWwtMFEcY/hePh4A8BKwn2EOIgQJtNamNbZP2sJq2Vm1Mq0RrFTS2Sm1FGx/RtIJptFpbbIuRNCHQmJpqHxC01foo2KSlbdKgUcCiqRB5U7zjPM7jgNvOP9yce3t7L1kO0PuTyezOzs7NfPP9j5nZ43ieB5/II35jteMcx3klXaqrz+zW9/KYaq79i7nGYf2xykzsvDdEe9soCVDEhCC7DvjAFMjF2n9y4qeqSsilpr+/HxQKhWS9hpuNEBQYBKY+EzyWPJ3zgWkLooZkJTNSkjY5YqIjaWpthjhlbB5hau4DDyYBkidsHHI7qPZj1gHJKGVDeVnfo6emdUx7c7mEqPZiYgOz7uVdtJ2hIaGLCSsjacFoUXO0W8Re5ZCksdiwsScjDSYBLhftFhp+YcIyfDam7DiC6a2YzZM4TqBKB9HL+sB0zMYK4kHV7tTFeC86MpTzgelEWjpu8aa+vsGwIiwctLpu+3CDlEutNNwJdwibOTfq3SD1pt03NtMLWsCznKRqS44pX1zHB+YQQZYTTMWDABqqvGzs8zHzAWQmP8wzSxztsDJUIeNMVwxxWZc+3JO1YOlyNfPyFiekHpVgElG7E46MJvUm/a20lMF9p+Ze2tgQMpMfrcxM91Dl6EAWv70NYhOToGDz6pFgJienA/KTccaZyji1Q6ebjDwCGTVnGTycnQ9/85Oh/Hq3V5k5XOZIIWJLMckywyPHQ7fmDpw8fpTzJHZz1UkEEoFDEJn8p+8Dfe+A1zZW8ZwHV6pDdGR86qRJUNPRYYORFczXVq3ijXf64MSxr+n9wozX4UTtR/zClO2cI7vjyQxjB1CVEUiDyQwdt00jZTMPWkDd5Uj9HY0Xx7CZgKh6LwcS4lWwZkMO6Lbu4Jc3NMwkoF5UsEpCIFHwuvyn07Bu2zq+cF8hN1RmPrX1MDTrjdDQZRxNnj3XXa1CeX/yZHjys0+s90UFdF7g6Lad1WEkjKVgrt/9KMxP2m738qL5L4Ii8SIU7rN7lCfKne7cFF24xENPA/xeVQN+1SdB6HhQLnea4MLIsDRXiqWONMu8YpnkM8JMfJ7j0pv/dqrVYSdY7kI1cttC4mnZ0/NIPu9let2Gqa0Xqvavp6ylZYaBEYs5XUmMQgGzZz3hrEq+1e6bzdLtPvOS0tW2Fi8Vswnu6aybBwbgdleXvQcMHO91AFnfnHl28Yqus7+f+hEnMpMy8/AHl+H0I9nw8Y4vIDDgLlnxZTQBgh/AVU6lOw5I/Mxv3DiYEBVlV2/Wxk+t12uzVno1aHcENjtHxyOVW1oNJExV4juRR+PjNbe0PTAxIsRav/zUWSDlELZ/z6ADQvf+49W9/PkbByiwKK+sTqBAsnt2VkNyesRpcUAzhGEGizVdiVC1hbJpw7vDCmR+wecuVVv8QcLEiMFTXIKRFrbuAP+9e2AhsZFMEMgP29psQ6OamkZITVXZMJEBzTqARwt4lCD4wWrxxoyUAxIDiXL9yG7QErUPDQsDhb8/xCiVdLAMVHYdFxsHTc1Ng3ZLqXS842Q2Q3RMDFy9cgX8AwJgWmIiaLRa6/MVry7BsVSyuFAKVLFqi783QkeD4GESSq3RmG4D5q/HdFmpu6FYWImxUijISgamJ2quu1lvDZGufZULna2tEBwUAL16HWiMJkhOS6NljJ0s/7b0B3r9x19/gsbQ45R5CCS2iVJfV0fbdLGPWSHeuWIaaPmGCNo62m2IRdhpMwkDZMJwkmzAJAUlc9esLZ6uSqD3HboWa3SPwLAfQSARUKnZFQLI7KuQjULBQRceOgQ/nz0HpWWlFIh7FfYua9NgMMDmLVtouTIuDsIjIiRtJtv2E44Dj5bJGHMYkMmJKk4cBgmZ+YZWmye5nDxX1BOp3KnThAaGwfcHbD0vnhLSI9rYh9LdDHRx1jmckGNlp6ydPXP+DLS3t4PBOLgCemHeXAomSjRZXRw5/o1dQ1JlUsLaDA4OZkWVrU1N6j6TCZ5/djYnZqPUHqzljN7hOT2OZ+DNbH4cmaDviK0k93fDQ/HmNganX1a9xbtaMTgJPdzacF26MpPPzH6HbnosWJIhy64NtknbI2lRxjLe3RjT010jbF9DABWXW8/NMbgWlD9O0iVx5bTUlOeu1NQ6XaxMmaJUtbS0NrrRp41kKiMsPitPJodNjDmf6U6bc9TqXb9UVuaJrz0QjJ/zkJmIHWWo7w8C8onv+0wZhfMxUz75XwB2zj62iTKO47/rVve+tQhEMgNbtmwzMRFfgkGCmUuIErexhQhhOpnoGjRmZkSn+JJlIuJbxDiHzBDUwDT9iwiJg4SwamJCzKaRhBD+2FaWOGEpW9eNrkXY+fye3nM+d73rC+t13XZPUlburXfffn/P757nfp+aYpphDsligJD76WMc0ODIqKi37YJ2ptGVe5HAAa3KPHpXZIqpEHCYCFgUbTs2AiTbuomwxaaYKhfaCmwdtvyC9jvZH51qiim1eEEqtUtxWG2KmQAxeWcu+Zt2aVzujnc//4xfNxmlRJOQFdtC/FJomKeAKzpIVsQH0BNafZEpZuwiRs2eKRtGqSJmPB3+QhJzXhIQCoQP5xj7w97zr0AwMFfnJ2y7pZyZ2ftvuQKJJr5wwihnLmYxxWSHefoScaoLpJr7WFFAsy3FBKTVqrc11IkGN6PDPyU4IKkYYG0yvjSuCKGSW+ZaVGGCj0sXsjMXfQKK4swwhCVlwjxOF+I43PbA45tgY12otPmrPbs6kvHZLJsbkdHTkyyiuOqRKvin/xylLlBRRFlGDrUm3ZmGJyC82DUly+DK4HhEBoidVDy0BSPSrOtqYDV5ybND1wNJvaXAeqlItfixGGJlTg6M3aDljd8RneTfRGJF/GtrW/P+PH88k+IYQ+4r0PPbPvj9pD5YFW/76I9JccQXkAXkm8W5F/90nHL2tBsppBBhel4vMfEGudF1WNz+y68KVirHagVnz/eCPGt06tJ+sbri7bADHTnzHjQ/9YEQozO9ZJld64QadreIvnEPzG4/oHkh8yGmigGK6tS25pfFDXW1FOfhG4MGyLkL6civdLdfhGpn+AHuX7aFuHZIVLmzQ+e9V0twcvwiFHK6qgVyQ6JBYWkF1L/SFtopOAvHnfOS1eMK9XftdshTCSmJCFNvviP3mQf1DoDcS57tLt2T0DshPjRe/fzocO/PvTB49ksFFDBwNUj/Fg+flZclkwOK99bosMcDb8SQgB6E8EJ/hYXjTUD8NijayoeqwLqqQvMEfiJCJ3vyI9qtEdkGS5lbyTZutmz38uXRuxH8B7GVW0MPQ+3mTfIK5F3OX+tESKCYhLmbDcHiHXrt75+MOuKQat6xyzC0z4wlmfJPATzj16F0TSHd5+rrb4kvjYwo+FJMOu/vckC/30/7TLrhDkeT+NyecgVdwRCWpyv2Cuq6G/YoQVVy7ea/Sf5WQs38aHFAF75uA8fOFwx1Jda1R5qCI+vqyHWe4JcxSACvA8GAS4EA7JO4HwYK5H/yoSAPJ6e8N7FeZljNADFxUUh8Tpydla0IFQhBAGFO58Nc66QzMjNlDsgmUWvZubky+6PVIjFA2BB7KSkvh8HLlymygqQF2yfDkiazRJHCm1zna9QVHJ7DHp8wbOU+cu48bXHN51NePLYul0Msukf5s2joSrX16TOaSW/MIwkMc8YAXfzx/1zHeB0kJBCCKikrg82VVVTQZ+q3wr2FhXQ9/h85oF7XOd3PYOhKVoaVVnoEb96C27OzdBkKOz3hhfXrHoWdO7YKHN7dp5q10qt8c5FIfIJFmRqoanC7aV27Yj6z99B0vZYr2Tclh3h+QdiPhqhBVAx/1gVgSKOITEg76chRSBQRmZ20NAsgWjKXhoIh8zkT/JcekxdS704DBWQvfh1/rfieCcnceZtz4tTEhAJdUbir5UCT+GR9Ofw94QbH+m7hTodiqvtMsbGhUV537IdjVMyuzk5Is1jg+RebqZvuXrFiToL6fV74+NPPoCA7C/r/ugBHvumG1aVl4Bkboy8O8+tDAbWcGetwEt0pEgM8Ozpqp0wl6Dw3Rwbo5MGphA0jtU8IGR0BNm54DAYG+tGlXvJ59rlOolgsAmypqYHTZ07DDHG+UdeADFBjCPMT+MzOxuYYkpiJm6TbE0OmwyRmphJZw9DEhwgJ5oDaE3lMxvhorOI5qS/QnSYbkMBmlhQmej7TtGfi2n8CsHetsVFUUfhsX/Td7YNCLNCSEBRitCAYTYi2QgIhaiBqiUVaCylC5O2TiAEMGOUHoII8S7EQMFQeiRr5QWyjQUGQEh5tQYFigW5L2y19pbTbjvfcnTvMTmd3Znbb3e32nmTS7tw7M/fxzbnn3Ln3O3wfkLcb3BR46x9EM5hZR6WeMk4O6CXtHJg+B6Mg53RwJj3Efwoi7oSRlaF8LOeiF4Tr2Ece5tviDIaeJcsISja7Y2SJM9eYXGOqAbGMaMMJBEiFokvcL3LPUgOPDadzpNKeST6Uc2DKgVhIgJjn6S49d4URj7Hhng/lXNj3UZ+BEqWjo/emmhDeNYNeKCeaLx6MjhFqy+HJw3o5Rz4PnuanWgQ/+61gv/keF+8KNS+5jeloa5EhbZYyXKNRjzKA20fwFjAHrcbEYKu4JtcNwJWSI4Mc+6uqb7/NtSkHpsfDsztRy7VkoJFecGD6oVyq/EcYlTKyT+6FXOP3amsA7+dNvgvygqWRP7c8vM1+9MS5jcnFbS0vLtGc1Y/PMLNwuxyYXDxyNtQC3Yi/05WxnFXyCL50bPhQHuBesLt2rXhPtdU/Jf5iKw9K6oMBJhMIWC6qgCtd/LtOBtR1inNbybkmtTxqO+H6KqZuXwnXmE6EkQsMVNEiW+hLLcxtTO+Bst9ZgPpbxA0zhu1WfwGm3y3i4AyWXFD82sZUA6kiwp1L3h+j8cG5cGDqEi0geZquGL5x6MsIZM9+IL2YIf3dGH1wfaYnVJbMicldswliEpKgprUbKivKofr0z9D833WHvEPiEuHhAxpac32gAFMNjHqiWwYkMPvyzdQb/lMNkPM3FcC+DxdQ7sOSRnKy0c4AD/GjwPzyYlCGy/AmL6IvNaYabwXJt9avgUk6FPvL+tGX06DCchYsN2xw80InRMQGwYTp4RA1JA7+KG53yf/oY486Y+b8pSXXLQ/g5OUqCkqlKOkQmQTicn4nGlPwUl8Iz6akwKrEROhpbqZcb/U2G7wQHU2PsEnPwOs/HKWqgpGaqAKTMrp8kgoHNt6GKWl59IDnSIKC+i265iQU3T0ERedXCUc2WTQBqvbWajWOwsnBN/xFF3klfqElm/fBnvUfwLC5a2jlOrp6wNLcCYNVnGjMfgUr9sPh8eNhQWUlPD3tJYgSWRxVCQgJMA+lpVmzs7IdcCQBc05+jjB+YiJkPfU5ZGnQViLvJh5IVmhnNssWXIFTrSGMDPd6KJOwMbI27IGdq9+FpNyNTrUiiqnuJpjKfgJoqgl4YHrb4WH0Tm+WlztwDToTlmfe4qUwNDtHKDxUZJKAiTfLeW+cnZhskf5C4E0/27nKrbfWiMbU8jCx/FM+3gGNV8/A5OWbof5UESx7K9/h2uoWG9S1iZSmqRMBJk+U0q4d3wmPz17ECCa5V+6hHG1q0gVKuRxobKS0hPftzqqJacxSd6ZKcIY+bVwsnCupNfzWutNIatcwEs7uHoBThwtgzMwu+PfCnxA3JQtCw8M174lgzM+dB1cU573JyxtIGhNlUmSkJ5eXShqTDMOZScPnCzgs4/CsB+1IlZv7zkJQkpT6Uhgj7NAnnzd0zZXBZ3eWGMwvJCcNlQhnqQNZfRuio6LXj0lN6WVmpYaFURwd3LsX4mIiNO+PeVFbbrBQfyUTCP4kG7Pe0lFF/qQh0N7/YglcK7PCd7t207TQkGDostk1SHt7OyxeuYICEg8c/uX2JVYCK4AVoZqnrpayyWp9lfFkKFejKXYmVb8W0/AZzkAqDuep5X+fDxQQ4m5Ps9xWVyO9UusPV2HcxfNrcZqJ/D/bHBN+QlRypmxGcrthA7xSVQU7tmyFSKJFI0TC3oedXdDTI1DFht45I8Qt7+iQPHOH1UU4LBrRgJfO1cDqeV9LnKgYHh1EShHGriCXuvr7MHb0SJPBhnVJWM4m0F0BUw5cPXakkg6aEfUi+7FSXKV5IvW1tSCIhL6RUVHQbg89AjFmM4RHqGshLEtTQ8NFAo4JGjanWntmKGZCjpP+bGL9Kaet7vWyq+x72paXL+QY4OPNJgBmCq7Xekx7gj5wVlluwekfW+X7RiQbtbWtlVJiK4HJ4lR7oDFViYBdgfLq91sgdtRYqNz3KYSEhjrNl5CYCMkyQCKFNtJsozDK7Tt370o03EyKjx+jvOQs75m/zoK1vc1tQOJzkVkaudCldmt7dL8W4likjBgh5ZML0nrnLVmW/sbs1wSk9nYxXaRHY+LXBgmYclAiEJMSEnEod1qPk21tmdODg0uGJSQYAiWTXnPKmAGH567uTpeg/OXbVuQf3y8/zd5ELLA5zuxAOY4SFuqgVTJdHKOdPDpDdugS9LaHdLWAtb6edjYybTMOeBTkbsffVuIVMj53X4i1ocEBnKycbKlsWGgw/R1OykvTiRbVU14Wp8OoE4TRHkj/ZVTfu3NCbRhnoHS2SxR5o1c2N+fVNjY6fwgZEdRA6TCPqaY5X10ZAynxaY7D9+UbcLq4PRMfrKjIaPbmIShZBRqbrNDc0tyr8O58/3bSuE1P1Jw1m+NiVa9Bjca0D+PSLyrYA/HRdkPe2tpOqeBZmlwTlf7+GwHCkEfat7JcitqgFNSU1FQgf9W49LWklpQxVNToWJbOLhvs273LoZxfbdsOFRXllL8ftSiLKsGeh2VTRqzwZLqI5EdQnpCNVhlG7kUVV1Z26UKb7VZGcrJDWjfR/Er2dYe5Zlcr2NF+Y+DEmAGnCtrgyN6DuiqnFUtA71AutzFdzGPiVoOy+Ph4CFPYelarFY4d3E/jFGCHY1SL7du+gU6bTcqzbNlyCZi++sxKysfMlIvhYSErTEFBMGP6DMicOlWlnBh2yrQV7DFi1yuVhJaH7cyx7M+ppaw5c4VdcXEQTGxkLVDq2oxGGqyMgDPdaPwFT+MN6nV+DHa+QDwKOjxGiHOcncRhsHV3k34O9ptv/6ScxK4TCrGsWE7sHywjltXTcvoKmKz9DxBgElBWkTqMdjU/zrdWcPE74fyYXPxWgnQiuEweSl12vlAt1LosPV1ln9QsRR6llGmkC32cbtVI7486lgRAHdPdrKMuehtOdc3FL+V/Adi7EuCoijT8TzJJJgdhwpGEBCEoKiAi2fIoL5KoFFuuCJQKGkESlGtlgbirVim7Ca5SK1u1CRbLIYUJHqCIFUVWwVUJWlsqKwaXSwFJIERCyDFJJpNkcsz23/N60vPmvZk3R5JJ0l/VZCb93uvXr/t7/9WXIKZA0EGswtHbUmBgbj6FWxYz02WtP5EYsVuFIKU/REwhX2VKm0/hmuoXKitY92WccYjBJEgpSNnThGQrMKNzOlXtPH7wjtZ1Q0V4SMAXQpZKhCx2R0hKRG7QjjcrNwtSCngi4Wq0GdlqcmAfYQScDakZhJhG4X0L9e0PGZEYccQurGdpNXW1dFibL8DRRoYIA7U3re1WGD0qGfR6vWMgsbApBSk9ElLL7rn+gg0w5u1NQUpBSkbCdOjeTxx6g5AMbCNTfp9IEacUNiOTij45Jf6iy9bF7jmbqXLh6AxuQholQqb0VRk4G7VYeN8CCObElPVVAczdc5QKBCkFEMzzPdp3pDTTb6K6cwQpBdChmYObtBJCpPbF/bnpvXF8unB0BHLoREDi/faWg3PxUiWNV8rDQY4IhdgSRdkj5RuNSJQCUSu9AzFnxw0ZcbCBtM847sdYL2pHkLLPCCnf+J77FA/y+inrjVWEB/UekNzAVFzAH9cNd+rnVQKOEeyS1gESW6oIUgaakGw8IMbnUry8vIR80quqL2e0trUapRUmBAJIypBBRMQsbtuPbMnTTPEhq3T8kxifcDAkJKRY0CjwGDSSEm0iop5xPJ8xUHniGp2JI4xCjQtJ6TM+DCQhEbh4LJG4qwWVAovBFDzPCmRm3FjAXo1hosT30exwINidtEHl6BCpVm9qbHCRlmwuCU500gJvJ0MFwh4mX4Vg37w+JwD5IamR3B9iV2OwqW8RpwxuO9jW07FBnAgWbPuIi27G4CZlnsp+jCjtZ0vSkyaR81Ll63qS//EcFiEox0VvpTGUpmB9ZjHFtv8CnSt+uFmJmumrcE7QO2ZilFA/BZF2SEqdOwdG6RzhfQv4i1yVrZP92dt8rNK214FaQVmQcuBjrYpNmScPDUk2pNym5BeeYpL0fDARUJCy/6noPDfpeVy3aYGSBJVGlsvPCX6IkNDg8+iDnY8iJKSAB+Zm5vcHL9UNUvft3nlUhZQ2FemrCxZSCvWtjNXe7nMdTJg573Fcok8njZg3yoi3NhDbywibUsBXmzSuP5Y76Ejp7d7VAW7EjEHAVRESEsQIOoiQkECfah1bMDoz/ZqU7ipVHhhWOC73MoPewO8BrdMvwyr6/lqpnsYBitmGqlDsugym+hLqG2hcEg1/ZvwPmNmJsqFrJskbFyGhICIeNoRDQiSPnwBXT06Fm6ZNdzpv4zOLcgfQY/MOTdGgVd+BHsXsj1phRETy3b/oDzTtVK0VTpfsg4r/7IPKsz/B1x/ucpx/+3ObB5pNiYN55fWXptTVGEzSU98DFaELBoLjJuiLX9kIZoiAXS8uRgkIhuTxED/radDddC+MIR8eFzblwCDBIaG++0ZVFy9csx4KX3oWoqekwZjf5w9KW1ll6Fr/Vd8oafA7ISkWDJF6OP9LncM22bd7Z7Y/FaMUzpHBr+X3IiKjZp9s0kNY0ngYessM1fO6yBNeqLMvQD8Q54UEw9A1wiOcR5SFv2+Ij4dmqxXKTfYpQoRHOk2kRDJOuTkZJtzTCa3tzVB6oAWaG7vg1gcjIfEaPUxOujNLukkcydSkpWK0pAWwEmyzXtwAu9csVpSQFmsXVDdZB420VFDVvRISIu2AA0Hq98ybC9bvDsP3Fgvsb2yEESEhsC4lBXRRUZCf86ztcGWlCzn18gZdmjcFSn84A7vXt8CGV9fB4tyxjuNPrlgNe6/shwdzhsBnW1rryfmqQ6T66K0sXfGPN2Dn5g0uhCyvbQUBCtWQkI82vItWI+0wNTosrHRbcjI8/N5uiB85ErZvLADWf3yu/Dysev4FeIZIzj+mTYN5ADaemHqekHOfS4Siv52A5Yuegj+/N83l7pgxYua8x2H+C1fB2+sqSsHDxCRpT79Smfp2SlNAHD8N1MMgDRMneaceqWqDujM/Qsx0QUaVoWu94aRSQmaWl4PSEMCrU8bS9C8OfQXZW7bBrkmT4DHCP0ZMBylHpURDY0UEJeS9adPc3hEzRGI+lXs9+S/TpmYbSA96lFSOU6xMlqYWyuD/z9AgJW1L/r4d3lizgkrJ6qZ2oqo7B7VIVBm61qMhIWyHnUQ9qxGSB+PZf/cUw6ShQ2EfLykxo9mLrobNfzkGT783TdPN8Yb57z4P0UP1WipH19M2DAbBj12xQkdbi0fpqDvxBeiOfz5YudqjIaGRej18ZTaD1kHSSMyZm7YCEvmk3bnWOTFqXe4arwrwZfFFWP7SjdDckJlFpGWRGzXCKqGIVEi5LE2LcY7n81MUnNQ7vlQJ0x6Gz15eaveqTZdBX7oXoPqcUx63zphFP3BbJkp4mtZJqqGisQP2rV0irE3/pWTWhtGjqZT8nRfXUd7teNvV0fn+YDXcv2yir+UpBJVuLIl8zNvDb50sTemaEoUxf/ycmXSQ+qixIjAmuYMQ8t4Xt8AXryyDR28YDokzul+wJuJxX2zqAEu7DdDm5HH2kzdh/P1PDFSbsreHrhX6ctGNkyZCkcnkTMqkcdFQWW7uyZBEnqc0X0wAVhGnrUPs4R5Cutgx18FxosYr9W2a8p0+MQl2rl/ukl5l6f/2qEqdBeUooVOtrTDJYOgm5a9lzTCL2JR+oKSvHoaqYwnfEHL9ZunLYLG0ab7+2ImTIiQUOJRA92grr/CQ0Qh/rapyVt9JxPtGj1qrgdrV5aQZst2okIN8QaWQ0EEPhXepOJkqKlHyyHFARf2lX72qjGMnT4mQkLa8ssjXQg+OEobmvN5zCHmHjo6LTclQZ2qGYcZojxnNemw+dXLe33QGI/LlblRIhpY0P9S3E+JGJXmVLxsZ9I2CCh+gIaGFhGBpWtuEEVvaQ5Ha86fLKnItLRaXNsEevlWZT1CCaRVwDU0tLmmMlOPIpwxJtnDpEtix9XVVYra2tcNnX5bA9an2562palV7s9KDfYKSOyzOHpjOD8EOreobtRMho0tXcvyIkY7jcmJe6eig39NiYmDvp/+Gmb+9T3WxCxSAyDdOSqY6SGmXdJlU8jFibs4vgKioKHpmmD4U2jvshj8eQ0LeM2c0y6hcJuILxyRfBSEhIVBTb6abQ8ZEx6wdPzY5jzvP0UmvgmzysEVa1PfhAx/BLRPSNLeImkREB4lHzoqV/ZZ1+RtfUwrHFXizWCoKlSExMaiOHduycLvOUuBvBWJit/PUZSNGwJY9e2BbUREVciEhOogID6MntLRaid1vgeU5qx2ExDAS7bIm0lUx8o3E/OhwPuzfdV7xGIOkuscxQoaFhS1MTuxWn3q9nha8pq4292JVTe7oxBE6SVVkk/N3uFE7JVrVN4YTfi7eoomM189ZNuAG8nogFm+703CcF5cfHB43XNOJpqZWo3GIwSQJuFSiwm0Yr0Ri4idzqWsMGPu9eTtSSX3TkRpT7l5uu3P6GLs+nxjrREAlyFR3IU9I/q0aMWw4/d8T8XoC2A/+yyc7KBmRvJ4IHBYeDsbhw+HtD953pLVbrY5jPDo7O6GLfPDl04UEbvCbrasLai5fpr+joqPpPVpb7XU9ctQo1euuXLpEm47Z+Cp2olc2JQK3/yPaTvHYMCM140olE9BJhTOokY/hkMkEigMyEP/7ugHunK6t4sovXmS2KEjraLvdLxpVOh7HHRWkNbvrvXFqZOrbyTsfetV10HjhtGJeSEIkJEpKbFD8tDQ3QxtpZH1YGMTExrprYIpH5jwE7xd/oHgeqnleXUYSEqnlqQV43wRSxgmTJ0PlhQvQ1NhI00cRyTPUaISfjh9XvAdeJ5kcZUzI+GtT8m2Hjk1jU3daY1MjxA6JhXD7iypnXdzx2tr6ycO1SdqtJpOypJSQceb8uYPXjvUcs/z09Xre615NCOckJeVAG1PrliBuwg2rJNLm8SGd259bSefcKKlsnpA80ZgERIIikAQMFpLG25QXKysV7UyejOwYpo0dN86nB0TCYTnOnDoFl2VlvUSEAH7GjR8PdbW10EnKHs9JTfmzMWHBvfx+bXcSFWn3L6prrlCCMi2IG1yR33PkXjjMzYSdGkjZ2dDgElLUyzIrQYfn2pc8SMkq+jLyC3SiU2KS7BZaYCQmktDUYHI8ANt/RmVCk6fwBnYrukx/5YPnjRWu0vKHrWucCBlKXo6I8O7HxqXnWtraHYToK9RUV8N1EyfScjiIYHA2FyzEQSg7e5YSE7/j3ahyFr7hfqNjmeOF+sa6/hFk3cHM8+ZBtJ/StOTsy3V1hQnDhrkt4IJ6KtyK3ElKmhkhXWFKovLb3t5phU83mTGjPO6ByqXwgbNHGzPEQUTJxozjvTtvHB2Z+nbZlEjJgWFS0txhD29FRoTR8ARGEvCDvzENGx8bvC+JiaQcJkkW9FQNxFNlLwwjKCsnEhLL6am80ous80V9S1MpXNrUSTjZ2zRV6Rgl2tzMwneImaHTK48k67Sr7bWqjo5TZpBZ+NCffoX42CQ1W1KpB6egtr7WSDy2LF5lI8zNZjAONQLz0DyFhMhxl5CQ1BOULicthoQAP27AVDSSEBv1ze3bHMeeeHIxbezwMD1Y2zv6TFKizXj6lL13CQnZZu2AR+c+AjOm3+dUTkZMs2Rr9nDwna6jnhifAIYIgxIhx5E2LXeTRcYJk+ngZOKBy9FlNsMCu4OT55GULJhecdpSFn+zc2JlfTl8vr0ZlIapob2CZGsiN+PfLiw8eaCSCdeMzeDOzQY3XZPeSFBPMUVm9xmkGNndd95ht8RjoqCjs4sSdNHSZRCuDyWktNuT6PHidbffehs9d3SyPSb77eHvVO+Dx86eO0ev9RZ4T3RiLtlfeLsUIR44EhLLicByMmJSO5c4QW7ik3FcjDLXU1hNAzEdtqnkL7gIDRVpWYK25VtEUoYanXcfPGmPJmS4DQnJMqPB9MRryiE5zu5Ymdsa4edvrY4HVnkASjY23YE8QKq0l0sgYm4YdpjKXho2LpOqvjqP3a0lRCVSKXvHXXfRhHqzhX43WFqgg6hyJCX9n7y9SJIR8fFwppzazvSb/58B097a/W73MaJ2kZSoir1Be3u7g8yhstASK6e1w1WKGwwGx73weiw373Wjmubsxw2+hoSYD6DUg6OBmLrX52fZlpGy6qRRQKi215nNkg+jkZQss6jY+bb7nrQTs8FSBz9/0wYaZzDS6Q5qhPRlQIa7cqK/gr8TEhLUzsl4YO5jtihDBLz66np47bUNjmP/+vhjKn0w5ohC952t/+yrqagHJQnpqBdTs6Xb6YkIlxO2BGOXe958I8NDW2T4GxLyF19brbCElDWUkBIJuaapyV3Iyv1iBJbGLofa3pvvPiMvVYIvAzJSPRDTA3TQ2tYGkYSYK1eugjmzHoTij/bau7+IPdnW3on59Nm2HvjiSOS0WVpaICoykpYTzY0jpUdpt5zdnkTBsKtfrSiH7bOAPNdb0v/nO92PVQ3xlBmSkQk46MfAZ+my6aCFNHh4WCgcOLCfet5dnR3Ew7WCLzZuT5UTdKGAxNST1jly5HviFRDVbeskaWiH6Uz9tAmoql4g671RFB/8liW4IBR6Q9LCUAxpkqr1auu1e9LTc78sKfFnu7aA5CGLo67uNvxtDgkK9tUjGoKsEZXKaeJsQ58w+YZJacdPnDwUgPYoAO+3dcmVyHmIewkZ3wrQNBT7fQsEHcTWygJBCUFKAUFKAYGAkNLWjXqVdAcCfLzUw/EshSxSuONGheN5HsrQ289Y5sMzGvvrM2rhm044OgJCfQsIeMD/BWDvTMDbqq48fmRLsrzLjpPYsZMokIUlIXFZWpaPOiyF9qMQ00JCgMYJzbAOWdoPSoepAzMwM0xLEnYGCKYpKcvQBIZpC2VJaCeBsiSsISFgxdkdx5J3WfIy51y9Kz/JetJ72izb5/9975MsP7139e69v3vOvefey6RksVgsHeL9nVgj2xow8d5z6SolRFq9JnLdmKJih8ViqZIfUMgKhWT3KIFyNIeR5qLSufZ8W0qiA6RByZYli2HJSiUg5f4wYsV8d5tHvWGjLvX19Ylpi16fVz2tYDPCMymbszMsWQxLViohKUZu5OprCEn1lJKEihaZYFiyWAzLYelqy3leCMloWxclSgmzNBmWLIYlKxHutGCgxWx2Z2XZHNS36OkOXsIWXWUn+FdhovNrU5E+SgP1d7pb3HLixKZYJ1ozLFkMS5ZRQErXWazEgFaiererYSG54hmt50PrCypajFZoHcOSxbBkJdqVFn8P99/V1HxMjLSrBoncCM0ihiWLYcmKBEQJArGUEgLx7c6uzioCCo0+R1oqcrgrdOOJ0AEihiWLYcmSkAzsDoSQDNrAbjSIrEtqFLTCkCQjeVoZizV6QUmDNJtUoNw+2kBJMg9eHN0R9jwuMizWqBWNTqvDa+aMxodAAe4VZeVqNzzsNiVsWbJYo1cEBfVATeVo+vHUF0v9lQRKaV1GCmjnPkvWiBb3WepyxwkCgd0UI23FOhIkR8FpjrncLzcSJHmAh8WwZIVCswZfno7nGmPHjF2Tm5MzaKcBtOBq0+AnrnFMnEw7k+5AOOoOUB8ESy5ULI0KJHftom0sFis7lmpVsLj2emax0lEMS5Ye16xO2Z+TXDPayNKh46vRdsJlsRiWrGHpdi1SffQMHrPxWE6zNRCQ8bhl5OpU8lNmMSxZw9liDNrGHqHokFYjAm6z8lncndk0D9dRPt6kuje58xTbR7F8czENmzlHWAxL1lBDkYBUDyFBxorFSJ+5hjJ9tHDrwcOHgqDNYjEsWUNhPRYhiNzKogc0EkmvtL93DaTJLA05zYyByWJYsoYClDR6vUWZ51qbzmklUNL6h6Xjxq9A938N5x4rnWHJ0x1Hnih0Z3u6J7LhwD6xpiDNnmBQsoaD2LIcuRZmYPUYW5Yt6vnFRUVgtVgDf9N82URKvXq2vdAO9oJC//sE75eSRs+foghqVB9Vh8aopjAtoYv08uAau+GsUCl9llRZ0mGRBApsJ2CQ2+0eIVB0gH9+tUN+pMDInebpXq6UCymacFDHNUYbluINT3lksQzDpl/pHx5Jv6lGtQgwC4IZyX2WLFbs2mIErqCsQh4JSDIyIMHniPtGSyNZlkr3ASuMGJYsVoqlJ1QqUeewEidez5LFYrHYsmSxkqrJyhTOdFctprOWs4thyWINlfbqDcFBWKnf6+lr1Nw4THWO5kpQIS66rj7LaGkb9eLRcBZr5EoZtV9l5Hx+auEZyZYly5AuuXIhWTsb+UmkVO5XX9hQPQq6C9gNZ40YUPbPOulEuLf2Tn4YKdaC3Jz+jo5OQGiaQizBcLGed4V0D8TUXcAKFo+Gs/SCUrhyDMqh0XPrnpD5UKUCG83AqQpzvM1PjC1LFoulSNnviPc8Ylimh0ZrhzcHPI8ocegQw5LBwRrVDfk8CD/Y5sQyO0X1N4cOMSyHtKBGGhV2Y+GsjvJ9moPr0Pj3XZE65MNsNBb0b96OdtTIqfH5Zn40DMt00qD9bUKAVh/SuofCribCtavwiGTNRlrsoAqv/zKvVzgqPJ4dUcqJFIcOMSyHtKAWxfHdOnyp424BVorEoUMMS5ZeXXLlQrJkL8NjXoyXuIufYnpJz7RJFsMylRZk2hc6BKED/P2nQauhl089AWafeyEcN7Ny0HfavH3Q7u0Xr3Roadt9N3Ih4LLJYlgmpGUfkv1MaDYNvRYUl8D8n62CrOwc8fmh9l74+N2/wqEP3oIDe74URzjZyqeK16wJUwf9r+X9P4vXM297lDN5ZIhDhxiWo9KdFqvR3HL/Oujs6Ydn77kNnvinW/yZmV8MY86/CrIclTCGjhjvIWHJGhYNNnkT9hCLM7Tx5tChoYSlsqACbXpEISyOkH878Xjm1Rc2rEphoQkXijMoBCdKyE4kbdFb4JIESaoU28+46DI49XuXwUsbfiesx9Irfw7WkvKE3KMPq0mrp4drxfABZdgl2miQZrS66Mq0XE0m4bEGuRTTZnJmA4kIbO05fkIBXH3DGWDLNmPlaoaO7hbw9HT43TtzLuRmFToKbMW1N//yu7X/XbcdjhxslZepw4QuTkKhWQXhQ3GqQBVaEeE8PaKQnE1KuEaqC4CoFGRN7mjshkd/tkR8Pumm1Yav1entg6Z2H4JR24DgBQOGh7RC08Lou0aWaRtGYAwwyWG3w+3nnA1jc3Ohz+WC/tY26O/sFOeZcnLAVJDvyCgqqu3w+Wpr8Vyn222YSWY91gy9X3n3BVDf8iH09vXArne74f5fvaHrB804Mwu+PT8fMjPMMKXw1BoVrCoxkTsSVGioIKxK1HlpViD6qT9y6T0PwYeHu8WAC7nbE67956hW4kF3N/T0sVfF0u8Vqfs2UxWbaaTPX82kZy6vBsvHnwD09sJLCL8bX/1fXdf4EcLyXgcanpmZ4Jt9Ss0inUwyR3CxXbZsC1z6j2PA29MFdQ+/A81HvJCbmwPPrVsXvGV7FC1YshQ6OtqgePw7cOmKfLBZcuGVB49tx/vQv4tiNYtHuDsh8oDc7uPPvSQAytwTzoAx51016Pz27l5hMbJGnSseboWhtQigTamEWKrqQ67FAk9OmyasxjsQjnu9kklPGHIZ/UzqhMn79sEGBCdZnz/96quITDJrmbbzV06G/HwbbHp8LzQd9sDa/7gXjnNMjumHyuWlvnHuhWW3/xJKSn1wzW3HQWeHDzb8+hsX3pP6EVbEWWCqNDLcpOc8ndLsKI+0xL/OgmlS5QE1RasX3XkfOHsLwNnSI0BZePrFeFwUsBwbmj1Mi9ENytUa5Tmo+2kEGA70O5evO/VbYDvWDL/Ys0dAMlFMWohMmmy1whPl5eApLIQlH39MTBrknpvklhImkykAykV3ToEcax48+qtPA9ROpCTVb7x7FlpErbD+nr30cVzAHKLCmvDQIcwDAXTqnyRrsqe7C95fu1JYk2RVOo8lHpCmxm8Ajtb7X+lQRKFDqjhLCkqv/Z/nn2VKDZF+OP9qepmL9WSzwTIac8OdLqAk64+00OlMKpPU9wGlP1MyMtSyrLlm5QwEpTVpoJRUp8TRPQiYV9w0DV585Cuypkb1AhDqsKD39roFJKWOjj0FjkYBpenAFwB4mPZ/DuDTPpdiM6fMrITjZn0Lyo+fgZ+MJzQG/v/QyiVMppGl4Rw6tPzfJkxIKijVTKJ7EDDXVlTAsv37ybNfPMgNVywayLdb4aCzI8hUTYbo2tRS0r0mOHIDaUCSz43BwqPZK/N0uOGa5+nUCrzemjgK3Gb8/lwNUIrvECgfu+NmYVHS+8bOXnjhzqWQ8fwdg75DM3QIdvLVD73wjy/cjJ3DdKD1yhq2brjWEm3ueNYuSCPjQTCJXOSdHk/KmET3OtFmU6dhbqhlWTVhih9a7799JGUP5MvtLgHLklIb9Y1WxXKNaMuhGT0vXhl1Y+SI96K7Hwy43jf+xu+GS+UW2GFuzUrIGVcGbk/wFMV4oEfWK91P7Xqzho203PG6kL8XIVi/Owx/XxWBkrSlvT1lN6WR9TtLS+EkBOYXngEmBbnhB+v9FmW5Iy/wPtkqsPsfBg0ijVLXu5/c4urb/h0+PeoNfE6xlBJcE8++BPb936uwx+WDIltig8YJlLQJ2ayTT4INL74U9fzDaOmy0kPYKNOIrZ6G+Znh6obTQA5prDl1kw2lVfmFJ5hJ6hSIDnx6c9rcccK6fOudrXDeuWclJUGvvvYmyHuFpCEWdyQQexXJHYlwnl4VKQU01gIXtu/ohNPPht3NwWE/BMpQq8/X7oZ2lw3yiooTnh8zEZisYeeGr5J1Nl7vJk0VYBLFRpLF98e/vAU/uPC8pNzsna3vgbxXOCYFYElTE9HKqa3f2QpTTiyA86orYPXDD8P0qdOgYsLYhCZq/8Gj8Pi6dXDxVf5hf7qnTEOMl3RqlSed5xlpyfVobphC7DQ6XfL0ZfcnvTTKEe9P7/pXmFF9AxNoeFmWqzTc67VDAG5yV/XsKqnZbz/IoFKY9A664Ofm5cHKcePg/iefglNOnpUUJv3n2gfghpIS8bfsIxVMUiJAQm3bTX/+/d55NEI9o7IIxpRlw40rlsM5Z54FS2tqoNieG1eCmt0d8ERdHfxt21agUfd8xQXHe4p7J9sdMeC2xFuIN8MwWtqf+ymHNTD1gCcpqw4pW6tQBAdMKC0Dq8Wq52tVn+3+ur+npwfycvNg6uTyaPVx02NNTfMIlqfl5IhRasmkG65bAoX52XH9hpa2LnjsqXWCSTTqLvtI/+Xw4UHGljmE5NXUh/bWxv3CsqRBFwLni498BIuu3xqAJikn2wq2LEvEhHi6fdDZ5e9zkJCU15Sie8l7R8iUaKPYdVhoFuvM4Ko4IRire0R741SGO//vr70MZcfawHHeFUNe+fb88bfilfpJw2ndow8zoYahO5voPks8T4S5OSZOJqDMMZKYijL/wi+NTUfF/SaVT3QXF+YUaViXgkn3NzYKy5L6Lim0544PP4Brtg0wKSPDJMBJ8eKRRDGTBMi+vv4AkwiQMr6StL65Wd67UhOWiqbs2u6qP33uuIDlR3GQpDb3MYTmPwROpERSYsPp9TffhGdfeD7wN1mSs74/K+icbk8v4L3obWWYzBAB8mZ8OPLhRlANtlY10Vorec04WtLFypYQUVvycKylUI9w09BogOXTD96C7pZjCXGFW/fths9/H7zIxtiZZ0LxtNlgtmVDwcTpmt+d+oOfiEPrN33njG8zeoZI2/7+Xmh53K4FqmT2WUqgIighEiid+/bKc8JqXMlY8Pq80HBgn73J1d5fUpSnleaiDzo7XUexfsuBHhl7eXRfQxCTrr5yPnzv/PPDXoTASIAM9FWglXqTCpJSf2ptDcukoBk8UnImj9oC1FKb24vAG+jKs9oyRJ+nBG0kUVA6hFn1Q8mMHfigB2UEAfHgkUOArVH4vodDB8Q51OLZ822VSe6niXsGD7WaApZf7ISCSdPh5AUrRB+iUde4o3E/fFJ3j3h/8lUrBgGRANra8BW04Ksh8Db4z8/Nz4eOtjYm1tAraLGHaOtZKmXUCfr766sigVbGdmL9Ik8wKMaTwJdhygCzArRosJQ63HgEvVAPnbsG6+wKjXoSNJMnkgiqCFfo7BsIryM3Xs+IujJzZ7M63ltrBo80Pxdj4uYhzOzRgElQDBnR1iUFlKAByjp8cGEtwPbODjSh+yKa+GTeY0bNcbd5NuLDrx7JNUdOhzRnZQcA+/lzqxFyfsvSbLFAfmGheCVlGbz+2LKywPscLHACoC4XegWpCfUqKCqCLCWUYyjVjG5gb68/bGo8PpOiMZGXVqbn01BfH/hOMbqQmZmZuu519NAhrX9NwfriDAGjnpW7Ehk6tCzkdcBQslgD4MvI0L/Qnx3L5+FGUZ40Z/HRVGhiEsLMEQ2YBMXvFxQYzmMFlKA1MUYTtfiFIrJ6CGrX33WyaDESob7+Pni89nN5D1OYVotamJfV7nJrWys0u10iM3JycqLeg8x7atUw0+aFXD9pC2noLHBhRwLJqhQW4QJjsz2pf/HoZ9vEqDnBUs7jLiopCUDO09UFrqamqNeyWK1w/PTpUQFQv2cP3LT0esjKCsbu6ocegCuqfwQV5eVB7yOJzqsor8BzLxfvSStuuTXonBc3/gH2H9gPJ8ycmXJA+nw++HqXf7dDef8WtxsO7d8PR7SBNtC45ObCpCn+JScPNDRAM7p3hQj/sijPhWApn0vAYzpwAJ/FS7RYy1CHBG1R6tCWcHWpdNx4fz1Hgwbd66D/0d/S0FFbnJ1dgfC4iB4a8mIKMUlMSZw0CSAjQSuvouX4U8yfcEzSBUv5RUrcunu/gAU/nwR5WQVxpcnj64Tf3fdNpETZQ1791kV+gTjCZUCIGR/x/npDFuKV0f4iWoYtc/bFhu5Bq6QTKKU1SaDMxsqZhy1qPz4nLevEnJkR6HKhTu5epfD6vF748rPPxHuygKadODjuUlpJoaBMpiYiWAiWqZZ8FhKS8u9QZWKFpcEF6a719A54PZ0dHYHvlVVUQDlWcIImfTYdn2+GTkszFiswWX2WSrhSLRojsyPVN2lZktFCorEEra4zMoZKiscAeoFR66dk0kJ8js+WloIpTq+jH132ZQcPQifmXSRQRoWlOnHP/boBLrnFDqWFFTElqrH1ILzyYDP4urUTRYMnNAijlRGUAfZCO7hb3IFMIGuTwhbUamo+Jl5tWbaUr2quFGKC/Zwwv09336aeXRXlQAyda8vOFqAMhSRFLGSY9NUbj9fnByhCkSp0CbqOdIw20W+XVqETLWmPqsuBwGizakeBqP9Fq9FTRIho3NAapYPg24fPd/fOnQKghcEB0MlqlBM63ZHuS6DGOujEehrRJ44EVBpboDEGMoQqSkt0w10y6erDh2E9WuqZ6MbH5OW2t8Py5mZoQoMhGih1wVKduI2/ccGlK3qgvMhhKFEHXE740yPtEUEZJiM24YOeZzQTVFamM3SAJ97RcJTe0XCXBkTDhjgd+HoXZLQPTCPUCtsZ5Ba3NIv+SVI+Vjo1KM3mTLCa/ZYLmR9dHn8IF3VjXHThBfDll7tgp+JiSgBICHQq5zY1NgpXNJrbONJASZY1gfLr3buFxR1wq23WQQ0L6dTKOTAJrcbX/vIGdCpbGdC51EjRa7evBxugvsD1CZgVeP5+tI7igaUBJXy6o1JPybCpsVqt7gnjy3T/EAlJpR4vxnpaZ/QHSSZd63LBemyUMg0+x163G65vadFlURqCpTpxr6xuQ2A6YVzBBLBkRh7x9vV6/Rbl6rao/QFhMmI7WY852TmiDzKaJCTJ0tRqcQlUeN1n4mhRN+tNv5Hr9rS5YOHFx8WUphedO4ACHdzHjg24huhqS1B2e3uEq/3bp/yrteRi5bUqo4Luji7hOj773POioksY0KsEZgsWxqGEZUtba8rvKbsgtEBJz6b6skuh+tIf+uP7cvyB0Qt/fDl0ef2W5E+uWyryIctiFoenfwCuNPAj+zLV7yPm88aXIN2kNPxUp+xYV10D1rUV3W7/BBaqk9Qn2Rqcj2vwu3EvxxgAJoJvPTX6eXlgijLi3Y9WfV9bG1yr7MGjl0mksKFDkSTXXKTtIWjQp8w+KXyfmrtBDOYYBaWGS0vxZJHMWaeBzZsS6W4nInRIhGLM//F8wBYaiu2FhkYS5QCIWqEV+xe33wYnTZ8WsCKzsECRi0gWjxRVbvV3u7q9IPc0o8qcoxR+ciHJ4pL9l8mWngGRhIFZGbwhy4+sajpkv2SW1RxkdcvGh5StWOQefJ6yPn348Sew9oEHB+WFFN2DQEn9muEGr6SrTjDCulOnUf5EXYzUYA/l4r9071TMUZdMWk/WJXJMyy3vpfhJNByMgjLASKOwVBInRpUJmCQCphwtJ0ASKEkKKHeERsLHmQHkTtTGkgnq6VmJ6CPSgqXR0XC5CRPBkqBpRK+/+TocORJYUo8C3udZLZlgVgYPqIKec9ZZcOWC+X5X22IJKgQtnf6RyFtvXSYGf6yWICg4IY6tMkaSJPSkS/3AA2tFnZFWZQCI2Mh40c2sW/c0fLRjR+B7NPDj9RlaMWpTpFltBht0QzN4hhss1Uxar7jjApiSaVjOe9HlJimgdNLIut5rR4yz1GH+zqX9eRGGtRdclwuHoEHs3ijo3dcDna198MZTYom3u1K5d7gOpaSDyGgBUYKMxXe8Xi/FmtUaTGsg86nQeH29VdQvZMvKEpX1b1u3iqPuyf+CVoSj3AaX3PH38HNyw8l6CoCyy4OpyQAjBWoki1w9eiY52baAS02Ny9Ili+HU004TcBRWO1bOfDznhptuDrbSPR7o928wnBAAsjSZVIMwfHp1QQGUEBwxP0xYrsn1pr7J6/3AjJlJMVmWqkJEVkc9bXc74zv+grHrXS/s2iYWoh0UQDvUlmU6uuHJbGWxlPjdRJtN5K+3pxd6egbcZ8pysjbpfwRXr88nIEncjrXbZITCUvFIMLvRcyIPgCx3qjs00KPegt1izhQH/a9LjKKblGc6NKAcLZZlaF5dhIbCNdl+q38j5sMf/BENMTEpLstSRXOnvzQs7P/mI39/jJ4Rb1byW1lpEQnLBl1DquSDCwFZPQo8TZn+I0If2Sh+nmK1KvKm8BnVouVOHkDYc334P2pzBCD9z9NNEzz4KaY2rwDL/l+VPDIy4h2TZSkrmpIAKijx7l/DSmyhMKnzSPZzKXlErzTaWM9PipWGqlOmVKfDquwrMC1r5HoY6s9CLcu43HAWi8Ua6ZKMzOBHwWKxWNHFsGSxWCyGJYvFYqUZLPs1ZPT8MKrS+P7TOr//drxpSOL3XTovsUrj+zVp8Bv0ao7G9zfGk4/4uZ3zcUTkoyNZvyFRjDMl8FosFos1YvX/ArD3JdBxVGe6v/bN2mx5k2W7ZcALYbEIJEMcsAxJWJKAPfMIgcwECcIjQN7DZuZlJoQZSy8Jb15eTmxzCE7YJIckkPgkNoQMgQQsEhw2Ezng3diWbdmyJVlqba2t1f3ud7tuq7pV1V29qtX9f+fU6a36VtWtut/9/vv/979MlgwGgxEvE5zBYDCSFZlcBYykNpk4bjjhoSW2QS6Em2lismxMrNg0WVOJJwSiMxhMlIw4E6R+JuDuzIyMprIZZWvV71g6pn9ggByDDu9/sBJCdlY2pjEiUfB2JkoGg4ky2QmyRWxV2hLXO4L9Ty1UCGD9Hi3Pa70gzDomSgaDiTKZTGwwnV2Y0jKRiL1vyDRZsRnsvT1yzS0seIZFzTSUCsK0x4oo2ZnDYDDiQZLLNZJEWrhSQZAlYnNTGLlkS4qK5VpbavlcDd2ivJqYdbisKBmsKBlxIEks/1IlSHI3SJIiWJUgCMJa5IwVJYPBmGyAJJEEWy093R3DYzUIIq6OdqFMlAwGI5ZqEpKsUYX3aOZ2rLEj2gVyHCWDwYiECKHesK0U2xvkWUG1UftNhvpoS+GCJNfG67zgJBImeNQyz/MYJSOpwWOUMSNHvWprKiosqsbyGVj7W4+KufMoMzNzoyCtdXFSk3KNqH7HADzj9er8wg1Y5/AgBhMlIxySVOE8tVCOgvz0yyv4kFVn1zmaM2t2XM+v5eRx+Zqdla3iLH3IWxdS1CjIu5aJksFgoowmQSpPtXcd+3gpxGgqzdNn22RY0ayymZSfly+5VRBmZTCiZGcOg8Gwgm5NRU5JkgQyMzPljB5Mg2zv7JCKV8CGaxHb8oAdLitKBitKRhA1qTzXtVOVJM3M9JLiEhnArqFSqMsWI0XJXm8Gg6EI0X+8EXGPTXijI8m6ZLleqMsTp07qiRJLP6exomSwomQYEeQG8qQ5g5qqtc1faHe5XM2YU41EFJrnOimv/Uz7WXKOOeU1avBx8rAzh8FEydCryFKhGu3afOmGVKoDmOCYO64giDKNTW8Gg6FI0gaSFASZppnVtlQjSatgrzeDkbrAmFy932cGEyWDwdBDqMk6rgUmSgaDYQFa6jMGEyWDwQiAlCTK/oH+CX0GEyWDwTBmSb9A61SBwXz0SiZKBoPhg937Dtak6rWfPtMmE2fk5uSqr5rM1t1homQwUhdV5BsOVJVKJDkyOiJn56g+Q5DkKrP9mSgZjBSFtjTDbm0uN8xvfG5M5mtGBiEEmIMkdUHmyJcZsJPgmTmMpAbPzLFkfqvZOU1iW2N1ne2pRI69/X1yOqbsEMYTYTQFUpEAT2FkMFEy/AkT5FgdSRmCZOv9v+s417FywOGonuzLK5s+44VpBdNAjk1W/zSBKPmBYgRoQFAYUB1GOfukCsE8Ya4pRrKB53ozrBCkjcantW0UZFhl8Pt6sXWL96TmDDMYyQYmSoYZSapxq1q1qp6WNAEpuVb7K8qWk8eXwynAZMlIRrDpzTAlSV1WmRqyllXG0oJNDMZUM72ZKBn+JAm1uE1HkmrVvVBQaha4y0iJZ0h5iO3iOSqdytfCRMkPM8gP44vKQYMYOngsQYxViLGLcG0UJksGK0rGlCbIbu1jk9je0N6vJE9oiFQBYSpJL5BsQFvlTo8Wsa0S5bfwnWAwUTISlSRryDPWWK/PQyhIsVrtAhWofY4o4BgzH9wu9+7ZZcVVuuMrB9GUN8kYTJSM5FaSyqyWY5FxODTM+TvEZtMU7JaWk8fhOS9hDzmDiZIx2cTov/QosE6Q00ZBks1kHDweN2CZUJfL5V0rmsFIZKLkpBjJSZK4u1CMlZpqg5nbpJHkjskmSUBbHrSG7xZjKoADzpOPJEGE3jFAQYzehAfa2GN1Ipwn8gBq52dL1aSxDCZKxuShGipSEBBUY7P++0QhST9giiSP+zASGmx6Jy+auQoYDCZKhgl04T6Je469PXyjGEyUjMlDb39fQyKfH2Is7T12fRp+BiOhwWOUyYeqru6u5tycHMrOyk64k8NsHczaKZ8zVzl0KpP5Zuzed3AteTIuTaqAJ8+MqN3cPMIDx1EmZ+OE6S1n1oAslYc5EPRLdoLMkD4/WnCOOb3l4Vx0SnJ7SWHumiSsf7WUgpoCul2Q1JpJOhcbecar1blw7GoI4IDzJAe83sLEbXYMDgY3KzIyaFrBNO/noeEhsQ1H7VzSxbOVnZ2tXxYUqBckWZdkBImZTqsTVcWJ80N9r9d9hcz027m1MFEyYY7HUSYCmsS2RRBkYxKb1nL2U4Kfc4mmMm3qvohzXsWthYmSwYg22XQngmkdhetAJ+qztjePZU4kSvmGV2JkMEIil2pME9XGIpPputzazC4G+fIje70ZjDARivJCkhLlRNFlAPcvL01PWiZFlaoVLy3u08DOm8jBcZQMRhwUKFkYJ9acLcGw1sI+DaEcl8FEyWAkIuwmilJPlC0R7LOGqzi6YNObwYi/yV5qYZ/KaOzDYEXJYDAYTJQMBoPBpjeDMYURwOucaOdZzXeLiZLBmCxYnc1iI9+g7niDYyOZKBmMycHyC5c0haPoAijRVarMAPt452cH2KdW7NOoO880i+fJM09MwGOUDEbiwBalfS7lqmRFyWBMupIU6mtVBPvjfbXfbi16FWiyj90v4UYVjWcrMtuHEQ3wXG8GIzmh5qSHsD/P9TbhRza9GQwGg01vRjTxhS/djrnGN3NNxBVbXvrVLxojUZZchUyUjPiRJI/RTA6qRd03CLIMN2ksm9NMlIw4kaRcJ/z5Z56kgoJ8rpA44mjLcXrgXx/CPagTZFmnU4p4v9Jvd7t/UgwOD4ocPEbJsIrl1668mklyErDItlDV+3q/n/C52m9bjRyUXGtMlIxJwuxZM7kSJossFy4MZfctXGNsejMYjBBMagYrSgaDwWBFOZnQVqi7IwUvvd7qPGbGlHiOq7kWmChjiVQdFH+DPGtwM5IDHB7ERBlz8OLwjCkNDg9iomQwUtmkDrpcLSM6YGcOg5F84DhKVpQJ05tvgFVj8vMLgVJdaYPr601+bgm2YL34/zbxUmLyM5K2tvAdSgngPtsMTG1erpaJMiFIsoYCL0SP9FbbAxDWjiDl28zGRS2MIx0TG8fXpQB4uVomykRHk4WHOBJV90aQY1fzLWCE0LHz88JEOSk9eUskqi2SGRXsgWeEAQ4PYqJkMBjR6Jg5PIiJkhEEX/jS7XBMKQeRj6mmT+3FSCiT2ozYKtmhx0TJCJ0EqzXyW0nhjW8yUU4tICKDPd9MlHHDlOuZNVJ8gCauzufFvPOX0rzzlsjXotIZVDi9zLS8xx68k5+CxEWTUcfH4UFMlHHFVCFJbR2bDfrvcvLy6dKrP0vLrlgxgQj7RlzUP+Km4TE3tYnt0JlhvtlT8/lkxx4TpQdaaMOOBH5YJyVmUZAjxhOxPINNffeZ2+6ipYIY9YTY7hijDw+epq7Df6Pek4dooL2VhnvOBS3/ym9u5taRJNCWjGAkM1Fq6b7SEvDhmzQCFyRZQ9o0tU9cd7PcAIfTTc1H2+jo269R267XzW964XTKLJpOOeXnG/7e897vuWUkF9ZzFbDpnVJQJInxxTX3fVN+t2vfUWreunmCUiy8ZCUVLL2CssvmhXQMJsqkM9E5PIiJMqVIEiE8DWXzFkiSBEG+/dR3fYix9NOruaJSy6yu9v+KMwcxUaY6muGk+fI/19E7h9voPUGS6Tl5VP6P/y5fGSlHkm6T79cFSsrCiCNRCnUD6YIwlGqDn5vEVv/Sr37RFMdedb1Bz7rOwn5WMalZeUR9y0Zx9/ceo/3nRui9zd+W5Fhx1yNRO8bQqIt6h8a4VUx9lKSoxaXatxknbRKctD3mRKmdyAQHxsLzpnvfHz/SRdqJVov91ddV4gR3x7COjJwqyOCz3C+EIhLny6Rl5RH1KEN/7nj4+9TWP0ZvPvZt+X2kJNk/PEZ2h5OcLl9hwklKpwyQPajG7zuk6WtMIXLEcFSz//cfmzXL+35ve7sRJ60KRchlWjwZm0YUns+3XkyXXD5PKJABoUC6aGCkx7vvZ7PnUlHudMrNKqD3/nyc/vDifmkyaidYKk4unuMnbyTBgwB1sHbRRVWUX1pGzR8ekU6bmTeEHggOPuwaGJUEyZj60CycOgsWV12yXbvWLrq95l7Vcvr84sXkdjjI1d1N7t4+775piy+g9NJSSsvPp6ZjLfTYu+9K0aRxUqXgpKCWYqaFE0KSWOkhuP+hleTO6aNW+2Hac7qFejpcdOaIk86ddHr3nzG/g+ZfmEn5RemUdx7RffWXUdpwIf3oEclZ3aK8RnFitVF+YNKiuV+CQT4MN975P+j9M8P0QeP3pMmdV3mx5QLa+0bJMcLkmMJIqvAgwSENSklv/sLnaYZjkJxHj9LIO+9Sh9NJf+rvp/1DQ979l+Xm0tXTptHMzEz6lPh89TXX0Ln8PLr3pd9JS1GUt11w0pqwiVIUgEZacsVVNrrs2iI62fNXGrW76Y9PD9DosHEkQWfrGB18yzPTA2S58h8PUVZOmiTMN397lj7YdaoG45vixEr5+bVmcmNc8lDXKLW8vtWyyY2xRqhHBiPc8KB45bEMZWlkxUmrKm10b+Uicu7ZS70uF33r9GlJkkbYJ0jz13aPIZufnk6Piv2LxesvV15NP207Q787dGg1yg3ESZnBTuiudSuogz6gNmHuvfx4v5cgb7rxerr7jn8yvaAntzxLL/7X7+V/QJifueswnbcyk664agU9vWFnSbATY0isRbxkWnYe9fWMyCDy3HnnB/zDmd4R6ZRhMCKBIEmvaosDLBG54qQfXPc5Kv/oiFSRD7S2egnSKid97cQJSZhPie++IrZVorx/eeXVgJyUaXJCGBwtqXngk5IkaSifXtx81tNy77uHrhVMHAw4YWyvvfEn2vj4T+jFDX10y7pyWR7Kbdz0Dk6sWZxYFT+Wpg+FjJeEyb33ec9U7lk332+4f2v38ASnDCPpyayOPBmh/BVaxHPAtXWbahOoPUhO+n/XXkvlBw+RQ6hCEF4knHR7SwttqqiQ5aHc//Xaa6aclGlwQhiPXH7jLcuoK30f5QzPoa2bD8vffvvLn4d8gbgAbF+89Su0dcNpuuW+C6grZx9d88UL6PXfHl6umeHbI3xgzBhijbjh23X7yR4pzMO0BFqjRJQdiUcdcW+7dfcAJk/Jmvv/lY7YPeZz74lDVHzF9UyQDD3Wm6nBYAvUTTHRIDmp5pKLad6RI3R8ZESa2tHgJCjS/1NeTgtFufd//DL60ft/NeQko0iQbcWleZS3sJ3K8ubT1scPU0FBflgnpAf+j3JQ3rxSGxVd0E65eVnyeDGs4wf8PkcSX2YLQJL4rTqC7Q6/IncgsByp0OxDLvrrTx6WXxZfcZ13B/ugk1rODTFJMoywJcmuZ1tBVhZ9TvNkgySjyUkoDwp1xbkumlVQYMhJmX7MLXe49q58mlVUTpv/40P5/fPPPBmVq0U5YHGUe+//vphuvP80/eYH56QXK0JPOGYhGK2KuMbiflZQG8BMaaEoxVhqHj3pwNndLtTi8KAMB5pxzW3yd/Diia4hpgJGKE6auimsJmV7eHLBAqKxMWkux4KTYMb/wmajjXPm0O1CXYIL9Z5wf9N7te2iPJotSHLXjvaonpDC049tpLu+sZY+eKuTLrmynMoq7PCU10QyHqLNwFkXrf0mGTVw4CBF2piLqPnHnuDygqWfkCoSAeJRxegQpbUfJTq1j9Ja98rPjNQw0acIai7MzZUk+XJvr5dDoglw3JfvvFt6xv+hpIRWFhfTGz09qw0VpZaVhq67ZZH8/N6OszRr5kwpTaMJlIlt58ttgijL6O+/tpieqNtP0RirTIKxGBnUrxw4UJPYoCYjGosc6KY0EKHYCKQYACDpUx8dYGpJTeXpTrD2IMnqYaHygGe7urz8EU2A41Dmrzs6JFHeU1oKolSc2OivKKVbNT0tnTrPDMWEuRUe/b+PSAbHccrm5OqPn7JEqc00sF21+jZq6XHKmEmVU7Kz9QS5Z14S8P9SFXYc87xaIEO1FARe/cHLPzASBN6s/XDgKO6IBcB1MMFxnIXZ2frjTyDKkiVVnhCiHb85GdOrVyp158un6ebaRVS5rIiO7e+1hVue5kypMehJ66zsZxEbraavMumZG4N4ImU4EJZvaPjP/5CZyL3q7uguclR8nArcg5bJEFMe8X+8BloTB1BLQ+AVG4ORILBdnu/hih93dvpwR6yA48ALjpk8f+rvL5lgegNLNaKE0rv4wmUxPaFFtoV09Nhx+R4muCDKSIo7ZkJYl/ottHQswnGeoCZMgDAhEHStiZqsxivSp+1utUuSVJnLf77pP6n7+CGa9vqjPv8pEuRXqSPDYLAPe0gQXvSRMfaUJwNSYbnaG4qKvIoSnBFLgPM+3CdzU9BKD1GSIVGW2wq87//uistjelIo/2jL8QnHjTImI4FpPYW+JKwMByotX0Cv/niT/AIkiXHK4vMulUT53x78Ds2pMM9UjmUgeoZcIatCrKNzcufvaP6Kz1PR/MXMPsljsibFSoyYpx1PTlJEqT/uBKL06ZJizN4XRVGxJlJSjFDX+FFOtK8+/H36sMPjwJFqod0zX37mxVd653h32PvJmZkn1OEYOUYjV4U41t7nPMNAe08cosvu+S7lFM9gmpk6aCILy9VGOBkiYXBRjK3cQJzHGc4nHw0wozGfe8w1QplapvIxTRSqz+/uOSwVX+GMrKgd2NHuGYtG4C0Gsjv2vE0VQlmaoX/URWccnIVoMmBkJIQwVbGaazAymBLlHiFBYzlOuUeTuKkMbT1uqSbf19bWLpg1Xy4t+9F//ZTOv/Gr46R29jjlz17ITywjZhZXoi8uNpmc5DOFUYUFAX/7cG9ML3rnO+95359uGUjVZ3jClMqTO1/ymNl73pJTF9XKij1H/sYtnpFy0OeVfPu9XTE91gd79nnfq3AkQ0XZsr9XxjVi23sgdkHHbrebjp84IcOCJFEei4woAyS7qNInm4gwKQbW4KmycC51ZDITIpQxUts1t8ixSTXPe7SfF9ZjWFaAq0LJ8ZjIQC5JOFYQJrRLc/7GTFHu3++NodzlcJgT5YHmbrp81Sy6/vaF9LMfHqRTbZ00b25Z1E/oo2OesbEVN8z1HjfaykwDPBWrLOxnyYKxuN+l0aijuZdfI7cBu51GBh0xeTCUl/t7P9jArJNcQJKVSSFKXayySv+GHn6LPotXKMC0RcyW+afp0yV5HWlppfNsFVE/77azHsvtQW2tnUBE2dRnH6nGm8ISD6s++NC3qHHz45SXG0UHwuAIPfyd75D+OOK4FOGNxX+rDb5fY3E/K7A0TQkeR/GwbDAg1vpwDlogHhJsscLMi64UJs1b0mkUyJHDSEjUk3E+yrinWNM862Zta7X4PRy1u93hcslpjFjGAXiovp5+8dRPKCMjekvgjY25aO2//Rvpj6OZ3k1GROkT/3fNmgp6fVsrHTx8hJYtOZ9ysiN3kA+POOnQR0fJIdj6+tsWUjSIRHswVkVzv0jhv0xuIgMOI73TiDF14D/zLAiJxYog12qWG00rmEZl02eYCCQHtXd24O2ODw4cpgXz5peWFOYGG08CJ3iTU0Dt/bC9nT7cd4guvWgJpaVFHu2HYUCUB076etkE63mTeuOlZbV040HNDFbTGf/9u9+hAccwDQ1Htv7K4NCoLAfl5eRmeMcn1fHitQY4g5GCqLa4haMiN2RnZZNt/kJTkgTy8/LlPnNmzSaXy0UtJ4932/uGagKVr5a4VlmDME6JJRzAId09DqkEI1WSKAflAZi2qDe79Ul6JshEqEhFksgZidyRd9zz32nLT56QZFdaHPpcS5wMmBvlAHc+dKH3N2QRCnH8w6Z9bEmWaVpTBS9u3yY3xpRTnlEPD9LW1KnOy83dPnvm7NVW/5ebkysJUxAltgZBliSUZWOg/yBrkJrK+NSCBTInpeKk7KwMoWRzQ64TDAFC/ClOQi5KBTWvXA9/opyQ2Bak9swj+7wn1mUfoPT0NCqalidfzeByuam3f1C+Qtbeu27tBJKU5vjQmDqu2Q1BT7fD5LeQxj3E/hjsWx7mw9YUwkN0jCZmRK83M5WQrefKb26e9AaFOeZYDtcMFfMqaP68ecw8k4C9B/ZTb29vQpyLzmHTKEiyJpwyFFmeOHUSZNkkyNJM9KwjXRYhRZZItAtO2rxhI42MjlFebrYlXwrIESQJKJJEeT4k6pJKtdGUKIXUXIcgaJjDSlXCTNaT5eeuvZa+8qVbyd477hUCYWYISTwmDuDyy5n4ZGMjvfnWX7wKVQ+VCAPHNbkh3nAeyHqMgejRP9BPnV3SW7VD7GsXlV8ZZNyjO4KHw1LPrJkjNoOfEDJkOqb03qYH6YoHfhjVB1rN48Z6O6HA/zxU0g6Q5N994pPMWpOAk6dOTSBKk2xYu8P1MIeAYxrZmSpJkKAiRDPADD/TfpacTifKSzMxvzdi2WYkqFCmMcxvKEAoSwiwT1/5Kbq7pkZYvB4CzMrMoEyxKTidYzTqHJ9R9vNf/ZJefe01L0miPAWd2V0bSFFOML8VWYLkXmg4Kg+A7bLlyyVhls2YIcnR5Ro/kc5z5yRBHjjkUXzllQUynZo/fv/c8aBmACoTct0IIE5sQ8NDqPASbdyjNpiUjzE2hTreg1XksCpc1NTH8xt8yLFgVgVNv2A5FS24INzEFzuYqhISZlmzNsbKoaiRMxXk5yOmuDmSslS7bm07RaLdrhbt1pTgYQ4rolQAWX73zBkpxLAtXbxEEiY4SU+MipNAkH/d7QmrRtZ0lRDY/zhGMCJKMGmD0c6K7EBwOKA6qBngsDHwbhtJa0OSFL2RnSzEPlod94AiDHdRd6umt9abh+SOi1bG5lahHtXMnukXXEpL1nw9KuXOnDuXOtramJamDmIZmS07zZkzZjZEozBYippVuC1AuzHlJEV28IbvEsLsnx/6VsDjwSGkYiWNoJnd9UGJUkjORizoA1WJECEj6MkP0w/1M2ugHq2kTUP5SlobmK5UUV5huBDYiVMnaVbZTEOVuWDefPl7e2dHg/8YQ6iEN9UA0x3ZgKAeL6n5ts9vmAaJ+eMYgxzuPRf2Md569x25MRIDJh3/BCdnlMODoCghBiaY3fbeHiopKg6pMFiEIEpYhWZQnPTDs2fpwdmzDffRkx+mPe7TTX2EevRPm2YEOI2049VZUZSybg82dy83I0o9QIrh5JPUwoJaDH7Cjd+YmZFhuFoiQguGhocNiTI9PV1WPMYuhao8JlRlZSo0mLe+f698/dht67ymNYjx4LYfR+0YUJWBMKqbG4v4tsys4APro37zabPGU/AnJBz9/TTQ1+fzXX7B+LPvGPCdipuRkUHTA6iXQPXiHB2lfs+Y5KpAoXOT1PFvMSTKHrvcAo1LmgFtOgiadg0OWrIGl1kkRn9oYUh2q6a3vDli625+5yRVfXJ+1Gv5wP5T6m2VX8+3QTO5wzYdIOVBlL194S8tMdWUJAAVCTUJ9ajmh8seu6iI8gqilxgZjbinu5vcrtgvGZEjHvai0tJJr2Ncs/3cOS+ZL6ispKwgHUF7Wxt1if9gyAL/KZlhPc+nOpYydYWakqJCEGZYHb/ViRYhhAcZkomy6JQjJySiHAq8+qe49lWiHtxNnZ1UXRb9adV7xx1lVZaJUpyUHTfn7d/ZY0KUO57zSlz/Clcq0iccAMTn7/EOhi57N1RltVCVTboHAYPPy8M87UYrU8PEMWrMxlPMvObPbf11WCeExcdgbmMsEiSJjENIzwZAyUDRKEChDA0Oylc9EYVCosPiYe7tNg8cWPeN/0lvh2ie4z/yhj/2qOHxQDTB1Gws0S0aJuoMdXnBsvEUX92CzDrb22lszNdpUCyIffacOTRLnDM2PWGGch2qXoB9B/bTK3/8gy3RVyqFRQc1CbJ0mXSkaJfTSyZ2fpmZ1mb+PSFUfTU6nbTo5uD+3rjZ3RKKolSqcseREy103oLoibMTZ4/ryzfChLFJjGFgK59j7UHDLACHJ5GEf3KA5RGcOgjQyhzaO0ItGOnnkQAjVCC7EDKSw3Gjclj6m3tdBo1Zr5Q0847mVlRQcZA55Qf27KEioVDv+mqNz/dbt/2GWk+1mjZ0I7SeOiX+9+ug/wGBZoprKo7hfHczHN6/X9ZdmajPMq1Ojxw6NGHIQA+o7R6tM4HyBFniv4dEWSDLpRddFPS4/o6zC5cuA1Hi7QOUGCuVBjSBoSz9VaUulE+IngLCbB49srMs5ZOAoj52VJDaohnRy8Tf19Oj3pq27/QAUlcSzKtP9dGwcygqJzTmcsry9OUbPWv+X6gxj9NnrHles8fHuvwZfncEp98YgpnTZLCZ3gSsj4O0aqFAKUcs3wBgPDJN9OiKJEGAaHBmJDlBnba2SiJ0Bdn/Y0uXxb1VBiKmWKHlo49k3aEDAdH12O2yfkI5lxPHjkliTRdErwgSZUQLcNLAXPbf4lA9663u6HQ6JWmCJKEa0Zb1JKmUZ1FhUdCylNp7uK+P3KLcqEAcf53drso3bePB9K50y7d1tpFtTuR+kZPtJ2l02E0WldkEskRwqr93TIuhlJ5wKElgZPxhtvuRWFU8GlmoyTfUQmKhAGY2zG1AjUmWaR5BZS5ONI08EwMAN3kCcf0B5VN5/vnSLE9VoJPBmNlsoQahZNuE+u0xGXJAYHOaVwhMnHABYgU5giix4T2Uqt6Mj7ayE2S5zX/dnCiiXiNK05AdH8uhzeOPqJg7z9C8RtsNRYgoS7dd3KPZ06dHLt5EOQ63W10XhUWUyi3/x6cHaM0D7TRj2qywT6jH0UUoJxhza+aFIRB8riQ9eiLcBNUjKZIEHOP5G7dM1caKWTWmvfSQZwGyC2/zOHLgwCkoLDQlydzsLMPpptna7IXhUadPgoFjQk0tFg05XTfGmUpoPXFCDmGUCvMOY5H+JJmZkS5U0cSmk0UZ2rPppqGR0QlmPMgR5jiUJjzk+QUxW310nb/yjKIIqBPlrRft8GYr3m2jGXV6jIyOyN9LCnMtiSdYovCfrBME9zNhOaZPmxb2tbhFZ7iu1zs7sC5solSqUqjAhr7+ASotcFF6Wnh54Lp7e5SarA9i3tYYjVP6kEhfrwxDUORpFCoEKR8o0j+WMAlqx9SyoGnKkRdSvzpisH3VCo354oGB80NPkgjTycsJPvaTIxq9O9NNg7oMUVCWVsbTkg1Qj4BSfGf9xgsxpziYGwGdUr7Yb3B4hNyawIQZD8cOxixBwiDLSOs3HquKBmqnwqyuFyoxoBkeiCTh9NHINNR2KtVsh1Drs1HBYTp2XKK9dJoEmIdMlHpVecN9J2heqS3kEzrV3aJXk3UBbnwtvMait+oJ1FtBRZYUlxgGtyLoFZheUmoPgcSsPJRNFkmygSbOv/VyV7D/hzrfG55vbweiUz54dvQk6SZPQgC32+1jNipVKUkVjXtoxIc05qZYEgyoR6X0oAIDkeSIUOJOnRJHHeaKOlf75OX4kiW83yDK8xYvlh0ROrZ4DHFEOzxItVNh0a23OnvOHxizRDuG0BGCJqRhAsVJUIPPpqdTRhiOvrGeHstq0qqi9KpKR6+L+vLsVJhr/cT6huxSSWpq0sr80xZtDMQw+h8wI0lJlEJpaoPFleE+CCYPUcx68HdfeYHa+sNfBhZmN4KhfRp1zviAud60XrZkCS1duoRe+cMfZVYnjFMqAsCGhAJqnixII5WIclRT4xVaNhm9IwzpvNJ0nY7qUMrKZtBVK1bQgQMHaf/Bg/J7vWmO++Aw6Xxg4oM0pyK0WUFuIWpK4OVOT7duacIpq0zuOWUl4bYpkOs2KMKZg4OUnpdn3eQeHpZTFa2qSctEqVeVN61LD4koewft9PLj/aqcjRZuQKV2A1aHGuGvxi/L58ytt5A9OVYPEHrbTf69bCBFCqKMBAho1gcpZ+kyp4wI0gNJXvfZz9BXvnzr+FN20xfl61fvuls2bpiK5EeUABwb04qKUoIo2zUzG2Oz7X4md6ZuvFaR5E+ffnJ8B60+n3ymgf688y9CXY557wOIUylP1fkUijrtS5C0aZGSJUxoDH9BHQaCcrwChdMKm85bUB72igOIJ1VjlVCVBGVu0QR3CWINRU2GoigB6W061zomRZ8VExwmN1SorgewCkSkdoP4rPRWkPBqvGN+eUWjIMm6AOXGPB+lfuXHIECZ67/+tXuEqssJ64ExCtTO8ksx9fGq5ZIkYRqWFOR5VaZDmIVo7JIshVmuTHV9wz575owPUX509GjSplrTE1eXruPRp+yCKa0nyWnivqG+MaRhHxiku++spc7Oc1JdqvsAdekc8w0rgqPIKlEi4FzDpgQlywZBgjVKqOhDfTAUBssFClJ/+YIkoyFkJCftdzppmTClrZjgMLmhJDVPt+XoG8tEqbxNO7c6hKoslF7s4nxz9zx+B3Rjk9tDqHxUore3QljBnJmzJ4QXoPLRQynPt5aPsiVIuU2J8pCpOkXw9fmLKsNeA8RsFoRTMx0f+Mb93katAAeOQ2v0UJswxfVEq4hSHzc4XTTujs4O+tnzz4nzHU+bB+eaP94OMjunJ8h/MPe3+W+e/qZs1qy43RMjT3S2jijRvvTKPEs/xpudRYMjo/Stb/6L7HxQh5kmi2AF83gbdIC7/dtQoixXq81Yq1Xr5+ifB+V01YbSaq04NENtP4/099OzgiRdAwOUHqBe4eXGDdSpycaoE6UGT2R88wgtquqlwrwSQy+4y+2i/uFeOrlvVP+/cHurOqfTuV7FY6nK190A0m5AI01RvPraq1Raeivl5+WJLfTB/TGT4NuxMbfWuN2yIfcNDkmCTBfvh0bH//PFm27yIUozwp6lTcEDWXZ4FooybdxWpzEG+8/iZfENcLcSsrPiqqt0gmCQckQHPibqeESrU+UwGzMhymChQfCGq1lBojGH03v6zEiLUxA62iuG1jbqjxkHz7y0PrcJElzjUQ0IOzBgSbf0cv95vOMPKaY6JKJEZLxg8JY9TcO2RVXZ1GY39oLje6D5FRkcbjebP2mx8mFG12mVD+fONu0h2BSHTM4hQ1tuwig6GemvjDqM2pGRkYZuzWPtGBwM+ZgjQTKvoDGXFOR7TW4fMhUPVoBWJIOLMadZAeN38VR4XefOTebtNHQoQqm7RMNDh4OYyUG/mEnUtwnQDnwajL5uDb4LNoZndblaq+qyeqqJDC0vRctvhoZsa3JzZQC5kQk+pk1TfMKTwdyuFi6LlaLEiVUii8dfhAn+qVvy6UxPK80pHk/Hhs8Aftf2j1r6FxCjtk7OG+GQZJC1h4PBatZos9W3bCb1CUfZhpdefqmk+upqml8RehISnXncpL8+xPPBgoZCtA84qDg/z0ctDiFRhmjkv33hxYCmvFFjTlbgWnXXW6JX5Ao733yTVnz608LUzpYKfVy0uCVJqn0zMtIMiRIxlBbqtipYY7a6XG0MsgclGllKToIJ/tC0aR6y1I2ru7TUeE84wuekcBfrbuxsHavxKBInOUb6KT97mjS38Vk+ANLpQ4mm+CLpMTH+YoUo15gpygA3ulTc6O6mPzV5u8LZs2eHcm6rtPEa3JNqzK/FeK7yYDc+8wzdUVtrqHSyxX5/eO01XwKVCilNeQTrKEUg6q/OT6FhZlc1HDj52vguqumXv9pKq6qrhZIckZs/Hn/sR57GpXnKR8eHRjYZ3PtVxIgGNu53OtfCSZMPK0lYWWk5OeQW98etjdVrZndTOIWnqfGUUB0JYPCsnDS64T5P5D1UpVKTCAdC3GSY4ytWer16q72p33+9i5WFc2j9XHG1OmQ0x2BEnUJ1NoRB6KUqZR3uCyL9EL+He6qCotfcfBNdf/11XtMbvxXm5VLN1zwr0anwIDhRXG55SWHnP0wy8pTPDIYac7RkK4iLzM/Pp8cf3SjHfVUbwlTRZ5/9mQwPUsH8+M3jKU+LSXsI8ryH9Ixqbasp1FwFgdRpPGcPeZ59ko4dqeiFqhzTHDf3CNMbJBrqPVD3NjOC81olyFCGC82oyPCSJD5rweUJ11OKm1aayI1SG8uNtN5EGWm2waEhysvNlaEpbreTtgnzGhtChRYsWCAa804ZxgLkaSSJZCIyqYOn06wihqqHY3DMoH6QmQqzbxDygk5GBZyfOHGC3m/erZnc6eMkCU9rmlSWu7kqYw4ZLvT+6Ch9PCvLS5IIH9LCgcJOFJIeQaOGhLXv3Orw+V77bA+Uvp4R2/Eaj2TMkI0UZl9OdqaMkYSKRGMGYYIk4ZHN12blYF8ZTuSJYthtkFQ5VeuzRXY+aemyflBPcOKg3lB/qEfUJ+pVTQPFuCXqXUeSKIc7ntjfK8lJG/2W5Hik3zvhJeyhwPQIT0wqNOW4iYUDhxF2zypJD9Py4EnHa64gTDRwtWWkp8nGjN+licGNOmjng3pCfaHeMrTkF2pD/UJ1qvpW9cnqPK73SnLPw5oDR0eSEQ0BpEfh3DbCcdPT4VIOnHq+XQnRs9bK2dtaY1VqCI1YbcMY6JYEma4nyTSuQcM6TVNkifpCvQ1rpKg21K9nfnianiRXhRqKwogY9cfFfcC23+NI2xhpgabOHM0DKA+ixSrVBShHn2oppkR5TXX1+vaO9qY9e/e9MZl3orx87sKli5fUvN7UNBkdQyN5nFKrdQ25Tt0j7T1+gwdXl67OP/pjAidyJxccfmnFAtYpGmjPVHlG0bYGBx0tb73z7pZotFO8Ghwbw3IbNcdlTZzuk9n121X+CXE+a7U2ZdfnpPDyoxFRahehgr22iz+uUR4lRkIAYy3V5OvBlzMUlPrh+8VIZHUunk/wiy1RLAV9e9FbVQGJksFgMBjjRJnOVcFgMBiBwUTJYDAYTJQMBoPBRMlgMBhMlAwGg8FEyWAwGEyUDAaDkeJE6Xa7S9zGWB7gP1bQEOD/3Rb+3x3g/3UWz6EkxGv2R02EdXAswP93WCkgwP9XWzwHvo+R38fmAP9v5vvoboiwDmyhXnOoJEcBjm+1jLUmJ7nNZP/lFm+MO8IbG/H/zRpICA20OwGuoSQSouX7mBj3MdIO04zoxPfVU+g+Vod4HxuiwY9pkZIkg8FgsOnNYDAYTJQMBoPBCIT/L0B7ZwIf11Xf+7+k0b5YsiTvyyhO4thJiAxJSAgQmdAGAsQWbYBQwBI8CEtfY+X1lQeEF7ssfeXTxnb7CoS0WIGy5oEdSKHwmlhOStPHZpkkdhziWF7iRV402qXR9s7vzD2jO1czmkV3Vv2+n8/1WNLMnTtn7r3ne/7nnP9h05sQQgghhLD1TQghhBBC0o+HRUAIIdkJ064Tkjidh45gpkGL2jZJYO2QOVNWWqa2UiktLe0oyC/oUr86qLaO6sqSnFxBzdnbze5vQgihVBIyHyQS4vhAGIHEgnSP4dG7cjXmP2+ROFdBHB8fl5FRs+TxUMjfSopLpHrBAv1oAdnEao47lWz6KJWEEEIolYRkvkhutUSy2iZ02xvXr23HD77+Efx+hyRpKe2BwQHx9fVq6QSIZFZVVtoFUx+G2tqUYLZTKgkhhFAqCckckUS0EYnETNbFDrW1KpHsClpc/whEcmuqj+302TPiH/Pr/y9ZtNgpl0Ywm5VgdlAqCSGEUCoJSZ9M7pNAVNJnieRem0hWW39vzJKP1Jrp0UtKJSGEUCoJySWZhCwes8nkRiWTnVksk1kjl5RKQgihVBKSK0Jp78ZuNWMlbUKJv+3IgY8KWW7ItIk9lEpCCKFUEpILQonopFcCk282KKH0OYQSK4g35tjHxoSenZRKQgghlEoy30UQErhZAml74hE+X0F+QWdZWWnXgsoFx0+deeVeCXR371Uy2eyQSXt3eC6CVERtlEpCCCGUSjLfJHKHJZJB75NAbsj9Mp0b8l7Hc4JgtvTIyIgMDA4GZ06DivIKqVtYO+MtJRC9zHqhRL5LfGbkv5ycnIxZvtXWUVJcchBl4/F4fFaZdCaj65xSSQghlEpCkimSztyPkBnkhgx22/r6RyCQuyV3o4lzpvvCef1YUlwsJSUlUlRYNOvzjXyPjI7OSMAOAV9YXSP5+cHVubvUtktt7XORTUolIYRQKglJlkzaZ1nvVCIZ0k2rZHK3JCnROJkJIpx9A/3i6532xqrKKi2YDhA5bo1XMCmVhBBCqSTEbaG0z8Jus0clLZncJoGVbUgaBfOSr0ev8gMiDB/QKZliXaucUkkIIZRKQmKVRa8ExiiG/NrMtLaikwes50BENtpnYVuTZg6E2QdJI2e7z+mxmmDZkqXhutYxBnMDpZIQQiiVhCQikE0SiCY2xftaR9SrQ22PWI8QSo6bzEAw7tKM28R3h+8wDMiN2UWpJIQQSiUhscikfZwjBGK7PYm4r38Ef9vtfB26U9GV6vF4pKy0jAWZhSBaiagliBCx9CmprKFUEkIIpZKQ2WTSvtpMuxLJ1hCbiCCTJLe4cOmibhyUFJfIkkWLwz0lYl5Mp0PmszgJIYSQeSeUuy2hxPjHmjBCuZtCOT+oKC/Xj2aMZRhaYt0XpZIQQgiZX0K51SYKDWGWN9whTPtDpol5TCylkhBCCJlfbLEetzuF0mIri2j+4PcHVimyJUZ30kGpJIQQQkg4GiPJgq9/pInFM7/w9fXqx+qqBZGesotSSQghhJBwdFmPMwSyurKkg8Uzf8DMb8zixyQdrLQThu3qnNhLqSSEEEJIOEzk6V4rebmTnSyi3GZ8fFxOvHJST86ZZdZ3mxLKbfHslymFCCEkS2FKIZIoSib3qIfNEpj9HW6yDtbwbmJJ5RaISiI66R8LjKOMkPRcr4wUyzrgzFNJCCGUSkJiWa/bnseSZDGISGL1HEgliLDud8wySakkhBBKJSFOsUT3N6KSjTaxgGB22OTSLp8kC0Aksq+/Xyc1N2Dlo0V19c5Vc/T3nehYWkolIYRQKgkJJ5joDodAesP8WUtHSXFJUyqOBeltEEmbJc1NCFjHGhI1H+XRRB+dQCIRkayqqDTliO/wMbXtnW09b1elkjcpQogLlROiH4h8RKqA0L3SaY+GEEIy8lpusiTTm+K37rKvPx7jPadF4kjUnSPoeyn+k477KaWSEJKMSueBCALZJdPpS+w0Rrj5oxJBQuYuliwhhGQ2lEpCiBsiudUSyWqbPG6PJ7Lg2B/2g33e69hns9pnJ0ucEEIyXyo9LBJCSBzihzQkTdavOizpc6YiabHksDGBt8G+2s9fPL9/cGgI0rpbbRtY+oQQkvkwUkkIiUUo7bM/25VIttok0mvJX1MS3hqSiRUdmIyZkPndoHU2UjsjrFtOUgi7vwkh8d7Mj0mgS1rnMDM3cisiuTuVhyNx5lAjhOTEfehAGKn0qXtRDUuHUkkISc+NuUkC3dKbE3j5TnUDb7NkEvvZl8aP0qHEcqP6PKhkvGEqmw4JzBzt4rdOCCGUSkKIeyKJcZAhE2rUtne2riNbeo5NanvETMBRQrknQSl1DSwxhtUhHBJpCNdNpqVYAhOJGOUkhBBKJSEkTpk00USI1EbnLGoliJDDLRIYCxkptxskdC/EUgJJkZsy7KNunG0lCNus8gdsv25NdJY6IYQQSiUhuSqOdsmDXEEcMc7RRBM3GJlUElnt+Nu8YmJiYu8rZ083TU5OVlui3cDIJSGEUCoJmY8SudmSQntUscvavBK64gXGFDbYZNK+tu+8xtfXK77eoEs2cOwlIYS4I5XMU0lI5sskZPCA+VEC3bcxJQRPwwztjKe6aoGMj4/LwOCAWGWzkaVCCCFzh1JJSGYLZZNMj41stU2YcSYiJ3FQUV5upLJJleXu6sqSVpYKIYTMjXwWASEZjZlggpQ+7ZBJtSFq2UOhTBxEKm20WGmSCCGEUCoJyXl6rUckIufYyDkwOTkpl3w9+v8Lq4O5kymVhBAyR9j9TUhm02kJzxZfv87NWM0iSRz/mF9Onz2j/19VWaU3iw6WDiGEzA3O/iYk063y0BGMqWzKz8+XJYsWS1FhEQslToaGh+TCpYs6ShmmHNs5pjInrhNE8M2KUfOp8YUGEfLI7mWKLJJqmFKIkOysMFvENou7orxCqiorKZhhwHhJrLgzNDysZdKAsqqrrXWW2XYllNtYall5PWyS8DlXIVbtMj1kJJdBGYQbDtNpiWY7RZNQKgkhkSrTaiWU+5QsNSLq5jYYY2jrEg6h6+TxrCqrstIytZXqR0QnHWCVoFYllKxwM/t891riiAikl/I0J9nuspVVF88uQqkkhGiYUigh2iUQmWSFmplCFK37Wi8XqoRoL0srrnLdbIlmSwTRRHnuomgSSiUhhJBsFJ0Wid59/UisSf6JqwLvs4kmy59QKgkhhGScyDTJdCL/4K+F3deZ8v14LdFscYhmh/puuOoUiUkqmVKIEEJIqtmuRGVbiqUJ0bnNsTx1ti52S75aYthPl1kBa5b9xDJTvUtSMLPb6v5uszYc3xRPUxIvlEpCCCFZT6QlTRMRJPX8Gfuwft8jcaQrUs9HxoY2tZ+djt9jVax4FjHYrV6DVbXaInzeGe9BSDrgijqEEEJyDa/j50SifF1hfpfIfnwu7We29AtcFIFkBIxUEkIIyWka16/V63FaXeDRBKwzUlez+n2DS/vZGMd+ujgzm1AqCSGEkMySy85c3A8hmQK7vwkhhBBCyJxhpJIQQkiqubXz0JFtLu9zNYuVEEolIYSQ+UWTcDUoN3lASfoDLAZCqSSEEDLfcD1PZYTk6uZvmBCDZU29MewKk2vawuWYjHM/ICQNkG0/8S6zGnY/NjrUtt9tUeVpSiiVhBBCyLTAQQAPxPESCB/yQnrDiO+BON9+q9pPb5j99CSwHxxPc4S/70+CpFMqSdxwog4hhJBU0BXh/25hT98TnFVtpeOJNzF4Z4TXtLq0n+YEPlsbTyGS6XDtb0IIISTLcHT3J2M4gZEDrv1NIuJ0SEYqCSGEEELInKFUEkIIIYSQOcOJOoSQpPD2d713qwRmkHJdYjJf6FJb8+Pf/3aqV8phSiFCqSSE5KRMNokttctl3tVy5x1vkZuuv17Ky8tYQCSn6D5/Xp7Y/7Q89pOfyuDgkFf96oC6BjCxpkHJpS9Fh9EhTClEKJWEkBwTykYjlBDIf/r7XRRJktMsqq+Xu//4nXp7Yv9TsvPLD+HXiM4j/VBDuNdYqwnFK20bG9ev7YjwN6YUIhkBx1QSQtxks/nPpjveSqEk84rbbn2jXLt+nfnRa0Xtw3FvArvfwhImmQ4jlYQQQkgKaVy/tsaKVt4a40t2qdfsZckRSiUhhBBCnGK5jaVAcg12fxNCCCGEkDnDSCVJGNuKC2R+wJU1CMlMmFKIUCoJZYMQQsicaVfbIy7vcx+LlVAqCSGEkAyn89ARrwSyJURbHKBLbXtVw322nJfHZ0k3lOjx8UsilEpCCCEkw4USOSwb43jJbvWanUoc21h6JJPhRB1CCCEktSSy0s5xFhvJdBipJKlsnaObZ1+cLXQn6AZqTuC9m2TuY4SaE8kVp957h3rYOscKaIN67y6eRYRkP2YMuro34F4Ytfub1z6hVBIyk5Y5CiXYjBuxusl2xvk6N2ZGYhWMRBIQb53j+1ZbZbeNpxAhOSWXnSwFQqkkJLEb6E4lhF2W4CUilxC67YnciBEZsFawuDeGyIATRArb5zCeqUZtu8W2hGEcoLzauJoGIWS2RjNTChFKJZmPYrlXEov2ufHekMptaXhfSGkzv31CSJJoF6YUIpRKQgghZP5hpRRqieGppqeEKYUIpZIQkn7e/q73Nln/NRMDFsj0EIRqmftY167Hv//tBpY0ITEJ2zH14I3jJTuYUohQKkmu47OEZD+LIqWC6LUkENutVuXkdWPfxaVlUrd81fTPJaUhPzuf+/Te75gfvfxmCIndKxO4Zg6y2AilkuQsqtVcw1JImjRutoSxSWKcWLT88qukqqZWKhfWaRGE9C1fszbu9x8an5KJyell3Qf8M5d4H52YEr/aZFoqCSGx3zs5xppQKkmEJmdgbMwBiX9W8XynS20b53MONiWQLephiyWPYalSkgg5hDTiEdI4mxBC9obHptT/J+XFS2PS758M/n2w+5RMjA5N/3wOPw/HdKxVq66QskUrxVNcyjOXEEIIpTJJoBsYM5q9LIqYMGP4vNY2b6RSSSQikLvDNUAuu2aDXHbtq6VBPSLKaAdBQcihT22nLvrl7MtHtBBCEkf7LkrfiReTf/C/CDzc/Bdf4RlMSGbBlEKEUpkrWLPyWlkSseHS6jbZJpMtlkxqEH288fZNctUNt4Q8D5HG7uEJOf38y3Lq4H9oWYQ4xkJR3XLJLy6V4mWX659Llq/Rj+bnuXDiy5wfQEgG0y5MKUQolYTML5lcpyTytrs/FPz7mYEJee7//bucefaZiNFGI4qQRDxCHgkhxAZTChFKJSE5LJPo3sY4Wy9+xsSZ5o//he7WRjSy8/DL8rtvPyjjjvGM5VfdKBVX3eBKdJEQkplY4/D3SOypvJCnkr1hhFIZZyU84wJ7/Pvf7uDXRLJMKLHW9w7zc/MnPqkn2GiZ7B6VA1//QrBLG1HIRZs+wegjIfOLY3E+v0WJaDVnjRNbzuGQdopyJd+8kUpLGDFBYZPEuf6xeu1sf8bkmMfwmCkFOoeWK06UeMewNEdaEzrN4xbxXTREWQEiFy/2kOgkZmsjOgkwC/uVoy/I898JuqbUvuluHZnMBMYnp2RkbFJvmD3uH58M+Xs+7+WEuAnkcE8cz+8SjtufD/VHQp4UxZVS6kmeJBUOhAYz0cIZtSxeViVXXrNIPy5eVikLaqKnKOntGZZzp/vl+NFLckJt5073iVXwejatrUA71NamCq8zy86pRGbu3SuR19FO50xAXByI1m2bZ63HoMTf8cH/qmdzY8Y2hLLryUflzK+fDAhacakse99n9WMqgTAOqeMZUcLolEZCSOqwggF5LIl5LZHomd0RyZO81dVy9aJFaquXBvX/+vLyqPs8Pzgox3w+6VLbL0+9oh9n8aTtyegJ9rhYQFstkQlJlfKq65fLG/7wci2OYxOj0jdyUQZHe2XQf1H8k+fk5LDoLSZqRFbc6JG1r6+R8mKvVJXUSmFBsZbNXz3dJb/79StifUEHrMLTs7JVwe3NgpvMxs5DR7ZZohgt36VZC7bNpf25CVrU29X7t8+jm8MOS6L1mMkP3P8l/WhyRP6ufbq7u2T55bq7O1kgZ/mQf0LLIx4JIfMCphTKjroibEq5jQ1eeduVV2qRnBodlcmeHpnq65fJvj4RJYfY/DHs36y921hQIO9saJC8qkrJr6mRvOJiLZzff/552Xesy3hSk82TIJg70y6VlmnvFttYSMjjO959rSxvqJKLg2fUdlpJ42+D4nj26LiceWlcP46NTsX9nmVV+VK7YkCWXt4tS9ZMD0tZc6tHbrzjaqktXyqvHOuTH3/vWUQ38cXtsQoOkctmVXBdGSyWkMBtmbo/MuP8D+nuRmQSEUp0H2Ps5OjwsBz46meCk3EW3PAWtd3u2vv7x6dUI21cC+Tk1BS/EELmL2jEM6VQZtYTqB9CJmUtKi+XT9x4o1xdu1Amzp6ViTNnRY68GBTHXw8N6e3wyIicHx+P35Py8+X6srLgZoTzw0o2P/r6W6RgyRJ5/uIl+Ydf/lK6BwdRj+2wgiPwpNa59PR6EiykRuuE07ZdUloob77zKrnyumo55fu99I0dlj5VRpDGlw+Mycu/9YcVyEX19XKZd7XeGlavkvIw4d1BhHOPn5CXu47Ls4cOyWDfkAwdmpSTh8aCzykszpPLXl0kl204Lt39J0RKRe64p1aWVjXIiwd98rgSTOsLPaaOHVa+MQu7x0lm3SgaLaHUvPnuD+mck91DE3Kyb1xGey/Kbx+6P/j8+rd+UEobrqVAEkKSQcpSClk9YLkWFW1T5bfTzR06PQn8qRLJWxcvkgnlNJPHjolfbUOTk/LTvj694f9OysvL5Nr162P2JGzd58/LUwMDerOL5lurquStY2NSduoVuUL9btfq1eJZc5nsP9ctuw8ckMGxMV2vzcWTPHMpJMjkez7yahkvO6sqvC556XxAJA/tH5Pjz4+GvPba9evktqY3ym23vjHuL+emG64P+/sn9j8l3370h7oAjzwzqjcdMdpQJGtv9sngaKfkLxPZ8pk14hlaIt/66i9lZHis2lZoDdk+wYekRShDZndvuf9LeulE093dd/LFkAk5S97153HP7h4YnRDf0LieQEMIIRkE5Ksjlz6Qm0Ju9WAdM55UXlgo29+0UVZcuiST3d0ypjbI4w98Pi2SdhBoe+9d73Tdk57oeEqePXRYv+cPAuMs5Y0VFfKBhQul7Nnn5HXq59dfc42cVD9ve+opyGV1onLpiaOgEL4Nzkhqufe1MlR8XC6NHZLi8RLxDNfJv7SfkNGR6XFcKJgPb3m/Nu1kgP2bwh8cHJKdX3lI/vNXv5aXD/j1VlxSIG9rWSVDnj4ZlW6587/WSkHvMvnOQ78V6wvvUZ9rpyqwjFguxMpd1hLj0zuiXQhx7s8tzHjPnJR1db7sNmWKVXEwfhJLKKK7e0I1Ms8/94y89JNv6OdiIg6E0lO5kBJJCLHfm4PjsONgo9vRyAQFzJdrUuli/RDyvW5/4xvkygsXZerIi4IY5HG/Xz539mxIRBIyuPVj96TMkx5+5JtaNE0kExHMzy5ZIqt7emS52v7xiivk1NKl8t+feMJ4EuQSM8djSmfliaGQQqz76tcslqtvyxPf+AtSV7pEisYXyKN//5KSyfP6+SiYL/7P+3WoNpXgfT/z5wE3hFhCMFGAP/zqMamsLpK7Pn65+rRjcmn8qNz9P1bIb348Ji8+fw5P32oNnt2QzqilusmESHsMYGA2xHKjS/tzkx3q/ePuTsiA5Rsjlqd1LaC7W4+LMeMnzexu4BTK2WZ4Qx4vDIzpGdmEkHlHIo39LZS5jJXJEE+6cflyua+2ViZPnBSECSCRnzp9Ojg+Er4CkYwUXUymJ239+D16Qzf5p//y89qTcGyQy79atkzqh4Zk+dGj8p316+Wh/n7pOHkSL92sPmOPxNC764lSUF6xJWl92xavlNT3S035EsnPy5cn95ySIwd6gs/f9ddfTLlMhgNf1HfVBrn8wt/skH6fX77+xUPyqpvr5Ja3rpKxCb+sv/2seK9ZLT//3nG8BJ8TUcuGNE7kOZiABHa6vD9XPTmBFjBumHkZf8O4fZPesMTi6YHxGUKJyCQilE6hhEBCJBmNJGR+o+51NdbYxFtjfMmuSDmJSdrrhxBP+vOr18urlahNWl3b37x0KaSbG8GvVMtkOOBq3/36w1ou7/3kp7X43nvqlO4W/2hdnUwpufxIQYHceu01sv3Z50Sme3dn9SRPzEJ5T70sXVIshQWVuov70S8f0bJmJM5ECTMJHNePv/ct+fT2z+vxBL975oIcO9wn77tvrSytVnJZ6Zc3vKtSnv5+v3nJsXSJJWd+Z+wNI2RCjlkd56hvTHwjgSjjqV/8i5z8xeNBoVz2/s/mlEjmdb/ME4GQ5Nzz3YIphTJAKD+7fLmsU0JpgKSZ6CTmlXzxgfsz7jNALuFJCMAhEIcuccw6R9QS0cu1/QPyd2vWyJ8dPRqTJ3lmicwEK9Lb3lsnq5Yv0f+HUH7rwSPBsZMIoyYyqDSV4Iv8zv/5oXz70R8Eo5Yf/PR6JchFcs01XsmbOC1P/eCieTo+dw0vF2INiwiuemEm5Dx73q/TBkUSSvhjd78/s7q2B3skT214lCGfam+elryxEXWgFEZCcoDtLksqhiOxSyU6QU+6b9EiWVdYGPzDfzlxIjh28r13/ZHc/cfvzOgPgsAgxlru/PJDWoT/TAnx361YocWybmJCj7vEeFDzuS2x9MUklWJLznnzWxbLlVctCv7h0S+/lFVCacAXuqi+ThdYINL6e7nr41fov1193TLxnc7TkUx8bkzGUIXFJbHmt1DiBq1b/iahuaekLDghBymDsErOpd8fDL6m/KZNcuLSaHJT/vjOSJ5/WOS8ahyrxzz1sxhZTBB8vrrlq6SqplZLM/6P3yEia/jf932QJwUhhEzXEUFPQqoekw8SYIyiEcps8iRznPAkMw50lxJLsK6kRN6/cKHuzrc+Nz5/c1SptLr79Fg8THBpfN20UP7ip2eCXd533vGWrCkoe4E9+/xhbeMXzo7Ir/d1y/UbA5/vlrcu1eNDLWFuUeWwi7ks5/XNogX/NzO8h8anpPOETw5958Hg6jhOeg/ul/HXeyUvv0DyCgoiv8HYiOT1nJ4ZNcTv8Jggdhk0olhcUqofCSGEuFZHNJo6ApE8yJYBKXswy9s4RzZ6EsZZ/ugn/6ojlpBI8/kgz//a12e69Ddb5dA5q1RKYFk/zQ0bp4USsmVF8jRIFZSN4LghleBX+84FpRLg/xBniy2SwGSTROk8dGRGotQoIOzcHCnFRAL7c/XjSCD9hc+lstkm8SfbTag7SF0kKLMm/H/55VdJ88f/Qs/wfvLHe4Pd3OANm++W6974B/r/D3/mT2V0eEh3Jef//H9L/sD5hD+rM2oIqdXRw2Ur9d/mArrsR9U2rAQZ0dah8Un9iM9HCEnxTTL2lG85naYtS9li/vNH1aFVrMkDme2eBKkEmGSEzwh5Np/3qxcu2H2xNZpUBmcMr90wPbTw2WeCYw71+IBsBVPqYeJGLBGdNJ+zYV2VXSqbUnxoO+IUwGpLtDpc2p+bQGiRq2ubS/u7LoHX3BrvC+xCue6GW+S2uz8kF4cn5Fe/eDoolPbclCbZ+cKrb5Izv35S/90IZXX9UilfsCAogxBUN6KGRgz9epsWQ/NICMkKocTkDm889YN6zU4llm0svYwg6Af2bm/7CjbwjGTlnkwF8DzMQ7GLJcDscJtUbo5FKvUr65aUhPzywtnh4P+vWb8uq8+Gm254TVAq+33Tyz2iu98hRqkEYxN2S+xpgDokzHgGx/52SOqTnwNXB42rfTW7nRg+jFAGb/LOlEHdz/1n8Hl3tP5pSCohsPCK64JSWb+yQW69KzD+cGF9nRQVF894Lwjp0NhkUAyNJKZDDO2pkOxcfscHpP6am1l1EJIkr4xTKsFBFlvGEPSDes+0RtnX6YZnZDN2zzPd+YbVRUXmdzMCVxFTChWVho4Js6+Uk+3Y1858pWtArpfpLvBlDeVy+thg6s/QQNdGs8v7a3W2IrL2Cl6/tkuSkCIpUg7Krt5xHaV0cnF4UgYKxkN+V7Xyyumbyslj8tz5wAVYOtIvJRWZW6ZYTtIIJZYHw4Dyf3zkm3o8jfn9XMRyWEnypVGGT8n8IpakD2gou/y2TCmUBtaXhAbfkIonnGdkO841ycutrvBwRJTK/p6xkJ8DUbzBnCggrBVuWO4NrfXTIZQkPTiF8s13f0iuuuGWkByUWriuuUn6Tryo///Ut/5BXn3P52fsC/KFqB/oPXpQFqy5TvzqBlNSUZkVZbG4vk7nUUNuV0ilbkj2XprTPhGRNamXCJkvpOmMZ0qhNHBoJHRiJWZIm98FPGNdTnzOOk+oKg5ORm45hdNNPcrUzPIO7tTWHY4EmdkMZoAbam2fyxGN5czv3Ger2CKUEEqMk7QLJeh64tHpc6T3ojzzpY/N6DJedO1Nwf9DKrVUjY3pjRBCSE4R9AN7FA/dwuE8Ixuxe579cwFnd7idcJHKDrHG9WH1GUxeAVji0ExiwaygP960SWqqq7KuoHp8fcHxlMB8Pi0Ph/vSKpWqZQjBaZHoE2wg/nutLmE39ucmXeq42pNQNjviKJv2RAe0h5sJPT46PZ7YRCTNFo6hc8eD/x8bHZECW0LcTCfbx0sTkjVWcugIGrWbYngq7mm74h0nTpIulXpc5a+HhvTkFWCftAPPaH3fn8iCqoqs+3D9/QPB2d8AqYQMh0Ojsx2xSOUjRiqPdPaESNcNGxfrNDzga+3flHs/9hEpKc6eCnN4ZEx2fuWh4M/ITWnnhc6QBNKPpfgGE8yNGCOYDbg30ticBPbn9mdpdUsu1f6Cs7JjANK5FSmV1PtvdPuzYQILNohmz+87pfv5X8ngmWMy4Z++0Baue61NKv0ZO67SPhZ0cCiwtNjgIId/EJKCe2RPnI39zeo1aCxzUY7M4BFTv2LGt5FKYEsQLg/+w1fks//9PvF4CrLmg42PT8iX/+mR4M/OlEn7bTPcrXKYXSof//639779Xe/V/0ekEl3CxSWBAkEex2OHe3Xi8H9/5j+kvq5W7tq8WSorSjK+oHr7h+UHjz0mv+0MBCAxIQfR16CZ+/z28ZQ+lEOKD/F4Aq/xubw/N+lycV/bJf4UT7uS+eE8xaU6amkmskxOTMi4f1Q/QiRBYXGRFJVmdkqJpde/Sc9cxzjKd7z7Txyf7yZWHYQkBzS4tyYgMvNFuhEFRC5IBLi8CdQ9qL93RevNSxTlBx3Kk7BvL8ZQYta3mQWOqN5vVCMdv4dvfOO7j8rdf/xHUlqS+QG4kdExnUYIfgfQ7W2XSnT129MmqXJol+99a3aptFXieiYZVp2xR/SwtOE/P3hES9ieH/840IR6+zukvKxYios8GVdIo/5xGRwalW99/3vy8yee0L/DpKNNrZeFPO93tjycyRaScFiDrLdZqXOiXURd0S6WOPfn6v3A7SS9VrdPXiZfjPkFBUGBLMmi3g7vm+7SG8aKjvYFrgF7BJMQkpT7PYbnMOfktESijtodLniQn58vJcUlUqQEpyRMiraADI2K3+9XjyMyOTnptYQdPVbmKZDMNpclE56AYVk64flH66aDVPcvWSL3njqlZROehJ6g9737PVJdVSp5eZlXlU1NTYmvb1gd64+CXgdJ/qtly0Keh3yVNnaGDbhEsPBtysIfCMjWBXnVzbUhORzfd99avXY2IpY4gN8oG//c/Z/V8pYpcmlkckh9mX/14N/KiZMn9e8RoXQKJQTZvloQPn8abzZd4mKUz+39kdykeEGt3gghWUlWphQKN0yrorxCydcC8Xhi9whIp5NxJXS+vl4ZGNSRNUQ8MYRAOUp5V31tXXN1Zcmc5k0oT9hpeVI1oneI6NlzVmLN7M+fPasjlghovfDii/Kp+/6bVFZWSFVFSUbIJWSyb2BEJiYm5bOf/1zQk5AqCWJsB1FK+2pBEgg+xiaVFm3GwjFB5y13rw75IyKWEDH8DQey5Z6PyIdbWuT1N79Oy1xRYYEWzFQW3OTklH7vsfHALG58kYhQGt7UvCJklSCDbRUdYeuREHc48sIL6t89LAgyr7hw4Xw63jarUgo5x8kXFxd3Lq5b1Jg/S/7DeIGU1i2s1dukEqILly7K0PCQcoRBr9oOvHT8FfytVcll+xzeBr4AMZaHLlyYIWL4GcKJFWjgSR9r2yp/8q53yx/edpt2IzgSXCnV+McmtCtBKtHV/XD7dBFgTKh9Yo7hG5dCUsxtV1Lti0sqLQvHmIZGjK20zwQ3YEwiJO1HX39ZRy1xYNiMXPp7A4P/CwrypbSkKCmFh4jk8IhfC6Vh7+M/DoZwAdIhQYLDYT6bRRc+9xwuFK/VIsKMPowJmW0gNr6QDrXtlxhmcpPk8sKvfhFYQrFuPQvDgVktSN/844hmHnnhsN4IIcSqI1uMhIGioqL2ZYuXbpYkr2AHWV1UVx+QfiWXiF5a2+7T3Zd2l5WWIXIZ9zwKjClUnoT1rxsRkXRO2gH4GdunTp/WqXgQ6MJm5BJAMDHmMpkTn+FKQ8N+LZLAKZMYP/lZJcFlYcQex20bS9k1W29utPgyZpodwH/27TklyxrWBiftBCsZ9TOEDRN6nHK5auVK+fCWFv04MBiaJBSiWVTokUJPvv7C8/MjRzQhjOMTk3pWEqKQE2HWskNo+eH23XLh4sUQmbzzg5fNOGY7+Fw2muO8QLwSYRyIaSl5CjyBR7VhzAdaTOMT4wjNV1sCim2HbewHvuW2uY5LtI7tgKRn/W+Mq9yQrBtRMlrufZcuyE++/vf6/xhjiAks2QZWyNFjI3svyYhtjGS8TIyo1nz3qRm/L1+0QtbffV/M+7n5xtfKTTe+ljUpmVc8uueHcuqVUyyImfdxe3Syc8WyFR2egoJ4JyvJ2e5zeuykEsGgKMYDIpcLq2vk9Lkzuou8+8J5dLnv8fWPdCixTCRjCLwBi2joiCTSCoUTM4xPRBfy586eDZHLutpa+XBLq1x15ZVa+oLCXVgghdqRCmb1o3C+BE8aGxvXEUk7iJY+/Eh7sJs7mkwaHuzutv84a2+uJ4qFdyoL15N2II0QMGc3uFMuAbrFMcEHB45+elCmCvp2ZeWIYKIQIYbDE34ZTvAEhTz+7Il/U7b9jB43aT8OTCwK183t5F+/c9ye8HwnPm+MF4cr40AMOLEv+Xp0aN7ab4sLYz92p0koQaM6/m0udsdsSeA1t8bzZKwmg8HUmAXd9WQg2XkmiiWk8cxvnpTzzz4Tkj8zGSAqiUk7SOwey+Qdda/gChyExFaHIJgQz9gQ1AEb3Z4EmSahbPeu1B6xNZF9QSiBVV8mBAJZK5YuDwqqNe6ySYnlMVXfNsSzL+UNXereFxwuCGl0TnAxQNzM3xD5Q5cyXOav/vZvgp70+ptvVq70Zu1JTilMxJMQkfzZE0+EeBKOA2NAw3VzO4Eo29Y0b4+WGccTQ4Fh0o7uzkU3cWDiTt2sr8HfzXPwGoxZ7PcN6S5pe7e0bjWogqurrZN1a68M+fnCxQvBqOPhIy+G/OwEk2+QQ3OZN/a1No8c6LF3e3eqz9kWw4URIpNujQOBiJoWFyKZaDnhRDdjP14+eQYtq3jHfqD1hAu5MQ33kHY3x/cg36R1E94isSU/f0S9Ju6ujP+y5f3y6e2BJRgvvXQwI6QSEvnST78RXCYynPQtvOI6qVp1pU4DlE7KKyvFPzoqY7OstkAI0cQ72LjRChQ0Z9sHtRausAvlQSNg6WbJosUhYllUWOhVYrlH1bVxlbM1XBCBjM2IQmJCizO/oxPTLa4dZ2REv+aQEj/MBTGZaqJ5EkTxxKmTMXkSJhFhvKQ9QXs0IL6Obu+oeVJjDashJKzXSIYg1i0tjVngMA7TPhbT5IM89kKffkQBYHvhxSPRIyclBVogG66qEq/a52zd2rPa+9kReTK023tjlIvCK6FdybgwGpMhbBBUnOgAconWWF9/nx77caFnYIcS0I2xRC6tFu0GyREsSdwr8wCI5JE9X53RBY2cmCtveVvGztIus26QRiqff+GwnHzlFeoDmVecj22izgZLLL0x7jbiQhcZLpT4fCYi6VP1JoI3PZl0jAjonHglIGboMayqrNqsxHJzvGMslXA1K7HUSe0hiOhWjlXg1jlmW6ObHCv1/NrKdxmPJyEKidnbeG/st96TWDYeRCcRpYzVk+KSSszyUYW10RIreezrL8v7P3m5VJTHHxlBaqK1G4pi6p5OBiPDY7L3n14KKahIs5isiwItrH3B46+oaK6tqY25lYmUBr7ewO6rF1TrLvJ4Tna0oNCSQgTz1JlXqpVwHlAn/FxnrJFMrIyee0avM27v1l55y9tlhRLJcJhVfS79/qAWUMhouikuLZWhwUGZUudrX1+f3giZp6AHrCNCIxmBgQYX3ytTUwq12P6/S2Ls8obkoc5DkAVjIMuSuIgE3kOJpA7eADyqn+9NMIiBxoIeX4lxiLuWLZN6x7rZMTXQ1THZI5kpR5U9JhbZaEU3v2tSaYklxlci9KknTPzgKy/Le7aukWJPSdZc4WMTfvneP/xexkaDQ7/aIl30llA22oWyvrZ+Q3lZ2YFUHjPyb2HshxJK/TMEU/28W4mlUCxzAwjhoe88GJRJdGNjQgwmxtjBRJyXfvKNiPKYp25EelJYYaG+URYmcDNLFPNeBQUFUrd4cUL7GFACOhxlmciaujr9+ebKhXPntPhGlGPVwq+qqeHJmQBDAwPBhsWM+5kq14qqKikrL9f/x6IBs96zx8ZkdHhY76+/vz/s0Aqcc+VVVfo7SxY9Fy7IuDqWaDEES0TaZgtUJIlMTSlkH9uOujYm8UVvHXrqzEQaUxcmMjEnJolTjWEjlf7A99yUyH6s8ZVBT/rUmTPy8PLlkufxZM8FjMlESiiHpq/f7XrlnBjxxFlgmD5/HVobQ32Terb321pWSVlR5i8hMjo+oo8Xx23RHkP6IPuM42YllLvTcewm3xZSIegKUT2qiw5iuVeJpS/KjaEpxYfrs1rh7jb5AzPAY52w85g6hrhTQ6Vj3evnv7sjOF4ynEwiCnn0J4/MmJRTom6CpapidkOwksmIEoJ+X/z16/p162RBZWDYDLrQzWzantDumDlTpWTk6qvWBX9+5pf/L3C/wNJrZ87E1vBT30VldbXMZ8I1CNDQqFu0SBbMUjZY1nRkZCR8Ra/O70J1fmODiC5aujTkdZcuXpQetU2o//f19AQbVnguvhM3MUJZXFws9WHEBkLS19eHD4r7VIuqJxGl3CAkIYoKi3QwRVcoVm8feu1MN3UyGZ+elJIQlid5IdBDU1NyrxK0XUuWSF4KG/mJMoUu7+5uORw6MSeuxoongQJrUwWmL54LpybkyR+ekls3L5HKksy9qQ75B/Rx4nhNiynagFNLxsyYyQ7vytU+mWUMJW4qGI8BMBMcKQvcTOSKffaplrp/LLAUFR7VhYeuhG0Rjn/GDPVUYaVHalVi1+7S/vbF2XJsUq/ZhAk+sb7g2UOH9Wa4/K0fSO6NS0niga9+JiiLmBSEVEYGdIUjKmlAZVm5YEHEaAwiOCNDQzI6OjprBC4c2DcqyyJEkSorXfuM55QMosIHqIjvfNvbdDdTJOypWK6+ar2sWB6oVESJnvn9Xc1/NP37BDmljuvRPT8ISKU6HnvaIyOVoO1P/yxyI1WVc8e/PyWHDh/W4owN0pPpku8m+G4vqgrIHsGDCK5YtWpGBLJXNSzQIIgkkLFSqYSxprZWvw+EFZtpBJw6cUJfB2jEYINYLqx3N7KF8/iu5ndG/HvH00/JgYO6Td2o6skdsUwAzXG6bP+vlgRWd8OQMWwmaom6L3qwbVL6BvqDQ88Aop/hVt7RjV91PQcbiYF7bNdcPrQ1wXm19iR1LJ9X18n9dXWSV5K5PbtT6jr+hrpGn57uDeiMZWLOnKXSKrBWy8SbTh4ak/1yVm55x7jUlNdlXEH1Dl2S3+y/IDhOc5Kr449FNuwSsz+a1KByQtjcllRVSyVaXG6BdAP+Xn+wNaX2fes8uTHtkvi7Ix5JKHK16kq5+j3JrQfQff3bh+4P/nz13W3BlD342+/avzDdFa4kpXrhQi1+TolEdCiGLrnoNxN10zNiZCI+iDItVfKGyjuhhtzgYFAoN1zXKE1veGNOnZCQ8Ntv+wMdTTUiiuhZVW3uL3WJz3ni2LEQQVy6YkVIRBKSd+bUqTlLpJN+dc7328bpLqipkcVLlujG1porA9fQGdVo6FXnMc7n00o08Zylc2yInI7xeZdftsZIpUh6Mm9kGo/ZghsYp7g90WAHeuyWLVkqXSePRxDDEbmkvnendEIkq1WDPJJQ6vuVLd2Otb74I3P94JYn6XzUiPx99dIluUcdR36C99SkCqU1+/xn03LdlWik3TOHAtuoCgwDUr0QtgMLLsk1t/hlUdWyjCmoC/1n5Xf/3idHngkpqIZkvZ9ZEgontRkPYnJqxQKeG6uITkaJRjWuX4sWRmsudH9bM7+Tut7njbdv0ttvzo4mtXAgi5GE0hmdrFaCYh8XCfnzqRuTGyIZDUgrxMG03JevXq27IRPBukmTHKD7zBnd7RxJJo3QpSxooN7LvJ85FggkNnMsZkMEtSKGvHypQN2XMdlzc5wvc633J1Xg3q0+a6cl2E1KCHd5V67udEu47RNhDWbiTVVFZUy9hQgAGRHFhCBLPne6cXzWjHDd06YjgL298hHVKCvIkPNQu8TgoDylth9ONwDnlDnGM8cCazBiacRt3c0nZPGCFZKfl5++QpqalHO9p+TwMyN2oYy3oDpkelDxrVYLK6ZBxvbxICYtUFjBCF3wPkRO0d09QzptrX4ryfr+GC7qDlaFmQMm5ASjGnd8IKxQIipZW18fjE7GI5MF6jVYrQpbLBY+oVd4mgy7SpX9vDt65IieELGqoSGpEyJIZoLo5NEXXwxGn9ENvVxJWiIy6bHOz4IYKnzMFJmwzs+JKA1pREax2eUSUcxjR4/qRhK6x53HnU7fSuA112Xp6RNccUax5/zF8xvqa+shWnMeM2eEMpZoZKRAjpmrYOpexcZocxXi9KRgAE6L5cCAfGRqSgow1Cg/fZ4k6hgm+vvlaXV//9p0pBafu2EuE808LhTYDLGcvOmE1FUuScvMcEzIQYTyyH/6nUIZV0FBxlQLq0sCecTQwmpLpIVVVFQUIpUQSIikczAwWkgYhxlpRR7sw0Q9Ia3WxdMuJKU886WPubIfJCxH3kmA2d/2CKVdKDE2DN14kchT5ohlvDwFieVs1RKK9yqclkz/2LhMhZn3CaE49tJLuksccknmB5iBjUaFwR6dRDc3zonZwDlarDMSxN/ZkGdJKLZgY1ydh7OtNAKxvNDdLQ1r1uixnegWN9KLrnPIsekqT5tRrl/bYPUiNcXiThJYUGK2+itTUwrhs3apY8OQM51JZXBo6MDY+JnmZYuXznnVt1XLVyY8dwF1sV0oEQhS+4JQuh6IsXuSGbMIsURXeF4axmFPqWtoEkKpjsVNoXRFKiOJpdx0ViqKq2RB2cKUFVT/iE/6hn1zFkobGFxnclLuU1LXrGRu31xbVQAXAiQyXERyRpRAVfQhranAuK02dfJ3zYdKLYF1zFHQG93qhl/b/FEZ6nZvLd+C4tKQ1Xowu9uANDYQSkQnL54/H3HSDSro4qLCqNHIKXXjcgoiKvm8vLyIkllaXKQjRKP+Mb2O7IwGzuCg/P7wYfFefnnCXeIkO9ARSptQojFhxtlC3C6Ergmc0Dk6iRM0jnMUDShseB3O0XANIEQmX1TnaIM6RxFZR9QS5yqO1wztSHfDyOpFcktgMjWlkD1IgxxdehEVv9+/p+vk8b3elaurJcH0PaYejfucVvdUpOYzXd56rObipT61rwY3I5QxiSXO9eJiyS9N3WpoU6OjMjk8nBShdE0qI4nl2pv6dOQwFeMsu/tO6zyULgqlGQ9ick5VqxNxjzr5mouKivYksj9EFxFej2d9cEQ0sfC9GUOJ1xcVFm1XJ//OKDeEaknvMo2tLu4v3hYtnotlwDa68eaIKmJLBsg9aVbOwfhJVICICF6apbIuKYoc9UEUZ2x8ImxFGwlEOrE5I0R4H1TcI6Mzu90nLNlYs3YtxTKHMeNqASKUsQglXBDnTjgpxGmJ83N8PPY1jSNF4/PVH9AAQnR91B8+DQyiqEYsMVMcUVdELNEwwvhQe5oiknSJRj1cYy3biMwlmzHpBssdL120xCsudIdHk0lkaLEPN0Ngp6qyKmWLiUQSywl1Xuru8LykTh2QyYEBnTYIE3L+eboHzDWhdFUqw4nlUO+kbLhd5JWeLi2WhQXu52mCSEIogUMoXZmUg4HRVje4HgOiBG+PksLtK5YuvzfeiwATHuIRSlwAJiErsFIixBqe3yPpm33YosrsuIst53jXMe+UONfI/eXPHtNbOim1KuzeCGu36spaVaLhbjsjjqhiXV2tNN95p7zhlteF3ddvDnTKz//vv8lhJYao5LGFiyyh4i4rKZLh0TEd9XTSpSptdCXmJ9j9TjIX5IA047gxFtHe5R1JKHEOQSjDyaQz8r1ONUiaN71DrlKP4Xj6F/8he370I7lw4aLu7saGbvCiwtB7aCC6XqjP0UhifMW6QC5SRCyRNWHCynOJZPpsFKVcLtED2GbS3o2OjjZCLpO1eg4kEnWpfXJreVmZr762vjXepRhd9KTpyTsQy7IymejtlfyKiuQkSlefHeMnEW3Yo65fx6ScBjeT9XuSWWCYFY7Va268s1SLX1Vptav5LE13NzjwsxFn2qAGFy8CSFyeugjQBds4Pj7+AC6CBZVVnTXVNa6Lm3NGGy6yRXX17eoCiCf612qJmDcN940ON7tiUrGO+eLFi+Wy1akvKqyPbZYyxE0Vq5GYyRAzGiVhhBKVNITS8Cfvebfc/gdvnvFaMynCTHZ4zYZGvZnK++Gv79b7Gh7x60rbPoYt8N6FMjLqnxEBxbGeO3t2zilbSOZhn+Vtj+hhzGL4Rk94oXSOgfzwB1vDNnYCXdqTQfHEc8zzcH7iPMWksvEJvz4f821RnTwdtQwvljhH7VFJRCzPWYntIcdunrsvvXzU2bglke/rJkMJZsHvVtJX3W1bNx09exWqoY36L9Zubogj5h+YnM6hDZ58X0VZ+fbLVi3bme7Pbk3eCYolcll+WgklIolud4eb7m6A6KQjbZDrY0A8yS6ws0fH5T8eHZLX3VWmBXBwdEBHLecyOxw3HkzGQZQSYP+OxOYbk3QRbLB3K/f292GLa3zkbCKJqKS9NVVUVOSrX1jXVr+wsj2BY+0Sd9eWzUVQrnpwe09Pj1zx5tulZkGVq0nro4HVYuzrYw+iNRmGosKCmUI5FSqUD/71/9IRymBrvKRIiiK0ev3j4zI44g9W3hDM+z75KZ2vDRN18vI8IbNz8d6Fal/4mxN0Jzor5hLbDHGTx9GeZDwXOKQaBPZk6ZUZlCZkrqB72CyJaFa2Mb+PlHuyuNATRigng0KJcxPnqJ2qspKIs8CHVCNm1DrfIKKIvN/3yf+hf8aQDEhknkMsPZ6CsF3rEGQjlUiebqQSUUuJQyrPK+lBkn4n1oo6IQ3raInPVV2CLuBNsVQPatuVq5k8rJRxe60y8Vr35BZMTA1MTr0Y8bWRclY67vHbrfowo7A8SUdrkceyTZ0/O9Q9BBLoVnc4JuNMWUEKjJ90JDZPSqAmz9mlledin74pMH1jqsqXN39oOulnbcUiKSmMP8xtZncb9v/zoPSeD4rYXuSFStVJYbWwdoSLBqKbG7O0IYlm1jZaXqhs/eqLRSsqwnJQOPlbczkVkDXr0Ux42pjOz2o/R9etXSfXv+Z6HTGpqChPeEZ1PNhXkSlXN5FIUllaMjNKiQrXpAL6xMc+Kq+9/jUhf8c4tHJENx3XNK75/uHRGSlanj98WP76bwIpj1DRFxfNlIShkfCrWdgncARvaGGSZMcKVi4ptvJbhqmwXcO57J75LuKhwJphnEtDACCPZjylfeWaSGMpcYphfKMT+7CJ7f/zfmlYvdrRWPLoc1TCNJj6h0dmTBT7yc9+Lt/9/qOBe2yYrvBIY4Cd5yiGbZjz8qprrolaHvbnR5M/te2M1p2o7oHIvxRvt13IWHXHfTSZE3U64lmdLIl1RqNVZg84pPG4Vfad2VhvYuUlCYwxlTp13/2CqgfKrHt2orPDMW4SUU/DF9X/bUsvuhp4czpkUlc5tzLK4wt/AGtu//TLA1osC4vz5OJAt045hNRDsQKZhFQCdKv/2z8N6kdzUcW7RqWbLSybZGJ96iYljNVOaZxueYXchPD6x6x9keg3lli+l444z1Hs13v4yGGdAupV175KfL3TElOoKq5CT2EwEuImU1OTs1VQ1fZI4cwXT/937bp1MqJatyW2GxDGSfrGh2NrrClBXb5qusKPlBMQsmn7W5dpUEFCnFIJycIMcbuoRBMZIyznbd1gdnlDRNQNeUN3KCQByy2GE0mswrIgynreaCDm6ljS0dgaAsFzNFLPk73CqVHyPqYaGoW2MkPkO1z0OxzDqjG+aMkS275nPid/ZlDEF07e4v3ecB6HWSVoLt2H7UYk4mC2VV4yNqWQS3Ut7ukdVj3wgO33rdn+2aylr+FJO9ANjoglxBKCicTkGGOJsZaxgtdMWTmNsfb4Z/r7dfe6Oe8SWXoxHjwpKDCsgYnKZzcE0IglIpcQxFgm8dgn4+iCUoIKobTRikXcM+DED5FM6wLYZmtZud6ajEHEGiXJs+qcbxkln1oinyGudcyttcf3quNojvEcxThgPV724LMHBXL5h7f9odTU1ATOP1XpjcVY8cXLuG38pCNK2WlrmUfl+eeel6uvuVrLYXlx8YwxkZGAIA6MjOrK/+WjR0PkMdLzHcfonS2C5SYYG4cE1qnAvlLLfMfeGCgJTXy/11yXkxHSDaAhZsQS63+LEnWcW2XFRTElP9fiqRrnw/5AxNPX47PtO0yFGnocHdb5qa8he6PH/pleeO65RIplTnWOmazi4teU0SmFSNQ6aKflSXsgghBLjLFcp4QSUccJde1Em8Sjc08iOmldAxBJCOXQVGoDb54UFVi7VWA6VA8hxOSdJWsCbw9hLCuqCLt2OCKaI2PTycMvnpqQXzwaskLNRrX/Dp6WM24IdplN9XvjoTnN0VdfnOfoBitiucfv91c//tPH9e8xgWdNwxr9OJcxszHSJtOD+/G4w1Taw6OjUupY7rCwsEAmRgOS99DXvia7HvxbjLtQkjgSrNARFQomOJfAeGSMc0PEyB5Fmhwfk689/I/TNwbPzAp/1B/S9b3XWoKsiVdbzrLPCFgE8dpsiVvTlJUzstgxUQdDMEwkctff/Z184XN/qRs+6Nq2n6NoBJloZ2CVpwl9jtoZVhXmN775zZB9h1Sq1jE47gHeKPLYGYfcdbo5S5YQRx20V91PMc4RAQ7dZY1Z4W+wlurVk3iwiECYtcMnh4ZkynZ/Rlf3FwdCVuprxv5T8Tk8KSywDlVgweSnv/zRsKy9uVjW3hQosCH/gJZHdIcjaumMToIwOSg3qP128XQMy+o0v79r0dF41zFPdFyN1TipUeepyXPZcu7cOcGWKh+3N5DUcWw3Ujk1lSfDShaL1Q3GTCTKt2bbmsk699733/SEhhtvvFF3haOS9Y/PHmHF63/1y1/p2bUGjFOzR5Gm9Di1UZmSENHcbiszkptEHWCvzlGIZVNABqf0OYq13s04Xsji1FSBHoqB1ED3fOwT8um/+HNZ3dCg5dKcoxHSTAZmdatz9F9+8lPZ89iPQs5b+1jhwNh1VTfkhYhmayrH2BPigid12j0Jk2sQcWy2egjQra2jlpWV6lQvmBGdBI4clKAhlZ6U1Ik6s9yIjpkWJKKViFpGAxKKmeQWSZkKnxRLSGP3tzVTfbOkNq1QZ7QIZSZN1Ml01LUCqZw2vqkJLZWQS3OtRssBiC5B8zfkEYSMvnDkiKqkf6zzVBrC5anEpDLdRR9aWbehu4bfDrHO0eBEA302Tk3qSW5FRdNDmnD2OVNSIeNA86Y7ZdXKlTo6af5mzlHkUoVInjh5Mvga5wSyQHTSH8iaEXqO5nwP1nyaqBPhuBBAyMvh60oPydL3c49Hd4dHwzHDGyK5IdnR9ZRO1JnFxjGGDcm5N0MU0R1+6/vK9AQeJxiHuf+fh/Q4Sou9bH3GhjW2sZ0lkdUtVwwdkaBYqooTFSgiQpDLIr2mcn4wP6BJZA5ZPPylIzG9h8daUScvXEWN34ZW1tsplMRxjmKiQW+g8Rw4X9AQGR8e1hJYZDWAzPKfGJ+MIRiQRmxRIx9hVtSZ1Kvo+K0KLW/eCSWZF9fVBtNgQ3f2Pb29OuVQWYTA3/39/XJ8IvmpFaORn8YCgxjqsSxmZrhNHDVIFeT4fRuFksxHsZRAztFAixNjz9RmuvyGVOUNyURFju5GrIBjNiSJhnCapRgR5cHv7M8pUr/HJBjsw+wrEPkJvI+FGW6yjd8ICXOO4ryYrsQgeXmBTAH28wrnGYZXhJyj6vzEeWnOUfxsP0dLrUk9Y5iwY+1LD8eAUFrvYztHayiUJJcabBJYyERPuIFYHneMNUb3uOP329MllDpIkeYCw4wn3AD0wFRELDfcXiIr1xfKywf88lzHqP3pqNC4QgGZrzeXLgmM92wRHbW0RWemJgNj0/zhc0gikmnatpMTkdMFWTZgr6QNGZFdgWT8OYp7ed507tfw52i4s9Q+hhd14yTPUUKCQQXLk3TiWEQk31daKrcXF8tvxsZkZ2iqtrRH6T0ZUGBmYCrE0ovlFrHZ6JIUjAsgJFtuMOoBNxmMtcEQEm9oBTtlDdq2zeyOWkHnSZg5Gbjemhn1IQmco3pinTWJB4JZHe0cnUjsHO20ZJLBBjIfggp5Zj4KJuI4JuO4voZ3osQ1UceqyA6E+VNwnKMZK8nTgJDw14m6RqKtplFjVcabw7w20jVICCEkPMGk3/aJwiR00qV9hbnZnmdnThN1rKgi+uqbHIbcbvsZX9xBflfTLKiqWlBeUV59+vSZ4yyNeY25KDdI5GTuGGDtU9eZ8zraOcs1SAgh84bL16y57qWjR2P1DKejbJQ4FtPIYXxhRLHNqneqozwvImlJKUQIIYQQQrIbp0Pms0gIIYQQQshcoVQSQgghhBBKJSGEEEIIoVQSQgghhBBKJSGEEEIIIZRKQgghhBDiAp5MPKipqSkkeJ4tObQvLy+vcw77x74b53iYneoYfEn8jFFR79+R5jLoUsfQla1lYB1DU5rLwCtzT8Q713NxrmUw1+sxE8pgrudiJtyTeD3yeuT1OH+uxzl9xmQKXMiW5mPZOhUfe+L9kqbcpynOY9jt8vvvS6Cc3WZrnO+/zeX370mgDHpcPoZtcb5/SxK+B2+cx7DP5ffPxutxTzqvR1ReSSiDFl6P6b8eEygDt6/H3fHKbBLOxcYsux69GXBP2pbM7znpDplhUokb7IFYb1zxnrBJkLrdCbw/KtJjbt281bY5gWNwsxI5YLXqkvU9u16JJqESOZaA0FW7XIlsS6AMNrtYmWfz9diTQ9fjvgSvx2M5dD1mwj2J12NmXI+JlMGONAd9vHFcj8cS+YzJlMq8dIskIYQQQgjJfjhRhxBCCCGEUCoJIYQQQkj6+f/uCulaNvHYSQAAAABJRU5ErkJggg=="/>
</defs>
</svg>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment