JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbrdx-php/composer.json000064400000002052150364334060010471 0ustar00{ "name": "mercadopago/dx-php", "description": "Mercado Pago PHP SDK", "type": "library", "homepage": "https://github.com/mercadopago/sdk-php", "license": "MIT", "version": "2.6.1", "config": { "platform": { "php": "7.1" } }, "require": { "php": ">=7.1.0", "doctrine/common": "^2.6 || ^3.0", "doctrine/annotations": "^1.8" }, "require-dev": { "phpunit/phpunit": "^7", "symfony/yaml": "~2.5", "phpmd/phpmd": "@stable", "squizlabs/php_codesniffer": "2.8.1", "sebastian/phpcpd": "*", "doctrine/orm": "^2.3", "vlucas/phpdotenv": "^2.5" }, "autoload": { "psr-4": { "MercadoPago\\": [ "src/MercadoPago/", "tests/", "src/MercadoPago/Generic/", "src/MercadoPago/Entities/", "src/MercadoPago/Entities/Shared/" ] } }, "scripts": { "test": "./vendor/bin/phpunit --testdox --colors=auto tests" }, "repositories": [ { "type": "composer", "url": "https://packagist.org" }, { "packagist": false } ] } dx-php/tests/FakeApiHub.php000064400000001566150364334060011572 0ustar00 'authorization.json', '/v1/payment_methods' => 'payment_methods.json', '/v1/payments' => 'payment.json', '/dummies' => 'dummies.json', '/v1/dummies/search' => 'customer_search.json', '/dummy/:id' => 'dummy.json' ]; public function getJson($method, $endPoint) { switch ($method) { case 'GET': { return $this->getFile($endPoint); break; } case 'POST': { return $this->getFile($endPoint); break; } default: return ''; } } private function getFile($endpoint) { return file_get_contents(dirname(__FILE__) . '/json_files/' . $this->_files[$endpoint]); } }dx-php/tests/json_files/dummy.json000064400000000470150364334060013274 0ustar00{ "id": 1340404, "title": "Title of what you are paying for. It will be displayed in the payment process.", "description": "Item description", "category_id": "art", "picture_url": "https://www.mercadopago.com/org-img/MP3/home/logomp3.gif", "currency_id": "ARS", "quantity": 1, "unit_price": 100 }dx-php/tests/json_files/payment.json000064400000004200150364334060013611 0ustar00{ "id":1340404, "date_created":"2016-08-19T13:50:17.000-04:00", "date_approved":"2016-08-19T13:50:17.000-04:00", "date_last_updated":"2016-08-19T13:50:17.000-04:00", "money_release_date":null, "operation_type":"regular_payment", "issuer_id":"1", "payment_method_id":"visa", "payment_type_id":"credit_card", "status":"approved", "status_detail":"accredited", "currency_id":"ARS", "description":null, "live_mode":false, "sponsor_id":null, "authorization_code":null, "collector_id":192627424, "payer":{ "type":"customer", "id":"204943005-G4n3trGt71WZEb", "email":"test_user_58666377@testuser.com", "identification":{ "type":"DNI", "number":"1111111" }, "phone":{ "area_code":"01", "number":"1111-1111", "extension":"" }, "first_name":"Test", "last_name":"Test" }, "metadata":[ ], "order":[ ], "external_reference":null, "transaction_amount":100, "transaction_amount_refunded":0, "coupon_amount":0, "differential_pricing_id":null, "deduction_schema":null, "transaction_details":{ "net_received_amount":80.41, "total_paid_amount":100, "overpaid_amount":0, "external_resource_url":null, "installment_amount":100, "financial_institution":null, "payment_method_reference_id":null }, "fee_details":[ { "type":"mercadopago_fee", "amount":19.59, "fee_payer":"collector" } ], "captured":true, "binary_mode":false, "call_for_authorize_id":null, "statement_descriptor":"WWW.MERCADOPAGO.COM", "installments":1, "card":{ "id":"1461592544092", "first_six_digits":"407559", "last_four_digits":"3764", "expiration_month":3, "expiration_year":2018, "date_created":"2016-04-25T09:55:00.000-04:00", "date_last_updated":"2016-04-25T09:55:34.000-04:00", "cardholder":{ "name":"nam", "identification":{ "number":"12345678", "type":"DNI" } } }, "notification_url":null, "refunds":[ ] }dx-php/tests/json_files/authorization.json000064400000000046150364334060015040 0ustar00{ "ACCESS_TOKEN": "ACCESS_TOKEN" }dx-php/tests/json_files/customer_search.json000064400000001077150364334060015333 0ustar00{"paging":{"offset":0,"limit":10,"total":1},"results":[{"id":"227166260-QeyHHDJ8TZ4L3R","email":"test_user_99529216@testuser.com","first_name":null,"last_name":null,"phone":{"area_code":null,"number":null},"identification":{"number":null,"type":null},"addresses":null,"address":{"id":null,"zip_code":null,"street_name":null,"street_number":null},"date_registered":null,"description":null,"date_created":"2016-09-09T14:08:58.603-04:00","date_last_updated":"2016-09-09T14:08:58.609-04:00","default_card":null,"default_address":null,"cards":[],"metadata":{},"live_mode":true}]} dx-php/tests/json_files/dummies.json000064400000000745150364334060013611 0ustar00{ "paging": { "limit": 30, "offset": 0, "total": 1 }, "results": [ { "id": 1340404, "title": "Title of what you are paying for. It will be displayed in the payment process.", "description": "Item description", "category_id": "art", "picture_url": "https://www.mercadopago.com/org-img/MP3/home/logomp3.gif", "currency_id": "ARS", "quantity": 1, "unit_price": 100 } ] }dx-php/tests/SDKTest.php000064400000002647150364334060011115 0ustar00load(); } MercadoPago\SDK::setClientId(getenv('CLIENT_ID')); MercadoPago\SDK::setClientSecret(getenv('CLIENT_SECRET')); } /** * @covers MercadoPago\SDK */ public function testSettings() { $this->assertEquals(getenv('CLIENT_ID'), MercadoPago\SDK::getClientId()); $this->assertEquals(getenv('CLIENT_SECRET'), MercadoPago\SDK::getClientSecret()); } /** * @covers MercadoPago\SDK */ public function testDoGetToken() { $this->assertNotNull(MercadoPago\SDK::getAccessToken()); } public function testSetMultipleAT(){ MercadoPago\SDK::setMultipleCredentials( array( "mla" => "MLA_AT", "mlb" => "MLB_AT" ) ); $this->assertNotNull(MercadoPago\SDK::config()->getData()['mla']); $this->assertNotNull(MercadoPago\SDK::config()->getData()['mlb']); } } dx-php/tests/resources/PreferenceTest.php000064400000002263150364334060014556 0ustar00load(); } MercadoPago\SDK::setAccessToken(getenv('ACCESS_TOKEN')); } public function testCreatePrefence() { $preference = new MercadoPago\Preference(); # Building an item $item = new MercadoPago\Item(); $item->title = "item"; $item->quantity = 1; $item->unit_price = 100; $preference->items = array($item); $preference->expiration_date_to = new DateTime('tomorrow'); $preference->save(); self::$last_preference = $preference; $this->assertTrue($preference->sandbox_init_point != null); } public function testFindPreferenceById(){ $preference = MercadoPago\Preference::find_by_id(self::$last_preference->id); $this->assertEquals($preference->id, self::$last_preference->id); } } ?>dx-php/tests/resources/PaymentTest.php000064400000014604150364334060014117 0ustar00load(); } MercadoPago\SDK::setAccessToken(getenv('ACCESS_TOKEN')); MercadoPago\SDK::setMultipleCredentials( array( "MLA" => "MLA_ACCESS_TOKEN" ) ); } public function testCreateApprovedPayment() { $payment = new MercadoPago\Payment(); $payment->transaction_amount = 141; $payment->token = $this->SingleUseCardToken('approved'); $payment->description = "Ergonomic Silk Shirt"; $payment->installments = 1; $payment->payment_method_id = "master"; $payment->payer = array( "email" => getenv('USER_EMAIL') ); $payment->external_reference = "reftest"; $payment->save(); $this->assertEquals($payment->status, 'approved'); return $payment; } // /** // * @depends testCreateApprovedPayment // */ // public function testRefundPayment(MercadoPago\Payment $payment_created_previously) // { // $id = $payment_created_previously->id; // $refund = new MercadoPago\Refund(); // $refund->payment_id = $id; // $refund->save(); // sleep(15); // $payment = MercadoPago\Payment::find_by_id($id); // $this->assertEquals("refunded", $payment->status); // } public function testCreateAnInvalidPayment() { $payment = new MercadoPago\Payment(); $payment->transaction_amount = -200; $payment_status = $payment->save(); $this->assertFalse($payment_status); $this->assertEquals($payment->error->causes[0]->description, "transaction_amount must be positive"); } public function testSearchWithInvalidQueryFilters() { $filters = array( "incorrect_param" => "000" ); try { $payments = MercadoPago\Payment::search($filters); } catch(Exception $e) { $this->assertEquals($e->getMessage(), "the attribute incorrect_param is not a possible param"); } } public function testCreatePendingPayment() { $payment = new MercadoPago\Payment(); $payment->transaction_amount = 141; $payment->token = $this->SingleUseCardToken('in_process'); $payment->description = "Ergonomic Silk Shirt"; $payment->installments = 1; $payment->payment_method_id = "master"; $payment->payer = array( "email" => getenv('USER_EMAIL') ); $payment->external_reference = "reftest"; $payment->save(); $this->assertEquals($payment->status, 'in_process'); return $payment; } /** * @depends testCreatePendingPayment */ public function testFindPaymentById(MercadoPago\Payment $payment_created_previously) { $payment = MercadoPago\Payment::find_by_id($payment_created_previously->id); $this->assertEquals($payment->id, $payment_created_previously->id); } /** * @depends testCreatePendingPayment */ public function testFindPaymentByNonExistentId(MercadoPago\Payment $payment_created_previously) { $payment = MercadoPago\Payment::find_by_id("123456"); $this->assertEquals($payment, null); } /** * @depends testCreatePendingPayment */ public function testPaymentsSearch(MercadoPago\Payment $payment_created_previously) { $filters = array( "external_reference" => $payment_created_previously->external_reference ); $payments = MercadoPago\Payment::search($filters); $payments = $payments->getArrayCopy(); $payment = end($payments); $this->assertEquals($payment->external_reference, $payment_created_previously->external_reference); } /** * @depends testCreatePendingPayment */ public function testCancelPayment(MercadoPago\Payment $payment_created_previously) { $payment_created_previously->status = "cancelled"; $payment_created_previously->update(); sleep(15); $payment = MercadoPago\Payment::find_by_id($payment_created_previously->id); $this->assertEquals("cancelled", $payment->status); } public function testPaymentWithCustomAccessToken() { $payment = new MercadoPago\Payment(); $options = array( "custom_access_token" => "MLA" ); $payment_status = $payment->save($options); $this->assertFalse($payment_status); // Marlformed access token error $payment_status = $payment->save(); $this->assertFalse($payment_status); } private function SingleUseCardToken($status){ $cards_name_for_status = array( "approved" => "APRO", "in_process" => "CONT", "call_for_auth" => "CALL", "not_founds" => "FUND", "expirated" => "EXPI", "form_error" => "FORM", "general_error" => "OTHE", ); $i_current_month = intval(date('m')); $i_current_year = intval(date('Y')); $security_code = rand(111, 999); $expiration_month = rand($i_current_month, 12); $expiration_year = rand($i_current_year + 2, 2999); $dni = rand(11111111, 99999999); $payload = array( "json_data" => array( "card_number" => "5031433215406351", "security_code" => (string)$security_code, "expiration_month" => str_pad($expiration_month, 2, '0', STR_PAD_LEFT), "expiration_year" => str_pad($expiration_year, 4, '0', STR_PAD_LEFT), "cardholder" => array( "name" => $cards_name_for_status[$status], "identification" => array( "type" => "DNI", "number" => (string)$dni ) ) ) ); $response = MercadoPago\SDK::post('/v1/card_tokens', $payload); return $response['body']['id']; } } ?>dx-php/tests/DummyEntity.php000064400000002516150364334060012117 0ustar00assertInstanceOf(DummyEntity::class, $entity); } }dx-php/src/MercadoPago/Entity.php000064400000034662150364334060012720 0ustar00setEntityMetaData($this); $this->_fillFromArray($this, $params); } /** */ public function Error() { return $this->error; } /** * @param Manager $manager */ public static function setManager(Manager $manager) { self::$_manager = $manager; } /** */ public static function unSetManager() { self::$_manager = null; } /** * @return mixed */ public static function get($id) { return self::read(array("id" => $id)); } /** * @return mixed */ public static function find_by_id($id) { return self::read(array("id" => $id)); } public static function setCustomHeader($key, $value) { self::$_custom_headers[$key] = $value; } public static function getCustomHeader($key) { return self::$_custom_headers[$key]; } public static function setCustomHeadersFromArray($array){ foreach ($array as $key => $value){ self::setCustomHeader($key, $value); } } public static function getCustomHeaders() { return self::$_custom_headers; } /** * @return mixed */ public function not_found() { return $this->_empty; } /** * @return mixed */ public static function read($params = [], $options = []) { $class = get_called_class(); $entity = new $class(); self::$_manager->setEntityUrl($entity, 'read', $params); self::$_manager->cleanEntityDeltaQueryJsonData($entity); $response = self::$_manager->execute($entity, 'get', $options); if ($response['code'] == "200" || $response['code'] == "201") { $entity->_fillFromArray($entity, $response['body']); $entity->_last = clone $entity; return $entity; } elseif (intval($response['code']) == 404) { return null; } elseif (intval($response['code']) >= 400 && intval($response['code']) < 500) { throw new Exception ($response['body']['message']); } else { throw new Exception ("Internal API Error"); } } /** * @return mixed */ public static function all($params = [], $options = []) { $class = get_called_class(); $entity = new $class(); $entities = array(); self::$_manager->setEntityUrl($entity, 'list', $params); self::$_manager->cleanQueryParams($entity); $response = self::$_manager->execute($entity, 'get'); if ($response['code'] == "200" || $response['code'] == "201") { $results = $response['body']; foreach ($results as $result) { $entity = new $class(); $entity->_fillFromArray($entity, $result); array_push($entities, $entity); } } elseif (intval($response['code']) >= 400 && intval($response['code']) < 500) { throw new Exception ($response['error'] . " " . $response['message']); } else { throw new Exception ("Internal API Error"); } return $entities; } /** * @return mixed */ public static function search($filters = [], $options = []) { $class = get_called_class(); $searchResult = new SearchResultsArray(); $searchResult->setEntityTypes($class); $entityToQuery = new $class(); self::$_manager->setEntityUrl($entityToQuery, 'search'); self::$_manager->cleanQueryParams($entityToQuery); self::$_manager->setQueryParams($entityToQuery, $filters); $response = self::$_manager->execute($entityToQuery, 'get'); if ($response['code'] == "200" || $response['code'] == "201") { $searchResult->fetch($filters, $response['body']); } elseif (intval($response['code']) >= 400 && intval($response['code']) < 500) { $searchResult->process_error_body($response['body']); throw new Exception($response['body']['message']); } else { throw new Exception("Internal API Error"); } return $searchResult; } /** * @codeCoverageIgnore * @return mixed */ public function APCIteratorAll() { self::$_manager->setEntityUrl($this, 'list'); return self::$_manager->execute($this, 'get'); } /** * @return mixed */ public function update($options = []) { $params = []; self::$_manager->setEntityUrl($this, 'update', $params); self::$_manager->setEntityDeltaQueryJsonData($this); $response = self::$_manager->execute($this, 'put'); if ($response['code'] == "200" || $response['code'] == "201") { $this->_fillFromArray($this, $response['body']); return true; } elseif (intval($response['code']) >= 400 && intval($response['code']) < 500) { // A recuperable error $this->process_error_body($response['body']); return false; } else { throw new Exception ("Internal API Error"); } } /** * @codeCoverageIgnore * @return mixed */ public static function destroy() { //return self::$_manager->execute(get_called_class(), ''); } /** * @return mixed */ public function custom_action($method, $action) { self::$_manager->setEntityUrl($this, $action); self::$_manager->setEntityQueryJsonData($this); $response = self::$_manager->execute($this, $method); if ($response['code'] == "200" || $response['code'] == "201") { $this->_fillFromArray($this, $response['body']); } return $response; } /** * @return mixed */ public function save($options = []) { self::$_manager->setEntityUrl($this, 'create'); self::$_manager->setEntityQueryJsonData($this); $response = self::$_manager->execute($this, 'post', $options); if ($response['code'] == "200" || $response['code'] == "201") { $this->_fillFromArray($this, $response['body']); $this->_last = clone $this; return true; } elseif (intval($response['code']) >= 300 && intval($response['code']) < 500) { // A recuperable error $this->process_error_body($response['body']); return false; } else { // Trigger an exception throw new Exception ("Internal API Error"); } } function process_error_body($message){ $recuperable_error = new RecuperableError( $message['message'], (isset($message['error']) ? $message['error'] : ''), $message['status'] ); if (isset($message['cause'])) { $recuperable_error->proccess_causes($message['cause']); } $this->error = $recuperable_error; } /** * @param $name * * @return mixed */ public function __get($name) { return $this->{$name}; } /** * @param $name * * @return bool */ public function __isset($name) { return isset($this->{$name}); } /** * @param $name * @param $value * * @return mixed * @throws \Exception */ public function __set($name, $value) { $this->_setValue($name, $value); return $this->{$name}; } /** * @param null $attributes * * @return array */ public function getAttributes() { return get_object_vars($this); } /** * @param null $attributes * * @return array */ public function toArray($attributes = null) { $result = null; $excluded_attributes = self::$_manager->getExcludedAttributes($this); if (is_null($attributes)) { $result = get_object_vars($this); } else { $result = array_intersect_key(get_object_vars($this), $attributes); } foreach ($excluded_attributes as $excluded_attribute) { unset($result[$excluded_attribute]); } foreach ($result as $key => $value) { if (!is_bool($value) && empty($value)) { unset($result[$key]); } } return $result; } /** * @param $property * @param $value * * @throws \Exception */ protected function _setValue($property, $value, $validate = true) { if ($this->_propertyExists($property)) { if ($validate) { self::$_manager->validateAttribute($this, $property, ['maxLength','readOnly'], $value); } if ($this->_propertyTypeAllowed($property, $value)) { $this->{$property} = $value; } else { $this->{$property} = $this->tryFormat($value, $this->_getPropertyType($property), $property); } } else { if ($this->_getDynamicAttributeDenied()) { throw new \Exception('Dynamic attribute: ' . $property . ' not allowed for entity ' . get_class($this)); } $this->{$property} = $value; } } /** * @param $property * * @return bool */ protected function _propertyExists($property) { return array_key_exists($property, get_object_vars($this)); } /** * @param $property * @param $type * * @return bool */ protected function _propertyTypeAllowed($property, $type) { $definedType = $this->_getPropertyType($property); if (!$definedType) { return true; } if (is_object($type) && class_exists($definedType, false)) { return ($type instanceof $definedType); } return gettype($type) == $definedType; } /** * @param $property * * @return mixed */ protected function _getPropertyType($property) { return self::$_manager->getPropertyType(get_called_class(), $property); } /** * @return mixed */ protected function _getDynamicAttributeDenied() { return self::$_manager->getDynamicAttributeDenied(get_called_class()); } /** * @param $value * @param $type * @param $property * * @return array|bool|float|int|string * @throws \Exception */ protected function tryFormat($value, $type, $property) { try { switch ($type) { case 'float': if (!is_numeric($value)) { break; } return (float)$value; case 'int': if (!is_numeric($value)) { break; } return (int)$value; case 'string': return (string)$value; case 'array': return (array)$value; case 'date': if (empty($value)) { return $value; }; if (is_string($value)) { return date("Y-m-d\TH:i:s.000P", strtotime($value)); } else { return $value->format('Y-m-d\TH:i:s.000P'); } } } catch (\Exception $e) { throw new \Exception('Wrong type ' . gettype($value) . '. Cannot convert ' . $type . ' for property ' . $property); } throw new \Exception('Wrong type ' . gettype($value) . '. It should be ' . $type . ' for property ' . $property); } /** * Fill entity from data with nested object creation * * @param $entity * @param $data */ public function fillFromArray($entity, $data) { $this->_fillFromArray($entity, $data); } /** * Fill entity from data with nested object creation * * @param $entity * @param $data */ protected function _fillFromArray($entity, $data) { if ($data) { foreach ($data as $key => $value) { if (!is_null($value)){ if (is_array($value)) { $className = 'MercadoPago\\' . $this->_camelize($key); if (class_exists($className, true)) { $entity->_setValue($key, new $className, false); $entity->_fillFromArray($this->{$key}, $value); } else { $entity->_setValue($key, json_decode(json_encode($value)), false); } continue; } $entity->_setValue($key, $value, false); } } } } /** * @param $input * @param string $separator * * @return mixed */ protected function _camelize($input, $separator = '_') { return str_replace($separator, '', ucwords($input, $separator)); } public function delete($options = []) { $params = []; self::$_manager->setEntityUrl($this, 'delete', $params); $response = self::$_manager->execute($this, 'delete'); if ($response['code'] == "200" || $response['code'] == "201") { $this->_fillFromArray($this, $response['body']); return true; } elseif (intval($response['code']) >= 400 && intval($response['code']) < 500) { if (!is_null($response['body'])){ $this->process_error_body($response['body']); } return false; } else { throw new Exception ("Internal API Error"); } } } dx-php/src/MercadoPago/Version.php000064400000000137150364334060013057 0ustar00 $this->id]); if ($amount > 0){ $refund->amount = $amount; } if ($refund->save()){ $payment = self::get($this->id); $this->_fillFromArray($this, $payment->toArray()); return true; }else{ $this->error = $refund->error; return false; } } /** * capture * @param int $amount * @return Payment * @throws \Exception */ public function capture($amount = 0) { $this->capture = true; if ($amount > 0){ $this->transaction_amount = $amount; } return $this->update(); } } dx-php/src/MercadoPago/Entities/Shared/TrackValues.php000064400000001024150364334060016644 0ustar00client_secret = SDK::getAccessToken(); $this->grant_type = 'authorization_code'; $this->code = $authorization_code; $this->redirect_uri = $redirect_uri; return $this->save(); } /** * refreshOAuthCredentials * @param $refresh_token * @return bool|mixed * @throws \Exception */ public function refreshOAuthCredentials($refresh_token){ $this->client_secret = SDK::getAccessToken(); $this->grant_type = 'refresh_token'; $this->refresh_token = $refresh_token; return $this->save(); } } dx-php/src/MercadoPago/Entities/AdvancedPayments/AdvancedPayment.php000064400000006512150364334060021512 0ustar00status = 'cancelled'; return $this->update(); } /** * capture * @return bool|mixed * @throws \Exception */ public function capture() { $this->capture = true; return $this->update(); } /** * refund * @param int $amount * @return bool * @throws \Exception */ public function refund($amount = 0){ $refund = new Refund(["advanced_payment_id" => $this->id]); if ($amount > 0){ $refund->amount = $amount; } if ($refund->save()){ $advanced_payment = self::get($this->id); $this->_fillFromArray($this, $advanced_payment->toArray()); return true; }else{ $this->error = $refund->error; return false; } } /** * refundDisbursement * @param $disbursement_id * @param int $amount * @return bool * @throws \Exception */ public function refundDisbursement($disbursement_id, $amount = 0){ $refund = new DisbursementRefund(["advanced_payment_id" => $this->id, "disbursement_id" => $disbursement_id]); if ($amount > 0){ $refund->amount = $amount; } if ($refund->save()){ $advanced_payment = self::get($this->id); $this->_fillFromArray($this, $advanced_payment->toArray()); return true; }else{ $this->error = $refund->error; return false; } } }dx-php/src/MercadoPago/Entities/AdvancedPayments/Refund.php000064400000002064150364334060017670 0ustar00data = array_merge($this->getDefaults(), $data); } /** * @return array */ protected function getDefaults() { return []; } public function clean() { return $this->data = array( 'base_url' => 'https://api.mercadopago.com', ); } /** * @param $key * @param null $default * * @return mixed|null */ public function get($key, $default = null) { if ($this->has($key)) { return $this->data[$key]; } return $default; } /** * @param $key * @param $value */ public function set($key, $value) { $this->data[$key] = $value; } /** * @param $key * * @return bool */ public function has($key) { return (array_key_exists($key, $this->data)); } /** * @return array|null */ public function all() { return $this->data; } /** * @param array $data */ public function configure ($data = []) { foreach ($data as $key => $value) { $this->set($key, $value); } } }dx-php/src/MercadoPago/Config/ParserInterface.php000064400000000477150364334060015723 0ustar00setHttpParam('address', self::$_config->get('base_url')); self::$_manager = new Manager(self::$_restClient, self::$_config); Entity::setManager(self::$_manager); } /** * Set Access Token for SDK . */ public static function setAccessToken($access_token){ if (!isset(self::$_config)){ self::initialize(); } self::$_config->configure(['ACCESS_TOKEN' => $access_token]); } public static function getAccessToken(){ return self::$_config->get('ACCESS_TOKEN'); } public static function getCountryId(){ return self::$_config->get('COUNTRY_ID'); } public static function cleanCredentials(){ if (self::$_config == null) { // do nothing } else { self::$_config->clean(); } } public static function setMultipleCredentials($array){ foreach($array as $key => $values) { self::$_config->configure([$key => $values]); } } /** * Set Access ClientId for SDK . */ public static function setClientId($client_id){ if (!isset(self::$_config)){ self::initialize(); } self::$_config->configure(['CLIENT_ID' => $client_id]); } public static function getClientId(){ return self::$_config->get('CLIENT_ID'); } /** * Set Access ClientSecret for SDK . */ public static function setClientSecret($client_secret){ if (!isset(self::$_config)){ self::initialize(); } self::$_config->configure(['CLIENT_SECRET' => $client_secret]); } public static function getClientSecret(){ return self::$_config->get('CLIENT_SECRET'); } /** * Set Access ClientSecret for SDK . */ public static function setPublicKey($public_key){ self::$_config->configure(['PUBLIC_KEY' => $public_key]); } public static function getPublicKey(){ return self::$_config->get('PUBLIC_KEY'); } public static function configure($data=[]) { self::initialize(); self::$_config->configure($data); } /** * @return Config */ public static function config() { return self::$_config; } public static function addCustomTrackingParam($key, $value) { self::$_manager->addCustomTrackingParam($key, $value); } // Publishing generic functions public static function get($uri, $options=[]) { return self::$_restClient->get($uri, $options); } public static function post($uri, $options=[]) { return self::$_restClient->post($uri, $options); } public static function put($uri, $options=[]) { return self::$_restClient->put($uri, $options); } public static function delete($uri, $options=[]) { return self::$_restClient->delete($uri, $options); } /** * Set Platform Id for SDK . */ public static function setPlatformId($platform_id){ if (!isset(self::$_config)){ self::initialize(); } self::$_config->configure(['x-platform-id' => $platform_id]); self::addCustomTrackingParam('x-platform-id', $platform_id); } public static function getPlatformId(){ return self::$_config->get('x-platform-id'); } /** * Set Corporation Id for SDK . */ public static function setCorporationId($corporation_id){ if (!isset(self::$_config)){ self::initialize(); } self::$_config->configure(['x-corporation-id' => $corporation_id]); self::addCustomTrackingParam('x-corporation-id', $corporation_id); } public static function getCorporationId(){ return self::$_config->get('x-corporation-id'); } /** * Set Integrator Id for SDK . */ public static function setIntegratorId($integrator_id){ if (!isset(self::$_config)){ self::initialize(); } self::$_config->configure(['x-integrator-id' => $integrator_id]); self::addCustomTrackingParam('x-integrator-id', $integrator_id); } public static function getIntegratorId(){ return self::$_config->get('x-integrator-id'); } } dx-php/src/MercadoPago/MetaDataReader.php000064400000004623150364334060014241 0ustar00_reader = new AnnotationReader(); return $this; } /** * @param $entity * * @return \stdClass */ public function getMetaData($entity) { if (get_parent_class($entity)){ $result = $this->getMetaData(get_parent_class($entity)); }else { $result = new \stdClass; } $propertyAnnotations = []; $class = new \ReflectionClass($entity); $classAnnotations = $this->_reader->getClassAnnotations($class); foreach ($class->getProperties() as $key => $value) { $annotation = $this->_reader->getPropertyAnnotations(new \ReflectionProperty($entity, $value->name)); if (count($annotation)) { $propertyAnnotations[$value->name] = array_pop($annotation); } } foreach ($classAnnotations as $annotation) { if ($annotation instanceof \MercadoPago\Annotation\RestMethod) { $result->methods[$annotation->method] = get_object_vars($annotation); } if ($annotation instanceof \MercadoPago\Annotation\RequestParam) { $result->params[] = $annotation->param; } if ($annotation instanceof \MercadoPago\Annotation\DenyDynamicAttribute) { $result->denyDynamicAttribute = true; } } foreach ($propertyAnnotations as $key => $annotation) { if ($annotation instanceof \MercadoPago\Annotation\Attribute) { $result->attributes[$key] = get_object_vars($annotation); } } return $result; } }dx-php/src/MercadoPago/Config.php000064400000012137150364334060012642 0ustar00 'https://api.mercadopago.com', 'CLIENT_ID' => '', 'CLIENT_SECRET' => '', 'USER_ID' => '', 'APP_ID' => '', 'ACCESS_TOKEN' => '', 'REFRESH_TOKEN' => '', 'sandbox_mode' => true, ]; } /** * @param null $path * * Static load method * @return static */ public static function load($path = null) { return new static($path); } /** * Config constructor. * * @param string|null $path * @param null $restClient */ public function __construct($path = null, $restClient = null) { $this->data = []; $this->_restclient = $restClient; if (is_file($path ?? '')) { $info = pathinfo($path); $parts = explode('.', $info['basename']); $extension = array_pop($parts); $parser = $this->_getParser($extension); foreach ((array)$parser->parse($path) as $key => $value) { $this->set($key, $value); } } parent::__construct($this->data); } /** * @param $extension * * Get Parser depending on extension * @return null * @throws Exception */ private function _getParser($extension) { $parser = null; foreach ($this->_supportedFileParsers as $fileParser) { $tempParser = new $fileParser; if (in_array($extension, $tempParser->getSupportedExtensions($extension))) { $parser = $tempParser; continue; } } if ($parser === null) { throw new Exception('Unsupported configuration format'); } return $parser; } /** * Set config value * @param $key * @param $value */ public function set($key, $value) { parent::set($key, $value); if ($key == "ACCESS_TOKEN") { $user = $this->getUserId($value); parent::set('USER_ID', $user['id']); parent::set('COUNTRY_ID', $user['country_id']); } if (parent::get('CLIENT_ID') != "" && parent::get('CLIENT_SECRET') != "" && empty(parent::get('ACCESS_TOKEN'))) { $response = $this->getToken(); if (isset($response['access_token'])) { parent::set('ACCESS_TOKEN', $response['access_token']); $user = $this->getUserId($response['access_token']); if (isset($user['id'])) { parent::set('USER_ID', $user['id']); } } } } /** * @return mixed */ public function getUserId() { if (!$this->_restclient) { $this->_restclient = new RestClient(); $this->_restclient->setHttpParam('address', $this->get('base_url')); } $response = $this->_restclient->get("/users/me"); return $response["body"]; } /** * Obtain token with key and secret * @return mixed */ public function getToken() { if (!$this->_restclient) { $this->_restclient = new RestClient(); } $data = ['grant_type' => 'client_credentials', 'client_id' => $this->get('CLIENT_ID'), 'client_secret' => $this->get('CLIENT_SECRET')]; $this->_restclient->setHttpParam('address', $this->get('base_url')); $response = $this->_restclient->post("/oauth/token", ['json_data' => json_encode($data)]); return $response['body']; } /** * Refresh token * @return mixed * //TODO check valid response with production credentials */ public function refreshToken() { if (!$this->_restclient) { $this->_restclient = new RestClient(); } $data = ['grant_type' => 'refresh_token', 'refresh_token' => $this->get('REFRESH_TOKEN'), 'client_secret' => $this->get('ACCESS_TOKEN')]; $this->_restclient->setHttpParam('address', $this->get('base_url')); $response = $this->_restclient->post("/oauth/token", ['json_data' => json_encode($data)]); if (isset($response['access_token']) && isset($response['refresh_token']) && isset($response['client_id']) && isset($response['client_secret'])) { parent::set('ACCESS_TOKEN', $response['access_token']); parent::set('REFRESH_TOKEN', $response['refresh_token']); } return $response['body']; } public function getData(){ return $this->data; } }dx-php/src/MercadoPago/Http/CurlRequest.php000064400000002667150364334060014641 0ustar00handle = curl_init($uri); return $this->handle; } /** * @codeCoverageIgnore * @param $name * @param $value */ public function setOption($name, $value) { curl_setopt($this->handle, $name, $value); } /** * @codeCoverageIgnore * @return mixed */ public function execute() { return curl_exec($this->handle); } /** * @codeCoverageIgnore * @param $name * * @return mixed */ public function getInfo($name) { return curl_getinfo($this->handle, $name); } /** *@codeCoverageIgnore */ public function close() { curl_close($this->handle); } /** * @codeCoverageIgnore * @return string */ public function error() { return curl_error($this->handle); } }dx-php/src/MercadoPago/Http/HttpRequest.php000064400000001057150364334060014643 0ustar00_client = $client; $this->_config = $config; $this->_metadataReader = new MetaDataReader(); } protected function _getEntityConfiguration($entity) { $className = $this->_getEntityClassName($entity); if (isset($this->_entityConfiguration[$className])) { return $this->_entityConfiguration[$className]; } $this->_entityConfiguration[$className] = $this->_metadataReader->getMetaData($entity); return $this->_entityConfiguration[$className]; } protected function _updateEntityConfiguration($entity, $new_configuration) { $className = $this->_getEntityClassName($entity); $this->_entityConfiguration[$className] = $new_configuration; } public function addCustomTrackingParam($key, $value) { $this->_customTrackingParams[$key] = $value; } /** * @param $entity * @param string $method * @param null $parameters * * @return mixed */ public function execute($entity, $method = 'get', $options = []) { $configuration = $this->_getEntityConfiguration($entity); if ($method != 'get'){ foreach ($configuration->attributes as $key => $attribute) { $this->validateAttribute($entity, $key, ['required']); } } $this->processOptions($options, $configuration); $this->_setDefaultHeaders($configuration->query); $this->_setCustomHeaders($entity, $configuration->query); //$this->_setIdempotencyHeader($configuration->query, $configuration, $method); $this->setQueryParams($entity); return $this->_client->{$method}($configuration->url, $configuration->query); } public function processOptions($options, $configuration) { $configuration_vars = $this->_config->all(); foreach($options as $option => $value) { $configuration->query["url_query"][$option] = $value; } } public function validateAttribute($entity, $attribute, array $properties, $value = null) { $configuration = $this->_getEntityConfiguration($entity); foreach ($properties as $property) { if ($configuration->attributes[$attribute][$property]) { $result = $this->_isValidProperty($attribute, $property, $entity, $configuration->attributes[$attribute], $value); if (!$result) { throw new \Exception('Error ' . $property . ' in attribute ' . $attribute); } } } } protected function _isValidProperty($key, $property, $entity, $attribute, $value) { switch ($property) { case 'required': return ($entity->{$key} !== null); case 'maxLength': return (strlen($value) <= $attribute['maxLength']); case 'readOnly': return !$attribute['readOnly']; } return true; } /** * @param $entity * @param $ormMethod * * @throws \Exception */ public function setEntityUrl($entity, $ormMethod, $params = []) { $className = $this->_getEntityClassName($entity); if (!isset($this->_entityConfiguration[$className]->methods[$ormMethod])) { throw new \Exception('ORM method ' . $ormMethod . ' not available for entity:' . $className); } $url = $this->_entityConfiguration[$className]->methods[$ormMethod]['resource']; $matches = []; preg_match_all('/\\:\\w+/', $url, $matches); $configuration_vars = $this->_config->all(); foreach ($matches[0] as $match) { $key = substr($match, 1); if (array_key_exists($key, $params)) { $url = str_replace($match, $params[$key], $url); } elseif (array_key_exists(strtoupper($key), $configuration_vars)) { $url = str_replace($match, $configuration_vars[strtoupper($key)], $url); } elseif (!empty($entity->$key)) { $url = str_replace($match, $entity->$key, $url); } else { $url = str_replace($match, $entity->{$key} ?? '', $url); } } $this->_entityConfiguration[$className]->url = $url; } /** * @param $entity * * @return mixed */ public function setEntityMetadata($entity) { return $this->_getEntityConfiguration($this->_getEntityClassName($entity)); } /** * @param $entity * * @return string */ protected function _getEntityClassName($entity) { if (is_object($entity)) { $className = get_class($entity); } else { $className = $entity; } return $className; } /** * @param $entity */ public function getExcludedAttributes($entity){ $className = $this->_getEntityClassName($entity); $configuration = $this->_getEntityConfiguration($entity); $excluded_attributes = array(); $attributes = $entity->getAttributes(); // if ($className == "MercadoPago\Refund") { // print_r($configuration->attributes); // } foreach ($attributes as $key => $val) { if (array_key_exists($key, $configuration->attributes)){ $attribute_conf = $configuration->attributes[$key]; if ($attribute_conf['serialize'] == False) { // Do nothing array_push($excluded_attributes, $key); } } } return $excluded_attributes; } /** * @param $entity */ public function setEntityQueryJsonData($entity) { $className = $this->_getEntityClassName($entity); $result = []; $this->_attributesToJson($entity, $result, $this->_entityConfiguration[$className]); $this->_entityConfiguration[$className]->query['json_data'] = json_encode($result); } public function setRawQueryJsonData($entity, $data) { $className = $this->_getEntityClassName($entity); $this->_entityConfiguration[$className]->query['json_data'] = json_encode($data); } /** * @param $entity */ public function cleanEntityDeltaQueryJsonData($entity) { $className = $this->_getEntityClassName($entity); $this->_entityConfiguration[$className]->query['json_data'] = null; } /** * @param $entity */ public function setEntityDeltaQueryJsonData($entity) { $className = $this->_getEntityClassName($entity); $result = []; $last_attributes = $entity->_last->toArray(); $new_attributes = $entity->toArray(); $result = $this->_arrayDiffRecursive($last_attributes, $new_attributes); $this->_entityConfiguration[$className]->query['json_data'] = json_encode($result); } /** * @param $configuration */ public function cleanQueryParams($entity) { $configuration = $this->_getEntityConfiguration($entity); $configuration->query['url_query'] = null; } /** * @param $configuration */ public function setQueryParams($entity, $urlParams = []) { $configuration = $this->_getEntityConfiguration($entity); if (!isset($configuration->query) || !isset($configuration->query['url_query'])) { $configuration->query['url_query'] = []; } $params = []; if (isset($configuration->params)) { foreach ($configuration->params as $value) { $params[$value] = $this->_config->get(strtoupper($value)); } } $arrayMerge = array_merge($urlParams, $params, $configuration->query['url_query']); $configuration->query['url_query'] = $arrayMerge; } /** * @param $entity * @param $result * @param $configuration */ protected function _attributesToJson($entity, &$result) { if (is_array($entity)) { $attributes = array_filter($entity, function($entity) { return ($entity !== null && $entity !== false && $entity !== ''); }); } else { $attributes = $entity->toArray(); } foreach ($attributes as $key => $value) { if ($value instanceof Entity || is_array($value)) { $this->_attributesToJson($value, $result[$key]); } else { if ($value != null || is_bool($value) || is_numeric($value)){ $result[$key] = $value; } } } } protected function _arrayDiffRecursive($firstArray, $secondArray) { $difference = []; foreach (array_keys($secondArray) as $key) { $secondArray[$key] = $secondArray[$key] instanceof MercadoPagoEntity ? $secondArray[$key]->toArray() : $secondArray[$key]; if (array_key_exists($key, $firstArray) && $firstArray[$key] instanceof MercadoPagoEntity){ $firstArray[$key] = $firstArray[$key]->toArray(); } if (!array_key_exists($key, $firstArray)){ $difference[$key] = $secondArray[$key]; }elseif (is_array($firstArray[$key]) && is_array($secondArray[$key])) { $newDiff = $this->_arrayDiffRecursive($firstArray[$key], $secondArray[$key]); if (!empty($newDiff)) { $difference[$key] = $newDiff; } }elseif ($firstArray[$key] !== $secondArray[$key]){ $difference[$key] = $secondArray[$key]; } } return $difference; } /** * @param $entity * @param $result * @param $configuration */ protected function _deltaToJson($entity, &$result){ $specialAttributes = array("_last"); // TODO: Refactor this if (!is_array($entity)) { // TODO: Refactor this $attributes = array_filter($entity->toArray()); } else { $attributes = $entity; }; foreach ($attributes as $key => $value) { if (!in_array($key, $specialAttributes)){ if ($value instanceof Entity || is_array($value)) { //$this->_deltaToJson($value, $result[$key]); } else { $last = $entity->_last; $last_value = $last->$key; if ($last_value != $value){ $result[$key] = $value; } } } } } /** * @param $entity * @param $property * * @return mixed */ public function getPropertyType($entity, $property) { $metaData = $this->_getEntityConfiguration($entity); return $metaData->attributes[$property]['type']; } /** * @param $entity * * @return bool */ public function getDynamicAttributeDenied($entity) { $metaData = $this->_getEntityConfiguration($entity); return isset($metaData->denyDynamicAttribute); } /** * @param $query */ protected function _setCustomHeaders(&$entity, &$query) { foreach ($entity::getCustomHeaders() as $key => $value){ $query['headers'][$key] = $value; } } /** * @param $query */ protected function _setDefaultHeaders(&$query) { $query['headers']['Accept'] = 'application/json'; $query['headers']['Content-Type'] = 'application/json'; $query['headers']['User-Agent'] = 'MercadoPago DX-PHP SDK/ v'. Version::$_VERSION; $query['headers']['x-product-id'] = 'BC32A7RU643001OI3940'; $query['headers']['x-tracking-id'] = 'platform:' . PHP_MAJOR_VERSION .'|' . PHP_VERSION . ',type:SDK' . Version::$_VERSION . ',so;'; foreach ($this->_customTrackingParams as $key => $value){ $query['headers'][$key] = $value; } } /** * @param $query * @param $configuration * @param string $method */ protected function _setIdempotencyHeader(&$query, $configuration, $method) { if (!isset($configuration->methods[$method])) { return; } $fields = ''; if ($configuration->methods[$method]['idempotency']) { $fields = $this->_getIdempotencyAttributes($configuration->attributes); } if ($fields != '') { $query['headers']['x-idempotency-key'] = hash(self::$CIPHER, $fields); } } /** * @param $attributes * * @return string */ protected function _getIdempotencyAttributes($attributes) { $result = []; foreach ($attributes as $key => $value) { if ($value['idempotency']) { $result[] = $key; } } return implode('&', $result); } } dx-php/src/MercadoPago/Annotation/Attribute.php000064400000000623150364334060015507 0ustar00dx-php/src/MercadoPago/Generic/RecuperableError.php000064400000003152150364334060016251 0ustar00message = $message; $this->status = $status; $this->error = $error; } public function add_cause($code, $description) { $error_cause = new ErrorCause(); $error_cause->code = $code; $error_cause->description = $description; array_push($this->causes, $error_cause); } public function proccess_causes($causes){ if(isset($causes['code']) && isset($causes['description'])){ $this->add_cause($causes['code'], $causes['description']); }else{ foreach ($causes as $cause){ if(is_array($cause) && (!isset($cause['code']) && !isset($cause['description']))){ $this->proccess_causes($cause); }else{ $code = isset($cause['code']) ? $cause['code'] : ""; $description = $cause; if (is_array($cause)) { if (isset($cause['description'])) { $description = $cause['description']; } elseif (isset($cause['message'])) { $description = $cause['message']; } } $this->add_cause($code, $description); } } } } public function __toString() { return $this->error . ": " . $this->message; } } ?>dx-php/src/MercadoPago/Generic/SearchResultsArray.php000064400000005711150364334060016577 0ustar00_class = $class; } public function setPaginateParams($params){ $this->limit = $params["limit"]; $this->total = $params["total"]; $this->offset = $params["offset"]; } public function next() { $new_offset = $this->limit + $this->offset; $this->_filters['offset'] = $new_offset; $result = $this->_class::search($this->_filters); $this->limit = $result->limit; $this->offset = $result->offset; $this->total = $result->total; $this->exchangeArray($result->getArrayCopy()); } public function fetch($filters, $body) { $this->_filters = $filters; if ($body) { $results = []; if (array_key_exists("results", $body)) { $results = $body["results"]; } else if (array_key_exists("elements", $body)) { $results = $body["elements"]; } foreach ($results as $result) { $entity = new $this->_class(); $entity->fillFromArray($entity, $result); $this->append($entity); } $this->fetchPaging($filters, $body); } } public function process_error_body($message){ $recuperable_error = new RecuperableError( $message['message'], $message['error'], $message['status'] ); foreach ($message['cause'] as $causes) { if(is_array($causes)) { foreach ($causes as $cause) { $recuperable_error->add_cause($cause['code'], $cause['description']); } } else { $recuperable_error->add_cause($cause['code'], $cause['description']); } } $this->errors = $recuperable_error; } private function fetchPaging($filters, $body) { if (array_key_exists("paging", $body)) { $paging = $body["paging"]; $this->limit = $paging["limit"]; $this->total = $paging["total"]; $this->offset = $paging["offset"]; } else { $this->offset = array_key_exists("offset", $filters) ? $filters["offset"] : 0; $this->limit = array_key_exists("limit", $filters) ? $filters["limit"] : 20; $this->total = array_key_exists("total", $body) ? $body["total"] : 0; } } } ?> dx-php/src/MercadoPago/RestClient.php000064400000016756150364334060013524 0ustar00 'GET', 'post' => 'POST', 'put' => 'PUT', 'delete' => 'DELETE' ]; /** * @var Http\CurlRequest|null */ protected $httpRequest = null; /** * @var array */ protected static $defaultParams = []; protected $customParams = []; /** * RestClient constructor. */ public function __construct() { $this->httpRequest = new Http\CurlRequest(); } /** * @param Http\HttpRequest $connect * @param $headers */ protected function setHeaders(Http\HttpRequest $connect, $customHeaders) { $default_header = array( 'Content-Type' => 'application/json', 'User-Agent' => 'MercadoPago DX-PHP SDK/ v' . Version::$_VERSION, 'x-product-id' => 'BC32A7RU643001OI3940', 'x-tracking-id' => 'platform:' . PHP_MAJOR_VERSION .'|' . PHP_VERSION . ',type:SDK' . Version::$_VERSION . ',so;' ); if ($customHeaders) { $default_header = array_merge($default_header, $customHeaders); } if(!isset($default_header['Authorization'])){ $default_header['Authorization'] = 'Bearer '.SDK::getAccessToken(); } foreach ($default_header as $key => $value) { $headers[] = $key . ': ' . $value; } $connect->setOption(CURLOPT_HTTPHEADER, $headers); } /** * @param Http\HttpRequest $connect * @param $data * @param string $content_type * * @throws Exception */ protected function setData(Http\HttpRequest $connect, $data, $content_type = '') { if ($content_type == "application/json") { if (gettype($data) == "string") { json_decode($data, true); } else { $data = json_encode($data); } if (function_exists('json_last_error')) { $json_error = json_last_error(); if ($json_error != JSON_ERROR_NONE) { throw new Exception("JSON Error [{$json_error}] - Data: {$data}"); } } } if ($data != "[]") { $connect->setOption(CURLOPT_POSTFIELDS, $data); } else { $connect->setOption(CURLOPT_POSTFIELDS, ""); } } /** * @param $request */ public function setHttpRequest($request) { $this->httpRequest = $request; } /** * @return Http\CurlRequest|null */ public function getHttpRequest() { return $this->httpRequest; } /** * @param $options * * @return array * @throws Exception */ protected function exec($options) { $method = key($options); $requestPath = reset($options); $verb = self::$verbArray[$method]; $headers = $this->getArrayValue($options, 'headers'); $url_query = $this->getArrayValue($options, 'url_query'); $formData = $this->getArrayValue($options, 'form_data'); $jsonData = $this->getArrayValue($options, 'json_data'); $defaultHttpParams = self::$defaultParams; $connectionParams = array_merge($defaultHttpParams, $this->customParams); $query = ''; if ($url_query > 0) { $query = http_build_query($url_query); } $address = $this->getArrayValue($connectionParams, 'address'); $uri = $address . $requestPath; if ($query != '') { if (parse_url($uri, PHP_URL_QUERY)) { $uri .= '&' . $query; } else { $uri .= '?' . $query; } } $connect = $this->getHttpRequest(); $connect->setOption(CURLOPT_URL, $uri); if ($userAgent = $this->getArrayValue($connectionParams, 'user_agent')) { $connect->setOption(CURLOPT_USERAGENT, $userAgent); } $connect->setOption(CURLOPT_RETURNTRANSFER, true); $connect->setOption(CURLOPT_CUSTOMREQUEST, $verb); $this->setHeaders($connect, $headers); $proxyAddress = $this->getArrayValue($connectionParams, 'proxy_addr'); $proxyPort = $this->getArrayValue($connectionParams, 'proxy_port'); if (!empty($proxyAddress)) { $connect->setOption(CURLOPT_PROXY, $proxyAddress); $connect->setOption(CURLOPT_PROXYPORT, $proxyPort); } if ($useSsl = $this->getArrayValue($connectionParams, 'use_ssl')) { $connect->setOption(CURLOPT_SSL_VERIFYPEER, $useSsl); } if ($sslVersion = $this->getArrayValue($connectionParams, 'ssl_version')) { $connect->setOption(CURLOPT_SSLVERSION, $sslVersion); } if ($verifyMode = $this->getArrayValue($connectionParams, 'verify_mode')) { $connect->setOption(CURLOPT_SSL_VERIFYHOST, $verifyMode); } if ($caFile = $this->getArrayValue($connectionParams, 'ca_file')) { $connect->setOption(CURLOPT_CAPATH, $caFile); } $connect->setOption(CURLOPT_FOLLOWLOCATION, true); if ($formData) { $this->setData($connect, $formData); } if ($jsonData) { $this->setData($connect, $jsonData, "application/json"); } $apiResult = $connect->execute(); $apiHttpCode = $connect->getInfo(CURLINFO_HTTP_CODE); if ($apiResult === false) { throw new Exception ($connect->error()); } $response['response'] = []; if ($apiHttpCode != "200" && $apiHttpCode != "201") { error_log($apiResult); } $response['response'] = json_decode($apiResult, true); $response['code'] = $apiHttpCode; $connect->error(); return ['code' => $response['code'], 'body' => $response['response']]; } /** * @param $uri * @param array $options * * @return array * @throws Exception */ public function get($uri, $options = []) { return $this->exec(array_merge(['get' => $uri], $options)); } /** * @param $uri * @param array $options * * @return array * @throws Exception */ public function post($uri, $options = []) { return $this->exec(array_merge(['post' => $uri], $options)); } /** * @param $uri * @param array $options * * @return array * @throws Exception */ public function put($uri, $options = []) { return $this->exec(array_merge(['put' => $uri], $options)); } /** * @param $uri * @param array $options * * @return array * @throws Exception */ public function delete($uri, $options = []) { return $this->exec(array_merge(['delete' => $uri], $options)); } /** * @param $param * @param $value */ public function setHttpParam($param, $value) { self::$defaultParams[$param] = $value; } /** * @param $array * @param $key * * @return bool */ protected function getArrayValue($array, $key) { if (array_key_exists($key, $array)) { return $array[$key]; } else { return false; } } } dx-php/README.md000064400000006061150364334060007232 0ustar00# Mercado Pago SDK for PHP [![Latest Stable Version](https://poser.pugx.org/mercadopago/dx-php/v/stable)](https://packagist.org/packages/mercadopago/dx-php) [![Total Downloads](https://poser.pugx.org/mercadopago/dx-php/downloads)](https://packagist.org/packages/mercadopago/dx-php) [![License](https://poser.pugx.org/mercadopago/dx-php/license)](https://packagist.org/packages/mercadopago/dx-php) This library provides developers with a simple set of bindings to help you integrate Mercado Pago API to a website and start receiving payments. ## 💡 Requirements PHP 5.6, 7.1 or higher ## 💻 Installation First time using Mercado Pago? Create your [Mercado Pago account](https://www.mercadopago.com), if you don’t have one already. 1. Download [Composer](https://getcomposer.org/doc/00-intro.md) if not already installed 2. On your project directory run on the command line `composer require "mercadopago/dx-php:2.6.1"` for PHP7 or `composer require "mercadopago/dx-php:1.12.5"` for PHP5.6. 3. Copy the access_token in the [credentials](https://www.mercadopago.com/mlb/account/credentials) section of the page and replace YOUR_ACCESS_TOKEN with it. That's it! Mercado Pago SDK has been successfully installed. ## 🌟 Getting Started Simple usage looks like: ```php transaction_amount = 141; $payment->token = "YOUR_CARD_TOKEN"; $payment->description = "Ergonomic Silk Shirt"; $payment->installments = 1; $payment->payment_method_id = "visa"; $payment->payer = array( "email" => "larue.nienow@email.com" ); $payment->save(); echo $payment->status; ?> ``` ## 📚 Documentation Visit our Dev Site for further information regarding: - Payments APIs: [Spanish](https://www.mercadopago.com.ar/developers/es/guides/payments/api/introduction/) / [Portuguese](https://www.mercadopago.com.br/developers/pt/guides/payments/api/introduction/) - Mercado Pago checkout: [Spanish](https://www.mercadopago.com.ar/developers/es/guides/payments/web-payment-checkout/introduction/) / [Portuguese](https://www.mercadopago.com.br/developers/pt/guides/payments/web-payment-checkout/introduction/) - Web Tokenize checkout: [Spanish](https://www.mercadopago.com.ar/developers/es/guides/payments/web-tokenize-checkout/introduction/) / [Portuguese](https://www.mercadopago.com.br/developers/pt/guides/payments/web-tokenize-checkout/introduction/) Check [our official code reference](https://www.mercadopago.com.br/developers/pt/docs/sdks-library/server-side) to explore all available functionalities. ## ❤️ Support If you require technical support, please contact our support team at [developers.mercadopago.com](https://developers.mercadopago.com) ## 🏻 License ``` MIT license. Copyright (c) 2018 - Mercado Pago / Mercado Libre For more information, see the LICENSE file. ``` dx-php/.github/workflows/php.yml000064400000002512150364334060012657 0ustar00name: PHP Composer on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest strategy: matrix: php-version: ['7.1', '7.2', '7.3', '7.4', '8.0'] steps: - name: Checkout uses: actions/checkout@v2 - name: Setup PHP ${{ matrix.php-version }} uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} extensions: mbstring, intl ini-values: post_max_size=256M, short_open_tag=On coverage: xdebug tools: php-cs-fixer, phpunit - name: Validate composer.json and composer.lock run: composer validate - name: Cache Composer packages id: composer-cache uses: actions/cache@v2 with: path: vendor key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-php- - name: Install dependencies if: steps.composer-cache.outputs.cache-hit != 'false' run: composer install --prefer-dist --no-progress - name: Run test suite run: composer run-script test env: ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} USER_EMAIL: ${{ secrets.USER_EMAIL }} CLIENT_ID: ${{ secrets.CLIENT_ID }} CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }} dx-php/.github/ISSUE_TEMPLATE/bug_report.md000064400000001407150364334060014167 0ustar00--- name: Bug report about: Create a report to help us improve --- > For support request no related with bugs or feature requests for this SDK, please use the official developers support channel https://mercadopago.com.ar/developers/es/support/ **Describe the bug** A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Using this snippet '....' 3. See error **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Server (please complete the following information):** - OS: [e.g. iOS] - WebServer - Version [e.g. 22] **Additional context** Add any other context about the problem here. dx-php/.github/ISSUE_TEMPLATE/feature_request.md000064400000001060150364334060015215 0ustar00--- name: Feature request about: Suggest an idea for this project --- **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. **Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. **Additional context** Add any other context or screenshots about the feature request here. dx-php/.travis.yml000064400000000253150364334060010061 0ustar00language: php php: - "5.6" - "7.0" - "7.1" - "7.2" before_script: - composer self-update - composer install --no-interaction script: - vendor/bin/phpunit dx-php/img/ezgif-2-f98e8701825e.gif000064400002735616150364334060012177 0ustar00GIF89aX0    $!* "1!9D")"!$(  ! ! " $!!!!"!#!# ""#" "!"!"!"!"! """""""## #!#!##"#"##$!$!"$#$#!&& (&! &%"&2 (&$(;(E) %)/*(&+,,)$-,(.7/N0/+0F 0Y3A4408'999:2:96:T ;;<='?>:?R?`@iCB(8BǖqVrplETxfrه!U}!8`B&|P%T ;20eHCB 3  ɁhH&L6PF)TViXf\v`JlDg #'q*DL(D0\j<@BQu袌6IQ@~;Bt` Õ`BNx <Ae>+ ;+kEϳJ ) #\1 >t>D h#̺<  ñk[Ag|>[ +&CL`-?ϷC@,  ݣ$l(tN:1 &4?ܓO@)X Q\18 >hTWmAAV %7,N40?&A,n*^< D[)n'7%Sg^dLC4v󬁢 8a0 .;S.v16:msB@좑,XWoå0]:iv{^<@>oLY.L9Hr7lbG>~\4g9AT4M \z $AEf0V@b$^x` rlLo"HL J'zY2%,tHְ,\+r`%cZ@Ԑ"p#f~պg4`A*uLaW J (T𸇪"u4AGBZ  (GIRL" 96Qt d&HApfaL&P94_ .py`ӘjZ̦6nz| Zz n3p N02ʧ ~>^^$MB”)ᚨlD Aydᨀ\0U ʓ, fTT0Lgz,'A*Ab8GMuBI (D:PTJժZXͪVpz` XJֲzZֶpOhJ׺xͫ^ `KVMb: +jӟe';!г KdGK|IRT{顖lr Dzptv9yr#: qwZ+)`K|SD)vۖ)PԲĭJ遈G8X N=l(Jֽ=p^ Lx LR@jY0 -hAO۶/x n0; < e9DJ\I$ RV/x(Np'eJKx\ oD$z98Λ iYC!K8 <z%"F8w}C'@xtC?@ȆiD ?Xғ9K;=%E;c ORHp'±``4?9`Հ[ H=H@ FpukDe op?"vD- hwހLP@4 4`@tPo0y^8駁# @cB^@Fj@ps:+s0)?% ` Qֲ<T`J"@?RD:v`N9gn@ }f$&#^[v- gh6!vJ4]qѱ\"F ʐ V0ND@_S/`rBP5lq:kRaGq,qq*\W$G#"R6_"uߛe0>^=K"eQrVSSA>Fll<^ũK@2E8`/`cQ_8`-2)Da?VCIcLd:o$[Q99@IE5:+[$2[acmK2h2`Ig*IBb-0ˑnKɱ,&#BP3l-ĽD6E+MC/Pn)4QT=4[T(mՉXՉBW "oqdJjl!^33?`IS5>P\`I;P,ڌ"/Sd5)xT eqKҵ_hMP!= R=2KTJleP1^G1+d<"]c%gϻtaid˭ӍHdOl( Pp*I?D#I@I`>Q#'`=#`.> >:5H&]5!B5R] l S/ME5#P6`"%zP _ qO0@I^pB6_ 8qFJsOSR@jNzVPrH1ve].'ZDV`aG1]cd= WR׼5+ 6 p(` Ѵ6#)nH\@M `~` -s*q]p~(|02W0<8s0 pA_sb qr9PDQk@1h  KoR۶ObؔYZ ɽ`BWvzFX"(lp:5F`Dpa6zKgr ZgHA=NM,(p @GUPCSPpGJ>S00IJD)p0USpPg( _U[0@@lic DPeFlp_"cst0o`tOv_7f8@#X `NPdu` Ӡg_`Hl-7dYRpO D0  O0s epa 𤶠Fp(P![` 6g K!Fak@%O4qЈ?s8 eO5}dRH%MDRJ-]SL5mSΐ6l55(ڳ бcE1욮kڠ182f^2GYMQM0%Tfp+EN/٫ ,{';z6`#"0ѳ7X$}#*Fpݕ&&LБ;G<@=H 8TV9O"#<ѡݻs @# ȓ&}g#=#;5`a=&hq)` vRM&~u0! ƈgy9 Zox6@|GhdI'2J)J+2K-.W (1"k9yd0E KӘ6@ 41*JIcc^ _4YQkHn5& 6a},u pBA"0iaقy1 Br v- ".x r!ft&dB"Ј |mAaCXDa)GxȀ 6v! zwEB{w'  TrQ4Pwǃf^`Q PWR'@k;l&lD;mOAL2ʹ"  @9JQ4 9,*XGR dxF)eMMƗQFq&%`@J(Aءƃ{ vȹXTyNJP {QG9h9XBGf`Cރ`Ht:034@"$eHh zA lA`3(<&С^xa#?Q=` DC=a=;xavxC? `` :0Ȏ9xg),z6K<в 3$b[0"$Hxa*͌gDcոF6эoc8G:юw#b88PB @.RRDH% 0p#8Ab g! @*, 6:x0 { N G<aCA h80%@`/ i@D* (K /zl<ʎsFZM0 X()+A . &ءv @PCw B!( CP50p#&; 2&(BTT>QNa4e?(P/ Я sC4G4ȣFB 0p%Nہ8fk^Wկ# l"jP/(n\B p *B } &# td"T/E@1h9Bn.ЁB` hD`豉Eh!G"x n Px9ձnb e F7v} tBvgG{վvo{77@Pl`@P  p@X.D 88|@H>!0 F:T*(A]0.\ $X {PUvu? Ѐ\fh .{ޮ.F4@@ L`}JKA&0`Atw%<(|@ !~ xd5ppӀ 'A@y ! X0QZ㿻ځ:n>* 8)< !”ȍ8`&t&+ ^&́hBB'\&\@ja ȭ"顖85"0"9a~q>8*"- i1퓖I/B < E QЀcM<ʧ2L #Z RI;ŧb4ĥT@' tOTI|ϕS?SB%O1AAJDɔLɟlN|+K]IW-'X< tt9\9F8zQ [t5+ 5P4#ER<X%@,ܰ 'xHȃ!-RҮcP.5&07ȃS-%l6 %U )<5C8FAQST$-M+ Xؑ=?mX)Cfl\%ƙ=؄9M=H")L؄FOW-$xOE)W!B7p&`  p(HX5yłH[ `0&( X+X0>\+*pXMր+- hPYY̪۱+`x-U%#뚕uْ%@ (% (U5YhZ ZAhs*S [%Q/]](ŽS+}xH x^hRL@z3CPQuB6rp` 9E^:ÍZ%'W) w <2[؆[&HGȂ-_R,0N,x%58 yʐDP`L҃%^P\he`IPDS2 [P/`26i؄'LP[+VDL-U``S8?%0Fp'`8*fa[Hh|Ɇ*u@9^p`U[jP+hDC^X΅I -H3`85I9xŰUP^MCPM`FXaVI9VD0xe2L@`^؄߳ޚ1DhLypE6I)`ux}- 2hw 3XP c:]LoP\-{e-?m؆p ,m x^ }7}g;!X丁 em7P}7 }+ vP)ypzЇV. =8z]=R{`p( P{y|'0vЂx@iBLh x^േЀSj^3(qIȢ=Ӹ%/01 &yP!%àxPV'of+x0;h+mzw``qH {!{hi= ^ 3hpJihEP$6ipj/l=!3nKޓy`( /&0U]1U[GxfCpF[ &FehFe<΃5e COZpb:oO[hHhils#h֠b`)؂.F"XЃq^Dу}"^: %'eMo66z?xg΅0x}0-vЃ,۳X!N^Lx>*2o8qe f?[}Q '0jP=w-xj zP%80ze FЇ' L0EHD_%"q ?Y [9(l p$ h3/w 6@ce2vQMxy8'u%p^{uWc, bp,Cm`bxO^6pZXeHpZ,xp?<xi!Ѓz0㲆Fx'P . `rP&hx"-x9[!Nt|v؀ &h^xhHYC0!pnnF +P[*Cj)Qrm\9}6fu@hrnJA=ujh'zxxh`(v}(a1u(!r8v{qin\|_2(VvF8èz`y ex3CP`'}Q"؂Sv'_׀ɔ'W{6#&N-chC1rӣm<c6bn-[V?ydqSkۣN-TGn1"N&FE޸-R6mң+-z\9SGM=vy_+=|':D2!5K`ر.] [mD$h3Z==_Փ2Ǟ'90S<#KzݱÙOcDu^X;!2 r[DϠR0"cWI&}6K>j_Eǟ\S@?LQMh4e`ɅFΡä=R?l?A[x00);|#<1;<|f2` "24O_1=8]uv$I*$M:$QJ9%UZ]Y.!fFV :-4 4L3'L|I3f.cG7hAl-ۄ'kD 4hN3d %PW;D#;D=)>3??S5,OVcH44Zh]viÎ3!s?ρ='?5sFq0dt3\0 r1?1<1 Nh!;R`_73dE=z8@Dv]y8+8K>:_9 4)da#LaG$AHᇘ6΃ "Q-~G$5YC=`&s )a"&ea;4*|qөp}+lD#&шMD۔E$Z}z<1LI,8! DHAF*H'!!8- 6D#4h=QL Ł6Q oRB#N12 HA&ЀHa 갏@ (Ƴ~"LD!pHVx0)l0&dSc8dgɍZ3LnrF1vÝn-A-ΐDI-]GCZM d k& DB]] d^] 5#նVGp-E*`}8a+^MTz*͓hF ^]ҚV.`k>u_]ziֽnѻb,m.4 ݉~x4_/Ss@1~s|yj]8y#;'9c.Ӽ6́XQF,9.좓zs`ӣͫS0:'nuÚZo.2?kD@39Yn?@o ,G{. ?Uy4^ez\!&6mO??yЇ^D}_m$_O?w?Qה6`_*N V] f ځ׸ h uZNñ` b ] Ġ  ` `!&.!`۹j`ZU`^V!v&ǭ_C5\!rmai!֡n\~!! !!""&۽ϝ#N"%V$n%f&n"'v'~"((")"&"**"++Vb? -".."/Eû"11#2_y4B">#??#@c=$AA$Bb@.$C6C>$DFDN$:&E^$FfFnQG~$H$q$II$J֡H$KK$LƤLzaJ֤M$NN$OO$PP%QL%R&e"S6S>%TFTN%UVU^%VRn%WvmXX%YY%ZZ%[NW%\e%]֥]eɥ^%_^%``&aae[&b.&c6c>&dFfc%eVe^&fffn&gvg~&hh&if&jj&kk&lƦl&m֦m&nnfnJo&pp'qg&r&r.'s6'd%tFtN'uVu^'vf''&wvw~'xw:'y.j'zz'{{+|'l§}'~~''(ҧa.(6>(2yN(V^V"n(^b~hE(XrhP((֨(樎((n()&.)6>)FV^)fM)v~)))j))&))ƩΩ)i)))t*&.*6>驤V)V^*bn*vf*o~*j&jr(ƪ**檮* kj֪+&%6a+FN+M:&fn+v~赆+^*+jⷮ+BIƫ+©+]+MR^+n+` -\,vB_] Dn# 2(@V,$`:)(bn!(AC.p, k˂V;ACܲ-6,;XAm~WVm"Ƭ2l|Ecm"lע,4@.5!V^.f!&,,,l.ꦮ.뎠ֲhӒ- .A̺ Cl`.6¬7A82|Axn.ޅCAL; #oj`y9H5=mx*]/./-^'c",k40NE "go0w00 0 p_0 0 a0 p01qD1/?1GO1W_1&o1g#u111DZ111 2!!W '`1#7#?2$G$O2%_2&K"o2e!s2(C'r(1**2++2,O(2-s2.rֲ /20r,31132'2e073?34G41/4_363.o37wsf38s W3{3::'9;9sq?@{:Atu4+C?42DO4EWE_4Fg4Q.3GwG4HHW-DFpIIpJH4L4M״M4NN4O,B4PS4QQx 5S7SR/RO5UWU?kTUopVkV5XXLY0uZh55\ǵfҵR^5__5`[.^6aϧ]6beal`7c?6dGdSbWe&ZgftbeWSh}ivkvĢ6k6anlG6n6Sv¶6p:r/7s#6rjsGtst_7vcuo7w$m7xx7yjwjvkyjzgky7|z_[u}r~~w? xw7!xx+8dc3ɀ[w} n0хxˀӋ/80 Sx hSN㸊x $9K,;99x0Qyck9sGNxg+ywy98999@$/:7?:GO:W_:go:w::zx;~ͺۺz:;; ; ;㗱;7{!;;;C/7'{Kk{3|}A@绾;;<<'/<7?k| uսhVE 6RF(VXc&fVd(Y CX! ,W! ,W! ,W! ,W! ,W! ,W! ,W! ,W! ,',HܱC #JHŋ3jȱǏ 9>GÐ(S\)RH͛8Q€1D葳ѣH*]QP@bRj֭`ÊKHu"-،`5zh'vc_k=ߤa +#psm]pCƩ@@a\0]DGdh$&# C͓ Nȓ+_μ0Σ<@( 4@l LtɻX#y޿w0З} (Y@&M.F(wL8Z Ya!d#a! ,',HԡC #JHŋ3jȱǏ 9!PG!S\ɲc 0aE˛8s1FxPѣH*]bMJj1m\ÊK,Z|%H{@O`"ݿ8lI!=$2G@=R.# ̀ 'c+tQ @ *0Ё2j!ȓ+_μУ7#A_@20@<[P@TKZ,B>k| uսhVE 6RF(VXc&fVd(Y CX! ,W! ,W! ,W! ,W! ,W! ,W! ,W! ,W! ,',HܱC #JHŋ3jȱǏ 9>GÐ(S\)RH͛8Q€1D葳ѣH*]QP@bRj֭`ÊKHu"-،`5zh'vc_k=ߤa +#psm]pCƩ@@a\0]DGdh$&# C͓ Nȓ+_μ0Σ<@( 4@l LtɻX#y޿w0З} (Y@&M.F(wL8Z Ya!d#a! ,',HԡC #JHŋ3jȱǏ 9!PG!S\ɲc 0aE˛8s1FxPѣH*]bMJj1m\ÊK,Z|%H{@O`"ݿ8lI!=$2G@=R.# ̀ 'c+tQ @ *0Ё2j!ȓ+_μУ7#A_@20@<[P@TKZ,B>k| uսhVE 6RF(VXc&fVd(Y CX! ,W! ,W! ,W! ,W! ,W! ,W! ,W! ,W! ,',HܱC #JHŋ3jȱǏ 9>GÐ(S\)RH͛8Q€1D葳ѣH*]QP@bRj֭`ÊKHu"-،`5zh'vc_k=ߤa +#psm]pCƩ@@a\0]DGdh$&# C͓ Nȓ+_μ0Σ<@( 4@l LtɻX#y޿w0З} (Y@&M.F(wL8Z Ya!d#a! ,',HԡC #JHŋ3jȱǏ 9!PG!S\ɲc 0aE˛8s1FxPѣH*]bMJj1m\ÊK,Z|%H{@O`"ݿ8lI!=$2G@=R.# ̀ 'c+tQ @ *0Ё2j!ȓ+_μУ7#A_@20@<[P@TKZ,B>k| uսhVE 6RF(VXc&fVd(Y CX! , N&H*\ȰÄ0ᅊ3jȱǏ CIɓ(SʗmY41€ry1"e*nC#PE;d l`GN4h! `eN^ 8/Dh*0&9Ν1eR"k@ :a#_+hS@k$<[A & ! #d1pAX =pmITƹ(P3 mؠ  wh} 9rѣt:/KcFu!(ᒩ bcu: HA9 3$ z@; =߄ҙ!+ x"@ WPw8x06D DpF8fCn< @aC 20SDo4BQX RԒғEp9(ēD 8Ę` 0$^x>\I@ZACp]iL0)YHXxt`EI2a 7V]:BG(ɍ_Xs ' 3< .䚠 Ug &8 ^ |(a} pr ץ$T3 TP 1'Cg)l007Ur' 1Z)$p pŒBL@pH W 0" fI \&Cm@T EExBq0& ur.{\XA!TA^E,P: Apj.r 69C@oGFPAXA,A {(#(@@8z!@Gh8CHa ( ׃eәAXMU{@lpX  @À0As"6_bA3V3` $h {`3|(D8F/c8Df TSHPq cPbNi؅/|#$ 30E6!,?J *zS(D01b;PuꦄQ@C `S`$1 _p0l'peD]5F x12D$%q+P3q*ȄvɌW"C)L 1|Ѕ3ԇB0*,`C@q0hBa7Q8C %]D|( mF&"K 7(98 5A@>04q(iXA*R t 3p\O (,]1@T,1% ʁJ G3P6XCHXip 1Db*HR5І1" %$` b8$ 1H*~N@i!*THF,)dD* A.؀m0Mb p BHp0"PP0*XCg`%5<7Va*" `x 4?y0 0%$*$c쵆Q X hٕ @jB`%\D@)f!A.}%4q ]M'0= X|! (H J8}e,LA  k\B%Fq0jh) B ,4bZCg` |%ct W@!B0BÅ@r >lbHjWC(/PzfB{Q t؃#G9\y,<.XA ЄA 3:` >D@ PBO:fy/%"Q1D;N 5t#>`[' W `R\u <xE]WD!(a!QHϕΉtEI i"n/*XBb:/J {& >`X~sh ϰD' M `?r| `A ` gw g  p  Π  0 \P0p @ YBE I```pKm ?;qge{ [ u opIdW9pp 0 Y\+8 axǀ TnNx Jt %8 `n GAcw S` p ? 0ipzpY 9A 4 J^D`!@0: 2 p 03p@SP0-ɘ (# ADGJ:!0*۴x10wa2:N+1F%42 -0P`fN#*q6pM2qȈ $@#U*%0b2PW2+Y;W-9КYd#Й c^1 #{R5)X#j 8@1+ 1  X.< "$"#p6` PQ\"#242q J"4j ڢaQ%ҡ "A .60"4J * /ڤ Ņ PХ^JS"y D`@4]-'%'@@KR-! !%?``z"E&4R:*ZI1+b*# S?0"Q%Y񠨍N.y򢅁o3К}^d$-@@Ѫ:.p:`D+pO19:䚪a%"1"zZjz "m 8Q$ α ;P\ت((#ڱ*;2;)A g '4 ꪮ`GJ!ZʴR; !SB^@`@cl;pm;T#JxK! ,QH*\ȰÇ Eŋ3jȱGTŋ(S\ɲA"PhM wx'hȄ,LhzXX@ * Bv 0[a`^b&dBuEjt $D%4 J j $@P0U8!ebBK UHPxKADb qǴ(FblQpUEc.YCHĒ-%#@\YEA%G /h/OSJUb`&(TK} m6P2ن QT`-"o@Q=TT`B DEl P1ׂiB_ @-vN tY@D)XB@]&$z½C`FD1@@ AV( ?@0CHVEc[8`NJ3P܃] eWEǺU>BMcT]q@N}-LQThlpDQtS! ,U@i\ȰÇ#JHŋ3jȑ;Iɓ(S\ɲ˗ I͛8s)@ -)$¡ciԠJv #e^Eɡ8yXP@h ڻxoZyGq8"$BA0 r8Tb *@/ء# pw`06DWApPwpgE0Bw0 q`xBJB 3!p@ɵ5RAV0tT$eAA @߂E@'0pV mf8)@@4аz@{p( Ԩ2ΐ{Rvx)F 򰩡> */ì00a1xP[  $a;@ @4@$*}`r @tA2B @}2[лݖ0Co؎0}jzH_<"$4 2\<2G,C( ğ; 9g 2h@D_Ʊ$6PB [ K |s W~' @(Ǡ3T>@2, z,ïo@y€~;qn 9\v~N8 ?ק/ˀ .@*PȌ5<e(c.~9;ﲻ9~Y I~}B=pC. =P3X( ;0^MRǞI lUk ;>{KlOn0`E볕Rl`GL .Cs|GQ*HeC4a qAH `_ pDT^:$e,DP%P2ֶÜ =]F[= 6Dٿ9i _b,̪Ox.O["_P3LxEpiK@ٱRϓ.@A fAŒ=.sBo-0W.2Z읶8x@*hbR!$2鱏}ifIMaBRUog8YN)A&i$ʤΝ/g¼@" "o(@^ ` b0bVoEdzBPENBCe*S4+bQKm<4M)Hu0˼uHSjE! H :`HEs} j=()W '!dh|z PdqqMHJ~)m"O]  BҔeV6}$ h`XE7\P@@0t|2(@"k B+[Dl x .#q°Bxx\ŒWEƫ+Koqanی_"@2ĈKM6X8B1@ 9̠e`!,A%VhIм+wBePx@r$OC\.J{k_!E$r!\^^r$L"f3+B 'q!0 l 9Pe'`cE6PW9>6[&%4  @| ( 8`WB`C)"8@P.g @ A= ӱ^iOp${:Ӯt50 @& 2-LC<P20;`|kX+ vX0 p`iH2Iؠ+X" ^0:ЂB& M8; B.ptPX 8+ah kxφ z0@ ҁz:87H[Z8$"8 @Lw  "1Lh(ϴ>q+4[@` a 8B)pvaK2Z@d ~@ڰ<' j\!\8|x=x!.@0+ z 8TaC0pB0)ia|~ц#`mM$R}{P0@{}\m  P||(fE^~G)r QJ ti |{Gxa_\ЀS+ 3o, {P 0|S{@zE` HP  rPA 6pmPopqC}m @7H BHQ|c`00't!00}DPGT@Q{a|0Hm P<p apG`S DPzhX`'|ei-8  0 -0  P `Q`  E` PJp ` Q`x `"19c p xp ܐ t } @ Ȑ v916pa Іx ϰQP {@ `Hqh`Д @  ? p `&) T%"Bp T`hS5ٷ  א 19Cp.@.i a` {Ђ@ p =X jp PP0 c`=   aD [ c     jp` 0yt`  H@ Π@  7ҳ"-d)\ pQ@r 0G0  JPb T` `bp pq#Pk  }P T` r`  bm`| j @0S T 0 cAm@GPG P` @yv* ``  b@hH jgOU` U-Zu}` ZEP!` ` ZB. B!@nPp P` <'j/9 Ur @ [T } H Ji>qƚ @ 0̀0@^8 |T jPU@@` b` Hjpb^`& pa  _#1p&S0 0 &0  m E0&0i` 00gKPNP V70E ` |wKFQ`Pm ` - Tx` "q 0pG Q[`$0 i Ra J0(k { nx&|0 a ʢ`4Bx0 pЄ2@O ;?aQ@p p 0Y$ 6j @p p  :I N0 p0h lPu֠ 8+ Q i9_ kppVP{ {@G0 @.x@pr ,iՀQ 0 `` PP Сjp h\@u }@0з< bi } r Hܐ{נ `)U0 T4k+0 а±v j  Sp Pcbp SS0|0t (G(Ҽ| 6<)'S^А"i k| { (3,2|a \ p GH| {װ`zRZ-"Dlлe m þС 8 , c,1}@0@׀2LЂpp @JWd Mp p H ΐ p Q@܀ p J搽pW ` T`  ` /J.B} Sؚp  @ ΐك:`@ _P P ` v2j'1Fڛ Ggi pP E PЎZ 5 y pp P S*  ٰj=` Tm*?Q Kh p ֨ ̐} PPʓ p p m@ ΐb{ *j { zՀ } Q0ְݜP Po߳ q@SP  = Hpؓ Ez s PP 0  H 0HP 3ũ|lVVpzi ||h@ >{@yW\Q hK,??@P0 H XȮm0 RH@ھ쵦qP` {@o?S9a ஀^|HD@ ƞqhpqp@zȞxǾ ~| pPp튀'(32@ yGB  90|`a Joq3?0O~iЈ@F6E}`6>\6NSPp}I'6πI2 1!`% @.`)?K_0@ ְv5u?:&p0K G ( O,P }u=$(r)V !X8H`!A`P6@!`LF|`D#tY"ć?H"s$d˱''bϫLbN|CGs#x$b$K~__ȔRF`:L(;!R" ‡pˍp0‡3+@#Qvc 3BJ:耠 BH:Spr%bA$FX !f89`'ÿR1#Rl:KKF#TNt-=C'AFe4bdT 3Bp> (ΈhHU~;"b!H"L ȁX6aK)@6Y"!=t6a2rAG8f j{LXA ~K cl11rpo7`f { zp*]bS`Y xYdpvev:r2|H/2}@8XPz̄6l_,arHTx H>^1s7y^1^vۅy0n!=4ڔ / ҾCamLp@!$:hnӁ6c[bgKu^o4g#6]g!hrܣ0]*m~vaH!0ǏKR@4knGW|_Tս`m7v3}g* |Bmgu/MǚQ삏 /Q3G1&7u@1j귶'7Гas?1Ec PA 2`z (VbAm20CX%mH^\q[j&ڽx|$I.,0/msH3adCY!ۥQXelP20g[dKYJ6 7Apك,ʋgX-H`)'oS02wЭV ŵyn.I\)VD36t gCR#j)꣊F` Hzы W6fЕ 7" Q/~ϋ;U4y.xڤɈ\EW/hIu?ۨ+& ,;)S9JTÄS`~CoSͤTs*6 U2umnCDBhSy,ugEU<4DQF`06:H*DG I^vcj8'evn*k;ZH.e-n; )pjqsZv]Tm\7ms[J׶pTR$Q.ͪmҳa4|u۬Qmrվԣ/ ~ڨ7=I0B8 o]wa G%Z#Ja8R&,,XoGb?ֱ\4GzLQȁ}J_ k6V8'w_szfs|PLephF7яtkhR1p׋cfӟu=#Ӣ>UjVկ3y}buk^n{=lbآf;{0;džv=m<AGm[SwMV)(nvݼ0ozw% ;x! ,Y&H*\ȰÇ#JH6&AǏ CIɓ(Sԥ˗0cʜI@E6sϟyIE ] MJ"8׆PuL A_Ӫ=:SAg R/r@C\ u<2D PC? D"cLf 62HqZu:8qNР"BXcaxdbL/8c/SHB;Ā10xxHvt%$J2 ;@@2wN4v:<5" BAyP` 4W(!O=tC|!I0 Mz]AILB@=& C `gO30cZtŅfAm Td4P IjBB%@4 6$(B #6KTBHLҔ)B-NxJu`i$*  T5afs0@SxDP$-GSF!UD & RA \ ]˴1&Qk-+ t=# 2KE\/%PD,P+0 OGpBSKV#5S+H<4@ T%C3:b,߭cH& a1@1ETB 9EPQmwDVT5PXaFQJPJl'[.tC}xpX<6V$ &BDI{1if*ڸ,ZB.4xIbEB:g>-P!e'G\ {AH"&z&P $UK@8=PP|H@V) #0 dL;HGN#`~8B6B$ :dB dB^UCHu p j n D 8l l#-Bz@]an"d*@b9N'f# P 1!e A.q 7@V=PP $@BE R ªT%Jrj@`9P @!?p,% ^"hEʑ&P ~ r  B8MRk6 "`|@&fAD8%6'@s I-DH@~T0eNFraJ~ KFNT "l"zL zd16A?.a4cN=H!` KpT(+dH!Bb2M aX3p#eRF7x4\BjԆ`d* ުÆz0KDhY=M1ERyqA 2@'ISYDd0 >S ΅t$\2L!(,AvP:7EO ">:OT (\Nw%*8)VY9 jTX` 8PP0ca;NpiIE:d&ŇHF%DF@A z{2ܙɷstg! \ɨI2ubx_RA=$5, ISry3@%b+3.,rH L;"k$ ,AhPnHyS[T<鮦ib3ot`d$0pžly # HTh8`"!z6> dmGJ1" \…A@bPXqP,ԃcPA9$@dFH@;dХA xyD\$ aDU`@CC4`DPA%$ÜDd Ct%DCGB4Cw (IT*DnEEğ6TjӉ@ `a@? IoAJ/00lŪP = 9{-HfJw%p֒> u.Jm7@JxBF{˓W7PkƝ !l(d=0Wk4! ,&YH*\ȰÇ#J3jȱǏ ; A#ɓ(S\0XʜI3$89bϟ@ JѣS!iӧ /'T(*qiVKٍ$Fy۷qKݻx˷߿ LÈ+^̸ǐ#KLp1j;wk lAD'x12pƎ!1"5`+p`⥏;^"C kL ;b()]! 2d|.|;DC÷.q} |~'G! ,)W H*\ȰÇ#JxP3jȱǏ CIɓ(? 9˗0cf5P8s9A!3xfT ѓ T ѧPd@`Rj:R aٳ  Ȳ˗0cʜI#(/A 6 JѣSwIMjիXj:@\wO YhӪ]֥ m˷/Բa.Q෰È3lHLL@>,iK@sh 􁺶2 @ Wx'F^μŜ0`08;ν@%lAJ' @ߞqƌY̱CG ( f8]t&$_ 9 W 7 6ذ A|)$h(,0(4h8<@)Dj@L6T{8N uN~^vQB "&[ۘY > "SD2D ^t "@@^%y9ҙiPFDP)A@TZrAu@e Cyn(a(bhiE@ 7T@xPA(@ e?0۱U#(#LD E2TJ@K/E3&y-08ɶ"C9k?S@0$@O=_4=aV;XN ݪeT& Tf4$@56p@@D2\) D.I,#P3Rд @ K!#A3 iC NMR!}A2l,z3D/ehA@_tmZ@<@U@~7W@Z+%<)x.80\>$c<eA6n0A boqB{Q xl z# 9@R8lڬ09M!Lrg=ԬlB8кH)Yr¬nX8&XB3iYЀ`@d%.x&\`bD2M@Y 797.iq:PLр?u))SqGS) a icD(T7"sd@qJ; $';e?Uv (0cF>$O&,E?%CnLDI2$'O&#xK@;#u`9Ba4$%TMQQ|R3c2qʁ(`+ SK㨉(GvF§t2J٧AeEm/iNLE[{2T"QɜGQmNb爡T8> ҁ[ "Hma.'9y)o6#l l`fֺ D9̞ -XKHC̑Tc (t I 17RcH`y"D0q. ;R,}"$s%L + ^qS}XP@l$D_54pA]XlBр#*@Cl^*EHyHA[!7Ɛ)! .oHA`֎- Ea y!sbKR)dQR`| )fV0~cL'W 7jwV"0QD%@0@sq7^'DZS.L  . 1q[Gq`YLفVasvAq7pK/VAI [nP 6FRh&'pGx(FA1FuC&Uat4Hh1624G=p3p' =1=`?6)%Q4'aJu,G( 7%+A>pv-q!%3@:0<Kp3`L?J4@3l$|LXѨ΄J4)LxmX]ZrMֲhVlu n!0Ky'I 9X(,(`B8`l'nC@2 #Fl^Y'or9 aI qq"i2[9!y :(K 2Hh9 a 'ݲe1, q>q{I< J;B`` ,DzZ/$P!~ 0@59I#PHIB)ItqG0 GeY.O0湝cɗ$e h 9`ep !Z ! 0 p ` *IL%XPp0Z>a1%Qh q  p9`~ ` _  q  A֠i>@@ 0 L?@P0 1=HP]AAQq b`Z:YH` 1  :P !]!qw){ } h@ @ R:ZAj1**^` :!( i Q I@Б) E _apU EBHQ`` eV*:}@A jK0fS@a@Aa 4^J0ѯ ' & j0 `@ :Jz%.DJp ZZG*b0J j@RŚAp ``[\9!P 9@X۳>IT0 pK =^;ad DQ@ e! @  seI*p ` aI#,D`('Ur+ i,Vh`  >:ں" .Gz_9vpɑHQ  +J hYP&<*e!Y)Q;o9y $\$<P}K KК*p?;Lui&/cZy) a0 a:qKK %HK%v܉LIKǽAM9t ![)cr{M,(Bp M<,ᤨ*PG! hI 9I|n#'%"}%1|9Urq!(UoءqY'/E'qk'oA U"8 b#K\'% sn}%у'X"]vI8&="1C`l6X/po6p#@ ` ..!qK$TُT8&p1ЖD;H@!Zm|(8 xI?`iHkb"qZq7(́m%xm=N|VIO%OGpZqA{f(tWll8pK$D(K: Uq=pۓo΄iʪL$VFITYۘ6`~>~=# xJR6!"!D4 6ԽIl(a D(~:؉ Ncb Ւ)cN-$.GmI=~Ix\A|*9\ [g%" S +nұ0,EǕ>ٱF跬 BFBD[H,D'fP\E65J~ `~ qAon CDr0EdD(av`w'+I  l "B°1B Q+1^\CPy#)}u ^ю#@pEeѝ(bT`oZoH X  a' FQhNڏ 9 A\ O[!5<\,Das 0N{1;QmPk+P)U +J݃ o C{{>Di Z0Q@ ! ++EyI 頸0 qN_ Zd_X_q nI q *K)p ޣz_2{ ,6&sG `_)L!0d*{`c (ǐ b pNc{I\/h 6Z?j*) -!;@(P‚0,hD "!EXBd  E@BBQ|YFС1$EE04hR. 6! 76R?jZŚc24 "I,HTmS=.2MAFJ(@el#.PjV)Pȩ <I(@h5 6#MT C #L 0P a8dZ#4"!dg FfELv2 J7 PʂRbX ll3x˃ BxH: `e`V! `` j+4`H(BK  @2F\p|.H0V+ Bʁ = * S0Zh. BNBZo*!V lR8o@fK a2+0`.Ȇ.6OsVKyr?H{NRᲰU@Ao/j -R^A7: O/XA:'⮓!K 8˔PBda xC@<F` pˤ%Ap%\" z@HPև_\bJ0 @R~Q@9H ?!?"Gk(\ ngH EdPÄ,!JN q, A`Bx0iMP0R CR G?X %EY&2A y ?0A!<)3ׄ$KO|({_9/k;8K)|i :  !̠w`@B`ɂTDFd?0; 9xR> T2*%5yP &EB4S1 C4!98 ?4(4'T+Q&ć9*jAN >>AQ TqEAV@?2k/; UR p @]JUl-K_X`4#Xёӟ@B )? 0 ~A@} bA ?҃4 T@x )R ]LJAJ~ZO$'?FS w>Sv "eFT9 zDsn+ 57(#0z\Ni tPGɼ?v ՕOڧIepw)G a<x1\"@j;C Oi34[M>Mj0[VImBl}iiF A#7, ZfwA˖J3[6!M~ΖƖIOu `,7a+Djj MPT`@nRcu_ l)NZY|vЇ3pMW`j]S[[;&5`ûّf˻$p5/ya-N1y}Wٚ Pě™l?] ^3S97ZռA,[YBNrmpV;:!\-x9/B.?#YF/Q fd{5JyL&fO1F0>|o@:}fxI!GPЂTHAS:v7 ԹxA `o۹;-{ >CL-蟺 uN~!lmV?|_^6O)>Ԓs?C6;=}@p ۻ=?sh 3#>޻=>0{1@;> @?@?>/93?D6,[@6?S?%kB3{Ӱ1 ;@KB B@ 5d6tH79:8C;|"A$AT=,D4>KF\+@Psħħ(MD85OE$BŐ`-;V0tELDXCHI4YlE]A4CZF><` E'bd<ӳHKDǨjkF+oppz qTudvttxyG |T_~\Goȁ$Ȃ$F"0FTȅdJȈH9|ȉ#3ŌȎlaȐɑ$ɒ4Ib œTɕĀ! ,'QH&ԡC #JHŋ3jȱǏ CIɓ(S\):z`I͛8sأC9LxѣH1FxPիXjʵׯ,;tKٳ ?"ڷpb`ܻx˷Z|%H]/3k&`3L h:6Ɖ=,!=H@ W CA3vq0cׯC,ȻW8)#"!L 0u MW~^A~ Q F(Vhfv H"x/E0(# @@2Í5"<,F&)PD[T*4%Y0dI`\ԓY v)&\Zi&;V%]]]Gx橒z矀*蠄ZdV$z(!0fVj饘f:Ov19D C fuBB6h9*I>TPg! -@B@í$q #숀@D# +EKD9Za2尥q#3  !xh#%1@ ay@5R A{ 3'P+P&׀1m4 LFTB AbkBV!|k.َ1^r0K">JEB93GUZA L@! BmOs zPiJB vTPnǭ|`߀% Nye`xGSưp,(%c9Ϫ@DN0$\ˮ{mRW_6a, ]#QdD( #GlBhDԍȂ @ñ $m}0H @B"H 7 }滑LT9H{@!yȔvN@aN'@9 )n@)g IC3BfCJ= @Vp X{lȀxDpa wN6^Mш=3@l>gAa"`$a!ȃ1!"cuQ .(A~R^GrFp+QUY!PBRAa!5I!eӐif:Ќ4IjZ̦6nz 8IrL:v~ @JЂMBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHYv)e&! `0 ~|@ @A bUiu ف`A(XᲘ5@Ø5@ځ@䘃UmЈI%BV#lCM Y 8E@[ElQ$$?LbLj<`u4lF  V#h8B ?S`p-(#V@z<֩U| 0q,&QӐ-I@! ,Y#H*\ȰÇ#J(cȱǏ CIɓ(S\R/Ѳ͛8sɳ@0>P˧Q*]ʴӧP*E'cDmyI֯`ÊKV hQ(sFى˷߿)](xÈCd /_ ̡x6*k̹3G(8 zh³=˞M6rͻ}cc ,Z lKNسkνËOӫ_Ͼ˟OulWg3&`{TTC[ fǍ@h7D!c auI{ @SX^cЀC mh `i$ T  &Qd@.fgF#`F s 9e aBke%aĘn.DI,Uǣ;Ġ9 U#l0\@M `bC#$ A": j CCҍ0P)A;ݰZRW&lj"*J:h+H'l:o/p}׮+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-j=4Lp\z 1/tkܭs ;d8Af^3t<_@@D2!@3cEs@{O߲+{<D 1+=0.:~rP:AO8(8B2`>Qoz ;h` @.e:M"Ŭ }5pr `tP-,]? [b, 1P 3CȀ~bĕbA2 hZU| 4x[a F upH:x̣xҡ~|X=72dD!EE[r$Ȋ("JR/(%?.MnrcV%-ɊA2ZPV 40ze*Z!,EBV ,w\Zە1-E"_Cǽ] Z.-EجW,INu f8eaL'JNکAM} Y @ρ3-AW9τl uA!*ч3( Rj_ |t`+Z@! ,W$kH*\ȰÇ#JH3jȱǏ CIɓ(S&D*PI͛8sɳτIѣH*]J4LJJի" )֯`ÊK&%( IٷpʝAEtA߿ A+^̸1AK C˘3kbϠCӨScװc˞M۸sͻ Nȓ+_μУKN`Νq8/5U|EI1k]` BB}yTI`z0P6 @BC9! e %%%,P@G"eD9`b0d gbE@ܸb4 6B dC-闂Ѓ@AJ9 P | 9LCp,e 1h p`Cn<@Нo#AY'yRICA:9#裵bcBJf馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlg1B1Iz1i(/ ,;4{Q|g'3b@ Dk;(M۱U}tTw=7KeK-v[-Ǻ-p 5 A]7sc"wsB҄{uUJ}P@! , YD?H*\ȰÇ#JHa 9QǏ CIɓs@ɲ˗0c3fɳϟ %@>*]ʴS*p3 Ojʵ ٵٳh^JC!XʝK7+u| \1+^̸ǐ#KL˘3k̹ϠCMaZp! 4سb6T.'^h _]x g 6hY pi@́p@ bJ|"x$|dR x1 9l 0 aYP I= %;K>F@ XPF(F 2 DHQ@vĤ<&Po}iIi<(ex$頃@8' %B h + 8B0CD9`yMZТGgECh !?C?$ @N hJÝP ;P)T+CGBC%d p"A t>k 6:SqBZ¾?A+~h)P (y6Px .0Zi`iD.(;$:u #~C 0.©#4v()@ /뿿p {C$9ʼn= 4q,3GӰFİC$m  C 4@p 9le W𭣎28H!`h:"&#o| KJ@C64E M&0Aj(_L E!.jʀ<,Pa@PX JP@B0*`~ (^@@nBL48|F VMfk7 F0]+Hz) r09~a6$DBnk6_N*|WhB B~kHXz׼kj&B\@l wM@v=0&z Q= <-h0m:p3E1 ;L $z .HS޲Ƀ|@G|׹q q@P\c :'T@RSY\4H8 " #40 @OH@H@$ m-*8/J8 M]@` 4@.<` e|pcaz{^G, xX[V ,y׺Hjm2$J!G+uW 6gz.` .oP0 =Oy(]$8d82 )@ m|`t@#, 1bo^ BEA!-<L 9 .a8.B0WG(Bb >a 8B)v1 @(%*Paܖ8Afl_ ax/v1qkЄPH(V T  5b_i} M@!! @B? e [u Lp0@ᰋ]D.2RLÃ؅.^qd0Ћ8@a^H6$ N;1 M^0qM _9N7 rBnAῥv&P!YqHgg Wp1ЀC0#W@A~E PR<E=' c3*\9 U}`TF2.k! @%%Tr8_bqH@ p"W!bA+$ 0 @a`wQ `}m ` p ` p bՐ a@\ U't  fp tP Q̀CJSJ)&S_)`  0@ tp ƀ6p sV a@#({p H8v tiP ` .p?X2@Ѐ H0 t { }Vp H09 p t  `B# @X0 p { j 0$)'?,6n,@ x 0 pp Hpx@}4h` }`Pq{P    %@S'l= T(b 0 Ub Hp j`  {0i 0 v k^ 0' @{P^RJNchJH` a0RgjP+0  2@v+ p Dqh @P} <+G ` BǠ {0Ɛ!\Pi EPdO@a c T` L9 x b ` ` rP`נ P @)+T#P`  X a p @ @O >|0 bEp)WP0G @0tpi`0mRWŠdJ b {lc I! 6v ; ؉π KJ' \F0EaS   FB n)E TJ&zBP/TY #G] Bp *d%P`-@u8  GG  w 0j iЛ@ aq b p`BF0 AZ0K͖Hqh j T&` E` Q S`F` @15aՊr@D@@pp ` a @  j } t | @jɦxHȣb@Q#0FHQb p  4p Hr H +oFH r` 8 Dbp  `){ Tnk π\ H`@P T`b0H CJ @}Q .۱tPO` y'%,Ka  p Ep  Q P @`}tƀH 9$f 봥 `p Ay ꋊS%@I оPXΐ k S ڀsP`5K3%Є3 c ǐ ` { Q 00 |` Ǡ EP-ܱ .8|QxM &4V0 PP8@Pp ^TjBlqOF @x`|hBz/X}=R#p`PֈJCUP PU@CE:Jx!J` P{ Q:*~b[VG@Eu``; ?U\GM3JaP03T=EP FGPh&fڨ(V%s,OD 408:2Ss8#C/xf3>;q2=8]WCU+?E28<9~Hn1{|.T#/E4'3uUP8 3p40pw>Dp/t9UGv"5rSv%09'o9@'8_Kc,c('(ǁ@qFן()hذas`ҍuV=5 0̩5 O1,C ?$AF D.CRLD U,l ̱Cw,qEExMIQD(SGHҞ1K1$L3D3M5dS  ?ʾD( L?>ԓ< ? -t>mE/H[tG<4@5D|>,FOE5UUWe#_NDU]w1suF"N`eYg8g%Bh6[mWvVf6\q%nՈ-]w]v&Lf^}w (xB67aF 6hA S>`f0 j᱇+PO9BA0C=G.` 3`ix@,~ #EC;jB8 $  49 yyJ p! ,|Yv*H*\ȰCË3jhBrHIN\R%-cʔ̛8/ɳgC!lz懠D*]ʔ#PJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷ߒ*8PBF jK q!B6$1B@>d ! ,W UF C( :2B !s@H ,@ SX @ȡ It $! ,'0Hw(ܡ FDHQ`C:xȱǏ CIɓ(S\ɲ˗0c„C&E6sɳϟ@ jSa:\ء S j;~Ac *pT"C4F%#@ѶݻxI4h1ŋ7f "e!'NĈ3Y; QӳӨS3!CP " 9RtI4dYqJ r~u&M4ay ,R?Uu@^t1D@ ~h aV"8 g Gw(4T@YpAhp t<ց#P’KpAypP q(dt 8A*i"`9@H)@hL!d)A֨袌6:6MH'!PH#D*A @4!h@+2ǩ|!@(>A 䌣GgM#x&첪5 C@@ 0@# S(aBA 7<)B+A~ tHU 6 @HAW^J5bO"4ǘ9@DmtK 1Ač-MQ$=Ҍ9@a $@4@lJt Jsd9h/YAJCZt-GyR5Av2P- .f',s $J :dX=[DFM(Jb쨮'0sB2'otA3P3Dm@43 RQQ;O@#=l=:Y0!k(5 a)BP50yBA&‘2 !_D0A%<U$ $mnC" Q "mҁ8< sb.F#a! 6AЃ܀ CZ 0acA BP 9*@HkEK6آ)D Њ)L  d (dȁVI% Ch+A`O3g`wJ>HD-Be 䂂`:Mm* @;AX2(HS,D<) YJ~DlAZT* lr 8t-3Xc'˕t 0e<0Y~J#Tm! (:Uq`=-A[J7yp SHmOy;p87)xVf *%B ## Y yN`M! $.13 V`f#I44%{pD@?xnp3` ` W؀Ԑ" ?;hu7} B+;٪@v_AtAtX@4A@/ ;\г$+#"A ( rU]@'dJN 8XB >0nӤcu¼ u 8BeimSQ A-"` dCȧ(}#-[q`U +A쒳 9B8@(T(,(@!#`P`dx4 :h`CQV&B JB"҃;8h9C ZDt4,A2ċQ$^j!e5r ;eBp & g0 i0@A0D0U['W7VL D ܳMNLPBR@h=@݉ D;A~'ZQ`;ݍl;h/p2 XI4 `?k%, 0(w 9%2/<0&pzp0 Xe4sqe)_ !k@C$C(&a/|.|%+0`v /$GnZUp#CTF,g@P\@y"q3O_~!%C)$FPbWUf!!:p~CO@>vz 5(AkX?v"RA?.b:B eWJ[8G A Q qyxaTp @zimpxH17eS]@)FF7 Vw~k!X/?$7X7 B?@ (g+0P Wxx a !p:0Y ',шWg&zaAS BPF@^%C@ BJЎC('cVbw2*1#A @*O@/w6& ,'F^p@G @ @10n_tQ"@ %Ƿ/kaR 21K}k %2x($Q&B?IAT&y8zF<!ڔfAs!YXqѴGp'9aM)Q?& , EFBFp! 1;"Q%Q?~akqY"zmd~XF"wA>sb}@6n .@%ݤG/*&AcQ[+ !A[#JQdPAQgPv w+"RKX MfGUj!AZ40O=P ѝUdؚD\ߵHJ" dКWJǧ%HzF@%]ʤ%wZj,!bժ /+1(>3U$jA!wz^Xj RO] KçD{1YKQ'!% P(vaTW!+R.۸W}lDA@dBSwu?@jHvp'wbk\sK @m:6Alۺ2 ]D] R+Cq5ٍ)?l[r a/`7m.lCx7 KasT}#a !!%-T+atQwrjYbқ,Ÿ'/Ċ)؀Q"nb}#z%A$L"\ ޺<|0QmЋR  ~ :Qa9pAXla ap|I6 i 'y;rs Jp  .c0 #ЩA28[;ii%;RM `>|DBJ< Ur|`G)@]#N7q*q&~,mNdM> (g y 4-@iq ɐ-I0YHF|  Ћ1Y! u] 4!1(x - V@ Ӑ`  Nm> @!gy 7 yzpPG1Y l >PXу0Q(h0m&Ib1TF5/_'e)&_]``;NG R]MUQX!P w~R]ZMJ{up\15NA,' /&omaMRmцmde .7 l(;<E9U&n4a 0I`ao]_*mumPFUCĿD)VFsw^F h `, o@#98X$x`@CLh  ?X1a (:TLj'Naa2+`"N|$C"ԋp@%:Ydʕ-_ƜYfqLP0ʁ`C:chՄRK/4SM3>L0Ar(H!|ȁ<6s`IH[1[O#9DJ1J-vMg8J !b7{1aWrcMD$F3"BiF08`A_ dx؁|U`a/&>%IY,!6vhh>X?{aP('z!ϸ<<~@Uj=-zÑ:eTO=;?rY`A&f!}-Ρ膒SQD)#Mfm>l8 v+[lIfp`&f! xpeo}cKh rH!BMXT\qS@.'\QvApxqðq݇>PzlX|_8RylI>„F^4 Daqi±R!끍l, /x|xN4}>AC`1(&Hس<Dc59mya6N21fpb8ˀ&~Ѓ%`XpMpVHr"A 1pk{/0.}/(!̌XkT }`X1DP7[}W{ .9gNOMqJ5,k0" DH'@Au @ 6t,y@*GP6`9?@$pcN Z$p>J&Ê#L1$ Tˁh%v@x+mɖ9|&\٧c~?1#bBPJ" g$֐U\C<0T>`6RL_lTՖtlX) ZǤpb<9PF0PԐ A.aP>55YUYLT6)!r\d VeE%U@v Q" "Dv+>Q:8N&D:0E+A !`>2 kH@P'àa}fg#0օ\`4/T(e`l1#986"}l$66׹ϕ 8*x PBpI+@C0m9CB`?ŁR@9@.fԦ},#7B`B<DsfCD͠0^`p3DHf+AV 3 QB2B e' fFI(w:Aof(M^e8~`u Tbzm" hQ ̸> Pl($~e 5%>v69t. Pp1"˕ "CҗDg0$C< q3c h<! &-SS qKL\ +hH* < "C6` `MF^(9-NzEbm6.!tںpH*AW@  -Q tUD\aPp;Y vY h%ζvJ>kfF >0p|~;f=:@'mH꒔:(t 0+_=NWtֵDpلUŝp&BHRBagHbVO (BFN0Ub2P u0+(H4A 1@RtEۺ!c` k;@"p<0诲4KmȢrI4d]@Pc`A 8p'_(`H06cx{ /@bfXTEPghNsz3! h").ʫD `bʮħH.'dEx2`ʼn5k]øS=?W>H'XG(S(KPB0ʆH4@J! L 6db>p T ,HZkbѣc D.+([ J(\ɔtK\̆068W0 GϵWX(PnT(HXmK EhMCWsBJxK05 9JO( H@: P͢®P>6U^Q>;2VZRMɁ `34%Puڹ+Уx[xFȚ;îyY۽ Q œ<6ЛOl9ےPyhqˈ#"k܆RU"! 0#Ւ!8ppY`RЁXՠȀ ^1k5 Ie!a vˎ5QɁj m祔 ནxޅ]]_uH]fX1! ` y Z`^!rSY"+ )3֕."`8(< 4&AW"VR?P 7i|'Ȏ`` @)}tE *bfwi%V"h(:@1;"")H׭  V4"1($Jdd9X]Hdȁ pSFJ6i9( "(. (ra9Q.:QْW|#iAhfɐ#X`[(HH &!L 3r6#!hP)t2 rp0uRΑE0-pi_|fn qF gɱ5R{c9(p։AhQ x8h0%pY&pq4F ߁i&kiϪXP2V:1:fڜBENpB9)ˠfB(KbLaJ4"PcyzaQ^K@!llB B,gA }צ7vc"|A\cd{ (زVo֥{Їqz1^릏IBod 99,>A,o"@.*p`B .KK Wn fp17^ZFsp'od!7f^ا` 7rX,'kx '؀pn _鎎p"rBurBp/:q761(W;> 2q."tssJGqNt--Pw(!)qS A@r@peAOBs(Muavܱp]4?v\ =s`uhgt]/v8^mgpgUsNsOD=7NowB'sfGSwL׌|Ia{wpywLgwWx`fzsxݧw%0,yt \,se:1(oy|:y '@  X?zrG:xةW]>tz 'xGM9g{Gj{Mq{'@7×a"8HGwǗ@'xʷw.:QuJ'ҷ zW|gׇؗ٧ڷC}PO'7GWgw'7GWgw,h „ 2l!Ĉ'Rh"ƌ7r#Ȑ"G,i$ʔ*Wl%̘2gҬi&Μ:w'РB-j(ҤJ2m)T;vDj*֬9u+ذb'Nk,ڴX˪m-ܜlҭknȹxw .VĊ;Ջ1Ȓ'Sl2̚7K3ТG.-QԪWn5زgӮm6ܺw7‡/n8ʗ3o9/x:䁷o9ⵣo*{yo_wgu?YS O !XyZx!⤞*Ɲ`z8a)-b@! , 2^[H*\ȰÇw@Hŋ3jȱǎ::8ɓ(S\ɲC2D4&JD?lɳϟ@-^lӧPbhF?tx("VKE4j۷p/xݻx˷߿ L/ˆ+FǐP6˘3kޜ-ΠCM@S~#װc˞mvۈcxfag 8"\*h .yN]~|a|V}!r߽ e[A[0@8mI-|F(Vha_\ᆛ5ᇖ X C`,0h8J8 >Å0e'$j q&pÏCCGA 1,e\\p@i 1 " 19)Āc5AlPVeMH {@A9|WX`3  2$gh#%j 党q̥0CAСerf P @n@Ŧ`@/$Ơ(de!ǠFgQs&AЀ4kQ$ ܎U1|@CBP<@!RA%Rm AywbY$PF%$lɱͅ,,sCT 84AxD1ix G2L pM,c32CjPR3 &mטڄlҗ$$)QD Y |LޖX 4`P"X饸AKADq5|ꬷ.n;hd}8+yA!P doP Aབ BT̠= $_ǯU @B 4)P`PihNP$O dN 8HekTb> Kч><0 A s `0l F8 = 0C"N<! E'V?HcE a![TTAtD38cF ! ,8pH*\ȰÇ#JHŋu`ȱǏ CIɓ(S\ɲ˗0cʜɅpɳϟ@ JѣH*]ʴӧPS RիXb5Ё֯`ÊKٳhӪ]˶۷pEHoݻx^˷ߠD Lˆ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȵrs ɣ3E4kJbUB%c /wE"u3%ؐ+k1yX  Q@9%6<(p P0P@&z(]uC 2U 2 @@B6v PeL6PF)TViXf\v`)dihlp)tixyp T rT'F@s ```vi$KSޚ p!D}h0G@$DPbBEL1PQ D wIPr!ex 3@@BKE$ * @ʔh%3 XзQ1K:8Zi"=CpUH"@lX*JP2!L)h;uD'+Q AXs) @J<"*a(]%w(PTI 1@' $"9`dB 8`D,lhJ .ŝC L(+J0sBBxt=,I'M Æx[ #PB 95x!Х C@ 08 1aw =C0QC ++A 2 :Cn{`#N0BR! Ch쓁 d) 7> dU(< \&0h8L []w:: '  T%A0P % Ă\ 7 ?9 ?!h02ro!%aèBi\G};ZJ9JzļX 3!a Rƅ.X:R[XB&b*"ĔTe,RB`t @PA}p!4c @*(3WGzٻÝ T$Zzֵ!?Z@>ؤ! qխ` @ּ3M;T(ATpQk,@Iж#aNv@C@L \Q ()Y*D4?7R0hrAll% RpQhXE:^r6p!3ω(puIs|% zFv">gy" x DV0+ 1; ;@4+ "ۃĀ68cS@l *w"P4 + hid&N-AtD`` T ŴڕR+, _ٞ:IP+tlǪY6M 0YU6 qA[W!8|r M`&`t+.gaXpDVr>Nx`_m B@_.IXB` P~caXpW8 bx   Z`` 5 X pPB%DCU i  rp p[ΰH H0S;Pr ]z ` SpHJ tp bL `3@}p U*0w+a\0 bpCB< ,lBis<Ĉ p pHP G\`ΰ 7TB1} QiyC:3 Q \ S  VjP +} J@.G0+-TG @DCZ` 1s9GPT`\\ 0  p  q 0} i vt٠ EI?iP8 h,LtŋNd 7q0Q"G #Jx$!$P1aE\ 0"(@ )>4\M1ATBrFBqp`J@!0 (V0#V\}]/IpYswJǞztҩ^xɿx9."K FLO#Kdτ~0=!ĕXOJ(#!Xbᤈx 3dBxKx#0" 룯Dd̐G p0x!Xaf.cIF!> ob/r 7iLbL" ht" C b)J#U(uza7\]\YFX4K(p ; Biqp{!4 %^pVX0GLNRMwq-gɜT Ҿi@t Jo[q%vth|HB.~pv-!^`! ך^6A"|"vډ% 7(8 H`!Jv|!,ixbmdFdb Ua^stCbs&"y-rB}/xE7!lkA`tBXZ%X#„!fd(ג)-d^z]bI.Vŗ;KM{ʩ:u!l4Hge7slxP\a)'r59,aAt谵koT(YlH!h V$J9@.TcIԃZɯf#x?\FS ~0Ds sªEY}:K`K.3Bta? 64L (eQ`?,i.pP@鋎\<VkoʉBd $ dd: ((%~P+D`/ vFgA H.<TPEIBA%yh$"N.)-yK fE,j7ĥH'9U˕ӁLetfPL=1KeIMz`c E+:F3J$ @`ZL&t Up09 SzH 9qN\2/ h 9NrHV.RAAqwa/+XK೷1%asFm4 L:%ـBFHzĩ#@W2>Dz3p!|>ϹQrZj]aFyU0 8R0LD]С:00UuêU|b>YrA^`$DKYYso’\?0Q"x 83yp4t't~G.38 |F haVyƪuFj8lY*lt┆Q jBN3V x":քB%f2 ,;CT2u&2rpc@D:-z?}˒my`(`%ٟ*g!I O8)f`rLl8˝6 ЀNvD() `$'x %4ҥ '={ƭe#-a\YK`bj4ء+ho x8~нh P#n%Yh R*u [%V``!bU19p ]ւ0:ۻQ@p%A_:`z?j#(KMU`:LQ&8[ \@8Kf'^hZ'\ ws9uF_qITiZj{> ^%"pBp8nݽvVC #T)ȇj'7hp[fmG[\z9xI4@>0484T߹Vx@ 8@=c ec '`ذ~ v (R "04@(@(E  4@s |Ɂ@%Ex$` # 0Ad@+)e%j h&%0thZr x@i"+ `iB1r𫜸 c (vwu`?p * hk 8 `; `! p-PpZC2 S ?SΈ " `+lp P +P&hB%c hЁ&0Shhi*́F, x+(ۛڽFɺ\çɒ`//Prv؄%Ѐ1ic6R`XDXq`e(z hzX|`P`-Ppu'Q`-I(680@0XW/@TxM*X8(`@8Y(x1@M74LRH PcP0f@I80@RPT؅="NH@Eг p=A`+(C@02 B@, =>h@M;@7hƑ02%Xi(&p}(` ЃP9.}`x2w`%/rh`i` i q`tIwjrH3+uPMxpPUo1r9ouЀ/ppP99PID(id0+`Ji+0Y@\@B`7\@r&/(ixhYȃ`+ X.#F=s S 2v8 ov Blh90yzvP^qP `zɹЀ?#BxjHoCiЇwh;Ac @fЅQHk*T_p hjxB8dHI_Wh]X7->0NWK^#0WLH0X`]]L .`X@Bc t10JT8: gcxQIP@Qh'"8lh87ڟЉ& &nhΘ uN/[hxw`"JWuX}ЃEoԇI5rSxx"2(jb7}/uPjFjvP [e .6@Iy)x{Hܣ TcPwP&0vZrXdh\v@5(Yl\3rZܼt`Nν<\S@Htr@(a@s\lvhN\\, :8udb {-Y5[#;ӗ;X SPQ88 hw%hF|\ oU8ey`zp= "'pEp H7Mw"X2Ip ؀=)0`* _(_pK@.($K X I@H"EU*PkP6n(c@!0`"x `6@taH0(pTh5jL@0C9uRڀmi``ܑۀ &aYрabhN))E5+Qv-"ȅPUy}3Lr Fo A- 3p)PT= [{|i <j(#W>69`M= I2)`t+dv `O.r+Y3mO]OyP(+h(<0S@,&P& v,vlOh5欝Q7rU"e91CxyAj8w8}%Du}xI=PL} /P3U ;hIk#q)y A ŤKX HGEp`J7BHAC@I(c9HLmE X4f00D]KJ#0*V<00pQmJ88i Ylxt07ti3P&8YP/ ;i  =`?5hu0UeD Q6` z \6l3/(+gP'X}1pSi oe`6P2zH)km(Yh;hG0yȃBT\\Pl27obole8F &X X+2łv G|'qX-:%,=%/0-ebx|+y#[+`M^h-^L CAE݂?=%p+"-8y0uzxvuv^ m lk$d9665؃k N؂W@(*XL P"_ XӦ`01X Pc c1$Rp X*$@Yp>1c8 :'@v$Rum4 xxN ,(x%B3(rxxiuZ)ł@ %} sp=D xxD5\Seezp%Y%^EWZeCLЇo/Xk'o @qAuvȅ%Pu9|Ldt,0S]5ixiҚGG55oOzYx7B N/:hOh,&F8l xuOkO\%X26-N(\@> `(XЈLL &bs&QϞ>eVG:6GOϟz,;JwIDTqo46TP꙰_ςadMHf=Ku TJ*̥k~*`Ugbi cZAbEl0<Piz0ƤUeJdq3usڸY`VP„RDHD%ͳ$l$|41avxhRh^93AP'&# V~DyV+`N6N'<#$ [?\0 N&H#S?S?}HOf <҄sIG3 B2@D\F=IC%ID@C:??le1el!g`z|Ve!ErĦžazK1>4/ HLT!TP`T=<S!nUxVn]T;.E0$`\` #VGFQſELQEGT1`@B %X3?Do DoHD)ID%pEo\1 A86vhFN0?l\ZD;l]_H`~q O̡Dh@DzaZl ae}gpD\ZХD40z*hpotD!dWxaFfaGv@aJE!o@WmF _oA{{N\wS_AίoBY1`R(1 % 4`"p&txh 0 B`t@<@*pd40 pq`K0H cA2 À  Q>B8#f 9@ YЃ!< *v>"s0QDE @*  \u#!=`?b4#A `)# d&A >a X0䁁#8 @ 0<0*5&`hx0 \d!N x=DFx/ t L#( L2<2}-+ف.p"H`J N :0< pPق$8Tf(ҴTȃӂP OSSRDxTL/6RrZ1d0NXr9jVIVsC*pAJcW @R k$N@c;Ie{,Ld-hM8a[MU4T-wӦ0%Y)+)].s)l"XBR !,J5 %`mz O20o|EΖ7bo)L ?(@(*"M3aGQV&PGM@eA8^P). 2(^r8)X,Az0ŋ"zpߠEA2EUj "L?&R/ǫf4_o<.Z`nGa ޫq7!: sA/3 (!72lg!xU^>:;c{}?ަ޽Ex_Ţr"Hy צOmc(h& 6F(Vhfv ($h(,0(4h8<(C@ : aDF"aÔ<8 VjC0da^^(BdifDXF$g&i<e:M$0 ܝHA`˜YP] T壔DBFh@D Bjʩ~@;v*|"H13/« #2h+ ٚ @@ƅ]>OuRBvNp{+= # `@R卓>8 _YQ?ay MPwc.NE@oxaFT~p@XDA l BGd>%$פ9Cj&dBu BRϭ"@itL*WM6! ,8hH*\ȰÇ#JHŋ`ȱǏ CIɓ(S\ɲ˗0cD)EF3sɳϟ@ Jѣ AʴӧPiիX^$5֯`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ G ΁S>8@ uPA`9^Ϟ ޾K q!dfq`E V ÂF(Vhfv ($h(,0(4h8<@)DiH&L6PDQfA:P@6ؐA&`ɰy9$0Pu!-@y rAbp;q&`&0 208ͩ `=o.(+xkQD:Yz D ˘wLCԲ03PǭP8tKUzOV+̪޹:d=ju\D?E! ,;eH*\ȰÇ#JHŋaȱǏ CIɓ( #˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӋa@zq44#Gۈ( #H[Ȉ2Fy)(h A @ߎ@e$'h& 6F(Vhfv ($h(,0(4h8<@:#H7 ?FMÓBAp%A~v!&c%Aou cUwrpvE@8Ef0H ~ٖHp3T0"Iqlt { Fqp  LwA L ~d{%v&AM^?乗$ ;=nHf{ & @C>m C / .k 3D@[=$.P@0A/Г+> nbkй@w<`=)rJ,,YF,qP@! ,8fH*\ȰÇ#JHŋu`ȱǏ CIɓ(S\ɲ˗0c7gɳϟ@ JѣH*]ʴӧ)JիX ׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻy}| $ *N%ճߍ@+v`>aOϿ(h& 6F(Vhfv ($h(,0t3h㍭>9h,䠂 F@:hWa4IV9 _'X_5@/g 7]t@ Μ0rpDim ` ԍ $''mU`Bv6t* ]ڙqa“2@j-BzA,$q> уa9(AbNC}u@FfD\sе:ĦHqmc  Г=8ncy>c6NPoA= wVlٿ kGpþ.ČM>KqdƁ` 30SD<! ,;cH*\ȰÇ#JHŋaȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMZSF*PM۰/Fj6DȈ"R2`"$NAEA[9R<[K CiSC͡(h& 6F(Vhfv ($h(,0(4h8@槃?dB_GVA> %MVB XV_dP&fB(@i8d:&N$0 ܜ|8A_"6d@q)6*Ch~`AF:)Fڦ 6 NAFZ*a`) @@:T<*CҚ?F͖+δBE r 6٣FI*.`@f.^;99C! ,8hH*\ȰÇ#JHŋ`ȱǏ CIɓ(S\ɲ˗0cD)EF3sɳϟ@ Jѣ AʴӧPiիX^$5֯`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ G ΁S>8@ uPA`9^Ϟ ޾K q!dfq`E V ÂF(Vhfv ($h(,0(4h8<@)DiH&L6PDQfA:P@6ؐA&`ɰy9$0Pu!-@y rAbp;q&`&0 208ͩ `=o.(+xkQD:Yz D ˘wLCԲ03PǭP8tKUzOV+̪޹:d=ju\D?E! ,;eH*\ȰÇ#JHŋaȱǏ CIɓ( #˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӋa@zq44#Gۈ( #H[Ȉ2Fy)(h A @ߎ@e$'h& 6F(Vhfv ($h(,0(4h8<@:#H7 ?FMÓBAp%A~v!&c%Aou cUwrpvE@8Ef0H ~ٖHp3T0"Iqlt { Fqp  LwA L ~d{%v&AM^?乗$ ;=nHf{ & @C>m C / .k 3D@[=$.P@0A/Г+> nbkй@w<`=)rJ,,YF,qP@! ,'Hu(ǎ TC/VȱǏ CIɓ(S\ɲ˗_Q&͛8sɳϟ@Q*cH=C ( |h 2}h uPUԠhӪ]˶۷2KUѣn0p G1#^@Jj׷#KLZЫōD |w.\h۸s.x@Hc;(XnΞ fͼy@ .0a : Bxcؠ㈂$˟O[kW0}hn A2 A"Ā-3^ k f3Sq栯IBa 5,Βx;^H!.[XT*?TԂ LZ ]K 3 N1~3 IS`(̓"$/`0Pc 38On[< 젆602g0,s$BG<4Hp[I`5-nDj i4<;@8eSR @.% ޥb $9t 銽> K/C ', Zr-z< >0?.9H1 wyծm[lK"d̀>HY'MS _P4KODY vжwLEK۷3!W:$H"9弫D2\&fp }A9g鱹AU[*P2M=Re=*xJgps u7HF]%t.m{ڔBXJd{U@^h~9!9@_ av3I +*D/4J=RLW$ B9 ~"%Hgp$UA>L! |hC*!* k dB.?] W`|h P[0 8USVE gƀ';6W)4Uh`f aYuSX g&@Hbi0 6&t]`Y}0  hz\ \q#bq`8 UIFc8X.!~!ڰ-S/x$h)ap`ZV]X[ ` x]WSp]A  ^D`T/ >' ΠZ,cp `KwH܀ P! 06S| 8'0Fh!{(smW1 aЌx0`8U}؈haHP|:춌Gn `*7pW  [Ub嵐2:dZ` ppXJQpQC7wuhd@|_d<͓DPhAEy_AH b0aMG)`X25Vefa(dQf)ig[I@!_v ЕP9]񦕇7_HD{IBI c`gHxE90wFP>j0Qx~  QqB@P:9P FZaje*-I/0W2Cs}>RDg6 wDЙ-I0Q%&`*΃:BP@->G~t':_3I@W4sG*PwZY$2Y22p:|:x=bvp7uchqhB.UCgD2B*+9p:238 f.C0biᡭCJJ9uA䆠C jvLᚐauUE-%1q}8_.Nm>b5^F6:cy3a.!@&^+i&e QoΕ^UUqpPu^F?`5o032'#"$NLC#eKs'c()z h aGC8Q@FUG~bryp(#I)`qc>Н!Vqi1uᚖt:6JG73q3 1ٖ8`5%PkB8t;Iz1:*Apq=PzQ2exn#Gn٩ajpg:3p$t5.0J.90a'E[CT*(k<aIaIA*4N@s^u.e:,31$#I3Dje .Q{e:@౪901@9&g^CJEM(q.LViy#9>ykV jA8!Ѥ?:Dhd6YTLKzS'&5 O3 | eh@|L)qTe$0yL6`^L6A?@76+;LF*: #5^KCQ> a@qij7A0(PVG6P2 ٷhU? ]}։CFKFP[]3X[scؤ%C%g!]sW P[fOd B@<yHjQ[{r)vӅ= I'3< ~VB (Z X1( U !pi(73`m OV!Y0 oJg&gxid` qy@psLGQQy\`b @qOi  q!HYXp Ca0g  q  'u "@l!`pL8T@il[qD̎?\q\qcbtC߼ 7a0P%5…5_p` %@TYPG*&H`Tx /xLAM+yG\Qa X)f>Yb XD lAAW 8="q d4 @-LD5p _̖qVqhl EEH=9HiKӣ@}} pcKB6 " e*dQ\}?džaqAAВ[q] zSfJm1} %@\,q`3!a}P.fm^ ^x٠hHqMX9p; @oņT@\0X E@5\`af@`:`*v ݁f,9PAV5Rv~vIc!q0 g| 0 0 % … Q0e ,&ܐ9 ,qX҆yP0c:Ѳ[9c t@Zg +n>ܐ\gzUb] : {a z6 {Pf/ً8E3NtG4]UPG\KpeUr]C80/'0_S g{VUiFE\U!!!@g`6^{65?) f!Qdq[Y58^J@g0ye 0Lg%B&_3+Dp; ?0yy^ 5BF_(@B] x:u:qS0&W µ`E`m>+?A+@zw1h~77 ` NHi!*/y7 8ThBBT, JVWh_ $;W)ә^ /X'lE)1@/rhXKpwhA,cEA{c !,X ŃH`DD Lj4h̀S&L_@K=}SPEETRFő=|29d# 0`X!"G$t #6pѣK@|$5$I|83 |C22(!R2l Kl|9XqY Gc3R|YŶK?I,@ kCmyS 7?ey'tx @{8AazBVXH8!: ,p+ HKJ0Kb~O`bFk )wG2 'hz+\R&dOI݀B/xkz,xa-a#tXA+#聈H T#tQHxPH'!"&TPmKX2=\a5{.mzP8a\i+ aγP=Jtt`N$CFOhuM܋HKH]s#uXx-p㡬8Mc h&1b')"Pe !4ɲŪ~]yu3+2+ ,̚ND++;a~ 4 d\S2+dup׆<͇DŽ9"han*8f,["-feÏ l@D*Q~d20"X_1ALɲb KxK0a=,ZBR*~2݄*s̊G>y$i Gr Z&]ؕ]Qh8&ݪAB!HKSVKS5C"խ> F`%"( ng+ (dDq8 @[.>\ %p•`2>Zq7@ x` \`z IоBU*7e 0Gt#tÒĤ=(kZ@^mX1HQp o{X"d"Swu=%#n '+Ur%$'ArB&h@yDd""aFpP`W9nM&'  *b#Jr5,!2!l,?HA r=@Ab9,.R JfAEɿBP ! 4@%t/LB0ˀPҁ b+e`M δP 6 $͗d0C07I 9(M`ѫ`_9ӊ2j%Vndb2tNLbK BX J)ҧ?Q&, ` !P#Ւ2}fB$P ֫h$< p@IXyTL'4h>9^ @'A9`/%*pN:VjN2UC(hN&t\b@I&qK(aF{V J`H AU].vNn@aPLǨL`4'H_ ^, l Rf ԴZ0`YQ+QX9y. H"tP$ (a# =*xV.   Dȉ@ |i"   (h"\&FA}xTΡ `1T!! %֔oD+ و%=YT8 EAA * sUT.M(#MhD3\TVND =erRLM(!' pUMtNR 0J0 ů=%aC ƯQi$!J\f"F*^1 - (Q@SQX+~PHOA|a ld0Po8*$ydx@89R'6A|$k$ A= @  mj8C%^ w$9!]rƺ6{@0(@Ʌ ^xb CN28XnA Dhч ?a-?Vzn4ŗ8!As|Д0r0Bh@bp9̮lD I*&51^ɒpN(vl4@^yP@ c.(0/,:1xN$r.` O,'dg^B21؅;=Ȼ#@1g0KXH >(/c d>#*bG7ZӅX5x:1TH WTx: B>.;* z7F#_>0P WmPHk>I86݈YAJ;'8/ Z@ۅ ؎3I[ВXx=л9@94;8P@B>H[b$>=4#$ƫpQЉ#&xA38$p;5̉/@D@05[#r (Ɗ#B> 9G6C+AE060X/'@HH@=oC p(@X$ ؅ 8HȁsB 3^k;#WD 9=TID>P@I T9]j@ȱC >L4081 pTrBhN;nHpHʉt#K4 35ȓEՑԑHq@4Ӊ*>@<΅+( /sH`QhN\³P5EMrIIـ68ЄN $JAT3@%% Ѐ)@4a6XM[$09 0& ؤPU H:M۴[# ']$ gс2؁ѨL`R }SJ%Hg9^#@^#M%O [B-a&(z&rYU}3x[H2 ! MR[:S'&!a b$[zk "Kﺊ 0a8H:(= &H#&Ȑ)a%ȁZX%݌e$U$!E!\WЍ<ы` U8WJU c0JҐݴb xh3 \ +b)@f∀2 )  p4p9W$%Iirߠ)% 20Pc1ioG2%x~Bguĉ9N>"$2o~I \4լNg)5l>\JUi͖ݡl~ 'iFH>b~ ޣr'xeȞ0y)'تK #0 ڲԉ_ y 1PNA qݰ. Cgɐ$+c ؁@gU%@0ii / ЧO ' 'u%8!鏚fyRi  㾒W(uu :'#tl{) p?axD^U88=Y:P 0wǁ} i9TIOJxJH" HPN=!Q4"X0uЃSmؖ.QS(oD# 0O__ lȓ2 P 2<ѧhȉ}(M8s"U S .2RVvguY5ct{} # сV¦ڜXP''BP' 0;&cY @V`~4 O8T{@0@@sl67lM88KZ_'"hh8a ^,h9u)l s"9mh" hv!L(pPDžw lhaŅ0TQ  F|a&0&^a%dЄ M02pϨL "(S*֬Z\ u=HĹU+ ?~,ܸr'96-`DU6GxP@_K͚@k/1"ꃕT%K)TP 5ςHpBtZD@lA*T̳2`Jp)hxH8 &(+ٕFD݃!2p xq\S:xN o<.xz#{Z6ӜE;9⪝SK Ѓ.t%q9VN+Ju}K^Zy+ 7ϭ)*]+אBerf^r]^|w~d#~;_^KmINi _/SfK?wWz~=왝uǾ=sӇ7{3! ,'yHԡC #JHŋ3jȱǏ CIɓ(S\ɲ˗0c&C?dɳϟ@у!&LʴӧPJ0cF!8 ԯ`ÊKٳhӪ١ڷpʝ ,o˷ߞylKÈ+^XdNX>`k)>!v^2I2䢡 kͻa,ba .8'K/CA3q$ 4 `co8 @~tAd>:CVF JL KAht@v (C() .4h㍬c <4(&5HH&$#,fǍA@<ߓXJÖFF5fO]QYYДR%hCpNsqI֘ɧNh)(A`~WSVh}2Ӣ:(]^eAQBå T%Dp|DT9) Uᗛ@Ī@j+Yݚd+kp&ۚ LXK< U C&fܞjT+UC"øO%1A+E@ -@B@"r/a@\@t2U,E95m T2! !$GD0Ȑ@LLJ%{4sq 0CAe2b @@M_x3P %[@˽u6K5i2Pa.+@DqEP* a4)lt=Pf:Q/?~P袃 >S !P|I, 5 a}w?jB觯Q\oI 4Ax(H0, a$@*@M 0HB$4ୄKZ0ʲaMHq8DEQBAADG  -آL!B0`*"L KHK dD ˣ IBL"F¥r/@y?.cxrp@ IZ)N)u`T|`HAK5eIx j  IbPdZ̦6n>%W!)dW2s\#td1 ]}#;7H@!'yj $#=/8 Ma 2@ BPTIXHh1 H8GQB~J^ d3ۧ$?Nm&!B<BяB x @NR K@ Ї?05A@\R\Q!O!3a=Q=@D0p_mԑ@$dO&҉ .$f{cZʔqJ(: *%DO18RDZ$B Hv@qtF5|=Y8&,2-[6I t|,$[ ہP%2(#.T T "r%ض$?01vЅ'UE+$*[R xKFg@$ 8`U%HBFuII#T0-xI%AfB d Pl]ի& YH Bf@# ҲJnL`h"y{0]_8  ! ,K8hH*\ȰÇ#JH3jȱǏ CIɓ(S\ɲ˗\&̛8sɳϟ@ JѣH*M*HҧPJM*jXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞ݚc͛/2 (eWQqJv #o/ xnrE >lI @!6Ώ9XF9YB}AY]  9",0(4h8<@)DiH&L6PF)TViXf\v`)dihlfRϸ%ؽ[alt@,j{ *t£!i>B f ,a `كl4`뮟a 4 iK>qʚ,rƬA.5VecmVWړ> iqfs@)A)B;PA^D>,q>. sOϿ(h& 6F(Vhfv ($h(,0(4V8ACya<*/όbA@nmUA< RVvRH(|pf6DKf^jyx]sПj CZhV  7dOA-Uy䤏>TYӤ} *UP(N%PV_f b%> 䅭W)VeB8 PmcP A%8kb@% P0[S;Ý@*5@v! ,H8fH*\ȰÇ#JHq⏊3jȱǏ CIɓ(S\ɲ˗ h͛8sɳϟ@ z^H*]MJJ5*jʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M.H"dsN"(μ)PGLT!y40_R2Hr Ͼ~O6Jbd2h& 6F(Vhfv ($h(,0(4h8<@)DiH&/ JnJ&.KQ-@vX@x@,r^lٓ& AtfIg !Pv&KFz袜m=5(f )Yd?ՎŽ0@ DRu>)BZ~eF!o䤏? d&[V!3K ֎Ef d5дU toh@`=vA9<ϻ&0:j 6?T! ,H;eH*\ȰÇ#JH"3jȱǏ CIr>2%S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹0b|6cpȑ ‚a\-d] q l} HÆSSX 7NsJ 2x_:Ͽ(h& 6F(Vhfv ($h(,0(4h8樣R@\ s3(yN'`Dy]Q Y\52,@m dyBBfg&)IămwzDk&(CqVADC5(IJX*'ՄpODh_q4 j=@:Z`T@Ye:fp,f.K=:lfNKYD`RD! ,K8hH*\ȰÇ#JH3jȱǏ CIɓ(S\ɲ˗\&̛8sɳϟ@ JѣH*M*HҧPJM*jXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞ݚc͛/ѻTEƓg$@s<K;O{O]ӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,f+\rD14fAX0Jq3 Yi 6hp@d@ <B Wzf ,] `كk4`瞚a 4 h}> 0(J0@ At'P]OJ /A9Jez讖:~5O4J\`?lV?` $\4A! ,K;cH*\ȰÇ#JH1b3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3kcd1 ",@Kհ&2"r@o ȃ$Ge@`g(TTiPߞ3Br#>sOϿ(h& 6F(Vhfv ($h(,0(4V8ACya<*/όbA@nmUA< RVvRH(|pf6DKf^jyx]sПj CZhV  7dOA-Uy䤏>TYӤ} *UP(N%PV_f b%> 䅭W)VeB8 PmcP A%8kb@% P0[S;Ý@*5@v! ,H8fH*\ȰÇ#JHq⏊3jȱǏ CIɓ(S\ɲ˗ h͛8sɳϟ@ z^H*]MJJ5*jʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M.H"dsN"(μ)PGLT!y40_R2Hr Ͼ~O6Jbd2h& 6F(Vhfv ($h(,0(4h8<@)DiH&/ JnJ&.KQ-@vX@x@,r^lٓ& AtfIg !Pv&KFz袜m=5(f )Yd?ՎŽ0@ DRu>)BZ~eF!o䤏? d&[V!3K ֎Ef d5дU toh@`=vA9<ϻ&0:j 6?T! ,H;eH*\ȰÇ#JH"3jȱǏ CIr>2%S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹0b|6cpȑ ‚a\-d] q l} HÆSSX 7NsJ 2x_:Ͽ(h& 6F(Vhfv ($h(,0(4h8樣R@\ s3(yN'`Dy]Q Y\52,@m dyBBfg&)IămwzDk&(CqVADC5(IJX*'ՄpODh_q4 j=@:Z`T@Ye:fp,f.K=:lfNKYD`RD! ,'yHܱC #JHŋ3jȱǏ CIɓ(S\ɲ˗0c&|(Ǐ2sɳϟ@A>ā)`]ʴӧPc!5Fkf .䐃"`DΐP!1,;"$E>E @Iq"VQ.!@\/@90Tq@0(2]#F@9(b~ܡPMBxDd@Pi0ir@LE D!! t a$C5$D )1PMP0  z9@,` 4hQ16FD 0܄@Xa}!ijDa@ DpF@d rUT`^Ai G A6b949 @P$o#@ 9: 1 V启 ,4IaH3KNUkH ‡)DmHRɀDϜ "(W a3!5N €8LH&H2KbEAw)@MЊRDR "n 0aV<@,1 "RQڣɱ-!u<_x!R K$'IJZ̤&7NNDJiD``Fz6ZG(Jvdqp$Y/(%i PWAY|fVfB9 J";jL:v)@w =?"Jɂi% j-q %h9IR"*Ijtݐ8q>>  `Gzw<Ц,4o02P'UH$/UAA#<6Z•\$٩A:  @YJ" '9@}T)b@!px$VFjAU(yOQ+ a $& XuI LvI8.e]J\wv UI$ٍ8=RE$W _}dǓ)A:կHc8aOx@d/#+hKޝ7P) +1@X+ v$>. ^hAvOBA!s4* -N*xp40OjBr@Jp@F%&ЁK1@暥s$68 ʉ䓜:&s W!B$.}.G4EhU sRuI8? Ap00q H"$ ! ,'H*DC;JHŋ3jȱǏ CIɓ(S\ɲ˗0cC?dɳϟ@ѣ!&LʴӧPJ8cF!8 ԯ`ÊKٳhӪۡڷpʝ+,o˷ߨylKÈ+^gNX>`k̙,D>#v^͚2I2䢡 kͻj,ba .8'KCA3q$ 4 `qo8 @~tAd>CVF Jb KAhᅉ@v (1C()h .4hc <4(15HH&7jPf \\`=y9PDfj&ETJ @; xZ%Yd`d:OUXᡇ٨O $(yI 'DѩOa%JTN_nS]p++kl,z60aŲ.mY% ڴfvQކ+V9C RzBBjh9n>TPog,@  's!CBpdNִDPä0 CB(V6QB1(qՌ T# ,LQv.@It~%Io|04SCp 9t/קKGa'P׿DBD_d [a`YAJyLBAx!)&pPU9l bХ15T#AiI mJ&s .U ]A lА"4ijW֮&bHl-b&hm P0 %ȩNc@$I r:Xv"lmt WI5ҭS+5Hb: DDŃ2UvYEWgUK^y-Ej_e 4Z`"{p4= ,&(pp8?x_P`nMBZ*Npg|D3^`<\ 0 Q+x`"0M`vs07v1g~0@G;+<J`) Z12B'iR BiHs)3ش\?2:|By (D*< M@. ?C>6%M =ޠDiV bMh4hA Wu0 x;A ^dl`{dv:_Q01 &elCBذj%4`\ W@0 |#MO'4<3M25a =3 nK(:0*X%d 2΄mc:ЍP!BXPeC 7y0X|Ľu`xؾ›,,k,!zqlf :(vh#ЎBwD;ic p-\Kw0tj vﴴ+`:?kAXX-x1bq l {@XvI(261 @ `p/5<(0Jt?!#1a$#\PU`Q*%(@&A?0a%"bjgZIq=poWpq70A@ `B8]p"*FI'K@=n4:cEgiV}P#@$0*=* Q {?zhfF]`vKUPPlG"01*0\R\#a%@aS#UGT\< lzHt`@4K6"r*y~?ovV49E3@!830:#0f0zVt `h Xma$x`PFRhQF()cB„bEX  @x!K5'oֵ)9@嘑]wI!I`r’/1ɏ496ɑBA:Y=@;I> :9%yR-Gɓ”N9P aXIQiҕ8lɕ @(&2_PdЗ}x-Y]ڲⓇ! ,,H\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cv"e̛8sɳϟ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻxc߿ L8 ^̸ǐ#KL2AA ,k W@CMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_ϾHbx@Ľ}>}0 J""A.t1%$ TmC@/7X<`!v 9aW-\ r C`$<%3'M }NN@I*^YpU><ĂO,fh%U; & %\'Z Ҡ3'g/Be e'0C}I)c)@.pzidK Z@R *8Df=ԡ+çfR2  vBN4$_+F@0Ћ@FPeP>CCj@ "x [0a !7@@1 $6@l( -/vёI yAB96@2J 7V,o\gt@:ٵd|hW IDNt/u=P~\yӍ@|^" +x; -J;䐧w-Cꬷ.+\"a1?k@&X0Jni h@B VIH`)CV9lgT_ CG| 67ؐΘt@"o!*_/h (AA@c _AX:D>\a Ә2 :"L aa`C4})H5 DO$p!E`"# B80 `E @ƆKIԨ-ďD:  CjH~0aFw(H6<6&C ~ NjvB'uRli_BvJ!D1"(~0D.03`@6Ѓ9 E6jj|l69=zz5"sF]6"́a  k= #A :l3hT І.T ٦D'Md"ek. w3,EH!&@Npr 8/ Ѕd CB@Q@ P : A*,,i,uTa bH5#(@ `O{ь<*0A}B!o B q(C2!< A0ʂl8'AAD\,:p@ V3uB9eY%h02܂\@mC2ˢR&u I,ց2ވxVMSDj\wD@Fȯ~܂8UF39 @xL'sB0F@ Ihkfc!sRT<C"N`1'Tr, Y!#7pAl`? * G$ y $ h`ye.1ax9"a<m1 x3Hx"B(Hc FJ %(fj)x` v|:<֜N4 =JM :(5*jʨb:hj:T48&em5XDS<>σ%J- MJ3D~ջ3.c  IxE݈IXWgBBǐDzX{Ob3rRgZj,Kh#(3-'!#0d9$P *6CW ,T,3#<@3Av4ϕ:`N2`np{An ^/ #!S6`Nc_s)ۻz,Pjpll4A6N=c=<_`j4}"D3dҨ&>6Z M #p5h0069[g O@1Y< `"gاSH 0@g  +Y]^ \#Igj L L,iU(U<@z A`9N ,׹u1hn 1`^5x `԰ Opl@s`6cspOeP oOzpPH "DP#ʭVH`d_$jHUSPQSP` PE 6i`JPSJ~0`E)ZHp hm`!9G. rH * `Jp 0";J t G !`]`в`@3p@_ [`^^fc PM`89 Wp \zu*f `~8yZ PٮsDںFgڭ06!_0lSl0FR [l_@#`dc0[]`ֻl #4?RAf`W;=^`]@L<Ooz X'vPf=`NпklAi^¥ԷlK@4٬p"n#Я!n_@dCsR` p@ePJ itIeT@Qj, p   0 8p  UP h Ȑ~ `K  ` 0 ^`t` 0 P j# P G`ˎ pțܠ, ` {˖ -[V`M` Py@ (6wvDHJ 0 !0 [p V@` HL,# 0p p 0P  v0 `sPƀwa&00W c < M0 i k0MPi`؀ M0cPsMp0p&0fUd ײِj Y˺Tj4a4F @@gPE  7Jgw %P҂` ` Ȭa p T@Hנ{pS@ ǐi |0`pi Ep @tP H@Vp bDJP%Q | jUZ ڴ - Q@\ჰq ip Kڐ ~+ > P!0L`M;$Lqp'v`DL LƢ@3p Jғʠ@ 0 -wp00@ l0#pn #`Rz@0 dh 0`` wP 0 w l MP^kpvy @ )9Mf0w Ӱ PW$: s#@wx 3@ÇfTNt] vF @nLO lpF0} ;:B;; VP?z" 0Q T` 0i0 P u2@&0 Pr 0 uo t?P h G P U`  1Р  @3h` J }`p t !eJ N l= %p%`-`pP uo 1Ji(Q ߜDFX4,L/.]vfwh` x^l4cS<:"8^ZMZߦ_%Rڄ`a2У @&ǁh Dǖ?dp 8 Gv ~qĒQ8x )0Kx D" hR*"|Bd .xcH ˜ @c$ $2L8DxF*9€6|)Q F0&Ȥ !7,`zθ @r @' Lh SH hd`#Sh8P P&ʲ(#2/Frh6Ĺx~іFĞ948pyU CFwy t! 뢊D>x b d& t(bc3,AƎ7xBk+#&+) H+7ivrmB+>(aXP>Q"F”ЀP6{.K&ע4qF &`=}T1d jzYz&iEQBwrx9ID 2HXBbXѧMȈ2y X'~a*yE`# nPcdh#Te/ÙA$%0y9x`=vEWi T|U!8!hva p  6m@| H`/ fa$=؃.|."|>`7: (-| x5y`xC1@hM'.`+@6ƀ?AEN5lQx,!=q6* ΝyVDOޱ A|9q 6CD#o`,^ &zlaΩ?rq\'#;Ni|݈XiE3b:\Bb](Q Mk@G\ o8#L1;G5tc y "Q;h <:ҙ-bE:vC D#HZv#-Ҁ?F`׺րM^N}d_`۴vkZ_@HQ#x0 MPcN p=Є4sP36 &̾ x}_&@ y|%7 ^Cxn K 8 lT:qn0#"?@??C@#%@@"0?#jy2!?#Tp!5"?4!@?? A?0 ?A4%|AA1#$0A9(B"P+1 A@:C:"Pс @C" F'07Tl58Bk; T@@?`@AD\@Aze؂+ r0C>>ԁ@$C0 ΀@ 8!@ 6haȃ h;sV;BRP@":w`*BG)4HVCáYhԂ28(?(?R(HH5hɌd5TIȞ􁔄I(}C  I$ B2ǩC$~z֓ꠅh0*j :aDA K(ވ 54GJ]zDѲ)ft5a.{%\k1q/}%ÿ 2K=I  B nȠп_<>pqp$|! $)y$ 11ɂ+ <|H<M\Q@jCO0 !Ghq 4aP@D٠Ģ,!(!v1v*l yOTE \ F`DE~`@7#pP:?(|d L'jDWȁU<>@c@qby5 $(Ċ ^CU AC&@d82,0$ ! ,68uH*\ȰÇ#JH"3jȱǏ CIɓ(S\ɲ˗0c# 8sɳϟ@ JQ]ʴӧG4JիX5!ׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻa# \D 縙9]E:\B : 0/h_V aLgOd8߀f0q&Xw>ȠF(VWYp2E!P0G)QDA 4R(e@)DiH&L6PF)TViXf\v`)dihlp/bKAmT@ Dޟa ,ɇ褔 %QeD *}C=éFʞ FZW@0QFf A4Qu ಿ=B@1RAۂ(=$epC N.o $@A B$nB:$<@?lD;pk3lȺ5#@X@hT,(FQMc5 ,@ j d{8Bpj&(IÃDm&ؤalҵpm}0Wmv`T4hS"6]I/銻~I; WQ*t.,1K~^l P>,.ƶ\srA4 2p,݌3p,aC\ 5΃ tLD'yKԳ@F|rcGDQ LMh0@\aU;U $C Ae D5Ad,A8DA gA;8G؉?^ic:xb! ,68vH*\ȰÇ#JH"D3jȱǏ CIɓ(S\ɲ˗0cv|ra2sɳϟ@ JѣH*]ʴӍqANFxZW÷^(YO,s '`O(. @E/%C0Y@yvhBFPsQ w0v `@8W; Q %t/p /̕Á6ǝ sC@p^| }Br\ tu7N=?dkQ\C$2D (]<=n z˄j଑A@_AkW! ,6;rH*\ȰÇ#JHbz3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMzSF*PM/Fj&DȈ"R2`"$.AEA{[9RὼZK CgSC͡ h TB, 6@CpA@p`!QSK0 hSt0 :i<@)DiH&L6PF)TViXf\v`)dih$ B2ǩC$~z֓ꠅh0*j :aDA K(ވ 54GJ]zDѲ)ft5a.{%\k1q/}%ÿ 2K=I  B nȠп_<>pqp$1ɂ+,1 CaBH%̃mxp@7O)B_?L+i10a @ـ%@5HV'=1Pnm0@mRKeFrs-}6d0F ! ,68tH*\ȰÇ#JH"3jȱǏ CIɓ(S\ɲ˗0c# 8sɳϟ@ JQ]ʴӧG4JիX5!ׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻa# \D 縙9]E:\B : 0/h_V aLgOd8߀f0q&Xw>ȠF(VWYp2E!P0G)QDA 4R(e@)DiH&L6PF)TViXf\v`)dihlp/bKAmT@ Dޟa ,ɇ褔 %QeD *}C=éFʞ FZW@0QFf A4Qu ಿ=B@1RAۂ(=$epC N.o $@A B$nB:$<@?lD;pk3lȺ5#@X@hT,(FQMc5 ,@ j d{8Bpj&(IÃDm&ؤalҵpm}0Wmv`T4hS"6]I/銻~I; WQ*t.,1K~^l P>,.ƶ\srA4 2p,݌3p,aC\ 5΃ tLD'yKԳ@F|rcGDQ LMh0@\aU;U $C Ae D5Ad,A8DA gA;8G؉?^ic:xb! ,H { *\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗# ͛8sɳOIѣH*لPJJիXjգMJٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCM:R~ej?~۸!°3f>zax1F&Nl40Ë c3hL/5xOF8y"}Ob>(Qw2F}7HHV@$r540YHA|@0AxHHE=%\w E8P85#AP- AXB%8?!>E~ pއ|ydF$a" 1s,(l0*Iil<pCLA 4*,@0G n40Ak)0@*{@tL@$ 0t8 0X XU-l$\D(!lD*Š 3VB@1 5%ЮM?Fw)4NG`?kK6X@-DmtF@4i[=pn>mBbzm ;]"A Ҙ-@t+@ԣasv@hTpAρf³DKзޖ(PBT86CB&(v!0B5AE/?CY|Eg~gD'r%9pN Ƌ=E4kxBg\@G4T72)`HĽɩ(әΉf#dςHj 3'~)FMH7 YGAT/ $~-үLHÔ\ w@ D!,)Ȃ11*#XH*ZX̢$.zyq rTF\#n`0*"J! һ{@" $AfP ]$1Gn HB`HD lCbPK!(@" "6v-\j0!@6 䢉s!`}$Kr0pC2b 0S@ i2$ɁPp0@ X@5]l2& PB cQC0MA < X$ ؅F"`LE0LJp"C@I$t{(W@sDx Ĝ @TIdpb B?uҮ, (TDt@@`UpHPBLSW+UVR TcT#RI>`(H```UͬRQplTqDXAFa)c m E'AurG$ 98|tv+UpH\.`{0 OX+ķ2_/V2ҁL9|cV_ MX090x?Vv$@Ё ҳ!=*A 2t$p@6Byܴ N`Q8ltOpz $E1@R4/#A2 acs~$jIMk5cG|tn*jظHA5W@tP;Nd9zWd%HCQSnj3NCv ܠ‡lzW6kjn  ,CV ҉Dv=}#!up^,)h]X "=hw n[9+KBPy!DA$%rK@LK &ȶpi|v Ie8@@[nD -kJ <C+q1 @)B G d k!F :@`>I<*|`AZw2V\  VQf@ X]b)R(@ u\[$ A*I,nh%&HtY @Up[A>L! |hCN&&C9Xh=ܘ )AѼ|4 (F1DYCg!]\ H.RP`(>i%H'+ T@ , ?!@,Q_]-'7B@EA)h@D_B_ 8,كVH TFH2T.$ z {8$J P|J'C8x:HP+$RHQ9A08hT(5 (5f~PHUu [q ET1RQ A =ke  gPa pPSܕP¡Us {HhHr4m0 1xI`6q@EwQ Cheq;`^@Pa;`ȶ+o.VQq..ԙ`vbk*f ]:Pk"ȑ"Qsb#e60il^YehnX+.i !:'@rÚQ$P`80h(QDGD;@*PlIp"a5!m&bhpI4. gIas ;0 abAgqWF\ ;i ` %w aQD qǀ HӮD6QW ]IhF\ql4 jc툔 H|%UF+ƉMCq в-Rဇm2PhP pS-*W_PЯC,)u)bDhGPOM[pDx\YG $!= f6?sqখ6SIdsD0^a̵eF T>􊴩=ҫ0z+$BP\&;Ǎ\I-fto!cc/Qu =ݑ"z| 5>a˦jQc.=d%`,<A00L,5>73@'@$FQ6qb4<`;;Jہ:2G.?[%B)g/~]˭>/@U-TT-0? L9 Pw/1nt<F2h<#.A@+SVqk E%)GzP͖ Mqj1̶9[AYc1 Q ku0 Lp+PVL?Y& tG|/P[]30 "f 2y.%OA:jP!2#$lp6A<`mX0M pQD!B@q`xbN3@(g P b=#Ao@%%<9s0af.-5+ @ - 2HaݮnS6 1I$#$0SknG)/VIϘL?p xK%]X9g i1vp|v2P;8<u>Gw7 !!-7 `  pnjc~?p#D v0 Pyu+㓱Q@@ ܑpA >hƏ (^ ٽG =#CT6r$Tx-V T0E%+<&N(D $)1@O9=|0090PT ]"k$0 T F$| qءTT50iNcQ6A ^@2@ir@A LJ imƕ QiGȖ:AUf@XJ%TmA 25"t!lAf%,E!bgT),:f0K$PA[4iIZ " )BQ ם`%\TYl׶K|H4AA R=A h1e: #8Mm Np|(O F)e~!` ˃~uЃ{3om0P7#@YJԴ,3o&<+%_0J.0cy5%~ %l6]̻ i>M3iA G(3u t^k̲32=1B#ڏɝ%&jO*DlXw R4brf%NG q E\zCA ”3f|GPEJ. C W b "Vq`@6#M3JsF9ax`Y`lib²}V6:%l?(0 7`m"@uAl*Rڥ- vMѧEs29Ϝ8ҹDΩhl*È  42  rJ7d"R6p~S@'L- @c[" .1A~QPd20#VHX6x3^S E&ȁ ,wPrnꅄ4"Fķl!xɣtf!b6}vA}2R8Ʊa ;yD$iIuzsԡ?iXh,F[qFhX">ؙ$ ;r!)`X @;+`l#"Aw@X7JGK0  2x#DЮ 944! y )}/@%8'᝭H(ޡx+ Gx pN@ԝW P3/ȂRʿO) Q*tX9 >K"Xlq ,60 ؁'8=(Xj0)- x&+@;0HaA3&Npp`˂@;@ˁ`KW o88#io A2a`` 0 ЅdpH1ئX(Rx__h:0dq\KHq#мWOSrЂ (0j`4H];BRrx&^XʂRuߘÁxL5N@5e<bb} (M8٨|8(vh;U씌H%B(4}->  <ѐb'PV 30%iA5k)\b (͇pqXKm%$@H9Ȇ98M:ɈUe+ !0O`8aa,@%D*(ia ^= w(дX1P!\ 8\hh?>ުe1LX_85^(@ Xx*fXQfgP<Z=(9A$8#) o5V,? ئpVna$$e$1(+ 3HWHe8mB}^;*/ (D 5A nPE5݋]/t P\ 5= WMt$8T0BXH#A*HHHo"눈 kXYUfA0.xy%ny. ?-8Bd0c@S@eu!1˂ha[^QFXi0IQ6t(7iBX]hZ\i.aL1NOp sΖHj(;޴Qb{fzg٠ivp2a&"(ѬTLTxY> =`iLU8Zщ8GPn. )))(&ЋrЃ&*\ۆ0jā*uow!P&'m)&\U[3pGZ]ixсBh[9߁0nd0 M4&4,da\H9Vtpon~&>g W!eUvF~,L5T'V60@uYYM5i5" u؀ڜ @& &؀74*x к,@ pObF$FtW!9PK'/txvȣ&Ruh^o.=-Qkv;@lENU 3{|eD92#"?K Qq#%j = " N=` غB)@z"P}V 9(|m1"LjˀJ(rҷ]k5 8XQqObG$OofTv=Lb3uDO"gC @Y<A BtAA(@stxuyq@kkĄQ =% C@_0l1 #*' L@=@W D/x5@P t8 $ @? tF BMPuNYXD ?`&A?Ѐ;DM;@W5ড@*B $ |e ; Xҫ<+6GA[F+Vk\gZ3Xߖ[Pky;! 2R]( $;l鲩p&rV=Vy ܉ T(j9IA & ԢyWP'GH?4=9;6 6CE00F C0P)Aaj8M,rW mI!JЀ Kmip S)0}xymYyQ!gtsI>Ye@FiZDD<=zz*E3A)q9ė$hɕ7G/lNo=U60a½R% o{KK0Ѹs%1rP?Y(ȿ&r* j h@f2\/A@A AxB1D$ 5$"Ar . 3g \J Pƒt! Pq5q :H&V$EahpE,J&|A h K*B;F&$/HE@ K92!@=@ H RpHR9<  NHXP@*2r;)f0%O:  IjZ.T+ͳnBt ͿP4@T L%%3! SC$!ၟ/MhcF@,׈@ag|!a*D) \2TآP*S/A pʅp D|<:&X@0$m0p᡻xD\hiQ I%aF BBAWR M@Aī@*Q$ z D=P ^EPlAj rl q|@<(Sr 6d!W5@؈G^. @KfB$QfG.!I]A\Sary\yv+uv2$BPq H,Oܴj=Ry!MBplk5 t >y$Pwظ#+Dx pp@tWdC!BK% ,> qˬExdDRFwOSQè$Ap\G΅_~"B $)qqc8am2?֖9D  d O Xb%sh}\>:5.0@0; X48ru_2C:80D`oY-["4<):P~`rۡWDfe0qB]c-Ph@*@$anypD` `AN0 qV Fz Ґ!(c)00kAo)!`h#;|qH[83g1B=o'*(ϸ!`6p+'@2h ;`r)S H< )h~LC1珎A XPvNЍhR0mo)qQyq ~qL` 1`AM(#Yl7 @R KsLlJІqN1u E)C0N"D )uoqE C 6e a pJ! [ Q\X (_8hB ׮Tau4pV@ B+ BkߎهËOӫ_Ͼ˟OϿ(h& 6F(VhfT$!XLJcY@(,0(4h8<@A4B;$Y$I/ 3@`#1Ā;`%dbĀg>&L !0Yi#9Pz f#10ĝ()F?@{Z&! ,;qH*\XÇ#JHŋ3jQ>2CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ \F ˆ5&@sL9r$|qABXР91Lz!!9`^mY&``iؘ@* -7r ^@ZXμسkνËOӫ_Ͼ˟OϿ(h& 6F(L2Tpڅt(bwfRII !Ph8<@)Di?$H$B:4p@? eKT;찥Jb&-YIg9SnACKsyCvYDlf(K0C(;iIS 0@@! ,8!vH*\HPÇ#JHŋ3jȱǏ CI$'vPi˗0cʜI͛8sɳOJhQQ]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KLˌ99̠"@HSP5K\.lծnZ7f<|>\ȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(KZ1 P FCfv ($h({ .Ì, 7J /H;scA4")Le.TA 0e1m IV %>Q IJjrtdA_ّ>Вz$:Ig}?PPhGc1Lr! ,)H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0c#͛8sɳO?JѣHQJJJաR\ʵׯ^Kٳ<$۷p0DܻxU:c{ L8 +^̸ǐ#KLe6̹g6ϨS6zװ;M8P1߮  QR@*.d! TBm@* L.QR%$D*^KLP(rra  )j1}9pC*1l^&tm$}@lQo^ /` 84L~@W:pCCV==̠8 6B_bǍ_nx a()'9ڐj z!8ߌs-JLDgQЊ_9 H` @& GP^B0@`]ԷߎGoQ \{F7@ !)͒E@P6? |Q) !H-@7( F@%#KĒ0t>AM6l"i3r C](L W0 gH8̡w@ H"L(xގ=͇P @s~.y-'H8 Uf1򀮄&poQUA aH1)D&ȗhrqX##R~!s TIX\܋69CX~`,+%>rm”1t=`vJ)(5_Fmz 8IrL:v1 Ok<%&L h@٘"O`m3fBρTT!D.zWRdkeLNs 6@k_Ö6`4iFQb(*7`1 0a5 $gTr6T3=`Jf\蠦 0c)O5ӏT#r7%A=QZ0(հ Xt0hZ='K٫VgF(͠UĒT/lR'" LĄ+d +f`jMrw@՛"={+`RɴA6Q&ӠzЄ7@r *  l9טi@KWp(NSkz# x Gy;dLE0 l00r܁D=6"Xl+ijSVq f+FaV# *N&< :"O v@`i4!@F9&`xhP5lnRHM&]IӅt"% dX&H ~ i4!^3, @ xAa9L}Y:lDC]'0@IXFlH["2'[Ð X N30&0+xD=B7-67Q`@35ά;t` 88R/DCdFr 8& C!k8)s"X:@Ad|  \a 2D HçN;EWtd `GА@PĨh6Ѓ-|B (Z`  8 @dE;Z\&4a,FG!.`+"6?Ը腺6:2 aB$b xO &H'b@g`K wXiL AX.Ё " Z0 P CZإBP*ggq7/@Jqڳ?59!p,$شϗD@p{$eE"; &0nѱC*\wALA0n0P[3"=71Mb W]C`G]j\T%P7zj4ea]gD#&J,Nei1MCbD-Q1D? diJtPO4O)06QSVOC@hw@ԇR7d5>0@`R.`D?GW0ldxcSz@x4*G"P$;O@h3?]!"55Sx3_+ $%@$>@/FeB,1\,/,=AV^UR3BL&DB&#xU$H534'?2534iC/4ˁ6hMCC)F2W6X$%R!O23EYu}65}1}aUu!3; ИR2KAY4$[)#YOq4RPOXV^E6ĨxeLx'16=4: 'p)_P:`#dL@6]c UU{. ?#O- O" =p9h3l<@h3.5X#RO"h#Q5+p-4m`=@M8BU&hWYn;0P1{hL)X)QFED0GF8YK|l6qVl-Se7 0D %P QUDB)2УOARfL8`?_c86s*lSn.  "46L5x6(`G21>?0&P3>0)g<=-#4!)1iR!JiL}v*%0QQ2eLR_0Pq([)p%55qz ѫ1A"B36J3hɓ%5"u*"F}޺YSґ4$ LA`~HUگH  `B"p[QHm0kED@ $R>ՙ6XCVMa.401$d6f0WW J:5NXs>M(h#P95ix.+  M686L2#Wh] PV@I4p>PE]9`TU9hL0%< XxeM' _Xc*P&œ* SxL0$UI50jV4k~ PdĖVrX9h5 }xRRX΋W%RE8oVfA& 3?3 qY1kP +4!)";_@e]XF`5g; ({e@n@ʀ#LPKlK8NX8  ^@X J2_ä@> ` 4I@F;X rF@t m6q xHVD01J6jiP EC )L-Ť1eh+@g-s@'\o K(59PfP<WͩWx^@ }9`g`(!xH[Pd"6P':Y<F e05qs(PYlch`#p#l15 L.ب)%< 8L N iL-PpLȹṲP Y!KO@kvD 0 @"pVlp@"; dp[ K0 !}PPO И P"_M1`@܀  30{ P! `.|0 > h*`JZ U `Zc@ @  X{$pi >. U`-d3q@5xV 0_AP  R?S{`0 xx z)^[ P#?-CFp#/0 OqO҆p !=NrԏԢ @*f}7P p]A( `9MP*  U|}G㠻0X+\JyTʍK@@pQsZ:_0 sp_ ` KVp PK0 s0e PNs@N [nD V?pSJP kPU0 ` ^, q#"2Q?p~g%`G'<vXXyzBS0d%l^@%m`(u"1;XhB!+ E9ܰtD lxLF!rX -Ў+0 o#0 d W(x6d8A <@LJeJU^%YXAQz$@ pw(X 4^x<1|HP`wPC=>D<̣a +cXB<6JQ  ($#0 PZ4 G+`BPK8  88@@9$xE&x^Al@0a@j8Z f14-d@ T 4(^dh3(c!3^,@dxs/ 0 I j2 CF &@ƒ :xGA6P!N  !a ' JO DU:$B1ЃP*=C`2< oCs@D%cAD8/  uhFaPID {PZ0@ࡇ0 qaFP O<4@S+8@! 8*С&l XC* ,`6h!&`AT{`BT 'RHWŔ 06T RY`\Rp&"&};Db`=ԃ D zha X6<+L@KHL(ƈH .D ڐ![8%Fa$oLp`"EdBH 1,T@p|"H c5`@`LB`HLJE_$ؠ6 @0bt 0" D 1<:H@ DDCR.2 $8l4 `+4#R(=Dpȁ +HP7(|@;@3(S(/++Ȏ 0P(hh ?x4= (+6ЕӀ'+`C-I2`A]QA@3ЀĄ?h2#-C``C 9?@=d2'P'Xу}#PI?r.(Ox&(7H8;0-3PS38(&PBx":8&=B3O4O60864 0-]8- UYTUU8XuPh U ZU՚P`]U8UU ЀdUpXZu\=r=6`%Ё(0ҩ&s!ʀ$@,rPȀ~wW!0 r"(%yUs̀׏׎uyWW`uHYEٗ-Y OuX (qx"cU(8 I1k5ȩ O j':+i%8NbĊUXu)V)up WkMley(`i0u.2R 0s^UYp-Ь)k^\X@xՁ=K0_\0\]hl1lI EIi 2!{_=_ݰ3j6mH"TO%RK!PO!H_N`!0O h^ N#0`@M a VO N`IWP` Xa^`$΁kI/))[0@? /ց88 (ȎȎPx9\çk3__NCB`4D?%~d 3_ h_Dv-d4dRhh2+k4edMP;Ύ(͋Z;c"PecLΎ2=9\;exh/>cP2?PT%qVUD?M34`v dw>gZ9gk 3X @~8 Pa hP؃.C~h3uFhhi>1phhx2P~h2(Øb3E@ɟphKIpi(*=%yfuNguujB6evj}vkg]3d3jNXI=|pkֲ&& hVҲFCWjZ`v u v!f^۹֦Vu[U8q8zmvvN1iv۞n'߮ An3z׎m$趝nonX/mvm 0  nfGgwfp^mӋӃpZ9=^I wcaxFgSvpX A6Tqq}Ӌg'g /_gjq!/jp(~*r{,^L0 Ufg3gm5 q6q8Wr' Wk:GsrV g7r.k_BqFgr+v8s֖VXyK%RKu%z +k=gn0n&~u&uޏnVu3jmږ]gv4y!XɜcGֲaw.fw;ovFs6:'kG6r5swps&N o}wXs$GrNgwXx4ϜGa! ,8H*\ȰÇ#JHE?.jȱǏ CIɓ(S\ɲ˗0cʜ)R0hɳϟ@ JѣH:WFӧPJOXj%KٳhF74iʝKWf,˷߿Ds ԅ\LHG!"|2gxװS0R"۸sͻ Nȓ+_μУKNس[rE# ܑ33<cp߀G@: 6GVhfp s @B]t98b> 8\Ƶ5} Aq$(?Bhd 09@c` @>/eB%@AB|w<BAA@aA!0יAE iމ8 9QD'A%&2PT |?| 0* ;*  4' {ji!Dc6ZԚVa"jۆZ[%!js*2+K1+Yiq\ /+% + dg\ YFCe ,$),0,4l8<@-DmH'L7PG-T+@KhALY_$õs Xc+G&rF$:{xt @wVΠ7'7G.WngwsPô@@:^:P"A7&dCC̡:PpfBߒѠ (@ 'CF4vTl#tGUA4hB{~~S&B\# 2&@C#@&t B;Pz@!j[ b$ /p DJM(BF7Yo0ТY%J+ ~,(A:2$GEe.x:! A\X7 q'LPho)(!4imR*ӌqB 6" l\a P&yyB-G ȁ$!2rAq}h҃,I ` 1 G>;>&LI:W#&Bĉ?  L@TAF``9H(A"tH xNp`@N`v!g֓Ќf d`HP+% |0` x@F0A?<ݓ(u,a!a%t5"! @P!BО L.HQ8W=(@+0ֳ.vl'IVP1@ Kr:#A k@=H׿5u g7w;G{:JFV2&@vNXVb PRF1CV%斤*೛ ur: djzd*|dk ꐕmꈫ2X]߆[ eD>:@HA*6$-&ܑ;Y*wݮI3TMiA8@ dHB7 6i0O!/|=-D`ЭP@ @l4`CA/=0MҜM= o9 °CY y6Z< x ppXGX 1x.QDBc?-4ˀ& tA2RnuFH){$p@][EP3SeH ((A<+S\a9&[b\)$J4  9'"< $䠙 BVÇ$ҩB 7U|(Ad&d&R;`Xxb DIP40;9h?@@-`S ۞)1-HD #ha dCM+$xE2FA1 B` Lp J$$x@1r=!ɸZ_ pn \ aqmhUŢiTz[u$_ w1 `0H XBotr a$||1!!7G@h !/ GNjbcj hڇc0C Q%qR=Jpq!R~\P C m@*vP ^?x WcfP?y|0Kwm PE pDa5>y6 uS87Xc08 g#x 1`mhadYK8*W,4TB. `QRidҠz@.w A  u@B8}rsy(GzVAgVrE a QKqC0P6  Rn4`@s !)TehG g|w J0G& N 3Wz1ABQ^GLdГ (Q;z'H ΐ   ra  'i"AAX0 /Tڀ|QkU& KLiЖ!mCAalX_D*8oqJ'g8Q`W8uW blj ypMƹ8PPH@bɩq%n(`7 (8hW#GoWP:Pyjc)"@lZa!+aaТka1pX= ~7:3Qy@@=jA:Q8ڣ:ڣQ]%$-5D,C$D<#I0*&>acZ` D^ [m c7lԴ7W=j 4lZ=2)p Y(JE>Bs96L=C:BCQ{;|j`:ۤns+NEM+:q"Q3GcS_+)805 1.Ⳬ#}axUeu,QUMTquS\&[J[_Y D:TlWJTbiR[bm0/+"q{&k%17Qu[#{m';k=qVG8t{_ %K[K]V~@+kly+:k[k[b[^PkV{TdK w[[bVK۪ K]! ,G;H*\ȰÇ#JH"3jȱǏ CI>2%S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^ JƐ#B0B3H1cyi&c@&%0m" h 6fMk+_F tcF1M8]n!,n@!,vw#c YBsϟ,%qן\pgBd T6`[Z*, }QI[d=BA&0d-0"fÍ4昕r_1 iTL6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6h(ߤf̢駠%IK qIꬴj뭸뮼+k&6F+VkfKUdw~g@DADp00\+@Ry&`%Հa(>Pr(P ! pRxӯ@``A oNsEMl4wD95}@$ 1P9>0@`Dg ZN;A62' Af1P!Be@, d7AF )p@ t9A،K/>JDw9p>Lg&2B$Dش- 80;xo! ,H{ *\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0%hCE̛8sɳϟ,ѣH*] LJJիXjʵ+K0ᵬٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨ?c5ԸsWAfkK̘0&Cxڸuܮp.a M '̓@$O߲'d#@N d}Hɀ2\r'dEt˄ #QD՝N+V_r'r04"AtCkT P(4NOBǒ.ZouB6nGnEA#HyCO8l[gQvaA1j5A8H*@7h P A$ )@ @zŪC0yp D@p 4p d@d 0YUY&P.0Csã;0*@;D#A{0v;k&q#o0׎-A1@%P D C *Z+0 2s @C bEmPB%p4h\qJܽu:P 70=qL b p᠂a9 N pl yC:; r F 9 m 1ٔ%ߪ(A&1 ,ysįZ 뮙\PĀnCID>I\. ]@rD&HcRrZ,;)<>0Dd*.Ȫv@jX@>jUISF4$`FEa~&@$@ ^KPnOU8sd9@y\ >P ,(pA6]XdQ H.l @84!r/"`8 ״1R@/2k%kƛ$_$9U%xrJ 3"3\AO$yO'9tsL$}<33J;8;X3LDmȔ\@)m /Yuo`] +u2Νȵtr(N[_`ct&>pl{0I2Hv LA'$ ?:˞2^vpl@3Qñʰen Z >D3Rfg{\ # fUiiZ rЩ40K96AAрq 14OsiM`Ÿ0u\ۗU^i}aV7O<кA؂} "a ```G}T}'1PApό @ـ)C@,6%is@0 X7D๘y4zɠ xB@!C10\C yD/b Q B@aω'|/$!pq P 9\GjPg.9`+T@OFRAa a g42J0q LBze$.v50p}O L)d@H5!PhEL; A 4 NDAǀPvq UNQ Qy (h> 5v|Sk Ǡ hBfT( |'xܥ[ EDEETy!{00w W EE -A`[G(8$UNd^!i3Q{ 1eAzg^W,؎*yGbgC3G5d63AhrE`hP-hMg:WH@@4(f$-# wE4%Tcw (8+8-wSH41Iz/'QD ;x1a[VVhVf#g-6 -q-X1lGu6"(;0V#-vSiLi}ζ!U6S#ēW2<4i;2;4ՕVP'9:0r4rgK88CZFEd9)qvcZ](0U-6S!0ET36dp'!9%5>G=a)" v.S'99IW?a"5>D@,@r$( Q%E?,E| P`+C/P5 *sWl"`>/!QLZ7 6 x0|!<0;UXp?:|0Qm0(hFHGh@ ѥ$(DQV ` PH| SNR8uY Z a ?*RYH X+УKE'RP`0xWka aNt8x1 sQm {c* ':Ң'ua\pQl ?G]* {Jw!?C|0faSŬp4 1QpkE0Qa1Qܠz2:@ ~KI P 7  [9W/((hY@(1 p|0ܐ{0G;Dkt/d~71$S # ^P9p{A p0?`|0WCB!0i[~F8`v(}2 HPV9D,zvHEA@ $f]_1% 6j*J뺯;([jc!B`SuRWsa(!C-80DaF% @ 9B=bB:IpAz!9F ua]vʤ{ g_GI)ia!Yaun{2nhh 109?(Hla/XyoKlT1xTtzsq#|*?@pvH7sqDavQrl< tൃ & ug `K$hJATpJGOhJ59mw ^{q5#Nʈ{A{൴ LAj '<CL/KLx=E`3ʄG"6fk~kq.o.,)*BޠL'*<0g B,B'IJ s63B}b-]"Ey9 / 'ifYu92l.Q@8ZΑ*`40c##v9-1KP318#7s:6rGe9> )~V@Zyb2va$(0/p: Hya%Ӷ;N.j:-.}C;{EELAٔ7+e6"7n[?P6@y&C u(/N9])Z6ݭ6#@0PCdy%3=pv50>kyC#0G^.xm-"7i5t{!gW)gsI= ь4n"+NShCgC22pռt14/9I0ܲ30ӛv>@CX('f5B|:c%Oa[2?r7960d@4`*q=LG$7i43k%?b\q?r34bair5## LӫgGA^rvbY-t-?4a=?((7FVFV3-)8)So2tHw^Ñ2:p㖵Dt?qgT#NzT304&D7)V6 @zuz$Iv(L*TH"رF1P`ƌ+LbEDLD8d*ndCex @@d( &F>H))%Vʎ8g'!#7b iDmH\K4 $I@X~W"=ZhҥMFZjt`9!/{@J,`L$j@bSzvDa!@Bdb4qTb@KҢĐw|p`?p 5X Z>{0`0NQ ΋j>4P@AXCS78)b1GwG ? # @x) #=+J,!RHa$#*|I:J!%3* ,2B"@CC" 1)0IN!S)H_F+?CS#>#HW_5VYg T~ Шpճ< 4KX:;BJɨJj7# t5@/QaII$5_פX:$>2IKM\@_|)R)h8c7 n4$: #bNE!W#<( 13I_uhl`;6(= Ԑ18O$ADr T0AL5.pw0H!Xbz@a(都nE%zZ18㸨"F^ (4̎! v(% jed1b pc^<3Jd>T/vƘa%٥CxFϞ'!=@+^"PcL"NHS`x@94Hì3!D0F (^AA"@&*kF%9 F7 Qڰ"` 4xRT3sb: @a-0 AB zLC< QRK*aDt&H^W~կASdh =PN@EaSWpV8>7vxt*.F),& 0pIM&+M*J @Wr=%CeV-Y(30 &avgЪD<+yf_<ϸG0N u r`LfTT5GmD ¶% FML" 7 G"VtD\(>t@IA 4Y"B@"q z\ 9'GBJQb$1kDL7uPP+= U#lsLb!$ 8 sA sp6ӟM Bq/$s^|bX|P$Cג`f&!|HdDOp" o8 Nu %uT| . ">P,ʉJ !CQRF~0-0ނ `)8E[! j1 f< EC"GL91N͒!0ɟp]9I}cޠy]H U֐h6qQL2q 'Uw=n#LGY&S.Xm0hƊ w%7X xGƎ$B0~ E< #0- P+/ >pl:|Gr\LBGς|%4gcLP%EHs?VMe+i1y ̇9~q``\?DrCLx` Iݙ@yHmyʱE2ZM"Y蟻 XcB s֫!9:1{L@& 9?Ap-#B~bv+@Ujr1+8Rh @ 5@Zv)7:ٓ1< >𮗀(X;ݨҸ <&( )R2oX?h1*| 8e!S[@"40Hh7 L4904ʰ o܊D`ϒ' _qNa &+质@`B0}2]yM  =!I-88(&L@@ rt -؟ @X ]\s& ТP w шϸЬ5,.~ r &A- J0 } @Θ)X>X(ub-ICIHH@0lqB0&t (b?ƨux X S䰗h̍فz3N\ j|W@͗p)AQ"Gfy sRM` &ix+h(!b\ ψ)U4 Z({|+{?hhy< B49?)@Q0p@ȉY:lFθtA늨z'% %p xS45V x&0§ Dr| H 7=3 Rb%&_'H1ܫIv06!p /J,&0 i 8Q@R>4 zOH9QS n5 hSА <- )UTЍQ;G`U؃p"Qo0ňH5` / 8G|pO^5|1 4} /0@Lm`&585vxHoԨ`OXQŹAd@I(j ]~*x%y8+x&PW Z@'`,4  n| {`2OwhSx5 S0@4؀]F$=y3*8 ԑ̑W=)a15(CƐD9 غ0V/ `7ha0'Q%%<=? "/Ղ (7h;eST %u!P(`ṨRр1U 9Ȱ^"q A*Pꈿ-]#R:6Иh ?`R|V,Jkţm$ށk`qفC>+V- 8r:XN}*6^ V; <q8c@0c~˔J,ܔh]sK-QcY( Fh!06hO`I{ &H  #` ց[  c iK: '9ADpρRc8@ Pgc-FÈ ` pذiF5f5NحhN� ޥI L"x? AΨ.5hLRD3 w iCFς6&PP@L46} 66d.]ёҸ;ʗP`W(Dppx:n=ѽ8R ۀG 0"0ΜoHT EI &T-9i>b wrHoP(=TToo~8qπMXs9exUn‧,0/PnJ$D6p({f AIEP&Zp-0FYS nMїRDX  (OHQX%@r |}B=u؄xT\`"8Q#@%wfR%L0Si% (X)pҷ8"92V(Hf6#`00'贽ˉ/2 hT 6mQW } ^=@~ͅE3VиvF J^m9LUW(u=$c'dt\  AE6U#Gy2͚ψy]EP/m`,#ΠH#!(`],<,h_WYx\Lj&x;ƁQ (H@( p , sH%j,wNo [Πp{(܊լVgz} CӖpvg- &zt,ibj Wz ?zPabŒ7r#Ȑ"?@@B ymt@@04p*3@a@H.QD# 2Zx$a  2 "\D1 c`@#,T\ȈQA8Jƭ0 0`0!& 2ɴAH8xFXRKIC` {!%( @=Lب[ ?jrR˅&<8 BZE0 [ewhx 7X4Ђ >8ZxaH dB*Ž: 2 8 Qx *71/ 2,1EM"c>itAZWB{G1+xяQYBk".n˚K0 7.AtL 4ZB1 ("Am p@@d? D2P ш! Q=5fqW?0:PX9Ѳ )2%$}0PS-#r7.5ѪI!M35lt&-bj+ɳsڠ ġdZ6UF`@d &G*IY"Up sbq .1 x,8GUU(qABX1OmCo a F" ȂD 4 fDSèl÷" yw -Bnd*ldH6bL 6Pf(K6l 6$lqJ.nFC n.ghB(! A@DLS4m*_C 0c%0B*sBs!kM@|Oy`+LBjmNrH@|\@!l*66 P&6\ Jp&BPRsve?]6)I2z6BAlY Z ΍V j26}ʠlr$tY`(<+zQ3m9&h QA5I x 3  K ffh}z`80d rr'6Q$'@fklfw1FXVx rdݲ`Ħz#*6[ uGI 2]R30xJb偌}o"3h + JJr.nz<"O4BbyC>VHy\UYPf'Fͧ0Too)h3،cڹ68x`W:2O6NlmP|ˑZ& bAn=\F`̤MGʑ %@MV&ތJbLՊK;EFBFX 3n"L4ǽw)9Trr9CǔGRd+]Eaqu&\Uz@rl KvvM$ЁocJH ?}2': Q 9N@ N5A;N+ ᶠgν 2ML2l, fйsoc'ڎi:\X` Lr)S9|j Z.#đ5Gѳ t0euPSA!)$MGFB uw1 |G z fLUTy\`o Mc !a@|?ymt ܯIWu \ɀt@<֖A SjKfEiDxN5@fW,T,Gpt6-i ` )َ@րWu=YEXegHܗ Me|=Hfh@H@e b5ֹ7]cmecŋ^!@b  8aTyiރ@eDэAf 7H M iU\M,/vH/T,QbD PpOO\ĵdF[$,YX)SKH 3BxU]Q;O\cNlR2uhA %tC<@3 giS9*Y(-%Adf90 ^`'|B\A dXN) 8@ҙRLY5u)nRR䔟 ),LP;T-Blm`v0lӷ(u A6U5Jo@wX01G j ĉ })BDF@oFHVB9/4o;lGP0pdfD},eCy@ T}>*pՒ BDhFtPq\/| 8@$o @o,'~t@Ttv1BF89x@dFO+,2߈ UsB `Bh{tB$ih0Op 0eDT f+GT3?0!֋4.BK7FL‹8DFpBE fea4)@d)<>@Qh܀P`4LԱ!D}uB-B,'-+<fJ(3@DPCsNȊH@}Row~X\:@ !dDX sİPB0paF-|6\G,Lt@htNyl@:%B(/mtR @yu-}M40Ft1{D@DoB/[#=hA@n08Xnxƹ7 PK9AB:u}t '@0rB#~'#'Dx @llp}g2!L!7B34k>`hD@@PBܦ@)@*mF@hgg &/GG09,#d+8 <# A,CA@*=aEm6|&JD#@ȦFвtw0H j&ttBm FHhJ\&thBw2B@GЇ&d {{DZcA$ t'$!pCzDoA"@4 l#Da!4GDa DT@$DLuBXgδ GA ;L8˰@_p@AYTS ˬtN@D88 %l̝p"DF#h%Ἲ_Bcfv$" e= llh0# B\(R.x,LB<A-0@T2BcaΈkB7JB DHoOw t@Q$cDh?3@gA@37wGА⋠ \ ۲H? L@<d@2@E;s~EkwBSrju,hhᛀGY{@Qrҭ =ӆtJ`Ko 9tKNPBh(w4H @\@:! 0( <dA %4|AI7qԹ0~$bHѢ;9R@%d54jӛ!s"f!9#I`$,uk҇2@†9NM1]ǁ\hB5)h%:F#' /\P Ǭm ΘaSҊLfП:~S)ԡ?D'*Z|_ϙQNׯ $2ԉB@P Cnt O(NO4B4DžfWL4% nS" -l< D́[s|sСs2DCLA @9@4[VQ 5@ @"@Úhϱ0* %HT7@k`􃣐55@M? hu8dP`B`dN wݡok&K쳟Cn2+[( .Ll{f;1; X<6l%E 5ni`@T@A @z(AK)a'V 1Z㿗2P*D0J0,<V-AAhɁLLBDD!T@|4'FJ`MR@pΘ阃H(F, qN^)|}`AC 4;*F {1l;FR%,vw]T|1FN?x㢂XꦪZ~c5@bO)k^noo';`_eVDO(OU+هT 1 'yO H@L:坐Fq״4"&/06p&.ZH4C@p$6p/0!@o%,1K "r ١"X I2"!9p;@\ \J P"etل-.F)ZD*< Bl0 WH&T@ EahF7F EV Sb^RHb H2Ⰰb =/ХDž, XKF=\"pHPث^ ɐ  &$ )9$2r9noV!$A QH GBBuZF,YH.2dArRu@h=hD1@?p2CB& )E  _K& PBHe fA`12|~c  FmZZψ5/BytBv_ dȯ@e"qȕ().. (!P@l!Sm`2"%!4-:| nC#"D *6pH%x%E8b],UKU%<`F4%&H1K.!K/U  JE%!x0v#I@Q yپ^(G+M.II>3<$V9(0!Np!3Hr6.N2v! ]*ygyq8ؔW!*C({L7Y1"e{[}=I6!f!o0q)O7Ĝ7,=YА'%l{'c=(iLD,K5RJa ob .N,eW2%7%]2M@%ۂ{551U`.qx8R+QDQgIaar Ia4Q.'/Ia0aRvsa]ȁ=AZ a&~7:>V"6+H*w~EXzP!fAz-XZB-FԐ)[7X+d`%4] Q Mp/+ő_qkQJVM%8qt @~~( `{A"CPg&r62Ї`'!asy[v=8`! Q +h2fDHs%)o5{,#$3$;iGS)d!e=P*7(>QVG X,SX &y*2-!\\0 gY!]W )gfB+,e0*D]1'^ _[ @E 8D0գrzP' #0'i 1 ]rPF<7c.1=#P ҇_@ "1Eaf 9P00\2xF (WpDp3@1& zT٧U\D1Fn aR1~ P)5Ap H1'!( TVJ8@{]kPRsX!L1mP=@(jA+`Wc#a)<;P;Bb8d` q00Np(bCcW@ _ a8.UC&(f*Ua*Ut m'h;jw|:1*Q =ZK(Ggq)0PF0.+W6\a- !`scx"J ACC/g$!ᨵҟ7  $f/8(J3)/aAb,IAGl a 0S ;i,9Pq 1X׀TJ ٺ d*jAuZR%!YKiFfc@,yLUdc,*ؠ +>i 7{Aw8hle%gfi?`fso+s,+Z%({_5Vn:#ı&:/)!;! ,D88H*\ȰÇ#JH@3jȱǏ CIɓ\%ʗ0cʜI͛8s =  Q@D*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿9K(I $+1F CxACe6b Ǐ2T }4ͺears ""@Hʭa@I,r/TN8y{I< , 4Gy Koc#<>Z  ݯH+@ @@7wV~uhe !10 Y؁@"0(4h8<@ 7! ,B;OH*\ȰÇ#JHbz3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷p Cܻ3ui x,у3+6 Ő#K X!=nHc2J;n G"c DX-u꒾[c!#z gH +?H=h'YN  @w9Ry_3BrhL~),:Ͽ(h`R(V))\0 `\ q(PB,Qju@<4h8<@)DiH&L6PFiPi!XfZJK@! ,D8WH*\ȰÇ#JH3jȱǏ CIɓ(SV# 0cʜI͛8shΟ@ uУH$5ҧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈQBcrG0p`" ˠ= 8i;v(aѧcCƌײs3B@~o0pA!+Or>xoB Taz4V@ BoI0Ā& 6F(VhaJ\XX 5HL'I P@*$$"_D $F7^Q&Pj;)DiH&L6PF)TViXf\v`)qA2_&Wٽ rf]C`C@! ,B;TH*\ȰÇ#JHbAz3jȱǏ CZGFɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻq7g=ɍeɈĐYҠaq˘37]\>k> #6lpah C}9pP6ܻ8cm lCBspN!%qW߮"ҘT7~ zN >nϞ߯}y(h& 6FVh$A C ($h(,0(4h8<z@iH7KVUCVTMyUVBg! ,D88H*\ȰÇ#JH@3jȱǏ CIɓ\%ʗ0cʜI͛8s =  Q@D*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿9K(I $+1F CxACe6b Ǐ2T }4ͺears ""@Hʹ* #<@sBd~wf|Y`ϛËOӫ_Ͼˇ! ,B;OH*\ȰÇ#JHbz3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷p Cܻ3ui x,у3+6 Ő#K X!=nHc2J;n G"c DX-u꒾[c!#z gH +?H=h'YN  @w9Ry_3BrhL~),:Ͽ(h`R(V))\0 `\ q(PB,Qju@<4h8<@)DiH&L6PFiPi!XfZJK@! ,D8WH*\ȰÇ#JH3jȱǏ CIɓ(SV# 0cʜI͛8shΟ@ uУH$5ҧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈQBcrG0p`" ˠ= 8i;v(aѧcCƌײs3B@~o0pA!+Or>xoB Taz4V@ BoI0Ā& 6F(VhaJ\XX 5HL'I P@*$$"_D $F7^Q&Pj;)DiH&L6PF)TViXf\v`)qA2_&Wٽ rf]C`C@! ,B;TH*\ȰÇ#JHbAz3jȱǏ CZGFɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻq7g=ɍeɈĐYҠaq˘37]\>k> #6lpah C}9pP6ܻ8cm lCBspN!%qW߮"ҘT7~ zN >nϞ߯}y(h& 6FVh$A C ($h(,0(4h8<z@iH7KVUCVTMyUVBg! ,H|*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗& ͛8sɳτIѣH*=لPJJիXjդMJٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMi:tc8N˞ 55%f̠ͻ/վ+_μy[ K5Zν{eÓId$n:A{ Ji2FC(䤄c =ނ Ac@Ԍ@W<At@ TB@cEAl0k!6GY\> k1z|AEDBO8zdG/d$AD,F"|!zzlql cs8@7h Ax)9 @(@h 5(@E (B*Ԁ9 UPbX6kjJĚ@k8끷 $k0 01+N7ªԮJ%j! E4P0(@T. k 6F5  4O T0Y Z=Ġ>$ 7 Ѱ[S,2KT$@#GUOQqPP,Tq3\,W,#<3̱YKDiR/P@03 &ث ^/! Z}Z,Q!@o@E*0Q%J #됁jg@҆CI+Aq`3OyemE TP@ ${A/R%ZO8P G-ƇU)H<`( ` xH: C}(t>1ֶFO-?ĿJA_\+ DyImj2T72 GHiZ3+dN `. oFdZ6K)*y ؝S/Ԅq7m*rƉPH<₊Q$ g+&$@fQ:Dob~'蛵8H Dc'K|`4BvfQ3h7fBx`1Ch|62EXAY1 |BІ4DG-e `e\ Hl.R^r(VLo2 HA.'7M%}b4XT ѡV0k B&_ O.a X-nL/A4ac%D @aI 1Q6I p801A9`%H.7dh/0 B!t?ݔ@d I2 7k5,KSa7 -B0BGDq1¯Z$r8CH]́,9S+2c$A8bmE&(x獤4tA~֮1h 2MYr X'.8\fV v{(Pb m96.'Jz/D:b^pR(Y@,a 6nb)DgfpYJk䋀<VF. HS0%6 д!NnD7N!P xq&@M*C!9D,|1xI B ̇D @'ӋT ɑD PKrĞ.u1bʅL+3Y<&%@27u xIq dTHLQNt[rJ|bߒi0{$aҬ! HoX AZyx$I'$>y'ä !P|O#ĩE :M۳Df!Bc ,Am;x0Løl!#!_`qgqVʥ53oo:F!j|%`+v5Y%|mo AF2ҁZ5,Fj,+$pm6m!hxDr)1V/<e .V; V7Pe#?`(yu6e3p(cx@k'QE27*H|j8*2x6veQ(–F6 psAkx qie=+?' HjUQwi`\]HT 0zp׊a0w@* 49dGsZV gpΰTP 0 ɐ e0{' Z#:R#7͕ET(WUE_ &1jvsZb+= Ii<qDPp_hD`l0fġ&ʢ @8DR6a3bd' @ K|&wf@qKO@ hږ%%$ZR` ׆ G99zJ`pa(@A O7 HJZ41 hAA<R;8fzlfU$>!49ƧR4 lzI+"P.{JHE'ʔ#Ӊ$a1 y#p3 % 1v {agbX 7L )sg9Kb+` A]qA] 9 P&gp%"ݢ01c8;| }P7c-Q;NMA. J ( 384`0 q!Ш[S]'a TQ6#`yP1 %KPh @ZaZ8M7 f@ g*F6r9_R^JeT (A}+!(0aoYL`]n=A&0Vz)%3*XYw7`-z?P+-t6|"A5i? Oi3,pI,B36'D ,6a-PSkcn*!+  J(ݤ&"<1+:'QXl2;0#!b! ݛ<@: ?# PJ$@ 37g ?:p݉$ڦ>ƛ-6sM:CN)?-9)%/>?< 0KZ%A 1+Kć:O?"{/!4"h(@p`pq<]L{{:<j=/9J)ް w,z {ޘz! @3`V(e`l*vljwͥ$H(-!ܡ6W+t'FMGYuRC_6qa2u p:2u͋Ehq9maYcGAYS?E1z;j-a8A@]+## k&2|912ў! ,H@{*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗& L͛8sɳτ2IѣH*=PJJիXjdKJٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMi</N˞ G:M3f+_μ:2 t@b/ @0H|.ԟ@  Cn`FFL <H?d{yq@kkDQ }aDA[a,cNIs E +0AiCp)Pmva*IDԀ8 )Ot t"$gx,  @ %H6@)?A0 >5;N;;, 8 80@2X0ɺ zljSQkkvB: N$G *0 ޒ.hC qC$)v@0ۯTA Kf?0Z2\OTݽR12|,+``[#ܼ0Q2mL$(/ 9Fa'4+#Á-f *a$0J0D=ao9%zvfj0l @).y5 (k8f%CRvD`ͺ9`,)-H4¸!mqG;Xt!P¯ )j1o_FQSVOs̱d t=s^R:Xoemߦo 03Dpml+P!S! $8P G y 6HB^L^ WD gH%^e$8>G6\`٤O i]chHpWٝD>7}bY@"1Fc $B!%!rCD!KAy "@ nЅ R-CZ#%o|Us*() Ԅ^]%$: ]B@0Nq`\/% DT+f Rl5^J ٸu+9PՑM} +5 e 8q U>䟭:@ lP̵L'3q Uy2e9ZbN %7zt`ڄB՘!*GfH+*NpT+6Ykg#g?*Lԯ^al`6 A$ f$*pI!`,@z"8"G`(Ķexa`Mi#H[\ѐ* cb43 8H .aAKLO2g%< z ElW H~V oRIW6= w $S2 !KƧ2`d\A$AkBdu t:;@/Ҧ-H k!ABE}'t8ZJ@ut_qF‚S>UM!%;Ld-,Z I %t%*rP},@3 h#e&=`wz?yp`sqA1j7qfB{Qb/73VZjHP^mPxJWaNZQ[K88jN5s*1 %1VQgoVv9L*`kq } pFPZE o0jV0W PtTt|7c[N(au&ӷ kKw՗lfKBAg5q2 \a&`?b`UihBc Sg"RS478PU+Q;GQ˘R!k1v3-Tb[1`s~A?Xs:P= ؂U)+;WB5 .8+*fē9w|>$Yeb.x-=Ԡ:8XP*i&a9Si) Q M(qB v'{M&'M%8C0`)zLz.m&)bEҕ 3P013K(}$i yq>a") 88-(p  KUQgDКʹl0!`P'or0 IZA&xBD*A#C80'#:!.ಖ:8ӑG_IijC"9uVG(I9B2s!5ђC10>"qu | M/wox<vO6 $"<e,hs^ KPQ+@,#A#Y._,ә#100zr 1 rP'Fc.?1v1) Ȑ yP鐉ЦZAO An Hsx`pq )AAS! %U Xz *ӌ D Ê UHa& A"ٔnӢ( ĊSN,N7_a~[RiL k`iQvZ@C:)`B;:ddyCM%A"#&:V4y1<8$b"aC|K1fh)E0qB@D9B0X1I{©GB)q h#)*P`C.1f!PNu&zi8),0; 80FSJl۳2q!K9{SXD9P ,K K-@Kos$3aaz  4U9;YvM"u ŶD pK,61 p'Ja 1 a8(J%[evy_1/~!=:Q ɡVš j3R0ù8G[tA{&7;gb* ?2Ĉ!'a!,  }&A/ʋ! ,D88H*\ȰÇ#JH@3jȱǏ CIɓ\%ʗ0cʜI͛8s =  Q@D*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿9K(I $+1F CxACe6b Ǐ2T }4ͺears ""@Hʭa@I,r/TN8y{I< , 4Gy Koc#<>Z  ݯH+@ @@7wV~uhe !10 Y؁@"0(4h8<@ 7! ,6;H*\ȰÇ#JHbz3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KLQ*,kQG%z0bװ (#۸sO&-pȐ7$ɑ[ݏ7DCEC#y/FDȈ"S2`I̠"~%_<#90ۂ)T!^m!\~($h(,0(4.6@ HH4 lATCN KV'W@<\ hlp)tix|矀*蠄j衈&袌6hK]ƣVj饋M8n駠*ꨤjꩨ@DĪ,* x@+!5k"ʱ'FЖE0U#[Q*b'`?AC)dg6d80@:L L@@B apD<V %-a \$ +P̜!ל ⃚gԀmtTX Ph@ }4 dEGAqyvd,vY Q0CaTc,|@x2}&4A|xG.9BzmT cx6 1>Pεz47wL`B %s$W #(@̰ØSWMVcMX[d}ִ# 3`B@Cn #`Chģt.vDؽ?@L`AF(:_&0`; 'T"+! `$! b\`,9&[_`{D f@U_C(9(B #a `4%2Q'.x]EN2]zHlъ[Dʸ3E^ tLo1a%ЀQщ V&L]%BK I @5.eQ.0i< J`PB#60A iLK?'Co R %AtnuB矀*蠄j衈G6F"(酂ٝ#镐(6ꪕL :jx %`%jlf80A,Y wEih-RmY9S)B-KUtDZk/UX@…̔ pS$ 9>VR,l1PI$l(,0,4ל,6,X"$UA2"<tā dK1 8\ b. 4z0PAN1:HĦ g_BaaF0PkLW+Ep @ 3 DA~>k !3 YT * D[+$_J" 1ՂӉ@M1FoV.yS҆ rHtLV!Q?T!@1B ,kkI"ёN"J;)X :\0+9XAtC!F:dB@]p5 |ԣ lbFL&:P J2Vpt2Ic(@ ؟ǘq=&{݈x <Ʒ&A΄BY&[YX3<B| $* 8~NWB}tq0d92uRa%v^rS~0s]x8f@{~6PF`U @ HRv ` [P Ҭ7-KlW0DhYi,Ό5=cA&,:)@Xp% e HIUK!A؀2  ؠXA# F &)ь@r!lH xJ9.-+s0{lI9' 82* HrS&U J-\5E! Md[ U opsek;3HL |e iH3c)HCd ? h@$!)@M K MjT!9*8e;ySǷmSS*y\!&.1r (G9q&|X#(j|7ۨK$dfHMhB^H#+&\!9Ў;\a8@$~tB'ʁaI`H:e%(V&U+RAޅ&4a娹,QSLӠ xȜ p:54H*F L03 Ly؛ l4`B/3 [BYC2D(]6x @~Ў54a8@-ut@ 2 ^Fpdw# p2~{B 0/Ap`@r0wvowPvF_vq%ap Np ACW @ Ap+0 M0Dk0 P^# CC vC6&iPlc%k)1%Lpo# ]@Vfr&]P^l` 08%!D\AC! lf 6`4@$0&3P , 0W:xѨsff`!$Q+i(%,²ۦU%*`8`w;lsbّ'NpAmB0?Y'w[v/P&:`h@ّFe$u# 5trRa`@KBgR$#sFiD6"\&&R 5Zh1E`5Xr'dQwCi~gXyHIc^%&e'ejE:xDiE4Iqm k#zٗN(iiD)iɗ[ٕ(y)a/ɕ))yY闖90i3IkI(@Б(8zЛـ'(pg27YwC.u I(0dZ,R0 RUI! , HQЁÇ#JHŋ3jȱǏ CI2"?ML\ɲ˗0cʜIMɳϟ@ J'>*]ʴӧPcJիXjʵׯ`ÊKYL/=qKݬ*hQ iҁ^ȽKd*:ρRzВ'{;@ sܪHΉLԫeYlVvgd.YsOY/ Շ)hY q|gw ,-#(+ ),4l'6L 8`CDp045C`/( 1B@ /0 X 3PݥAp\KJIC?f;7Шt9@CL.]9Ƞ8|0d.PCn _h q9@@ ۴Ƕ@ A2`40@w A uѻ5iÇDAƐGA9` >b"@ K0ꡄ 2&I@ E@@h`{DzRֹ͂@|P<s;9@@ ;@9S>x 0@&z\3ȯiayPCؠPn?8o@*epԛǴq}0~H=@ V( 5#9Y b CkɋQc^s/Z,("A(B P`&m2b Z ^9!? az$Ǝń ` S'B$@zKn2H8%,AB0J2) LXW|6PHJK!NA t 4N;Xh,l1'u>\Al  7cwPv`;W T$ BEZ )EDJ6e؞ @gUAp^\V ?m Z8>JxF;(Mz j;H 1FT. KYa' Xra0Š%ec ]j6IK"$C8>V?B`H^s9Bt<_@z]X"6${^҆p 9CLeP! O6ȉ!-:@'FD(jb{tn vL3"{&"ɒH5(7Ȅ@ # ʌ9r  Jd(Np!1+KP@贁@ K1AۑE穂 A$y[L G&M< c{A&7Idpd81Be $ cmV̔ S |XB$p%N BD=d{)ǫ d`9G}ʃY;r"P䆰s+SlR9RF #+ơ]@F`2(4!y 25[ۑ1v |h1{S \ ЩX&nvTÌ"T:,@ ;i (|@%LC " CdEZI :رFpV tډpV;ЇA/x$aa54/`BJdb$0 #t5IaM@% Ac)"+sAkKaoU*a)$-c00 C @ux\NhU4A&#@kB&E:&;DP&@@ 75aZ(~X!RQ6&j'!B0С4xar$&+ `ByJA+cANQ76!rEs5At$5Bgo.N8#mFR ug+BD@!`Z[EF'6 A0\_%2P$p&+awk+Qh+(_p HZq71t  |gY<- _ZA*ztMZ!p$EC!6(CL;3)&82;,{E.<((ה"E{x- zőVY,i'7>ua)7r`!)M1LȖb+qKPg~aPz! Ps< 'TEw {wYw#A ia I@pAlNnmcc  u9;΀W\ D) ^0 U! `CH5 2=v{i$hipwpPZGSH ;&$HP EHXDžVLDc_hUcPb(PrQA0MPv4ZxN dϡ59GwNe^%|R8NA|3; 5; !aNNGC@DХ;p6A}rD!*776j2I)(q8R!;.@Q?w4pa:Hgvv(` N#R#@5g71 CQQ1EF:PzTR3PQ408ʢ!x E@=Y(36؊*R28305ͪ%}cz/ گ1}?w$0V$ |ra(z63`_YV>YX +E(P x%#)6:01gc_Xe'YvD"2z3Sh'3&[98Ъk69cD1Z7_:񭏄FO&orwJ"xK("MQ5"0fx#p[Kst4@z Z +EP!P;4;8P/' s +!EW^P @a[a,^ ! 8{($18+p-q6%[A/pA] ut zKNky8;`l0K@[ _ 0k+Q(KJ#=2[ ,,zlp &lb\xR [|v`&`\xP@v p ;#PD`P &B,lhCun|\A `*9 nl@` 0n,D0#`?l|<Ƒlj2 #P0 ӐPf 0 0aT~N@ 0 W&R g0iO!{g@ p 'D0Z0V<EEn"}k  KP&#ͬDGgR xD0;z`/)$#Rk  KJIR$J*P<@E!2Ƞ~@T8˜(xfK,f  PIZă.ym6p <d"F *LqņxA%<P@ v22. ހ&"A&ND03V( @J ؄zP Rqԉ-yآ.B=P ԡGl=40`8fP@v 'E,l36A}d}(@AAȨgRaqNF9eW_Y(`rj`7vAR9IbpdS86P2BP@zb`$FhF' F6āpuX"H cpd*!G. 8B  *IB4@5s(|Y2>h#*@`|K6M" ]66_ 6K^˜< \FeT*)n&h(&zhBrXB‰O P duC# +@gSHʈR! ̐Dd" 3F&1A$"DeH9=-s؂VN po_Swn%0 .sbb# `Wj5A=z& ﻪt4!Mȁ` }}uNSڹG0-"C F. !A"?N; ЀP=# \>Jс '@: 9 ?>HV[hӀJykprE:AC.8 A" HA A$#DB<$Az-.찁Hڛ-CB CXC4BB4@$H3-‚BPC6D$D3$o43:TC4(J=%P3ù&"_4B&I$#lc,X Q0Eb|F$4%$nݸ,s1d4 y8PD[ ‚0|A0H /`IJ($, =8"88;8qAG"PPI!H[ɕ$ PISŔ =āɞ< I!xIkJ>{%8sفz$G23(zTI(xUʂP"8#-8QE^)+(U -9xȅHdHJ"Hɤ\x x/H(PM(ȗ9L$L͔܁ P3$ =|є&8 jN^Lp! ^N8=NE4 |фEь88M丹($U<$yO8PBP @D eۤM ̊0ΩJRx<6`q rv Mo$HM/ZXZy"R' A@ÍECC4K;B> 0N3 S7N!8Qԁ/=S8SRI3/Cȁ==}SSH4$&$˽䳍PɩT> Q}G%]|B# &Y$R]EA_- ЀZe)PSP֎sNNfuVi6&i ֻл\A,0sU/شRhA9JH H+ ~X)XUN{?phϚX}$GB'[I NPɗ /{ђQ0Ε9|Q8X. % P}ЫILUI> ꔦϔEp (P ܁>N㘛m8 EPE%[U\m۲\܍\ /Đp Er}{h+uT-h w%$ #؂%w]xS^wт\V:H+4 )E#ȸP@Jl5p%A[5XIHС^ =#X#f$E#H`݁/ )8C P'!H^޿N`Q,#(_A"=)8H&YK+3PPǥ*;0ߝ5w]3jN_?Äh/]\ @`A=I P\ccG-_  C~B_|>>]0@xix&_dDANdE!/Hre]}]݂P [[`[z!hP` :+ ҉Ѐ<+ Ѐ-v" =P%z)(TIxA4@80z6P@0`1 @H|^0`JN0芞&h!#*0>H@N(00PiX|П"pF)[&Z @@ypˁNbx3Fk PX5BH-P萗H|s.pV[M(w! 08+d^ PJI8|]T#hh{fh (hm[ m#4 n.h70;p↠ p&(O|<'LXVnW>$(8FFMPЃ'/ȁ?ЇM3 8S +z g'0%YZ9+ pϹ QXI+ЉU:>_E(/Ex(ȒK*r<0@%P>40@ P8@ 08/@AP8x".0(q8P4x/LA. "@s8@--I"P#`r+H= @4%=01r!{H @0B0B+O@&HC@\sVMUC 0t0 hL6h-)(܂`PP^?PVzÄSSp[  "Р0/ Ѡ" [AU`QS`IQ^aADR0U9X*PP()…B\&0@P;hBZ PJxx<`[@+Oy;YS TIdM\ƂGv`mV{|J=tO̎vu 2bDzX!7p`X"؏1eln%%oR{}`&*jIX c8dp(@_8QpY(`gxkX2Mx_cc]0c%Єj`]1__Ѕ*X[cH`xg@@nX`.kxW4H`gtR.Jq/_Y8{" bE']{fCc 3^ ?6 G06Ag?zذaCvР Dŏ%J͔3l%0YW( r9s/^<S6˸ų_9Mcvm9z4g'VSFwы0}=#ܺYYq!Ov[S4lp]A6\9tvL(2tȦ]B^I?) ¤gv B@VY\8W DLF=?c?` !"X)a "KL0=sl!-#(C z3eB=Dpd@Q#&x`3A=8!>L 2`m8F{\CED@AH0S,І/\,p%H  H aB p‰?@.P bX3HBh3,}\`)*І$A rP`TS삊 aT|0/RE9 ; 80XA^JLNHu C6ܡ ?0WALc GR x"dIMa"6M ;HD[Æ:4"q;V2!:*ﰣFŽFhK=[a!V<#9,qCȔsTwX2Qݱ4H^.v(I;q`QT!XRNwH#~#M LѭL1<ȅ4Ѓ2a s?;L?VO"d6!C9@h[<)M B-ArQ.@G.`ED~(#0 (FpT8bP ?d@ H>%t@@f%dE%RDh1^Ac ư Q b,E  -\@x,` 0 812 gabxE#! pJ0 C/8MHW8@A.FQ P 8 H'l`Es֠KNA.0B& @RCx3LV dABz`G (ؑ 04KP8ȃp2N uo`GF썀[ @O`G4:'pxa'Ѝ&0xZ O<AGK_WHC8'( DС&\` XL ,,ȠEg*hA Ѓ@#pfz_ ŮHzA7g4'4gDx8xAi4b pʅ'aP#Be4 z DDD:@m`c? ?B}_:l8Ȇ ǭM#;ԃ?N?-5.$̆L=yC<, {`v[{l)r#\N9ԁt`tL=!<!U9C!4l6 & Q-L4L}\-\C4(`<Í,"\́*l& h$l(&B+o,4)& )&)Lb-n"%N"LB(lb'HA=`MȀ  Bp"I 0@  <Tcphc (A)6r=A##p@ B p X L#D>R <T$:<7C$AT"ċA$4@)t)|B%8e!L_t(0 B !(@4ɕtlBx 4&&,؂ ,XA+lA_Al&&X&X(\/lm$)iUR @j)@ @B$F 4@jHBm9\ս}@B ԪҀSЀ l@8/Ѓd9@c6#\x h88(h`JR뇆+6@H,(;@\F)@ i\*@ bNV@ ) *@h LL@*@l( ~0N@ \<Å>-LAoEu 1"R-ڦ-rAeԪDy8"m@ -l)$.. Ā\ nl,Jm-j붮 Ay.l)p؂xL_ L @ A0\$@(.\-Z-,b JV-­׾z-^ma"mx:(xA+4&fm0\*/s^0nL0Ҹp@ @˅N_ ,,Њ?P`a`(1-^툈H\4h' ̀ jS 4 q DL €xq{ xq @ % 1 Lñq 277,2?r]%W! \rS+z  @ dEkV@I-K^fV2GO3/sVPq,\ {@22{^ ,ϲ x @О2;3@"H ;'o DO}@ .AVsЊDḾ=``+F1H7tHO1I+qG3^jqJ3KqM ISO?L 5K?JtO15N#4r2RJORÒMMH471M+uJ4UWuIc56MuDD?r @#5^/⇰\)*NuRa?O$",ORdab@ l6govh56i#DEf'0b3vj6lIv".+8vH[6j˄LV1Mt6rsv\ oǶtOwIK[7RtL{Uq'wag\&q^KuOk[w4RKzS7u|k'R1[;K d*8}/8Gq]9xR @qH?xI5SXxR󆏷{xNo78us8z8ŊvIcx]u1 {ӱ8xו  9/xx@! ,B8H*\ȰÇ#JH"A3jȱǏ CIɓ(S\ɲ˗0cxra2sɳϟ@ JѣH*]ʴ)PA JJՄ:ʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS-QB#F1Ǎ׸8YM>_μ&xss "ϳE4h_o7ٺO߭ " @4߁V%A@!`S >(S/`4f 0h("Qh(,0(4h5<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸檫F!믿@u%A) J ˽(wba sFmf $"!@ ,=!EACZL`1 4 ; P @FÛ3 3mF< Bt0`C; S 8Я)`C9C 2A@1 QP 8Ls *1Đ@n4IА -< ZH" POd`K E0F@ QC$ $ ?DIJ" ;ZZ}-/1A3JW6C? :L!?H{S% I+LPUL0$zZ0hSxk,( @=@D>0ow$x%M?1C+<]Z A4GdET:-AwB o 'XI%Ă@jХx."< {2PLaYy@92 3 (*'>H {HvqQ@ד=%V2ddO. V.$*q_. 1#s 721C!m/` ;fd'Ĉ\B^5bt WH},d  !%&+<2D %>`KH cbIC)AA190A E X.@ G8& ₐTA"Afh ^ fDx Lv QgE8Kx$ː` < ҄tcChjX1@G_0gpr *$XJ* W\B/y`FLmIE>lDFI,( 8 b@ FFp/43 G((@awE('-F 0 -pQBtxDPX*JЬ`жl$P&BN yV]TBr4z8A Mʾ&Ё*Q#.8F T}:]@q!"DB(QB>ؑm  r?dhDpgtrpXo|L@c9(c;"0[8E n0R1  !(nb'0mIanH gUr "ĝag!`IHm|?.5d8 ! ,B;H*\ȰÇ#JHbz3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^% {4|X3 #CM:nҨ8dHIr^cCy| 4=-JDȈf,!<4"wd@esL%Y d B  TuB0`ZO<72bY@Beh< &i.ؔ9C 1pfL`D6u~VIPF)TViXfYl%LDd "h<О"f `lxBs 1)(C0{袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ%uFj뭸4EQv+k&6F+Vkfv+k覫+k,l' 7찱0VI N+UQR\}0m4̠9C6 A880w4k(4%: *ޜ Cs 2Ӗ 2\&l@C &1t@cÀnpg픃NV҄\|fII9! %&u|G $£'d4/(a (q]t@) L;+@7 x T6>(Ts^B҃hTـ@I : M< ?*[@! ,D8H*\ȰÇ#JH3jȱǏ CIɓ(S\ɲˑR4`͛8sɳϟ@ EhУH*]JOPJ@Tjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹GMZҨ€LFMm;vhg1 ȽhyY F ѳsAS>X@ uPA/h߿S a @tI2pKp`C 64f 'CwHR>'(|  6 4h8@ꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫2eIY2˙/T'8p . @ N[xC8ýPrd@:0/t"F@"g^C ÇJ{n! D-$@IpC>/nKiTip/H<=$,ODF?4qRLVG"G@@Cb HTT@d(,H. &d2ZЈ7#ᄒt D2ӂA "SP%/I{꽙~Es IT"fDR$kJ,GʷOXmqW:mQd\* ą>a+{x1Vu+cjC@Ͽ6*k=b `F {haN4k bZlWDLɮ'Y0HC<vX&C@mpЁ譔)@6GlŊ;!O dzv*Ui C2󀀃i@:9Zt$@ h[!D~7RNn8 HcݯCo A`7 ^b`wܜ@Z 3(g!ǥ/A)|VbHU (ARp)p, * y(E| ϴ|N\`{7c+Q E?Q[!'>#XbP+ y߱t+daS|i^G M !DEo 6/ @  s&r]fUpP8PE agHGPs qept `Pa` IsHp0`icawp a'BD!fH' v Thssa  qh( qy0Ȩ}N4mKPA 7(GӁHU`ю48jN"Cn(N7PqN!g(! : k RHr57: y}XN!% #Eg#)D1&i;;z~1(Zi !AC^?Y#q88pqd/!yBԹQЉ*"?p'UGgvYch* 7Gdfy#6( \?@E EF<4(3 q">z<$" lDKi4{6G6aX  Mܺnr[< QhW2"! ]3h%E,K+` $\Ƈ!58+HVJ#|p:hSZ9; pag Ї\Ǥ`LqLdK(K P_I@1z( F=@lF:glUt+x49SǬ| `đ6ȥl]D; qOq34diQBx-KLC7D1fQ0<pаA7]J}0᭹Fm8}y$0@<@BD]P  q[:P '8F,cmd*.<`*`bm uauB ' pnT<G0` Mнr-ښ̐]" JUQلg )B|5sAݷ8ZPO܌0 mPQJS("â:ݭe'2 ݚx!{Po,H 0 ݟQZf(R!Qp?;p\)Hj\HJ !hv!KyWw%'p(!F `y V$T#<:[i9`4}o`cYh "ekP"^q %ݬ P !(}!\Z#D b*qh}d}&t9Hq}d 1&h =# VQ9aP@P'_[QHO4<(!IEVDcJOKB5m8r7)1<#7``#WV5-4.a?b)'K0 EpncD&R)4甝J`* 5HF:N#$d<|Rc+1xi(67+%@2Б cV`:&/,!6P#r7#r6";ec;ف9>)lN#D P22<´{wcaq ;>"S<R_96L[A;5JS\`)p(]eӽGyvWm"!!WЗb\! r P&@y+4P"YQ}:.bAIfcpɡVUsN!E*`9#t#g"Oѽ!!1/U8({(dAg 4z%^GBA#JAc(x… P@xCz|#%tSL5m~qSN=}ThOuacR;S2V*`8C :cgˬ)J `?̲Ta@b[BE#~xE=~!b -Z @c 0` rC1cVbQq?ؘa6Ht@\x! zQ*ͤC-tխ_I!K6_3b4D8@D8J Gs@`b (,%!zA![ T)Z>,k6dA" ˣA@dpClr!6"Rh`#"Á임2J)ʦR%B:r'zHPA5PZe"l D >:ɶ"hE9BZ9#pJ5'AL(! BO> "#2I*gh5W]:pNh&|ceJ'@ )Ҁ#T"c 6@[ 0`! >܌ɛؓL_ v1j ؂U>AIҊթ ݵc?%D 38%d.wi%^*x%0>#%JãR>%f"# @f@F!:c2 j+m:K«% b`8yfUndYD{F=`zXq$gBE>JGPI@9=#`[Bul=.ÁDYa[YRx㏗sN-@K^Ч{|It`D v-^͈!6c'4~ȋ=b@r4˒ш  z2xy`@#:?TG) (EcLxv:I (0_"3# $#p0ܔ`% c#PjV& %(XG@f h"^pgd `MU8I(@>0 Oq`c#@GdW |l6 @o'>N>fMy:9"&D'9st< U烚tl0yWWځ%+<T#RKw~$r@H+vBG: Y_F@)dDxPe@@> D,2`JJ M;ANs/ \0 e2lx#qڡT*QQ"SZΖ7(@Jxͻ| R@Q`9GIJ!u #`@8M#CI>M.v>U h:51ϼ?uJo%rbyeYJD'J5]ЇSGyT"1 "7$JH䠜92LtܛI '`)$>{l;e4  yk0P Y\wKN|$A џYk2aF;Gqri0`Pj&3Nd=KAbgbp"!{:hrt#<)%/ L.P4_M!Z`Ȉȵ -@ؠ < (0` +ۉcLȸ컎 C qZo+Щ?aAv`"&8I%=-&ȫahA9#@1Q2  މ ln@B8A@ c9I_0)4􉠉jt0!?S*)k9 0 wY9;; /Ibi;%u*U 488 x)1(E *>0SLE # D L`3H&H')wU HJ(`7+2yP0cZD") ! ht{ `@G Ǩij 8p? `~A8= /ac `h X YJG <"( %:4"0#%9p" "p2%"T182 S:$BFIop 4 0B  " 0XP!tIId1.9!ψ X tIF! jaNS`XHȁd~Q'ٔ0hzQA|.pV;Vq %*Q PBpX`x%3*$S 7y` z pIC Nytq  ؍p$Q  Q̔P8,,'QɺXы(4x'   " $5xjdT As@  i  P~ 1p( 0@0'򈧉1e< ppAm͞ψJSKT J6Ip,XN 'Q548L%h4$p&`I)@$TgTɂf5c kx;X 0y" `S1 ןhPs=VŽ`Ϙq\R[ ]4wiމ\7 78uN"I ;B /􉃋UD .8z6=Ⱦ\AI  A5By: H?,;(YaYX5@Z %۲([.\ u݃2 RЛ ,.pěc\] T3B&㟙Y&C@Q-]]C N ZA۩PD #p t MvPq0[ +CQ{M (t\?xǏ8ڝ[ Mwیy'yV,Xs@ !N #``]u׏ &@Y@X@0 PC1 PQ(j+7X&JCЀmɏxOɧ\谚4 k^`w֐Y1ߙ8$>߇ؿ,Z 00I8A¥ F!;(W ݁XE dU)(Q(F3>>dІ#wY3;"5]{ 㯏X IG?@^ՃhxC^0H mrIa#`^+JI)ݏL 6Pj& ?dk\ B 8Xg 6 Ic_813Xg :6'D|{6)vDC'·?."Jb& &[X# X5V zd}bj@fMjQ g9 u\\M{BN`։{`]&:%]d4D9m&d@ {;șh%M X(Q Fܽ`^,XD3zr"zE%K'_Y]6@gZRWF T?qE?M4#{ A 4FzCy* F)pu`c(.08 (\솉4k)o(n hQ"PĠy~ PӇIp"P ⱂ2 ? @DLD7Du!'@ pnK-6(89(j8Q* # )Gh*M ؽ پ ə @đ90!h (:#>HIi9+R 耜 (  8 '( p!V`٠_ؚP{ p*j]5` *:*2A ` ' R`Ӏ%Cl lX y_G4I4[Y KsC@LVC Q˶APzXp4GxxhUCL"0%q PY #Hi`!GŔ x p   (lj}9/1qPH-"Dݦ/,Y5O{0b[ 2lVĒڬO.(R̸(') RHQ ܌ЪH:𸐈P|N|oHQ@'GI?h(QB)A:pC#xؑM`Aj@Gu 楚舄_MxF+D|/Ȓ'Sfn7o3h NT #jOհСkNwN=q Ŧxhp-n8 ' >c1x@$p  'PE#O)v$3Z0 0ܦMg %Y8C*i04Dn^1ifj] jje6GV[h1emQ7d;xpCi"AQ5ND{M(d2TdeB 2kCNq8`uʠe_)Chٗ>d94DSu&#@`%x/\'A-\ +pCH : YtGNddO< Fk0 x&]x)㱓6Q,1@(Rlafd"ИmTБGУjR5 3T)D %oT`K) u/,gC@!-gTYאgMA t @'  AACC@D@0k@ؘ DRw+6VR`8~yKmhgG;YwqvgkͶDS): Y\.uZCԷgTTeB<ADGETap TU/JLUSEWtD^ 팙L7  E%Cl5A A@{ Col4V|wUFՒHCd&f d4CUhcњ sY?ƺ P\ +,0!F@9 lH* f Bb >\ "KdLv )`9=7C`g@B5D"ɪ.N@B5}`@Ud q=A$UB!L!I/xCb`(C琨B |eh2?8 "Sy&`(h~}hģ;deAk hH:Ȍ!{CFw's !HAjV!r C n[&AH1@ !BK|DȀ`3 y iH xEfDa 1)$  2 ؈&y< A)AъP`+q6]T27`pJ %R0  h!] gP:aB~B \F%hr $Pѐ y̩!Ex%"SD5Ab4\ $ %iDkf AVP89a5w˛C- i}X4rC2biCU4; ! 5iM\ 4%IdžSSRӻREMZ#$dp*ABiFE6 !,8l(#4įbHBt% 2†l U##3 '㸒X$` x´$ȆZ`* qٜ;Pɇ H!Btl*Z!\=EU"ȏF?lژ LR N~NG*"( ~s! SDQyF D4M!a;'M| 4N8{1"fd&A34D >c qL.06A6PP`>TD 5h*U}˔;Q:Dy~73“Jtl 5iI*N&.kR,`< ze'A0\d//5ዄ90\aN Q!rm 0 "| P#GSA{Cv Wq.B~ )Xwh@=|A<&=S grM9XH O@0(R#V1"@.rR=e90UVKaȜ y+ !U %X8x@-8:l!u.@9=C.+ MH#bք L!FPV 44CU ޼I"%Ցx!q4DS@>yKRwA `zĎ\)PXVJDLő[EEAN []L_Pa[( (6]BD @AA!} h Ni@[A@<@@܇ԉH EHHD AtpYtId8QVwBӰTLCԍP#d  [xYL a 1|F bjDBBT Ŀ A; 9.RCAN@΀H8AAulX txT`h!GIpEWHLO\GSI4Fe͟DƓaj`IHOL|WhWĝH@` 8ILbG< tL@5{[9E~8q (enXG!u8 O %bdrlVhL ! \M8J4ڀv؄N ̄hthX&#Fƒ|KFc2Ȏ|5ʍ+iv xT aԅ8 b$U\ &{j.EPGě='@;_E@C̀ Hzx4Hl&XT0 G{a~8=J PAۙhʱggF"GI*z[y4WdOĄ_ņ]PEjQXk, ah؊Fx\Ɉn@ܜEp_m`@hKPVTi€# Ru>@oI8;[h5Y| ؀T@DBXm㝔gvDE{ (uxI|ɗaRKw !XC\ A{`xg EVineEPK&OXuh=AmύH}م[-BG NG=D D*#1 Δ*$AGe~@td*@< ŔʘtG<@("dd$Y(kex6 ``#PHk0SGekE VN5&wRA`G_lUEqD.,\C,/eS_p]M 4DoPY1i@r^Wzu@!@ DAPXKA@(AA 5E@>`xP@dˤCXDyle0 d,y ܿq)TЈQ^Kᅔ,AUJi؝AɁAƨE PŠm@oe0 R Bd)>}ME^lCL (H|@9R 4¶LiYCAƒ4/NT-MEU ,D>= BRC)gK8+`@CA+Ă2D*@B@ =G 8+.A4X YB9AC= AH0wR,QwMŶ?7D)g{5e4r,YDdlmu[e(X&0`d9.UH, DXC* JSŌD4h434EƯS Agp5.\$Zg!Ad1PX *U@5C$\dTB(Tjx @REUt2P;,b3Ud!(``wLpd:SuP)1^C}~xAKX u~8 ̭Rцҏ yKvSi9hrzi(DILl 5AoW;DG}ưP0* . bC$Ar%pɜTP ,'YteiDy )+H8׺p 4sh<D̤Gdh 9e;Bd댖DpjօzǰUlh쯋@oDIg@ <,Rt]7 rWhs[GKOj*}i9R{^ʯ|9W<6Cˇ<[pf<<⚼X#啥KF@! ,H@{*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗ L͛8sɳKUJѣHzdҧPJJիXj*1 %JpKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCM.tŋҰcC&\{=0ȓ+_LN=8!$BF#$ۋ2P*CH+TtQ$³#S, 1@ ]`Q#ldI7`>$e-GD c k тD#l\*0,JsC OEW^u~z]'s!FAe?wCQڨ(⋀½9PIӵ Ic ;hA*k4 PgT"(?5He|K@=Xbv QAD QF=DGOf6S72&pA*@ Q(Qd#=ak,l\tQhaGI g20>@3 2fԖI'aa40y,4U9 G$QFK,#&8g5J@f 8K@,AR6_8q`5JI[A67S`zGBWRaw) pXsw Ya/e#gRɨq4Ek;)<0*n䂯Gn:1!&a?D`Z¢%g/`>B:MU/Y3U5<>3WL+8+,> A4Ż-/q/B@):}L{/@K+?+*{j.ȳ S$)a![pp t$ 0""tAHa  J90ock "adqyDp0&ge?Sba*'&8pP(Fφ|IVӛ4#=^A(X|"-V@qk=<A,WJ*`a/2L! ,z8kH*\ȰÇ#JDcŋ3jȱǏ CIɓ(S\iɅ`I͛8sɳϟ@ JOA *]ʴ)JQ8JիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS DTˮ!9h6 JbU[]t1K[`m98*_q t֦?5TT~%0A U`@ dY T~fQ9,x 18V 2 @@v Peဃ(,0(4h8<@" AiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰ƻ*무j뭸U dO9N k&6F+l 0-љA ZH;8u jL`iش M|BAP|gAhk-ЄA^B iA"n恄H"p AI)pJB ){lDAg:t":0n*! ,;OH*\ȰÇ!֋Hŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+Nc61 ", kK͠k&2"锄r@k ȃ$sd@`gQTēL4t(^k8 eOӫ_Ͼ˟v""4H &ddG`a<0@9  C($h(,0(4h8<@Ti!H&IJe_PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*|MHFpFDA=z<S ʚQ7'Xd 'qrSC{G |`Dob XdGAB d`Pf "PBA:P4C>tjj@DA` pt8&` ! ,8OH*\ȰÇHŋ3jȱǏ CIɓ(Sra" 0cʜI͛8s2= JE*]t#JJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMo 9Q/]֨3fH(:pxEF  ^JyG_Ͼ=B8pOϿX, I h  @M ayq; C&0(4h8<@)DiH&L6PET&LUGye_B|iqI blp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰ƥ*무:X=ؚ(0QV`@bClɞA ZȰ@b+6x|m9(Uȩj-ЄA^t`@P(p@BLP0 `DA9Ll :C#< ;0*!! ,;PH*\ȰÇ#ҋHŋ3jȱǏ #ɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸0b<3cpȑ ‚/,d+ m |w HÆSXyGtVaܹ n@aË?CFӫ_Ͼ˟OW%A ]& 6F(Vhfv ($h(m0( B\Pq\|n>ΕDl@> aL6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj7馜v)r̕Y :9Ipr3oO! 2Gbob XdGAGh0PL@. C9QP Dv~w8C&: ! ,8PH*\ȰÇ!Hŋ3jȱǏ CIɓ(Sz|ra*cʜI͛8sɳϟ@ PH*]zQ@LJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCݓc!/ѺFEsw$@oNȓ{L0g̀سkνËOӫ_Ͼ{ POϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)f,pf!\ $E(ɤM;D !4UGlyA -4a@AEPX @6`BAG)pACB@&*@&u<? # P@! ,;OH*\ȰÇ!֋Hŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+Nc61 ", kK͠k&2"锄r@k ȃ$sd@`gQTēL4t(^k8 eOӫ_Ͼ˟v""4H &ddG`a<0@9  C($h(,0(4h8<@Ti!H&IJe_PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*|MHFpFDA=z<S ʚQ7'Xd 'qrSC{G |`Dob XdGAB d`Pf "PBA:P4C>tjj@DA` pt8&` ! ,8OH*\ȰÇHŋ3jȱǏ CIɓ(Sra" 0cʜI͛8s2= JE*]t#JJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMo 9Q/]֨3fH(:pxEF  ^JyG_Ͼ=B8pOϿX, I h  @M ayq; C&0(4h8<@)DiH&L6PET&LUGye_B|iqI blp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰ƥ*무:X=ؚ(0QV`@bClɞA ZȰ@b+6x|m9(Uȩj-ЄA^t`@P(p@BLP0 `DA9Ll :C#< ;0*!! ,;PH*\ȰÇ#ҋHŋ3jȱǏ #ɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸0b<3cpȑ ‚/,d+ m |w HÆSXyGtVaܹ n@aË?CFӫ_Ͼ˟OW%A ]& 6F(Vhfv ($h(m0( B\Pq\|n>ΕDl@> aL6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj7馜v)r̕Y :9Ipr3oO! 2Gbob XdGAGh0PL@. C9QP Dv~w8C&: ! ,H|*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗ ͛8sɳOIѣH*لPJJիXjգMJٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMi:tc8N˞45%f̠ͻ/վ+_μyY KN-Zν{eÃId$DJp";Q[; \vRR.mG߂IA@Ԍ@W<A@d7c0$$9"E98Vsz u~@~FYdq!k0DkGgg|eTz"$̡s,qBGRz0걣t8i@7h AķQ\ $l{E*0 9 Y$0(;8t$ $V C5c #;PP* 撥^Ě@;H)?`%+A;`BE9 :D;ШQknT=[B4Sj U 5p !'*qC GgI$1 CPə:P`fXܲ ϝ iyMY8A@aZ B7a QCuF8!e\ Hp.Rrq(Gl2 X`F 5Ld@8\-d1^\p^H$~_h*'Jf8"7$6 B9@(AaP.%PIM dTM%g2"!1r0p#!Y3 yg-OW#doN+G3$Yl|xZA/(@ČWd@EdI5W5:5~t-;`$N\k@P"gq2\NDM'$ u$&bU㢰M67AY2Y B@*#RUD` 3@Y 4@ ̘SQ؀ E ޮHKYؘ0A 6#jRH  တ#b3 䕫!H LW@P>bz xGB B*I$.Jy4Ģ$BDd@: B\\ 6S ? aM ѸCHv Q@GEށ${~H` l.ύو0=xCbx'|_҆=y"%l7%[i4Qϒ E`jD@*@"Dj@[e/J+,i?p5@xn w)A( <PE+eil1n F2E1Z5_Նi0, Av&hB[pC&UQ:<&hO+H7d#?_)xv43p(bfW@E'=7~3H|f2*#(ȱpfw6O=(FF6ztqjv3 har||#V8\p]ՈhEw& e!Oo| Jz _cRX%G OeA`sKQz5P.Fx , !`0 tЌyHA0`cX{` |) YqǎaHO֘z7$ A\{N qW(}a`%'F )X_@^ ЄQseT+X7) Y\$=F}.|:&v3)^D*)#d P"X GqA٣8DhF`faXAB QAFj8=F@1%@C,`(*@dc1-<'lHhMEp`*5Vc> 33Hi<sY՘#!1bAj+jRᅯ49P';rY&!iQQ?48(YrEnW 3p4MPo.XA1-3v*}!) p#%JHoP!)1Jc @Z3(%/9ApR=WBHj#z]_` BAiz R =q[ y8R1 I\d% EҟZzٖYd"@*F -ɩRR 15@>}Ya ۔|MfP0g6Rh%3]a@Aa 6"Ԓ"F @Ax ښP0985rf#!+ " c@?@J  ZHuѕ'a T!SHKPh `5`*ПU`sG~R"! 1 bv<Ӕ\[<IZ`C0gВ W k*a% 5;s2~#Ev6(kzB1X@ )Ayxg1 }1+8&{˂3⃠ܥ@ԜD;׼Lca6{jq):AćAƪdL (ϔM 4Ώ ک@ЖQ0!Q? S*sx]Oq9*pʚq8}:i"0B#28` G6ߓVXlV}ՎZ->[E] ֛ҰAF,IbJ?ppx A&ׂ=ЃQkvYZ8`,EF"X 03؞{؟ښʅdD=9`hE&`eJ;D a]-']r3 c'э; ?PM2 ނxAvPA6v v`PA`7*bVD `  .=^ mA0WPӠ`0 =ē0K@0@`FMY>0!4L?39_ A0pED2 P npN.p9":R~ g1 pMPP b P8 nDp54 Ꝿ\'!:D7``MpZ 0Mpp C㓠lP^9nA>?N<6`3_a@_xMMP wpDz@ʮ=^qOUV9@Kd;-԰*ppMN`Xw Fs@>k02?.p_!O J  pþs9pPAa o L؀ P@ p7s~ha=^h7a|xa%%sfWLP P `|y1fo`e?؃J%qiw&r$o@6<0@z5neOCO|(*xVEcQ{}կp  ߛMVYi:;P&ྡ !/xؑp .|Q"Ä,RdxQË=~RH%MDRJ-]SL1+.bE=}PsE6BFHT5^ŚUV]~ â؎?z1΅@ܾB֥Ou%KX`X`…KBT:VG0 ySɑwf4YfΝ=CGH4x(_[쓴-[n޽}T͵! ,H@{*\ȰÇ#JHŋ3jȱǏ CIɓ(S\i@XʜI͛8s:t)PΟ@ J'<*]ʴӧPJJ&(aׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k#)=~xb{Сc Ҩc8cF!8 QzoAط+mɵKK̓N>wV/(\2}/'HeSҖE |R?D@#PA#7CDԣ 2H"d=?GW~\!kf0 npDwaG_lA=AsrԚG?́[\ő.% L@=@k D3@xagx `Ow* ( A00\48 /4!?hPf],  @ %ԝ5F0<mí1aDP@ ;@Î* 8 8@2AVEA4ĐVzԮrg ;lmK n k BA* 4Pn 1 =DBpB1Z$ TD>dȬ lی !OJAGA$W @V<Z$g2TT6H_pPBMa'xFҳ1y`C5@F!aCS}FAޔL<@P@ tKA%{.9.UEF4D pAPT$?Z4C@ťp #3,  Fq0Fc  DBar>\"һX mI2"!9"b$#|p  ȥ%G(xB(ҼI3 W*3@@O$KB]R(OD,@8VA &;yMHF@_4͘ \"6 {EP Da!6I<Z6L!Y8 $# JP\! R (d9[oPT$0 rʅ+ (u$c| zSZNs9>bTZp@I /u%L2ʔa6@UHl3 (Lai#f:Rf :W2xF yX$x0,Q.& Yd00tP4@9HhB &m-"AL&$:ɄUzBiC ku2i8t LHEy"KEEI @ v I)'P"00b$\ 5\ e8Wq P7nG ^J-#q+|PSݺ"yKHBRq@d?B`d<6.HM G8 UT_Ò' hV62 ԁCbc.@Ӓ5`nq1R 8 34AP,:{tʂcF4TSS^v^H.{P2}jRDɏnWF +̈́l`$%iB ֢aWfa4́$@6 pbEp$RG6M,aoM`@pA8wKQlL1o G x&, HwjkHĕƳ0PDyr 8pB!9!CsrK$8HȀ'z9\"Z%Iڕ w&8(Bp܁ &OBBR?em2w3$i[B2֝EPBYB"LS51G D/JvP+ ggprĠUP,j91JL {]ky,q"ƽ^YbJ{U^3k3 ib⍄'H}0aYKfVH >`/JZN8$VADF61g6~%hx+% =0bG%U'D1,GD`0BE&3fF1Z/(pm,f'yQ.u9Fb{b4!E4oa[wF؄(_m0Nx0LUA`R!]! TE1}6k wz OR"[JA ayiJ0 j0 `oPk#p,p0 Phg'PAh$ZLLh|p {y*Q 5*Fx^  oEgvi5VC!yYTKHGPr dG1Hp,rw3!AH`Վ$g5C`c\(*ӈf8P E`|a$t:Af*c@nd#Des+A_SYf7!y\ *#`@wc@663&&G?ЃUk8+<&q'SEVi1C&@C`f9@,Aa4=L5c0[=`U*3x1ဇa2A+(7q48@.qC#ph>)`fVT-/&\{_a}!_4V.HZSv0c}s$ї!SL+JA aYzЛ3!*C@+C@_U-l-0d)7jr!S-k򰝔!y0;71@eЄYq*3?(0OC[Pb[A $cV$1@,02T 2@[453)[3) 1V9 B$o+Zl`Jp&qŶ9)$Kjʳ@)):iZ\ڥ#0%AlǦP1qwv v"]x1I:jO,*1q=2``1}D`D04&C )=GWЩkQoQ#:A1v$oA _0/JЉf p8KЙ,APR5>^8q`43ٕbA#7S ywG/VR!v) 3c D_.efRIV#HS)`9i<I!|q+;0)2AYՃR i.P1?yW;"a?CEZ%`f/p=B:L%V.Yt[1T"75c?0_AңY@3P[K颹";"%바;a !;%ѐ f#!tJ K L'Q `aQrj*PwwЋ AщO; F?8 H wnњ71H`p nrN *UXcUz;F0r@{} DH0ɹ!!ENlh#5X`EyY8wS< *QHE2@9`$q'Q,IcDS|!+ַā\o?40<ɔ0Q3P}Ѫ\0e ʡ#@ -0ç!P05":%.SjdLӱ3h A|؜  !p%.;Z*@+@l5wxPs^T -<ύ _g ( :p X(R(V0U<:Q:x=? 9!<, s`\dg%a|,pepQh-Dd/0+%\ag! ,z8H*\ȰÇ#JDcŋ3jȱǏ CIɓ"\%ʗ0cʜI͛8sɳϟ)Jћ:8ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KLe}| $ a@I,PTN8y{I +1 `` GQ 2 @@|u PeဃVhfv ($h(j )0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*{@B\jA*ꨤjꩨ j`0`/%ࠃ @J@8PaBQ C$[?@!o 4P M@9؁#AgfSHL3D:n#%\Q 4tE #P {0&=@!\0]C|FC  (k00;6flP&guŚpq9T"-%%x 0<д 6XMF챇E0@P xDT(q #\ .lpo!)A (%` (0 "P&#`Bpr}vB:CaºCvNjPiB! ,8*H*\ȰÇHŋ3jȱǏ CIɓh˗0cʜI͛8sZWFϟ@@ѣH$5ҧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3kYk 9ѹ-M3V&J8A^xAj5@`d8hȃ=BYӫ_Ͼ˟t}.XϿAq $%&@! T@Z1F@;l ($h(,0(4h8<@YB !3aiJU[g %X%16L\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜vO& &dCq1%(8%LC C(L*4UNAp d s@4p?uA>Z ɢ#44Q0EqPZ;*t=;PQ@U@R@ G"hLjJ&x;ż 1$ʱ%@4OxaARjPAS .? q=d! , HQЁÇ#JHŋ3jȱǏ CDȏ`#S\ɲ˗0cʜY4sɳϟ@-G0_УH*]ʴ)ANJJիXjʵׯ`ÊmD >~S{طpF%۹ LAJǐ#5 b bH̹sS6F %x̺8X\mp6G HNxD:p8 ƣKNسkνËOӫ_Ͼ˟OϿ90h&QCA>50a?D$!D0&bJ d4€+ h@ @(dkS@9*ĐPeHG?j7Qf9ƑiUZ)P.U &Sp>Ǝ?X *d;) %%s4'l4G!"*jAiPD@A M # zP"?8`YJ /Qeq9PA0<ثA@lG)"4"An;?[)U6ù3W ܱ@ - Tt9 00JC ' IeS&1AE0FA4]pA&SÁ=QюDρ dpCI&,E`"y`K5J!s:CgPJ,M%+ḙJ+U1D !/M10RfD`L7`5E !T4Ej dG7 DQ!JmJ82CP!@X!cBmT ?}J B4.T\(`U>,;ô{ \_ A ayy9! h^B+ x`D" FX0ר9A8%L lo!@" :p.9{~Ee{/aEz4P9#2E%ZUpX` 2YfƕCCmcE6eṛCȨ>FdH)P9A5򑐌$'IJZR20X%4C@r>.  :WJ6  [ $|(Rm4UC)dr"T1 (5l݄M4>lf_P/tq;IO@"Ģ auD?aOTcAE:2 $ WI@Wl&!fNP<8C*@z ]q{8@P>ӈ9R{P !(AYAS#Ob;A* JH t`#@u,U >c̍DC%:jj`bL!AflI: =(:= `VY +48@a?k g !, Kr$ɁDTP Ai.As*-a `gB ĺBk' B ts@$,.1,.~0;0J/%̯#y,IyP8@!AC1;nI Avb/"et' f ;r.U$a_r3ᗵLx; ̗|% K b7dI* f@j+"Fˇ Y:xa aˣ t\N [L0tUL '((CpfY0a dAbݮ )f0! @Љ,t@\3qW@.QHnJbZ`ɀ@&B Hڋs{HfT,(A \AV)%(l| G욂lf@ *֋ ݅Ro /h HRrXBDn.@(biEt !pH2ƒ"Bnoy{h dgB[ J)1^P?J+Y  b}i"|]b^%(EiHN d @4`Il*͘J`w!XA8B77Do.@$p!~ބ_w,@X6u+(}RUC5 :A'&>_I2@JF00dqVAB B^&@a@~-07> xCie&FCzCH8m$hxDm1A j,"ątEkG a=ִZ 06?PfA?"h"3psIQf\qg\Rd6u_(-;L$a:ч+1JCqfqJIeph~L=6i%j$jq|W59}i;@CpC:^u@ DzQQA^1")9!6{C !uk7_pqxy}R}DQac yG`d<{vCf|4QnMd?G`Jmߡ;IP<JIv!`0o#GQ1 e7q,')xUHtJ; g4 0Av!xUW~q 8w17Gq &uH xp7lp0ip 2.YEfQ 籏QuCGPfdgxɐ WBcg pX- 0ib`AQqq _a30ʣ|*_1df*ӗ IeS8Jt6V mq*\UG54`s1 -מ0頙qu {`5!HY:`>YY?V` q*9p}9 T9,mq  x+An]퉑EVfPFo EhjKYS`GSPw5zgidp)Ӟ91HIg2+ wJ*8EXTc)sC5sT0XW;8TuGmHP=CZqD ce@80)S ĶX)u()5' J OvD@8`6G"GTgIbzk!(@6͑~Wi։h*ebUH#|&$)^.( +,D\(ZpDvB#@p;0>b%hU)\ ..Aa'@3p`8J0q,A<c #I`cCcb0`f\"!ֈ†;D93{/`w#q3fQG FK h2+(p# A.;#``erfߚiIi 0k/1t˜#@lï¯DZAbJԹ~,Q&6[r:AJ> 7 +tU9mFKY=+ W1R/z}0B(ݻp_P,!c?@RB28A1qw C JqV_@}' "q+ e99u+ K@&- ;K0"U,q$?6?(іa :n0p(n&U8ۉ aP MxN&A,"/Qz;6_P914'{'ZtA9]JRQaJGU` O&4 BvJ Jv @,@ Fi~J_EyKL1{֛K q(U(Py !U]b%,{j!|ǒ-,Y`mL4v ,vsHm懏)MI  pAX@X wMIƻ8079*B)AK$ !H1C+8@1n=gT@2@'gJJA<-1P2&"sbK.E(ѫ0}-D%?pC#DD+B(1`"# ZJ:"?0&6`!#Bum@q,K+!A!E*2q.3 BG1+#%aS"A>^>c bUqCJ8-½l 6+a~m0 I] = 4< a| ` &09< p  o;G+H7q$F- :5VP`  @ b5)6`A[FpqLBa" a(` 4s <bʍSP!AC+)J.+cP<"!dSn  L'`a|1*P++H+0X)@"ED6D1"N"F"oCugMi;@B+4n:@uC8&F- @"V[l\tgJ-X~xVI8cb;1ȡ3a,a-ِ(!&r@B >QD-^ĘQ#Cm`B EB4RbCa ?~ C4f̰1F;^8p!;saSRUʴhV]~pˆxQE 0D@01ba_¡ *|ri ku@"~7d+UHfΝ&DC0ڔU  .. @&X("+H i(tF_n"ڐXluc Ƙ3 4A F^gC:O|M,2 `C3 :`p2@!JZ>I4Phðv1H!%b '\ E* Y(`b|\+ZB!RЄ3N ɬ9<'C"(OLd!;DE9QI'Ȃ ԎzEVbȗRPP٨n(5VY+@`!\h@T 8&hl D!: + [њVG*) v(7ޣ.iZI+0_SB!h†&E4Z82 (H ##B4"a2CWP@ r`HH\6Xs.p:dh;s@V'061Z5HPjȺuڋPb6!A!hj%2(ֈ-AJ!=G*l:ЀOb.I#ԯ5A,(` tA'-! JSЃ l@NH: \@4@i c5 w!}p)Du@zi@/08T0I (_gkvƌ C[;$ 2 *+FRXC"&dCm[~<hATPL ;xr[@[ Pd XdH V;XP-A3EX58Isfr!;JS #సPA~IN#b3Y3Oaج%Cd,ȉ<@XO4EGI?w,o) ZF?HV fb5 B (@?e@럖"zG  !?xJ{!ٟ  (I2!0Gf0 |'3xI5|"`~@''X ~<6 wkGd Oz#ޔ(k S1VaDh-Ch|l>p1tz1?} `1؉'#8-oDdb8#HD"(6t۳vH?(@@@Eke ZP4xw c nhP 5(/HEP+(dxL‹U0g|{^0,( s{` 9IXl#ˣ!qˠDLЇI6c1%Ș\,(#H`,N -X()G X 3HXxrPz+=x}2P[h[U=# z`0zxjpPe =huPx ЁX@T>0X:Xp8X_]Ȅ(WpB /@E>`(Q@0хQpX@8pS_]p X,9 `K@>XKpBXKH@X.@I 4Kp_@2<}+;v;@t%x&Bh"𛡘]z5`2䰱0Pjl(,HV/`V30vyȅ%}]I`vz8 e\y`z/+Wu zz4`hHo- tUreЀMxzDueԀ,{Fe 9xxxLpwIq1„?@}H ɑ1ĘUx3`oȅ eU6uv o@LMyz( "oTZ Oh`#ҁ lh`(n1*t 5chCMWІKEY%8,9pl$G9x8@p_ =ōgE=)_pK^Wp>SGx*8Y=B@_9_pJȁ hWh\;rXnBP@vv&8߀˃vЃ& `z؄ -HVP_-4 z`*/ЇUZ`z` @Pez9#RrV^ij ^MW`V"P{hQXrЇP`w}y80Z`P9P01me% {huv[Y}H qjiAblwp%pF%u<`oPj xy`PoA}h3 ;'IXxȞB> xH) y 05#]PfK؅`pGȄL؀HpC!@I p<0NEI@8c5Q GxY@fQȄ`**H0gPY8XPW8HP$>`$p _XR^f"x 0wYtPx+A:rhO@tX "/e`3X6`^`DVzxLXN5 Lh9+%jhv(PPPHXP#v ( ph7ms '>DPePw9h{XV"Ѓz1`P@?HWu` Pv  p[Pmh?8 sin 8[qx?~r5hVǨJB0(0_.`TK`L`Jo CI-f M"qNA؃=P*Y PQ`X @@aP]<؅ WH (]@PG(@)pU?yGl@P(-y &(BUl+;B0 ~(  yZ?=) =n3Ѐz87>{0H8zx؂oxx?>Pu"pwl$u0W`P38k%83"+LIpQ{%X9A[D7m\xm_%-b={(+xpw30}L+jeP?Mm`%$A)9(B]/`09x"LupID Q5t(gx^n-0B.0T@(/R "T@081k Hhc =HqJp6Y߅= EmK_Pg.d #ofXiYwXpiwiPp(v;7`iȃRGnX y,)BLh 'Aw.4{؄DXAhh&~Z}HaApI=0W[X/ف3?Ѓ%I9;AQR rzoќ" WL0wz-M ݄/j="HY'Rh"ƌw#(d={μ ?}lG\ @H'Oo)Sdžz9y2S=SDe9FTyVo*HPcO:FuyF5DD찄;q(DZH"iSRĢ*@颀Aꡊ&Jdj?4P (0 qD]E<HD7\ $@ p< dxDD (H k,Эz mr,  p 3̰,fq AEE4! L%k\+|r=4qW (S?D~j" XaH։"\>(%E"m?hUK>#*}ZXH nK BhGO|aEsӜ9Ot\4#ज़"=nzH? 5ߨԠp?(lЃ=l|> 0C,(̠Y~p;B(=  ž2` R@" |(A@4ydy t6H VLA.1 z-Zf) MLoD"yi{D"BȎ#2ݞh&"v=4ĆUĊ (it"rMmGl'Hyv)IDE^dBָA> :CB;F'd"%w 2T9ȁƒ9A ^]R$A dU" a|ebٽ6m2f'e4mXz gk"b!7uW[6 ٝyӻ7?W$ Dvjcશ gcvx-qw83s8C>p#G8/"WDCrӼ ! ,)HPÇ#JHŋ3jȱǏ C {c˗0cʜI͛2O;@QG*]ʴiN@?X՚'RÊK7 4 р֢˷/mL=E ǐ#G\6p荜d "ӄ`'C--D3SePD" :`[> ]eh9a5{ C;&Z_N82#-XހMA D@  ev0B.y0mG @YzFYkx`"t!D"1L 7$+pi R^ rՑ? Yf#pQr d U@x"i ލp@ PB 2 P90C C9ÞC &F]*;tj* Jd| !D1u=첧QI`j`J-2UأOj=qAPbT-T  [}T 8k/jP,HۓhX#Pt(c! XKч. {gAfMq@|!s N7<%r>sltH)/OtP"*OY yPXa- <V1D@.a@a܋- 6@`@zos7A3xYJ<$.Wn !.w砇.褗n騧ꬷ.n/o'/:bH}Gߗ/= D`J=Yl=_}EGJ> τC/ HL+PQ"8c @++@(6 Dj@A@ 3RPؠ/I&  p  'F`pR-!7#`)ŋX#l%nq# ؒ 2XL͎|յ :!iH@*sdEJI%gx8) /21 "%A>)2Y  y,+  S#a H&(J !D0 %)AD!"pKĔIABy"d'X3@q6 Lu/ OH5 M.EPBzLT <]d B@bRf{i Y!Ĕ M]A Ĩ* % 8XIH`*X1 NpP%8iUBT =T[gxͫ^7Mc >6yvaI"Ђ%=a -a)L8PM\@_69PL|;(>I7%IHf{$&}Hvpʁ"2yO#S*9 N< r]o#AGB:t0͏MG"D)P'kzV4!%9KN)ٛ; $+R(7\ < H2l`HF)yR$ձ1XnHh8@YIOpR {.Lrdx]r@^ BM USGN#HZTJ',-R`~u]^ڀŁNmՃ r'MJ dZt%T841QיUM;28go8V `V1)ϞUשcEڹ,} Y]W i`~vv&ȍMzη~NO;'N[W^C34sgp!=gݦ @$P H/m+ܠ (Wm?LCf+⃡U@A T9p ~)NSey .@Cb8~r2.rcꃟV(C1n[a@& \V6HW 62_P </ _z /AzyF(JǢ;%HJ/%auyw$IQO$Xi59%1=~^EPj7zkD@. qE}@r8{G&7/ ^wG 6[0F16PFG});g0pT79~Cʶ|~.gfpt^CEa0(# }}c1m!Q 11"6K1TlSS͇A`hEt8 SiHzU' "1)WD@`$+8ޢ5/| -nA^  JF#X=0!a#A\3aDELGhM#Z5'`|t =Z E[Q0040#RyHs2JNeW Pd6*`Qz l6?0@?@YF7 D0|$P7`>AKNy P0CtJp pGps$cADU m 0~Q 0 A8Rm1e 0ܢ!_@ 1bs@{? Ȁ6]F&Z:UxD#xopgaš 0 g&0 ^=-l b%t]PMBJ^#| P$5*DK `` iIk~@qP1q#  (pw1B"wJȕZ DpRL i AJĤdq C 0  $ Q }$Z#sD/@cK $qpR>xAّ./Z4HZirqVU40psQ0;x9ÝsSq `/a֕e^(LaR?v]q/FL b;e/u(%JKG;EFZ#VFFuOp@zɧK)f(x3!3350I+b.P)PU]'9ZI `6`(Cg?t*0(.S^;4`4Y5;@=psq%77pDR|?z;= J-u2c?#)YzJ@8J((q=bHXR)9 @L,|G-p؅$x7Ca*B0"(>F0@(1FIH2HH q\;ٹEq'gDŽ#RmٗC|>Lhr.T31 |G!8 !00^4@+|L|>aA7BFv:^ܵV)Tya9Qq̬Ȣ|@\F@3M1_ ^)6')R)L'1+ֆ?)\EO&wZUW' ξZj(Yʈ4\?mD<'-P)B3Pz7+~Cm\@'1γ)*J8VRW!z|Uuӗ LMw*^}! ǻ(8]008j=ջ NmFpoҢQ՞{Zz͢K-Lu]rbqPѼB.D]}T dLڑmь(Omץ}*ڣrڐ-ٰ+=۪]o"rME0L*n`m`ǭ*X(u(.ݧ! ,;H*\ȰÇ#JHŋ aȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3kYCE*:/FZNDȈٸ"R2`"_~AET9RYN3B|R|0ީCϿ(h&. 6I1Ga8a@|@tShP1KB9d% TpA ,%(H``  P%'7D0rh.ph` < d 0@@LaB`) 2 =A! P|uJ#pP EE%@ { )B Yuԟ`AAWJ,v 0C 1-T  êß@ D@-('xm%Sڠ\x@ݮ,x*= 0Bq= :d{) /8/Ll @  {R&OGTS MTDG!`,X&d@ה@GTE@L؁BG,AYm81;QhЁUq1]4 A9~"BQD74?-`8A!PKƨa7j !I)*!1a `yST CP 9E@ @`H1pxZ0O3vJ&@tw<[E4/d79CD}#T,jHp]g@M$@ZP)vEWxVd6C- &@ 5D`59B4 ^*E' c§N8DpxB4DbA  I|4(8Xڣ^X EH`gE)@2Q1!@NfFXJg ~ĺ 9h@<\@//6| "DƤ i|R<9A֐(*f$s.)66d K> ŪD EAY rWJME!c<$  *vf T (" 60g+ AHr :P!m<%8- N\`MpS&HEIn%~`,(уt# yDM oKqZ҈,] x/#"DgH`@l@Tdu(/}z".D@T&MS'bT }x@*Q,@"ĊA!#ȁ61BH@Ȟ(WO=X%@0!(@hʐa{:XeX؂bOlF =k#x" !YMnU-ZSqJHt \ 'M\ 7zQTx C|_(p@^> , L h^ *ĨYAR;&t &J=@$UXZv+PLJIa ۽+ $wQ҈F 4 D`D|K0@A oh7} DʹM$F5"Iv,b AU%Uv_$"4F@Ȓ֬|9CoUU`EVA?4AN (eR5%X_M)1L\RA@^s ̀#xA (GÚ$40 K{XtuW+n De=QN 7b܁%U$AGѲ:0ō- $&;"glr'uAi0 ( ` '8!ώ5j 8IryBEWa dhA( q%p0F:0tB"҅=5Yso.Yrpq@'~}2ArVxr2A): kYSޒq! `}%cm3Rt0c7x T)AP J Q&А9B岼Lyp/ r Y$N H8g>p#`7ڟIR8xKO,0$l~ Wx.!ޅ|T.'8 (׀8Xx؁ "8$X&x(*o,o OI2X|qg&}swaQ?bxpLa3XB[T\l]v@X sA+'%"\+Ond=$EP; b 71 mKr ]xfb-A P !6Sv̇ :stڷ:j<@@U#*R{BN4ゆIA3HqahbHq'؈zW2F\%-p# (y٘G,w>{<"@.3Z0PCyvkؒ1Õ_(q/($;`-1)VxD`1'AAEB(y)RfxViUd-YDFi&N9/1R1GH6Uiwz3B["0eB6pOtGDVZ1-IC2f3@y5kyR@yuy'2.wFiJ"we2qv%q,'31s1^8g^ŗEgUh+ю)RASiWY ȕ9): P1قAGEީr e)'1)h❓23}i-104@(ZfU"&8P(%e(4)0Pp=ƅ%u/S(s +(ADAb(,#ZY;(-b(l(j9iO,$%E=PWbE4spA A\* -HA MZ0@[\:`ZOy^2"ΥZT\0ax [i1gʝݙ|jKKuGjeDBD`K0 %V 8#D(ڨu?0^,F`{V6Z@0zVKoJBE1 <@`UCK@w8@wB`>2kC`9U@0ݺʱ+* pI <i@ ژiJi&:.kZfLvp7u/v 0;?k`y`J#KC#[n7KP?  @Yz/:?`R [ )It膠JD@j`''*{O D@ #p##@pV@ gw p?V c0_@ D1  0m@0C1#?2 @R$#ʺm 8; P$ͻ0 ,3P@P#@0$ Pa KмmS#6ZDۼ@ U0`"ڼIOU~?p[@ z#`0 =p1lt/8PZ$UD_< [# %@56i R"y`4@PsP+ '+ й!Wq  { g@p?йrf'EH= '@[F 0n0P@ 0"o,ژy/ s ` V pb@ [s` [@)[ Op/@h<pK\ #Pɍ |B0P?<)#`ipI9T{DU`` 0xhh^ٌ qh0iG1px\@)JI\_` @+ 7`I*#i`` @b Pq\\(03U glP CAl-A XP,oPwW@(` Pgˀ;`0? l 0:_`g mm[`_6K0z` s0؇e0 al0 lP' ٘pʫ<Rד`_z @p zвY 8W? [`sP  1  #@"@ނP0] P@b N ` |``  ` ܀S`  P H ְ] { ˚l x`HP .~ \` (H` q1ǐb@ )p ` i` 0B#U& % y#-(ԲD`h?&A P V@e׮ Fc0`-`K`8lP[`@I<'g*@P @@X0 M0]z@^L  fb!9Rg" K0p @̀+P0 l 0"P`wO Dg@ wj H r ttp t x pS Q 0jp Tp {`G `0 \r { a 0 @3bHp b Q !U0US` a }`  BlIm )? @ .@ LЯ40Z Ȁ AzsO"0R ?r6]<6z[C2u Uo}D3좝)cD&T`&zzP ̡M")bu 8}l&WILX^zA4U,:Xoq ,GO;6ȫ|@#™zdB*$@Ax [/Q65ŋZKXYq^YȐ/<&`Q 1>,p R0$veNJ2Y0F8 4Cx&( "`988 )zB{xu.sM&IՔF"h<IIiŁ&`/z٨ TrzdB I&yeL&pA1F0n#*, #j;,#td*#g@ c0X`W,0F,e5AbK^`nbY,jF v@: _TRI"C 1h$c#qo.1xax@LhPhB&;) 4B"!6(d;8 bat6H`'$`9C2Q&{xp'ȂhBX9@n;&!}P LdE~p<Bxq# 4da lȈK Z `$ \ .1HZO/+OhMj]&۝ oh0-` eMΐ{TvsyV޽n~hPVXw DLOI4`X(1D4~k ^h~pS1D4J=d S 4o8 @ p$.088EP@'&! p$4;@ 84`۠ gf@/A)ӌ P /Ft| @W@>8# A5@ <@(ax&C1p :XTX7T"вQ(P h/tQK\(Ԉ8l8@IHQ5ИcUL-QT$`řyďT(h8ѷH̩4S9PIU"C-=\܁XF+E={ {?|hWX@U,LT@W@W-~ѻoҘp&DrxD;H!p ?D) :lAUqb 6B~&`E)& : ܂faA6?=0n 0(4h8<@)DiH&L6PF)e;0bUtbIe9ЖXNifs֔lB3@C9H@"GC!p.0YȨA^>;Lj#0`# 3z (0 k"D!d誴t U 蹧<ë8`X C8@|kV @;@ V*Q 뮰k."|͕C%C<𐥅@!p Fɔ t@\8r' +7F OqDL#,8t"{|,feЂXP,LÇm$ m-//  i)0 #x@ \= ]S|+0X|s.!PzPxIj_ܒlDC 5,:xJl@ $JA+ 9!2* 0VHH& 4F?eDNZ07Ri(R<#y~(6 bI1O42?@> @jC{@&Q#)1z@ @ @H!,4:n*~<* # #/d.9Dc Q>C`4 &;F Qa(PDL+r8&Dm aB`fĊYF$ -Ң)@H Dh!2BO > 0r.OsH4 AYd{z@^i@*4 QY'5tft BaFxA @-bNy T4#ƙ@pN_ -|Y$pB|A9ސiw<-m: -Ԉ1i8U Z i4`,`( 0XЇ*w,^AKÙ04p? 2&V6@d/Âp aV;kRABEzQY/Y9;5^V0( gx+!IW gkps+k 򄭝u{{=m X~V lAu p@t݂(L|0 o d<X \"H,WlM <9i j-sM#D ! rx*DA\k@T}VED)a6Uc  VTbjQVa'WX8ʩqS(@4=z @@!)` >T~@>+MLٗdIEB fbl B3 H+/ 2BD! O3XU T@* ;\(l xCpVdB.I͈bd^*hj͂۩F!:U}ȼl-/x  ={\.Rpt(=^9t%})8M307(ɴnYʱfnWt(4$pN2k|8#@D>1҉ȵWSض%h_" C&%9D`flp3s RkK"ygR%]K\y^%6@ 惦«RAA7 Hl! LY*VE `$AE-ؼ i!QJ`,%r<0F7K;XJ@eV73w-fsKayҚ1+7XƘ 1:`Aj|x!B3 8YyUg$ӈpi'6}8Mիƒ`0;pc9s8$n/!Raz3@pg3Sc`IF6zc44s.m!NM>.";@Fp,[.Rb!1!(@{a6E{5$T P|ӧK) *Eh6*.`$lzbKFa F lm4;!C*҃PAMFOFP0/#%@BxC.A:/ ?pʡ{zrWWM(5~Br(%c `SPqG8H0I@EP%NQ䱋-R[$@_/"`#pEc`>ARF?p%p!̥>`D`> &sp 00s6X{ I${G{! "tx? Ԥ{0!@@ +i0`/I HB$$EMD0W !P2 dcde%=!"K~,xW%)6D4540pB@@7SP<0ib7 !  1 4x*ʑ1 lC a؈s(p<84Е!"2GF341@MSVEx,u3VsCxh4mÚ`67c r  r0  1 ў6&C=hKv#cml/1wU1>6\uLiU#  * z>SKi& M"Yip m a S 2YTP8ٞhF*o0V 7~Dl=sU1 QAp„` Q,fBBѠ a Q-* `a$.'ѠsP}Ds  q H*ja` Th!Hi`sC8M̪~*=PkF ;#3" 02SeZuaqh 4^Z*4m2hļ]$t'.,5405^(DP&x5q5i|"%Q=cQ@NKnɌe!q!?oQptC(Pl5Izj/BE;`` D0h/#E)eO| @qK(.b0I IE. R*^))|Ɛ a,I|# tp +!6uPa I " a P+KB" qox7 p  q pq .C DPB >QD-^Ę $^&AkҐAPI80 F0M(a=2@OEETRRRX)1) I(aT%9 )@(*Fe:T@uśWo,ãVb& WQDEH*D g cWǐ"Q($$0C6T;•U$^ PapG1wNjJ`J _x RxDt0@$b(X`Ṇnb T$  `F+()DȡJ\@gƆJ(aa"Q#x!wx,aK!!/A O?Or(DaPkH9o$%fԠNfvU8@_5VYr(lt 6(a;@qH\pfAp@/AʈnJTxg͈CrEASH=cXaRqS\mMHҹl@\S 7L4`A8cab 5p%8JbQ4Tezb|g'4 dr-|b40h:> Jk7#(ˠ> Bֆ@XaĸJ΋=J J4boTh,B0Љ  >6`>2!D W%X~1+4y"+]R! v%HrtIG'!EZs +83O\ 26<ÞnAe`.qxȎ?>0 0u A 29 {W׸ (ྂ4 ш搑gq5N4\ &u8Sq w IA   @iar_oAxp#5Azązg P !|$ &0,SK^0=Ы^@ZX - +\hL. ? -HjtĄDs 8%O5fSyiX$Jp >l\ X%tg", 0koUUFd@QF0KO"L3,",֟^L1`2;}0> #ͷe03!Vv+ 19iO Y^Pi" AОӟ`YFjfXK,O/ B+ ^ ~A邸A_AJNR|0H $jpnކo n~t؀žb#" a""Qh@E9!ȠI J; ҦN@Xp3J1"O~hA$}*3M*: 3A/VaMo"s`գ5 Rcv*0~Զ (]6! Jf># `Z9ꔛvIAafD;fa!g@ vE.( ,@ S1qh9C ',90n9,|)Y!8&/A+ KIIqtK+"\B9#/A,Q0`3DH}IAfiۋ'{D\1B);&3`hPaDX.8N2Tp5@@0>@TԁoɎsLa93BUA(BлE1Ӗg,Rya(B@9N,=9ChBqMY/9=ДU4`:W+`t(IkËf4|IH(_E;ف 1=;:PN'\N! \:'Lh ITkSYȃ!cG|:&7,8sDE(LP5"X`˃Y$P>5XTKK̲O3/v U' #ᬧ"80`ͤ /lĹtЁ 8j#*4{ CJZ d:5l;1PFF:M+aCP@40DoZ!$@NP@@6 @V=ۃdX|ł$;Jp&@` &8`BHy0N ę?04.H@@THi8wTX+KPJo9 ѰڀxH @LؙRPz@ P @0L)AD-Xx;9A u\Z_@(UHp  ӏJ1dMcCQLXVjݘvT +{EJ8 >`(HUxQ #6Ɂ.%l(@<'`+T(]TM !iʄ]!-xۗsRRR88= K2N0Z\-(T՘;"[ xZzYh!J]'s 05A蝃:=$HUKl_5MJ 8HK(&n)-BΈa6NP"E'c n-"Pr[2$I`8]?҅=xXp0/Xz=046qo0f@^0'2ݧ64@҅50 g a$:%8AX0(ү#1xɀ!%(MڂЀw9T@dkB6ADPCfdIXC<82S!xd$`Rx !<~-H:ሠGȰ` } ;x 3p&cvhP Npel4Hਂp .B +g0 J1!2KY3y-ۄ+A5_mևh|+h+b = h0v/%Y]xBi2UqKP@>H$ LȄs:ڂ؅_B 6@"fc!}_7`RFh jQp_HF=Xx X:hF&lC ֈ}6InX 0A\9Q]=*)a݋J]#빆6@'Mld \ibm! .5 RM&/n@$?`^*( $8&E@k@ 3k.dj=*m%-m.`KHhBt :FL#brpd@&*m@q&g8C -p_xqօJ_pd[ #yAt  ПkŌ`O*_ =b"h)xMXx?:W詇J PUtm h@₸#!؍QN"*Q7P9NxIu*l"H+R u՚^-`]uKu%G"&*%vj0hQv SNG ( P*h)hLi1^s"uPnh JIyeA 5 Pe)ePf( XH3,(逷Y&?ѐz-5ryPeXyrLx1 Wǐ?DxzD-R#wo5/N ,Az#8XΠCd=z3{aRv =vU,J7HUʟhVѐI-s)؁ T$8p1IVWӾ0<I;< # N0i#;Jx*ā+T1MFڧ)D@DX5F$g5Q $D9Xh ƌ2B@&\b1ڰc #l0" 8|`!+bxc3z!DM%tB//B;Fp*3fPa,ZT^L6-۸rҭk.^N]|8Lj4f@q"S{1|O<QBAc]hŇGh@8Mc%)z*x/C|gc:ŌBOn)Y<QĈQQ cd(?Q3А`% 6 `CC7@ Q|NpCuc̀Y i y 5v@>CIPYFuE$^QJ9%vaJ@ ?A?0 8r%C{fAGRc (T 8t'Ν]r)_2ĐaW7(t%EBocR)@T Q 5|QdQz'6h_ HB TpIRj/A#L81,] !ŗ3 uHEWX)Ǘ3CIS fD6u |+-[I%{"L=SV =\ H¹@dT%!qHM(@ZzDE9@F4fLBXw#@Dc`![A}E|&F0/mZ.R(lTفr",DU:"@#yO./0@?YA ʓ? F8**  7_Hhɇk1B$k 8& %Y\* 3 J@7"I %!@PZjs@"*SY!E80@'*WjYKA p;"XD_*8` ):ք` $dɁ.]<p@@gȠ>̬N$I @THK!!'7)b Q{@ $Y)-QdKB0g2`A6 @ Gmesn‚\@<`tא@l|I-`βi,D*-;0t-OP%ZJ _3֢ JHx<H(*Pd @z BBC> .pĒ"_+`܀k1i/N*G)AoOu*Vhh\H)z,UBKP.dKN=4" EpH0(A ZP[@kbmx|Pq'`Lr]Dk0P/T)((dvF^G܅`, " H@RDkq%WW"L/⊋PC~\ T0U2; "X{LX6lEP`oBXpQ;|[kZ k"C..@2 sR1Tr+f9n0d/S@Cf9-d$uS%"TeGX$cI-Mcة< | 1,7|ȫpصk+_MMmlQ \A>㻠:X.P}D逃@/JFrp3f1[싺tՂ>+t<&>Na[`p A$P!'e :Òw\2 30@ fP"Th@n1xaRZSb%x]zFkz i\"8C.W@}Id)M b q]$bv4SX\ (`jH15¯@ >0 8/m"6N.b΋З"n2bP 10@S$EE( "GjYm3\% >|»X%\!4<j(rtEQ3`t,]+D5`hiۖ]BuٔEݫR\žQ|S5@)Xc0X9$EE %&'ccQ&B@1t$c&'#[9 fUIj PD DŜ\W|M *7EPAڝZ @sa(g)hrNqQLHݦWcuj)@b\(OEt ɢh /y 9z.E /1zS|E̳cEh"h0Y"nmXE 4(AmBŌ֐@$^<_ƨY/QYAU|M@/P?@pRĐah"F <jڅ<@t%FNSP O,h9Y ( T H/[| } h*.F$A8ݏ=+EOD۵ 4JѪFP'-Fƫ̸ OL+nQ! ɷhT<QPlY,h|ȗHb +.u0XՐ AS0vĈX0# *-AmljrjP@w"Ɍ, kEFTY #*!\ xte!Y|iJE8鑦o/nU+Њ |,/5UN7UX3I@5 XQ`o.j@ @\O  XM,cQR Un<@49XĊ4 |ҮȐ8ɑh.LC!!EDAk E$9|`3[74TE4/;E0=EP7~bED;`B8xd<+Ey8èD>R[<=>U4-P $H!*jÂ6Qo6%& C&b=+=18Ze""BaA1 -ah&@H9!M lhDBѱ1ҲU ilSR"2"RB;yDF+ !d4wn}ӴD6ԼT3NiFb'!½p y}h%A@#-)Ԑ*p! 1BHBD $ : pq@Lெ|MvAꂀ) Q5dCL=QL ަ5 Dc4.!0"Q 9ab/h3} ~d 7@D0(A}4@@q)OX! B)<( -.(NU+*tBL  &M[E 1YF`!@8B )`1d\0(—9e D7N4qJU{`7x!= mq<` cp[ Sps  D*5JБ3x@LjdӀfrlxЃؠuBX@X:#3aE*J !w)TpV y r,)YM+P,R74$':uEIc2 L9 F*'9"6 qU l4;)NT5bO)!cTa ˺Q A1B;{&Px3(Ƚ+Қ?)$U`@!@9 K@)d@8S:X4< ( @T ~! >QSr8ˆ D]m䘗1$082 &P r > b(GUVVO`PB|ۘ䨈)`Lj5y:"Btk4U0H22 ^h9yA:As4m\6 $r?W J93 <<   6@ t.eR Rn*2''NxtMw~R7j{S6)?9`ߟf5b rf#>`M\ZϏnW bwN@*B۴׸D*®mV6 jvg܅4pMQt`apM:M8^z8Be: H !D aV#B>.ՌP^.,͜!&ί1V!TmBE h pz<<@:%>1+vڤlN a, e;%=j_D ,h~u`g}<*Р >kG@)xd@d(plpN) ~4 n+@ nۼQ?*9 FKFl%D`{dp5 ƽB:d'1bf`"TDGJC>h9Nm6fc4@ >@xcB*R6I͠Fri B]s`*X !T4@|`V ~v!ȯ܊Pڄh8F̼ J]tB-+jJe ACJŠ-a"wS . լ` &A 4#*T9˹ud@b, `L H/( C k~b B8ꂇ"F/@fD-(V`n`dCM`΢! F`:DK':` Vd`h›: A\4$@..H \r. O` jQN0L** &' 4NyBrRO!L2)b d~⋞3PbdP5(@^aBHcC0SK]~`r(q$A od!A b[g0`CQ(n 4G AsJ!@r oBb` @ )*t0'F# oF*pR &pjYp,"+҈ aT;MlJ!J"TaL!"kȈ4!i`Peb# a u`b@at&<`6~_3vqc4bT8.dC˟C P,Ab @kWL(niZP!6 .B L FA>q"@0s>珀b"Yjd"b;p^@I`bJ Z X$A(N|a>EO r&rWp`r)>@La0%D*h !F@w#P^1! htbBD :&@4=h6A Q!bɖ67@Vt8F B!L־1Nf4(&KZ i!^eZKt(,d! s4vA `( x @p @ `@ U a)#Fd!fX =W5H !t! b BФv `BbI?b)"*,^AI`.`bKCe^`bBtjT` ! %tcI'fkx2D`*1$O! &84! &faa !v_af!4[$49J#}g!V!1/w)O G%'& v#>C 5Yoѡ$ib#.b 4`ȋc.g(gJ& 6ٌA`b'ry@ n/ & 'jt;gMefb %n| uqcF]X0 @@*( " Y'=q. |brp@X:3^2RG,$$@((8_Kj^"3:|D/0|<[/FF Ff#9. Xv@&PDyxk`Y EFP3X>w :$I(2'E š1.awDMk!Ulك7D݁l!/(=`0<~=P31 =1YvL |xݽ bTavmr";B8 c2'T侈+J'@Ye1((.NDȡ8=/; ཰1rP퉀F@tBH ݛ#9 eI2!ENokP VeE zBoZ ŚM*rð)D-M` K6+HԥXaRT`)hQ*`MB-*e + 2M=Ć.Рc8fxC 0`c0F  ?Xn㏏P\ scJ&9֬f͓?}t"iR"nD&,@ %@F8dА`/} 7ܹ0?~IF/OyR/Qv9Ro˙vX W <1G!u6hHl{D?paGx ͚GA.$C] 9XqiPUP4dt1C?Z B-/_a OR>yH˗ !K4xR %\M|0_/SQ(LqJ=S]ҵp=UHI $+x`: FL$1H&QSxЖ0{8&i~m8N~ѠFQS%ā)| '')4 aD $Pey@ĠA(p r7C 8 B>H 0@~ c 0T %U &edivYD-L[e[Q%o(oGrR"/p.TN!. EU=_$\k )& 1&dknnu$]C@՗H^ 'Fd֥QBCZQ91ּ2ȐtGkY)(@ P3m`X5 U cm:  *.@+:K9!5Vî n4PF7WlpuuO0œ`^"zEhGIdGY%rp0sv HM2, %Ԏ~- 'P @s#F w[qQIt҅ H_"◤<‘Pn# : (e3\H4nd/1?6pl0Ď~K8ݏB `#gqDO37 O xkL@%F乔_nۈ&P+ -Wy vUESOIܵ1#TS/gqpaw##rpvE{pq!zq\!pt%H)a:pc/!wch S"i ~rs" /poц("rikpqSNpP9t]%(/Gtgy/P7pqR8yt1 )pST/Q{zQqԉoSG3mTq/EqЄppi`G1x#tq@Gdai`(qKθ#^0!PG1 p/hWsfKp1KjpT?";[9x-p: l xzphE/zyA=007ǥ;u(W8rjHgIHzdI(XՃt8;t,n}MUEzQD$ДX9B:LSzRQr1]3JF2o•͡\4Qf/]8z26)UԔz!H1&+m!S PEwrGHuSD4@Rkƕ%IiC='B!B:qFAnI%]V8> ɖc#DQi?&Rc;1SC=> ,trڴih.3B &*JI{rc5_Dn+4!cq1 8@a!Y#$4I: )9GRF!pq<"#89^s2i@6d(Wfe3!11e l=b߸:3%oBߘ`:SQ#d%a''rQfвhڡ0Cd`dy>yD9z*;nB&='j}4e*tQ1 s1"}A??Ay: <ңRsfq1)*:@6+|vt9L!Q]$o#z9(Qq̉j+PFrB`o:(:C70evfZ:dF/z/b F.Q9"kf3!Cfp#"j^G?7?|uS`V6153"uq!p;o/MK3/r$PGAot @(@ 0n"8RGtAQЃ˳O0E iX #CE &G_aUHtUii Vp9EOd8/;i{(;B,fFBn o:i*&gGT;K::{3\;rq sѹo@-r"Ii#kJ ax {(I$s+H/D[&Gr0 DfoA(f/ |L刄9irhh,·# @jq- .; ܰV hpn/a`v|0JD:r]#G{"g|nqs6 \A:+oaFt~{?7#w ,Dnq ڡpTR[n5J14#dfU]-I%H3LCV;3URl+q [9#9IG3[C =@=edu޹֡e.; ; Q+L;|6. "Bp)?s Fb% #^a!Ҷ#51m;$!C!O3p/CI#` é}[8$ 00`a[6N9~ꯘ80Q8Ǿsq/XA66?*;`An'(ߩw:""!P$ a0 b2j9eS]8#*2M0ZaD8 `Y+/$q̓Dc|*08*+A#+D?C1FV+1c9x9==6Z9xPw"D"7vb#/I!I%`$Bvd|?S+ AB=p@ 0^XE5aQDdIa$KDJd"r #KΘCƖi".gV@LQOxtBD(QL T@'a-qZRa@#,6M*%QV,$ M $GŴ&:کvnر+^|Ehd[冽4G >Xa`Tԑ$ 6!@]KY :tMk^2_ Z;4h uŽ+џ""CˢvdȄg -6QxB%N.D<0i.hv0*>,R&I.c>rB.%\SdHҥ$$05zd/ EZdBδv`k<|2/@ 車-4 >l Œ~QPzf#cf8(_v rӃl48 K.zf4L" H&hI` 0"K4]^-Qb0z F:i ^qf21-")Y80P`5".=/5 Te9TwhPO ipp2@h5*!;F&HR?Bx)E#  L+t:f # 8=P0"\4+ K5rL«H `xNEjҲQd@{LFpL1Xj: @@xS :_3ԣh `edy*FN`"$A}J`X""H63rٶ/k1bu*A s삛 FPÆ::0,B8@h= \& P3}m1,cNy=Il؞F3舢qHE0x |jlcLC,?`BQKklcbM ]k*\2"i^ E s'8ayu["3 ҕȠ?1`z ڳ]aksb0Ǝ~cs'aY<5;ݙxo%w}t| 0w)]cVu_^$$>q6q5t]߀z- xG;(zd aۇ/M@Nv{t329@?hԚ.nQ;p0֟7`=P O\= lޜ"PkI*8S%5YV<@\(:f0-c0踡؁ =؍8AP  Dh&` 2はH&PZؾP) 8B8;σ3r"ϓB+|(??qzX 0Ԡ9kC᭳s5+tlɟ5< ރF;D&8{5i% xX#Xi@Ԡ 0q8 " 1訁HHf)xF$Y #9Y EE؟ ᅸ %P "!@ , _0pԀ(2s#ڏ-فx#p#YK :=DЌ ਗ਼ ZIϨ%X ` "X\h@ K8 "hdH XX)Ĉb (rX@ĈX(h0`#yZ KWKc_x8h"Q1lҧ; ȏ8@9A B wp6` u i JP5-&CzP374`<@IICv(H͠ =0 *u!BPLR|\PjˁA'1gpm`ФPIA5:]B 3D Qȃ08˻p<- adrX+r`J~}U8Ҋp'"`D|{ByH'x0eCΝď XYz vPMo я2@# P^x멈Ћ Q!h1 x`Rx#@K$Hˋ8 AѺ[<.w2- Ѐ h 1rG e8Caxh )<9.' )ՐpvD" j̋` r0ܓӍЏ R ՃM 7rK !Ѡ$y 2q I0U_A5B H8֌ЋpYNNx 2i HXP2&`v2i" 16>yT.9kՠ y !wH M`` `rwpY)6ґ63ؗ0=M?Mt]Wr[7D҈9|!cЅc؅#Pf8c9 gxdPpqg`HX Պ#g0cR=LOvR0 i.UD50o;Awyy z!$x"Pt?D1 Zz"y ʭj=z2Fq"Sa}@:by@WL9 6F EЉ% C)\[0X1XI0#XӐ! X#yE؀ x_ \F0ߐr@ jnBY$XxCÝhEi& @F(`f&h5T"4^H[ P%Ԑ5ٕDFѴ;P "P %_- rY-@%ɤ8;D )b~G1#6Ɔ XC(0Ȏ ؀rt 9=&h}2AF Z p&X˻oNdj6Yp [B ɻq=#0H^tj;5z29LD-1dnh5Y%AKԊŶmq@`-<+nh _)&KC}P,?mY;(m%u1꛵ 2TLHH ¹/8˸a\t` C$T/@bQ`  d8u1S=h,:8xtV2 ˺=;`0V!{>拴6x 83sFjQdKSrP; 7G{;N>3߈1(?ɀ'k 8߱18 c Ԍ 2DGS=JHu8S XP0qQ X3pSe 芅ȏ=3G %S2菒ց1ެ\x5u5xUj =̗6Swӱ~4{7q t | ʋ 9E?8Fh𞫓8*G@;[0Q:1+st(y&DKPQ@R"C3p9XeuU:z KY4tA(I]K" JDO4dMN1d Vdٙt "h 65|'EDp`Dg*TC\4B, a%@]OGBaD6AHHDg 4TDaGESAAP4ԃl1pV Qwf)$ēQwv9cJ6IR|x f&]ZQH1XI8ERI  Pq eD`CA~D"_GBCPP qPpKQ1A [a0 0Yx38 1 td3E[Vd^<|ѐ&%c54M3 '}e 9)p@J1F})_E sC7A T4>?gЀ$ @#-"JF'QlP;8H^Θ@1AɝRJȋpXҹi4 )!`D`āACxiIWIY!UYAl`X!#C@L@JH|5N=IF@K"1mE9'jJ;\n?l'z+wCJA7IVPv,TE%y#0I&Q#~[p0@[(9/R ^"̸DCp 6d8F 9`+@°"*<⊃%BIT( A\F`raLOL 7 ID*Y88^.ȓ("%S^xcS]CBX h5ҁPΠT, ϠIJsyÃcDgyAL@Af*R*rłO ?VR0!^=dS4@$5I  C -cd<&PA]%k_&hlCX >( ӷ ?L| (~J(@²%q)Hc `{xI_ɳԸꙉO$$HjF} ;ulEUfYILtm ({i٨cb&%UԂIʚP⛃BDߩ`J""g ]砬*wC!hWU؀ą KRID< GJ-D;eA TDxѬc]!H$D(CG9BdjI@ PEJ8P ך@WE h nY@lta:`ĉ8 aV@^45UAO \@ p p   IةuH& <DHBh@$Ap\DaAC !<aEJ2`)3ꈲ!R|D$!.6J]Fl@l@ k \&G \ [t=4EEodE lx0> A<O@XwPD$[@CJ䚀6J5B3:5X" ylD!5^DGldLCG/ˁzDāТ9EHa GIHPN"VDjG\ la@UXDBW]8|@dV#j̀ 0@ ~$sPE  lLXm@?s4lp` Hd6GE 2I d ͮP%Fp,$+Ifؔ'1ʼnI Df&J' DqVqbeVp6st~cuZubd pevN~kIRxfOzV&y `Dtg}'KD|^GEL$x聶\LMd}Q&bjJhZbh n6Dloj舺u艢hV2(@ ԡhhvhET= Dh i~b6FBiJIh6jri S؀Vnx院iIph\nJVGti) HIib(UC$Z"j6aI*jZꥊ~L'z꧂JТg"j@! , +H*\Ȱ#JHŋ3jȱǏ Cdɓ(S\ɲ˗(͛8sɳ7JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ-{amCn#йx0`-_|$˸1:^}b0A/D ϠiJ+bWFcаd۸q{%}NvDI64_<CNM k_nD`Zk?|6W [_廽DudT| P4̀:.}@~6V,Ȁ@F4 4g}h@9ph"^<DA"H; %h&I<@gBiH&@PF)TVi%ClFeA60aŘqi$0 lbt5g'1@#au`qK@ ;)P0> 14 |J'$Z q&p:F>Lĩr@m $ ƪ^d ut A ᧰qӇE P^Ýe]B0̈i@KJ6XwH TÛ8R`TC:A0*J4|1 Yk" Z Wne k~Bh9 2ѰRQ@E.A(>wn1XX&@mq8Ax^aJHZf`FA dDYF@H0, aXie&@R A`@gBTS(BD[AlG(\ȷ*X=[T6Xe!)DzkpPxNA)<{+r M`/ז,k%tJ0 4Ȍ<%p(@h-LRw> YbML P,$`Hb Ȭ50I  S D󀳐eB (HaL"? $d*""`Dx%$y r`[ YjDȴh8)\KJ"LV@ 9k"I@ $oJ-m u!phVDO)㻈r'mnR'yE `2NK@q@R%$XDdQ"F6T@kW v%(6iebM *#rIhh%A$.ʑ`S`G>Ydʐ8 ?$ Zf3UT$GFfcaF:;(H5FF1L8t%:3+!0d؃pgn J`$ KF9V7!lcrI*)"I*$!uԴ_eH|D T3BUD)Dx!HabX1A:`b /uH ph?hX`ۣ V5L 2Qdn'VI0#F EPa%BxY",eU5=B NgnEJ1ZwAI }4IhQ ~ I&)pR6 Azbdi j<0jFeQ@5)m`(kA a'vSZ4LquQ;9H̸ b #Tz,%HQX,VD-ltvQ]qY5% ]B9sA^kdH4GVMA {n_( Hh"|%hfRVg[`%N-F=o;90CeTDAnӢ$;)*$gWdABhMݽ; ǜ x fN=GJ ߻/hmNFD!F,=sL@묈[ ͋ڣԫ"^IR@_)Жn`a:w1yЎ749WɳoE2 " )weqxcvP=p{ kO'1D`q7q~&Re[cQ!P?f< k `YAS$K%#l}/qv}Qb#0eUzqc.Ph$Ks; wPq)B8Px"%LAR2d MG'LJQNq&96%rw'BHafF+(wW;B|#2WF(ʣniAxPnga`vy&z׋Fa%#0#g pc1(?0`eW 0WA0 hx H1 |6PԈP.WL2d@ 9 u1imÇ#bYQD0J*{7Ai,1OW#rPH09l"9)BMzw%)PRh66Qi"#Md.1~Rx:XXX~_e ms&SYQ{َ`?w#I SAI @p%Qu8 т2JmY7s"z8rQB)}! 2?z3hٗ; 3A0#UFh$ʲ!i>gPIP q #?Y$@ )p wݒ\]u$L MIAo1 PN1G1 g; `t ) bsB ` k#bA^WrA A ?y\P[bGU`g=,8 $b=kKж̑c4Ontw=a/Pu7^1כ7+ھ"c*%0"nP&qJ -`0&`8&`:W2%0D&JHq /W$g00BAp: $!:X ˢnu e - 60!9p[$Cl |V#}3 0+ekG\'}q`13鬯0ƭ(ߪh0666&#̿.1PgxBpd_sǖu=dѥ d"!{b4!=,|1hhzpna;b;)ٽiI":0 c> "HMŗL6#qd P|g <xp3|#1,;r9v 9 ;0 d=*!5 n(A H f(QM 1*@ ܫ4>'vಓxrp'? r$d!"+bi%qIpI(eu|(z d6* 7pq *`]k&1*1lH˫U2"  ؁ X:koO"̰;` `}UˆFQ=iaBM%Mp"0$d۱ ը-@MQھg= ̪w#m$w&PR{)}Խ=a=Lu!٘ + ^$='/0|~#! ,zY~H*\ȰCË3jȱǏ}| $ (S~C%TʜyQ͛85*E'cHh)6/%g$݊0` t%lAa]5TT|%0ۤpJCɻ@A` V:@s:ŋȘ !G̠C#!c @ܹԢc˞Ma{ { P!?+_NPkУKNu,w̺.|ͫ_묔$)˟OϿ(h& 6@T̒@qE(JP56 lt,#AB i/F'D `W $Ԃ$eEA#$=@ (PPzJf\v^)df!elp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰2*무j뭸뮼۟zk* ! ! ,W{H*\ #JHŋ3&D*Hɓ(S%Јʗ0c|DȈ8sI 6w J"%( IѧPd@`@gHU,Hٳ0-=($pf!@r˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺkJVًD܁6p ⋛@<2"QR@ zuvȢ=2Ο` 8X1%gV 0 ( . <yQ;l ($FV~0ZGIy @\FTOR|7eBAU_H&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6_g@! ,Y~H*\Ȱ` 9Ѱŋ3jȱ0<Iɓ| pʗ0c,I(:p1ϟ@ : 0/h]ʴiG5@ҩիX^%YÊeZ_]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨSs|pփ QDI B:t @sfAsaа1@4>|@b ӫ_l]]ϟ@) 'm![0@p [B,*<& Tv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)d@'%P9EY\qIiĔ! ,WH*\  #JHŋ3*L&rHɓ(S\f4TʜI&cC aϟ? ѣH1R2PpdҧPl04lH+ JT@¬۷9 ܻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^Y0( `)Lbt:{7bG},/,d `O#8`wƌ/n wD["€1b,;x Q(h2f.TKX F$iru@ 0@Q |-A^&ȕ.(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tixy٣ f! ,Y~H*\Ȱ 1< Ұŋ3jȱB_Aãɓ(S\)P˗0c|yI̛8s\Ο@УHSBJ*JgRxQׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k<@*  *Qa`@,r˂`oB౻%.AB` $t[)hx#NhУ (P`ܡ@(Ͽ(h& 6F(Vhfv ($h(,0(4h8<@)Di$fM|@b ӫ_l]]ϟ@) 'm![0@p [B,*<& Tv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)d@'%P9EY\qIiĔ! ,WH*\  #JHŋ3*L&rHɓ(S\f4TʜI&cC aϟ? ѣH1R2PpdҧPl04lH+ JT@¬۷9 ܻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^Y0( `)Lbt:{7bG},/,d `O#8`wƌ/n wD["€1b,;x Q(h2f.TKX F$iru@ 0@Q |-A^&ȕ.(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tixy٣ f! ,H; ԡCÇ#JHŋ3jȱǏ C!B I\ɲ˗0cʜISc i8q"e͟@ Jэ3fI*TJիX0q /^Ĉ!ֳhӪ]˖!=v ($h(,0(4h8<@)DiTB"PDe֓T@MVeeʔ5%"[i;Nlp)tfo"|L)Y(;4*(:0uYS )  Dd*(çjkM#8V'gjȒE| &,ulKDdVL ]8hS#[\["ԣ' ^芛Z,T #95m 4 Ѐ@`GyT0Qd-!@ 8 ~$$Z(ȉ >L83jtmܛ  5LS8do <4sTV-##/[ M'5cF>2Msf6CS$hGѲ@R~q4^!@! 3r #EdAbDh-% $GP*E$[TD$dYb:p}2`Ç|h /5 %EFd! ` pF<$*аؠCpWHE, NPsG6p )CgT'R,)/>ye!n{B́ќcMdY>5;';~$vB bЂ!F`B$ 'hHW Du+41ARvĤY ؔz%07bS# `fdq @'"M y@E#&P>4f;7w!W5 $$Yz,pxB?9p7I\qQ\K72CB[ h3P44 [!QBPGC޷/@v21 B` 8Pi0~C{3V09<" @Z!U\jXVJ񆻓a pO pdWAk%'"ЇQ$N5 QAq4!V 0 }0es($KBqr @`zaUyGFpQ`QwD vd1?LK,Od"Y ;f0#|#J.\#;ߪMlBl&Ca(5mQ[MmAJj&!1g(P!C c$0.XREqπ 'kad [J`1a&"z,-K`* 0drAQ" a T"TpB  P#qX\bP ,Vg J-@W3-dd0d >bCna,H!h#N.,: }.:1mQh`ri@b.W4!Pq4JdgiU3a,l@^0b-WQ2 Pp^4#Z&{?PX/+G&,> 6>`1f.[6 f6{` 7Uc&$ж"10+0X~:@ V)3Luy8P%#5{Q,ZD <#cx 1Q4  sT"6Ěā9s[!dFB;̵/ԫ'LD˹&LB(o>5)(;Ҿ"N4!6.@qb0Aյa*Z0k,1 jKpgp J˨N # @hj !g=r3,_N0 6Xq=@Ad U`0ϳ0@-qDԽW1U M1Ӯ 1,R0=`0 t@ 1 r4! Z ^^t0 ),'sR0 J:.4pᓾ?ނ`I(nh=~PW'l*ࢍMb72>T1DmR< _ a?p7S@@ DPB >QbBl3vqG3-]2ܱ?pęSNxTP#FK\cDU]~6'cNX "/fx) 4GƝ7JץR ܪ ,c8+lz8։@:ϢMW +7 i:K.胗kq7AF%,pZ;rnIFwb/؈s~@ @SLO ]lv_P:D084p"b }Ȋȷ2/騡B!gK k^ *"lLyQ'06L.xb< +zJ8h hKd(0'y%Boɇ 9:hZ;:IT($vT)b  hʁxid Lߙ`E@)tP [CPJ,u >—'kn"P *u eb"0[BzRTuNTJ%<0a| j")2nǁZ[% F8Q:w"/ :bЄHa8֠AJBOtzb֥ec 6Ŏ ~Si ` | ߂j胻 Z rX`>`&JJJByP֯t$hط{g?4臚j;xX wgp` |j&gDl% JЁ `%cRK6P"!haA"!0BJd ]B7H$.F!k84xv @ gQ2@Dap#[_ԞBV cx+Ghv rF<2c IvT Kt!^#^(ĵ/}C(N^eWa2L2`9\}q  Tl |ϖ,T@$`F7 ^rI(u%tU d*? .,@"QJių*YAB 4l)* E2>'_rnA;5G+1]ΫI RԧL,iRڐ7V:UB8*2vիوt/LgE+խ< *5 P[g+`S!42A쵧bØNoC uOaI ZEIW;2v!p*6{] ȸ"*{ KP`q:愧iۻ$:5'C._3hHyR  RO`fA!/jAB#q x P <&@ 屏Q @O2d*aWroXb-DEF SV=4D@P ؾFtiqMNte@$Dt7La}hM{@k4ګ^6jZ* ! ,W! ,H@< ܱCÇ#JHŋ3jȱǏ CQ 4hA˗0cʜI͛g܉E8 JѣH;CGʦ:&JիX PB )aPٳhӪ]KE#:dIl˷F?tD +^X )KL˘3kN͠CFr#ѨSNoװMmͻo*~ N\IX_| a4N,aËG̐ fDE0eJu`'i!WX / TU$B& v ($h(,0(4h8<@)DiH&t)dj=)T*@[T\A`)dihlCm)tix|矀*蠄j衈&袌d餔)i `MvzUA H#j2ت!!XΌTYVR MȈLI=M@'2{c<23G$nь5CzLH;PHPP'KK8 "#@P;lҋE(\6Am 3 Q -zG4%fpi#E@hD^($P @/L8V F2M1 ^RA7r@9X aPά@zQ-Pd &@D;|FODv p0!(@5Y@u R 8MC(dT NE<$ Ad(Q^rԐzB@TdG 9AA6°vcT0DaD^8YDi@4QCbA!A p 01WT@ $`P# a! x4"c[v*?"x B yD" Q l;&8&J IT(2J4 Ēp2QNAISt J& a !;H">*7.  @20@K$sJ@ErW A'LA>L! |hC, mWeqWE~a,N&s+W]5V,T@'*t9 <(E= !P^mRҖX1'ťha.,c@` "B(@|=B=.< &9!X,ՈG rAm"jԏaH0NXJ[nDFPJ`13N @^Qt Z$! gЫHx @', I 4$`ۍv4vHpA!l! 6mjPm%@w:Bĩ`|Q^( 0+d}0hKAF@C`>/@[ia I0B eNo0aI H#89C0' `rD*qa4H.:l ݊:8Jp0@hS3R |-)X-MBp2߽$)X09F80Ɛ #diF'y(f$RzJü '  Yl TsAjIgB %b8R¤W7 _AOpe-;J,uA{GPⵑ4GnnpHzG]-$ñ@Ո:Y »壷)ϯ &oэ#@,нCIZ! j0&PdFE6gq@6A;\$rU8Ϲwz,ЇNtLEQ=']Dz -[Xo'"'r}DFׇ8*اr8 A)@:wHAoA:9; fߛtBw>O;&/y 6g~:H \A! >r1Ud 싳h F}qeJ [ B '! A uЂP3{x9EC~Q'פADlKUx8$U@`{o[!F@H`W$~|qvVAHBQ~a!~haazHeq  %@i WN:(@m#t5BϾS#p⾾~s2h!=`OH3~N߃޽ !@ A,U"2 *n!A (&18D @@răA@D9C 2PBPFhRViXf\"Z`)di2~lp)?G'biFtg_60aşSi&}0 Nedh1@#IUv` & 4j*IȰå >x}P=tBB6h9J`D@ %{ Bf1!jK1}Xԋ@܊P>׿(pЮ :)S@E,@"#`\2p@"C`u0XgY rkaF W1@ bf34-dJ) B"80 e@* P@`$G$y Dpdg 8B <`kNQU4R"@Bx,' $ HYd *$Bx >""~XI T#AJ'_D%L",#BH$@ʦP &EBX+96< p05,ɄPʐ -%%E~#,a$&Ki!AyB$C[O!Z>ש,`D7Id܆bikJA -Jh@B0RN !q 6"DBkXe rJBrRp9*tk; (MPId.eT0U"]HK&Z!|R|$h4ZPXH A| MH!գr̊jIj/E[Jܠ0GB^oQUF!Z;2ڕA@HQ:Ҡ@oQ@`!&Z:)*c(k`-'r.H#޿CӿQ&VNGm@ %<0AG'#UP:;lQFz X`-*!Ly0wM^20F@)@{stzP=pta 1:dx` 3@v@7pN W@ 3(hF f\q|"Pmv<] \S$Nd'<"Aj'Z&"P:R6|FHq.X]qs;@YOCi(;<{Qjn"QB?POG#@}U;xJ%@#pq8e.^fS!Imhgvv[A U( 9Xwm gNNng`Fuѐ챁 X5p PCp`AA% B  ( ,iQ-Dnr M@8=F@Fp"SCBz""Eӫb(%eC7Z.@!gYn!:=#=?Z~0 ٮƃy0 Pܧ?p~{ #pL h* פ+i<$[pJ&OQQYlV1-Qe)42@;6 8;3'G0`}Bk0@; |C;r!49hI X+=h51t4Mi[?Fێf0-@Au[qRT Y/[`  OPNq5Zpd2 @{! -#L MI:kӀ *`` ^CEZw ik <ү)  " jK t{F2#ve* y& u tq!&p Ě )q\kG@F4$SujCl]Hc0lÂ4Q\R<7'P<U v Y2H, 3%/!oV2  X0 JIq6 /!g`$@# a q5T  !f[X ӢE0! jg129p/ 99 Pq#E Mq倭FJc13S4)n#G1Vu)|c6&&#<ľLY1 jD|BOb,S,Ί $!b3ފHhI#`3EA,C1,"u>8$:0Tk>"1KP2:36~Uӑ$;#rB)Z"aI)#CQGr0rEa\t gTwma`<>a)hd +@ >-~9lA?'AwgaIzq "`8ؘ=k#FP@8FQf+¾$@#QT$eK`z3!#= 옌-x!Qq6* *3 6'\z7[,BKmR.+6f#d[:pA ̽] ^9Zk*,1ܼQ]IZl@El }!;*y)q)]ZU6P28KlE[`̤F !FݤUr_koH7|; qq@Ul)j,!ϊ!mSp n$!A;ԬU}-33ki|1|0:Ge+Sl+EP=@kH!4P }*<p%ZB4#l"3pз &m .?iH:>ٗ"}wTh$\zV^1\SSgIHD,֖  mВ+ ;[`٢p"pz[O [!dU[F*Ch}V`$h=8Vi8@![ D`m[9^W, D>W.`1O¼1_$=V>`i,"1poFW"Ö+9`@ai) !D`Kϲ=0[ 9/)10Y*_~K`$+/mT*VzQl_"l0A @ 0!/@ 1ac D @D gy#BE&@%J1Ȏ ~ `!C f.1䏕=g̰G8ђIlСC`$G' IGI&F8QxNTq& aܩ#u$Ÿ;o1cK?$09Lf̩l/ZӻF m?B5E?=O1:`ҁ lK)'&`%W0S!F~ %1\8s"9 8 ,aJNb'N8G.5Ԡn聝JЀ\r~8c}8'2hTLK/u sLSFXq`?KP#G`F`v= $xA7[Ipr 6Dt@HNIlR2% KE'+x('8҃vP|lQH59:/nNm61I⑇z9#b'THeyvK!݈Trxqr# l~`EϺ}.;Jyz:%W&adOH` eԁ%L&Ѓwi a'uԙcCDNa'My=obw6QsL P}Θt9 [a+NpfDU` 9"hsr/ eo&; +-` (p >v- azpvoă[wB 7.( AF0,!" za%9J@?RDie B 6Q9N8 Y2P7uB <B;6H =D7z"h= azxG4L0`e@ & ox?1 ~6rX8ؤ vC: lBh& H} ӍkV7"h'8؁ s-7PAz:l1oc[_4.`.aUbm  m^h'ԝ2F@&%_tQ L |B7Q2̰tXb\'1ۼMH6G! 9Eﰅ:a=<20az`?A ux:+>HxlBXX }b*A-,BШ z<J h`  A#0=o4 }cG3H8=sC<u8 @aQ a)|2ъP?*v zg 9ZA'`[:ˆzF@.u;jW@:ʎ/\b&GHa"4WV ԈeaA`:%lBUoY#hF08A}(Pz>ߡ=TePFE=ȃ ި b&ez? #8.)an xD22DƑXvC;f.Q/퇅{p\g=@rdʹmmH }l tń21 6Q(GyxՇug*-v8hQW.Ѐ ቒ0)D0D+6}ʊⲼڮ*sz8F(';I*xNBb9 YclD  E=栀U xh@ hjA ʃ x{ `&!oF5>DPBVaE=RAR*?@! /   Xh2Glt& L|Me &3 Q[9`.́-. -C 4@_dxWɆ|XUAW/f p "Nx `&A rcU*:U" G. {]_`Ij@$0iN2PD@6.n?(&1M,h PjH5uP'(}Xq$#-ЂMhGS@:jؼ\Ppw (@xQ7 FEPFs{A{})a&.y؂Ӈ/ [x+ 8z82@Vh[zy Ѐ%P')P)84HۈvPoVe(3xP\:+)܃RA`ȅxX@0x [SI%(8n"%(^`"hSUQiiu88v("бArjF0p 3ޡ{q @VP&> SH$` iPxx3=^c b%Pq`cGvXF`)e=& (rxЂଜ'؀d`-uP#Lh -F@,-Љ8/Pb9=j+ 0H Zۂ9?"`$ 6`0x%PhXGR[<`je`?ȓr s#:~ z) Pq` iH$C$Aq`P #!: HId3дV\9Ҁq#Iв[ 2=02j8h0ĝ>#(p 0.#x8v8u_iD(Db|Mq=)iqB TuUع HOy88np=<8pH@zH2dv%I49" j-}@?jЃhR06m?X`Q`Ee02/( ! PS(M*UD# ؄3"ǫ3[D$pU'(&+/VXx HER`R3%H<i%3{c`rЂ;S/FQӃ Ё! 8:2+"H{` +oxDZ-@9@/PM)x-?'1x9 6ȁ|MqS p Qo A?f-11QAӃzX'r9`6`LP$jX(TY("؀Vx1`PXUQ`VL/!GA5z$-x-+@x{W}+2<[0dY]qFh8wSp(zX^IwRxP"6Z)p9`WzPq; ЂxcC. 'E0[k= 6X/ܛ/0:ۂp>28-}0-Xj)`Y+x- ؂9/+]؀9Ђ'G6-j-@6+.X -P#(dYJ)r`Hw (`6:;:0/% pΣ+]䔝V+ 38.#/3ۆ+% mV#A&%\מm-ЂނN%8[ s8L- n;5jku 9' ^l)MP4lnV &+Sn "xx0)l'@"pAvS8~k~VP - j) B''裾Sn"le^nv /-}Ђ98YCHR2x%vj#( j i ۀ#m9]j!O8/hq1o(2S lNqVFm9(a%r^vOaAQhXe րXkx >K Pr8 yF\{ Ity`Ku $!`^U(y >IX =n1{tt{i t^'\Zy U?\x7r*w\g?Aun]% RЁBDPB qgnNU`CT@8BZ4pV3Pt̙v ,H(!(&`C:$Q!ZU 8 yԃB]feC(D̠2IN(pAx #X]ur7w:yFOI]tf~xAu#x7wN*jau@x@h$r$xIvMyS  T{Cg|6Ġ"Tmp 3x+!Dbe_OfD0Z 1]xy@( :9oC%d:GFd$vh/ GkC2){D/Bx.r0TlDB׮:{6<%xAl֥ ,̊tW{5F9 %(\/ ?A:=}.۝mn-u]O0hP)Ox> \P7sSO ù2 yM\tewԚ9\ڵVv+ j ݱ 0j 1q_/ĻP6S?=ox-}u/O~%_xć=_',!48C GTxIfx2xf$Fܦ d5"42#9@@)xþ=G!f|<@|A爠L)sPJ"'D@QSTN$^q~MoF+BWf|؈ŎtRp&ȩځ `lzF#&xeO   4|@';!P,3ORe@A™4@PXT+>)s*G ` 8Cɬ|A뢹ݭ~sMgik&)q<':Iy 9A gIa U4` zC<z[hy6 pCCʐ=؀#xȞ% HaZ;@-HA!|&1 `sO6" ~$P:2uRV*Vխr,{;pVv.D8&A9C_`C;ޡyl;Lz(vP 2؄ w<P>a 5$졎'Ha(@v(`;b;O@(,t,!FުpNA-tje8q0p8@:A pE$Bȑ +#@G#TA+8 ʨر\@0;1 `QhPM`qLNi@4Q#8@s3 ZÕC<@#qG8#Ӻֶ5+ A1{8c a O0?&q\=x`•;0Q+c,4L!z80&[0 .0hD#kSq4 Bav|A!8C.JG4Q`"uz/!ht "0j)Bz$ {? z :xM4ВYW}Lb06a -6B`w"PFK\a=x <#k Wޘ.D؃ Su& q, v7Ue|A64 ĉ&suc"h9LH"b 86a\@ P8 e ߣZ2>g`G#&J=[&,/{=h HDx#9kӿUmF g;$uL $x8@hF)$\"1R% u4,R@ \ Jy@*`]9= !&aAϨ;C!EaA{X8$Wl,!#6#a9LX|LMTu8 (J i 4 +~N8 u a"I#/Ǖ;у<LbH`"3Nd4^ xXr"0#9s?;>, 8ϪG0L3VSTG |и܉9$B&$V_<щ>BN$EVECX9$,#9EH0CG I$K8fC:$xdBK$NIBdJO$P5dLF %R&RPXك,RN%UVU$DUvW~%$JF$WY%Z~JeVQ%\WCJ\%^&%:?_M`J 07$7P]c>E d^&fcaMf~&h*a@! ,W! , G4H*\ȰÇ#JHŋ3jdcǏ CIɓ(S\wt,ؠ͛8sɳϟwQPH*]ʴӧ"]0?Xjʵ׉ B׳hӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3kWΠCM3fQװc˞m|$jLc󱃿+_0GbB90N}2HR;u8xm_-*:gѾ -NEl e='RL .XJC0O&A0dY#'`.0/ 裏/@&ЃCK+wSRp zM@Y4Pc}zJZV b =!`P$Ls'v^`M!koqT P`K]1 "Fo" @`x{HU,SB:!E{s&J2wȦ:[@A3]"`92#*BVk0մB )°шi+63gYR&P{m%) #2L([Sq=ASQ 2  0&Q  -.L Q< ) 01  O:P,]aoF-cKް pC0[K 0| EЍ ] Z%8|v #g>L r  @`df|0 ?%0]w|)Q\1MQ aA&?ɂ9!Al76! 2" <V6 @ >` \G+0+A0@P!@$&P S- @, -ldUVt<g@5й1,W!jaPvl)ݨޖ\r)\1; Npr]fNhl1^ `L\BZdpۺy$zН V !P!Z(T-!5A A4 :Ls0@ 1D0#q4)J[tm]l a ^-IrЂ]akng][(bD9`6 [`̌67I׹sە z@`VP a~ZLĵ 6|]v|Wl.|_ t]0Ǘk E9Ѧ9af$! e=o r-ZraJ]a'0|_.`Vz e-g!佼6 mçH}r<4z]R.U~lWA@ %:<^ԃq}Ni"qSMZ7 ,P"0"NBr07}"K-nbK69 pXjFD01د [ [` %`e].^ }KmNU1&] } ;-N /O`RR8,>0ōZz}0c`_# + 1{3fZ80}S(Y;p@(ӑ 6L)F_S@8)T@?"_`)#p:Lw6i#p&-ZE]+ edOD=.'2K^ӳ9<;fT[;^Lu`Z ?3;%lk91]cqT4:cbDs@ qCfhg@U>q H1kzڱ[!7.9< &#bD@= < 9hw5}ơ<S.u = - 9;ccF;X;plR`Ճxil4A!=N.pܠJ0ATnB$^?I4*HGVA"{=27L!fpazx"A#P`lHsA P)G<0z)>X] `() 蔢@=Pʎh;}8>`0DgFCa f6x@A :ЁI @/p3A =L!`oDJ5=&Sa 2DU@)L ?B$#T f+@!  $eP>!*4HDO J`!H!E,%lM)9Nz |(E4 9ND@)|A@p0`<0@ 0! `A06@[ʀP4' gDJ? 0:3 C  ؀F` 4,BPBjTvH" @ XpCPAQB iZV@ !FtDP#t@'F@0 8*(1 Bxa @%FA E2=I`_AU0W3A X, #t @%,ۃMOEn(TU0" (aM"'Mp 3~ cDP+!H#@6PaHz< ɈEa $pD2B E 8P D*~1 TH3!G`FQ+_\Bp$?f!, 64K@!@@Q@ꛉD0am0A, (Az+8`@ GPE,PW<#@ R t*0O@^} 9Q@7}# d\b 294r p`@!A4W )0A_pJo4< ]D`Pf 9\i@@$w9 J-gȁ8q"[`xZtih E 8Q;xHgPGV΄.]NBdd 3q_0h14<0.0t" P fd |"0/PTla8gd\1N.q ggQg#q?p(p Q0#..=&#H.8C*@*@#.#(@'$p<Q /6'# 00A0@!Y/"@* LA`6(@9,, 8( dH 0x`&P @ XCpä)<4 =]8*Hӈ\ JÐ9xxZ,\^d'ѥ8IJ$"\KFHIR!I$*#H6=@X g"(P@-(jGvLF!%!0{4`()#8 ȉS(X&M@ RQ؀KۀѵYA HWV0QHm V0QXV ":V _ L)Ua='+j0NSBЀ(`LY؃1Lg(x`3 ƧBՐl+JpLȄV$\##("T$(4#@()P!U]PY8 @" xY#Z#B #z;#P;Z5`ث(@8tb2 F(>.ˁ@gp* @9/m$7)( .=ΘHg*8X@8ѓfg8N]fg@L0n],N^8j]c8WJ$ЂYLZcXN8*NuÁ0:'P=H@%X_ЅRM0]TXH˜_Y6^68س^-;c0@@)Ys(4Par*!@I0.S(nP P_ûQM '&dHQ8X4
  • %s
  • ' . "\n", $node->getName() ); if ($node instanceof DirectoryNode) { $buffer .= '
  • (Dashboard)
  • ' . "\n"; } return $buffer; } protected function getInactiveBreadcrumb(AbstractNode $node, $pathToRoot) { return sprintf( '
  • %s
  • ' . "\n", $pathToRoot, $node->getName() ); } protected function getPathToRoot(AbstractNode $node) { $id = $node->getId(); $depth = substr_count($id, '/'); if ($id != 'index' && $node instanceof DirectoryNode) { $depth++; } return str_repeat('../', $depth); } protected function getCoverageBar($percent) { $level = $this->getColorLevel($percent); $template = new \Text_Template( $this->templatePath . 'coverage_bar.html', '{{', '}}' ); $template->setVar(['level' => $level, 'percent' => sprintf('%.2F', $percent)]); return $template->render(); } /** * @param int $percent * * @return string */ protected function getColorLevel($percent) { if ($percent <= $this->lowUpperBound) { return 'danger'; } elseif ($percent > $this->lowUpperBound && $percent < $this->highLowerBound) { return 'warning'; } else { return 'success'; } } /** * @return string */ private function getRuntimeString() { $runtime = new Runtime; $buffer = sprintf( '%s %s', $runtime->getVendorUrl(), $runtime->getName(), $runtime->getVersion() ); if ($runtime->hasXdebug() && !$runtime->hasPHPDBGCodeCoverage()) { $buffer .= sprintf( ' with Xdebug %s', phpversion('xdebug') ); } return $buffer; } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Report\Html; use SebastianBergmann\CodeCoverage\Node\AbstractNode; use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; /** * Renders the dashboard for a directory node. */ class Dashboard extends Renderer { /** * @param DirectoryNode $node * @param string $file */ public function render(DirectoryNode $node, $file) { $classes = $node->getClassesAndTraits(); $template = new \Text_Template( $this->templatePath . 'dashboard.html', '{{', '}}' ); $this->setCommonTemplateVariables($template, $node); $baseLink = $node->getId() . '/'; $complexity = $this->complexity($classes, $baseLink); $coverageDistribution = $this->coverageDistribution($classes); $insufficientCoverage = $this->insufficientCoverage($classes, $baseLink); $projectRisks = $this->projectRisks($classes, $baseLink); $template->setVar( [ 'insufficient_coverage_classes' => $insufficientCoverage['class'], 'insufficient_coverage_methods' => $insufficientCoverage['method'], 'project_risks_classes' => $projectRisks['class'], 'project_risks_methods' => $projectRisks['method'], 'complexity_class' => $complexity['class'], 'complexity_method' => $complexity['method'], 'class_coverage_distribution' => $coverageDistribution['class'], 'method_coverage_distribution' => $coverageDistribution['method'] ] ); $template->renderTo($file); } /** * Returns the data for the Class/Method Complexity charts. * * @param array $classes * @param string $baseLink * * @return array */ protected function complexity(array $classes, $baseLink) { $result = ['class' => [], 'method' => []]; foreach ($classes as $className => $class) { foreach ($class['methods'] as $methodName => $method) { if ($className != '*') { $methodName = $className . '::' . $methodName; } $result['method'][] = [ $method['coverage'], $method['ccn'], sprintf( '%s', str_replace($baseLink, '', $method['link']), $methodName ) ]; } $result['class'][] = [ $class['coverage'], $class['ccn'], sprintf( '%s', str_replace($baseLink, '', $class['link']), $className ) ]; } return [ 'class' => json_encode($result['class']), 'method' => json_encode($result['method']) ]; } /** * Returns the data for the Class / Method Coverage Distribution chart. * * @param array $classes * * @return array */ protected function coverageDistribution(array $classes) { $result = [ 'class' => [ '0%' => 0, '0-10%' => 0, '10-20%' => 0, '20-30%' => 0, '30-40%' => 0, '40-50%' => 0, '50-60%' => 0, '60-70%' => 0, '70-80%' => 0, '80-90%' => 0, '90-100%' => 0, '100%' => 0 ], 'method' => [ '0%' => 0, '0-10%' => 0, '10-20%' => 0, '20-30%' => 0, '30-40%' => 0, '40-50%' => 0, '50-60%' => 0, '60-70%' => 0, '70-80%' => 0, '80-90%' => 0, '90-100%' => 0, '100%' => 0 ] ]; foreach ($classes as $class) { foreach ($class['methods'] as $methodName => $method) { if ($method['coverage'] == 0) { $result['method']['0%']++; } elseif ($method['coverage'] == 100) { $result['method']['100%']++; } else { $key = floor($method['coverage'] / 10) * 10; $key = $key . '-' . ($key + 10) . '%'; $result['method'][$key]++; } } if ($class['coverage'] == 0) { $result['class']['0%']++; } elseif ($class['coverage'] == 100) { $result['class']['100%']++; } else { $key = floor($class['coverage'] / 10) * 10; $key = $key . '-' . ($key + 10) . '%'; $result['class'][$key]++; } } return [ 'class' => json_encode(array_values($result['class'])), 'method' => json_encode(array_values($result['method'])) ]; } /** * Returns the classes / methods with insufficient coverage. * * @param array $classes * @param string $baseLink * * @return array */ protected function insufficientCoverage(array $classes, $baseLink) { $leastTestedClasses = []; $leastTestedMethods = []; $result = ['class' => '', 'method' => '']; foreach ($classes as $className => $class) { foreach ($class['methods'] as $methodName => $method) { if ($method['coverage'] < $this->highLowerBound) { if ($className != '*') { $key = $className . '::' . $methodName; } else { $key = $methodName; } $leastTestedMethods[$key] = $method['coverage']; } } if ($class['coverage'] < $this->highLowerBound) { $leastTestedClasses[$className] = $class['coverage']; } } asort($leastTestedClasses); asort($leastTestedMethods); foreach ($leastTestedClasses as $className => $coverage) { $result['class'] .= sprintf( ' %s%d%%' . "\n", str_replace($baseLink, '', $classes[$className]['link']), $className, $coverage ); } foreach ($leastTestedMethods as $methodName => $coverage) { list($class, $method) = explode('::', $methodName); $result['method'] .= sprintf( ' %s%d%%' . "\n", str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']), $methodName, $method, $coverage ); } return $result; } /** * Returns the project risks according to the CRAP index. * * @param array $classes * @param string $baseLink * * @return array */ protected function projectRisks(array $classes, $baseLink) { $classRisks = []; $methodRisks = []; $result = ['class' => '', 'method' => '']; foreach ($classes as $className => $class) { foreach ($class['methods'] as $methodName => $method) { if ($method['coverage'] < $this->highLowerBound && $method['ccn'] > 1) { if ($className != '*') { $key = $className . '::' . $methodName; } else { $key = $methodName; } $methodRisks[$key] = $method['crap']; } } if ($class['coverage'] < $this->highLowerBound && $class['ccn'] > count($class['methods'])) { $classRisks[$className] = $class['crap']; } } arsort($classRisks); arsort($methodRisks); foreach ($classRisks as $className => $crap) { $result['class'] .= sprintf( ' %s%d' . "\n", str_replace($baseLink, '', $classes[$className]['link']), $className, $crap ); } foreach ($methodRisks as $methodName => $crap) { list($class, $method) = explode('::', $methodName); $result['method'] .= sprintf( ' %s%d' . "\n", str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']), $methodName, $method, $crap ); } return $result; } protected function getActiveBreadcrumb(AbstractNode $node) { return sprintf( '
  • %s
  • ' . "\n" . '
  • (Dashboard)
  • ' . "\n", $node->getName() ); } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Report\Html; use SebastianBergmann\CodeCoverage\Node\AbstractNode as Node; use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; /** * Renders a directory node. */ class Directory extends Renderer { /** * @param DirectoryNode $node * @param string $file */ public function render(DirectoryNode $node, $file) { $template = new \Text_Template($this->templatePath . 'directory.html', '{{', '}}'); $this->setCommonTemplateVariables($template, $node); $items = $this->renderItem($node, true); foreach ($node->getDirectories() as $item) { $items .= $this->renderItem($item); } foreach ($node->getFiles() as $item) { $items .= $this->renderItem($item); } $template->setVar( [ 'id' => $node->getId(), 'items' => $items ] ); $template->renderTo($file); } /** * @param Node $node * @param bool $total * * @return string */ protected function renderItem(Node $node, $total = false) { $data = [ 'numClasses' => $node->getNumClassesAndTraits(), 'numTestedClasses' => $node->getNumTestedClassesAndTraits(), 'numMethods' => $node->getNumMethods(), 'numTestedMethods' => $node->getNumTestedMethods(), 'linesExecutedPercent' => $node->getLineExecutedPercent(false), 'linesExecutedPercentAsString' => $node->getLineExecutedPercent(), 'numExecutedLines' => $node->getNumExecutedLines(), 'numExecutableLines' => $node->getNumExecutableLines(), 'testedMethodsPercent' => $node->getTestedMethodsPercent(false), 'testedMethodsPercentAsString' => $node->getTestedMethodsPercent(), 'testedClassesPercent' => $node->getTestedClassesAndTraitsPercent(false), 'testedClassesPercentAsString' => $node->getTestedClassesAndTraitsPercent() ]; if ($total) { $data['name'] = 'Total'; } else { if ($node instanceof DirectoryNode) { $data['name'] = sprintf( '%s', $node->getName(), $node->getName() ); $data['icon'] = ' '; } else { $data['name'] = sprintf( '%s', $node->getName(), $node->getName() ); $data['icon'] = ' '; } } return $this->renderItemTemplate( new \Text_Template($this->templatePath . 'directory_item.html', '{{', '}}'), $data ); } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Report\Html; use SebastianBergmann\CodeCoverage\Node\File as FileNode; use SebastianBergmann\CodeCoverage\Util; /** * Renders a file node. */ class File extends Renderer { /** * @var int */ private $htmlspecialcharsFlags; /** * Constructor. * * @param string $templatePath * @param string $generator * @param string $date * @param int $lowUpperBound * @param int $highLowerBound */ public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound) { parent::__construct( $templatePath, $generator, $date, $lowUpperBound, $highLowerBound ); $this->htmlspecialcharsFlags = ENT_COMPAT; $this->htmlspecialcharsFlags = $this->htmlspecialcharsFlags | ENT_HTML401 | ENT_SUBSTITUTE; } /** * @param FileNode $node * @param string $file */ public function render(FileNode $node, $file) { $template = new \Text_Template($this->templatePath . 'file.html', '{{', '}}'); $template->setVar( [ 'items' => $this->renderItems($node), 'lines' => $this->renderSource($node) ] ); $this->setCommonTemplateVariables($template, $node); $template->renderTo($file); } /** * @param FileNode $node * * @return string */ protected function renderItems(FileNode $node) { $template = new \Text_Template($this->templatePath . 'file_item.html', '{{', '}}'); $methodItemTemplate = new \Text_Template( $this->templatePath . 'method_item.html', '{{', '}}' ); $items = $this->renderItemTemplate( $template, [ 'name' => 'Total', 'numClasses' => $node->getNumClassesAndTraits(), 'numTestedClasses' => $node->getNumTestedClassesAndTraits(), 'numMethods' => $node->getNumMethods(), 'numTestedMethods' => $node->getNumTestedMethods(), 'linesExecutedPercent' => $node->getLineExecutedPercent(false), 'linesExecutedPercentAsString' => $node->getLineExecutedPercent(), 'numExecutedLines' => $node->getNumExecutedLines(), 'numExecutableLines' => $node->getNumExecutableLines(), 'testedMethodsPercent' => $node->getTestedMethodsPercent(false), 'testedMethodsPercentAsString' => $node->getTestedMethodsPercent(), 'testedClassesPercent' => $node->getTestedClassesAndTraitsPercent(false), 'testedClassesPercentAsString' => $node->getTestedClassesAndTraitsPercent(), 'crap' => 'CRAP' ] ); $items .= $this->renderFunctionItems( $node->getFunctions(), $methodItemTemplate ); $items .= $this->renderTraitOrClassItems( $node->getTraits(), $template, $methodItemTemplate ); $items .= $this->renderTraitOrClassItems( $node->getClasses(), $template, $methodItemTemplate ); return $items; } /** * @param array $items * @param \Text_Template $template * @param \Text_Template $methodItemTemplate * * @return string */ protected function renderTraitOrClassItems(array $items, \Text_Template $template, \Text_Template $methodItemTemplate) { if (empty($items)) { return ''; } $buffer = ''; foreach ($items as $name => $item) { $numMethods = count($item['methods']); $numTestedMethods = 0; foreach ($item['methods'] as $method) { if ($method['executedLines'] == $method['executableLines']) { $numTestedMethods++; } } if ($item['executableLines'] > 0) { $numClasses = 1; $numTestedClasses = $numTestedMethods == $numMethods ? 1 : 0; $linesExecutedPercentAsString = Util::percent( $item['executedLines'], $item['executableLines'], true ); } else { $numClasses = 'n/a'; $numTestedClasses = 'n/a'; $linesExecutedPercentAsString = 'n/a'; } $buffer .= $this->renderItemTemplate( $template, [ 'name' => $name, 'numClasses' => $numClasses, 'numTestedClasses' => $numTestedClasses, 'numMethods' => $numMethods, 'numTestedMethods' => $numTestedMethods, 'linesExecutedPercent' => Util::percent( $item['executedLines'], $item['executableLines'], false ), 'linesExecutedPercentAsString' => $linesExecutedPercentAsString, 'numExecutedLines' => $item['executedLines'], 'numExecutableLines' => $item['executableLines'], 'testedMethodsPercent' => Util::percent( $numTestedMethods, $numMethods, false ), 'testedMethodsPercentAsString' => Util::percent( $numTestedMethods, $numMethods, true ), 'testedClassesPercent' => Util::percent( $numTestedMethods == $numMethods ? 1 : 0, 1, false ), 'testedClassesPercentAsString' => Util::percent( $numTestedMethods == $numMethods ? 1 : 0, 1, true ), 'crap' => $item['crap'] ] ); foreach ($item['methods'] as $method) { $buffer .= $this->renderFunctionOrMethodItem( $methodItemTemplate, $method, ' ' ); } } return $buffer; } /** * @param array $functions * @param \Text_Template $template * * @return string */ protected function renderFunctionItems(array $functions, \Text_Template $template) { if (empty($functions)) { return ''; } $buffer = ''; foreach ($functions as $function) { $buffer .= $this->renderFunctionOrMethodItem( $template, $function ); } return $buffer; } /** * @param \Text_Template $template * * @return string */ protected function renderFunctionOrMethodItem(\Text_Template $template, array $item, $indent = '') { $numTestedItems = $item['executedLines'] == $item['executableLines'] ? 1 : 0; return $this->renderItemTemplate( $template, [ 'name' => sprintf( '%s%s', $indent, $item['startLine'], htmlspecialchars($item['signature']), isset($item['functionName']) ? $item['functionName'] : $item['methodName'] ), 'numMethods' => 1, 'numTestedMethods' => $numTestedItems, 'linesExecutedPercent' => Util::percent( $item['executedLines'], $item['executableLines'], false ), 'linesExecutedPercentAsString' => Util::percent( $item['executedLines'], $item['executableLines'], true ), 'numExecutedLines' => $item['executedLines'], 'numExecutableLines' => $item['executableLines'], 'testedMethodsPercent' => Util::percent( $numTestedItems, 1, false ), 'testedMethodsPercentAsString' => Util::percent( $numTestedItems, 1, true ), 'crap' => $item['crap'] ] ); } /** * @param FileNode $node * * @return string */ protected function renderSource(FileNode $node) { $coverageData = $node->getCoverageData(); $testData = $node->getTestData(); $codeLines = $this->loadFile($node->getPath()); $lines = ''; $i = 1; foreach ($codeLines as $line) { $trClass = ''; $popoverContent = ''; $popoverTitle = ''; if (array_key_exists($i, $coverageData)) { $numTests = count($coverageData[$i]); if ($coverageData[$i] === null) { $trClass = ' class="warning"'; } elseif ($numTests == 0) { $trClass = ' class="danger"'; } else { $lineCss = 'covered-by-large-tests'; $popoverContent = '
      '; if ($numTests > 1) { $popoverTitle = $numTests . ' tests cover line ' . $i; } else { $popoverTitle = '1 test covers line ' . $i; } foreach ($coverageData[$i] as $test) { if ($lineCss == 'covered-by-large-tests' && $testData[$test]['size'] == 'medium') { $lineCss = 'covered-by-medium-tests'; } elseif ($testData[$test]['size'] == 'small') { $lineCss = 'covered-by-small-tests'; } switch ($testData[$test]['status']) { case 0: switch ($testData[$test]['size']) { case 'small': $testCSS = ' class="covered-by-small-tests"'; break; case 'medium': $testCSS = ' class="covered-by-medium-tests"'; break; default: $testCSS = ' class="covered-by-large-tests"'; break; } break; case 1: case 2: $testCSS = ' class="warning"'; break; case 3: $testCSS = ' class="danger"'; break; case 4: $testCSS = ' class="danger"'; break; default: $testCSS = ''; } $popoverContent .= sprintf( '%s', $testCSS, htmlspecialchars($test) ); } $popoverContent .= '
    '; $trClass = ' class="' . $lineCss . ' popin"'; } } if (!empty($popoverTitle)) { $popover = sprintf( ' data-title="%s" data-content="%s" data-placement="bottom" data-html="true"', $popoverTitle, htmlspecialchars($popoverContent) ); } else { $popover = ''; } $lines .= sprintf( ' %s' . "\n", $trClass, $popover, $i, $i, $i, $line ); $i++; } return $lines; } /** * @param string $file * * @return array */ protected function loadFile($file) { $buffer = file_get_contents($file); $tokens = token_get_all($buffer); $result = ['']; $i = 0; $stringFlag = false; $fileEndsWithNewLine = substr($buffer, -1) == "\n"; unset($buffer); foreach ($tokens as $j => $token) { if (is_string($token)) { if ($token === '"' && $tokens[$j - 1] !== '\\') { $result[$i] .= sprintf( '%s', htmlspecialchars($token) ); $stringFlag = !$stringFlag; } else { $result[$i] .= sprintf( '%s', htmlspecialchars($token) ); } continue; } list($token, $value) = $token; $value = str_replace( ["\t", ' '], ['    ', ' '], htmlspecialchars($value, $this->htmlspecialcharsFlags) ); if ($value === "\n") { $result[++$i] = ''; } else { $lines = explode("\n", $value); foreach ($lines as $jj => $line) { $line = trim($line); if ($line !== '') { if ($stringFlag) { $colour = 'string'; } else { switch ($token) { case T_INLINE_HTML: $colour = 'html'; break; case T_COMMENT: case T_DOC_COMMENT: $colour = 'comment'; break; case T_ABSTRACT: case T_ARRAY: case T_AS: case T_BREAK: case T_CALLABLE: case T_CASE: case T_CATCH: case T_CLASS: case T_CLONE: case T_CONTINUE: case T_DEFAULT: case T_ECHO: case T_ELSE: case T_ELSEIF: case T_EMPTY: case T_ENDDECLARE: case T_ENDFOR: case T_ENDFOREACH: case T_ENDIF: case T_ENDSWITCH: case T_ENDWHILE: case T_EXIT: case T_EXTENDS: case T_FINAL: case T_FINALLY: case T_FOREACH: case T_FUNCTION: case T_GLOBAL: case T_IF: case T_IMPLEMENTS: case T_INCLUDE: case T_INCLUDE_ONCE: case T_INSTANCEOF: case T_INSTEADOF: case T_INTERFACE: case T_ISSET: case T_LOGICAL_AND: case T_LOGICAL_OR: case T_LOGICAL_XOR: case T_NAMESPACE: case T_NEW: case T_PRIVATE: case T_PROTECTED: case T_PUBLIC: case T_REQUIRE: case T_REQUIRE_ONCE: case T_RETURN: case T_STATIC: case T_THROW: case T_TRAIT: case T_TRY: case T_UNSET: case T_USE: case T_VAR: case T_WHILE: case T_YIELD: $colour = 'keyword'; break; default: $colour = 'default'; } } $result[$i] .= sprintf( '%s', $colour, $line ); } if (isset($lines[$jj + 1])) { $result[++$i] = ''; } } } } if ($fileEndsWithNewLine) { unset($result[count($result) - 1]); } return $result; } }
    {{percent}}% covered ({{level}})
    /*! * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} /*# sourceMappingURL=bootstrap.min.css.map */.nvd3 .nv-axis{pointer-events:none;opacity:1}.nvd3 .nv-axis path{fill:none;stroke:#000;stroke-opacity:.75;shape-rendering:crispEdges}.nvd3 .nv-axis path.domain{stroke-opacity:.75}.nvd3 .nv-axis.nv-x path.domain{stroke-opacity:0}.nvd3 .nv-axis line{fill:none;stroke:#e5e5e5;shape-rendering:crispEdges}.nvd3 .nv-axis .zero line,.nvd3 .nv-axis line.zero{stroke-opacity:.75}.nvd3 .nv-axis .nv-axisMaxMin text{font-weight:700}.nvd3 .x .nv-axis .nv-axisMaxMin text,.nvd3 .x2 .nv-axis .nv-axisMaxMin text,.nvd3 .x3 .nv-axis .nv-axisMaxMin text{text-anchor:middle}.nvd3 .nv-axis.nv-disabled{opacity:0}.nvd3 .nv-bars rect{fill-opacity:.75;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-bars rect.hover{fill-opacity:1}.nvd3 .nv-bars .hover rect{fill:#add8e6}.nvd3 .nv-bars text{fill:rgba(0,0,0,0)}.nvd3 .nv-bars .hover text{fill:rgba(0,0,0,1)}.nvd3 .nv-multibar .nv-groups rect,.nvd3 .nv-multibarHorizontal .nv-groups rect,.nvd3 .nv-discretebar .nv-groups rect{stroke-opacity:0;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-multibar .nv-groups rect:hover,.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,.nvd3 .nv-candlestickBar .nv-ticks rect:hover,.nvd3 .nv-discretebar .nv-groups rect:hover{fill-opacity:1}.nvd3 .nv-discretebar .nv-groups text,.nvd3 .nv-multibarHorizontal .nv-groups text{font-weight:700;fill:rgba(0,0,0,1);stroke:rgba(0,0,0,0)}.nvd3 .nv-boxplot circle{fill-opacity:.5}.nvd3 .nv-boxplot circle:hover{fill-opacity:1}.nvd3 .nv-boxplot rect:hover{fill-opacity:1}.nvd3 line.nv-boxplot-median{stroke:#000}.nv-boxplot-tick:hover{stroke-width:2.5px}.nvd3.nv-bullet{font:10px sans-serif}.nvd3.nv-bullet .nv-measure{fill-opacity:.8}.nvd3.nv-bullet .nv-measure:hover{fill-opacity:1}.nvd3.nv-bullet .nv-marker{stroke:#000;stroke-width:2px}.nvd3.nv-bullet .nv-markerTriangle{stroke:#000;fill:#fff;stroke-width:1.5px}.nvd3.nv-bullet .nv-tick line{stroke:#666;stroke-width:.5px}.nvd3.nv-bullet .nv-range.nv-s0{fill:#eee}.nvd3.nv-bullet .nv-range.nv-s1{fill:#ddd}.nvd3.nv-bullet .nv-range.nv-s2{fill:#ccc}.nvd3.nv-bullet .nv-title{font-size:14px;font-weight:700}.nvd3.nv-bullet .nv-subtitle{fill:#999}.nvd3.nv-bullet .nv-range{fill:#bababa;fill-opacity:.4}.nvd3.nv-bullet .nv-range:hover{fill-opacity:.7}.nvd3.nv-candlestickBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect{stroke:#d62728;fill:#d62728}.with-transitions .nv-candlestickBar .nv-ticks .nv-tick{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-candlestickBar .nv-ticks line{stroke:#333}.nvd3 .nv-legend .nv-disabled rect{}.nvd3 .nv-check-box .nv-box{fill-opacity:0;stroke-width:2}.nvd3 .nv-check-box .nv-check{fill-opacity:0;stroke-width:4}.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check{opacity:0}.nvd3.nv-linePlusBar .nv-bar rect{fill-opacity:.75}.nvd3.nv-linePlusBar .nv-bar rect:hover{fill-opacity:1}.nvd3 .nv-groups path.nv-line{fill:none}.nvd3 .nv-groups path.nv-area{stroke:none}.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point{fill-opacity:0;stroke-opacity:0}.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point{fill-opacity:.5!important;stroke-opacity:.5!important}.with-transitions .nvd3 .nv-groups .nv-point{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-scatter .nv-groups .nv-point.hover,.nvd3 .nv-groups .nv-point.hover{stroke-width:7px;fill-opacity:.95!important;stroke-opacity:.95!important}.nvd3 .nv-point-paths path{stroke:#aaa;stroke-opacity:0;fill:#eee;fill-opacity:0}.nvd3 .nv-indexLine{cursor:ew-resize}svg.nvd3-svg{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-ms-user-select:none;-moz-user-select:none;user-select:none;display:block;width:100%;height:100%}.nvtooltip.with-3d-shadow,.with-3d-shadow .nvtooltip{-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nvd3 text{font:400 12px Arial}.nvd3 .title{font:700 14px Arial}.nvd3 .nv-background{fill:#fff;fill-opacity:0}.nvd3.nv-noData{font-size:18px;font-weight:700}.nv-brush .extent{fill-opacity:.125;shape-rendering:crispEdges}.nv-brush .resize path{fill:#eee;stroke:#666}.nvd3 .nv-legend .nv-series{cursor:pointer}.nvd3 .nv-legend .nv-disabled circle{fill-opacity:0}.nvd3 .nv-brush .extent{fill-opacity:0!important}.nvd3 .nv-brushBackground rect{stroke:#000;stroke-width:.4;fill:#fff;fill-opacity:.7}.nvd3.nv-ohlcBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive{stroke:#2ca02c}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative{stroke:#d62728}.nvd3 .background path{fill:none;stroke:#EEE;stroke-opacity:.4;shape-rendering:crispEdges}.nvd3 .foreground path{fill:none;stroke-opacity:.7}.nvd3 .nv-parallelCoordinates-brush .extent{fill:#fff;fill-opacity:.6;stroke:gray;shape-rendering:crispEdges}.nvd3 .nv-parallelCoordinates .hover{fill-opacity:1;stroke-width:3px}.nvd3 .missingValuesline line{fill:none;stroke:#000;stroke-width:1;stroke-opacity:1;stroke-dasharray:5,5}.nvd3.nv-pie path{stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-pie .nv-pie-title{font-size:24px;fill:rgba(19,196,249,.59)}.nvd3.nv-pie .nv-slice text{stroke:#000;stroke-width:0}.nvd3.nv-pie path{stroke:#fff;stroke-width:1px;stroke-opacity:1}.nvd3.nv-pie .hover path{fill-opacity:.7}.nvd3.nv-pie .nv-label{pointer-events:none}.nvd3.nv-pie .nv-label rect{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-groups .nv-point.hover{stroke-width:20px;stroke-opacity:.5}.nvd3 .nv-scatter .nv-point.hover{fill-opacity:1}.nv-noninteractive{pointer-events:none}.nv-distx,.nv-disty{pointer-events:none}.nvd3.nv-sparkline path{fill:none}.nvd3.nv-sparklineplus g.nv-hoverValue{pointer-events:none}.nvd3.nv-sparklineplus .nv-hoverValue line{stroke:#333;stroke-width:1.5px}.nvd3.nv-sparklineplus,.nvd3.nv-sparklineplus g{pointer-events:all}.nvd3 .nv-hoverArea{fill-opacity:0;stroke-opacity:0}.nvd3.nv-sparklineplus .nv-xValue,.nvd3.nv-sparklineplus .nv-yValue{stroke-width:0;font-size:.9em;font-weight:400}.nvd3.nv-sparklineplus .nv-yValue{stroke:#f66}.nvd3.nv-sparklineplus .nv-maxValue{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-sparklineplus .nv-minValue{stroke:#d62728;fill:#d62728}.nvd3.nv-sparklineplus .nv-currentValue{font-weight:700;font-size:1.1em}.nvd3.nv-stackedarea path.nv-area{fill-opacity:.7;stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-stackedarea path.nv-area.hover{fill-opacity:.9}.nvd3.nv-stackedarea .nv-groups .nv-point{stroke-opacity:0;fill-opacity:0}.nvtooltip{position:absolute;background-color:rgba(255,255,255,1);color:rgba(0,0,0,1);padding:1px;border:1px solid rgba(0,0,0,.2);z-index:10000;display:block;font-family:Arial;font-size:13px;text-align:left;pointer-events:none;white-space:nowrap;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.nvtooltip{background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.5);border-radius:4px}.nvtooltip.with-transitions,.with-transitions .nvtooltip{transition:opacity 50ms linear;-moz-transition:opacity 50ms linear;-webkit-transition:opacity 50ms linear;transition-delay:200ms;-moz-transition-delay:200ms;-webkit-transition-delay:200ms}.nvtooltip.x-nvtooltip,.nvtooltip.y-nvtooltip{padding:8px}.nvtooltip h3{margin:0;padding:4px 14px;line-height:18px;font-weight:400;background-color:rgba(247,247,247,.75);color:rgba(0,0,0,1);text-align:center;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.nvtooltip p{margin:0;padding:5px 14px;text-align:center}.nvtooltip span{display:inline-block;margin:2px 0}.nvtooltip table{margin:6px;border-spacing:0}.nvtooltip table td{padding:2px 9px 2px 0;vertical-align:middle}.nvtooltip table td.key{font-weight:400}.nvtooltip table td.value{text-align:right;font-weight:700}.nvtooltip table tr.highlight td{padding:1px 9px 1px 0;border-bottom-style:solid;border-bottom-width:1px;border-top-style:solid;border-top-width:1px}.nvtooltip table td.legend-color-guide div{width:8px;height:8px;vertical-align:middle}.nvtooltip table td.legend-color-guide div{width:12px;height:12px;border:1px solid #999}.nvtooltip .footer{padding:3px;text-align:center}.nvtooltip-pending-removal{pointer-events:none;display:none}.nvd3 .nv-interactiveGuideLine{pointer-events:none}.nvd3 line.nv-guideline{stroke:#ccc}body { padding-top: 10px; } .popover { max-width: none; } .glyphicon { margin-right:.25em; } .table-bordered>thead>tr>td { border-bottom-width: 1px; } .table tbody>tr>td, .table thead>tr>td { padding-top: 3px; padding-bottom: 3px; } .table-condensed tbody>tr>td { padding-top: 0; padding-bottom: 0; } .table .progress { margin-bottom: inherit; } .table-borderless th, .table-borderless td { border: 0 !important; } .table tbody tr.covered-by-large-tests, li.covered-by-large-tests, tr.success, td.success, li.success, span.success { background-color: #dff0d8; } .table tbody tr.covered-by-medium-tests, li.covered-by-medium-tests { background-color: #c3e3b5; } .table tbody tr.covered-by-small-tests, li.covered-by-small-tests { background-color: #99cb84; } .table tbody tr.danger, .table tbody td.danger, li.danger, span.danger { background-color: #f2dede; } .table tbody td.warning, li.warning, span.warning { background-color: #fcf8e3; } .table tbody td.info { background-color: #d9edf7; } td.big { width: 117px; } td.small { } td.codeLine { font-family: monospace; white-space: pre; } td span.comment { color: #888a85; } td span.default { color: #2e3436; } td span.html { color: #888a85; } td span.keyword { color: #2e3436; font-weight: bold; } pre span.string { color: #2e3436; } span.success, span.warning, span.danger { margin-right: 2px; padding-left: 10px; padding-right: 10px; text-align: center; } #classCoverageDistribution, #classComplexity { height: 200px; width: 475px; } #toplink { position: fixed; left: 5px; bottom: 5px; outline: 0; } svg text { font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #666; fill: #666; } .scrollbox { height:245px; overflow-x:hidden; overflow-y:scroll; } Dashboard for {{full_path}}

    Classes

    Coverage Distribution

    Complexity

    Insufficient Coverage

    {{insufficient_coverage_classes}}
    Class Coverage

    Project Risks

    {{project_risks_classes}}
    Class CRAP

    Methods

    Coverage Distribution

    Complexity

    Insufficient Coverage

    {{insufficient_coverage_methods}}
    Method Coverage

    Project Risks

    {{project_risks_methods}}
    Method CRAP
    Code Coverage for {{full_path}}
    {{items}}
     
    Code Coverage
     
    Lines
    Functions and Methods
    Classes and Traits

    Legend

    Low: 0% to {{low_upper_bound}}% Medium: {{low_upper_bound}}% to {{high_lower_bound}}% High: {{high_lower_bound}}% to 100%

    Generated by php-code-coverage {{version}} using {{runtime}}{{generator}} at {{date}}.

    {{icon}}{{name}} {{lines_bar}}
    {{lines_executed_percent}}
    {{lines_number}}
    {{methods_bar}}
    {{methods_tested_percent}}
    {{methods_number}}
    {{classes_bar}}
    {{classes_tested_percent}}
    {{classes_number}}
    Code Coverage for {{full_path}}
    {{items}}
     
    Code Coverage
     
    Classes and Traits
    Functions and Methods
    Lines
    {{lines}}
    {{name}} {{classes_bar}}
    {{classes_tested_percent}}
    {{classes_number}}
    {{methods_bar}}
    {{methods_tested_percent}}
    {{methods_number}}
    {{crap}} {{lines_bar}}
    {{lines_executed_percent}}
    {{lines_number}}
    NAMLP',(GLYPHICONS HalflingsRegularxVersion 1.009;PS 001.009;hotconv 1.0.70;makeotf.lib2.5.583298GLYPHICONS Halflings RegularBSGPMMF٣(uʌ<0DB/X N CC^ rmR2skPJ"5+glW*iW/E4#ԣU~fUDĹJ1/!/s7k(hN8od$yq19@-HGS"Fjؠ6C3&W51BaQaRU/{*=@dh$1Tۗnc+cA Zɀ@Qcal2>Km' CHMĬfBX,Ype U*Ҕz miO1nE. hx!aC XTV‹ R%|IHP5"bN=r/_R_ %҄uzҘ52ġP)F7SqF{nia@Ds;}9⬥?ź R{Tk;޵ǜU\NZQ-^s7f 0S3A _n`W7Ppi!g/_pZ-=ץ~WZ#/4 KF` z0| Dѵ&däIÏ;M{'omm I !wi9|H:ۧ{~qO, L]&J09/9&Y 蓰{;'3`e@vHyDZ$3Dx28 W Cx5xwB`$C$'ElyhԀ DJ $(pQAA܉A@'$ hp0V0 `se$4$"t2=f4A{Tk0|rH`L&sh]A<`R'!1N;_t3# V *veF`E O${)W=p:F`22ړC^.ćG<.pNe2ִ+Ysl:˼ ܫu5tu^86ȄTmyQ%u~%~1rҘawߚ^_ZZa0!N`. uqYB\ᨀ[e:@J'Eہ,3ubj@pfeW9( ޅ=lG7gj SM609OˑlBa݁ <Bՙ(VRApf^+g9qMt]تpEr@]@VkV ud^X R@?EY2]#Ǽ4JK'dPC|mmn#$+48u'e&[n[L%{BCDL:^!bƙ:&g3-3ub iLZڂWFSId6.k5Pl77UzT:NN.")['|U"AIvwptdk9嫫9nDmq7I|6Kbc]MBABȪ_JT q  6@Fhd`GT:M7'L,IhFP ~j $¡„ 3hA-S^چ-%qe~Qqln"i&Qe?FlK"As(3Y;"Let'RzM1 0{=) K%$C 9M4c EotjVGD)l8,\w !%$3t TBzҴ iUJ[xgdBr$!eq"J> )\~3(^ R€8#>bHG'7_ fӫcκtDoAA߃(qB<``VΫ֘*buP4v@+.Qԥ$V@C0 RܐP[z:XH#e s>?EWO>@I$|si ES)0A?9ab,@K̩o&Q% ϞLu+ +H|Ɛ?NK4CnPt 'OT.j5Ĵ8vw֜I&+`yScaO[#gQd[KI矗`ČLP # )27aTi@c\ސ 0nCpߖ運4͵x*RzYbT[\kUvHʈqp঄IIŗ) bB XPNtz 2 I== ;}bqjiކa#" >11Ap1POOuxQ Fϲ(h݄O'MDxLK$ȵh& 14SirHJPtDM;rM+ *ؗ5u2$f3K %ѳb (@,2f,~"7R;E;HX(42Z'Tۿ2J+^!#oY~4-׃GW*!A0&8f{`W=DP8'= R g}iP>#4EBRY^4eN8V,[BĨD#X],LBsNC> +o^x jC.4Ya_{eA2=r+9POA!! }YPJeGn%x1/}RgHa ^3- 5 |qSaWK{ 1al`I1 Qf_yyCZ)L3X] W6@DMT<.uGK8DsбWr\7Z\V"ISd>CUjeD 3MtWcPӉ6#3QnቩJ\7#磱`؀K lV6 &T ~l. @61`! ` wYk/a0A¹ԁYhdxk:fEao̟^<IwYgq7s[ -y1ع5aMKאRBYFq}8*Nt'.YbZvK (]&ɜ(ՙ2:0 oΏхPKiBH4UX,[$ 0mXش f50VR 8%ާDtUs`-BPzPsvI8z-t1DiB "˶YTJ .?07jLN[2tĮ̎ #6?E׻:ɞY;A&qSIR)ss 9*x0Bj)mHAhyЏhMm&4Ŋ4 gV&tYOCS0Yd7MvNj)wA(o "͢[ E`7ezď-Q]6+Bca@^I:һ=sSnc 6 OB4LGpBq/>O pwj A*@JC[h&3B Qbϩ8 :%f~v/lS00a"B8(f uGoǚgyt_y~͔ %mL !I$Xt0~ePz]Ug Н=_?.j#+`li BM5 őGp7a ֒%Y[UG9@\bDY{{ED0 $Q+FvC`ݨ3Q E\uC9![$l 6DoDgG*+X!%#Cq ?8ZUB)U@opgީZq89|uccAќW;@">Ph_9}.6V/O:3}ZS {:~ykcO6;OB=bV. Rk o ^GV= }oI"+ ]wFzϷ`<30h3]Rf859s`KM8 XUq<\ZOssM&j&  .%PBL~^Gˈ3pD:Z<\ǠiW̆"(:zX~0PG]8RQMNTqfW~!0R%Ց0xvGFy/F-wu/*+ \8@6c<L;c[º nr QS'oQuT{qҐ_ͿSdA*ð:m8Yuz2PB Hh`lkpLLh cEb6eۏҋ ?!>| *=VK@rx0G`%ryr[6Y37 f**n%9df11ޢځ^'] Rq.,^%l e#wWs56!=!q[ %Ԯ]5^:m5)?V b|u7fw,:Ye R% [ o gFAzFPx{dxíw8ٔ{{L> d2CLL,L,(mS$=|%֝lu& ą83 N Xx \VnJ[)Iw/鹻 |GźYDH*Sp60cJ2@W%Ѧc_^$#*:G6n>D;~`9hXB UJB_вˈ%w'$v|#T<68KMϑ-5U+'B ĪNbJOv'|+*Mk(d }C˱@q&aR%} !VЃs3w2a2awHz/Q0F ]~;ä NDP mK3xke_ S!V&=v_PL9؃Yi NU_)J69f*S  17F|BR$y,Ʊ.&=uqsODBR=ɳeؽɇBH 2lu'h7^#S)Xi2..Pe/@FK$](%|2Y1pC8tI11N//+\pjdWmI=߽YZxMЉP81/ JG^U ,Pd1O^ypql2h$jvI%]V .'[+WU8[D,߻-=[ O wE)3J&dقݶR¡S\. 5J$I&oHȳ~ lz> Ux/Hu;?Gt{?;TH L|F8}{p:2t͆aѧp65Y"LD.rVS_ k]n&Hz~9æ p $4ق'{&M\ΰч!qi (.h' B T|{I6cL.빍iI꫿\!;g`1 j%C o3*60E؎]t.-%0 YK_nft] *VFCtJT+\WZ8gF^ ޞf 5I=#6.@2z;W`B/ęQghjyJNAX3, K66ڲM0T@O{4kj|"ftџۄU<-a5b)^R8:ilKa6@!]buvΏ$ oUœ~:.Lte JξP l$S[z~Rq39钺9Q/m"%ʤ7 5MKL鑧"IߏG XTގXLFݧV jp^/Mgۻ{w *9Oʈ<"aAq.M2@mp^'wߕmkxO8 $[&|YZy`2_|%r/J?QṈl3ÞKE$wvCh a@U1M%0?1* $GZ{!|ʿ$ە-٪Ev;͓:`Bl˸쌧ɬoQ0&,F?^s,ch˕$Ecl0w`⏺ň@/r^l8cT3k@JݔuP&ʪNdJjTKi *uX{tj~ɡ}i\BKenȵ|N u#]@lCZ$iPa㸩t04y20 s֪,Au!QBϖ^@Vsɑ\Za7쾉ш6-TrU u~1HJ(<αbRԖqi J?eG *jVħ ":Y);-Fd!HG~ux cb6m)&;0dU?8X~12ۼtIx5{(z '[ŃkZЅi,b1̇`(mHNeK/ [(#QGduT^m%!(7KgP=hϕkɐU+.[eC"GDΨ<*Ř 9&܂?)\<&Ŏ5 LJu@Y,냲ھ_w0^17p޻*>D8_)$UźR!jOF>{ t,-bP,m`D"/zA ͔إQZG&U]xejxLwv~=)@B6?!;53/ps@tOZS7ؙnlxZ?Zj a{6L41 2Qi&֥l]o=7ļ ofЖr MEV@H/aD٦HlK5)ŒZ OE3IG'г;D'zl(E$.ٜ-W R'\w+)w3꺾 @%R).~9;].šg+)%ȝk҉^NW>b1z:soD K2w[|>9vWMFu`axchիU`*ʆe]OV'6xd?H]_rA+zdFH ʋ<ǴkUsFzaH9-gvb=L/E).x9j%B)$AB t b.bAEZRbH(Jya9Wj0fF'Xz $DQ6q` o i={#4FYH@J3 3i~tYТhkHP17YD"pĦ;'16fpu>FoDQin̒- @P# hj ނŀfC 7°T5HVXpklĭ]yXr)?ͺBNJ B#9e&&_0=pZ6h) ̗a b=(p);.N,W^ *hԺCm}E7i6aIvͲxp*Ac#4N&`)ĉHWey7jloEh_n3 jp?4p2WE'kT_ &!ȖjVlHӻ_kɚʳaY s@[G"bYLܫXi Cq8&zVaY{#I@2m!d[1 AƢnKeם/>dmuX:xʷ\pNl+H+ctSǶC[~3e}6 \,Ʉ|Yݧv]'|&M2 ddsx-((76aXm=ӊQ<$Q†\ qiH阇i'i$"{S*VwF/tfQCWUZ{S;Nx}H&* 9׸qU1 a`(M-aG}n̽0 pmcn ɘ_\l} 9FvHþkJZNO mZQҤ aSf )QC+2 d[ H"t* c*bڢq,#S#u'Ҭ:4asCDMF|ɸm_1L]Y\*X>tgDd@&[)8;<{8<+VG\H^aae-4sJA \ hM[\`#pD5Z97g;BWmqTXX%0v&]E 4]FIJ&S_4R0D+meY gO+M{03v'ͅft:;ر Nn\ǔ^,)1laBZZ[  ZSUYh߆wS\/*?zQЋ`X4gr[CWG.Y0Q|RԃE[wy),ш$NK@c/b -#ZI G$ƗtmH#)XwPZAD|S ofTH)>M1b 7ɆSuq jK4[s xL Ǣ]5 !M!AdƧN><:ǻZ(8)e /W| bDDŃtT7rur0Ң`ܴh5 5S}4hrvalc!ZjB]xDbTxzYS6_)op>#@PS*bS\q ƋxYfQ><" Y6IEr_7Ұ VH!IrEL6!Nq"'daqMvA% v n.;A/2ʲa8D$GWv#̏ 9k'o؟o@ (]gk+}/ (nqK(f Ɵиp23YwpDdGq2$}KӯA"E&Ntg'Nes!Ю4qo}쿝S,ojr/s TMT&Qf\12h'&ctN'Tx7]2 ;G ʅ|T++:%/ 1T  ˀ<4͔˗ ,0~!WO' :suҦن(^ﮎ )7fmlҹ1ūtZh L0 6X"J҂ 49 ֩B}ԭ``Ӓ #Jn_F H|$OK=œi17o-Hqp[ɫ%%:Ɉi3۠G CLL4S:dBj|pYSDP>pv5KLe{t0yEND$*;z5NBIgn.N|׶nRaSZJcH mXek;_ 6,yb0#ZA e|wG U1lLD7ÄVqt[xuEQULPBlZSh.1Q0Uٱ8Rip;{H#GON!?t>Q |pkq!gT,j2sǍ4툊tjnƛ/IOE!ˋnF4M&1x$ew+vS  bm]e%8 P !s_06)Q2JB [t9'Ԝ,[fÆג]BB@r&Bs|Q gOC1J D&LJiC`A^#X8tH?daĖTSTaH0@U)^e}Jb7%ܔ%:ƿ@M+ysqL Y00ÔGD >ĩAW 2I:F 32ʠq:6S]K"g[ ϑHB5VEqLJX{CB!PIq9Llxʪ7>֤]@!@9H!pə$ ?)܎l/"́+@`}}:\ 8zQgS+򒤿C}R:HUF\Xg/AZ%c1wlETwX ZNhyf2D ø&vLq47z\iJyJ-kN3 -sJ5)V0N0d\ӛd0d-E[mf\UmxCR<(`ѕp4^!hQ `!l ~ƙ:JɠlW9˸ZXB=l)`jeVJUG!s1?Ƽ3Ê.}bIa6ʕ t?SxZJ'p i,.R2T`5-R BxrWH JPe#Bb|-[PEh‹(5Sfr/]IƊ dE#OS39ӻ]eۮɹ.9_beM9b#e(- 0Ra9"U,%~X܀z۽{'6[@t[W%* .d'vR {h!AedCE}x=E[|B$7J* B- ,=k7[_-I J5e̶{ ( ;WMw`~pAz 8f))(@ Īم<.a%N n@bz>%T*?lgbd<ĵw9Na8;<^*%y:tDҕZ<@0q4l\ 1`/$IJ ғsN);:A;)$ו Wwy%KrIv\bV\nd{6tv/~*O 7U>8rAC<jE-j牷xs)D1Ì/qp**̸$ّ,  Bȼpk MhpK7U]h&-$鎻Y;q6wzW˄֭AhD^R"s5fw +Q&/9ȂwNbz{Y> ]NEc,ߞ# BF:0/-EȾŒ׃F\I{tAZCORuk i)ytkdN&vA P{P'>xƆ`.%,;:Կ:aFoTQ}v#ףQk's~z5hMQʒY>CʍiUNF#J0uC8k! fv {E/IKIE> pyde ʾ=z:@7J|5g8x 3O 3H1؄F.yfzWIM j[.w%i?҆Uf|}@+[8k7CxSEOޯp$Q+:<]K3T-y[Nz;y-HZY^.M*'h8A.N2rLB 7:Or}CS˚S9Jq#WI}*8D!# g#Y>8` В ?a2H,^'?^nhOƒi<Ya2+6aFaMG-Gkè1TbL `*ـVX *xe§֊Z*c`VSbJU*6TK@zqPhg*ߔU(QU49L cM*TR!R,BȅE*C|TzpF@4*텰جXbL.T2y`Upb T,%@` #?@tGLŞS)ÿztϲFy׎ 14Lhfe(.)pK@\ Xe@TbvhD&0-IbD d@ZD1@ DyѧCN| 94Ӛ#Nc l;, `cX@(2$0 "@- $B@<$А8p7C b(@ PA@F 0tGORIJITySMW52\ToRKV0Ȏ( -$ !6wHGO r~e~/]V~/P~7SzKFv`;`9v# JBN,ӭ'`'`\LTApBs)r! ( i` pFFTMm*GDEFD OS/2gk8`cmapڭrcvt ( gaspglyf}]oheadM/6hhea D$hmtx `tlocao0maxpj name,post5 webfTPT=vuvs Z 2UKWN@ { , h, h@( + / _ "#%&&' ' )9IY`iy )9FIYiy !'9IY` * / _ "#%&&' ' 0@P`bp 0@HP`p !#0@P`fbߵiY!     |vpjdc]WQKED 5 *+  / / _ _  ""##%%&&&&' ' '' !& )009:@IDPYN``XbiYpyaku } )09@FHIPY`ipy !!#'09@IPY `` ((h ./<2<2/<2<23!%3#(@ (ddLL[27>32+&/#"&/.=/&6?#"&'&546?>;'.?654676X& j  j )"& j  j )L j )"& j  j )"& j LL#32!2#!+"&5!"&=463!46^^L^^p@LE32!2+!2++"&=!"&?>;5!"&?>;&'&6;22?69  x } x }  x } x v L   d    d  l d;2#4.#"!!!!32>53#"'.'#7367#73>76p<#4@9+820{dd 09B49@4#bkv$B dpd>uhi-K0! .O2d22dJtB+"0J+ku0wd/5dW%{L>G!2+!2++"&=!"&?>;5!"&?>;4632654&#^CjB0  0BjC x  x u x u@--@$?2O*$ $*P2@%d    d   BVT@L!2#!"&=46 %A+32!546;5467.=#"&=!54&'.467>=2cQQc22cQQc2A7 7AA7 7Ad[##[[##[dd76!' Pԇ $ op zy#%**%$ pdL #7!2"'&6&546 6'&4#!"&7622?62~   \l lL 7  &   l 2'7' & c_"fn &\`tfjpO32!546;! 22&&L%6.676.67646p'0SFO$WOHBXAO$WOHB"7Q)mr *`)nq&* )2"'#'".4>"2>4&ȶNN;)wdNNrVVVVNdy%:MNȶ[VVVdXD>.54>0{xuX6Cy>>xC8ZvxyDH-Sv@9yUUy9@vS-H^{62!2'%&7%&63 a o  ^{"62!2'%&7%&63#7'7#'JJN a o  d⋌&2##!"&=467%>="&=46X|>& f   f &>|.hK  ]  ]  Kh.| L#'+/37GKOSW!2#!"&54635)"3!2654&33535!3535!35!"3!2654&35!3535!35~  Ud  & sdd dd d  & d dd dL   ddd  ^ ddddddddddd  ^ dddddddddLL/?!2#!"&546)2#!"&546!2#!"&546)2#!"&5462pmppmpLpppp LL/?O_o32+"&=46!32+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=462LppL/?O_32+"&=46)2#!"&=4632+"&=46)2#!"&=4632+"&=46)2#!"&=462DDDLpp&,  62"'&4?622;;nnBB# "' "/&47 &4?62 62    ;    %I2"'#".4>"2>4&3232++"&=#"&=46;546ijMN,mwbMMoXXXX K  K K  KMbyl+MMijMXXX# K K  K K %52"'#".4>"2>4&!2#!"&=46ijMN,mwbMMoXXXXX^  Mbyl+MMijMXXX  -32+"&5465".5472>54&&dd[֛[ҧg|rr|p>ٸu֛[[u'>7xtrrtxd/?32+"&54632+"&54632+"&54632+"&=46  ޖ  ޖ  ޖ    ~ p     >     GO27'#"/&/&'7'&/&54?6?'6776?6"264X!)&1-=+PP08,2&+!)&1-<,P  P/:-1&+x~~~P09,1&+"(&1,=,QQ09-0&* !(&0-=,P~~~d!%)-1!2!2!5463!546!5#!"&53333333,);  ;),,;)D);dddddddd;)d KK d);ddd);;) dDDDD 62++"&5!+"&5#"&l`    j`  w  ? d3!#!"&5463#"&=X;),Rp);vLp02".4>"2>4&3232+"&546֛[[֛[[rrrr|2   [֛[[֛;rrr   2  ^  )#!3333))p,p,d/3232"'&6;4632#!"&546;2!546& & T2   2 >p  ^  12".4>"2>4&3232"'&6;46֛[[֛[[rrrr|  & [֛[[֛;rrr   12".4>"2>4&%++"&5#"&762֛[[֛[[rrrr   &[֛[[֛;rrr  9!2#!"&'&547>!";2;26?>;26'.    W & & W tW    >     '2".4>"2>4&&546֛[[֛[[rrrr[֛[[֛;rrr] $  (76#!"&?&#"2>53".4>32  mtrrr[֛[[u$  Lrrrtu֛[[֛[576#!"&?&#"#4>323#"'&5463!232>  ntr[u[u  h ntr$  Krtu֛[u֛[v h  Lr d/?O_o!2#!"&546!"3!2654&32+"&=463!2#!"&=4632+"&=463!2#!"&=4632+"&=463!2#!"&=4632+"&=463!2#!"&=46}    R 2  2   > 2  2   > 2  2   > 2  2   >   ~   R d 2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2 L#54&#!"#"3!2654&#!546;2uSRvd);;));;) SuvR;));;)X);dLL 732#462#".'.#"#"'&5>763276}2 d!C@1?*'),GUKx;(.9)-EgPL 3 0[;P$ 97W W!1A2+"&54. +"&54>32+"&546!32+"&546ޣc 2  2 c*  `  ct  ,rr  ,tޣ 4  4  G9%6'%&+"&546;2762"/"/&4?'&4?62A   Xx"xx"xx"ww".   ^ x"xx"ww"xx"r/%6'%&+"&546;2%3"/.7654'&6?6A    `Z  HN.   ^ d  g~jb1K3#"/.7654&'&6?6%6'%&+"&546;2%3"/.7654'&6?6 D@  *o;7 *    `Z  HN iT "ZG !   ^ d  g~j  !%-;?CGKO3#!#!#3!##5!!!!#53#533!3533##5#535#5!!#53#53#53!5!ddpddX,,ddddD dddd,D,ddddd dd,dddX d,,d,,ddd dddddd,dddddd  #7#3#3#3#3#3!5!#53#53#53ddddddd,,dddd,Pdd[[[[[   "'463&"260V C;S;;S;V0 ;;T;;  ! "'463!"/ &"260V 08D;S;;S;V0 V08;;T;;d&!2&54&#!"3!2#!"&54?6,9K@  D@   K|@  @  J  L !2 46 >>CEU!"3!26?6'.#"#!"&/.+";26=463!2;2654&!"3!26/.6D N9  >SV N N      & X & l l- p  v       dL!)13232#!"&546;>35"264$2"&48]4$);;));;) '3]dϾV<?!(% _5,Ry:" *28 T2*BBW-ޑY". BB % Zd'2;#!5>54.'52%32654.+32654&+50;*7Xml0 ); !9uc>--Ni*S>vPR}^3:R.CuN7Y3(;  G)IsC3[:+ 1aJ);4ePZo!56764.'&'5mSB ,J   95(1(aaR@ 9%/#4.+!52>5#"#!#3'3#72 &2p"& 2KK}}KK} dd R ,১ !%/#4.+!52>5#"#!5!'7!5L2 &2p"& 2C১  vdd  ,}KK}}KKL/?!2#!"&=46!2#!"&=46!2#!"&=46!2#!"&=462X LLddddddddL/?!2#!"&=46!2#!"&=46!2#!"&=46!2#!"&=46DLDLLddddddddL/?5463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&Xp LddddddddL/?!2#!"&=46!2#!"&=46!2#!"&=46!2#!"&=462LLLLLddddddddL/?O_o32+"&=46)2#!"&=4632+"&=46)2#!"&=4632+"&=46)2#!"&=4632+"&=46)2#!"&=462ddA ddA ddA ddA LddddddddddddddddL#*:J!#;2+"&=46!2#!"&=465#535!2#!"&=46!2#!"&=46dddd ,XLdddd}KdKddddL#*:J32+"&=46#3!2#!"&=463#'7!2#!"&=46!2#!"&=462ddgdd /ȧ,XLddLdddK}}dddd!2#!"&546 K,,,,,,v,,,D,,L!2#!"&5467'2"&4,XJ*J%pNNpNL d>tNoOOo62.'&54>"264usFE66 !^Xm)!fhHuXyHÂ2".4>"֛[[֛[[Ktrr[֛[[֛oVrru5.54>6?6&'.'&76#&*IOWN>%3Vp}?T|J$?LWPI)(!1 )  HuwsuEG^F&:cYEvsxv!K:%A'# " A)Y l */7>%!2!"3!26=7#!"&546 7l l27);;));Ȼp87cs* s ;) );;)2cL6!#"3!2657#!"&546&'5&>75>^i4);;));ȹpS 9dTX .9I@F* L6;) );;)g  0!;bA4 L5!2!"3!26=7#!"&546 62"/&4?622^^  Ȫ   ȯ  ȭ   ȭ   L326'+"&546d0dLJJL#3266''+"&5462d00dLJJJJ3''&47660J*J36 &546.2   d32+"&546!32+"&546  dL#!"&5463!2L  346&5&5460d * ;O#72#"&5&5&5464646dd12N: 9  > =,L32+"&5&54646Rdd0L;;dH  #!"&762!2#!"&=46  *9HdduJ  u`((&;(J ' 7(a#aa32".4>#"#";;26=326=4&+54&֛[[֛[[}dd[֛[[֛dd2".4>!"3!26=4&֛[[֛[[E [֛[[֛~dd32".4>"'&"2?2?64/764/֛[[֛[[ xx  xx  xx  xx [֛[[֛ xx  xx  xx  xx  $2".4>'&"2764/&"֛[[֛[[Tw[֛[[֛1Uw;K2".4>";7>32";2>54.#";26=4&֛[[֛[[?2".4>#";26=4&#";#"3!26=4&+4&֛[[֛[[    KK  ^  K[֛[[֛V   2  2  2  /_3232++"&=.'#"&=46;>7546+"&=32+546;2>7#"&=46;. g  g g  g Df  fD Df  f g g  g g ͨ  fD Df  fD Df?2".4>"2>4&"/"/&4?'&4?62762֛[[֛[[rrrr@||@||@||@||[֛[[֛;rrrZ@||@||@||@||02".4>"2>4&"/&4?62762֛[[֛[[rrrrjjO[֛[[֛;rrr}jjO!2".4>"&32>54֛[[֛[[KtrAKihstr[֛[[֛;rtxiKA>rtsS6!2#!'&4' &F   &S &5!"&=463!46 &U & U ## ] #!+"&5!"&762   && ]32!2"'&63!46&# U & U # &] &5>746 ^$,[~UU & U #$DuMiqF +!2/"/&4?'&6!"&546762R,^j^!^j^^j^P,^j^IIgg+#!"&546762!2/"/&4?'&6j^^ ,^j^`j^,^^j^/2".4>#";2676&#";26=4&֛[[֛[[:#6#:1  [֛[[֛.   IUaho276?67632;2+"!#!54&+"&=46;2654?67>;26/.'&;26!"&5)#!  &0  =  2 pp 2  =   353  X  v  v !{,  2  ,ԯ  2 0y    r w  +I6.'&&&547>7>'.>7>&67>7>7>-BlabD8=3*U  :1'Ra\{%&=>8\tYR-!q[Fak[)ȕX1 "@&J<7_?3J5%#/D &/q!!6ROg58<'([@1%@_U2]rO.>7'&767>.'&'.'&>77>.'&>' '8GB    `H  >JS>H7 '+" NA 5M[`/Pg!;('2"&"IbYCe\D9$ 886#1%)*J7gG:    8G\au9hoK$]54<&"&5476&2>76&'&6?6&'&'.{nO9:On{{nO:9On{FZ  2Z__Z2  Z# %8-#,- "F-I\b\I*I\b\I--I\b\I*I\b\I9>||;7Es1$F^D10E^E$1u$/D0 "%,I';L!#7.54>327377>76&'&%7.5476&6?'&'.P[vY,9On{R=A &/l'PjR.Mv&  6QFZ  *HLh5)k|# %8- ,- "xatzbI\b\I-yRU4Zrnc1?1FrEs11) ]@ @] )1ES>L'+/37;?CGKOSW[_c3232!546;546;2!546#!"&5353353353353353533533533533535335335335335Rd22ddddddddddd|ddddddddd|ddddddddd2222pddddddddddddddddddddddddddddddw%7&=#!"&=46;3546'#"&=463!&=#'73546oXz#z*dXzdM*zL!2#!#"&546d);;)d);;L;));,;)X);dL ?32!546!32!546".5!2>&54=(LffL(, '6B6'p)IjV\>((>\VjI), +'%! !%'*L 'L'a'M 7 Maa'aQd_)!232"/&6;!%+!!"&5#"&?62**p&032!2#!!2+"&=!"&=#"&/#"&468^&d,!02**6%%+*2222 *L !53463!2!!P;),);DPdd);;)L 3463!2!!;),*:,P, pX);;)dDEk+32"/&6;#"&?62{**YDk&=!/&4?6!546X`)  )   !.#!"!"3!26=4&53353$`$-);;));;ddd-(d;)d);;)d);dddddL #12"&54%##"+"&'=454>;%".=4>7i**d]&/T7 " LRQ  )2( Jf,53232#"./.46;7>7'&6327"&)^Sz?vdjO9t\U>/ v?zS$2451 7F8%M)(  ()GM~ 1==7'''7'7'7'77 N괴N--N괴N-N--N괴N--N괴d!-=32!2+"&/#"&54?>335!7532+"&5462(<H(<,F=-7` 1dd>2vddQ,}Q,d-!2$'$(ddw} L 0<32#!+"&/&546;632+"&546!#35'!5X,<(<(21 `7-=|dd_dd22L!-d,Qv,Q($'$dd dԯ}wdO7G%6!2+#!"&5467!>;26&#!*.'&?'32+"&546dkn  T.TlnTj:d%8   VOddip &yLN(  % H YS(22S dO6F#!"&'#"&463!'&6?6*#!32!7%32+"&546n jUmlT.U  nJ   %&jPddO (SNLy& pd(Y aL7G2#!"&/&?>454&/!7%.!2#!"&=46ސNS( % p &y22SY( nTjkn  T.T8   Vd% dd-I!26=4&#!""&5&/&7>3!2766=467%'^ NLy& p  (S22(SYLddjTnlT.T  nk V   8%d%2".4>%&!"3!7%64֛[[֛[[  [֛[[֛9   &%2".4> 6=!26=4&#!54&֛[[֛[[%  [֛[[֛ &   %2".4>&";;265326֛[[֛[[K &   [֛[[֛@  %2".4>#"#"276&+4&֛[[֛[[  & [֛[[֛  2".4>%&277>7.'.'"'&65.'6.'&767>'&>7>7&72267.'4>&'?6.'.'>72>՛\\՛\\d+: =?1 " "/ ?9 #hu!$ 0 E.(,3)  (     *!A 7 ,8 !?*  \՛\\՛  ' "r"v G  .&* r$>   #1    %  *  '"  $  g2( % 67'"/&47&6PM<;+oX"O\e~Y+" n+We`#'7;!2#!"&=46#3!2#!"&=46!!!2#!"&=46!!d);;));;);;));; );;));;,;)d);;)d);dd;)d);;)d);dd;)d);;)d);dddL !2#!"&46!|;**Dd%32!2!5#!463!54635#!"&=);,); ;),;);));;)d;)pdd);d);dddD);;)+AW!2"/&546)2/"/&4?'&6#!"&54676276#!"&?'&4?622,^j^5,^j^/j^^^^j^j^,^j^&j^,^^^j#;CK2".4>"2>4&$2"&4$2#"'"&546?&542"&4$2"&4ݟ__ݠ^^oooo-- - L- 73H3)z - - - - _ݠ^^ݟWooo -!!- -! $33$ 1~ - - - -Z[%676&'&#"3276'.#"&477>32#"&'&6767632'."[v_"A0?! -  Y7J3$$ )G"#A.,= # (wnkV8@Fv"0DG([kPHNg8B*[eb2!5(7>B3$$' )M"#!7)/c# *xnfL@9NDH7!$W]B$&dXDD>.54>"".#"2>767>54&0{xuX6Cy>>xC8Zvxy#!?2-*!')-?"CoA23:+1! "3)@ +)?jDH-Sv@9yUUy9@vS-H-&65&&56&oM8J41<*.0(@  )*D*2Om9w.2&/7'/&477"/&4?BB8"._{iBBi BBBBBB7._BB^*k"5._{jBBFi BBBBBB77/_2#!"&54>!"264d:;));XV==V=.2G);;)3-D=V==V "/''!'&462*$3, #**#4$*' 2@K#.'#5&'.'3'.54>75>4.&ER<, 3'@" MOW(kVMbO/9X6FpH*M6&+  4C4%dfJ2#4.#"3#>36327#".'>7>'#53&'.>761T^'<;%T)-6"b "S5268 jt&'V7  0 $ݦ -$aPN(?",9J0* d2>2 ""   7Gd/9+DAL!X32"/&6;3+##"&?62*Ȗ*,|%#5##!32"/&6;3353!57#5!ddd,*dc,dd|ddd!%32"/&6;33!57#5!#5##!35*X,ddd,d,ddPdddL32"/&6;3##53#5#!35*Xdddd,d, dPddL32"/&6;3#5#!35##53*d,ddd, ddd32"/&6;3#53!5!!5!!5!*d,dpd , 32"/&6;3!5!!5!!5!#53* dpd,d, LL!2#!"&546!"3!2654&^pg );;));;Lp;) );;));LL+!2#!"&546!"3!2654&&546^pd );;));;oLp;) );;)); $  LL+!2#!"&546!"3!2654&!2"/&6^pg );;));; $ Lp;) );;));LL+!2#!"&546!"3!2654&#!"&?62^pg );;));; p $Lp;) );;));L5!2#!"&=463!2654&#!"&=46&=#"&=46;546&p);;)>DLpd;));d&  #%2"+'&7>?!"'&766763 ,  P'' K    S#  nnV/L5!2#!"3!2#!"&546&=#"&=46;546^>);;)pDLd;) );d&  1!2/"/&47'&6#"3!26=7#!"&5463!m)8m);;));Ȼp,pm)8m;) );;)֥#2".4>"2>4&2"&4ٝ]]ٝ]]qqqq{rrr]ٝ]]ٝGqqqsrrrL#3232"'&6;46!2!54635 ' gdV^|d22L# ++"&=#"&7>!2!54635Gz " 'gdM !d22LK" 62"'&4?62!2!54635qgdq#d22L #'762'&476#"&?'7!2!54635*MMК=gdML*Л:d22L#'/'7'&6"/&4?!2!54635^WЛԛL*MgdКԚPM*MXd22% ! q3gqdL+!#"&546;!3#53LDdddp,E/'&"!#"&546;!3#53"/&4?6262L_  Ȗdddj\jO)_ p,j[jO) >'.!#"&546;!3#53"/"/&4?'&4?62762Lg%dddFF))FF))gp,F))FF))F/!"!#"&546;!3#533232"/&6;546L dddd*p,/'&"!#"&546;!3#53++"&=#"&?62L*ndddd*pp,L !2!546#!"&5!52LPdL&}-1;&=!5!546#"&=46;#5376!!/&4#5;2+p/22ddpddd33*ȖdȖ*yddQ%6+"&5.546%2+"&5.54>323<>3234>^%"% "  d d 1t5gD >?1) A..@  ^  ^ dL3"!5265!3!52>54&/5!"!4"2pK Kp"2KKL8 88 %v% 88 x88 %v% 8LL  $(4!2#5'!7!!2#!"&546!55%!5#!!'!73wipdw%,);;));;),p,ddibbd;) );;));dfdd&767>".'.7.wfw3 .1LOefx;JwF2 1vev/ 5Cc;J|sU@L#A2/.=& &=>2#!"&=46754>ud?,  1;ftpR&mm&L!((" """" '$+  222/2 ! '!'3353353!2+!7#"&46!2!546L J LP*dd*22dL #"!4&#"!4&!46;2d);,;gd);,;;)d);L;));;)D););;)L%)!2#!"&546!#3!535#!#33||D| ,dddL| |||Dddd,ddd,L%)!2#!"&546!#5##3353#33||D| dddddddddL| |||Dddd,L#!2#!"&546!#3!!#3!!||D| ,,L| |||DdddL!2#!"&546!- ||D| ,L| |||D ,L )!2#!"&546!!!#";32654&#||D|dDd&96) )69&L| |||DdVAAT,TAAVL%)!2#!"&546!#3!535#!##53#53||D| ,ddddL| |||Dddd, d dL#'!2#!"&546!3!3##5335#53||D|DdXddd,ddL| |||Dp ddL"&!2#!"&546!#575#5!##53#53||D| d,ddddL| |||Dp2Ȗd d d %2".4>"2>4&!!!'57!۞^^۞^^qqqql,dd,^۞^^۞Lqqqddd '+2".4>"2>4&#'##!35۞^^۞^^qqqql2dddd,^۞^^۞Lqqqd2d2dddddA 62632+54&#!"#"&5467&54>3232"/&6;46n,,.xxPpVAbz  & AwasOEkdb  A32632&"#"&5467&54>++"&5#"&76762n,+.yxZ % OqVAb   AwaxchsOEkdc  dLm%5!33 33!#"!54&#Ԫ2dd,,Md22y7/2#"'2!54635#"&547.546324&546X^Y{;2 iJ7--7Ji/9iJqYZ=gJi22iJX5Jit'*BJb{"&'&7>2"3276767>/&'&"327>7>/&'&&"267"327>76&/&"327>76&/&oOOoSSoOOoS=y" $GF`   Pu "Q9   ccccVQ:   Pu "GF`   y" $ooSWWSo++oSWW"y  `FG # uP  :Q # cccc:Q # uP  $`FG # "y  d "!#5!!463!#53'353!"&5+, ?,dԢdu       d !! 463!#5##5#7!"&=)+5, ?,>dԪ |  ^G |d 77 P#3!#732!!34>3!!ddԢ!,d!s, d,+$d$+ppLL293232#!"&=46;54652#!"'74633!265#535d22s);;);)X>,>XL2dd2;));FD);>XXԢddL6=3232#!"&=46;54652#3#!"&54633!265#535d22s);!);;)X>,>XL2dd2;) $+;) );>XXԢd  #!"&762#";2676&35} ,, }@D:#6#:&77&P'L. dd LL/?O_o32+"&=4632+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=46                  L                  )33#!2!&/&63!5#5353!2+!7#"&46!2!546dd^>1B)(()B1>^dd> J LPdO7S33S7Odd|*dd*22+52#4!!2!'&63!&54!2+!%5#"&46!2!5460P9<:H)"Z" )HJLP;))%&!!&**22$.2"&432!65463!2+!7#"&46!2!546 jjj."+''+# J LPjjj9:LkkL:9r*dd*22,62"&5477'632!65463!2+!7#"&46!2!546X/[3oo"o"."+''+# J LPk6NooN>Qo 9:LkkL:9r*dd*22",!!.54>7!2+!7#"&46!2!546X,%??M<=BmJ J LP9fQ?HSTTvK~*dd*22)2!546754!2#3#3#3#!"&546/R;.6p6.d6\uSpSuu;)N\6226\N)G6.dddddSuuSSudLL/3!2#!"&546!2#!"/!"&4?!"&=46!'|  % XW & dDdL D 2  % XX %  2 dddL#-7!2#4&+"#4&+"#546!2!46+"&=!+"&= Sud;));d;));du);P;ddLuS);;));;)Su ;),); 2222  !&4762 !2!546 'YV/ |UYY(n0U22!/.#!"3!26=326!546;546;33232!'p'q*}20/222,2 "!#!5463!#5!#!"&5463!#5,  w,, v  w, O,T    dGFV32676'&7>++"&?+"'+"&?&/.=46;67'&6;6#";26=4&KjI C   )V=>8'"d 1*) "dT,| -otE  GAkI ! "% ,=?W7|&F@Je5&2WO_e_ 2  2 ~ $4<Rb%6%32!2&'&#!"&=46#";2654&'&"2647>?&/&6%?6'.'.. +jCHf7" *:>XXP* @--@- -?0 !3P/|)( )f!% =  &* x"62&CX>>X83 D-@--@ۂ # =I+E( //}X&+ 5!H d9Q`o322#+"&=#+"&=#"&=46;#"&=46;546;23546!2>574.#!2>574.#q Oh ..40:*"6-@# d   KK   d)  )k)  ) m!mJ.M-(2N-;]<* K  KK  K X K  KK  "p "),!2#!"&'.546"!7.# Vz$RR(z }VG+0 )IU!zV`3BBWwvXZ3Vz&--% ,(1#32#!"&546+"&=ۖgT)>)TH66g )TT)g6633#!"&546+"&=`T)>)TH66B)TT)g66 %'5754&>?' %5%Ndd/\^^<ǔȖ  (Abd 2"&4$2"&4$2"&4|XX|X|XX|X|XX|X X|XX|XX|XX|XX|XX|L2"&42"&42"&4|XX|XX|XX|XX|XX|XLX|XX|X|XX|X|XX|ddLL/!2#!"&=46!2#!"&=46!2#!"&=46}  J    J    J L  p  p  /3!2#!"&546!"3!2654&!2#!"&546!5^ );;)X);; G ;));;)X);d,dddL;!2+32+32+32#!"&46;5#"&46;5#"&46;5#"&46222222222222L********, *.62"&%#462"&%#46"&=32W??WW??||||||*(CBB||||԰||||ӐB76+2+"47&"+".543#"&'&676/!'.6E*  '?) T 0I' *L #3{,# n  6F82 *5#"#!#4.+3#525#"#5!2 &2p"& 2D d 2d  dd R , W 22 L 05"'./#!5"&?!##!"&=463!2E  1;E%= !'y,2 " # 22+."A2VddGJ!2#!"&546#"3!26=4&#"'&?!#"3!26=4&'"'&'#&#2LFF &  7 ? 9   9 gLR   2 2  2 2 $ #'!5!!2#!"&546)2#!"&546!PpmpG,Ld|pd,#'!2#!"&546!2#!"&546!!5!2pmpG,P| pd,dd'+!235463!23##!"&=##!"&546!2dddpdp,d ,'3#3!2#!"&546!!2#!"&546dddpG,|dpd, pdL'+32+!2#!"&5463!5#"&546;53!X|^d,Lpdpdd,'!#3!2#!"&546!!2#!"&546ddvpG,|dpd, p,0o #"&54632a5*A2~ 6'&4O**{))*2A~ !2"'&6d)***2,~o #!"&762{))*a**( 5-5!5!Lc d 1#3!35#5!34>;!5".5323!,P2 &d2"d& 2dd,dd  dd & ,L%1#4.+!52>5#"#!#3!35#5! 2 &d2p"d& 2 ,, dd & ,dd,ddfrJ32 +"'&476 0  ) J 00   >fJ32+"&7 &6S )  0 J ))   fJr"'&=46 4 ))  w  )  0f>J ' &=4762j  00  )  0  =:#463267>"&#""'./.>'&6|Vd&O "(P3G*+*3M, :I G79_7&%*>7F1 ||5KmCKG\JBktl$#?hI7 !2+&5#"&546!5X,p dddL!2%!#4675'=DXDd dQ,[u}4]ddMo__<vsvsQQ(dpEHEd{ d&ndd ddddd5d!u ,d;I]ddQEJadd9'dddd dy'dddddddd,d,A22>ff****NNNNNNNNNNNNNN"~Fn2b\r bb 6 ( L 0  X * ^ h(T*v 8|t*<6`R.j(h6h^2Dl.vb F !2!v!"@""##"#8#z##$$0$^$$%4%`%&&~&'P''(4(p())*&*J*+ +z,,h,,---.(.f..//F/~//0>0011`112$2^223"3>3h344`445,556>6|677N7788B889 9J99::l::;;<:>>?(?n??@H@@AA~BBBCCBCvCCDD`DDEZEFFtFFG6GvGGHH2HNHjHHII8I^IIJJ.JR@. j (|  L 8 x6 6   $ $4 $X | 0 www.glyphicons.comCopyright 2014 by Jan Kovarik. All rights reserved.GLYPHICONS HalflingsRegular1.009;UKWN;GLYPHICONSHalflings-RegularGLYPHICONS Halflings RegularVersion 1.009;PS 001.009;hotconv 1.0.70;makeotf.lib2.5.58329GLYPHICONSHalflings-RegularJan KovarikJan Kovarikwww.glyphicons.comwww.glyphicons.comwww.glyphicons.comWebfont 1.0Wed Oct 29 06:36:07 2014Font Squirrel2       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     glyph1glyph2uni00A0uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni202Funi205FEurouni20BDuni231Buni25FCuni2601uni26FAuni2709uni270FuniE001uniE002uniE003uniE005uniE006uniE007uniE008uniE009uniE010uniE011uniE012uniE013uniE014uniE015uniE016uniE017uniE018uniE019uniE020uniE021uniE022uniE023uniE024uniE025uniE026uniE027uniE028uniE029uniE030uniE031uniE032uniE033uniE034uniE035uniE036uniE037uniE038uniE039uniE040uniE041uniE042uniE043uniE044uniE045uniE046uniE047uniE048uniE049uniE050uniE051uniE052uniE053uniE054uniE055uniE056uniE057uniE058uniE059uniE060uniE062uniE063uniE064uniE065uniE066uniE067uniE068uniE069uniE070uniE071uniE072uniE073uniE074uniE075uniE076uniE077uniE078uniE079uniE080uniE081uniE082uniE083uniE084uniE085uniE086uniE087uniE088uniE089uniE090uniE091uniE092uniE093uniE094uniE095uniE096uniE097uniE101uniE102uniE103uniE104uniE105uniE106uniE107uniE108uniE109uniE110uniE111uniE112uniE113uniE114uniE115uniE116uniE117uniE118uniE119uniE120uniE121uniE122uniE123uniE124uniE125uniE126uniE127uniE128uniE129uniE130uniE131uniE132uniE133uniE134uniE135uniE136uniE137uniE138uniE139uniE140uniE141uniE142uniE143uniE144uniE145uniE146uniE148uniE149uniE150uniE151uniE152uniE153uniE154uniE155uniE156uniE157uniE158uniE159uniE160uniE161uniE162uniE163uniE164uniE165uniE166uniE167uniE168uniE169uniE170uniE171uniE172uniE173uniE174uniE175uniE176uniE177uniE178uniE179uniE180uniE181uniE182uniE183uniE184uniE185uniE186uniE187uniE188uniE189uniE190uniE191uniE192uniE193uniE194uniE195uniE197uniE198uniE199uniE200uniE201uniE202uniE203uniE204uniE205uniE206uniE209uniE210uniE211uniE212uniE213uniE214uniE215uniE216uniE218uniE219uniE221uniE223uniE224uniE225uniE226uniE227uniE230uniE231uniE232uniE233uniE234uniE235uniE236uniE237uniE238uniE239uniE240uniE241uniE242uniE243uniE244uniE245uniE246uniE247uniE248uniE249uniE250uniE251uniE252uniE253uniE254uniE255uniE256uniE257uniE258uniE259uniE260uniF8FFu1F511u1F6AATPwOFF[\FFTMXm*GDEFt DOS/2E`gkcmaprڭcvt (gaspglyfM}]oheadQ46M/hheaQ$ DhmtxROt `locaS`'0omaxpU jnameU,postWH- Ѻ5webf[xTP=vuvsxc`d``b `b`d`d,`HJxc`fft! B3.a0b ?@u" @aF$% 1 x?hSAiSm߽44,qPK q XE](2 .ԩ] "ED i]DԡZJ\8wwV"FpUԯ.Χ(gK4O n;NR{g`'!PMUHEՠJʫ*Yq9c<U9!QIYׅ-KC+ դU)Q94JYp]Nq9.qyVV n)9[{vVכ־FWb++{>׍a|*gQ,K<'W@Ex̢D&Ud# & x Mx2c 5*.lN/h]GtT(xŽ |յ0>wm#Ye[%Y-YR'rYjD% ,@BKZjHڤ@b-R+nhK~룼$;h^fܹsn{ι ˴0 kb8Fd:%Lה"1AՔ AY>,ؔ#pZ4؟5made ?Ȝy=I:C D(nIxL .1!P'JDtHj@L4Ph' )b)vHX,f1c\'cGu>1 ~t?!xT_q?qBF#L%Dћ"?Yǯj??8>NSkemAYDb4 J);@jP$ 'qh8`;aX6CF*dYc"'?hLV㗌,>ce3eVh =C~xC\((qb@ 4xK&hׁ 4\2DZ6N1|-;j Yu@jѫxi䊧mK ٍDEwq3̷.cAw@4t.gkgr{~Wl~{lW2} 276a2\6oz@$HSH gbtX70Ktc1,7B oLƏ66[,%iZ ,l>TpKSGg\> #A#3Eyk6v;u3!ZI8Mk?8CWq{`C*h>H1_skh)ojOO' !~dXgB(0< kOYxeƧĭ5k =d ϧ> +tC-o Ǫ/_koܶs+fOztpu7-}d9 se \9.H4!0S\ ʱk2"?ip7\2zlްt=W\!KyOXimUnov 6: 2 LZkAA^qCޔ &PaFI0>&Q #FQl> A·q*OȦ_@27l,sf 6p7ܩ?M1vA2]$j";vlk~va0gjzRD:gc6yw%g(þ#'uB#=_@?>FVb0a!aL4tXv:Fh9j^xތz}Wn}7}jΚiHitKSaXEEbbBQ1ftxFȮ -"dqA\~F`6i䁕+ Ԣ^Ȳ}ש׆k&Ĺ<- \;g1>w00v^x 7l#Ot^5+xe.^]׼G8^ m(t1 sbfJ %<4H@e8C,5<(kc5YIA]|ךl6+=HVcbKՋB6i4 #_|&>NvQk#pW=u7HɰR$ [5싙 g %19}&@$&l=1RI}9#ςz??1z&ı_ac|PI[:u;l->k4GYm|Zw }HnR=-B ~m.ِ .Mz^,0%8EG**|sg|ozO֬0sz.WN^ yHk<v3t{8-|' ea~H94xA-@y bT4@0b#]DDljDSio:AgSP z:;-|yH"r {B{\5RLi6AAtM]taRKC!1CgC샂 +1EG!Xzٛnzv@x-#i^x*$)W=O\f[WX~V? `Lei::v4$?=Ra#c]8YFJb&'{%LCE Cf]^$/fߪM;À; 6CXV#X~ F< :vCcyBpLv1Fv#9 /8VF01_K?x>}#G7т\Wp!.@bwɡ+{o#ԍPQҮnī66 cZD(. u;nM}?vtxF{+` ="rPπlDV̶?Z@H䰅][35%O )\^ Z;>Ftf-IzӮ yu1uo<:oa:uqwykk ⋜}0?jvX+}VG$s ?26YI5c$Cfb!X*|F^$p7p55߶6[mjgl>* KO& 8ܝ:ǰokKm~oS-*4E}P/% k:e"1AJCAX8= LŢ>ܱav{|K.3 :\Bxwbeb>1ۿvH?f58 %6$ɲ'pL^HXbpIVqnA8Kg'i!UzSEI5N=hpV?(E Vr?޴7Vڋɿ.O;p 4NRZm.O> MuL'j5`;MtAQܶMyV<` $m)yڳXDa:݁q1JFq15-l\3~X-2pFDe/f!2i:=h{%{t^ *PBͽ]YD3jd *w|GLϽ}ˑk7Ç=06oz*zo1~Jw00SePw%#@BJB %+ ';%!& )Hq 7fqH.!Eǎf,9՚$9 H{~i Z)O|!"D.KQ a2 %2Wɂ\{*B{7,9.'ew U^W&$r9rcGBwll<ʷSQゅh! iѨvJ :Y?#_m4q[ },EA{VПP|Dg?9MId?{)/ /\[ Jҏ[f4G>QK^ m O -7w]„<U3jƏ,:Yq~0/mŵ@CCFq{,Θ쬷ΘQSo lsɿh?A2q`5Z&*X1L5:6ς+O]uej%?ۼ&aW?{2[}W?JbΙk-\b7sIkf&Λfx~nO-9V ~cW"ȗy)b\)2MrWf;MU7'[-c/.ؾuMl&.9) G!!W* 60Cф#qrqOKZOWq,8́/XpTȑg<>¤)[J8o` ;S\S%h~p|J˾F~K=E0NQX*8;D7Q1QC% *Eyy} UG?>I`>'6<+3IVgϮyOQ$WBvH v[Ϗ 2+ 'ø6N߆<ɕ 2S娚9X1\┣df>B~-t>W]pPrZ['+ƌl9]8qC!' @AAOuШ !?M\JMͭfǞ)ߕ=w?AN>¼}jQ<ǏpǠ^(}1+2q F4RiHďITr8^!gm>'ڸhE`s̊ol!(9~ o%#)~ƃj$@ՔLpGOa{߿fé)zؔY<~^cs潺ݴNRURTY%8Ks3qd]^QTb' zx)HFҩPmUZjQ&XƁo<0jYGz]$8c&hyݼwΞ{9^sf߹m[vӣ!(ZAsۧyB8RiԣBg6{UmtyW!bpǮd n/ŷʼ@v/%cxEn:4Y²,yZ-krcH&^ȩC'Ȯ'^T5r)((IJU&#݌! +YM.JEX^|Lw@ھZsgY洺\xԟxyLCyo?eV"_[Q/5Y|qI/\9diEBh$v wOL fpa ,?HgHf2RbL v >USo^1/,ēvcYGmŨ~Amz ?/40yj̸pk2H eERb/"M 75ul[drC&Y͐&I `!>p;J-b--.VM4>Fj/5σt5}>C*<'d?,cdGf2ҁ0w6Lh"fKζp;ǿ϶Pdc1EOi%Ř(DCWV2I)TiMFTz0U S7V mBW6;nYZUzSTg>(hF"޽T뽷R]L۶|Lx[s,'NU|E<4)Rp*vU#g*gjə*=~܃ASēA JHw3@NurbwȀʌx}[`7ZtPlh L.)NU}kq'vFQr׷{ˤS]ZL(@*Sf^+uPe_k#.8ɂ%ՠ,@TKх t`ߑXAD;b|pA7}q2 @Y`~iԬK0jY( R~^ҧ8>=F"˜A[DqvQCX|ZsO \/f.F;kPbdz7ԐeͶ-6bybaWjnh7YLF!4wssFCnh_0> MZ nC *#5/OUN\(3o@[7`Mg8xge;f\y|f֤ޑ]i5q5q&>'353kYꭑ=W7+΋yxIeOYǏs(p6[B/t爁*̠-n: <Ц) +ް~q_}oxt>LV FG@d9[2?2ȳ8笞={fgcsCmre#E>45qo:JX^ioP,xf:/yn9VѥS7=u-\%KϦUv,ⳀZ=vkN*+_.ڊ֞iڃ=w @lmr>Oo,VԲɝz &:'45!9pI 0@I[PU""sInvR>A9t$3/|k8yiE c8E!Q\ۂ} %Af4s*A8A΀>D=5uwjnG z?2Q/I=fH4n]澀YmG"2PEHfvZn<šPiA_q/PDտ $$~%NyhrOdM\-m(@\#ƼNJO>a+ uJ*(%¢FPJW,$))} B\_wV] 0TOCÊQ}5{Ho*;;葞rǨMc54S : M7(kY:z`gp Jstˉv'eG^~iD16dA @'N ֭N.?f…1bzJD V o@7R@6<%IF0mj= [}Nۊ57pyv4@<mЭ9Tp?R70қQG[jzib~/)wC? רa-/Cn.ĕH j63pKrhXIƎj o19 f\~:-ѓK47BY̆y%DC~em@]%rs4T G-Ug>HOpVB]{9&^6|m _PLLI7ǒi "'T }? 4|[Fǭtu/_y;Z?HK0Wzc#)~.rĥ+B&JG0[.ΡrOk;VCoX K۝S߳rt:zX\xmJhxNh5 K`;ydp.Ec4XD<-llip.^p: u/.Y[rl_4kz$~Dq]7/T_<菵4K$Ɩ &w S7|K^7MsMGhw㢴0]?fja5aiЦ6C2no• f=)d^v qNcԎl=u]?;f-E~nv}5%Oջd덿=Z%v  nKu ̓*J#1hu1Hr o}SZu=w;nϗU `FȶEn?߫k&l9YdgA8NSGD09MAK{ހK3݊[_]%W4zۈu9\~n3~zir X3k`Psn=m]ԃJksT9deYN`}/]U#b;Rt,lh*#JB+ (iGx\}~IֳFv@Tu֭J @-LwzYgw`wx-(d٢]F3_XcYmQԃWb-F K5d-0b球—֨T+_Zxcj*`}|x~LF*S*oMتAT1p71?R t>R'"Ey)oP7%$rv QeE+nzlVlFrkt''?R'ZCEIKy ga0^}pE;Kq{T/?i"%1ޒb-Ծqƛ˵+ 8]rIڣV{dȪ͜\AQvOS]0.NX9svb?OE~FPU}o[YKrA̓U%7Dw q b/h AhPbQؓJB8I ?I%=XtO;(PhLd S 'hݱ>|TV?,O"\`7.2>D fmg;-C'u, zA`-ټ$x vck2[xp\cbl΀ihsivaÛM,gĨlMz7JvˑVRWϋNo4(-XB^Cl&Vnnn D4[k6N&}f3YQw@$U$(Ǫo:-ZG#&/} ?N}ƥ7A!MhW>?iXprA١b?uϱι-h6;SB#/@ѿJ !%Q)Dq:{JI^ޑˡPY7UG(h?HmъvREH=N`P)QG9FMSMG@2E$Q $s~TkN"9Ն8cF^"?+G٠ ^*gUlFVxUpoC.XCƵ׵͉qK[k[K(l; ӡn%^Rj,$) 1n.G:Cf(,;ĴR—F_~^;իD;6|/jGGSSGGӎļDzbR/X?Up14u$`[ߜH477I~~Irߙs#6+heW6@wK̸h6, 1C"=meA =@z sls];kklr^"s青>&Մ-[{JiҴ9[ݵȩ-]dޢc An۹g}ꒇ6hTɖ?3s^kLcY 1Zn[bݴE߆դwk3f> fMDՠaD ~}&@5u gnOȢ<'` &bӬ-6;X"d*awYvtLXָkUߩa=HR_@+j2T*£%/͸oƤy 19/7 ~7_o+$DүsIH:r yiF:v(dO":omdM8 ;Z9uʩHCg\K/*ԙg*-I_ERqR'[f?GUAovb A$e]/Կo?|ԐQm4G7G833+ 74z*)$݋JpDNj5pqeDf/>%gW{U:g,nlU\t'%E}͝uCꘒܻߺp}U+^b'o(5gVBIOEm>5yzg}AP-P/ޫ6)x5/t;1p1L9Aܳ|)X]mkFEH/4}:,oLMo6]YM50u[yҫfVh?E-A_i﫝j . 6|5`#Z-svfqӟs͚>w7C{ A]Bz,iH'dv?`E x,mz`F[2avhp%(̒ʂ5Ԧ;Gюh\y";|"ٝʖrxzsPHCTvP$ly}iyhvMCr)#x-.(t%fu€(ۅeUUo pqeˡ啗syi Xk`>X@2P. 2͌>n|,/4} ?A&Jr+ɐCV]{Z0- A= F$+%UZyޗٲR B)wT8(aRΣ*-sr5v !^tZ:/K,'F  9=G<Cu"$-FS2(F 0Q+Xw,]=bh[qBQI ;)"Ō926r?}lV =b[j4AzKkQ?T[%$KQ-l_@l/ &;차Dr?P_dE1~z^I~breufP/պ# E+S\G-R4 SSV俑; *`G*5'dL ~ 5Fhb` ꁜ4[b$~GNAX$~ }[W}_z×6m&~O%j/r&|_Sy<-*Lϛ,JQzͤ𫷣|V|GVW~z  HE YnH4r7P?99ߡ|O-5 %4 dzO/4L_PsT>LQD( J8F+)jCb Mu2Xc8$t}&@Qr-֤U_o6q7P1ˤ+rc6I \ (*v24Uc(A ̣93]z;0'=*,e56Va,qh*P@wȬG/Oj|FIm #Pz;Jwʎ}< z Tt~`ȱGP%;? 5((u# vՊI#9,?Gb4K]Qgԟ]E[ phʯG+`Ęp?@>!}" ҽr=CD5 62ZY? iA T(E UJu;"}պ#LcӗVWO&CIԙu8*烞QaQ^*z(L|Jӏ^fp104~CUx*rV*N9π׳Pūsp_L3Z"}&rO|l~kC/Wj><SxMbSg(]J(Z#x\$OC68-f:{Sҳ蚨o4:)Wb"uiuh~d%BAM sWH.gv%4v+=¿ SGϋjWHWu>[B{[uɶs;laziW߭\zC|\fte&ߕ+Bk/t  CM /@S>Tm G`v`?G(,zb" eAAi7QR<"iX:I܋(aV;4R]}^1vԵ7=p|[Jοeµ{)e#ief0KJq"*F#(GjJFhX#шݍk5ERP΋ ^pCeoe:{6۬5͝sƙ8X K6V[=}V+hͧJlZZ5W;TeV-@HID<͙[)֐l^bXeNN"K]@b?.HH gzXaْA}MOeXHNrڟW;htgttOyu3=*פؿCFGsh9JͽZ-k]L-~hii.49Qr5I,Vݓ^jf_},Q6?5NV ޞˍYٜN%ezqƨ>Z Nt1 a %= yhޙ HJZ? hvrk@mY`^insF\*|Lz!/?)(0 MS4(ȗh{-'ho7cCҞ?6'|ubգ@!bÙf{tz1UA?=@ t%䕉iu[ NiD GT@:p<(cXUm2ϱ7zOM^FϴYUfwGs#t:/~Os]Fݑ((^?L$Sʽ WzT>m'_d:5Lh;H7WgzgZZb3{2d5Jj9c+\vqzDbbƶg "l@צpQBbS Q>+d p%}L!cdwHopx(Tpxp#:dvQ qdAQFdLKmPR pU?l zg-jPbGaR&^q>u8p&Ӯф `MGSܵaoWܛZaâٟݰV5Rs2NX qGB OKg BW)Sg\ӡl]z<߲o-_- AKMqӭ!æSigy۰]K;ST'kPqee7cZT{~*7b\H?jٵl3P оwT2jY;)l DueytOTjöUHXgɬ,WϢ^u![]vF| QGh`(# R'5XDQqM6gc'bu:'H( ?yյ6~.e[n *UyZst9R!GMM$xz$]{L<}4JZ~MVՕhy >@u +]2FqO8jѥWCQqrw.䄫ޥ\_y\On)IKGRHŁqI. d+u@ϴ kŤ}9Tv6*xge7?ì}S-AU OMlJ pժݧYwhi6\fAZc,rjFTMj8kO51TqW_n`7%KWsd0:`OXs$4?:SI1W-Pr}² 9.&P^f 8(WI``@5a}ziV pPԽ+:d\j"=aj)W$q{͜p)V|7hj$L֡9\ځn[ k{lG.m m~TEbȭm` wnyP&:PLJY_pNWzVS׃]7Ed%i癬| EWM7r HB6`UGZ 9N2l2ɅHY(ŗiwݓ[`cZR;Yz=TrvH9c. ֲG6*p΅'[:/ҪXCYхMt-']n,{@ cObIN.xN F9뛝NK[Xr=Wm ݏƦY+?sJgXuP%ȗV^[ W;W xvi/XS3ȼ2ԩZ f2/y?8M@Q*˄CXk?MzTy?ZYu׳)]͕1-a7j~ .d  'VztXK2k̹d?zzK.>,BZ`q'kHqy5j>a\C#H;#p7l4} IR7ފ0$=V#_.vs{g>h!Ab/p7=zmi%͟3)^Oj<_UNY63dsIr8EjU* 33|v ;OB@,,\cwd}6k.ukF9'26D]exGJK.׽}S$@ t";2ɩ*41_x7QbjX9Q;#{9eI -奐br B<9dpzIVQ:l+si #=T+R(MDC$ a̱ ONgj19gqXk}FdcG,&..^ɷwwc>E_]3U|t{Jf窂u_.\*W=}lNo+^Ṿ vP>~sTjWz~_ogS}-DTd -TAaYf3,PATcm ռ4g}mE$BwŪ8>9JW⁩O/9PJCXA{,@c,tEJTj98Q& HPl~K%ƞ1ѻ -eD zxNXuz.9}Mc&:Z5ә8% յսmomCB:l8~ܦEjTYHYvnV^IN]]ŽCXkg#s cSB$Ý=$k}cG&/z}_v6<7IVGGg*l\RXST)šE%Yu~Q~>XЅ`9Wk*@_ՊpM]0*%a3X팁KM|{FԔ 췾d7[nlͬD@m8e cż#gHdd@~.jllɛeRcxE(( Km¼GXA7S@[l.%գnMDs]n_Q 5i?zGTG3T@e i,r O2<l+/,%m ۚXn|E]lí[m<|#z+5 7&\5S-{AE^tK M^rq]FmC%2vJ)W-}OM"`9l+=%"T'8zH3QҐѩYP~VزNi 7ۛ ?w1xc`d```d?oAePBYt?;"@.Hc xc`d`` &]aA_x}SJAS<` b)6 >@D"X\o!ι{,_oggg #JVYp>uC4&*<=$g9W@.0q- ;:pt"HUe5 Vg([Ax9!޴EMߗ4N&ӞwjtԞeσLp>w>Gpfz`|^aż>)o oMg+RmRq,RJ1XTN7t{IE\F8U mb:fN&j9Yxc``ЂM /^0Kؘژ0=avcca>bĒIJk ."/ I888qqpnǥ5w)^-8 ||||[5? JPKLpPa) "Z"WDmDWc3K O~/cLuNN+9K8;99/p>"k676-nܷ0h8)iʋK+s9@.xڭNAwh /"TD#J$rqr|!'O3XFާ0wY 1fg;73;3xE0C q=qX4GA$x ZB8ڃ Dw!IaSX w.0?oN؍gڍ@\A`sb k`sݡ},0Ya DȵȵMyFMvYdS20~>/qJG i<#c0C~G9ee Kvв[ڷ{&V(Ө1j1MZqr7,gKܥX0QY{ MYжz=a:[jEݢ BZZ=ns`+ȍxmUSgFB]9I$uw-J;mPwwwwwwwwlޕ]<3)e׿7R^ VV_@$zГ^З~g`0m[czf`(3233 23s2s32  eD*954XXeXX14i++ kk [[ ۲3Qfvd ;1qgg& nLdOboa_c@`PpHhXxNDNdNarsgrgsrsrs rsWrWs rs7r7s rswrwsrOO // oo __ ?? f,˺eݳYϬW;MelP68s䘉GE{RαM 7nܺp;ڛZ[ݛƵ? ѵֵykx~yj?\3V+wE5=QMjzTӣ(vN؉k/셽d/Kd/Kdbbbbbbbbbbjjjjjjjjjj/r{^n/+v ;NaS)ԼffffffffnnnnnnnnnnaaaaaaaChQN-ܩ?C?C?C?C?݇C}>t݇C}C?C?C?C?vNjHMp[qn???????>>=<<<<<:::::::U>::::::::=;;;;;;;;;;;;}VhSoTPwOF2Fl\F M?FFTM `r $e6$t 0 "Q?webfe5옏@? t,3+2q FYO&>bm5ZH$Y{H jd Չ %٧y"+@]e{vNc)n?~?萤h_&iѝ?>^K v-cۍ12Ky,'n(3EwiB& Tlh0M҆dYrﲬnti]yurVXsjgMnәHW r2>iT`V7R(+o6'cB4ι㿚T ]a[Qd<3wq8,rTI80>E?*E痦#7'S ocʷ_7&#*+)+4aA6cy٣f(bF$;{ YA1vP-tG"Cf- WԙuKְK#*K< (Z`٫ [%YT{%Ɋ$s{oջvt"p4`ߩϤ}o `'ne> G5sz_N PKӦvmU ɾ{z"3`l W#Ԑ^@+,ckoAOpnuzzJ)Υ1}O=xR`J`qUs/+kv1xljlEl\nDƶVjg{Zdz7 5!xm5o[u&1ڂHBkAqrR (\gh7Ҋy=HZUPh$8RgzgͭN:1u$܅>R]"f7 K^'3+E/^YU5]NB.ʋ8+͏8,|{M|Aua|a˅՝% lKGP,Nukc8mX@d̘?Y&{?P(G]Or-\LF9,&y8r3ܟ?p>~sDz1?\U5q=tzԒ&Znj%mM"}tkDwh-=mB76&:һqt" 1:Еu;"K_/Jdc0l0'^B8VCzg[ ;d Ybȃuu;@*}y| .'C>\g=9VŐ[o|g^ >d 9 *E|A*M[[*mOQz?Pn?R)YoT&[U*5S MB [ oYDh{,}1f?NN ]O/^;\J BEsJrĚ'g/B%o Cn7:|yKt&$s|wP\i]$Z@+ Հ90x]r%+RUEm+ܰ;wu9/I77զQlu\yWN)8ܰvY*umm( fEG8 j#IRz #q߷ )Y$ Лc_%m-{!0-` ;公hyV]Hv! ta\K[1{"j 6@3T0%Θ"ԙZIGS.ΣpӬS1eٓ؛ Yv8d\BlSR)ӆ {Iӆ%>0Ўڦ\'cg2%4QD 0͒3B"MՎ&ۊhIڧRgME I(5UD] }b8$8>X h"l΀j.%ۀHH- Iݸ#1C4Y7YݖV o>P]6O47f ~AJdYF€.oy) 8l 22e1H[t@!ȅ 2\@5ٓ%Zkޒa@.`n3OFR(󅥶ZkLkF HWjY I5*6eSbk.5F,.N0ԙ|V||~N( 4],Jp|~xeA5/ڻSvy?'_v|rXHQēB@= XB94TBBcHP+_YH#$`FB;+BPR4̼ t:t"ZEJ^!XǓq4_dTW(5܀IUŇAz@U6n.WGXHRK&'swMjʎ<3)`#F@  F Ԣvob$x +u&}|X&[٪8F-E&/>/G.az^/})'x$O=<zoA9M؝&~3r3g'8ң\-MDzk5A G9|1-! 87[,mRu|57 =X,aJ^tN4\fЄ]AzH^7F&k"LU>}>rBX(ۂT% JdhKPKTFaA3HHC[r;ad54 lLkjG{8h~ fR@9wB0 zS'a7@@Nƹlbj3hNXF/es'DsQjw}Jz^:V.:ڋ{ͼ(ȲBɦx<Db#"S{PHuN/{r6;wUsPО p8+6g_2lΡ6H džH: dBtGNmx@j |{s9=wR/oDJs5z>;'xEq^r^=G?9AA_K%Dɮ:uikjkIeG՝#*)jm|t}`JZ؈H=4{g߁)qXMA,H71V"o,Y#hݨS_;a_ԗZ^cn4HE?} ȝ٤=}BWvުUehGF;@2S@f n2#fY:]JyH]-G׌wgv'|0e _7Ґn+fٸY<( ?y%wm+j&&!c^u'b&hm6¤*2 ?AIƲ5FWؙ[ƜBUzIE!m:xheǮnz|]% mrUFگ1 };!n F&gP;&$$F).tBQ3(C=Xes;iي@~NΡE SRh\BeobTnΒju g@'qQ딎nx.u6bVU& ];!C_  5*zɺmRQuqPZ0}mn^nOrT:U'h0nZp^R|DF_b\@mDE8{oGM᠜q}Sd C,iܚE/Ë[d8],MCI_u,]Vc"pg@`"y),;B^el2'.(Ęy>-|hw;jՍiԽ_o|!@)ɢ=̌SPz*!z})|ƧT}jEtCZný*՞4ۆ׽[ 9Юݓz`Wmeo|j8j59@.EV/ZW@|f_\"${v/;a:Sei3TG*]ơ/h2C32$1}DNXt?Fϝ~n,Pj9.>ף{ 9EN-v|3hCиE XT;P$=J-gݕigz~q(A<:h193N̽Q}CLWߧ׎~ b"|4u}cy62[ \d,ҎճbkD%0Tx{=;Է(i LS13Nh/6?'E^~P{sZZKĞB{Dt&z)Uoa5Q3ȗr~ F]$<tm(} MB@[GxFh8#},#u Laz(Qh4%xm`Uչ.Ev1a4_'/[d{FxI59 D<&8VEFg 芘#I䟍2S_]QqAn_Q>bޘ4g-0&E#ci8 vR/4rP7KsOWN3ՏvE\bqQ5ZڽVy5]h/ i)-/kNю#e)"P {KSQx>a&, _g-mc<n]Ч-52cz 7d PzVOPvfR Rఓ9Z -dC`,at=k?v4#P Bإ/[s.-bH)ɺz '}׶w!rXZ .:Vn;->: 6rUcs4kVW{#5ߑ0B`ܝ0u".QdB0Cr]#Q9lqN^ֳh~NU\ 16 ~SnTl\THҲڛ-~G~)$oQ7-C}q%/avO|[q4~Bc-$N76w{V餃.&(o*n NeRi4!3R"4nbm-y[X."!QKE\N4gՠםaNp >k)90BZBs yrer)vDtrv\v[>rJm a̼~uՏ>rMZcB<`)\yt|ۍr'<>[Îh7Z8caI! p⢟̮,G k5@`iw nО8pv *'O A[.rhT pR?+;\*HsLqUf:ql-ć *6!h+ˬ{h- jgkMMP#:}{/VŶC]옙&[W$ګ^#4fWa\ 5躺M[6)T3~ :. Z`si(RQ|/` il^L#f-;-C;_*{@EMCooÂ_7TrqzF%ׯ|UEƫUs^ݜv{fQ<ĐVPTfͦ?mpP*&QG{cJEPe2)xP0AMɪZHj"׻"AC+zqmVzᖞU%C:@1W [y)J@ob% jA>)Nǀi$At`>?f0gH36p6D|M 4N 4JJڃ jƇ\ p38Я6pV?:$sDNƹ2n,HO\[ոK-)W~im?T:޺UeY-#dJe)Z5?$\dW<,Ɇ;ط5SոTT̄f(PYv=Q ~DX*8辩s- ˨΀55 XRl QC l|5{ӦT\t꼕+en۸Psl3UO[ZS3*,:ÛZLS'̵**@ı~xgno2- WV;pZ9?~$6҄xJ>\QA_Cihbl] 64*A˯ɰqX7YX.-ոaɇVhiKgqNRĆN(r']%٘@3̀jZJ.;nm,S0xͻOF33ҧ<$'GE+}'1f3y5/&Z\RB7dm]8\3߂Ȫ@oT3eu^W@e7l!B,s1$Z&?dC (YЦSm>J"&pt܈P㇄BF4G5 t^Ć$j-a㠍g^ʐCAsT=kTS,|r9IBϘЬ'vGA@thQNj&T=xt;2]P|T- LÞe1ݽWZŚ*MrH5?=o"9K5='k-*AE| qҔ_?\7%|M6f++S*}W_]3fmܮ˳m w!.R#鬪;qq71$•ݙկ_iK&JάMemV5P0> Q5WHIh&4ҍIlE7}sm[cȾ|d^ %Uv1D>.T7*=tZ_㟾1Х:=0pZ6ҋNt(uƝ; B]$kڌ.{F*/UZN砦|oqKG;^侞9NexK \wh~ZpHb䉸 [k8k.bX.QXpxYa^"#Bwnbum5F~>8bN:p4 [gv^ BFUz)?60F8/2C8>N8G%l%5FH{46h4%# 7x oN t\'Ȩ E0#jNãVӹd?WlcW žֵu-}22EN}#䵵2H^a3rqs-S3&f퇣fwl.=W8,cHjcTWנs90ZDMC2ZMdjt"8:g{.Ʊ1Fb618"yԦ> W9 V `jT򔔑r,ni d qN .g+ S Q KaB?_QE rjh>Eӛ;C׭7^q `Ue#-;oJċԝ>) ;Jg׭9R;OgiI7}8Kہqjeؓ+ٗ'nϷk3eFρ0V#pMAzb^PVu~1uғwn ^.II_vdW[Q,+Lbćq 9V} ΏVw4qU3&jıHYb ttT7ρarBwP9?)uT/aA19kM \Psq+=[5͔?9W+^o^E8s)f 2aQxi& NE>"^Naa;f9]NE& t^CLz'e8ZRs&67_ãcyJ1 @TZ?SD2 |POӌ\dR7zH9iQ#zrc.4GR4qx<2~Xhnੳ2auBNC+kX0 aj5n>މe3vާ<>_ uH:XR%~9!4oѼ38? 1d#A&{A!i6 /Xa㇤=W;|) g~ ?*悽 }ڧKt>5|E.A Q6 (6 6є7<9_C f1Ўi8, V4$uti,.`v6r P gFBɎ t C3; ,oÂx| /KMp1S_X.fV#U>Ȓ#B] AIVoІϵGTV1nr+OXS% ³fOZ[_9P߰ {Gln%#hdwH= ye/W>,IP,*MV~ºK&eċM콣=)qFS"GTF*LX,h[wweWQEx ?{^چExhiׂJH|^͓e*^Я.uxEb#;ԝ<]z]\wNhochqE=4Q17W̓lÕ6᧿HE_̣qy YR۫9~l4sVy`Uߛ,#_u+DeM~hq벇#Yz$; 5ͯ9$ z> *jO$$O/xRtf-}*oɦ|3M;xިUl/.~XǎY4x3&x";$KI5dڭ ~w[M9O%4Q}S^t@w[Y;-s;bwH-* imI-1e/~TNN.p)H$W~ƦO (9, ]gM6r+#%/swA$q4O> d9}+$s?0a,>yڈs<=,c_*\D}2MT8/4g'ڦ8'}"C*\9#Y>z$7c[s|"$} ymzQx 5%o$jkp)x-:И|?ofgFr2SZq}q o,wyOgCF1l'L5T33yM92"s5uD6-JUbs O)wR -2/5frϛf@=BFCB&'F}@&yubC?'S49+ÓCIî+f/RU C Fu:C*} T:}{ݽⲷue[!>? ڸ"M 8gz0\HkZ:h~@+#N fjyio!B R'5>`[!T`mC Iѝ}n >W!M}Uav43)!kcȂm? dwv!ה;Xϡۨ}8vt"Ӽ# kvXJ[l[ZݙMÀXC3l[ TaVjʻѬ"œ t:(<cZveQTqHi{銀Q埓'ÖiP■mKAIBF =Tᅽ(&TS?/؁A:ַОV(@wFa^]o]*99Ri_2vM`Pf{QYH#V7v7Ұq>@~uɘ׆Ax/xB3Ġtyb0nG` EDٍA: PwI7nW2ED}.(h"U]9Ih_V@GZ0C pb :L 3tN*N 2!3 Cayn.ɋW`̳}QBCi 8*{57O#aTBUoi0 _^ ChrU}~rL 1z>..=%GG o EuPPsؘ޸8Pu&;*|i&Pbțh;[|y*cVhҼ(~_AqU2GIQ3`^v=@K'ЇZ#4sJ=:sY sڥbyj S_E܃"@~>86#y[cSŬ#SJGZyvvSя扝pwaT/, 9'Jkv%%.~o[ 衧RBjSȀ*$'腁pçSu +9\_f+8u\,tpэkخJ0h(]NQvW7 86:ݣ WcY_i>"R(e]6RA%U6&F]7@̳k3X h?KQ2Bk[?..KKAb65ke+]FeWHU0Oק5 e3Hco>l]02cH9{Z {sO!A,7?ŷ3w俎A Fj8B&8U$G$Y5FL5n1> q2.6e +@/kb{(7i={l͍݂濦81g(%h/EfMҍt5̼vgo ~ਜ਼WKi父UأݖwRSEFT% `=|*=1*SX^w)lfQH(YSSˌK1W]f7ך^&p@T'.%3 5zaTf6A5LX̡|L-ηTg{A)F."hjA;.~o% G#}&]׾c`ChH9xnNY lc\+v\EƧ1D9KX)2b.NWQש$/|6tð32ԛ72иyu0e)Nuh'd~xY ># b"k3 :9v$ПC:)H> զz;ed\jmfOa%9cKxۥ!k%HDn{Y"{n_} )9= _/Z(>lYVgQ#߭:Qbw$zwٮ#U?|Ghz{o$wϜ)|Vh? ZV7%Go/׆E"KӲlp76-z !l4n>$\zV?szqejQ]m^=^ !lHB4sL i9}2^K5OB)O v^~݀xrm\K&G^5CL}&FB]Kn3|sGjykObsܽaW?R6Jfh2 lBS\=jV*Y^˺^E)*\ rr(a@6nԌ?}dLgIvqNcaƮkmLcA!hdVwc=憖s_:җsLg>1*4-%&0Ub)Eܬ*b51 ++;<`!qfM*,[/GK+{,>CLR%%c~'EGAG=h䟔8:IDN)W̻AF)ucw'qhXèL@a~6Pc2L"A2bU & 9A#QLO:E9kfKFb93tL$cˬpLz5dp۰>$`.~X=?NͰ/LPNo0p b8AR4r Jj} Ӳ04ˋquۏAFP 'HfXDIVTM7Lv\(N,/ʪnڮi^m?~ QU Ӳ04ˋquۏb$tV&gϖr>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
    ',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++ie;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++aa;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)0?0:3:xo(r[0]-e)0?2:1:xo(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)Uo?{x:s,y:xo(t-s)Uo?{x:xo(e-g)Uo?{x:h,y:xo(t-h)Uo?{x:xo(e-p)=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.yd||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.yr||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.yp){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return ur;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oe;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.ro;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++oe?[NaN,NaN]:[e>0?a[e-1]:n[0],et?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}else{for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++ii){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++rr;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++uu;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rn?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.xy&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++cs?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u0)for(u=-1;++u=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.xg.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++it?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oe&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++ue&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++au;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); $(function() { var $window = $(window) , $top_link = $('#toplink') , $body = $('body, html') , offset = $('#code').offset().top , hidePopover = function ($target) { $target.data('popover-hover', false); setTimeout(function () { if (!$target.data('popover-hover')) { $target.popover('hide'); } }, 300); }; $top_link.hide().click(function(event) { event.preventDefault(); $body.animate({scrollTop:0}, 800); }); $window.scroll(function() { if($window.scrollTop() > offset) { $top_link.fadeIn(); } else { $top_link.fadeOut(); } }).scroll(); $('.popin') .popover({trigger: 'manual'}) .on({ 'mouseenter.popover': function () { var $target = $(this); $target.data('popover-hover', true); // popover already displayed if ($target.next('.popover').length) { return; } // show the popover $target.popover('show'); // register mouse events on the popover $target.next('.popover:not(.popover-initialized)') .on({ 'mouseenter': function () { $target.data('popover-hover', true); }, 'mouseleave': function () { hidePopover($target); } }) .addClass('popover-initialized'); }, 'mouseleave.popover': function () { hidePopover($(this)); } }); }); /*! Holder - client side image placeholders Version 2.7.1+6hydf © 2015 Ivan Malopinsky - http://imsky.co Site: http://holderjs.com Issues: https://github.com/imsky/holder/issues License: http://opensource.org/licenses/MIT */ !function(a){if(a.document){var b=a.document;b.querySelectorAll||(b.querySelectorAll=function(c){var d,e=b.createElement("style"),f=[];for(b.documentElement.firstChild.appendChild(e),b._qsa=[],e.styleSheet.cssText=c+"{x-qsa:expression(document._qsa && document._qsa.push(this))}",a.scrollBy(0,0),e.parentNode.removeChild(e);b._qsa.length;)d=b._qsa.shift(),d.style.removeAttribute("x-qsa"),f.push(d);return b._qsa=null,f}),b.querySelector||(b.querySelector=function(a){var c=b.querySelectorAll(a);return c.length?c[0]:null}),b.getElementsByClassName||(b.getElementsByClassName=function(a){return a=String(a).replace(/^|\s+/g,"."),b.querySelectorAll(a)}),Object.keys||(Object.keys=function(a){if(a!==Object(a))throw TypeError("Object.keys called on non-object");var b,c=[];for(b in a)Object.prototype.hasOwnProperty.call(a,b)&&c.push(b);return c}),function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";a.atob=a.atob||function(a){a=String(a);var c,d=0,e=[],f=0,g=0;if(a=a.replace(/\s/g,""),a.length%4===0&&(a=a.replace(/=+$/,"")),a.length%4===1)throw Error("InvalidCharacterError");if(/[^+/0-9A-Za-z]/.test(a))throw Error("InvalidCharacterError");for(;d>16&255)),e.push(String.fromCharCode(f>>8&255)),e.push(String.fromCharCode(255&f)),g=0,f=0),d+=1;return 12===g?(f>>=4,e.push(String.fromCharCode(255&f))):18===g&&(f>>=2,e.push(String.fromCharCode(f>>8&255)),e.push(String.fromCharCode(255&f))),e.join("")},a.btoa=a.btoa||function(a){a=String(a);var c,d,e,f,g,h,i,j=0,k=[];if(/[^\x00-\xFF]/.test(a))throw Error("InvalidCharacterError");for(;j>2,g=(3&c)<<4|d>>4,h=(15&d)<<2|e>>6,i=63&e,j===a.length+2?(h=64,i=64):j===a.length+1&&(i=64),k.push(b.charAt(f),b.charAt(g),b.charAt(h),b.charAt(i));return k.join("")}}(a),Object.prototype.hasOwnProperty||(Object.prototype.hasOwnProperty=function(a){var b=this.__proto__||this.constructor.prototype;return a in this&&(!(a in b)||b[a]!==this[a])}),function(){if("performance"in a==!1&&(a.performance={}),Date.now=Date.now||function(){return(new Date).getTime()},"now"in a.performance==!1){var b=Date.now();performance.timing&&performance.timing.navigationStart&&(b=performance.timing.navigationStart),a.performance.now=function(){return Date.now()-b}}}(),a.requestAnimationFrame||(a.webkitRequestAnimationFrame?!function(a){a.requestAnimationFrame=function(b){return webkitRequestAnimationFrame(function(){b(a.performance.now())})},a.cancelAnimationFrame=webkitCancelAnimationFrame}(a):a.mozRequestAnimationFrame?!function(a){a.requestAnimationFrame=function(b){return mozRequestAnimationFrame(function(){b(a.performance.now())})},a.cancelAnimationFrame=mozCancelAnimationFrame}(a):!function(a){a.requestAnimationFrame=function(b){return a.setTimeout(b,1e3/60)},a.cancelAnimationFrame=a.clearTimeout}(a))}}(this),function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):"object"==typeof exports?exports.Holder=b():a.Holder=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){(function(b){function d(a,b,c,d){var f=e(c.substr(c.lastIndexOf(a.domain)),a);f&&h({mode:null,el:d,flags:f,engineSettings:b})}function e(a,b){var c={theme:B(J.settings.themes.gray,null),stylesheets:b.stylesheets,instanceOptions:b};return a.match(/([\d]+p?)x([\d]+p?)(?:\?|$)/)?f(a,c):g(a,c)}function f(a,b){var c=a.split("?"),d=c[0].split("/");b.holderURL=a;var e=d[1],f=e.match(/([\d]+p?)x([\d]+p?)/);if(!f)return!1;if(b.fluid=-1!==e.indexOf("p"),b.dimensions={width:f[1].replace("p","%"),height:f[2].replace("p","%")},2===c.length){var g=A.parse(c[1]);if(g.bg&&(b.theme.background=(-1===g.bg.indexOf("#")?"#":"")+g.bg),g.fg&&(b.theme.foreground=(-1===g.fg.indexOf("#")?"#":"")+g.fg),g.theme&&b.instanceOptions.themes.hasOwnProperty(g.theme)&&(b.theme=B(b.instanceOptions.themes[g.theme],null)),g.text&&(b.text=g.text),g.textmode&&(b.textmode=g.textmode),g.size&&(b.size=g.size),g.font&&(b.font=g.font),g.align&&(b.align=g.align),b.nowrap=z.truthy(g.nowrap),b.auto=z.truthy(g.auto),z.truthy(g.random)){J.vars.cache.themeKeys=J.vars.cache.themeKeys||Object.keys(b.instanceOptions.themes);var h=J.vars.cache.themeKeys[0|Math.random()*J.vars.cache.themeKeys.length];b.theme=B(b.instanceOptions.themes[h],null)}}return b}function g(a,b){var c=!1,d=String.fromCharCode(11),e=a.replace(/([^\\])\//g,"$1"+d).split(d),f=/%[0-9a-f]{2}/gi,g=b.instanceOptions;b.holderURL=[];for(var h=e.length,i=0;h>i;i++){var j=e[i];if(j.match(f))try{j=decodeURIComponent(j)}catch(k){j=e[i]}var l=!1;if(J.flags.dimensions.match(j))c=!0,b.dimensions=J.flags.dimensions.output(j),l=!0;else if(J.flags.fluid.match(j))c=!0,b.dimensions=J.flags.fluid.output(j),b.fluid=!0,l=!0;else if(J.flags.textmode.match(j))b.textmode=J.flags.textmode.output(j),l=!0;else if(J.flags.colors.match(j)){var m=J.flags.colors.output(j);b.theme=B(b.theme,m),l=!0}else if(g.themes[j])g.themes.hasOwnProperty(j)&&(b.theme=B(g.themes[j],null)),l=!0;else if(J.flags.font.match(j))b.font=J.flags.font.output(j),l=!0;else if(J.flags.auto.match(j))b.auto=!0,l=!0;else if(J.flags.text.match(j))b.text=J.flags.text.output(j),l=!0;else if(J.flags.size.match(j))b.size=J.flags.size.output(j),l=!0;else if(J.flags.random.match(j)){null==J.vars.cache.themeKeys&&(J.vars.cache.themeKeys=Object.keys(g.themes));var n=J.vars.cache.themeKeys[0|Math.random()*J.vars.cache.themeKeys.length];b.theme=B(g.themes[n],null),l=!0}l&&b.holderURL.push(j)}return b.holderURL.unshift(g.domain),b.holderURL=b.holderURL.join("/"),c?b:!1}function h(a){var b=a.mode,c=a.el,d=a.flags,e=a.engineSettings,f=d.dimensions,g=d.theme,h=f.width+"x"+f.height;if(b=null==b?d.fluid?"fluid":"image":b,null!=d.text&&(g.text=d.text,"object"===c.nodeName.toLowerCase())){for(var j=g.text.split("\\n"),k=0;k1){var n,o=0,p=0,q=0;j=new e.Group("line"+q),("left"===a.align||"right"===a.align)&&(m=a.width*(1-2*(1-J.setup.lineWrapRatio)));for(var r=0;r=m||t===!0)&&(b(g,j,o,g.properties.leading),g.add(j),o=0,p+=g.properties.leading,q+=1,j=new e.Group("line"+q),j.y=p),t!==!0&&(i.moveTo(o,0),o+=h.spaceWidth+s.width,j.add(i))}if(b(g,j,o,g.properties.leading),g.add(j),"left"===a.align)g.moveTo(a.width-l,null,null);else if("right"===a.align){for(n in g.children)j=g.children[n],j.moveTo(a.width-j.width,null,null);g.moveTo(0-(a.width-l),null,null)}else{for(n in g.children)j=g.children[n],j.moveTo((g.width-j.width)/2,null,null);g.moveTo((a.width-g.width)/2,null,null)}g.moveTo(null,(a.height-g.height)/2,null),(a.height-g.height)/2<0&&g.moveTo(null,0,null)}else i=new e.Text(a.text),j=new e.Group("line0"),j.add(i),g.add(j),"left"===a.align?g.moveTo(a.width-l,null,null):"right"===a.align?g.moveTo(0-(a.width-l),null,null):g.moveTo((a.width-h.boundingBox.width)/2,null,null),g.moveTo(null,(a.height-h.boundingBox.height)/2,null);return d}function k(a,b,c){var d=parseInt(a,10),e=parseInt(b,10),f=Math.max(d,e),g=Math.min(d,e),h=.8*Math.min(g,f*J.defaults.scale);return Math.round(Math.max(c,h))}function l(a){var b;b=null==a||null==a.nodeType?J.vars.resizableImages:[a];for(var c=0,d=b.length;d>c;c++){var e=b[c];if(e.holderData){var f=e.holderData.flags,g=D(e);if(g){if(!e.holderData.resizeUpdate)continue;if(f.fluid&&f.auto){var h=e.holderData.fluidConfig;switch(h.mode){case"width":g.height=g.width/h.ratio;break;case"height":g.width=g.height*h.ratio}}var j={mode:"image",holderSettings:{dimensions:g,theme:f.theme,flags:f},el:e,engineSettings:e.holderData.engineSettings};"exact"==f.textmode&&(f.exactDimensions=g,j.holderSettings.dimensions=f.dimensions),i(j)}else p(e)}}}function m(a){if(a.holderData){var b=D(a);if(b){var c=a.holderData.flags,d={fluidHeight:"%"==c.dimensions.height.slice(-1),fluidWidth:"%"==c.dimensions.width.slice(-1),mode:null,initialDimensions:b};d.fluidWidth&&!d.fluidHeight?(d.mode="width",d.ratio=d.initialDimensions.width/parseFloat(c.dimensions.height)):!d.fluidWidth&&d.fluidHeight&&(d.mode="height",d.ratio=parseFloat(c.dimensions.width)/d.initialDimensions.height),a.holderData.fluidConfig=d}else p(a)}}function n(){for(var a,c=[],d=Object.keys(J.vars.invisibleImages),e=0,f=d.length;f>e;e++)a=J.vars.invisibleImages[d[e]],D(a)&&"img"==a.nodeName.toLowerCase()&&(c.push(a),delete J.vars.invisibleImages[d[e]]);c.length&&I.run({images:c}),b.requestAnimationFrame(n)}function o(){J.vars.visibilityCheckStarted||(b.requestAnimationFrame(n),J.vars.visibilityCheckStarted=!0)}function p(a){a.holderData.invisibleId||(J.vars.invisibleId+=1,J.vars.invisibleImages["i"+J.vars.invisibleId]=a,a.holderData.invisibleId=J.vars.invisibleId)}function q(a,b){return null==b?document.createElement(a):document.createElementNS(b,a)}function r(a,b){for(var c in b)a.setAttribute(c,b[c])}function s(a,b,c){var d,e;null==a?(a=q("svg",E),d=q("defs",E),e=q("style",E),r(e,{type:"text/css"}),d.appendChild(e),a.appendChild(d)):e=a.querySelector("style"),a.webkitMatchesSelector&&a.setAttribute("xmlns",E);for(var f=0;f=0;h--){var i=g.createProcessingInstruction("xml-stylesheet",'href="'+f[h]+'" rel="stylesheet"');g.insertBefore(i,g.firstChild)}g.removeChild(g.documentElement),e=d.serializeToString(g)}var j=d.serializeToString(a);return j=j.replace(/\&(\#[0-9]{2,}\;)/g,"&$1"),e+j}}function u(){return b.DOMParser?(new DOMParser).parseFromString("","application/xml"):void 0}function v(a){J.vars.debounceTimer||a.call(this),J.vars.debounceTimer&&b.clearTimeout(J.vars.debounceTimer),J.vars.debounceTimer=b.setTimeout(function(){J.vars.debounceTimer=null,a.call(this)},J.setup.debounce)}function w(){v(function(){l(null)})}var x=c(1),y=c(2),z=c(3),A=c(4),B=z.extend,C=z.getNodeArray,D=z.dimensionCheck,E="http://www.w3.org/2000/svg",F=8,G="2.7.1",H="\nCreated with Holder.js "+G+".\nLearn more at http://holderjs.com\n(c) 2012-2015 Ivan Malopinsky - http://imsky.co\n",I={version:G,addTheme:function(a,b){return null!=a&&null!=b&&(J.settings.themes[a]=b),delete J.vars.cache.themeKeys,this},addImage:function(a,b){var c=document.querySelectorAll(b);if(c.length)for(var d=0,e=c.length;e>d;d++){var f=q("img"),g={};g[J.vars.dataAttr]=a,r(f,g),c[d].appendChild(f)}return this},setResizeUpdate:function(a,b){a.holderData&&(a.holderData.resizeUpdate=!!b,a.holderData.resizeUpdate&&l(a))},run:function(a){a=a||{};var c={},f=B(J.settings,a);J.vars.preempted=!0,J.vars.dataAttr=f.dataAttr||J.vars.dataAttr,c.renderer=f.renderer?f.renderer:J.setup.renderer,-1===J.setup.renderers.join(",").indexOf(c.renderer)&&(c.renderer=J.setup.supportsSVG?"svg":J.setup.supportsCanvas?"canvas":"html");var g=C(f.images),i=C(f.bgnodes),j=C(f.stylenodes),k=C(f.objects);c.stylesheets=[],c.svgXMLStylesheet=!0,c.noFontFallback=f.noFontFallback?f.noFontFallback:!1;for(var l=0;l1){c.nodeValue="";for(var u=0;u=0?b:1)}function f(a){v?e(a):w.push(a)}null==document.readyState&&document.addEventListener&&(document.addEventListener("DOMContentLoaded",function y(){document.removeEventListener("DOMContentLoaded",y,!1),document.readyState="complete"},!1),document.readyState="loading");var g=a.document,h=g.documentElement,i="load",j=!1,k="on"+i,l="complete",m="readyState",n="attachEvent",o="detachEvent",p="addEventListener",q="DOMContentLoaded",r="onreadystatechange",s="removeEventListener",t=p in g,u=j,v=j,w=[];if(g[m]===l)e(b);else if(t)g[p](q,c,j),a[p](i,c,j);else{g[n](r,c),a[n](k,c);try{u=null==a.frameElement&&h}catch(x){}u&&u.doScroll&&!function z(){if(!v){try{u.doScroll("left")}catch(a){return e(z,50)}d(),b()}}()}return f.version="1.4.0",f.isReady=function(){return v},f}a.exports="undefined"!=typeof window&&b(window)},function(a,b,c){var d=c(5),e=function(a){function b(a,b){for(var c in b)a[c]=b[c];return a}var c=1,e=d.defclass({constructor:function(a){c++,this.parent=null,this.children={},this.id=c,this.name="n"+c,null!=a&&(this.name=a),this.x=0,this.y=0,this.z=0,this.width=0,this.height=0},resize:function(a,b){null!=a&&(this.width=a),null!=b&&(this.height=b)},moveTo:function(a,b,c){this.x=null!=a?a:this.x,this.y=null!=b?b:this.y,this.z=null!=c?c:this.z},add:function(a){var b=a.name;if(null!=this.children[b])throw"SceneGraph: child with that name already exists: "+b;this.children[b]=a,a.parent=this}}),f=d(e,function(b){this.constructor=function(){b.constructor.call(this,"root"),this.properties=a}}),g=d(e,function(a){function c(c,d){if(a.constructor.call(this,c),this.properties={fill:"#000"},null!=d)b(this.properties,d);else if(null!=c&&"string"!=typeof c)throw"SceneGraph: invalid node name"}this.Group=d.extend(this,{constructor:c,type:"group"}),this.Rect=d.extend(this,{constructor:c,type:"rect"}),this.Text=d.extend(this,{constructor:function(a){c.call(this),this.properties.text=a},type:"text"})}),h=new f;return this.Shape=g,this.root=h,this};a.exports=e},function(a,b){(function(a){b.extend=function(a,b){var c={};for(var d in a)a.hasOwnProperty(d)&&(c[d]=a[d]);if(null!=b)for(var e in b)b.hasOwnProperty(e)&&(c[e]=b[e]);return c},b.cssProps=function(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c+":"+a[c]);return b.join(";")},b.encodeHtmlEntity=function(a){for(var b=[],c=0,d=a.length-1;d>=0;d--)c=a.charCodeAt(d),b.unshift(c>128?["&#",c,";"].join(""):a[d]);return b.join("")},b.getNodeArray=function(b){var c=null;return"string"==typeof b?c=document.querySelectorAll(b):a.NodeList&&b instanceof a.NodeList?c=b:a.Node&&b instanceof a.Node?c=[b]:a.HTMLCollection&&b instanceof a.HTMLCollection?c=b:b instanceof Array?c=b:null===b&&(c=[]),c},b.imageExists=function(a,b){var c=new Image;c.onerror=function(){b.call(this,!1)},c.onload=function(){b.call(this,!0)},c.src=a},b.decodeHtmlEntity=function(a){return a.replace(/&#(\d+);/g,function(a,b){return String.fromCharCode(b)})},b.dimensionCheck=function(a){var b={height:a.clientHeight,width:a.clientWidth};return b.height&&b.width?b:!1},b.truthy=function(a){return"string"==typeof a?"true"===a||"yes"===a||"1"===a||"on"===a||"✓"===a:!!a}}).call(b,function(){return this}())},function(a,b,c){var d=encodeURIComponent,e=decodeURIComponent,f=c(6),g=c(7),h=/(\w+)\[(\d+)\]/,i=/\w+\.\w+/;b.parse=function(a){if("string"!=typeof a)return{};if(a=f(a),""===a)return{};"?"===a.charAt(0)&&(a=a.slice(1));for(var b={},c=a.split("&"),d=0;d

    0H 4>'(9[1]*8Ҵd('h8k8+#=@K@k{K6n)m9hǕdp6l<`85 dL98=*hs @`X+Vfm錪f6PQЄ>xW@WRX3Mg@l@:8544QH5X0HT(E) oH@'0QI@HANy&@8>cYp7rGNj@drS?08;\:QK῅H{t ` 1` \NI*(.>H5A*Y34 ]*)4:ȄA]u5eX!)TRf5Ȇ)@H8 t҅(`N[0f`G@i3)^G؃ÀWȄ3 6! P M{3ҵ{P773VVQ ]c1"N>kp1PX؃(xBXAx`>>4TH8%HQ1pmpP#p5R0kӄha`Hc8SN5p_9Tc@گ@9xF4K`𾣃kP Pm Gx_ 6!X8C0(q:h(X?p*Sqo9x1hnn4W\@M ^`I*_Є((cPZ]GHЅWs/`.]KD8H]XEY,_X:r;ԧ$QK chNGk؍YtHX{X tKF AMdBN/96!6F! T&0ayt$0%B{'_}"18# (.EP*Ё LMjx2hФ2 (RLzA\ 4Hp%he&8BO59'uy@AN( cvr6dDHyDɤQ#>B NXFksK'#RF ?qy++_F<i5A6ۄCvlCs۬ɵCڑE3 AܲL1zF>{&++o/a/e11-&!><oKHfcCܰl3,4S 4|'4v`c\ 2N38aD@kG?3è)0a v4dB};_DiH&L6PF)TViXf\v`)_ID!]@;@f_4 Ag`? áx@P([*?*pj(& ߥꪬrƦJ3ɢ9%WlM@ilU,h7vdQwUE8.V) '+k,l'²z`). x ")q7 ,(JF`GrC_] ! ,[}H*\p჆#JHŋ3jȱ J:Iɓ(QVA`0cʜIfB5aϟ@"LL?*]ʴ 9H XjʵׯA}ٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװcd@H٬Y ABF] aǐ!a@:1bPΝËO,+`RF @5*rIfMA*pC9&  LeP >f)w:B &A(,0(4h8<@)DiH&yR'(IW M Ru%.AЖB(iV9AK= _)II YI_C0F: DI(X^Zj駠AjZ!1Ł ) I +$U'!zE@`M^r @d@Xa BdBY+k,l'0I vH E,L|Q0E@o* -A%!K4CdB =C! ,WH*\Ȑ! #JHŋ3jȱǏ CIɃ !I'cʜIM¼ɳϟ@ ѣH;R2@$IJJ`'hTʵׯ`ÊL`!6Ī]˶hK.[.;5Lj| LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸s뾨=\8(:(ĸm9|.Z2:"!(! @@}>Bƌ8T>7 Q_l806;$ᄕu@@ll( 5PNF\AB(}tȢjd2P0h$̨'mA&{>z ĔI~&Dw94'ej9,d[~Fhlp)tix|矀*蠄jqMhqbATHŢi@2H 2DDr:jX j;A)L«`5!@i+X%h)Z1=lwǪeZU;v+_Dm뮶GiǻT)@:0P dCz`P#e 3@ 'gw ,$l(,0,sRđ03Ip"$ Ys3FEq@Bt)@>< 74FF&K t_͐Es D ! ,WH*\Ȑ #JHŋ3jȱǏ CIɅ 9q˗0c4@3sɳ> J#6*]ʔ)9^4JիXj*$9JY@Cٷp޸ݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװcS|5K [n (L{5^-~:k4" Qvs@Wm OF3ϿSU@`ihA/ &`R6P,r8g %@⇥),"d=2T㋐AJ٤DiH&L6PF)TViXf\v`)dif\ MyKM@.l I0nnu@cP;hЧY?TIDpU4 ? @bEC1V&t{꫰z_oAA뭶%@? ɢZ%@,U) $%)T $$8-QƊ+iֶ:9@& @BAnN9@4dB};_DiH&L6PF)TViXf\v`)_ID!]@;@f_4 Ag`? áx@P([*?*pj(& ߥꪬrƦJ3ɢ9%WlM@ilU,h7vdQwUE8.V) '+k,l'²z`). x ")q7 ,(JF`GrC_] ! ,[}H*\p჆#JHŋ3jȱ J:Iɓ(QVA`0cʜIfB5aϟ@"LL?*]ʴ 9H XjʵׯA}ٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװcd@H٬Y ABF] aǐ!a@:1bPΝËO,+`RF @5*rIfMA*pC9&  LeP >f)w:B &A(,0(4h8<@)DiH&yR'(IW M Ru%.AЖB(iV9AK= _)II YI_C0F: DI(X^Zj駠AjZ!1Ł ) I +$U'!zE@`M^r @d@Xa BdBY+k,l'0I vH E,L|Q0E@o* -A%!K4CdB =C! ,)XH*\ȰÇ#Jc< ‚Ǐ CIɓ(Sd/ 9͛8sɳ0| JѣH*]ʴӧ %(իXju`4KlQa0˶۷ /=@ x[Dc / LÈ1ǐ#KL˘3k̹ϠCMӨS栺k^˞ rLڸsK<'LH %ȅ @_/ d:#ףkW@Ë`ӫ_Ͼ w*}4DUp߀u & ,@ wPJK)V x0HVQ!Pq (ֈ!PAB!@-وbr t($EŎEX@-c YbF=utPD_XP-)™u@d{]t؝ @ByWA2UU#ȷ駠jꩨLڤKE4ktMI|*C fs&[P*WF[ #4fv+k覫+k&WcMhѯV@cATHL!_F@ (4pC#- 2DDr:$Lx ds;0A^d :wvM` Q3AN PBIlD@= %`dgOip+Ahm6` xGq22 Ir@;*T2 J[PAipGFΚ)@&Е@(AwC{k60]V cWogw/o觯/+A_ cfo32XФJuhTg @H(L W0 gH8̡w@ H"`thtLd"EPQFltt=~[{%0 E3@#̆QwxXQ QvlD#A"Ь!$P$b 8`q{ADavdy7!, !zfDу@rUtAъhNH!GCw<OC̜ Rl0399M AّHŊ`Fe9L̂8@JzPҰFA`Qeb }0PF(ilt D)j4F|V籦 Ml) JqSwk{! ,'7"HAp!ByQ!Ã:2jLȱǏ CIɓ(S\ɲ˗0cʜ) /^ɳϟ@ Jфc4hTAjF=xа621USW]˶۷puvs ,Q͛l0`(P-S1b,K˘3k5*',F,C&i+dF$\V@>觠nȄyC@Fn)L&{ N*B%@TaE@@b5+no C 60B QE,0_1E@ }]ݫCFj+X g " [U,,R *W 0B0{к@Op qE8< h͝CTW2yrmd;CxsNZ-@Ci 4A$ ݀~3-VG.}Fgh1P#3?&'"Qo@Ȧѽi TFW ^0T:qQ5p Hm @0R'`h4//AW\I C 9 GϾ%(`a'H[;Evء }C lW(A$gXSXHЅRPcA4 0H,^Ð @ I' D \3.u]B 2J (`ьph0dqcନ>@@_A]e"xI\O$;lQB1x 6X\A.'U h$'C w"d씙$H(B/5z G XIv̓Zd2jL<QƄgA2L2P(N:'C4%;HP92`x eW܎ ̌Qo~.I(iwB~N&da'Ae9A ca@Ve|1PqBr"Al/ȴ$E,KQ3Dv  MT c@n8d, I !4%H.soYmAv.=y@"VaIKJD븛@P,iJ$JiC.9(q7"#T@`x| O;F! J:Ɓ(#p,#pȄur`J$&Q=E{*=(!~s_'$1KN5eYMsP cpp B6PK%<<pn/86R`kl7fedMHsQ)PcTʣ"(1nv1ᑂPP>?U;RQƁ`6F(CU/, m0?*vi)80Bl8cMj@rStw qmH&lU4=4P^0 ?8?UDB5KI I E%G@_D`##@cK K05O!;ǴD@0U>f2NP*PI2D08?@p4P91FP9K`1IKB =^!|q0UDŽD f> ICXIFJ*=) =Np Qq`n`dŐ(NaCF`%)#@@/U#x(Ď9k; EX00!0,2p64+* p~L<|Q1V&>9YʑTO  F=: x&T(D4@`*>Uȑ:LF\<d$W#3* Ex@PdP9W(V<@R8nDc0~)2V?,< WC0`ĕ9d|LaV1r?9?W.01s.`0<@21$+3 `!b-( /µޑ>n,@W2ICX aS^='G3#b#" @3(.K᠙%)Q^;NV3`[aM'>rR0jQ?!j(ZZ/yS?)3 -(<"+:9;)Sc"?":[2V)xqK5J6!'iBB[$w;*)Qzq50A^ZYeQ@vaF'p\z) cVp G+4}CET/B4UB0YUw V(MOAA;ࣜ;I @Iaq[Ҥ2@o6fwKb^Xq:h(` 8T/|83b@6a3#xharDhO?D`1ySpuʓ:XB4+ + :))ZGJ!t=0UY6@A*pyۄ&*)7ejJ\Y0̅P: 3%4UF8IW()%=5 Ѐ>8 :)*R {kn"Us : 9l+ാ +r5w EIvg&|G !Op?7` `چr h傾JT TR&Au{ŊkQaKg>0s(-nHzK wv!q$U/QKDF!J}&vb 7h^Q^P5z4ӧm&,K  Ev |HX<,]a, Z桑 ~U v H`p ~&m t L LQP=hؓ0 TPGvL9%I6VrAkIM} ڬyra 686 @l'rGV06#L xX6mAY<ӗe }`0SmVIieapp AtGNWKsVaL N+6WK@V}lKpz60ƙR b\oF,\0x4x hy (wv8:3By{ڨmČŗE !QPҖ-g6\Ԗ GSW07 :Vpy˔ KAy[:RLNJPѤ׮W֪QPL0naM&=G qebJeFԌz.lJs:ˆQDr`ԄKga ]#_tO!i}$  GǾ#uQ9}`{~!7bݲvaw}*bE6F ko̤MP'71  y kVҞql<̴J E @2Py R=GFox ev|>.np PP`nr|@t Upfq2, ɐ wVN|!K}Ҟ-uqּxT0 # rۄgSUTJpI ~7UP R8R tn}L!AEG觃MPU kJ! }7$tռn;`&'S~PF,>/͹HHn = <0{gPY zK0, ! U\/l(l6Ba\_4Z[b6v2s2!].B&*,`bB$VCOF(+bBPQ1?fVEm^J,}Ix}I zVJ20;#0!RQZ, IP1sSuM*r"O1)80/+1@tvw0`3 K.H'*<˧kv 1#F D8⋃%H@DH"@x, !2p`DءD@1Ƀ#d@(A0F8!@TҝMTTU^ŚUV]~:c 7n0*'YWQ p:ڰ"A&lСǐ=F (,x3b66W+`'Nl*C k=HV(PȅbNY< F 'ȺH!np(;zV׾cBJլjHqAH=h:,dA0‰i„,i6s͢xy%F@?v;!h&R )bB\#!K،zAvT rЁPJ)X) r&C,&^PO͎<(6 Ra,!Ol*zJ6ˍ%Mᆴ\z"qchA\,\Sk~ 5(!"ZPhL-0\–JM^ >p:!JBt7Ӓ4KT|[5:>l I#IJЅop͜TRcI3R[Vg:h@!$Hˆ# #|0 !(m[0"BR6&U/n:$bR!b0%V0:! ׈`! J2"GJDhZ| (\" 27$ne!F!! WFBg}aP8@u6B/?Wh駧:P z͍`n?h B"4|F %HXdm(? ~I<)"P>X;P8\`; k&BdɾH>6HB2 aw:/[f9aFЂ)6(D!}@d^ոM p#pb!f*G8T@ Q`.4av:՚XGBܲP Rx"sBX JHyc,,uB!i8J8·lB՚D38 Fx#0HhչNvr*QAq؍V9%D$XDF1OWĂ($ p! C/<#5%B@Ru~ ">TI*1bi&M(FxQ*+X股9%RaG@_e6H?1\M5G"xDkZ =XES!xChQ 06 8hWÙ1@Ȇ9BC ( bh4@2 8D6pKPBJ6F)PdB 7`p) -_H? 5%X]kxŻ e'iNa "tvu~S;E*"|p }ѻbs*`Oyּ!ĕ(Bߩ`=; fQBHt#5$EB¬`*`8 $HO:Y+,- -A&0S\bW29Ǥb 8G")B^%0"!%>slSF 9&D.PqҜzq#"fnp 5!0b,hDdN j@D:>AF O4k ,^ 좳EZ6f}B! 2drYw1rA Ekat*!Rp! ِHi]D@ruH0!NtBM)!J| *!z@H eu'-M5B\eĮ)` Vh!0E Eh"ц+. mK!ؾ-npx"pz#zCL),T IUP0!SFV`ܩO%h8VQa&9DK"(Pp(2J 6#tLSP;R)B#`RD&(3pZM*0<,5)+mť6y{&qa?^?0.0BXW;RS:A ?H3C:S0 \C/ݩS $;&)Ÿ1%2-Лr") XA1DX*љB 1 x#H%i9jʸ a_[ѬpBQ@CBy "9Q)\%r$xnɘ%"`#hP<.BHYP+4Y9"Y*& 8'Ap7D%8Nr !9i F#$p@  8"s ax͐_G9t᜵`œʜP (t;0|ͦ9 p"HH&[̖pс`4pOy=M 1zPHI5. $0lN&SU+\PfM P1&P:+:lڔ8[3) )tGIWˋ`6;8<`p+4" {F7J00@:SX  ::[Q_,82P= "0hŅޭ `๝BB +/PC:sI0:w1%Ɗ̅ʃP\H ;:P^m'FY4X & (c,耖 b9`D 6vXfL }؄w`\Z&8%N>(.5C^ ( T^$a.]_=ۉ~tp96` P ex\"Z8[}V85"-p)C煈nh+hp4L+$-aň)H(R0E v#ZO^0] e^Ze1zȅ@#t((vNjёp Xi-9_1+XdHiͺ4s %>f CJ[lSqLNdFQhJ Q @L3z֩hzpu pSw4W qp r#b!q]%BqPl*&$U]r"j1"5M E<3  Ьx٠p$۪ vtEr&$PF05pNh774 7vF!XH3!Gu,%=/lrP0E' -t:lip-i758p!x0@Y@ xXo4ГBГ*oUMv^Gˏ^+8r iG@ Պ3^H<)PX8RH[ SևeqSbo?10S|\ui̗. r< *m0HM޻# H &0P>t֢RZ4` „ ARh"ƌga+*kr$ QpƘ2gҬi&Μ:w',Z&LSJG D!0ha +BZwf r I` ['ޙ4 f[$IX-߼'SlY&˚)u^cld3 {P@B!*>xU!:Zڙ13z ,Jq67ܠra.!aUzo> (+uA 1%0?dBf=Pp  X0A(BD_DdAU4}E2QA~!yU) `%]T y%d&H醐 U@SUA<` ":ܜMЄYL7WJ0'&R$$H;u9 0&AB ЪALVMd8Z*淄A;,;}CaD9AD=@&\F1aK&BK@ #:w=Iҡ`7Л ~BG^`OFjplN'0gU3 }|Bm' 6@ ޗi{2UB#r4B,G D8wMW֥x㋎0h> q&}<(!92,@Ɂa@f倀 b(s@OXfa^wKRz0̕Ze1DB% q}a`O o B &J+Ȳ-"D|@-Bk`EД@¨Y$iRd)"DM\rٌMKcB.B:P3tC& <9HF .&C,Ip2D[$$ :0Fxz d4H-K2-zb EUe{SA6RdDPkܕσ )3 V hFoD uhrg>K`x`Gd.8`t݄@Ԉ Ҥ@6S jW-(uBvaQ|T(AX `*(!R 6  Y!M? bڋ@7*ٶg["W(zp'`TI-BDoU{ A:a@4 0BB8 AF} / 0p!,f h8J 3"ȹ"$B5xTi IK@Sp!IR̥E d@ 0d@QL4@L ,Y`͞@h; P+@ 4 $q !Ѵ=QB 8ˆ +L1xFLEl XNJ @_~T!EX""F0fͤ | U^U@B1@"Y̆m@t +E-+-rbAI ܢ1ZI l$T @"  8 DOŪ) BMU#  Q&#KTeX ',RDᄊ :&=d; d QHX jD`>##&L 4DcJ< @} S&c "cO|/r1S t PB`TԒ ! N|(ɤETH2A`d|_ԌCdK`py]@DwTdh(0åOJDB)&EQ|)%&%DLrJ t}#D0 D&lІ`DĩQ_Ĥ='MEEUhX*GfОH&A\ˍ1XI`D4+JZm8p\(mXDL sxjM(I N&+ΔMXdMĄ:%jDlSFH^2@ RRDpxC_T (e:_iBHA)ΜojDBD"lFpîʄjADc\U;ZBAh<B8LeK|&$D"V7E<6O֮Ehe*rߝAp҄/-M/}@~EBEI !O4@"E#P)XW8EjUoE) $l-h~,j,o2Yy&0]U_A1AxRE U℥IAE(_lA\B+ {ѮopE-(PR>lEKʼΑ0$Ud&F 7el$0 ƬVLDKrBn>AR@!(2MfFȀ $TDU+ڌ0.&DY^ 5B0 $TB ϟ\Q_$<5],$pZVA@އlʚb<1(xQB8A4uDeT7iA"DjNNO_( i_SV `O&›r$x쨗X"2D{ bu׀hv^HJFLˎw} 8|SŅ#e< u=Xj.:B05 l/8Z8Dە%_~Xd@ìŊk4@c0f z.xLLԌQDI]j6kF խAEo 'mP&BtȪ`EwOID]2HfrC+HWjxb`XJo.u9Ld eĩ )o~pkwLPxCt@}@ljJFkG_`%X4A!t82JĂ zh@Kh!8Bs9Np[LpmFhMLj_6T@z_b兟cW&KNW̉ԁc 7\{[ػwLd G$hU4A|x&(Wabv8@DQBÀUbL?d)<(:<_OHwExQxҮ\n[_%*w @Z+8.m9'F(@(9@$!D) ȀmʇW}Ň'DuRM \6H @DLZM,S@` fhp$(ȐbDC* 1"38dI'QTeK/aVHw,X2D(2fSI~6ʩ4pA%0vaˆ s0ePAGx˖nݓ?phBHٙƒБ5%qkqcǏ!\lѭ\rkfha^8B`65B`<iّd,!tXI/҂` r D&b³kb `G1L4IMk# TЄPφWիΖM^4 l`(> 31QzI& k@t6 @PK޺T@ fTw=XEn.aeW+XPF' A`"@<( lSTEXA V05@H;c Pn|lb~Ihp!LE#4-q(BJU*!DSU->PN'I>`AZ|U 2ANKEΡg:H7|P,eD7[' FhA* _.x Ca;@A $ZMZ r3D74pÃEz0,CaPD?e{ӥhD/ I!P%`4hiO|LA l\G@6*Y?aP`H'5W^FlrP'vpf0D Ӟ @$g@ЩdX% 1"1~MP_WJU=IHpJjD9AwC܆@OlAQ>R4 x@sw.Ɏ&AlQe7F<\KKNeXp#6psee'T%ۆh N laR":%iŭ*dTAK%S̀H1 49XVP ak6 P&EYev>2 A,ԑ/\ugpj@=#te[2`mBOaE|*0&`e? \\Cҡ}.uU1I: [fY f&HBZڇ@-` O`N@2"*Ҡ " BNO`F" ^epci &@< & \/tHtJ~Xuj!a$,"!"i$ Lr$# ;ٰ [CDA\})#A ;Hbyp  Ԡ#"@QB,š`g bf! @t$8` d!@8@O aq 4 @B.x'%$ʐ͔ (@ "-P`J`t)ڨ#x뢔> $  $6)q !7.aRb jj># @ "R ;xiT6 j ]Tgc$ x v1$1a{J" D"^"(!,Rk0@!]a%G%Ħ j~Gb]¨!~ \%d6.! FD2+m Z v`- B(!F `` ` {#`"(A "`V.B ,NBj k$r@ "r3m !{ 2hcd!8B~=**"Bo1`>rN$/v@U:( O*!!:b "T@ 2 2ی$ >-"> rܖ:. L"-1<3'Ɓ:֓3+??|4((C>*0 `CRE\Lp6JHL`8t D 9Z@]@6 ^^kLҢd"** 9D#L7 #P@6p@3O@8PB$(d@$ 2 ~O/->>|?r$8B?; :ATs1fTT{84>C&"Z(v@ĬC>6j-#T6c'#1T@@W*/0Hzl&:'b 3B:ތX:N.8DP❈l_>FClN 4TYv09?~UKu:J޳-Zp&V$.+:\G%-6dy82.vW0H Br%}sSKn\6-TAU 6Wlhl7emBuѢ= gyBF7:"N @eT-ySa`NTwcvMA<3pp"c$vbArC[cBua˅ا. a{c2<NƣaJT%N"Єc )֖Y+$>=\MchC'B/+, ;^`Jqb|K8q#y e \W= J ,i0@z`Y}e@p~-B@JƸ#RG,R^@.{ĉ}68]ժ|nd;"{G+NE!G@4R3XPv$.=4%X5Ċ$l$=*"(ch46dDh88r5C.KKX<8L'0ݒx&zԬ0mA8`KH} h,ؓKp8&8@ 4"TiwEp " M2ЈSTJeA9``RĆ(1I~ݴOL_VW;D\ E;z^DBO?$t} m[.  I"R#?ΈsP41I@F` z;g9@ A bت 'ya).$sa WCnAm87Q_cU=@ڈ`@< ̡TL&񅖹BnLa@sb8`Bz&9R[K cՁ!*V#:РACRG9;P( 8c5;TB=^̡z< N9:0Նtd?p:/)3$ =sN=P#:t@MA&m0uDp:=L^ C흢lCcZ4{CO#~!biPO٣hqY T}DAkDGWфC6x v]NHaiO:N) LO^#Ԕ0G{Hn6!w)Z9K \Y[؂Z6 /2/h x0J?؁v06PTavb }0-.;~`Ny@CqD 0 ʸOdɤAZ +X ȧ٥iÈF/K ,e)lvo4ĬeىI _J+I W.G[`!s5'=E71Á SՈy2H[8 Ŋ 4pbDRFl\@`2O u.1AK_ zR ;KG0˙JhST)zX@ im9N@1Tj<0!M&Xk?[RթT_Ԕr+`ѡB@VI) !H K?4=e)y$:G$@ deӕ<`ȈR'=Aym<⤀@}qP<8MTgs]>{,p I܈f]*]eاb)Mya28);ƻ[bD(KF )*w*H/L ǗPJj|_Jؿ$.q_B-_LV#]`ae { I%"'ŞS 1"_ DuaY_f٘3L6W& /zdwl6!9@`Rb]޻ J}T|`1a\b(TRp<qawL [q]iA'Þ!&(\0rXO%0 1{e{!ڗy>O}|kj7;-mp p9<=ad(^G0VF<J5}X7#ԟp'f~;@@GɕaҖ8e7ǀ hfqa&mtFa7'sVl1Wghf8ǀhg\rƦn e Xo)6~s5x}_phVe!Hm(ȃgfYgqp5tòR>aAgp?"q.10 9e`de RBqBdaD؀c?gFx~83G(Hh䆑|[c/,+}d >VB*޴a,s J0z3'@z/xhLjɨȌU'R  9Nas)t?yc;A2dt8&4P; Q3Q*1$֌ȏ"G Aw?,d@ i @l‡@ 0s+P _=@fY1)3I5p `) 0d AP# . Q LA(@DѴ #0@@p" A 3 hmo q)nEH1jC4W2CM@B>bL2) c9?@^al@ePaDi91 ' )o)13 C?"H7-e ;Qa:i3 Rp~2 q  M9$s{6 )Ț&"1j@C$42R:$p(A,=IV ,(#qa8ɟy=2"qyD&IYV<AEE1DTFyWHSm)#J9,8Qms73D`zYs;@s4!~ag\95HKPø{=j z0%*SJj:0$t<1@4nm78e*Ԕd4:sHk$[00Ӣr+볊@0 P `k0jPgQkU A14aѶ?ࢤ\00 JQ  (p 1l)q6@ѳ> !!& ~ au `Q) h` `ś  ID ?< ykH;/EO;A&0`{d{ Rߔ@o,[?)Up T0 Dp&p=g^V.\/ ǡ, \ h` p };̀$PU& #da ;K9lip* <` Q`ɜ Żf\) 0y G) =9[l  0I۫ qd B+ iAK1i#MFZ!+B`*- y1p3%0|.S |*0Bp9@1$1F  %Y%{v*PGaڢs9vZQ23==0<:08B=w1]8ĨqNҢ$4 v=ZX=c .zٓ='p{vx{-3 o 63ɘ =';|FD1W olWaؠMܯ-=bz6@ܟ0Ӎ'0,3ۚ|5J^]x}>0,<@-4x ,9808?ਬ:,i pҜ!,p16mY6ƯYo='6,ъ : @O$+ λf9 o}.8[Jp SP ͽ 'qHPv{QGй'ٸUlQ2)f^ < @Pù  !  ^liȢNmjn"pD ݛx\pP@a>:B <pQ iny 1  0l<PP @ rL:;ы4ˌ$sV|йn J` `J"l@\` 9 I)1tD$;;*BU|j2,! 0 m0 tw;Hq u) @&ְH`5'nP]4< &  [ 0pq IШK^}Ѐ;l( ُ/5i=~`Q `!~ʿ2.>(`P `058њ.^:dN!   K" %dP@ĉ|0H%2$YI)UdK1eΤYM&\ ;HDb w'';c6  *T1rS1%HP9r=BFRkK u)4)y_פq4`Иcqc@L 6lQ&i8pF< dGWL)AEa2^ણ$V ]UyyկgIͣ 3Ap>`H PR &*H i; Ob=CqDK4D$b,$J" bsqG{ux!HTrI&t'c<܍rK.Kr#4L4|RF-J+mRM:|ZOB 5ЗK:O2 ID+R:wʈ-MSRK5QJOCTXcuT̂Ot+gvXbG!@|̕ 8%HbvZDs,! \ Xjwܙģ:HbуV^Е\zWXAs^ 6!~8 P^xb+ H!*ydNkKveQ8~@4;7f{fjf#h'":i&Zϒjɵ:kvgR6l;F{m3 ! ,*UH*LC‡#JHŋ3jȱǏ CIɓ(S\2>|hI͛8sɳϟ@ " CuF IJիsʵWb"@I%| pڷpzIQ@%z$FBt*Pԯ; |6Ǐi @@!9"蠂lsiΊI ₁$;B5@ֶyu 9Xptm 01%wJ<ؠ= (6=]_|aB$VY T,(t5~D1@ ,u($h≿1 (N6848f8(J86J@<@G6d\xD1iOfPל53m)&DIl&4[!A‰@Ldx!M|z&SL)@@ @w )APq© `GdPPH QZ> ž0@{:EkF$Bd+xGMKR vBHkQ綻 UW .oi4K`)&c^, :3Q\0H8"^~ @JЂMBІ:D'JъZͨF7юz HGJҒmtҎ%(pZ%#$bӉ *@[OJԁDTdɤF.@,Ԫd=8HjU| ,? 0#E}B ! B DZ% p:V<]MtPS:%= z`x;Fwhtjh@/0 dRw`x@dh;AP)` (.ru@?i`7 q xw}A 6Xq& r}C`7]sՙ^H .{u=`ъH `?۞&/q8 z` Nph@@>l-F 2D#]'cQUa4 6~YL@Dnhk[7=}Il(Ce;ޮ6YЅ. v*1ie+"bvZ`@rfTգty,XǺXjXd@k[ .6AB}! ,_WH*\ȰLjŋ3jȱG CS\ɲ˗( 8s1&I(C00!!96JU.TJ@A[L @3шm``iXK%\p]Յw{5TTZ@ +0r1U,Yc %=fn03F?F!O.Q¶T˲с8o+_μȟK&+ Y"Gӫ_\Ÿk:"'^H)X#P%$%$2UW @EA-eQM,0(4h8<@)DiH&L6PF)TViXf%Vbå$FI&2fpka \yy-1f ڞ j袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkؚh͡'ತxE Y 2Y"UA#,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'k }+&AS nX/XwT?? /C; ;}0&l '̠ `/> x;' -?d40=^?F0H@ D } iД&@&A) ) "k $y" !Y( A袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰K*무j뭸뮼+k&6F+Vkfv[y 䄷@Q6! ,cYH*\ȰÇ# \D 3jȱǏ C>Cɓ(S\yRgI͛ %@>p JhJF PJJP aĤʵי@ ׳hf,A /ʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μS-@k9#3"}F;Ρq˟OϿ(h& 6F(Vhfv ($h(,0(4h8x~A" #2${@DIPF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜vZ8 !yB0R,4p@ 䚫`V2@ 6` 'β̂2 Ҋ@?d-= 1#Ԋ`>O+! ,bWH*\ȰÇ ˆŋ3jȱǃ CS\ɲ˖ ‚˛8sܩABFJі qӧPR2PeԫXl04lhKFWj۷S%+ x0z LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkν;\*JY̻j)e iypl`1U 9&K tc Â5Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v9%^*4a⁙l md 'q4EIi蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6;z`Ā( 4 4젂 @p D } iД&@&A) ) "k $y" !Y( A袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+V]K,!VtY /2An V9:0 ?4F<Î:r)` z 3)Gl>0k  (1#? C.3[ 0l\0-OKÆ:rFPd?LXoN+ECɓ(S\yRgI͛ %@>p JhJF PJJP aĤʵי@ ׳hf,A /ʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μS-@k9#3"}F;Ρq˟OϿ(h& 6F(Vhfv ($h(,0(4h8x~A" #2${@DIPF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤ:H =!T! ,'="HyرCÇ"РC3jȱǏ CIɓ(S\ɲ˗07x8sɳϟ@ r!=n*P蔡 Qj3 Lّ `ٷpʝKg*znj'N+aeͺ;,„04MuЫTNuz#ֲ5D(Z 羼w- Cơ aTeF# n"|{ӫ_ H4>Aw `D4UFD8`A;,8!F0'À.qȡ:,Y@PGJދ0(cOLP\0\l  k hJ Q (0 99ex90`i%J 5i)P0G@ ЈG3*蠄FEt @(f*nċ@ A^#K$و@h,, #Py I!@"ZFIAAd- - -"3/ t (SȃӧX&1P;X>I'|V31PpDX+PA#|rH-tmA5E9hkLJ]`ĚAr:Z*lHFAS#1@8=P--I @3 THA8nA!мsdDF暙E Ī@Ⱦ@xDCy DI7-m@ҖQ`r["4%3!(2SI1GJҘ`) nF4hqE+NyRD6)5BǸLX V#NXd/Qqʖ 4 nJAJ\4H~v:L9Z99xZҾ$)^@4xR^5IJEVD 3ah0Ī7#&e&*(}FqYϪ3IZrGC\V udf1I\ld6ISKb! ࠩA w$0D}VB dI$KRlr@e$,ksfi-tFW\ ::\Ltn* qp$̑r'n,Kc8$(po6p7 ]PF> !P|@dxPl:P \(ĵ& U SNP\@ Vg><<F 'иHa+ 4oI獲/5NuL; Z l>!ڽ&V<\P ({&K 4$o8r;0@$uI0AXps-8g1DXKq(-gpU(!!'@c@A #d E@AoU( P p52N!O0Hj^'<@se 8}nnP4MvGM Ha`58+ Eqtq _1@ c "H60<-# )R)G" i06FS|iէY Lr ֤ g&p&qP: :܁)P&P,u& h#8l`!E]% "H磡 ^sGtALw. !rO9 1 P09`q1L̎,8} #qpǶmp ~͍ `@pPbGw $awU`F.ɍt{p阥OB^Rho/|Vy܃ qN|  mq̔@僛!@!Iq^A,}ܓp.+`Hr9 Ђi=ja&e} A0ڹ- (pК@ʣmq4Aq -M ʤ|A&`ecG+oLrfF$@ &0`^S'F-yHipq41wαID@M 䱉=ok!9? @RΣ+B%7ų-BMBF  w|Bɩ'<ƣ S&`O*O!H >DF@d"@&M 0O*k9@C+BDoeU|騘"C"IF" Dd{eUZ40CX@$(dI yH@\"9qP ;* DIH\$D' av4D2ɃAhh$"HrHX9NmݾW\uśW/^;6C`,(/~PCm6JLa >rȀ0E*(N"Dz9%`@ Rt!Cv8eѣ %J(4Qb &86<;u*xaԁፗiZաpguA:*.S|茹d4"8Pfa"(*dXO>B6/!FMH84 r*0jKPJ+2K-tH2;(?Pa!3[(2;"`27"ml a06;a~P@!v!N~H)LO1;Uh^TzrFPᅞڜ0B bG۬uN@A,sA3S_`:`rMB-Os`A1+M/>x4504.c+M[IۚS>$/~xԤWR'<>-Wfe_:oHaZSͣh B1B;x@.#7p6!:NahRxq=+݃:̯g$3LVM;.;NR`0f>i[I1AѤV>768;t`#VH%$kkqx`6Zfj!AAX 7&E c/Kdg4 QG^@!,  y0CZ PRsRIoAJildD(?D9JR#RZPv$ $Σ,{@(>0IWǪ!>`hbԪ7f;vs\cvd@@A \tU*QSfD#?K 2].0A4( 8Hr]n&?#Dx%5|`G@l:%H'h6@a:34\gPpjAe5H7u(lNXaY'?^5l":oq{i L9Ve4u@I$ i>ߒ `q \@ <#Q[ {|@]Z+:x̏@:ҁ~ d:9,@bVf>A{YVe6Z] *+hPŃ:Vn` 0#|[/P ߨ$bůZ XR*p:f*6":zEG H( _Q%ȏfPWԥ m *O-4mK*@+6  U+ 0U+t- GH)4dy^0N/tdoAN8#'pے.88bgAY b=" {:4Wm4* $U`^pUj\l*qke[*F[ 1.ZK W%ۑ((Q0C>bўlGʀA'1ld&p|!El 7e }.e13U .-t1` spz $h1m^!cxc214in@Et?9>tRλƈu[,lh, n# zTGZa[|vdH/* { D:6V@J@N$:Y@, уX]:DݖF$HAx4N,y01y1G$$R bkɼ/OԥFu\<`LJ ѕ|}( KHqrAlW3E{0_">HuQ2B #Ld  p K=-C1h1;*c ); #x4, 83B=h0xYҋ3B!0RB0b&t+Qs ]0Є)GX3;3n 2 #~(Hlc ?څ)d06| nPڅcX=h x6'K )`H@ 9X+]C)Һ:  t0A%0%n8x0KX8# aygƕZ^:Htp 8P ӉYHIT7;8gDӶklԉh~<y؃b#78v<(=r @?"K`BpHg#;8ACȜP_(hjG8X p& >=Jhʪ6p@>s,BӉ"1* 7KWqF<ق"0,%(Հ>\c<հ˃(B+;0(jt #(  u 0=)\"ʃv)b2 Ƽ+ ]%PǿK M|,` {q# ê<p̰bl $4OHHqp !ȀXXUc837(?!0$hIq#!1J, h *Qc T Pj覅pQ PQQ 0!dDR8c@'Ј`Qȏύpc)#O}P(0T;ՉaLx16R\I((P 0@؀ɡ01X (.3 Pفrȁ0QDR8!P,ĂC򁹑%XxX PP2!Pi(GU b8Hv4耪\X! !` 0ώ O<YKs9> L oAh Up٘Xkg#p"0˩h2؄A=I Œ9I0! yY690؍ [.Lɩك0 L%֙L Y2q!Pg2сqu!0 r `јIiQcĔzӌ* ={ݏ U`$9`($r GZ "P0XaJ*؅ 0MrJس% _Q>Q QLis)@0]ҁ(#ȁ!"&0`(@'p2 ~nt`z['+}<г<4.1=8#(蕔t άԉJ $8'? Ј" fH !DB?V3LJ[ <K2[l0ks(j0d2.,09/LXk(h?od'uS"ɹɎ7+ )82C Ј9hH5 lt_9׉Xh1#R췀/EL}@C 4:a=XIG08ئ8WPb7xWƷ(RWySұTm-> RGb٬8D󃠃UI ;%GD~`33nE lBs8{MnΘ@Cz`yp<ЫQrP 8WFCy6Tp#ҷX*9Y. xtd 3AhJs([},@{|Q^{4IK+h]M,'skB 0Sz؋D> 䓽"H苤pRg'pI x+50oNDga;laAɡb  4g. T$ b`ƈ?ZD0@Ir8#@ Ygp`^  j+ܸrҭk.޼z/{ 4 #k+`HFA!B!g`@$, b  " Jp4 +((!Qǝ3$2Ć90ăk(kt01z@\v2p .\N0KPB 2%\1DA H¡ @CR>0ȇ W!8 pU,;@ 4W?@O UI*$M:W&p3dpN?A/)dtL~eP(89$@2D/0U:q \ hYR@ ntPC,$Wf֐C =A %pUsЅЧss!Cm w2@{a !$: >9P1#AZ TMlV9.: qN*{2tzQD;DO/ **Aq-1Ѓ;)2&h 7`TNZ!2E\$|qL&tp& m%D?Ā F*0 #!ǐЏ~, b2 ; L"&4Ĥ$$`2`yPG-Jnȿs A*6!.AL$04CB OR߸$Pi40 )A DP @j f,=GHW.@rhAHy4! Kȁ IKZf Z;T#,D% ( R tp$$F0B$ɁdRWH"|K |hwUg@0 O q?>'?  #Y\G$8!Br%: LЃ!g@7@lC?8vIn" 8/*dC J`:]7 jPD=F խ:ɗ02d@#XBA 44tZ>TT#<: N!AZC𩙫 ;ֶ$`X-dVV Ak[2U(e1!t|5<| gp#ٝ5iYնbNYCV!| G(rTs B<m+3 "J˹ T0Z#^iU| NT%A7*np9!5e-$L]&&tr]؀{4$@+0 P/@0 PzÒH:uy|qA`Ϡ4]K(A8 HHG\ 8Z XٍэMQɜI!,3ŷI]D Es1M̑4A  hNHCLH87YBLIVm%<@7<|Kt0޳ nـ!QHډ CBen9ѭ!ť T _-̀W @B@ BP; 4P]<ᶬC D\UJ:Z4HҷA(498@"\Le\@Ln#7.4N#;`c\-|@-  H̑]6*%N Pl@Nh_A6Alb]F `D@<@g ` A P`$i.JWpl} ALC{C 0h|@ ]Q@h D=@)LN! 8KX8@ #@(_6@^ltb.@@* D"$_D H0EE)\6|Hd@< .O\%PqT6\CH,„p ΏTL@H@b@4W|4IN @4W'?$(Î;0D}4:lEReRx&t2xA@-E3 'AW;0&v]d6!AW' AXr\4(@x \CC0dB2p e7" 0NN| 3DID+dZprF ̔9dJV CNL8C\v6x@yWk`A1|0 AC\@A(́gB@"0) D~*S }gR@$E='0-=x2 YZN.@~ƅb!32y3ɃABB (8L %< pKD1 ؀ tn6d90HAHr0- x\ =ą7QL¸#4k+T XzFh"Th2p$|K%d/ DFWd04A)1X8Zy2D䥯qc@YA,yW"cA@8‚;.X5dÉj%Cl.6^ LU؀…WL|0m^~3^.pS/]c!lЮhF+CX✂E AL@y…WL.,@V\A\%T XCc0Ħt@p@\(qXCA─D9 1Qb-W&D1^ (D%ͭmڅρp|(\"=*&8@.@\ެ>NS<`!1Ae;<l\<J/< -\`Wȯ|@?H*Ap+,oeĪ+*9p+_JJX OW<@\nńHJ<@X)~WHN1D0\I'm\:N -!.Ĭ*D@/.#C'}Q*9RQ"C@+* m+g1^N\+(CHKy.A|tpT RA@X RCd QA( DF;} \xG3ZNC-zN@u#3ADDf4FN#4$)X5 $ M!_ D5N…%0K e 89xu$=A / @Cz Dzg@{~A[{ddzkRRAYxCzv zCte{~>[/+%B@``@ "0aC`5SFLWum&  jX hK*H&(fdjm)P` r P0MdH\( bLԌ#!2^B?ȇX"fe( [p CH]%2fi2d  ȃ70yB^h [%R@ G=0h_z `'b8o/-8]yc:)ljsM]YJ vu3hJ2b #D2xvo^s`  8 y#/,6c  JHyy0}?17`$re \2/Dv  x/ɁXel}x9I9@! l0BN X۸Sev0BzAW!^0bz1oOOG<|#1HadumtC4/KaD "R#% .DD'Pb&b W +qpVEl q|!ɁL fB @6Y6 2\c !A ~` +'ˈ͒ž\1s3)XHdFH,A@$A=F"̌=6Ra@.LG>dptC!{x C2k\ 3 *FR'FA"2Lm`L2*pl^2@]Є*DT:E $~ĈK, \R5BLO\`-i$"қ܊ L4a@&s(Q}=ޖCU4yF@5յa P7$i l(@Pu#*gQ7uVᅿ$@g@ J@ a 0@0v$P8%M>])ax`0֍B ̀@,]`M!`ȃ"wU e$L6H|hR]@3ۛ!6YoCc R@#T%">xx3ʜ X}a j*  s؅f1P9F@U@ 3@Á@& JŸQ!L': LQDz {uFAʛy/~  wBD@b&| pM L*=.+jj.00'LF@d@0D" `@H> 0pc#@{zV0p ^I.p2f0"J8n @0B\@&gc#D'x 9#@dnB"-2l(,#tBz@IZ|n;"h'+@"RD'LDDz`z!n%\K_">BDr7/sr` tQ"d rp1f4$f(l$BL$hx`-X#Pd*J"9<VD" N b'_250rB j1e&(DlN<4c~@&l/LB"/$ $Bz@n566xCpDGz`y\Z #0.Tkšf=H6K0e?*-?D=" %q҅z0B08ޢR51ԍ^ Fc D`CuB<`Cm,6tE0Bg3l 3l [~h0Վ#NJbp`X7z%\hd*d"36T50$N #HC,Q g*Y8jM9^"2#%^TC7Y#=SE NE#%3͸YD4D1%zBl#U3Rh!e=NtB b)F(YPS]rch #dcbX;\@nMDJxFJx(@`2"\HdE;h*T(Z%Z4#( &&Wz3ETc0b@~(m8B#"']cG"T{z@7L@.`I15bWg_@ & .0mjV T֏Xl8B jDU"oBh!Nq 2 p"i'@4 2"'%oEDo X2^l"<F qTЕG)R4@r(-[}} n::@V0hҕ*HfR&(( j|*9 C 4$"` mK=nC22x-#g&>E%7 w}m`l&Nt&DE TAŬW?HBGACp#P1fl 4 Jp &X$BhB'Ӏj#8XΌ@v# &0W&JC'RBYqyR&%B…6t:C1# bm p@}'*@!2>Yr(hxCv #z##'hx+m#p7#G!dnb$p&g` ^iX-"m!J͊H3>;'`fm9:'Azì&I"v{l'%|Z,'n 7¤%,!@bЕ̨&lp#0 ꘰'Zw#,i/9n#!r9  C8K: : 34:g@<`C|5s8do"G y@Dz$  ɚ "9١E r藛'dh^]8#Jǧo, <&+#`P6|bF @6&/ ?x&@,SvhHcsirv`AIm K(y®*$#oum6:['`CrYV7Lᝯ~9Xb I O"m&.B |Pπ]y (ɐ;:'8;A#Z"{# ~NΐiǼCn&(UJ-tbt A6JCf"js&]"ϊA&)6ᇁ譅 n2t{}۶J%4@,!!#J! L"vt&rz<#F qo~2"7Kmm.ᘕ.C^<(D{&|DJW"f !$~KoGa`km`lY"dmY_TZ땏]ć *@g,>fNN@(# F&DZ31h }p@@IzC#ߜ&u:}Ih]Zq ¡84f >e@  |Cm̥ɐ#r -,M;Q<ڨxbbev%$Jt3"RƤ|Fe.& (۹z&& ^:^*lC!r.J2׌@^.b&LH^佳(n״/z1P{ E6tXfҝ}-H)RXGVhR" #bPHHDZJJ4 HƠM.PJ@`r@Lڤ(5c 5ւ> R$NL@4B^57$Sg>'lCi#T!*ÐHvEEKn%bT=`#=҃+ңR S!Tk-ff -R@5tTkV3|&b4>@h.BjB"8P4z >@A'pc (tx1bD/":_8;^I $t 1a 掌;r| 4СDP *xԩTZ5+Q;#hϜcU$P䏲j# 2"X"uk…IQٸ.iZ<~QW x| J#$-V"6iMIKe::̑]߽[(ɓ{ Z_~i[m"F@vt~ .\dӈO?Cy[>tA30a"Gc(a `%DBtR#Da=jVr\СՍ_$bXM0t9a.ur*F$m@C% D>%x%Ò9CdAHp =A #o` $AqU|i (ڏq.艢fUcM =i@CEZL4⠍BT PB E"@eЁJ1VP%к'L*D: x?04l $@P@@wJ(r9Mh"=񒠣2 @HB*d$jƚЃ*gD40hJ:ypIC<xC$r+o zƇPP`YDPqC0)F8Z,8KlnKTJ*̘  Bh4 8"L 8kbbK;L%ˉΫ9Pb8{pOQ` c( I+pIS=$Z  >V&1%\A4D򐂾=Bl}pJSYH9"{rO ZR@p+e: u*RZi(Φ a<8 H$() 3$/I2 2@W|NR43tZxCUKX_!i( r# (MJSps7DŧgPzC>pLQQN&1V%a&hYfK۴H*ix{V9iLn'"A|{PHB@Tm$\`HMPvC5Ufpt7r2a ļuTk0OPZEP<Dú 2`.] \Qh4qV0|H M%uǑ#B0V˗X4 GDP*s]UP ܘ ㏏""@2«Ҡ$VEz\:PaȿɽU~*.3 KDWOsu{i0W'0=p'CV<@64#~.` 8 Ȁ"UA.wa5%(wcG"&0@]Qb XFN(n~Gv@R^2Aa7vX@("#IVfu@&DF`:X" * "`B@`rX&!`)XiYX $`,* P*}*B" !,Ri2Ś{-B"d_dgDq((a:U48(  qX#W-[*ֆ&8#8dA16"jH_ aa1 aa#6[;10 2QQ i tf dR" )pUDf(-Ql֐0, 088/0E=CPVMQ#.P37#K, 4l(@)Z5Kv{s/14@1v)6e20 C ;=0 9e6 GXJ -i^&ȅ@=5j&gcv"RXUa 3CЊkcZe@ td4"!!'u!a#n.-w D ɐ@7{@!Jp jv"85 a { A}H !U^w"Yscfq%4TIr.QV+KoJهA @a7u㜾 5phYc;p3@@0I;D L%2  v B+ & A@FgC2t.q p # Ш'C <*1֖= 4lAuQ"E=D0C@aE!I~9pv{@#04.<SVf-gQ Ñ I n.>P7gt>|@bPyD@5P @20ۦr !-EP""C p! /!8JR$n8G (H9УE/AdYZ pr:fߙ Zz K;U7_0?j|1Q $ HPU@Uj.?!  xfa+QB|.y.w[! M-Kj0\Dl 4 @zp.P /l{lJ^96ZJ4T@cӹ 2C ;y Ecp; 3 pI@؁p XQC0t@Kp+9Q!suU4ZR:B\dcd9d>#4JAv,ZQյf8VcQ1$@0y%I +XE2,$>P;28 I,0%%+KYڮ-$_UE"q @JBTX 2@`#+ z-qOn5P XL]͉B#jbCgQ;}JXWf1_q9{28z#zQYrV7pvv$;f:EsJ&"b1@.-6Z5.q, v%.ON#r2uvakxYa,v3v!:e׊>T]Q:J#-]ĭUtq[>cd/g) 8a|^J4Q%@'1$6۱|80%$۹}@p+L,/Or$r$GB$*^ rR6',JQ$C`-\JVһfT&Q$Agr!S#oH9 _S`ݺ@oY7US#4c#x+K0 DrDF9e(a5_%*Zx>`K2Dp-FXZD0LI?tE2WU 1$F =`D14 8@B oJKC2Qp|iO@ O&:~ X <1 xDXq Ap1#,R<|@d D`%FuX!qdFADGO:iSQNZUY^%0W^?p`PP>"v8Gcw%LX ŏ 1R~ h B20@ %=o :ha9rHf᫊M*2hs>f#" lqix)XK\p{0+X~BLRG RƂA- ,@".8 0ؓ$pJ ̦+I¶rEcqFb I&@b/ Z"T>$Ht 3F # `.M j2 A4"L4 L 3.Ha$ 4# c -Px04 0).l@{ɂ !"  +-. rbcJD Z$hM`DHOj (( h hL$䃡)>% `kkta#8 c$={ȀAJzا0{Gb`!hc^(X :] #dgt!k|٠^Fvy?1 =J4a Fk,4.j,2HX.Qxa[<)hx!nx y"#%窆 !s{Rv0unuc]*y b}бVx"؁N 5 V~֤kQJtJ0X :/$H0Wl`BA58#ms/D #<3L 5Љ*C`:T# [9yPQl=Rb,A`ey{ 2(Ft!de ]U䣏F _LمQcQDh^;CԮ@(I @YZ( `BEF@DA\"#f ‚ e$Q؅/(4P5ã5i@ ɀ%mcPa(+Ћ?ϕ <8"`/ A!,FADpm.O!we@:nBMa5I} PԦ6)7Rѹy9 o$͈DQ#DGZR3V Q W-@Q$p/?81̘< @4($ 0f]P{ptECALAFMWOG@#3H`p y䶇%euc#? QN~ BpWQjm|c况?vƧaTm@@ I  M$*IA W4Y.A=^9UD ( =p TAE!е  A +ay Zb;'pl #A 4wh=y|,͘AQ5~J[f@XDMrV ӡ>ذeAX Ӧb(@+:/а  @3! #@ &xO2 Ty1Qpp+3` Nw#$ a&t(%()*1w@=(`'4E #=0T`2OBAĢn`@s ExW2 @-@;lYI9t?PS݃Є ks DmTi8c|Q̴#@uSb!!T#oA#իZH$tT΄F~Qn  UQI='}0"0#0 PSHבw]xuO{3AWWbIHpELɈpT=-daR)"8E\>@Ì؀ u[V@BUmg=(! Qh7M,4Ƈa׌?-ځȉp!#hЇRXׂ<-@\wq[ń͉,q#`OVX3շ́hxxȝЦ#SX,\3rq y8恀X5\hkxJncqǒx0]c"87I՝[0w0X0 ޺m( xbVg A316=k]י PQ5Dؐw8~߰CM2؄'Xp#iP24*(2p;v 3% 80%6()UZjkz1Z)fQ@=LX&Tps v?hf!}#2bpxZ%P@vނ3a%VQ%Q +" :݊rx?Zxӄ =ЀMv SpŘ8ڝ"KP Z#\ #("5 9P`a옊Mؐ f0F5\S*u8[i?6 o-1~ Yv5 ӇgbSd%ߩ!(ʈ3.0Ae 8&xi,dZ m -t6a%ֈw@ +7 HipP .rfgo``. d * ( yΜ~ oq aT%r^)( k`甑z @Ut!kxxjNBu0k6͊z8}Qb| FQ4va5Hiy :)%"Rq IHx'7y&e +C+h"o@;x"0mI k뀌92S&tCnqgRZkƑ"βu ^VhX7qi2P8%v@{h( oº+i!!!d,CV.c42AtKyX $x[Hg5o( 1jz j '0ӱHQ(ȵ '`pqv 5qtRD0Vh(r "'R#b 併d!hb/PyZQNÎ;a \V_|K@!1azG%a #0"@b4m`ӕ-Cxp" љ[V~`! %?Lie(F"dw(}TP~Z`(A4@Fl>b?Qh XDđ)# e. l@;@,% "dj̮R0,AЂ4Ƒ 8 bA ^^;7 TÛ^06BL@lY@3QI+40(`Dh\0B 80@-m0,Z$3D Cq#.]/ktdl\RJtn(q_"2@ ^bKd\>5.,lEhBp}.yLP1#/= 1O$"کB837T{KZ_OS0$8w@\I a(鉆frX¹Bcn'2"( 3d_R/PzH(N)z)EZʋ?RlPr [KzIYwi/*\" s5PK? U@% 8M }LBstJM~ 4$](YS4:)OaZ9ty'PR"fŔ4u> )Az;VԪ/OZӂh3KlJU>jRMh!|<PtL"MT Ⱦ.`>EvE'& r=*:jbv{Qʨ/"j~D'hO@jUE_eK/&Jo^ cv~Вm;:cH2^ځPJA@fg1X()=WDL&ùqJ@ "2/}k7< Ri.~b_&\RiA:N H W!<'1 vT ~[82n{yA!v݁#0 !HcE=%A:3 cc򒫝1/9̼H,)![s‚T10$졎*5!TRu",!9a4+mKQAl$pR0H dvQf/0 p4B)AL4(`HbAT1 @*ׄb:Ҟ6|u}E  v2c50 Ym'R@ҙؑ/˰U/NcHḶ _8^_E$;c"WWƦ V` rCly=G!1ƇZ<:d% @ Z *g2$2hi3!G[OH r<_;N%2KJ K  QkA8Bp!]D$r@?Y 摹<l#^JEDPU %,a։*lB>}lCb%? -ue-w>ҟ~}qx+d0SZIaHP1Eel[9M ^dܺmK@GQ"`@ ux`R_@ N t @HxH` rZ܇ 7 *!TatZxOraz H @zl eL @KD<@$a eAeQr!M%+XF dԣ@u b 0HJI 8c |h8   @!DD5DУQ2fcJ/@ .DA@<hB&8( @@ p&AcR@=BDt@e΄RZU@ tр cI$P#eS&@ @9ubg% @ 7Ds>CA\X\ aI'D |@8LT@$A@f*D1Na @@@@0c/A<gA@^Uvj膆Yr'0#D$N1L,@B&X$_ xI" 3ZfAp.`jZ$I AB% @ }΄"r藂iOoDdۤ@( .)l&#AldA4@׼)'MDצV@$<%DxgrjrS$0e A0@ mZefI@v@ 1p38Z! )A n⁲N{zb+oUV5L(D1C:x(AAf!Ax'jAd܀ AC/D/HBIL+DA fk*l('dfVdfy@l*Xr Ȧ+<AH L]IcALf-q<8e@T&nVmIDSDhFR @KXkA@f& l8(Z@A$Tv&ҍ&A EjmKtf @)bk%aFKS@fI(6/q0+ D0wTDx@UD6AC&CZ,Q\6A@k}+{sVúDACAj)d)nwWh8hD@&KArCAAm} HiIhBT/h8 X|"h/*D@9r{xO{ *'Cw)A@ * '@~ҁ/$0:KyA @ np l*@XjS@H2k%4h@BMS@7{yO~@8B**r84l8AxA5\)`,)A8sB@@CŖD K,+D#4cAyA,pY703X@rG@{"<XD|D̢mh/L|Bv@Œ?=s|A8S$RJL@&pB0zIAB.iI汞( xA }0 \$8++@(@[%w2ׇ/H&B,}pBC|>Z<.hJh ul@t{W 82t \Xr AW\*Ty|hV@cS.L@ xxt Z$8 &;3܀ Kl*I)}7eQ<3c@$KDV "eꢡ/@j,K K F.`B4aC@! " 0bH#I4yeJ+YtfL3i @;x8*P?bhGT <BC[ 4a8.#Xu"6!yQZ9J@tpw̘x9 Q!D{thѣI6}ڦhX񌄮#ҠCCr7AgiGk? _0' ;S}zٷw&\M+G6ܦ <\px;v@:/ͶqcEM$pP©"$ V;uܑa`hDP%}Iȉpx,*\p HIUh2Hf?{*+|8唉5IȁHzC yٳ,@MhFa9%J40`C?% ,}Xe5i#/`P΄ %% :g]f]rj^ŃCEbBJ4bt]p"L `4ߑg Mp  XeFp2h + `%,E܅M>e)+?Bj@ګZ&%L蠅Vpej }1`P,p5 q~ :7/Uf 4"/@ L p3H@@H A*,  F0SBb ! b (@,( CeuYERCA PZ'-v! @ f Ԭl 7lzwd OX@У'b6†@e` ADC4p@AV a(l BXXЄ3 U|=U M ~TG^@1A`0 4H& ̐{L'UFAFjP` A-[A E8$ԉ0Ȯ @64}r2'Y!GIH 64OcO!烈Fd2B 8#v!̔i vFJt q4QH@r'Fw `e 2غ%걁 \Ԕ! \7eEJ3pA Y%YD2@'SqLCGNfJؓ\8%ʙ.5XldyO^]Hk|ْ QҶD+r=̢ʆkkWd})9k *D 4 %#Fɍ`h `]@3e lAO|r'@҄Ulӹ`o0]ƅsslBN:pPXFٕ`,KXT.y (|ÅPĪPyU9P ;=H0_W#=f*.Y%&"43.9> (62¦jJJ$!XXŒo>f Gm6Une|*IJ=iĤF` WE/TAwx`IU oLB U f KdҽBp%!K&翘7Dcg~Mb 01kЀ7C3VP}gPX7< C3;i&H^r(+k2848k5Ȃ Ƕ bBP' P;y\Yrt` eZIBg!(qjL e JJ;DFWP.nj6wU `@9A q #%13 3y1<3#0W4F(( #AU9~p85k"]56OE;e#='}ѧ!_vE.ذ{1P&6"cy 3iqr7^rN6S7h1}t P+67k?@*]@%QAK3?87Q fI!k[0CMi_ P!?w-@ƐM P{7+{+lH "gR1 6У%a, \<[+p%̙OXQ*%kB)]KsgK&(ӛIk<1x dJ9"8`Ta&38aļq$ h1v׊:YfHfa>`j%NLXR|VB S0+0[,*Fq aLĊ *:fia w |6m!2ȄL4OYȾ30<$?1=- fG+ Q"OO,}"<;  R"/yHV,( Ɯʼ<\|Kƒ\,) FIيl,8 ,A)BLÒDCp<,v ?. +\@жr pA(`+~q9*h }8%~F@TҰ,)sC 881M?GPQa'/4<0'WQ]AEq*ooP]0C*%[[\rAZP<#gMjf]E9RRov-Tam`\ض B]lr% І-r `ݣذ&@#Х ! ,gWH*\ȰÇaĀHŋ3jȱhi!G(S\ɲˁ ‚˛8syBFJ4! |]JHJ @8S dI`o"hNm04l-÷̻@P7**- 9L*ITLl1>X79#thM&(QodW0|wȓ+_μ9ΣKhs, }@Oӫm{>gϿ(h& 6F(VhfaQb *F86H P} q@ d   8LeA%0•& TWo\9_ХPC&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f;hJiCږZ$% sAgլg@! ,hY}H*\ȰÇ 993jȱǏ CE4D\ɲ˗I͛/ ɳϟ4#<Jѣ@ӧ// Pjʰ@)^JٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^͚֒3dqs(ABA +;c@* D,U\V2-Y!'L"01>TjFƒoj~O'XI.Oyꛀ|jO1 3 Wi$:ƾ @Sky$T0m 0F^ PCE7(D*@]q6/06 , qsJIݤr#W%Ia^/8G>Qnhy< 8P4ePt"&IrSAWlj$ddux98eb4!O:P8[sd2k7qŨX!pe7eB$q5'"qbHdHs/6\ pcܖ Fx8) [ R26 !Ko#(30Qba=0z6s >I``DpBQa3)F@0`0 XKX9>0E0J0>BB]1'F3 hXGwqU9G)EEGu |hCbcI%ᤡh9C@1ydsc|w$-jMJ.w>iDBaz6I+W(q3O!`AMSOpMHé4)0`!H.2 !<'  A 98aU,+c  A HzlfP+˲'`t-|9p:kzCRAEK6yii@subxHUSK {H{n!gK1;(K}E"8~;[{۸;[{Î ;s ;[Z@;  9T 9 Xۻ[<#0+ٺ"*伔Dp!r6K*ڑ,v y,v%~b` -'P p@L$Sf@zZsGj` { A;+:䖿9y0 ]I6?-<}m35>pBZp Pn#ZhQDl?XW-@FS[dq1C$RM3=BMh"/o""XȐ̎+"M9LuwB|,?@Мd$dM]ߝ"jŤNã1y20K&}!@   0p`mP=r p"AA!p?#Y DQ*ii=L&ܣ]aX1=$ũB IJ;jR`i!Vqqʀp5 `F}~N<@N0 BX>$ }d  7~3?ߧTO!PTpV@|z}0"q1wZe{A.Bq~DN"QCH y2`Ki#pa`z~-uT>2@)* Dj&CŌ=RM—&o 9UEQ^,aco#+"Ь>p#2A! q%&4 BtKCo 3ZA MBM{f)nSQj7R#@Gx'mS56B D;< o)dCQlQD-^ĘQFA QB B 5męSN=} $ad`|/ hD|0=EVZmı&f}-T ً3Fp ;vYdʕ`XT*TLtm&F|DFFń!8BeڵmƝ{ SdQl pc $$0%fod[x˗(CBrM>"BXM p^Pl0B ݊+0vaH5hF8fXqBgF "0HPЩ$H#=lpp&2J)GJ-W/$L3@zL7߄3NP%3O=4m4X` D4QEmE4!Q1h4$4SH(Ě>xf Dx5մUW;ʡH@)BLȗ@zW_+jt `%ͬn dZk 1@=V%xB LL?ZwfxAxnT1X7_}Nv8xauA#tQbW13Mل#X=_1}L Nga袏Nzi":l>`;nt8yfV#;p%4ۃ .޻k\`EX|11`>8qaۈG?}̮է~P>8sޙ8jXD&ꦺ [?0B#-<DVЅІ7ġGЇ\c7Ј:4HD (cbEMW B,v1!! ,'="HwСC"`Ł'jȱǏ CIɓ(S\ɲ˗0c$M8sɳϟ@ 3Fȑ xMj+ބ >|eM_Wf=xo|3gӫ_/ Oy Gx 0QGA+!ga@ 5T@xaJDU 8U!ϱ'4֘SȠЂ@0]pA4 J $)S 0x(@$AQ0XIJ @0Hti㟀*H\AP'W'w A4Ę*@ $ADF @X1A+ʒ-@@c )ǚ4rZlDàF+dGy"6i;P$Xpu-؁)K(H  8+ӧHQd;Q6eA~2@t@BL`ҎE=LԜSJ@ ;' ,1 L7O`#a-,C-EҌ@PQ>f1P!d 632e;Nѳ:y#p$ @ 3wQ3| 5C 0@ TrNd1~@fȯL Q D)oe٬cv 0 @&V3fX@X0`Z) F8/.H'<!fI2A&G!1 DB @xq  p "$ZH"T@ 1BkRgRgrPl=Yn`p)6ACA a _$> bBaQ$!kMYGC281i!D:8V<&;ڑj&)@t I7a98Ozt&bAEHg֠.4$~ɿ%+dȕ0kZ˒(yZeQ,Zb'E"s;ZW.q*UbŔ@NS,&Gz MT@A|ZG/ܑJ rldIj(;H0"Mlt[#fIB II 1QT@ !>-H2A,Iȁԁ` L1!S4J$؄W=9 KB@ԩ9`NJL [pqX:I `0~xeM8 xDp8S0SXĐIdJ0@/(L R  Hű$H~2OlӉKl1nL~BSGC ?Tj <'`2u"AlK,D8MdW/Srv[獓h L Ap| c:)3 8laz"HTeXaO栶5).` 2h8M]K#fjB CFрDlQ@#.{ק A|Ac:AYSH@D(ֈfvAiCMJ&4(E7>aD՞T iY A $8m <"7"cY@';^$"G a%:2XC x8Aۿ OGq>7"浣'0H'%:AHmOW.`^@2#t`Z]`?7@c! !11 1&#i "A'%{QQ|f\%Ob|E9s0@d~? V8-|0Hm,Jvy΂ @PL`&% ;taj76&{.ϗ@&19Q(Pg1- ql% |p z ,oa 6|MHr oL1A!Vq> 3r :m` 80 1qq[0toΐG]  JU!8"`P@pmg\RВ& Q d7W0 i  { _<$!aY*q ӟ ^0Qi S .XL, Axvp:(@ 0)ZW,Yiq`V  ͍opZ(Y:M@a >MսF) ma$p={0{@ͭA> UPm]NS,e(Sl930ml hp, 4` ,a 6 {6e8e2)n:6q F=bPyAePI!co =>у3Y*S\ 5Ju p0^?6 b&8)0&p3 p0ew5 P*^ < <S Y. ޙ>;B!s#b-fBE6 FIK0 e%B@>podC ^Խ,jQAyAs2"s>aZ9x yEh {\RR"PF`()<.!1/I2Bg8 x.6\0lNB@=}4MX`… FXbƍsbLbDK1ƉYa$v|BR͢'m|rx\.q!= C֩R/tpL mTȃs!s Ff6pxcg*Fl*)\oƩ]/f|F:!"Bh8#j @x:?N*!!6PvFSA#tx&ai8i5#{AkQ$ 3: %Ǿ3L1$pAN?&Zz 8"pb8vs.b`Nbͼs`aCc`AS>Sh"9 < 4M>P;LSrFv&;mJ`2;\u>1,GJ#~a`PCC2a҉2$uS0HCmJ3_TB0>4\:TTH8HX#4<@(+$tk@v>Z0&Ƌ#< l#.DH;7&-;-_F?}Sa)vQhfr4YH\>3 DHD"@@@a^ ZF? ă/U(p@ZRPP|}2B"\ $м0N! !$0F5 $^V[)E(y ڋ=, H( AH+ #a&_U*D[Z@)v׻ޥXR[׼u%F/t9 T l5b cXPNBRIk^3<U~`1$ *!Hm {0,ì{($ĞUH5_H8,I2^@;@X` c( 52# "e1B%w BtfM,';isCV׳I-h qNp -}0pr iEV!BEk``-rYh!Li@0 +{@ZmF!Q@ X0$)Bӛ:!Y j}Qa-Hr+>B BɶIi캴9qq`\"$,+7l%C7OHƆ8@:kTW$Π$ !%B @m`Ôe V!!mdZ*R L(aDHpmH7Q)`5Tz9y`pZ$ILAӣwO̪:']DoM WZFPAGx?oX1y?wàk;b1 WpJHJ+dEN3B=, 9QC<H6'y5%(a\&/Cs4V}!_ ֋iVHh$Xx]}BH;-(ZSS湄 @ ƃ@Ń @0q*[$S3x725fgx  BRx ?Tu" 3# Pi.801@:*]jFȉ%ˀ?*>e< 80gT Ü:9!  C!쀀Ë̉ bJ%{ICT l(!SIL  8%@$J UpQxnCK Kd$@Ԩ%T  ML@Dƒ@X7 yH!H>P  @J)j;80 Y <0N|r f n1deHQX4l&pp@ `  b؝`L1dX`n!%;QJ̔H)؀) Q"T-81؍$paX؍&0%)`@ (' @O1I#!h ؍Y_9Y`9(1 R;$&і98qJ0BRi2 ؍%ȈyE4#UH!X.9 8 9JzM.,[e hXt+NNh" dՁ8&IW9>!# 9٘ iȊɉ `8e$QЎXYe9*]}&X͘:`"@iہ(yO W8( Ii  `XQ Ql苸p e Bkֳ(UXbկ>`|mxI&@щɁ 8 B N  @ -a%e\m0.W^ CAÀUh 4 p' C #ሓ{N8VmcQȐ`G -|UȐ&gr U`[  u3)`"p$ ^F9ǝ0 !:K$0꩖uKH"MHG,rWr k@*Ȯ ֔X!!CWl5$Ha1- P*%M4ɧp 8 2x-aXy&݇y*\p@aPͨ16<`HFReVe#ȓ NYKr c+=Q׉t*!(K16nHI@̓f\P M15J&Q; nZn%;d& 3@ "d֟"T 58"*HpyZ $Z7  xe0ߜpyubJ>z x%"W.n6Ui5uS1(84'ɣP8@kc.88h$`4H'/bP9'188$P0j<@)Q ߵU *K)cJ+UV)<Áݰ"(x](jo  |)h͉!]#`kH3*\1 FH>(0ݰ@Hj) cKnWxTX>h?43!9 i+'Af[ 3&PnA;0 =(sZI5#$ g(?V0` $S$*>CY ۖ An :a$=K8t>_7)U]ĪC.T g@5W n1H peڃ s38sRF0zL S7$W-q/o/Yp/y`ېXF6+,gAs ;%*2(tVڭL5{!$(m a t]wz",d,@ سF[:@yˮT(w(w}.":q 2@q.Z^9Y[ /S+]cP`>?$z A"[)p3x 89g ˾ I=61!5$0,*fE|O M8À+50PU %(9Hus"?Mn<%]HQ cPWqJ²#%Jac CD-00nb,.dG8)b X"#F:P6l dF܀fQ̎pa?>#T8 >2qPBJ  Iʐ]..l0Ċh-0I5UTԦc= K&vVAՅ,R$Tf|*>Ӝ`)J,0B8?$D6L4PT  K Z躨h.*@ @ - CTԕ3ЃuĐC0GiiB d2 pCg C?qB; 3Ь]nv)@C t,g4+%{1-a1$Ĩ AD* +@@ C(C!BDLDu`D$DDa;lBĻB-#hD8[P3ܰA.@'C80 /7ZMvZ7S Av a-DuW93>0=5>p $0TAz},8L P/{WvL8gS1˲1/ K@}{#8=:Sw>_ E.$ B\^Pr>A3!d `a` ! _?0HB NY6ˡ% )^p9hNqZDb"!tv9a3Y@`s~x1 rg}A8jo*Sp! PId!b gU b5k!ĸT`*T<!zc`mR Ab@HeI8h@Z dD4YҲCl`&h0$ ؠh  "qZ ih`:pT~0 0`F`08 N=ء,G7TA Rĉ4Ҝx8I*<D5ՃږM@Jύs''D:jK.S8A5nIt֤+`AiN38~jl<^$oF_D*@!J|NVh"+ɚJ)|A>"sm׽UKހ-`IA<ө1; D @#(PTpr@_4' &o1 z&;OT N !n` BΞ,\, l>@(VLewv_;I>C`h>q`ڪH.d'SEUik` R让~ -^TT%'n. P0hp#ZB6(@ +xFfJN?]hT/>ެY Q1 - d0 x$\Lh$(S%~@:8/@2ki@Dx~P/r_JTH6/3֡' Tcկ0G` h(~6 la 9ÀҴ9"&d0c@.$Aboh:?0 nwZV^HI@M? `QD]H)j6lr\(C@?0.NpI%cNEc4` *xBp%׍ȶ2:-r@y`oaeơ-鲪n-,DIA2Dt~;wTD `f/d;ؠ 9$Xbe1Ud''HBǐk0 ,`  THM < 8B fv"7Cpf 'f=O hN+#Tt9_0":` 욆uʋ0"S b*@=p"Wg ,y(-( BI4X4X܍ :(DEB,b</BZEP-jTZE0,0D)TD0E@FE|@ _p.&xB.DJ`@1 Cq BhРa݁EuC\Յ ^ hL0@;CE0bHxEA0DCDE&Lеx EC80L] 2D: -"1-ĸY& Ffc&ͭ[0B"P005P +8CJT10/\+A.nBhCE`@}t. 1p5,1(H:&Dt㹘^H\64 @A BbD9QLC!0/U@TB0 5#.3"qKEBBM2=BG )<آU^eRpR@PĨX!CT]=hA ExP !Bt 'D6x,@ $(p^EЁEho.*C@]Ctc`H \BC$t P ( EGNzs\#\5:<B`؃(, G .BZQyt Pp$苙,Dj4,r=`%}'0I;lBh@/&3`=$eE4@#ب @/ %OE,8LAE @#,hP T(]|vpX'x X@f8ZeE$1=` <Ӎ-D9Xt @pdn2`EE4guOA` -TDP'LBDCȞX=!RBuNBC1D$.RQB<#XE #Eh`9EC2@,,5)#c8EEHaEpE9Bp,-#Ŭ0FS GAAʙ]TXT0݄)GA2DkH;CB `rDr!VQCUb|ZDIȾ.UBȮ]B8!XnaX.yd2D{%TLlr(rٍAP~2.hVLgxFGE@1xjvA+؁ L(CI2 N zC,ſ+ ֩U"> nΫI89a<@0 8Tî ǝ\k@.NNk4h@d%1 z@BTDTSO @1DYDNv@#9&CĀ1gBTt n3mHAON@ H@ttd\p(Vb&0P*8ɲ\@^4@y[K1`d @0  ^05Ӣ@eS$ƿA s H q]O @@QP˘Ѵ uWY xy$ L UhHhN0D tZr}`ƀfQx[| P*QJ*@ 0IKU- $s^5o^56G5q#I0YӚc`M<Ȁ4 XZ>ф l P5@25 ]$vCԄUP[ PAE. a{[ʅ5b|đꋧN6Ou f hNx&w?DovTUWWW-QQZ vg<һeP .\Gb߼մ @TDCI FKXT >Aϴ˄ZRd Lh @LFE@(`36?-P)Rx,GXWLs3ٴE @ӥ}!l[7Uv "t @~y695z?:9 Ӵ, <܀0.:؍ yCT P \TEV<lLQLAM 9 TUE͛4`VTĺ@@! DvtζYV*yCmd!{'1%9!%fWତL4ΊQF'@?$EY&3$Ax;33M2 Ñ$ٞs8THĥ93 mx /CQ AȨ@y[R78ɱW8ySY׆ TⳃϽM'JAT<j[}h*A}'s 4kF035*)kH A,'BPD1kPqBEȀTX%u)I  sx^C *hNMԆGP0%Oh&VDzˋ4t :D7z8@nqiECXd@@rbAAFSTb")e آE2SLNTn@F!\PR=X/q@0&(9y Rn' T-<]ʸd'rKjyp;ȹtB@|Hw$.e[|$p 7⡌4&@>oFmD/& 6lph z/nI~y Xt* g'A Dh*vΉk2T 'Cf bKj4A}2ҭ$J $H|=R`˸vb#2 ΂HbO\Hڎ,C$xg0orn` ˼ )A] l IQnP1NJC(@U`xo= `rA7Zc! `N(fl`Z|ʤ@b @`bĒ @'`8BB/pkHs'H 0S.N en B[$%F"#$=9"` *C_P6ҍ HjH&*:B.2mRȰ /RB!tj*vjx&:zLp@>L"ʭ̠PS.:;\'4$= .k{aD!g/ dΦ(˭ b<(Aچ*,?$/E8p&frZ:&rDg 87]u&']$P B ƨ25b@XfC #`2{a0i "m9B,?]&'`+rʭ :P4b,^q@'iPbP} @W*/ G'ҋY۴]9n : #pA [pT@9HnJ,N\Q ‚\|aCTUU U@b,c^ u a r@,Zk `KmLģ !`yHgq(݀A$0A :#># A]ϳ4ݓ'&/Ӟc(4!6r`PIdb21dAmc!m & `U;J@@}k'th <$ !P+`&./2e>h'6m V@ `k۴=`dP OyB>=;uB.zW'gI% 2)h#Z(%j+Tr$l ~u'`Hw *A(`n@'*փ/9Qdo_lJԾZ]$c(2J'զ=Bybndnm(Bv5Z/$vns h@ KF 9L0l{'b;ɮb951:M 1Xچr}.Q\غ2L'9`@8szj:R=..Ye6`ddlnB-xcvX`r)Fz%HL-${;K8cz`9EXg"sq$.j; 9}XGq>6HTy8B~[0)0~Ş0Qbe+@ ݛD%55 k"yE1d@W7P$CZ( ޥо[ٴüy޴RT$- ^Gw& E Ntb trBt'J̝ Ā v.p/F*ǔ'A@ B E i &jHLE:ppT;w(bq`IH`HϨ!㏖X@CRMݝ ҃1E7'O@=F&w gr uKLkbǯ l{ t@t{C*g yl?0C,HDDePF@S oA[!oZ؁AÃ`$;( OAFMIdfB 1  hpp!s!6̠yuA7x 9;Q?7VBIN(",6!좚Zba G$WE),kU!Ɏ p|o-Q Fē(f8@`>с!x5GM4A2N@"EDI7d`rrmg9(&/L' 2(fI$ p/PN|$ O(tD݌Vd@Pvx6@ p @Bp 9_   HP1BSUIVZp MzT#Hd‹36K;S?(%"@?P$(IKBI4a7 :HuI F|'T<؈f 4!I W`dHDib<+j}b$ul$rO!R@Xm C LAySfKFlB XwqBh d(6% xay;EP l(l ݵl!OYEp"W 6È@mH pcFF8d|臀wHzawO$S`w+6 Hp* gbq P6i   az̐ 8F)3ra`Vv"]gZ&m|c6G0E MeФ7 Wq;t]c^3W}r')'P#&0,A$MFwF@@Pp'#r(?q}bKA '9Pp:.&upS< 2C,u\ń׈RAq 0 PG*p6LUTM WW8W'*"V"?dhRPsfa"Qר6\HgDf420 *1/rd]*XN+ApV00TN4#$N(vx%Vp8(p8>J;"7/(PQ!p%9v+`yUC, p8(S-IuQ7(P@CP`!UDud&@7 8")Ouޢ0l\U7>-"GqHcyɗfXN_$M+(&Kqch;!X)3D,4B0uw:`;-!L"+B9nIC!=`;\$ I23D2$C1?0ij?.*?4a1%9%@'Pv?p%pБ()I%Ub( 12&u |Ȣ:ԙn"U'::x#[D.थ!Bb(J@!:FB?@la6!%u!?C=: "!;Y?"u.8 ?4,4jb4bd BM QD|T%0'3*W!'t#6R#l;qQ ^1bHDma :$.) 13~!r;dJT;Cb#( NJ: ,2@GPQ!%p29ৢDN81+1)ʡ#v)ZB?JAzVV)A# [!$!$I,Ѳԛ!ú@Itwjs$l;)2G)&@`+:2ѯtG2T@rS*q`1`Cbg 1{ANA!%@3@  I$!r"?P/1{N!qcYpdLR!S6ԛA.K.'hO-!0FVAU9@tj즻-0K@PBhBP"?DHXD0? WQ"WB=>`9}J2Kb*t(al8%0c:kyfTJ@\B!"%p 9$`+E4 !-469KGV"W 0!kixe/`Kon5$Kצd}R޲_1 "etX1C3AYC<% 0Zs$ !x''m P`Pq|W]A" : @/&)< i/co<2<]M-0]-!zp'geLzP1 ׿XQvHyt :i5נH@qS "6 &gH@i(PLRp`j@yYQXeՀ䚐x  x*.pbAp׬61sWe5vז ?! RUƓ @0fv gצ-ζ\))1@*z-d`~]-R0z] M7`^E MC8 #*L8L/-@1$Q ܁ahprpS 1qt&&h bTǗ0彰R#1++K<qK1DĿ 0]D(0 eo+E>)za6pżG*_s*-u|c`5݅)c 6, 9:rv`.P  h9 T ` PJ!6ՐOi 8}J"a Ppqyt]<M (q,0LA4+~MZ$RVƼ`[-@@e"*7Q017M@' ^5/#cr;E is/f 777J $8UA%a J hM"A X2p >xp/ "Q:ACBO%T2d^! D6l@dDwN8`"VK.MЀ뻁Ԗf@ɷ {[aĉ/fœgJV xfg 1E ͔X;p, 8@6!HD`HC`K ̴ 0iX8q@Ls r1#YʰBahl A<8ԁB=SfaH j Lh %a,X$Uɯp0P0@$PV*@C|X 8 K8TC34VX`wM;wh&88+[ve["z /܁f ~0v {%Hldz !l)X(@J!XbaTd0)1껔S [+BJH *AtL0" rPj  lJ"J `pzihG%nf-&q0w |f5 z5,uvZ~fJ|W_%ءyzGXj(zhfЀC L.H f`ᢁ rAl `'ADA@3AEU` Q6+@'XA ̪B>8ʥB選{0bH "(^ [T[ hvyR>e>Z#~00"}$>H= {tϑԝgLrdAxJOt ) ^ZIIrp}J&̋% F*8a$%Ȏp< # F0"J@E p@OzJ}eͬtܠ+AeD% @p dP a*Yԁ YD O0x`ʔKj,y[Kj hEG[3%gJ}f$¡)5UJpM-.JLUJ/} SVUj`Ae4Q^2WH Vc<p0̀V8`j;x N'YH( x@6; (`C JX+֝[dkQĔ %PA x@6j *Ab; ZjGzJ'! D3bV4 kQjԩvjVIU?2~):?2HѬjb V5svE[×;Rɘs%1JJ zj"% i-%81Sڿ =ԘJ/;%'g\(<z/+_F@k޵DWQ$_ 6|6,$#dŒ},3睎-eU Gfl8SRYduÑğ -Za N٣D 'XR]eGUX^d%%5b*;vZ.Hk"H~5: ukfNgԛ>VZ;Ŧ?tY !nBvACxPꛦ!#v>h) # 40 wK<"Y+X=%xeA h`9h rxru`$+AP P@v9X`pi@u Ȑ9* P H PHiBpPE̗ $Y ![hoP9-3t 96(`È:>>AD(,gY{@ @`J@BO! .剤1ExB@ka`kCC@;9VӀVPj9vQѬ ~AT'V0 C aip" e9* @,e$u8d5قcCQ|M$ LF˜SB5F c6=-fx88>Uc[4eL%A 0Y\qE &C% 2wg%@eԘ`=HЁ. tQe,gSz0$hĽV'8@S2D|̾Nds/UРөuګiHJk}ЃPcFJ X[x@8$E-qϊ}@yقMDk P}F:eD¢b ?>Yϰ XiU [4,ٌ)'G} \<\]M15IIFLELB{j($I܄%&ʲ ^"@7XٷL:ٺMo ʁ\M@nIk>eށX EH`~-ȢYG}- șzş IpY E,s1U'%hɢDቃ;o8ϴŁzF,ILYa$_HIe0_=SHM'&=H:v`U<3QI-x22>y8 k<ի!/( 2%$I6؂- Ԝ%K%™Ɂ2% /蜤e-p#XO'j/K/ ARkDU*kc&U曑afhEz e+,iwZ9v=a⫙a6Q fIUx4f %TN'LfN.Dvh(W4 RkFA9DGC =@a+=. hcpZ۟KE,tJm;=à E:sbVK?]6 O|lh?j;QCWa5 IХ\Cڻk(0ĮiשE;,~ d~͋KGҟû ;WT5]jiڻCSl`<8rDr5m+U mҀ1[ 0 xZjZ kn3C  A~  u5 уSP9ɫ+sH^SKw+0 &[**SI@+ wgJw ,%T诚7q6 %, 2w=2 gKzo)*Gm X:; 2U%R[ {y='m$p͙m_Rݩ j=#{#,'sҐ],shYFk񥨗{gEp(v1i!@eⴱ.@p=[&'YSy!q:gsAI`Ǣ/ #g68Y.~,P.vS^Od+ Y6[.ZvfovgG Yg7Qlhc9Hd8{#+vulc6"`q'dᏬ`HIzj;t`&x;jzz?su Yknw wJ4Rj?/y%Gϴ1rTS7T7S9A'2[,Y;zUXJsWPy?{O{([NGX'[[d6IT 6`'k',DyagL t9':fӃUuЀС_[{||o-A@Tԇ ^`xņP)ٷFtӨ$D{ Ic}~w`dD nx{8OɄu.zFЇ&|6Y2Ph(>^ȅ \W<~I9Q8oyCP& Y` "?Yt2Kl`#XTpx-P ҃D ]"Mt)ӦNB*u*ժVbͪu+׮^Gj + jXGA`롯ĊV#"Q1#)# HF ?2z Z!&Pd2֮_Î-{6ڶo+b[ +)5e""(Ex9%B^CٵW hDD.B0fJe!D I$Hr&;t4D18d$DDTHDB |F48yzX7☣-Tٍ!%5tz R 5-BNU@dF#0Dğb%sYw♑b@p B9 :0CF6LF[FFа(=g8e[J ,*  NRF(:?1W;Zf@CB'( <"C 1,ɾZ< nV"ǫ n{VvR ֩zKQ0* @I#0`C )72   p?ȹ3xkp *`*^s̭0 6%Q@ 3 Z*80 .c]v|ȰhCC] /D;]*B'48-z& 60$p*ɗ㰂BV p34;Jul`f㞻;Ş* -t ?Hܰ ., @+@DP!(I: &4& tP =_òbA! QPl Kqr\0 L+m +ȻjBRFd@U@ r Y[$"ddDn7ab  px B & Bb: b1Z4X` ȉ]D@_J@$`@v\ @^?! `y( B0(@A#&%b @}@-2 .pB BA(,R!"(aN^"$@_ $ K9"L!I˘,bX 0 ,A0&ְ2l'I$/KN  Zfć Gq--2Fpc$+~j8(z)I Sr@9,5g4,B!$LX-RdDIU"'DD f`8",GB VmB$0u"DHE|P("7FP BTTHT!E^ZAca$  $ !#V.dkR.ʞ0HQA"<0u5P"+X5fk h&5(8`3J^2dD ,DAGԸpˆAaw-Bnj,AW@n]e* C8~i8f8\BN m19Ғ6[L[ H@H<N"Ú5 Ll HBnuADma+xQ  @$dOkF! "Y-x&6ߛ4MYz bpOP"9 Tpy; k+ MC8 !}I$asB6",bC@ AO&.~j0vP-R-YYDV03i:9S|0(pP=YUct+Y[3`[_ќC%h=rZ tB-}8s tgfL`Jrn#(jf܀=d],C2e>Lrq_mSC\U Q QsՀĤ@,zf7A4HE@ۊMqy8f[O Dfp @W=Qkӂ_N%mg*8beS-@@qMBx ! ̵&T}SC^ P_MdR+\C)H/Ĉy.IbT@)k@6.,yY' Y"sS fYqBR& z &OK͙by!s@.f)_X*8B1#Vy!BUt-(a-RtJD@H>uQ"am̜eҸN8LA^EȀHO$NBХ DKl [ LR@јe D @&ě̸x/%R"_!pDn^HKN8! \_dĠ`[`,B`DVK->ŸrcB :ŖpST. \O혉MoRoN+E p[0T@pS4pTJB8p [IT# ۰tpk@wdp#0 {RJ HzE#4RA-{vk|t= ~q%1pVtjiK4qpnCFLM~PfRq!g oImELD?1"m![2_⚖W\r( b B8gB(rF+r-\fF-\/ E0#3GhI2;/3KsGNL57m56ssp73p̅s98;93 1:! ,+H*\0ᎆ#JHŋ3jȱǏ CIR#(S\ɲ˗0cʜP 8sɳϟ@!R;E$ѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KLE`̹3O <mшZ^sޓ[L`M;"-%` Nx 6Th%xlauI!|ӫ_Ͼ˟OϿ(rFM`k6ؙ:8(g7Mh!f^>C($4 >C,0@ $! 0h c9d#b@C(\@  @$@JB@?!Un2J7=#? FB6/ CZ9< 4ٟ1KL& -0|$sf0 Y /B9A ׌BЧ  +zu < xƁOJ gB (@{ diBU<@/ZGZB*-8Ñ2XS P 2 }k %#3{C7TvN 1Z/D[0C \ :B , ^zT:DdKYh@lDQ 6&̼В@ QLGm12ĥPH;L 0&mm?A"Rr@28B#y]$Pbd %BqVұAt"98!c'GL G mX $fx3V%DT,DY ^z2!5#>؁Ȱv p`8X}r$(A H@W $TH դqz0DǾR*8aJCPcD 1#aK~  [.h6%2P+gbڳ)Q[[9&N{W巵.a@Ht7l ۅBгȶ2M27b2ev|"7peF(O+FчV s8_ w /T Jdц+,l*xCR߄8 c Lxi` Mx Ah/ SsãB=0LJh.ALaLI  >^-DDX\ʒ$4fgmF e( dj auJy⚠U'\hJZ[ia' VI NC(ަ%pAp 9[PD[% 0EeNЯ2rB L LЁ h0<B-dibcoF5Q]F.̆3(;lܤH!|@ 8뵲.c  `q?#(<D@`!"[,0 3 50[-0E0&`@0VRLUl P@@ 2X79#thM&(QdW0|wȓ+_μΣKhs ,}@Oӫm{>˯g\J`  ! SЕ,(aNK@0%  1ą",0(4h8<@)DiH&L6wda1X ̢Kb(9 5d@|"\c{,i{b2dB^'DdDF*iK)f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+knzp(Y@+2DNE Y 2Y(,' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXguF<! ,%GoH*\ȰÇ#JHŋ3.Ǐ CIIp`0cʜIM;F((͟@ J" ZWӧPvT@6Fjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ# D$kBrL4ES$@k Ys/SBF.@)^ μУKNسkνËOy<-#6 cVZ DTN@A)f`j&K!8Bl@!D @Kpf&<0CC@e9&Ψ:%08( 7G ĂW; 30BcjYE; 8@='D:8bqQ &*lढ*TQAaBYT@  [ Q{[RׇgbqaTD w!j&J%@"&fD>E֕-A@0UPDPE@lj(Pٔ" / B%@.k eBB0_wD$P =&%u@p BಕO sʑ4+:!C[98Yk!YG@:`όUEMݗO U@~ay. bnF!xjXЇ ވ1#.dRMWK8a&{S4 n>W @9V{"AY-z A ~^ )09n %ׄ߇)f U4 %6ю@%=~~_'z; k~yd $<& tBrjK Bl3/w \L AK},)J NBz"Ja #Co) ̇ß@l09H_^<3;@[BH8*a!1:MHB0 |q:A >bAwbpu3yd 310@~ DjSFgLIQ,$z9[)i3dboVx@6 ђ6l*[6`*"wLՌq!@33M̦01h64oFʗ9gu~ @JГ0`A Dr} H!E!Q Ғ JWOyT SR+9 kꑀ_"O+iu3y@TI0u"OtU]pDM eH(HҸ ɴI,!dm[ A ,@GĢSqHǂpm" $ $$+OyLq1(c8kIO⌁Oc:%iJ=dF5"`TFSk wi@tiIu (@SECϠRZķ%KXL$oYY/`-K䣦'4[,08 ! U7aAz'."X*:2s HQ) Q)~If| jB C)̃6.m؀)@A Dx;͎wha82B~ x]@# >&\f`hz"0"NaݴRohD>o&3PHJ\CQoNt \;t#"@"0C8zQM8W[+c n+=嚆0F<4I$bh4P,i?9y^@N->6:_%jPnL/SB 6>5OT*_DԺyTɈJiށ_]C3 ! ,hWH*\ȰÇuHŋ3jȱF` (S\ɲˆyI͛8i&2"ϟ@$DB*]ʔ!%( IӫXe@`GghK,J9RX ٷp6L?uLÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNؕfu0iv6$Z bL!訠3 Yxo=.G5T&%Jؙ&# @āJ&pP b`XA@P )|<DAF08bb9B䏘 ( PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馏駙i2 vD0d"*H &ĝ2! ,gYH*\ȰÇ # \D 3jȱǏ Cȓ(S\ɲ@EᲦ͛8sv$J8Iѣ.TAf4JJjB5@0Ӫׯ`u^I&aӪ] ȃ)`Kݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μ>9*be̅) }&q(ᗲ0x Amfp^qᡉ&tH2`` quR)0!aIaD$D)Ԣ@?∇ %Ш<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈9c #xP$<)B@9l%jꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+.F> %R`E;@<(p`@"/ x:씬A/ ?C 3cD ;8?$4"&  :0OHt) @hG=ClOF4}(MlЈ?_ĝ= $2m+܇;#<Jѣ @ӧ8/ Pjݪ@)^JٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸suގW,&>n 0v-e(zbfbtQTͻ`IQi; @`@8p#hB~{*|{<0(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v!^2fdAhUݥɰc@! ,hWH*\ȰÇuHŋ3jȱF` (S\ɲˆyI͛8i&2"ϟ@$DB*]ʔ!%( IӫXe@`GghK,J9RX ٷp6L?uLÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNؕfu0iv6$Z bL!訠3 Yxo=.G5T&%Jؙ&# @āJ&pP b`XA@P )|<DAF08bb9B䏘 ( PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馏駙i2 vD0d"*H &ĝ2! ,gYzH*\ȰÇ # \D 3jȱǏ Cȓ(S\ɲ@EᲦ͛8sv$J8Iѣ.TAf4JJjB5@0Ӫׯ`u^I&aӪ] ȃ)`Kݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μ>9*be̅) }&q(ᗲ0x Amfp^qᡉ&tH2`` quR)0!aIaD$D)Ԣ@?∇ %Ш<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈9c #xP$<)B@9l%f! ,'="HyرCÇ"РC3jȱǏ CIɓ(S\ɲ˗07x8sɳϟ@ r!=n*P蔡 Qj3 Lّ `ٷpʝKg*znj'N+aeͺ;,„04MuЫTNuz#ֲ5D(Z 羼w- Cơ aTeF# n"|{ӫ_ H4>Aw `D4UFD8`A;,8!F0'À.qȡ:,Y@PGJދ0(cOLP\0\l  k hJ Q (0 99ex90`i%J 5i)P0G@ ЈG3*蠄FEt @(f*nċ@ A^#K$و@h,, #Py I!@"ZFIAAd- - -"3/ t (SȃӧX&1P;X>I'|V31PpDX+PA#|rH-tmA5E9hkLJ]`ĚAr:Z*lHFAS#1@8=P--I @3 THA8nA!мsdDF暙E Ī@Ⱦ@xDCy DI7-m@އ gC+ԁDQ` ( @H p)'uiZBs)XAt e@(@"1sF.<{D Zg5ʖx:SKP){1iL;9 @ |` Ѐ '$LʁJ|}/` Ф6b PW∓6CEsc@%<#h޼UCa'S @Pكk)㔲 40!q h HrL(:2 ؠ 9 } ҟG7EY#; y  ya s pϭ!nơNh`iC),z['qqA{ . 0H|aW!fL!ժXf d$H^FLY':8D E)L o fiD=Wd<~`Jn ! LW d-rw)F!81! 0 "s$A2ЍLDNM1p0fuiVthhő>#D LF`JR{ViQ }@w@S@Q@g765zP"Q. @=EGbD^"?`E%# ;%g2=(3rR2+Dx/[& " ;xZXY'x b#܀v 17Vu(wq|A&A06-,'qr @y"B0a`3tP2pn p?eyc`{b(\x0M   T@  T!M7Pu0}z}Slp)B'&) ` @!A 'l8*0? z3 1pBJtTlE_灇P'h8X"D1x%G%Dt'qo]b A'\plx `*:p_ pYXF(gpxQ)i"CH@!ZO2AV tgpDp WR0 Z8 30IiP =$!  iej\)ve i6`ie_W?#  YQ3KQ&o+J D0F9k d;08YwfsV"Yu07JX9H%Z6%%J7h! $08j"BWBAfED8@@6h5+2V"q6@ Q9c&D`l"A?Dϱ!&:uzTlQ%Q;"jr"ѝa '@e _Ơl4KPaKF!nBPa\$J9y!ax<Sr"^h 2=qS϶JPFWv:Q *aAtNp#МyR) i0 S|iNlѦ   ң #&&:|)&` aҢ& p$]$8'*mq]Qu H 4 qH=[g < j8R, ƚ|#mp 3D Ǡ8 `q Ӵ#kVk Pe1u_mH =ۥp]P% 99y P @Q iM`j |]hi{7gd Um`gu @[ ]{*0c Mu',t!@G5 &nUp0ު - VALgp-0bp7с0i;4; I>P]_Q!$Ep~  lhXP- iP6-pD] ]uǪLpps 6` Т.]%UY` p̡`eûNpZŞꭢSQ ՛609  `?!PԞ ~6  0A1%07OD$-~]륞Avf 됍+;rZ7B BBF *1T*@FY (p>Kj( "0MaFDM;0Jd$!<왑b(*ڔK@D) .OAB`؅8y*72T*I cmI?&TyEQ)sOl0@UO [Zc""dZ/ٛ7{o0@M/z5&K"*/)r&p9IpI @d:B@\|]لx AB IHWA6-A9׏I0I=# 0 Mxj<^# p0d1| BB!9F(G:J D.@c2dHCEK/~4 $@~E9J,C|X !^ PQ%Ҳ ydV3F`[GtiVP"9Lm2*^5@YeÛwdtX @lڵmƝ[n޽}:h8%m@ k : !K|ΐ0`]7)R 2raDΘᬁJ0$b@,8‰l&^x@B̅FP&~h 0R@!"Jrṍ@a*n^pa6zK`鼃K"Xp+!( >kQ>H:(pxA:l@xH^pȨDh"h#*.E.4SM7<Hԋr?]j` *`\>::0Մ@ W%5Fb8sa ~A/A*Z![D5OTue@, Kpp&B!nbZdPn:#T! "T^о٠PC(dhAQ8dBO"4m>k#"+'k;Lsp@X>F$0bN!-[\-zWRJ%ːqp:m(a+~0AbEA j #4"G"!|+RA+AnV(}*p 5)h ^Hk~HW/>tDA[%8A zjEJ<^ #b|i>`Bk9`b7x~X7].`rC(hqH! fUѡNFB!A AƳBh\@H;7G?N|DFa @* ȁ̞( @FX! H6rԓnB``XL$HedC;}ƅU<|@4(&Ḏg p*f5d2:WnJyQ!W"spU$ûVu!BUm) 8P)^.Pt6X#V7nVh`Y Ja*,6 @>  D@@0 R]x")@,B (% sfp tZ`?D\ "r6귿/X-#ֶ(UkL]*k&C(>Zk 9%Pa3o1pC#$ 3YÈ!B!e"Ez@G:5f87He"^nw1DBbP"diaЅ6f嫠d60,< /8U/ZY UmK%(Dӟu`Re.1"LB& jgB$ȱk.ОSDݺEHi##fp;xXUǴi&9+pW%T@~AV DUT|q"`F 5.s#uj/"X7Ui@wR"Y,w1˳l8*F>\A$+FHλ X"B-B0PZ/"ksqל*X&.땾1G}%!aU,g8b/p`@@<)[]LsD_Eλpka r)F G;*?\׬Z .\=`+Y>Hĵt0<\ý% @3=AKx 3 $a3*1088Hrs +ɛd>pT +1x-f[ ;Qd`= 1@B݀<_P K #Kd1>;A2Z f j;42`! +L6;B/Q%P/> %J%(E/Y<)Paȸ̺`T_&FШ Jр!(ULE.8"FH );h V"pEP#%Ȉِ@V" D^V s4r ` "໵u8 0LځȘx @P,䊜!ip̦`8iwax cU`rXX  ˡ4dʠXB HH WK&cD0cPP؈w,D8Ex0Na͎%u耈J3<01$yA 9`9y8F0E Qr$B=E 0PZIrYЕCEj.-]TP#p %8وЕAB. &@0TiH]2r EVdq5AЌdp9@z8@ |AX<?AS(/끁H:u` Ly;Jp!~9kpO`RRڴHp *2pmp!8V&ib0URD^B`*{E`xz食  ֹꕳ[r[`z hQ9/xp:1Xp|1pX$΢"'MZjRI=xa : MK#HXqF؁؀ Ѐ0>% x 8ɀ6 -E9EEы>1!ݤ`XLR\h q Q\M yIVXL҈JȎ U?+ [ ND~<'~  (L؈u!LH>X5#0!  I%K$∬! 3%(辅ẑ HXU 4!@)/x2VY;Z^Ȫ!0?ΰ00$@\XYĎ "L1"08A! b!@a9ZK0i,װk#|d9W8FS"ŀ.]d dIXf 0!"pD 9P `X`Cep P w%ȁ%AȀ 5! @Y .D Ȁt [ gj#Tˇ4؉pbAFyyIr otH`R2c 42#KF8 z{)8@ |M h68Q:0i4HX(4؃((SkZ4 U5g, ЂFdD"{(3]  (D|ةv kMk]T..1Rhۻ ! nv-8ltnRxvlp.s " N DTP?ǻ ؜TPb 3! s@_W##Y8j 5 nHۮa@P7G%#0Ȇ#@.>gp=; c=  s4p«X"6P.%()-h(*ύDe rlU>ȹny~$XNN;RL%wk@(*h9H]Ê/**0I An^pGNJsl8F,@HvXBgdK@;s5MGt وjM6 qGăNЀk`=X4\(>o`Hg&px0U2P,ژ.jr =;f(@=hx'm oZ1xj%$9@|A cyGD;#* @ɪ +À.+6%7{w 9`{Dq i )| x;@HtQx'wD t&::2fIy;_h;(@;ȣ| kjVԮAPd"[݊Y@YXX ԮQ  :@kgOeLp& ?*P."4f^d1a@P,X\*% .v mؠ5쁁OӮm6ܺw6*Mm(]$0RxDg(Q4joܰM MK]DJb<j3$d20?+1Y P @B5@U 8& BU%6@p`@@$D M9,&`@0 n&gWpHqp@(͊KIJ\=?,(d$@IaU'_Ar0lJ:)J@t @R@t(:EgjUB =&#ő )Z.Zd:K PKtE8T09< Pkij&BX-5,5z i P* @9 & $a3xs9PV_΅l<,DsB]@(`hCC`X%G1C )|Z 4 V ZYk5]fbDD`B0 D!Z@ >A.= ++ DegG.`DK`Bؗ_._D9Dn cA0Pb8 @F*Р '1IA0MDe `XB2fCn1vN˯&=1+0@>? ID1D0k@ a=Ѓ!dˊ`~=v6 *@.1py J`-m\0&@Y&!YK r D<؜|"pS<֣E0 (Np$0QBg> )s_-/ xв(E7ҭU E0;x+L:QвGj/D~JDb(c N8B0!0{?0`CѮ>"jgIj>`p`/ن1G((9>G|9O҈}(DK5y F x h[/ nEd6P 4 BAFרq3 (D@WfP59eBje~$+EV.A n`t m M\㷑$'j\H >itQhfm*X!GM t6@LVuЭe1?_ffnD+v-u} ~̽:Aߘ(s)速A 43 A:VV\/gAY]o@> j@{A Z+ >pp''T1!^`r&nk]u$&`5A7 " L Z,(3(<2lכ#A˃:k< @ַl3l9O1A3x?І΍v E).LI|rj #˜*r.3? 4 A/])},x Bx`xJԒ88BH:E5 }{-`AAf` swshI‚p0J n'ږPfY&[1z p@lcB~&l! %ipc.G͚0P/€&4$c./DZ`A& W^jc17ywxd" Gz ,58 1&Qd76X Yz6 @/pB8іeg{X & z֑hDz{_LgB}8@.pq\aBjSqĬ`~)C0!!F!& x@n#vPn#D7w#v\x!@PA.H3 hE`-k'h14L<&^ N@a4/ @@mpc|t p @&@p$H ̅3a$W Į ܟuE4dRw4D AtK@9RhviH l@tL L_B@L@]YAL9h@! ([]a/F1XAR X* D"F: iEQ fAr (a|q̂X,D0$Dj@(@I# 杄x@,=ʃ-F!5` 3D41`ԟ"d@d+h/<j$BJC3D VpRrRJG9dpQK\# \A2֘! 4 & 'P"D@9F F:2@K:D?DEh-0^D=#0؆i-=Dkmp(f)L BtXhzȃأ=lA-$m̅%DG)%,u&PzG1@8%AE؀ t*D&AIhɆI@!*:`$ &DomRNiA,c; m 6AEl.)b;`L;(:"gCmx>V@L9$nZB0Cp{@ub@8,B$.D@۴E*/ DD(EP-%$h@_1A7,]A%ҝ=^$?FA@B$rPLBF6B*] MQ.45!՜!@AX@&CX! D_y@A!AA\RP5@ʠ^`Q`k@i i9 Cyi鑚{AlyBBn 2!Ao^c7x> d>ăֆ'+AC֒׸!I,I@8\E?)AB&"A\&-bdBٓKF$DBO^/QL3d,m0[8@z\D,xQbDB]N(2IH,A^D-vZAIk@j)4IحI..DZCk6 @*/D) b;R$bnIħx qL},TAzAzI@r0. A/E8 A(c  <AI ځЊB<s2@l;20"b[ @XHI[[a @Bر&rDaDE_@_tؙz쪭\tX"\=  EtY4L@W@h @͟fHJ@I2-όz5V* d@0uK x$ l2aRa  t@ b |n J@@`zB@4>k0F9B<2t 4hd 8в t#*2H˜IL -ssbDZԚ_t5P9+^Ǩ5m$  @ 8 ,4n IA@ _<`\43\DFق@ Dv͆`CIXI͆s I+Ob̎)So6v9׀F  MpA_sH϶thFcb<oMܘ btmM/mWmT pŏkkFNk $a0PS4KMl@`8Ь<X[NwMy6IvˎE l]9vIPgOvҰ %` Z#W 5!tؠѶKWsc쑨T=`npy W\sq֭EP!Mt@ Ob\u5t5H PѴ$ DNld(D .  8PA F„X@tFZ<Eی1F4Z?UagD+K[PV.BiJc!ڎzma&JYGnSe ",ww U@ P dig .y b@ ,A XXZ8p PR9WՀaȀ AYtaDE"/&;/D3JOx (sΟzi )~?Nˈbm@ DrowIl8xMvđ Bp P[QirN١ HE@@zY_0% Bh5Lzƒ] 0o4#üll;A:Է 5X>QDo@3A [vQڈ^mĭ^D(ZiH*T@, 4Q $0, ,r"@e?ơ@0DV@ć}`!dxXc3lə7 "鉇" Lx361RR!,Up0 8@ BHEt فe&f ƛoƕ;n]wkWJ+(#S!@2~4gDĈd 9sa a ` QLPe G1¤{`##FVR nG"@ N:<dc0` S avA@ 13DX ʖPh@##92,.ܓqQCag =xG* Lj iR`d~!(5aQB/d\=@~qřKB 9NQH|Qh¦6ojcKR5(xA0 fbo$҇)`p ō;>О$H&xR.QbMykQ2  2x9J6H.` !H!/Tnڃ ~SDQ YN0>C!/490- ( fR8SȀUb8bRAC~O.೘QZwfiǠjʁِd']}k 'j!t!` 'Yj!6i wB @&HVmǫœ, l&vYk2ħJJ"*%4Oܺ4JY-Dd@蕙NP >1|9A04D_bqY^){Ha. bO!z rfʅ[!D%k C43mv0Hx 0(g@Gd\;v?xArP83[{ Vh-?PF(`Jh'@un"IHB~ʎ`.t%<@j3 l #~4'eX&ulU7 p@>-4+B @k#.ha< 疴=\ (´+3@ԸA M0A1&8,"KY&xFIhA![G؃t pM ]Eb _J@Ԩ>i&;B=saFPL+yDSbpG į=bD40 {yLr@0a@zt.0.Є xCqa 4pwxc!yɡ0ρF>g DK*G(H(g@3 f1U!x& Hu@dU!Jf`@,P6QCBFLU,d3F\w /|ȝBZ,ZkΈ^4*@X]B]0IP &`. . ^bM\z@X0& H\6=hB0)Ʃx E JE @A {΢z i ȎDyHJ @ OW!!Yµ;P2 tu p -Q@THK-BBAM~$ @ɁrYB0%5Dr^ D …z092E[ l3|F#1@i /gY9X|!Q4BJBk&u@AyCL` =sN`@Ok3>@^ *Im  I#DgC 8 D00Cv@)HAtd>A]$JPK 8Po C$"@G>A Mo~M) 7?k ^Ka}m6ZdBI,?@ N-kLiitutqYvo{1Nu ; #j@y@ֵL'Ȉ(P5 @Bo ֳ{[<0_`?468AUlE{a$w J#鮻Vy^+h>Nnh"\DP?ȣ66ˋ/obdnp`Xz \@N?  B~ f`k Nqn*K+fh O]($d]^|)/` p$e. Q0nlߌ@B-T"܍J (Drm p`h@>"(/\@nRb ,!| MF@0nV0MJ*@Ipfm80.B(,Q.J&.@"B0)̤ƸNFJn J*L@. UW,! `๜D@f+.Z~+0b8Qb8@i!Od Bwk2 T6Q0|@˺H(Dj&~%~꺏fA0A#j/DFk"2~epzo # @2[K 6eY B~W<@`Wq*#'6` k @t :>:@g"b |%!Gi"&,l;On*"–oflb/$dBBq $Zm#2)uqti!6b 7s~ CIa z*b!:s#P`U6`@( -4fB17T bS<a N-.m.hQBh+mLF!?x+/LKeDTր p@a7Mt/4r@!nid F!zA!s6(mǽd&p e.$~NŬ.M 1{ ]q& 1, BFBHIx[! %l& w.[!Lڍb:P$D)&Xl8.n)`B@g\2m#dO$w,c!@.- 0ҟcJ`^ ܠ!pdó9[Ùok(<([O4 )'Bɻ7*,ڏFe+H#R1 #nbTy&@1.x#*,$7R`bJǀJ\!zl$t{4 +"[FNs+ * )#xEFݖBwٷeihVƛ7"r1:&p!`BoJ :LaT@AYR@RmB!k| ~\.&iNBkw۳=6\ht/d\.]mq#@ y b< p.&̰Y.@ Dd`zցg!&!@&^I.^>&.!D`I4POV~#%x..unSJN$B9آooOinboD~@& "cy6ln [92& !R@E@FmF-X (?/=G<`ʨL!ڵ H^K Gl 2d"mȟ D+P6zt F gx# >4… :,8 (,b!Fpq#Esʕ`B,kڼ&L9{ 4P"PH`.:TB<#()X@W "ت0c5(ņAz  (*߂Oh>;~xNRUWҳyfRp@"|,4{R Vp!ܕ;زF[ěs!չ/sfRY@<3LW,K 5tICMnpB-tF0w G)NNHO0h@ R i聈s0r" 0$C, T@P?p YoդpBC=CMACVP6#Nh&5D&Fc<gv*ć?`?|XP=w~;4cJ'DgCf#PJ#g CrCa-ƣ? }jc?pAH/(Ko2)} sOKtYM6P)]vu6T9@S4LmwۂEA4BmtG(d%Pzw6P!/]@.qd8ypM6ݶ |]/ ŃBd|PNB3 7D/fRNLg,,)(έ|ô6ŐcC[<0+A8i`:K ls@6W.vwTt,sIF3 !BLdWJ /t@W@`AL (   C̮r! ;._X 1s djšģoBAC"Ч=H1;! W@ұBܐ!.f5v GxHIi t@WPhU Q LW<)~9`&C @?,"䠓)cr@*$ 3&`vc~&TIhJh`N8LZQϛ=GjP)y;s|N?5`&S!.ЗC;* A xƳ|#uA8?Bт+Fa<2Y8o!֤{x C H>=ca^3[,qInߚ[S1ҁX;9kV<@Vő,ɧtWMF 6x=(dW_h^: T HB0Ґ$eB$  #`$ BRpgY-3@@9ܐ @ R!_/8 [+5-6phъ'k EAš o0);"H(r (>d!oMTPDC| } Ƣ]p$ 1bB7Q/⌆$!1 i9kH!"1v|0#2Cѡm?< <h :ga څ\71͐zU X2· @X " v,K@Q`D$HFƣ,4aG @5 ؃r#C#7䌐)K 0!dnnH=Ђ4)ٌr+P7'x846"DD0Dp@#5vB ]+6|!p-7;Ba! @ 9,$! h!CA2_ -'5ԅ ˃WB_(0ҍhcJ^s`^0d}xzChh+*<`F )G@Cd& 0FK 4 *%x:ELq@ p" A`R=WfK3RUn1pr 18>"B !:z$ 8ԠK1 l:z6D00/  j| 1QwEX ![Q`@a QPC(#cp!Ϡ\XB`K yA! M04 @AW!lqi Zz8Pz˶XAWPTS>f)9ն8 Ptlaqzplp bD 0'5C0bwwp0 1 l3r V Q@bh @{`p> n 2aG'Bs0Fֱ `"}S^ A%|K_5DI5!Fp IK0`Q # PFSh $W9bdwH"$` a,AYUw{$`|m> bc+imDPbA kW AD/!"c2kK[`EF0AIaI!lhF? gP"Qs(I+:SUTUR YeW$dBf4:F8AV!/S27C&_oA[6%$1-`Q @*TiQ0&rP=@P#%S1\6Bƕ)80#4i+:@ Оz6`Ratb([Sv@z1=:tS/SBAD/f%ةc9]FS;VDSes8S5i5:uAzᲣB1¢dW1K0kY,52L5L",,Ͳ1:<806,ICe@bM͒:XѴ*2Q<#9XpQ-pY.cR&)+ z0#(x[wU'ӐSe{ReTeeS; aE@y.f3͙(Ԛ(#UPws2r2"㥦Gae W`p'sB+%MA8 g8'Ss33<1P21*pb6@&qT-.4Щ6OS#uc2W/4_0@*簙fT҆@&!Uh4ぴ0:4`.^^SaM6++*3-.SEOW3[h2 Fqţ*p*7pS-P6a'sB'/0R'0'fr"8!)p2ک:'P.`:u3g(`ᄰ3S¸G"?a(S&*T-k/gꯂ1 ڮ (Bc6d-[+kbeƩx[AV@3 %N6fWVeBhI>p@$yb(>ఁ4bB@[/Db+ X2)Z@Ⱞ*[1<%0 ' N;bZ00%*0t2g8+!=K`{Ejo["&EVKVdW@\+61-+"AenE:g\(Ur o&KrkBi"DH/V )-jLsD**Hִu>`1D@[F,HD0鴡@h1Yr'F %@.F˯IT3$ 8HQqF0`[ךҚ52j#0RY&$? P#O*A_ڿFǽY;!:3Lr@dʴ4PH?#[6 zf&ӥħ|ӜTJ[ BdrC"w p0`I1~P ^`1h#^TyV P #;0t 4rA:.zf@%2!ycqm qE  SR! 3 d?_`2>t'>fMP0PrDEpqoK@gxp`h={wo^P0ppot\X/}voy GPxo*pN \`l&[71Q+C`&QWvBI4qvK >_Z5 B !GU1s05Xs0?lR:]D@G`,tۺM s !Mad@   Wqp16 h gvW x ` Nxe  31رwP`8ihǐ hM B9oW21 񹵭s@S PHOgWAQl>q r <̡e`g>Ogy kk;ڤ[!t4; F0Eh֑8̡(08 і@ pp H&Iք#v fbHb qX0֠(}  18#00ϏذB`a1jCB>ӭe "B S XD e`,6] q tɆzw"wl}fؐ!Vt;8O3PFvw qac͸Oh, _ ,N[v:P0NX# )<`KNc+=+=_H`֪Ym{=> Og޾  y%)17Ng~K Qj2hl#'P4HC%NXE5nlƎq1IH/vx Hw4$p\cfT(ZP,MԒC<C r˕g/f@] 4& H21jLv5, h CzUdɃD <@JL@"*UD%$'P,F *QB^\X'l=apC,L1@@Z8g{#75K uCoI%qH9zz X+d % J LJT\qhÆ~ ~1h(+!*` **P !!-`1 ?00 V(I8AbM N(zDT4z@Q`G i"N"`O>B 5PD =΃=@M4:3!`2M&D8D 4D 8DR0"JC"_R z Xx+hM(چ2E%L0MRCXhQx@\he\fHb ƒdd6U@\ZAP=j38<bLO`OI@jZ:/gNDTԀzD\ 5$@*A qK@`%#!?͞ DA`,"$ šx 1aúlA.A"1/xLd&"3AXW`OEIȖ@f8+8" JwDс L 3*(SЃ! A.@~2pd Lp 6ag8GH R`S"8B@@ fBFHMNħaLtԡ WMmL0C]3;ͻP K@j[yXa> cLnyW#k%,~hǚlg1B8adz0Y63;&L{LVApWk5-( IJSk\ :*I~䙯McW*nݒk'+Wǝer EZxu&\ޒGpXX4(@04bPTՁ@P`Pܥ(@P\36ip%^y`70Aַ PL A h VР0;n7#RۏW>TX3H*zz+,M}{vUa7(Eaqw'&Z`MhڕknfUr߇|v=vrCXf sp ,vU q ei 1ig֚35weXlWP$:<^۞LgX1 fpFv4>W(!s%42 ɉqYSmK9g|WnC}%cbZvձ{҂d\MB~ٸ7rv"+a(鸄|ⷿϑ<*":Zy s @bV܌Wqy˻4J2=GG!D8J!ny3!C~i֎T M ٟw%#znNg:FX f{̧Jd -& kkF0e˼!h #٨-UʼX*Jp3@ (3ɚ;0<`Xzс[Ѐ  `z !鎚p ( A}AXA` c ل'p*\ Л`v0v  p:)15'# P }р8Da+qbxtW h&A 8yML11P $s2љ \DPw8Y h"3dCAU%0%X W2)>p4*荖pG#9hh[눲Z9p'ILj?Gx e, (p#%c|#PvHv8t4-h?q9P%P݈wr?07r m=ЀpK6q4C u82 rИ #q/  q `@u9!pC0e>APFBz,D1u8 |٘ o|8KjЇ,Yʹ:jK"HO F0w |104H8JlzH52I"P)X#N`V=NդL/З10E><PAtu'oӗ א9Dx Ч5 <Q4ݘ5t `hhlO8.tC xj2pphDي(Yvuw04}i $ Dp# ̾ǃ:!6/"ˆxXP:2/KG9PuU dp2@hD:V C߄(wC9 5T9x$udyD4_8zh4z #yPYPh=$EO8ɗ%'h󌇖L<sT9Lx0e;y'=(M6k8jh|N6PO@5K Vy k|~Q@1 *JvB^EЉobL?-@'012솰J9^-UaC~X4 xX6  +Sek]!Ϲ OT ~ނ@ އ/"' z!V15C -dN14#9Ђ;$~[Oy1ǎ<#+n/tG@wߠD1^qi&\&R+̢[(7a ҡr*,SuD2;fO;% 71cd?Sj1y L,!3g- hsUEn/x/;mLHAÊ7kkۂ+9'48x|i&6wi-LO:03QA1 lj[ e#rĂq82{!(٠>>!#rj{\1z8Yx <17*z{ػZx,?0͛?Z$Ȥ7yc9*s&mxQ; %l_Qwx;͋q#v3ٯ-(+̼s~~P|@ S9ֿ@S~ӃDGz~<@u4p!ÆB(!A 'b\ v#F>Xp,$"D\B䅓,Ir F4 DDa!u*ժVbq+D,RkXfN$*ݖ5lܺg7T밭ԼrQVaMx@3 i<0m)L0("Z 2/ D/7Dy1AA|l!;7yrءu_N]<٣P= ?@K0Y@tyP; 8ճAT]"BSRY2FAVL@Z*G=-p9A&:O9ɐ!ã޼'Gc(KÞ@#$WRZbu98LAb"iA-0% و2- TՊ6@rG]brK1&6H_fV&VNsQm' lr&VH -y,DA%$ҵ#c[SJK 1}d"H ģA] yƳ D{pml׭P7ndjpmh($׏Cyd k5'p9aȮ80F_^P4J#l%)dV__Kd ĸ;I0+'#KDt?8UOH8J0%AF0 6G2px " r(%0T@`M#B~ w8 lp$ !W F(h DpҊ90~P"2 \0$*H2FB p8!*c$5gI!-#BJ^# ݗA1*3Le !HJ3(6 N`O94h}}(i{?(@KV`28Bo|!" >@ 8 @,̣ NP%>* R+J%QkZ?/ U X)bbI|B5RJ!i()AX4|`R(?Lbl7ةAf. 5 rP! BW$P^R`d2B6jA(QW@.pe@8H( 8Ȇl @j L @b\B"re(H~z &,wJ_ E <ȄC>=`ނd!x-oC,k 9Bj:.$S( %Bp_" ;wKlb%vQ ? a50 xBb3r2Y H2Z|@C-Y @ʆ" xl@,<1̵RUH +S DH@8@3 RH I ] (bTT'xp0[j%>(Adp *f@0 #)A4 HZ Iܠ[-=@MzԹҞ S$aFA_w B! h5DޅUICW,( qF % Z1ڙ!9*_yم\ B@h\8$r74Qg"j%. :pcA B 1B" d9˞C汜oMoBw H`ds @91$9h"dP[!q Z08,hh(B*r H8zkD>ݑ ۃв^6U m)x3{p/#8(tqW"h @ 0@*2 =T@0f_ r|">([BO#jT=ۖɷ ,$AZA  -)`\@ 2a @P!`$aיQ \2UQ2u *1 H A \FYA| CBQ$ѧYSE% aIad x@   Ʌ!S 0̞5TQ^ pQYMP$N&S% RY Bx5aD>!Qr"M@=!Q[Ē-S Gq R@%W>]r*nXA>yQAa/. pQ) 8V2m 4 D$TaP& !a $"9 ̕@ĒQ AT b,>F)cE!93-[hWPm4ƕB )vrCMq @N" 5@xQD=i@ +@<&55NDa GR,Y ccQI9**]! U %]ա@]ġ1QIE9ڕÌ 0D} ]b%u9@p@1@<@X@ AMIYS(TR!o8m ZEi R5@V |E UP , APy\KC$4C0@~5 ^_*A]chŕ@h6VdRTaQXEsUpPT@'Q[ n.DYeF@^z ~ AQALT]q@8[Al@!Wd*Su[gbM19x-'h/@@B$\A4@ddU2X^cB\D7ZFsV= 1©2j"j@s <|DyUp7]0D8D TBhBT/DXA 5@(z9Z0@ A) DBh*|DXAB4AZ\GL@ Hj@n@@  ɀ261J9/Rg_ B%O=nBy0`6`:~B.MYA䀮=DQP&&A”yď@$`H2 ;^ h]O:E%~}u^ +=BV@!ـlؒr: z *АPUA"@T\]A\ DK( #s ƢB:0%o2Cgң"!YB@ < 5:47NѲg"B ; ;GCc2dinfDt5F*p`@K4)%JXepFk,W@O4`D4ˑK w؆l B {(I봫uS@ẃڌT@??NcQd DyԥZ̈B>4rVuvp|[Ar XRu_\Zg!J^Dc`kNj4|8@<=DACvhG-(:Fw)4J5CUmQ8($ vuBjLLAAY[vsQSk_@o`n,>m;xvPAj@(JC?|4Xv,DOD7w#Ji s &I;xJ<'=7c8)Xt{xOA]͊xKV柌8x?O7t@! ,'>c8XC C6T8q!A!ĎaIp$ɓ(S\ɲ˗0cʜI͛8s 2L4ҤPO&ɴӧPJJՠ@ bȥ#R8cFdѪ0, 0( ܫ8!˷߿W)"D c^C>L1ʘ/!bń ;+ƥS^ͺ߆THCc/pB޼*׊c<\&^^B1qJtŧ%_^xuMOɍRx FہFDF@(f CDص p 0"3@H&uCɖJ?~$YeiLPFX!O"!E%W^@(@bPB 8 ByMf ]쐦nމlBO4, 4?fA0f9Rf*R꫰&Cl`rNz" Ď8P?l(OB 9!( /g(5Tx2c( 88gKHF2!"x:x3G251#K,w,},$\r(r};q#:c348԰v9p?<[(9 0c==C?|QO=ģl&S"LV?#02LRÎ?lA=&Ԕq߭FgZIʠ.:^.o<Î::뮃Fz8DL*  a?9R<3 ,x?Bb"\h8&ӊ=z((;̈|lLhF:p&.D'3Yfp2ȃ`?@$Ae(c ;z0w`z 9 # 4h  {DÇ8@FzPvVup#nH:$m u@#a2%o[P2 urXQ}MO?qO)7`H}-=3#~4J4e,!=z?@exCCLgZ@o =B@/OӢ?}.?b 30JlHvb s^`94BV标FA *O ~U"s:R#Ђ.9,O@z=f7Y&,gZњQq!q0"TOLN A+8  }[u2p0 j@=@9 r T׺?"H& kL`Y8FQ!˜ձB`AAa-N@H.9HGo(5=P*ȩz &5JsXL`Vr(KL992A [̜ȑ2)#>yE LB;eD)o_ ~ D`64 JРӪ mmp66mTJZQu=I#U֑w=la֐*w}l[Ɏ\7ֽv^C>MmCN+g[`Ƨ7 f0~BTpܛS˜%q3|熛' UupSY!QPsyg8q P&B 2/`*1"Vfgs۴\YJo瘞t8DU׎5߬%H:ǀs61cJX"D0&z ր~6_;Aed]U9|U |cVē,dK~d}Up*Xow%8"x`)>R8o K `ücX= Z:]>MmzX>DO~xgXgw#0+iw-ic67 b0 # f`zP R`&s2Ӂ 6F(巂S[@C7455E zv1"D4$<% [.b4B0;5 &4Ht_u`au}SłlfeerPu(v(t"jDgP _p8CPd   mR?0wCe7ryydxqxm؊C O3 Bks@ " s.)@  58#RC 0@7(U?"bazR( NЇZlZ! ¨ż"\žUk%Z&;H'13P?í0]S" gp `R@Fʠ_pCRxr, Z P< ?#\K ?pPL@ \D` 0 0UiȌWªTeWp2 p!r.qAlơ"g@g@(@d`*T`-0 WU [ ppIz]Kv_p+HV`QP} ˰{ KUZNϪΊ**bM ( /  07C`ƒzLŘ`PBߥ  2P]H_ E :Ȉ̪B=DzVaZ@0j>u_O`ѐ@$50t8:OhPO 5&uO 0`OЄ0l`4Us QpDM +ԓ-yԁmlæ"oCVlhl 0<P/D0 #%p  P`K  pPK80 F muszP_0 `@l`z mvm=]ޜMlk yxX0p"jpHM{@"ib&"@@ &p){Y& ir݁JQ&Z#p0f {yEd]y];zz:2!$Žf2W/ e!!as#$bXP39"=15;B l ْi<~IZ^acvG8>isdD%Rs]wapK}z&yźyv9싾M˚} q@Wv7`hXt@*UMמl!`9I? $>:4u )s0 vb_xv,$1audJ/1mq6n@RS)>:ˆli]P̩ ieEi%  jYij 8ߏݖlAloG"qp4t A1>qu:X@q]501#0Eqg++`J؂xDgs G+Sj2g r"BpF+wr{eK O,.N KFDN0N)%* RKO=?w@3PD.SrTAyyLᩕ :BJNR;p_#0 66I@m-Be1g0Q3G  TfLUΖ1b̘1Ǝ?.GO=gV=^#`81D&)?e#2}ٲw樳jRwKcI) Q)%2Oj[lSu%j[ϣ}\p<GC͛0czD iSPDi.JOG8<eRz@F=iE?(CoD QoXğwh$>4NBDOD1EWdEx FlqFwGr)$Ri 'lI'v.h@ )Qg Ψ q`+ oāIVD9-S&c1ؙ'ABihRK] I~5TQGFSwSWHxg%V[mYz /DGu?fxaGyyuH$-3ؤ[cRTLA]Rθ|c_8`W+nTzx)Ibxހ]MR02xw09+` :61Dw #x u걇6v[q aX %wgY^߃kz9z`ϞX7Q:k;x/oIlpEJuJaWD6 Z[ < s"n <+@DICu|+ yíGHq?|7}mJp<~I#Db CJL@"qK6 \ b)4@#¶0HJ9+IHZ"$8JJv*VȤT")I'aI$8*Kr|j)-_#S=J]!Ra Jh D" Nq#ȎVR'1L[2Cف[lD\ 2ak©Φ@$#FIn4ɓQ&KDe*ws*ըR`<_"f,Q5PVq7b/12j+D(Zv1d(b0dvx%^G@WKhRI& HxxNAh/їOGS̯Kq%I?T2j j{vj Fg^} "ALf@?'p{}."#zh#%uPya`(ǨTc(3(68IP"}`/=&B*$d )$f梓BXjmN42m]tnjH[n2ZR=^A,5ʀ5~y 2px%?p@+"`HX9oo-`vqz8APH9eP kRGj&}a XjX%,XNd +4ze@P p`h+j)D?؂ X>z#54yЌ9GvP^P9ByP@Łp2E3Z [} pNKM OdC_rrJOc&$s)IS65 n6؁(? rq=66760?+{(21X;E&S,Ƞ*MÚ#[2Z/p9b'PSYE ^?h' /jZa _=Rm'v-Ђ-9oP-GCmol`=P^3X}X+Xx` 8"?Rf*6IiWWd\ОX+]ЕVc udcD^u*y"`gxVj>,g 9 uT:y2뭻^; ӀX#vQq yHD0A)AC=* LD :LeDD|1)s0Bri Ml d?!.cо` w .  (T)qob(Önz sÖPxkBF Bh;gʯ}쓠@a:Ap]09@Z0)( PVPF< a 8d8P@ 4Fɒt8wC (K @(V !H` $  2OpЀP?@J`LцjhC%ooxr*<"<)؝~0'*{318R4("8? lJ, =l! g<cp &`?$bD1 g_Ѓ1 氈?b 08Dq -$lЈ !z,a<=aTA d#Adp1 p3е&$7#;DxS=dVr?E<4P=(Yy#gpNͱkG?m3#&E4bnwAHA0.z#䘩>xuCx>uH =/r.v#0!_u-G=!p)B+?abTc p؃h֫vC0vI MC0;CFEvvyӜzR/~!-ģՇ* $I' e͒q +͸dY2O a.\2_\Va>xa8gC+VXԡ AB( `jpep a=x"6b`$`aQG=#J́;Lb E?!=6xL&6ǂ=88_P:uAjw}~XEɉP"h ";8 d1<c.0/d `2la "A]xR& e` hD6;L㉄c`(@F,#C o`*D ;t-Wu]lxGxa =xx2PC 2y pE@UM j.OAbL꒖O0BZFRxd0sfEQ82z-8)bIJ1%p8??e"xBߕ}X1c B=A <T<Y?4|A=읂l;DA\"!h@XA<?́ < $sY;&$`^ 2s@|>l$?žك7`;l V BP[Ԟ: b ,y`|W0 dxfGhV|- ;M$mM8l"h85?4>)_у:V==97ŠQ>>HY7T<@i케`7P&H/x?0?|9?°y)۱C4*C#5;H=sQ=-L>ă=C"?( b‡a; NrbQFn$GtF H%>F"KƓG $[dP0) }߲Q՜tSM9؂(8(07"@7P5(7H\@"|CT.&J8A "9("2P7l9D&|&8x8 @#\%9d[45L@4|,7L4B;*P" AW+2A 7B,;`0T@@DMQUYds>'8˴$uQr("!$G"d (@@Y$[T$A4R !R\,dd4 T$,A#Uht.$h^0t@ש\@H,@םhz>U A4@&|8 'H0VG"" 79DD,9z/&aTzAqA _4|A84895AHMX#AnhZ89d%BR:@^4D@P08`,B=&!x,L_W!+jd;߁gHd9@Y4hWo;S8'΁:A=("xAv);C"GL siZ#62*CA `}Q:4X(>$hx)8?4ϼB:熆cq^?Ӫ٩Q9x7cc>8(xy<l&t?l)L"^sͿE腲o&z_$4`q)K$9v˜%Fl$!\ <`l80a c<|paǎ7~` V?q3gP-8Rx (/ppk:,1234^/QK9Fa9D*%B'"~qFD"|@j0LA< P 4 _؂ g4``Rp H@tT pؘ$Bx L  Co$@R1PofQߥT<2}ַG?̎JT>E.R4`O3od%`ԪP)Ey*0{PK? Bx ܦxL+#0; #M*Pd <5 @@ V ) :<1TRisD%Y1 RS;l ^aY"9l,$8QRTfG%mIQxK`)LHDlR5dF-)4߰) Fr#?Z7T`1 9!耖D cmAZ`z0$ i>6snv3oB 6(@ `K`0 b`%a&4`T`.W/EyȌR}#hGaSAl T[sDGV ڕofX F0&ۈFUKZ=`"x0 ЋlŁ)Oz .AsL@{p h3 0i1mgE\'EJVi adifbJ W >S XO2aoNp`6p}@MQ5FJ:A QAw'z) Nh/r bFoM-;t3cO3+$b,QќVx=Ǝԥf!խ> 'z(@u\oc}p b#E@@Τk MQ=搈?lT%lP!6ˀ3 }JR fe[w,6`uf (#\⇒5xx[XJL]rJ72 hY=͜PFbCĠ4v) X t ؂{ #l : l sCEl* (B`٬@x(TA @n:C\`T\J{.(k-b6壅q1y6I OzkCJ(5k`{!{fa.  X `&PzBKvgw %a_x -h19/j_8xhP}#aořP!1 @`OO  TDZ.$/&eN/E@|0H7~-f2 Aw@IB8g‹@A x[A~^쁌`Ʃ`bCz Aǡ $@Фa8&&\a nE~@>N@aALVa HBԁ xΙd<n(#/cBXhv'S6`%`X^U>: B*@H^AD K@=apؠ`F@a`[ 0!d Z=ΡD@$!A ZA 0a! zQ`ԁCTA %&=*3")/l1@EQ,4H6zRNj`PI`2&! D@&AAa +` ޡ`  ށT '&  A@Za'?@2i8b4!)E Ar@ze/l7aZz$`!6(lx a- B R-353(86{<34+c$MP.Îh-%;c厃 46@rSn#~ pȁ6A9v@` ء ` A JOAhazH8 %V =$z A ~ @ԁ3 ġ`#3G4A3CtDIDOD>QLNRf`s>Θ#|R~!Zab6F@ 0v xM& 6aK!ƁAtla ab ZDM AdXcv v` ȅ,eC؁ !Le]7 ##e0uS9S=EA554T @h_旌hO7Lށ|O؁Ɓ ADx08vR'Oa @ށ\wb Y16[OUr`c`x\F'1aP ȁAla U=5b?Pb7u9>,T5VTa'I* aZP<` + @ ug'4/0'&`tS/j'3Gb*``h lhvA@  $I v2b)Npo=RW7q幖&=*%0jj/Ɋ`9*t\n*n,B2c9@WxAa49 ^zg@b`y@^4T P @.~cq%(JHk#'}5q5FL0 *0Bs?"cpTf~ùKj7h)䇱h< HaxWOa7ȋ ZJ|V>6sokK861qf\3Ւ&?Dx>3M20-$0G>33xJӊxŘ}D"H#.0b<&LzJ i2rҲD d`%<`pgpH؄N`6)Qjx`DB(RhBV'qMq'lJc@ D,@δf9hYB,U4pxM^ D~C6o^@6i]@A+Hv~Ph7cYh60zu0C77b8~ Ϥ̺։ @x2(t`j0j7YY-9/٣5zM4,zY3#cz7O2I#Az=SnyUz7Q ֞"c#bԇ#1$M0 i664ʕIhYhFF+0Zʺv?J27ǧAy {Վ8/Ҽ؉z3G1~qwwgTOΊ1#92hy`y7b @ +eLȁ`:ukʕѨԡ0J@|y@{t` Ram JWĉ n=e9v,4;gx'Om|4+3G ۊ7q'bQO\Δj1Xjƶ^`V @ؕ `z|+I'`i. mg R"\oZ'&h%V@ 0!%ຼ[rf` hV7EE~##*/2X9{ca7"%-iV/*o|弋|_ NOCA + .@' .@` @! 6AӑN@ 0H A`N>(aGnli6aaN!l!T!K|<۵]۽Q}=?ټCPEWQ"UeVW|9޽a9jL%/z jE * #S  a WU fIA>* AsMm. FŘBVje4*fp˧-1D|}7t' ИОX%`80B``a4 D t2X'[ r AG`\ {;ATaNQ(@c RAΠ}` SS `Q1* @@AF|! Lx *A7@`A>[g!0v4CvK;vaңOwi8Bf5pߟPSxEU]^an ~!Y,6*a`g1$YC+:W>0O=V?z;_=gУZHn" S=zO(c=g=&x?"?VY x"~ jJj!hj *aJQB@#o1JH&s"z2L2tabH blGRRK s|4 _x  ""l,rD1 c2v"=0 9c豰ڞqKA6RsayEUZз֊tJ/sPr[5TCI_P=ĩ(ЀD p@ @4G6}A#!Bqp;8i{;(]6 <8wl0h(eT Lh$ ʩGKYWY*  <3 }_(2* ؠ`ՠF\-꫿ċ>˭oc-F5cZw$ʐ@Ax@bDx B`ʠ5qF$! eAFԫ^HJԢȆ7p"PT+o^ Dno{J9LW`@#ŦlU+cR,,Rͅa 31[pHuh<t4p >["0{.jr6LC pm '()eOJWS8;SH/,-2 DYl棢Ռ{#L4F h$B:d>Bg>E3l"WKAƣsB^Ӓb>/m1&[5⊟n2Ўr4V/OR("z J.TB+0uWPCdOV6h)T < 6""y?H@c@2!LyP:" w;pH/#dCTԌWt&E9FV5's(Sі,e)EQj\%vJv.E=PJQ$*HʩNSt@8 48e}j- -1\`N > KAC ,k)c-Tp6w,Jڒ,U(~!_MyJ/J-ڡJ1")]JcJfQm']()h`؁0>k+ٰ$6A0r&A@H=,,qNA'`)O3+XA(|(Hd^G8oH?<3e, iA}f hs3L*+wϾdQz!13L\Ti챆K|'VzPq@w-H`/p\V8) cЂ 0zA6 pk)(40A"Ha3\cKy#O O?a/TlZA NNɣ:ihl=h ?E cNEt^_)U+׍g!~&pN1&"j)* 84wɂwIq7` `~ st$` Q.`vw@ %dBO!F0G1 Ұ :x '& #1 [0 `V0 RP$sN3$߰%`)X0x`3c)up* p)S^퉖Q%"l {y.b+_F0 bz` $V 0 3Py` 0@@ T04p@$XC77yꀠ@p|yްP }V X sP3gPgCa%j0 }( $f֘fhe r_ %sxt@}fs0?K8 062DtcS6 00N 8"NT#K p(=  ( ' 1"' %NHDPb *G7{{jǯ/Wqv{tJi"K4jQuShf8IOjMAL>W}`?pFn !;?CMs@C16:G:w*?O@ r" R73|OkPKf9PȣPj&3Q gKoZEHUMqZIt?V!,X$, Kx=#06c@ {*NNO\`G \AT:;P;dvh@SRt\!fsq:TԘ[xLŽGALAxPÏ!KĽD2K18`\:a`XCᛷ/Y%*z,`S7sJ=%bp@:Hz/͂Ę 1la; @l0[Pl) a_0Bp5!& @ i=K#e Rp̠6.n6Nꦮꭎ^2~X$*2G z~PwC p l p V_@mO027熳ں`P`35c F  @.֚)` !"wͻmHK}e۴5T9>5{5 5 p/o  ŮQ I)5QuF I0 A4 J ^!A  * R6DpdPK ~?Dnp)Pid @nf/ [o4/  m0&Ire~dx:ilm qFPG_u]d0 O_ H/o^?wm=̱PA0~Ҡ^~$8`*v#zy";uޑ?}ll'o @ cgBzy#064 QI.eiSNZjTYnիTa~%[Yiծe۷0[W\;~@UO\a?.$jiөIl&@&+6R5ggT2[l2D1&Uy lEL5"5Ew8 p0 CD6lMbѦEd6bsbկK{_}dۇ-A96^A#0B&_( @:@(D`8&PD.(C5/Al< VlLaǟ?4 5xrЁL4TSBdM8-@:|8s²3tPB 5t^xA`=3Ѩ0"~ "2. (L%R#4S \}US5B/NKm51#nutu@4SGC=5UO]=QIE,kO>k߳v>nk0i6?CUw]vF ^|k7/}Jޯ5J``TRQG6jF.0ӊ5٦"k伞W*{7){Uj߀Ef|e.撗9_Q{YoەzjJ,*krK6zSYfFTy9(ꮘַ~-0(Xo5n&\-kqhF:ɗtS_+rc$wb]2ksWl[50ڽQKkŞ?qۂ^O}~g+l(a dXB6dr1&G@!}>AWyģX /0CLJ70{L8ԱA 2IC2 o l8 }Lbe2$!)y[V-oGyHS.pOYJU˵b7[ȅ-F ., 1xV)%#( 7ȱ_4 ` xҠe#oGexC" O gX a0W{bNP* 8^#qm||Q;9P&@zC޸`%(4_e ` %5Ah@ 1RC&Xqs|g/Hh7F~S.>m bS~waVż„0墁wv)G%k@ :3p0|38x=vd[oZV;1/s{Ew=];]A>"I r9yO!h فI!?Á L:P| k.XωY%t. :a⧤Y@-Db'_)ݩ y{.@>P؁P?XpA *yY9)yЛ=>+ڽٽk;=oM=pYm  H1 BY L rVBS$L 098&E1?'*9!1>'75(x;ԋGppG`DzA#[p%DE|\຤H"TǀVGT:L+S2|Z% L%_E \I y"p3Ї?8"0$6yI 8PpXL#IX'M|'('Xp^ L xI&SH$4 ?IK5! qK ɑ,K4\K˽@˒|ɿHdBX0832W4OL_1T!ɒ#q;82=P" P (P "S $0 .!ArN4€꧃(|!(A:Y 0 "39$PYM  ؂DH؄1Ѐ/hChL؂-ZA؄DЂ0;y`-3MXPp-xC 0Ո`CHLPFPI@D# ˿ &?)&aHx5%@#Ҵn,!mdA嫻;E*DwaUԏDW$NoEqnynF˖Yru(Zzg%O<xŸY'ur1`%(" ?ܐؐY4#|)2kzlAF>B')O!˜~Nuro'!GrR9ɾ [ZLHu>K4I<)J K pT"0MNj ($G+y4i[AKW˵˼K\/[XKvkeXvtjfDrsGuy_v6!wqwhwg?ؘ+=)5\btd޻>l䅂q1 Uy`w@]gwpw2X eX')XPz'5 `0qe@ ЃL098=%ui~Dߏwo 3H2`lbceP^jP6h@ =^ lf-pA &a-{[&?e쀡r%˖._͚2a̩s'O4a)eСF"M4ϢK shM@Zei掮^ +6 9 ذD 7'@kW@&̩7I Kē7II@PuE=jԔAmҦÎ~98C0=f6Ygk&m#(`Ygd$pO0HGEdf(<Kd!_,_[lzs?P*qk :m,q+llU۲ʶ"R;Vm[1ՎDt\@hpLs#x4yo_* Pr-:iG ,ƾUqm\Ǻk,Vnڳ'+;y"5T>T4 *nK1ĠRJ1x /Dl}P#!Q|Gket9hͶD f'Vl8o37~c!F1"`[Jt642#4@|:`.3˕O޻N_˱k;yr=+˼s:=g uU""(pwnz`w0Oo'P/ lа4 6`a* 1O| ^PB0{#כ! u#dzicjgÕЇ+DDlc.el5a"iDh `0+* т?@M|1w:A H@+`ؠ=0H* X#r/T"-ORrD&FZ2wS&/MH ,g9ZN+PU~&(C9hġgI E@m%]?"?&1/s4Msvf"! BE"IX~@sD n#,D86ْx|("jQL^%stDEh͜H5*"FԤݥTKݍ%΢n4px BaP@?hE< PA `Ѐb$g&pL@ 6 J k"6],cB6d5eQle!*S.zӖ g?+}Aztp2 xj! RV=@a 'P3'(@(l94ȁ-K?>fSG F0o>8@=P) 8 &rsg>M @`zlBO^l 9R@޹m @$a$@ 8cB*BbOiCPȋ\@T$H@ lMIH1L@# ʀ?cd#mP1 2 e1Q"eRi]pRX,QP$|AɄl<L$@3 P)J#wl  "#֐ȊXQ gQ8@, MeH6>T"+6#]6bA`WaG<vB<@ p2g hcj:"JEA\GΔmfc15]0@i1aRu@@g c<XP h%8黸 l@ A(7x)L`+`}9<)7x5 &0/XA.A D;ZSQE;t; 9H:@*98C4|@ ;|h9 ,PC=;)2uCCIwX@g&9B2:;-,2Ѓ?@  Cu:i2M"UJ@ L 2d[7C0kfedvwSA}@ hhH_:,؃ |=/ |,}8P Ԉ~@|88IuDVwghv'0m] r*IPC=D ;@Eԃ-x?蘟=&ك8ClH jPpO*l Iٓ#A oټ&7k$A4y-0!X*́8"LB;у;2$&<Mysߊ@1 7tH=x1X/y՜;(4),Aʡ(Ciϛ?:?P9|GH0tD"(D8HA@=zg_vxy:ʉPt\(TQiQ#1H,n©]#) Ā69ȃ(C=`Bџ<=߲(A]V'H4u*JfwNuWQ}@}\&47!=&H4B]?xC";`ߊp:,(^9/=C8:` 0s}CLpk5!_n>μ m8$U<|ç;l>'Y0x xx@ X9۩TY<|}|;6胿]'k`7wV:M; LlT *81D%p@I@H8C"F@f 3iִys&xhPC5ziRK6ujTSVEkVXi,+1lڭ0FBdXb G :tĈ%@ Åd * 02dؘa͠ Æb']tWmlVi׶}wnݻyލN=o {wXl>W쎹̥۔CNj4f# 1uxٻ׆hwĜIÆv˄1c8 <\ BxA< '<<:P*ᇘ:Q`PEfqH&Q,I):@%i(*ҮK+6a'N+. J Fɮ㌂2R3B =Q -ˈ Zyǁ' . =*.g)D:#*DeZm-r9&%J8 {8@PiK 4o0iE#E ̯ Ҳ̵8v}xq8[lxdP` r0r[cQ6xGPΧ P6n i]v㝙mVЮ^} (IX"Y{h@~ځ9a-EaLFyeDŃ`CLP%? ҝ]ޛ|7f=rew\jwܖ-4!9ЀQGIؐRG8}ꉧ``c}nX6 v^w 6灯VG!ذ=)`zB`II{"p'Ga`U,{ g{ֺ3'h@x XARsJND G<uHC h?1;PS-_:1^6@SWzE<& 3tF(>9s7-)6q)D7Jd3<`5xˊ:Ax>jH!G<MOP  Y(IYJd8=ܡuNjz6tbI @&ABzX23FT9`0$&A$)w$)Mo'"bzMu H)S⁐}@4%jCr&Pd)g} \6`bE]ra'h;E4B:H# +ě o#LBCXdPA+89!n` v|8ш)?i^L*!JxϞ% 2;A4"G+3D~@ DF$| ;TzAR~2r٪( xX\,CSr)1 _*W<_3eC&⡊K41?X ձ.H1ko?qq/{C?xv3| 9)/` 0wyM4Va,"`FW4OD9| {xxd)vmk&Fd.`+y< Lp$< g. m(+h+dd +.fN'++BFl`v@Z@z,x 0H(ã^ƣthz` V`3xz/x` j&B os밂bGT ik.~T!KSQ$(HJE0J"1+h#:FzW(l`pdC9 JtJ*D1&vǑhY@jģ#F1tx J` :K 1`%0&0:kf~A+@qĸ.Ʈ"Yȍ TA<b!`ؠ bLSA~Lw~3s$Ł N!dD 0'n'W=RKa`4GX |X  7CX~ r`QE(A% A (mi !M ~AfǢ}@ZJ4I cSΩ̞A@34` rf`GV<`xA!0z{pKA tKgEAǀ &AA®~JY nU ` *Ƃ,ʋa  .zdG`+T Jt&[^rDt 0M +eNٔa <@0A 0N4/xpNA3!ATx` sHI¿@ ssAA(ٖ`&at`K!̫`!AT  `Ty`;&qp\ V'bAZAGxAr@ xa!@4aFFVaaDq!@\ ~@gD*A3ύ`ϕArGm޼pqrGL a~b j4>"@%iΝ}QҦ#& ]rrB`SCtbt}F޽JU+B`Ē F d + 0#N"1E%M5! ED3FJEO-CkMck>54/C~ w~_c1 &Rvf#2>~c]~&){{'UafL/De™">r{)T@G{ d3D2$T~@2HxB%j>I @Ao卂[_YLWM#9lJR s@6Cm5tz6+|a|`T%c3@Rc䍐=R74jUK'L0:_L  J L1D A @BL22IPm=}(Q#Eŗ0cʜI" 2oYϟ@ JѣH*]ʴӧPc%<^ ࡋG@ HȃiCEbOyV 1D ?6ܪ(S4V6Ԭ&O̠CMӨS)WwȆ9b&HԌMѤ A G7OhhAz#O= LxAzvL/mO%FlKhS\?0a'CL Yk Yd1qE$F?lu Ern 1A[`Iy+i~DiH&i FH1fD в6',s-pI20Io4 9 AI3h.#nI3f I^[QC*i饘f) RU&'u#`'|H8l!,soD"uY!R,#nI84 =ƨd 0Ciߦk6EfE-r-01Lxk'0떵 AF˘9"#FÖLiZ!.@dtės$H]&(j6ǣa z Tתl=(T `H}}Mx@)CBvu߁-!}< F|V(Sfv (DA(~%J,>$ȋ-HfNɨ#f(Tَ@Zv]Dn@1$Q@aC=%n3Ѓ dBWy) 0CptQ\JPv)N4w%Ygٖ@ ZF@F))(4'DZ.1`މB ᛹ T\1P'bZQVGF뤤+RmDM)d:Pm@0pz @A(@vN 0T0xB.lg(.C_G~e `fDH(&R#ɜ2$Խ7Btt:dGDDam]VL-M@C,mRm 6mY@oTJ2TO!=wJR5 DZ\;EJ朅bG>Gg<!w xBC*aJD8 }_@*3'cr2dox=D@cx2d?!*jl"Ɔ( U H!@xq$R =P^p׾ >p&0ln`G;+ д=5*Y<]BɞEd Ht&D~.LwN\ɼҀD-)9(RID?ħiʚpvvQA b0& QfG&iYc${ e Ќ(dFxG1yW 94D(>5J1d!T0H&⣚"+Hd!%8%pD:kzCF2'R*>,f2c:%H4#Яi9֘' eCfWI֩׮,{?dPB X^0J&><b 1zt'u]ZF$^T,V&Rb#See" BXMLp%шVfL/B3I@BސO 2 ~GUqk#ZHDb ?p:TF1)04}y~"KSr9;/ r&Da W\E!(PCa@07k7l$VK(BB08e^_C,@C +ndFX/((d:UeQ5Łg3:a5r*֗ }3AI\KCFH$YE<g:}#hDq  1$54pz#W's=~%PbOh.GRV dp//P57 6AXkhkLuQ!0)qP56)v)G 1-Ad2?g* aG. ޠQ p F@i"0FsD St+ qЎs Q}QZ@38`e S"TC0>l!7 /azPD pp{AP+E`QNd,i q6EQ E{/5cl  {3a5/Ifa1 0 r*[ @0xx0]GV@&&90@AC`<C.@cX%HrgD6B; N1!>?Q%=0/`b D](dnR}-`u2$Xy &8YCbSi7 |(}t%W"bAh.5s)> z%b- a2Ym  |p:A(730 !C0<Ac*8@4pJ* `5O ѓI@ ~ G9gp)U%ZDV7^&H4 1Q80s@3@M:E 5g-+!Ap@6Fрjz;:L+/'!r  )S3Q) ( `xw`y> avQk1J! Ш:cVm!uFyYql!6" gI*e:gкvP{cpz2!e_Bau![H,@#`y/;²8 1VWDId; GC(%F]U=!=X! Ax'8*sl- ya aa"V `"!<>6 ;N$+!Oa=N&"|b/P oյBHq-(^=p29Ն'9.*hV?0JKsI%;T:OK!dzc$FS]={k9YEA6,UH/Һ:K(7y0qlغ"ˋG a|7饥!aW$HiB+-SҪm3*+o 7ױA6+K$C*+ITMAQY"q !+ >{[[n /02M$^aD!1DPĤ1)^J:ճhC?3gRXa_"@0@<zp K &?pT&"#&`!Q*_gaQKd|_O2qp 1QAGNЪ(KzńY4 T'Ƈf`2kd1Hq0~UFQ'g% pH+a#p+Ýl!_ a X  pC2\WaW!1 <`w<!P;dC0pz?ՉTź+2wQ*+U2VSLs s9p$qY0HO DfEǢaE.ԀYW̡_cлh$Dž"/<؝!k%c8)r=;U$9e 1:i+m"` |7HNPE"a͛ g Zb<[Flt 8Y. 0Ͳr^iAv3Mpq^mBTAŀJHq^$$@'0t0FAW׺҆j{4-KnVs+%>=XOqmO&ѢD0* :'EoF~PN\.HAwN/' awE B<* Q#k::^1V*0lۤˣ0A KBOVzA0oʰZ +RHVA[!3 ٙ Jk6aM[1| j lѨ 90i)haFxl.J:!q#a-K}'!(aS="`^]y@P*mmjlnpr?\otV=s[/YQ%8l*%9Q>bvB)A3B:Y=]{%U:%M)2FL0ƧI& ؝%f' `435@oa#x e9S2 D0,O 3/A0E&bhQF=~RH%M$u4ZPNBCkh ISD*ETRG@x8РTXe.@`w2JA2Q^}u[.bƍ?7 7( P@AǥMVܗ%?8ɸĠC &1D%Biiř^^ à~MTܘx&]bƌykt1u;T(~ӘAT !ʋ:/B024J:2`PBGOnaHEIF0! î2"9r$Bl<`RTX!Go eP"`H072#q 2>i#X:MA: 8!vJJ룹3 Be!vӽdhl(IQV Ġ`)3S[ң2q$2bCF(4/2-0lag 2Zf'w"ÖJ\q $!I[{#ȕ%/cۤĭKKt$H!*PP:AGj.iuQP^t D΋pJ:jH9VXq!9240 v#t֫&p,G܍ p \!$Lp3 #ȂfG b,qCED2 E۪54Hh} :Si=(P_Z;R9 @ T` c6LmltAde\|Z@Y<$Fm&A 4Ú0pfBt6P iro(/l6]P %J# C=Ge0e߾ZQy<"$CW}:+@*m.[L? >dtV;0W[dDgL:zV+:A?l  !#{lN-(/:hM m?YPӨ2P ԏM*``jTl BiZ*j2i]|; +-^!#WR>B={Ȫ D*nK = s, )@VA``T !L ] )@Hb.jHdH@69ab>mABA#eқ  0R0dQF8( Q` q+bK I^6# ʒ0FqX5m]:hS<)>`.Y  B%Y0aE D>T-,J~Ȇ\³|DY i}ن(W$vdC $0)@F mG FR` pm*@pV&!#AI$7  Za Ũ 9;f>lzPf a5 B^?3 ?m`8UcH @A@ ~H!2&Dt}`w`%i$pPK~$Jzcyd@˶gkLjMO,D;H%T`R% ƃ HP+4H(0ńTNMnD4v DBqHW 6P25S+8'~ z W#a "#ֽ&H֓wqAf~p``?*;I AgQ F;w  2uY0/sfe,q x5..a#&b4k7m%HIu! ,-XH"c‡#JHŋ3j!PƏ CI &S\ɲeAi1sIMPbPB}JhRtB%NXdժH͠u=Jl[ |NٷpU: -t%Ʌ=^A+^̸ǐ#KL˘3k~6V| ѓK?./ .[1)fvn#%< EN=ճ_TPB k _шDgOϿ(b^&`vÂ鰂@3` vh /x O&"w C 44t 0\ (rp@;y -#MT@(%@гU %yd ;jFNetUgfz矀*蠄-&)_F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰Zp$B"I+kdI9@PANv\zޖk覫뮫%kNC@l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXguBl`-vU;l (-tmx|ݚh0;<Ⱥ! ,,XH"c‡#JHŋa`ȱǏ!I$h)f>0cŒezI'O: EY6 2 P ϫX"rYÊ=(CX㑣7mXf4A 7h$h\|IÈ+^̸ǐ#KL%М3FUxM DysGdU"Z%M;mpN2oÿ%=f!;  7kνËOӫ_{8p񾭎ĈQ0 !@CGa0ܷ `<0ÃnP @C~b E*x: -h#wv㎴=#VFSBiH&L6PF)TViXf\v`)dih暐Fd!lix|I!5] N $B Ѓ")PVj饘f馜v駠a:$`ꐙ•ƴ*무j뭸뮼+k&6F+Vkfv+k覫+knRzբabDEL\HFefWw ,$<CaZ!z[&cB0A! ,,XH"‡#JHŋNz\ȱǏ CIR2*ƳGpR=KJʜQNW?oJ܄9hZՈ ~ʵ+'DJ,`ƋZp֬ݻ˷߿ L0E+^Ϥ= y*zcʠ" MZaxJ6hWvjʶ;867? ȓ+_μУK/ #+x+F/¿an2vXo_Hovק!: C w&8]p z\1D8zt@uV'@ %tJw㌤ E㍪A<@)DiH&L6PF)TViXf\v`)`%YJ!lp)Nl]WJ@'TyOۜF*餔Vj饘f馜vZZTzGDuZɞ<꫰ư*무j뭸뮼+k&6F+Vkfv+k覫+^)՛#ΎpYE>^R&H24UZ^!4w ,$YJ%zȳ([i<[R ! ,.XHܱCÇ#JHbD#6>ȱǏ CIH'&SOK#@<ʛ8+2"E!=-`Xx ɴADI{ӫ%GT+OJٳhӪ]˶۷p㖤!]0{ߎlp3aALd "(AeE W9.vJ$~@7k:p{ȓ+_μУKN:#` al8 =m φ:}Zw:c!cE@qd ) Nn24 'I 4@D@׆8I06dDbJx:y*HcN:3УJ iH&L6PF)TViXf\v`)dihcVbi@d|矀*~F|`_ 9^_2@eN0Hf馜v駠*ꨤ:%_Gv꫰Ư*무j뭸뮼+k&6F+Vkfv+k覫+koypV*DzaB=&&0𡓭poHFhd*<U ,$lFg,be($B9@! ,-XH"c‡#JHŋ#JȱǏ %NIɓAD˗YĠ ɳRfB%\䳩SH͠u=yf S'٧x(BC r trݻ W!޿ LÈ+^̸1%(rSpXr|ar=Ƥ$"7c  /Kxs#6bL}(T!)8 @ËOӫ_Ͼ _OGac3d`07@1 vU@=pS]pf?_<@  0]N& 7|,:5C PSHOa2 @:SHNOäS<)ev?WSe\v`)dihlp)tix|矀 l{^&袌6裐F*CN~uꪬ꫰ƪ*무 qz:d< *k&6F+Vkfv+k覫+k,l'0k,Gկy[*rf"[4H,$l(D*홖<Ȟ! ,,XH"c‡#JHŋa`ȱǏ!I$h)f>0cŒezI'O: EY6 2 P ϫX"rYÊ=(CX㑣7mXf4A 7h$h\|IÈ+^̸ǐ#KL%М3FUxM DysGdU"Z%M;mpN2oÿ%=f!;  7kνËOӫ_{8p񾭎ĈQ0 !@CGa0ܷ `<0ÃnP @C~b E*x: -h#wv㎴=#VFSBiH&L6PF)TViXf\v`)dih暐Fd!lix|I!5] N $B Ѓ")PVj饘f馜v駠a:$`ꐙ•ƴ*무j뭸뮼+k&6F+Vkfv+k覫+knRzբabDEL\HFefWw ,$<CaZ!z[&cB0A! ,.XHPÇ#JHŋ3jȱǏ CvT(St0cz"N8s $HJѣ*G;JZfիXjʵׯ`㈲h91@ڷW,K7bU|agnSK D60,e.kx@͗ق|ma^eiʈ>gS?8 L @0 N'9`)%Vhfv ($h(,0(4h8zD"Ȩ%!HDiH&:u0&7t 4=d^zelp)tiJј|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰o*무j뭸뮼+#\쳜1hk%rJfi"a" AI+k+M_ pGVPM! , H *\ȰÇ#JHŋ3jȱǏ CB#˗0cʜI͛GУ | JѣH*- {@SWKjʵW{~]˶۷lM@G|8˷߿A%;p+^Gc H˘3k~i"G8 mw`ͨS^=. @s7 ;pElwR$У+ F (ÿdQ4^tO3Nؘ1c 9C gv?XgƒCVxz% {#` 񀐅$(s&,0(4h8<@)DiH&+'{N6Tjbt]PUvIє#L#h$ (F9 ?ٜtB[X ePQW @PhqYҦUjZ@(:P% e{}J$5'FqA;ip I0mA@$aЖD-EA#Mrj #X-@`!Q*+ uhfIQ@It^y7aN  ]YARzpz t( sB04H1"A$@"3z$-{1 Es"@ZtyM1qUj4t@S("!@< I 1$@I>---!@-4:@e*Ki]^^KkADοCP#?OG3P+*{ԻW;N489NRP#{ (G3 8 2A\ Ԁj::) iCB Tl[x@aۍ.@ݞtU 8@`@2j};- ȶ4'P+f'rrBC @9 laBT ˜|ծv5>\eXC֭IVɵA&˄xMk\ZHx^ՐZpS\ N_'ۧCI-\7,\5RW@-A ihT@DQ`} ,;B:EnDN ED`  ۂtכD!B ?=H{p.PH㝧A;F:[y, ގ s`c&L`s z2%K!T 00#G 2z$ajkN%!T X*Ž)7 dmx/d2:^y+g)VO@cO!) $[O 781d@Sa&=a OSU)73"{jhu!fj} m{mݶAtB@W[}:ա&F*TJa]ʺ 9}*o|J,g]ьEoeHW wH:UȣӁ[H  2"`MRaz"ר.N숸FZԶݶ &`wFw^N D '* ]{΢ $DM%õ9%iu(]SJ^ P@0AVȁx?:I4]$΅>>@tL>=H( ?\݇}\݂ " ssB( aXAya vŞ]PҀ"[^sm)w aO;F9/MF-,hlS\]=! b0`}CA4PLw#n ,2eK`T4=dbb 9Гu##|AVsW9x}K0;$5K/h}a3+co lXmXX|q- 0 x+K za8GYG$NBGU AtAa)Db&e,B1@Z c R|9Ä(:4*"q8%$&$lʦ*P#1oSg4Qof*nj$'53XqXX2Xqu}EIP?pztLfWTm|zvEWAVxe'@~ܢu bN4<Xm,u֍o|3tmbb$H`bF0&H,NgO ;Op%;q!S(vTe!"Fm. .yXES=E"7u1 ҳZ6%'Y$ (s }_9c1qK! 0a 2 Gf``}!""w 9 s 8DpՑPS6?bz:Ki2(Ȧ%oڊxzrU먯s#DN5n,Xy6,GH(a)kj+% >s5_vGԂ=K+w!ׇHDd%dOt5d(q "1?5o8P,Fcw c}1cv)2 1@cag p"$0e 8cD``9wP;RcVt{bw7Q_jC' |eI FhHB5@dKcf |- ў DTGC4qG.V=Бo+}5A~zVG:t0`6fD@mJtiCD !~pPCp `J!ڔjl'4LK! coZ1LBA?{boѢW}22YI, , %Vd9i B<DW:v0TL`p˩ܺl|!n2ӑ;FBRE ȧtad9_# 8th;2(sX$֔r ox;t n;7~%zBՂ3i(E֗|a d p\zVz7f8fCʀc`AD&S4w$¾whZX#TC3}2;4%hD@Py+ C)bJR&20sԒwva+<2c`i3A!Sҟn&ҧz)XfcS1u'[/'t(%B /+rO&Fb-+Kr"R؁@Y,Rf,B-YG`;K0$b)3 dz -s;_mDuAPrVj!#J*uS Jo +bbOPڜeKpbjk<H(3hm=۾m ޴"iPbqouqQĔ# ޸t}E5.+1K&h&GF@BUR~Qޢ-ҫĊZ(Ւq92r 7 U*hR=DliWtWH0Q 2BT0M0pL">Zm[lgziHWψ"1ZWjx[H,1K]DgDR`bK3A;n!E!71;W>ΗH> bDW yf\@<4};#>ոp8(sG$3G8ݍ4ٵl E&FIaR`ʔ+~oq^%]=A7QZ42"}E<1' -]#g 31N4/b;h&YHC^COn"㽝iNDJԏg%gKCm N5a9cH(86_"Z _ ݷ GUp[5R/]vl #bFTmGlϔXciݩ$"Ws6sv`LζlDj 9wD[)l )p_pW~쩏Lx^쨡Ď i\l9G''JpRbv;&vHzv00lPAOЅxd2:q;_"C  D`ΌHQbACd1?Fha%'|—.hSO ?E:")SLB0iUJ~VXe͞E+)َ!^ZAr'8pB w C#W b2A2~Lyei=ZhkR65"\y ^7b@8%/byVXo`י669UO=JZiU;]qŬClw(^~{vKielkӮ, N>ڼ lC+h(C mVF3h j7tRm aE}|A'*|(Tʨ& #B~8#0E 78[M2$C6tl "}FD  LE6C @-TRD#5KLO`]7LoU/!V-Uc+σj zp@AM5 R1$(@P@%ƀ# ((;` Bݡ r Mmy 0e\&$Pe퍨hpE[mUV֌/F W^WZ臛 Rv!4#R` ` +vEHz_ tFȀHhQgbI ҉ CX÷cH =dZ6(6ouW'9M6. 9nǠvy 2b&6!çCEa}@w3*${&Q=މGNǞ Sh-\ũ,fB\; JT*$4H#t)K_ $XetFHdG ufBNC@lXY!hdA.&6"ԇqG BQf 57Uu`4AD@0ֿŃweتTŢ,. KcSԱb$21}QVg]TeLgE,WQ  "ސ7p \9 ݢ7AaFZzH#fϞ&h< V4&axcDPDueĶ]־lԗ- x$d$2a/PzT`y5-0вO^01F=,+*  -S0A@D˴y 52$x0@E_ X+Ғ3)_G+'ͣaS1TF5B:R/@0bjy3 '$*#Y V,R:ٱC· A{i\GeN&;1 /s0|@)Lq2v#"Z4+fe{%$DaA"Hve_fۂ0&m 5Z[ l\v)5$#&0 v*ƈ\kIB4#ɧPOLxDH dؚ|@ L@!S_|֊[@ٲD[:M b斲ߘh{D Izԟm'qRshϝrJwMOHdpIG^0H3Ū_l>rϛ^i%\+u~k{(@Ybs҃oxȚڴX 18Yi8D>%E. g Y+*%ox42Iؗ(C)3A.jɝG'h=b/rP\P^Ї9M[U6Rm|QM:( QȩRӲ)M݉-ȺdP1lb5?2ZLhHMɠ ͉Lr&X}*P %{x90nI*҃ 5`n %u0F*YȂ=ԀX32P΄ P1 !S5 yATЋ\r392 2 DY RO Ҝ_s-<6 ![@Zُ^ѸV"5c$U?Racmʃjm 0"n"ƆP p[:\iĂh?N) e /`(I: "XWya3͚Nޤ?(xR;KA%Tb'X6j$$kB!!98V Mv̳=<'jxDT|Džѓ(2Z\zh3) UGqR=pɪq. r8N4i]aⴐ}*}Z+! E)2nل%ʂ 0I!M0J*Fک=*IQ@FhMȅ|v Xɝ jQ4n ةJ QRޛN҂p!*1+>:1l*HMJȁIhu L1hV:"Fa Fv4KgyayʀߜΆFD`2 zB4%pM5Kv@. q XOvAdhh!بKR쾲q]Vmbhs#D>RJSi^x\LH-z(R]ȝ$D 63Qj*bЇ3@olH]]/܈3yY4ɽnS<р$=8B܂jLXS!d#E/vL(;bQIQbqHv9Jf, LDP2 &\ '+Pʂ+-(t,F 9W 0*>;KP$'ШE ra @Oh8cb/ԈN T ^9!򭛠4@[(Ņ.LW8$(X2,04^ )= E8OpC т݊86xUM7M'C7 =*!YҨ P=YAXcw3Y( +3x6t!úsSx R<3Y 'Xy ? ,_JѲ ]8!32gT; 3)ì^e YB @1ݻ4#.0 RZXY=W? _}W|JeDAq.ܱ!oA\"Cv`  1|$x, -F<oa4"( 4҇C2m)ԨRRjT&,uH잒dhaD xb0@(Np J` w+ E2x^bXdG.m4m J ^7(^7C- Жlwhp_phH(Cp;C`QIRDTm>Cl/T?,B@^wc %J5Yb"aYЇQ|qd&FqKC0wr ĆJ-UZy;LpXdٸDg!ŘV2ah;I CQ x"eCOxzGeA1TF@Dby)jT\;@Q=tAIJgШTQ`!AtڙAzԺ:W1 D녶 I'8 PA%O z$c.X~eR JŐA^71w|17´k!B p@w\1OF,ap PP;x@n.1ڦB/E]cJieP6dn24f?xE"R{c]=d@Hfu2CQ  H 4hAfPG~8PQM ힴMZJ6ИLjq{8e]dbM[a]ġxa+m%y2GS#E qLc @$W`?Φ. Ӷ"Vky2A *# /<͌(6H~Hl[bsYþЂ~v$ۦ( Lɂ< NyRT (D R ~V72In]v ݵsIDBb%QiѶ:ʒHaN> WxewLom7G0ePV`RTG_;Y'N4x(; ,Gr_1+v'm'[! ;X)LwCt-"Yƾ%El b]np>kצ`q˜lE#Tr8kʧv9`ř,@>KS >X!ld~4>lA`@:q[~k܉10TsKJWms5ʙ jD $#0G:/D'ISlp`HxD:7`p<s$ mIوƪQUA xيD#DRIp JG<b1D,`E QRBLB+ٝ}0Vx a`iUD.A <׉<4H*O@G̠Ă<З ICI,aa͡Y9RT`CJD`Q APqF 2FQ%fjT`U9ŗb Uc7 Ua$, LuIX&N\f1;5^>fdh\K F*8xtCJ?\,Dm F$hMS@O*܈ b!BDpM$Ut uU^Vh]`tM(ϱ a VV%\EcpMXM%mQ`0PYN]%c c zP` EQ"ĩ^mfp&hh iec*9Ԁ 0 E4T1&pGF5M9|Ϝ?=(ّ땬R!)N7 ,  Ȝވ2*%^.$,I LP y@XZLDܤl Mެ@NEn Y ]ϙU+UPN-&AbKIkx-ၦ׶ 19FL@11P խm`m1ߟ0lD%M$P &#S4 s8B\.yvԐ$.'Og]T0Yi3S<ƈC;iT8<IqsBL>IJI7)=] /E2B !  zMXl5‡8B3x="p`Bl7B#DC B` T4g5DG eIa0SlNgdgW>cl/J9ra dY@ʜMG<mI@(n_WH`pp\qb[S%ࡑE 5bHú.Yۈ:C4M)IXպVpύkGF }6j~H_R RtlOYAAbљrӫaz6lzX7PwolO%Zz_eCc]U\\ViE`,Dԃe׆1$eC#Cą_C., Ȭ$F#JUBnOOEO3E2CP;Cyhߊ9p Mh-DŽ_ pFy9% FF(@6P6sLKv*W)v?_a9?@0(P@P…_舨C Q(0У!5X8 a D~h @ Eh_ĸiSOF:jUWfպEv`+c "ZD C(# L7 Gp@R=l<? )X!/A6&vEڕtiӧQVZuX ]Zn/g&cS'H @`:Ly'٢g^.X&n!_ͲֿO Mº :C=.rE0S"-z"j<2.P྇ɞ3, q3L((H,#,m `PR3A ,(Vk-ԁ!6E$e/{ LTE5R%#*R8* Ah g0k y D/^N Ro>f BC i"B>I}f-6?Fnu[D5a=\ 0B*uhmz۲KF d$ y@ 遺ȉ d7+s .0Q$e) 6>]j`8XΊ"+b9D)`lC11e2\dRG5#&3VX7\R:#$H=ơ^T˅K=l[D)g:Ȋz"&@PbɈDDf& B} Bɐ4}"H$3-uUO3J $DGSt8+!"s.%zB@NES[\ϗUfa7o4b ;WKvKbas2ȳ,Hru{]8"Ўv7̬n )57J2,;  TDY@}2am8Yㅅ;8URM7A%}l08f ߰[0 v`]2Q㿯| ق;q'6m̩9Pae"|B?a x+8*TzHD-ЃjIA -S7j0MI9AnD#˘C#!%- gh?Z# :&OKx &q9F|?)(r a 1[U${ȴ\uۯ4JXw^H؃D%4T9$'Zg!B!m8E`Sc!2  .2Vm;N(<`@(^"!Yq+&@ KlNX>g "6ZFv$6p"p4okLJ, SLupblRimf꩏ (|Ȍephhٱ+<עK` lѷh!# < Ch "]1Q35V.',{~4@r0z"kKfk  #/fS#S82Q%.^$/j:)v ;$&2%;hyh nz ޡ""$.>/-|r9 h,G8B&.B!\`@1b@A&sBb6`x}^@%)*5)D7 *q+<Eet),8(trFuH!gCr64vHIև.e74#@HT*b\${JYtJr6IMKBtM#-F Di8yB nn v&>ت3z)3Z^/d0$BM :*Fc)vd7"c)lrVleDD!$^B6T7xRKpj gߖ#"nW/ .Ԓl7p= UI6>SVxB4) *dbc(=݉0z0܅J%k .7UƀfZ#Q(PPp7!1Ab B^ b@;# `O i $YK_2NBnD݌#^K  Ml ke٤)Xv tPfT[<1ՌZl x3N@Sb7Y==bc=BW% pD eJh". '>>]1G#jdf,WrhwgtsX<`NxQԠMK`")vD"M)p h{4< rŢLrxHcD~'tdBê"glBGl(l|O(.4ZR ,CvLH"ke,JSe ,b!-Ƅ)0F)jTu ]QӇYRrITT-t*^8. N̉+. 8 ">Uk"֊DXL0⿔!$LbCGS.b _^rjX0R)lEbxԗ@sQwfh؀=ErU&n'/88CtI%;RnwH2fj(3S5)d). 뜴 $}&/ "4l].AQ'tGRNS9fb`4dC.ך]낅Lj@e  7uMxVGC#C?%YR}ioa-:{8"/'H7A:EzIMSxQډ+FWڢ}8eڟoaZq~h%+wzQrn5Tl3g#ȁD^/`.A^TȕM<p8ogxZg n  LNKG(UJ.%"=vP9XWBD`NN2f z9o/ny\F~b A DLD&GvORe){7hvİ AY5x`ͭBM #SlqS.N9P=!c B }ܹv6yQ:bhd brz`a @M`aE`4cݼ8K`m EEgrR-^+z)t d`# !P B s߆v`KC<+'QYD/9=#I$>Qߙ“~:RbU50&uN61x¾caIQݐ"1G"s?3lұXqT J@E"'ֶ?q Q `b5Rz4U4?:od͖@FqT M>kxp/l`{B?JPb3^Сĉ+Z;zbȊ/2ʕ,[| 3̙4k 08apD L\Y:^,- r 8dEW9hp돬7mpڵlۺ} 7n˞gyQJXǎ{ؘ;~ GҐ-jd!'ѤK>%^a(@=pc &s 1_ @,Z3R{tm=ܻ1w{pOmet {!kvDEGTuw .`WQn 4aɄCL8lx!XA=vQ3!1SQ &$c>DJqD2Ќ'()ّ-!2Z@'x cb-A^EKQt720 omSDAKGʑIhz 9yY1 c@ݱm^D#H[dJjdVfnV-EYLj%eJNuNKl *j f]qPؖ)eR9F{QQ?4flK-GX4/\Ё\ @#0Ev # /̰iV4 V4v$,Vt]ݲ Lrmy/6  < =nMfr: @ y! ,,4H-\ȰÇ#JHŋ/ȱǏ C(bɓ(Sc˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_恆7_H2pU@%4b8{-c˟OD\?"=Cd #8& 6F(Vhfv (∓yg#^? {$(4h8< ʂhH&L6PF)TViXf\v`)dihlp)tix|矷mĂ6CF*餔Vj饘f馜v駠*9`h.\iX :Od6D̈́Ѐ8rLD͊ =zAyǍ+Fq= Y@! ,W! ,W! ,W! ,W! ,W! ,W! ,W! ,W! ,,4H/\ȰÇ#JHŋ/ȱǏ C8bɓ(SXr˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μ"7_h0r[`/ @ y! ,,4H-\ȰÇ#JHŋ/ȱǏ C(bɓ(Sc˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_恆7_H2pU@%4b8{-c˟OD\?"=Cd #8& 6F(Vhfv (∓yg#^? {$(4h8< ʂhH&L6PF)TViXf\v`)dihlp)tix|矷mĂ6CF*餔Vj饘f馜v駠*9`h.\iX :Od6D̈́Ѐ8rLD͊ =zAyǍ+Fq= Y@! ,W! ,W! ,W! ,W! ,W! ,`rH9%iÇԃHbC#F|qC?v1a8٫otFϟ?}Lp) 2c)0UYZut oz֟y! <=vҥ? \05kwD4|aO:]Zx riY9A$ #@ =z СVGmDjV;Pʗ/M^V>6Q8ՅVV+VxQ}^+頁^@DD2LnA"p5L$K$P@! ,btH`ATP XBP(x!wx("QrGI.di0^1@ϟS}?N-'Akן0BȄ9ꀉ0bD)׷8W% cW@^ŝ{W 08EF6J[9u:Y؄9%OÖzؑn:X!DS ]l];a0qy{Eޤс hDgoX^L-Vliv@ r~FqTŒM \ρ7ࠃF0-(LB0tI?@$ TH.x[,EP@! ,jx *\ۓsD ԓ0 ! ,*)fH*\(ƎJHŋ3jP`08ɓ(S$H;D S䎘#Eʬp$Ȓ+ JTF,!R D G@$]HVDzٳh%*@"q@G8 `^;hX 8ǏC`h `Y 2hÖo!^V0AE $@P+wHgmr W9n" 4Twj@ .xók8@[`.uWH"l| ^\bMH;H!n O@~:6 CP@B'7;RP}uPoT+l|l c52 a`PR4ĥ@8@"0hН8hfJ80Au%Zk(Ѐ~"q)@Zm nS h^0u fæn0d5]5Rb14Fà*L. :u.RSOEtl!2˫KV{ 2 qIzAb+~k QNdŭδQ1o$@@@)/,<=h6}e;RЈ'(I, & ,3k $7qm8+QH^Aa<4g3|mfj r1Q4x GAf3qO/hlSbwYqUWFI  UG|ȇGKpQ#9 "@W|rb.Q_hpw&u IaC9zQnv=uE*M5a+5F/8bX6%Qs6qDSIH##aUI-VrDuD"(Pݒ?gkt.D N^)(4Xh،ˆhDfixw5EN6VF98KߗBz3KD5VvN-Q5[FYa@ 3%o3._(ANu"@:F^@qR?kaIjl'QBD1@MO ҡgףGq3q'@9x1♖67'1LVv`)$D=_@dTw͗/S%p_!_'LG֤#s1!G!:£]iR!i >ha ` ƀU%" U]c 3$q Bn:NMݵjPFFF)8w c!# b0"v&]Peӧq6"1tW2Q % _gfJ5%gs`cJ1pPSnǀ= dnNH"g"K2s lNGu"&Bo'p2e&F1Pa Ia[A~s!<"^X 6lF1+h*,X8,Un/8.iX[FFY WJi(U+lD˕+$YzYyuņGXXXMH\tvpC!ZvUIW&*|!`*fS~UE8 PSwAAE\kFb7x8x$*S#t+ C԰mTU&iH / Gomz'r\ƂOpndfwUU7hSUUv kswPq \$N_E6sY8$plc:lSRQnsfvm7*% ld)Ѵ{I0&=KUALQ'u2{2ɳ&Gq)I=uEóP9%aD‹&%ztfJP$K=j%UI#4B;8P9fd0$l0hg[@QaIe+@h$0z:#qP0K9@a#ƹ$ǑhÑǙ"4= _p=@ Jb7eء"}М##}g q4p Ȫ|6S\<9$tA9` ~TT &qɤp7bʗa)KJ bJ#h @eJEgv{M< f}q"pdW()-JLXl 7}j/6mt4Z,v3 t e¡=FRQP6 S@Jk?%1+)ND=F!-Ougi?P9:[Z(S" VFCd5i*/!G*\݊]dmtH;Gʀu)jX=⴮v[+X%ar"Y{0ىY]"aZmr܄X}+7a&o!+Cə :͸C"٢(:%_:bÕ-?'qT1csF }ܡrO,/g8Ya[+uٳ !*.a8A/e1B6LGUP!SUY]N0?N"ޯ`@d PC;0){˅:ԏU) 2;[q4ˌ _0!JKp !{Ag.R{~D;>uq"^Ы #ϕ'TѴv0^5ρ [I ՅOqF}4VK!Bi 1T]r }o7,~IQ&Ш,OIzϮ"M1*whD,`7I#@J`wC$(!zp|4 *%] ?P"4a1!$ 0m;Vѧ6,SR`:~gKǁ|f3S8@@vE̕u,9@pPx2ȴ@$Q(}20GeraR>|߹Ŀ,%2Tuj[R5GQW1OюHp4Lgz{yW+/ec4ѶR6ህ*Knko-G,$ZPʶvbkCXKKDc.߶NTEܣEDE3wƯD uA=T/ R+-O =n@h >-^Ę!DF-jh8$A ;X!g0P"!IR(FQ TD!;K+. 4idÖAB Ӧ RMQ:u4TQJHJGE5U$UUW7:UYQsV[GVo/{D%VXEIjd6ZMlKV tPZoMj`0ˆ(2[oms9uel%ȣW&*"UMv_Pmx'%Tuxx7yI\^Wj~>:Vif=:쇷/^7kxbE@^F",!}׻^<5LQiR$t +C&Ե'*f `Б TA p >ؐPF!p@NQ>I8-Y` !1{FDN @ N;qL `Mx!_Sq#TK0U._\RfeM%ɉ$슓TK}aIF8ƽpLa-Ojr. Â-]]NHk\DVhl&ȂLUMpR]m\bGLH\iXԭy Ғ$*:51sv%: !k!w5#=F\%0dD;w\X4k(+gԂ 2+V%կAQ ,A{(31mHTa"FH\ڎ l2QSaY<rV2Vm]r0. %(?1O È̘ `MBq񈊓L1cAdRO@E4asaDI4TN#)3.,+pࡈc#Ypj# j )Gj<(Ӈd }H3<4k} 5"@ $m!4і "8CxĻMP< )Q'LqX,R #yF80 x> 0(%dN`ȹ( K8P "xO6$ǵ2(Dܡ(DJ<´F@Q7rFm ia\i[ eɹDUh1 6b=:/S,H ZRf5g~"MȸhK, u^m<Ds9F{9|{'6kpL5 sPT$$+}=ՈҋȅJ-u%X9(Dp҆9heY{u}5 PQ| p\uբ唞eZPZ|M9թ e8jqZ)vx'kl #LT1+ z P) 3hAW$%x}k}W{ȇpXP]! 8peMa4+ ܬUub # յ#pɆ ݀P ͋Y\V2W%x䅔jeX%5EUeu!qUXaٛ\IhϏ-_C`]M33 e B +&Xe$`xY [ļ0eZou ,TX,a R .!F].;Q:3Mp]x%]N7i <15UTf!.dUz={i<썒!EpHv 883}M _((Ef/9ќDd}eOc@ETDH( de<^&_n& (0)8 ,t  h+T XYg>_O?FT8X+ӀMXpvfffehe , JR%PP(9wxZf g`*\xuX?oiZ[^_О<pQHxehi[NZg2MwLXy~gFT& m{x9餶+`4/.| B*%`Ux2"Xfix"  $X=P4^'T2*SX[ vVz  1é")emP[_Ɗ@c`.ަnDѓVu}9_=#_FT_n _eހ! ,,3VH*\ȰÇ#JHŋxȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨSSkհ:1CFQGȓ+_μУKNسkνUoq;Xq˟??3? V0B\P`Z |C| 'Vhfv ($~G(,@0"T@ă-`kAz :C9kE8!]TViXf\vegZ8G+hlp)tix' 1垥Ո袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+klW1UZS(Q>aMmqP0;J4u99z,l' 7G,ħf` tu08Kh-+Z@Dv"1C!ֈͷ>7xTދ8ր?7N)2n z߀9wxP3n'Ƹ'M̃GO<@PsnK:}Gֻ{)@Dzo=8wC?Nɛ~4 X!P2!MaXQ{, 4G! ,W! ,W! ,W! ,W! ,W! ,zpH`= *\Ǝa b@ O Ċ;FAFIp" +A#:)0"!#HxӁ: )C,1@WϞz0RP[KuO?)[ `֬aX%2Lw?{i'$#~: \.dÈ;x3TiSǑ (w!{cFdprɗ-[([boLQAL{IV[0T(Tha(iFPW[iCsP2CQ%8@)]K@`HwH$w$AE%BB>@! ,x .1A*\0"0@ X!XP€! ,,3[H*\ȰÇ#JHŋnjȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨSSݱkհN1 K!ȓ+_μУKNسkν[_Q?~˟O>"l 6'bi! q]ig߄Vhfv ($ &,x#Ta`J 6I{=2zk IFNN؞.ViXf\v嗟!`8hlp)tix!]ŒnRF|b6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k]`VmQN\$ ;MxfNDFXQ5dwC00 3* ۵GhV(,l' 7G,_A'z@BRsk'(@@chގ#Lw< d @<.8x7BpyUF`œ8h@0 w6n3n o`.0Bzi@ B˭Яq;@=>k[P=m@//A~ /ushCK&(nܺDɠh(|p*0kAЀ"p;3'^z t@Ʃ/9]@I>~@&H p0FrD/9D `l `l 3 =1 xCl-!eZF 0 Κ@쑺 JNڑ@)FQX6Ae]gd*D 8\vA/miSŅpQ>%R, Y! ,,3\H*\ȰÇ#JHŋxȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨSSkհ:1CFQGȓ+_μУKNسkνUoq;Xq˟??3? V0B\P`Z |C| 'Vhfv ($~G(,@0"T@ă-`kAz :C9kE8!]TViXf\vegZ8G+hlp)tix' 1垥Ո袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+klW1UZS(Q>aMmqP0;J4u99z,l' 7G,jc< =_@_|N+Jj  i083k@GzH#mS= X40?Lfpa9;lݵ x9@/u}z'wH!BvOT7x4@z=uՓ/E`zy|&C:91/!8mգ? }8V?'O.0G^6h[|~IqF?Yz {u8pAzo>_oc@4?/Ț~DHP0Q_!RFs6a F`> D~QTX!&Q+K@! ,y *x*\`Å Tp!EK!n\! ,y ,ȎȰC)$r&l(F;f@@! ,(g*ܱCÇ#JHŋ3j萡dž 0Svl@ˈTI͛ D)[Fis'™w$ʴӤJQ*X`΁;@; D eC.lɰ˗k [V,hzߚDz 6lu۰1#F#D~yFȒ \ Ztj{b+&iGs 0 m3# LB=@=x=C8D:lS2ӈ;xS_[u)_aXZA`>Î:kNb |N#ij[ 0ʰQ"?05`2[8_C>YTpOrC@ (p?ܰAʼ đ'ϔAxXa8ΡG3$K58@;z@ĝILdc;j!\G' zxS?l1?D 0S#0l;e?[xz ,"4Xj*AIN}zN5)[=*L=ϸO4=3N!@gt9#N#V\@7U*9 0II`j( o52ьE)!;AИL!9eՍ^ z|9 )K<98q"<B.' jhDM!Ӏ.9e9A'`TT"aF\(1 uU<@1S'D@ꡇxͫPy`&R&|$&K@z&+Ղp`Ts5@e)DblyM aF!x@B F1GsȁsGw2Z9 uY `Pƪp"F##(ǂ|![ʐ@+l!% Rd%|nRdTP- K/k2HA(U'l ?P@)x VzJ6MAZԡsDd" F>h0GhAp01)LC6Qxc:XB.WPˁ@սPē RyCVءvԃDg1MPpM`{S.F ^& R2i<`*"g 30d "Ci#3{*p/ v? "ʠ@z pUEeH,swm21 1%XuxJ:eT1 \롌8;0{Ab(QExS`5{80 D[eKtK tx30@GE0>G>BMPU5A0W1T(wsx?NEW~vi5mhP ?1TIN KVF.KcB9RGU}U Q9#_5gC;dC6_e O#MPq׃$>ODjIb"!heT8Z@G)0Q- U2AMvΡxHYk!PŚ b)MDj&,姛SSQ!#ePZ@aPHf2X02r![]PY =B@囓FKaS4R`__pyf_K0S[_^VF JoICbxwIDR&Y$zm*u %+se@ u8 0g*@ l@805Dhqa Tz+heu1ܨ H͑' s1@Ba|`i: l^C@ V ` xk\D6eNW\wdBp0 Ԁ- ʠ x?   Z# 0ppyGF0 `2 ALhtJCA*kB)@}S)@D8<"@(-a[iL*{>XS ?DMti+ p z z R0 O0@ O` b{L чNi"`poUI':3QqdE9QPHS*I71uOY`+S:S~!51ב&~!\]Cµt9 vdkĂ(NP^"`%4aU;yQs9ʁR)hL%qOoodq)qIAUC9nqHT95L)ǩ4L,BC= ѻ{Þ[MûKq3N4yIuD sBYLV;"`=JCMNKMMM [pFN#+q5W7TCTCE aPúDq[Ĕ%`X QP<_3l#Q< TLXCSCS#'_g$Ј_1x^qqy Z4щ!2:U!r'!F :OARzV^I=D_SK ,iF R0!zSV`O KO s-8O Yd[^Kz@5ѳ:+OzZ@ama5@y[2 &h Z?F0OBHvg0@1ת@ dakKpw\7Cg f``e  Fހ^ .h:Gg+@ŵ[wOk'аiNg#ug  0E(ʰ`0 K / -d\0.ns` @i(ʀr2 x#o%1K@^o70ݤws@U*eԠ@?J6=~ %<<  p . z  +y v9vqRZ0:#-eA( p Z0#R c'ԠUȷ 'V Pm.s B*{RR`# @ypcd S\+~zˣVPw"@wqyJ? ~Z 6( Þ0?#11MelP]y ЮE 6g@l ~z ^g)3 @c#pv' b p jrPKV53u0u )em 2@ ~8zp KрD ' _ (Qg @` z6-ࢅ?p 0x p6=DR@p| z>Oo_!9$IX{4cjxΟ-WO˄Mm^={4^հ<\eAP-Tbs| ѰEBWHxuwfL` M  ddiB/t2<Hς3N5aW4]5HoS1H_#UG%M7_cNeOGxzܺ. K0*m1|"0~h]u#~+8] LQEOXuC=tuytz!Y>vLx# TWosǾg 6Dib}-D_??Sf_a8-b3RpL9<+x #$-^cp (`wЇQ!zUf*El aA((0Q-L'L(%nM"9xY xO |ֵ>sNjC>0/DЪ:zAK ;rFx0/p%85dJDJdc V-,b6< z0&ZA9L}*@U`4TbEH/6D gF?lDxz0ۼ~a'EHHRΈ0o <`Q>1Zs^tB.$ ? `}k9G `.F^ qDP ÎvD$ÖhZaOVEzl &{lALMfj}8/B{vm"&C.F[Z ^TQF( M(cBSw[` [8 `/1 R!h==`- # ?zQPs2=`H[ȅ dV( M`C-QoUXiiڃ# 32P!O!= ڢ" >" Ў0*B; ȣ B% R pЎ ؂J0 |  BX`IoYoL XD":-u) A[' "X8a ( 9XE  # X6uX! _lYE"U+IX%ao$vPV E8FAEVOq5 I#ٜ|B{$%ЃFHD@DH9X5#hIPI) 9Q`%I#k'@I0RI1AQ_1I@ JĐz)!0IG53!!K噔+N  IjT (Ű]{zS]ѹ8zżL#GP D H ͷH px tMP P8 x a-Š I |8,< 0MͤNڻÑa%)eΏoxډ~QUؚ0p'jpXKLwPЙp9dPF< )ڈH1|HP@9 | x%($bр@ըxq0 KޘC,u` s 3e8@A)3Ѐq) ]ē1}W/(=xЯw;pP# WAX,TxЀ<=uwHhC^@!(I, xr XMx>S eU;J3x`4=xx8򆞈E Д1 [OZ-h2h3P2Ѓ -@3L\`/LA1 X {x@ SaNLh}s0;{PXH3z"Xݜ@ CqЇHzwG*jEQxܼP/Y('hE%rJAffѐo"5Xa *QüٓOqԚ;\H4o`Y ݁}g|Œ { EPuffVhLJє#{)ڱj o؄n9a!iq Hя>U!LGhFi Y9rQvj'xTf VQ^j9р\ᣙ湚j=!ZyIaz6W ėANyQ]Qxdjpi+>] L)\^Ŗ|Q y^6zatyfغd qB2 !)_yĐ'QdImq^jEZOY%t҃ŘlNl|<:߬V[ -d> Syj FT /Ԑ0+pb#0&pA9u&n4_F! D \%?l\H FxoaEX2 q@ 0?C^utr Ġ4Yi*.6`= 8UD&ĸp'p" q8* C;XK! ɒJ)?2 1 x\/Vu0q8{eL{Htt9.ң}Ґ ıЃ' E* },EGJyI^,HD q %Dv b#; >hE;t]w.!͜6FB-j(ҤJ ?~xjU/DT%Nm)?#<\m PMa+[`V ï>8ӥRlr7 ʓ@G|S=[j#Fh0Ay9a;~l,^gGcnS?zU_ o%a2~!ӡE_U/YB-FvIA h הPdzTYaH"L0WPUA?p5TB7U=Awy R9h@:#T(X<@p_Dxɟs,%r?AiPi"D <@H4H8 ;Lf@'Wig$K@CP?&W9pMPUi;0;[lZ6 lB?\W:Ѐ=@ 4 l4V嚛չYI׺@n9d @,1 :;A"PF4K#$KT<,2?[lR>Cʐ=#-< ;@5#f(>,D7D+N=AJӱcL45r)P%5D \z,&KA#4 0V- xSBȓ3(HLCo##$U( uF1{dA&b z80ޡAT e!p` $zЃ<΀,T< p^ (@vFc>s")8s(Fw(#`9 CvXun (Ǣ @%2,Bj$ b`BaR0apP.*Z;0aF?6APLb!)`lw DvDxG=&aIac0=P2@h$ykAHLl@#?6BA1y ?U|A= )ză z0]= `:&=@ Շ 4-.̾)Ӡ|"F@BaDPS,AM:)t 1(E= g( <9 Le^Ee /" _`=lA^H{#b2<6@@ @ĝR<,ajMk=Ve1؁. A@&@Y.XjFy؁&w reC`^]j݌_vP ĥH8 dI~^ 9Y ^؂  "v@ʑQ{anK"qi4#$b g8Hq}9\)@2_\;@yʹ0IFQSNpcvf2r(%sî<ÚI1ݰKK1gʜ63G(*8SnD6;_%`Iŵq'yzwV"2D¼8z Xd:Q[Nt_IW&[  g9d*#/8"HL:B&<4lE̢VT4$9ԃ|8=\,$=zY3:ȢIF\50؏:77&4AO+< HCм$Q.ܟ:L8|4; $8x-;שlJ-K"Ll;94L*e"(@D3d(lJ܎)kةh\lP@aV&e4m(_p9f` "؂GMLHeِM,AFėDp '@\Opb珙WFdD\L+2Us rFxɔFȝn>ؕ)ŇIaHW-V%ib1hLZqܽbQZ{٢,YRFDgYAxǾYJ@솛ؖ>#XŀHP5Ub@$bȀC=lBЃ(`X(;IZkjKI+&Z#,,پٮ;ktL)2PC4DC< d"5<<OC#x?hγA8ȃ?h5$ /;M}*F7gNPX%B#&,"`L A"聃q< BK @mf![kE^ZE fh՘)x$ Bf pR+nX!JR$z p III<e [YN>qJ'r5Jy,1knsZ8S);śR3I5$zܲs(jԙأeLXJpss_Ȅ*Uh D)#sE;Vl*gQ\#+46tei.sPj.[M Z!n' ܥ#;:S"R3K_l 0"ڠIgmT!pǠa&xkP SN^ qpKP~_M?@Tʽ厒$X_$X^Ee =&qlfl<4 Y l˶IÎBR)a3hMƥ S<2Ѓt,@H$08P) 8l8 lUo:ԃ4<mFSuA+D$5w5i~_FaU9Q?&HV "HԲc,:eC"LB݃@[dr,kp Eq@4$R4;lJ2<,6pW@\dnO ̲A@&c20C" CZKa8"@á7*΁&=Nꍇiq6Æ_SCsoZq0ALɰC+>`£$e< d(B;<' 4Hv7']3T'@ 6ڃJR#;tɀH79T;P)>20< / -P<;<;8`߸[,0@xM˗ Ԇ,69V4xDڐ5|˷-L ؆Uw7w4k|iɪMyqZ}z4M=GTYrvyׄYV7seeZV peI ש7>[bP@b7IwWF\y~@(#b1bE1R<(1cE'n9#7DeK/eH@ 4w8VxCD$?ŘV%͗mƕ;@yЫWS]-X 20&ep6CUHm@6hiӧQZ5kկҕ=v\[tu]`+&@>sȞw=Ϟ e :ЧW}w_~} IpxdB-NJ%Q +&ER [P6GVi XBT(-R<˾at !'{P_ ǐhrƛ-P%2%6"}PŲbqLcLSM^X͸tx3D3O$b9LȰarBY RXB+G XЃ/(CtOTPG-=Lƙ0U` a3#̸JS›ǐDachugMm4UO% kp:ß?8Ѧ~(m?ZQE#. 0A Q%&e34cM@DI4(^N3)&sp1M6zavC e r7kd h8j hcS>h3Nz.FK"lbz6v §le|$&0"8bQt1ŧ%{Jaǭ̭,$vA {w%΋b:b\.W)i.~B0\<%;[$ܵ\xi)rAF(*nZ} ASi+w}pu~{G2^>G򶻠īpOX cXBlƷ JU=\`7ʛVƦ0*the+"=r qrژ<&x/-` ʠG=栀x'ax"!.@xX=DHdT"tcM$ " v։"4H \ d l0p"& s)P6-A(<@%pE|#O eL`Z1:JAf8x` O1nF- \`XD@ V3ih>S b" 4`,{CDhX;DA(@ dP0w0l G=⡎9L0Ѐ-#p4'*C z=61L#$ᄙQ:u! A Rcϰ졏xps&7@u=ȡ`_(`p 8Ex-#G?o`&`CP"dvCR=BTo|5!MADXF:ă\fUj"hak X V؄FԃSYD(&#DZp!aS86t2c 2p#C PGE ʐ0"W€ux]n.fe5yϛN`PP?p#c`x:F=aIA>ؙDу-@\DǤWƎgHrR?4Jazlaa=0!vP xG"0Q<DCl$ 2$Q.@ vN&1-MHyA0} LJ;c7&ȹyN,#Htw2쀹=x8>N'REԦfǜ_ B?A胛ʸI"&k  ;]PmA)CZq V J 4 bkJ+/8Mz3,WHiD`)ZGQa &a"4FN1As   t31S4&ZŔ<ڥ$£:DC"99@!aT 69 D9m g)A i7l dr₈ATA8Dԁ@ OMG A@A0B<`BLpA Mɪ0&Ǒ B.M@d4 dK[!(b@  ` E vSk1 0ԁ a!(JȀa `&&5Xa* AQAaO L"*JUJګ "j?A 0J^Y涀 U ` ʭddu@`_V DB Ywʀ Ɋ< O< ؀ 8v LvdUc 6ʓ.`vƇjӊ:b@ 6j%"A!`$.46dr:/EoG004z'0mvv^%i 30KBcawVb0:0OsJ|8^E$g0WzTT@6">Ȉ-,\ttjs Sk27qE aNv uZ)n&PqoE\#hWU;6b'C<`¢D,@*&*+5('nzSzGU%$72:@A :ξb & .Rh` < V18~Svc  C #q 6 աF 1kW-aDVtB R &*B듶!Sd aZa@Wa &r'mV߶ gـ.H{X  Q  T Kopz.(AX?8px".HC b`#`@yƁA7  ] w/f_d0/ 9!6A P!![!r2&Iҕ_Y[fԁFAP A* PAZa 0ȁ}E9b(ć7 (12JD@/K25Er}% "~blB*2+?sX#:sG6B&% K,xkc(y`g ^k맏-=sR;V--tGs&8.o2VqNg5)$b| s.[2pZ^%z}dzP"^yu Op%ڑ۪gz-KJ2.~4eS/wN>b%%ƧzxÆlv%&^lH'!xAn(k bGdG.n&7lxdiC~㺬)弎uB VoB'wS[W"R;'K>F('NSd|!FBR>f,*Xk/8N:#$^ Fͨ!TA&ACa[tApD!ڙUv A<X`A p@aXsa SEQğ|j_jA" p ֨-a pM ZAA&0Ak0#Z p^@A A^` D*@ .}.ۘlAΝL[BVZnr+3zjO,*u-a8 v;@l!<@lO˞&rhqHu` `V(6BV<` d P 8E ~  =@ OO`@@;?% hX=})R`%B:>&1,;Q|UQԝȏ L8p rS`B` ȑ$K<2ʕ,[|Y#3?!;xcQ gPc珠@ 9$exihէ&cϠDa} 7ܹ1i 4޼#q4cLvAċwБjm&3䄍 V ұDL7ѤYxjԨ[(# C_x4CCh=uC{><9ܫuV\<\[͹a]Tܺi;ٺdz'/|?`" (:_aM5~`M^af0@trEl2@@QCD"j/@g#@0tWBvaFa\DLq4_,7|V|A=_HD8;l _lA0xӐ2xdz~[@ϕp-C‚?X1i"L L=c2Rh=#i=(TB{![=<S8>!ElCO( ; l$F{} c\z.L; xB|N=P8X&LBzFDM^z*~\Zo9B(s3IKCO=`2>+ RL*;H< XQw|Z[׶uSDٮZ:?Ox`Zȣ9cDDs@M4uuO`%Q GG"A<0!MHz: 1؁^Gڵ_ !Y aXLwuh䢏&| !6<""P<-htɅ/衏F. K^l>x @$[Dt0D4YD`%h րAeh@Z šD!0qO4' x ZECI" (el,7< e)e < R`$%hؖE#c NDXXArh D2r6S8 ycz  XExsc;.0ed b#р >+<{xcBQlR` F\#706`nQz 0 3 %R k1V [:pA 3ɵh@4e@ @oeR$[R _0 z@3 ]xz@ `s0pR K lqPkˢ `h-&0pjȆ @a 00=zqZ`<]#?pxs D`رrF( J's1z0s7Hup`e@'$[H Z8,{ `@XJ&&kP`pw(0evk QR ֨t1D6 (`6nC@& P3!"Fޥ$PG"8)vu@7f36O@#)R$+0Fb+E^.26U0`WsHA#XWV> C'4"]*f)\%A#Bi*"%F@#o0P3?tRU#IA4qBx@808`?pTD D :<2 $hTTBHI> QWp1br8VLAZ63@'YH$%PA 40A <0*13Ρ9!I '4Gk"9IDS A_Q"A=%`b!aı:!*!ڙ,*PC9w!RQERcEa{%a3A%I7C/0ORS+%07@R*H:wt $1M۴R5h<GIKXs%%`N`v,& *jj&@A*L`v`!856$c 0k:j>jSFA?p:HR@^Nә&nP Ͱ C&="p08U0W p$P# !80q~{0C*c8z` @?ߊԝYY_OQ>L/E/SI>2~e@ѐ\T"-`0 e@*"FRp_tW_D7a3::&so[͌iɖ\E@`=|"cFP;M7vw&2K@e>?`_FP- Þ c(;T_qs¶A`  Kp spV@0PR Y{9; e 8*0  Z@@D<oG4jp 0g6 ]GׇxO7@,Rpe ` D `Pg!a`G 3u@C1Kq`#`W[`q"l((l `RE˥9@X4GߤD*Dݢvܸ  u:(0jsz D_<" lꝹaŎ%[Yiծe۶, ?~8xSF ޗmQP:yt@qFޤFYӠ'PU R 2TFADaqA ~ӈ䤇GQgIִ2-TԴGDlD 2UvYvŠ%h0b )A+vBKDx"[) b c #`1δbЀlc@3AƵbrzA3%&{%}"*0B=W%8ݛ< Yf[vD`f ܛ=yfك`f Ark@#Nh !gEa꠯nh z>hwu럇F癹f,{n˃X||Fg#;qʛ|-srJ7b!J}uP,,MO=uSwp8\[W~ysЫ/kZ.ҍuh.w-!zK؞7u_qjp5q.=̝%y|{8EXOCp>Pq჋-ځ%|"Yw tZp0= NOza!XjC0; a8`=%`  /@=:AT% p?K.7|rFH:dch89SbwEO}wȃ+%<t;ԸK.2#'Cv2,}d(MIR.qyccN8>G Nf)8Ebϑ s|d@ZT2yU~Ύ9ɽ!fD3]W _NJ`~3@cxtg=ͻ ˝iӛ jWҩg%+ɿ`: J =h{Oц1 IZR|e(nKAsRP3^ NAJ4Q|AI;ڹ9UPjU9Rqs3՜0vv՞ke=x:e/WW&.DzɿVD'"Xvɪ[jDvy{c MVֲ\Um6|hV5cgU;؆0!˗f{[܆v!J pw,ɵmp+\ײR- pb.\N*R!WޥnzCŻBؑezd@&lAHMqg^zqiX`):,,6 _X#x1x&F0VG)Јq1XarC;dž;\Aq3[ϸn"Io@>4P\59h;[#sh x/ LXaXee~j ޏ>mmt%M$^w K ,A =\x`Ay Y̻O@hZV=DB/F<V2-+lƖ~[c85)G&Sؠ;ޡ@ 5}8aǁlpǏfx҇pޡ`RE@*8;ء"acE=b f؆{O{`9l{܉Gk&Ax(!Q2C2n>A *@Yn18 :޸ŎzěcՃ=DM XZH"o*f|xO؋Wꡉ+ VxY5p K.-ϡ&WNT 4@NQG+p;l+] *Y^}Ф"?A Cn7%`YC(^ `;!{+/ p޸zpˣ<"hMQ`+Ѐz<ǻ@d1@/z<k >"AuY/I#/ !p.(4 !. +jŹ#B(2k5Z B3$T/H4:C9tI[7|;\8C>|C C;cÖ>aH-DPb@ʌD`tp$E aD@* aQf9j\ZfԦ@ojBV:i`kCf.g 'EL0- S`_ZG6%I90RU)E@p?nj@?d&d^qm+XQ=F4D y>"X42b-Iު6 =9)E "2n&`\$8Ud t=6U 4|6NJg\P=`] @24cV#&+p),_倻015v{#҉1ZQ5i`UD$kb*aJ@JѱN9aREeqzGsSwaWDRD0[-y | t?~oh08җkyB5 Ty@Ud L0A!dű:c>$/c5PuL^KgOP].Bzt=$n#/3L\&?Xo YIB򐈄CFqCl$3@#'' { @:F&#HN2 dZ?JO e(WDR$ r1a7tP^H @& "y#wlI DCv0;nt K"D4˃az;T]EJɓ n 3(Ir"eaVcrNO )"9b]ţbTyʅ '9 P%:nh6ѤbҀx%A9C 3+!XgHS$EslW7&-$W,$2ap5PŐAC]M=1: d\Rję @cߚk.SeD:i`lF2 93KP D0'm5ņ;9 JPA~oN-H47) ]&smO 2MF8ɵw *ay+cFy0+$A+]٧C?y_Oqΰ7{ y Q<ɀ="1H.7 ck,N;19ӳg'%;yd%xTF֔l4q9qFI@Z闵4kayƩ?snAfg@#0S=Z:-JX")&9; fD_A2cd֒Pa0"Qɝc%#eB5zuGe/椀D+VvdMi2"8{KCkoI* "8\e#Һe(r uҼyӥu M; pO/tDF#Z~Ӓ]/T0Hݩ'e|6HcSYYd5a9$!; x"kfP2A,!x;!y<@xQCռC@8WIy񈘤${e8u^'L'B)mcdP;d` xUAf-b}O 9H.8 Fs 0RA3P D l^aEF ao'5yHcVO{&vA!s0z!kyr%(uO0wf s% '~]Tc3n1cm1&nuzPJUB3(pVq^x}Hg&+'JHh:Em'DtsUq!++F,a? 0s@1({)7kqD"X?F1=,HE/K`AL[Yh&j^U! !M^P@R8j"H7 hC%Vq׌N yԘ\.駍Qj7ፘ:H>jTOUQe2Em/":|>a эg6YI-l4^!7AqfA`v]v?vt|FQH(+1Ѥl/쐁 DK fW2WhAI[b!Cla>ahz{!V.`M fV 2Fp e#ev6DŢd&HoҁC_`f<ĒF%< :8Q6A+^6e:Fx:)brB)7mv}Qbma/b1ro܉7()l7W7S6Wc8T"YjVX"9Jps|:wR|qmV'FP}UŒX( }q?!?6 y  ,"SQ2 [?zaw8q9ڤGNy~bC%tȟsh1|bIgj|7a82@ gs!|!A^{F j '!km JD-fR@+#9mim::7R^VS$ijZj!GyNwNID2Z @IB4K'nmJL,Z3Z_ 2ZqX2zAxťJ,iHDivHzOzg`GAq)(OuDcj,>7 }rկ=m'p ;Tn^t3tCT2JB ч?(tq# `o T2cRIW m(gڦvqyA"dAc@f:u0Ѱ `H Dg#Kz"3aE!w( _&[6Kn9-.( Ё$]A>\ ek_w \q:KZ 5tT$H -[cgHZp{AiLq ?лKvnԮ TagF*V0!W# :$03Ͷ L7&#;o2%J_Y)S$G:Ap($K5a%&'Vq27wvfq$/$ .ýv1h9 jM"ǹ<,I<0<HKJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘LT+@8%_ :jװj0)k&kn޽V)CAU!HC9X͛~=C=`0uI/0/}ﻩ~'h& 6F(Vhfv ($Xz P-(cÁ@)DiH&9GyZ58Xf\v嗉P%dihlp)ti5! bj衈&袌6裐F*餔V $V"c?BF|jꩨꪬ꫰ƪ*무.c(x+?쪡+k&u:bhv$Vkfv+k覫+Q&0hPˆ 1ZSXq`s4@5@!AL"dVNJ< 6h =8 BKLx@>HQ H$+i H\5FHA'E(i Ø 9, 'I>dWHAn@"AJ `2.J^&6%2aG 점XqHI5(*qeQt䯨PlxQ\ 磂')s%ǒ"5Ju'RC+2oz 2 $Zb61KLVη/\5&ɞGQw J`ɢ@ ;6|th= (Sy1ZAO(  (I94H&-k f-6t"ov%,>u4/@$4M=Z5"*RehQG_Y 4(>t zT4Qpm}rSh,оYZ!Џ(wЃ d4jGgGh7"H&6/G4 "< 7J)S SP<d͊t?D (奌,={z.W@EhѤδ L|I:AZ5 L3 _y2&O'8mw;\(5]1b|It-Gkd*cI1q}!ZG//:)m 8Y.ca 8&<Т~$|q="]qt`8aa]3~Na*czA}K5!fS4_g&x"+TC*V6O{< lv#}qЂ%#fYF$,v`eqWGHh_;5?}lGp;']D0DPDRPi%PGCV 'c`rDr$O(jRFL<<E#U7ZZ!ԑR7l@ u OPNV6gtGZ_@T=os NWb~s !$Gv~OP4L|7q:e:L ;S "-Dx+ Mx$Œl)(K S(6RֱC7)! `A V(8bM%bTc(EBbE.IxqX6g7lX%*xrArB tbKrfAE1Ik!d sxPDH!F`q< riBJUj˶x"g>YHX@Rp(TP>>Q(%2EhIAOS@pDA"!(Bߦ(PT (  D'}}D914D*s8?F5dc5NaZ+`7pRNCX>p[Dp*-+p2?+UJq`ATgr{,L P%@I0Q1bH <2L U P.i{SyW |;NNdX͡N- 0f[Z[PN1FZEA0ұ)=y[Ժ3A!VkE6qs9^$)L/1CF@Z)@K1%#ɤ_1ZFdqs@:6c"i^ˎ;5 %\Y0/MQ@*]F8Jԣ^ 1fCL 'UPkf2cZ~h>+c^FTm:L8dv^6>:%#3j*f@r+:kc'M#6:20M68!` 1:82q:~O=]pQ:Cc23M|wY39["ScVc:`24N 2: b?a%5]Cz2* 6!yQ#Rצ6&5M h]d"bDòmFV0`%p<{ՁTJ_IZN\+A-ebi=FZ&*SCW5L2N)QeeYRI4s[s\kҪ,.K@S԰n| Tjv wK! !L"py<@}ڃX;Is0 Du( P'ecĐF9L87hQ9H2>3(ww@'U VO^2ag#" Hk6zCz\[d28%=+4a<7!A}Vpʀ4RfaКbP 'E)s{L":{ k^-W 7 yVD?"NEZs0 [ $v&1Ѡ(vo PK!zBJ#.ޥŮ)1%B`pjY 0ê6^VL$O Bp´ln.즃9'9"`cAo+z+K>L0`il 'R@/O@rdd7<"@duj0$@ڊ7r$R 0DPB >1"0<~0rF` @@?DxPQM %=@CERc3Fȁ?lD#fB `L `##fft0PFvXDVZ02UJHCلw\"/Ϟ͛"Šu L%Gޡ@wJ2DFads=)@^V `Y3{ppK`6pߒq|hוjZ#tg\\5BTz/ݻ~u_?122"P : <l,sK0Il3股rnMsJ>ٚ(jP,d/!w ϻld8HA#b c |3&Npn Ajdq seUVZ5)&W}5 4[ )~tժx̓o@xjcV'ʁ f6Fд}w4hY`CcECIih qSt&"LOiӃDQz32dxvH0DN:oiP@ 0(9eA;+P@[J8]<²Sh^v< o! :CNHxM-v9ȁVRUL|ɴg L^XQ@o^r3UH>1fg/ΠU`aC֥ ":F3` q  >k Z+" n!4b: V( pp @DP /~I"e[4PF(Y 0 8@W]V(JZ i~d$PU{$)!V~5"l!DXBp2cRg"B$j ~J4$bV ɳHGTao[C0WI- thH޴)AgzD;-.ᢗIl=]3gӞd"s!_cLgD9S`0 TAXCx3m} yg t kEqm YnKcX: D9h%B6d5F zvD#h DP8xă,̴@@<@q1UZ*2-P [(36hawZy&Ԓ8`[r@D@ ,-1:FPt4`14SK`Ўz>wM=gLL|-le&{P#$4>9R siNtAa<1tΜe8B#]1B$D/A%) ɓB]!H fqek.r&1}EMQ7^*i$$({VN쳚q^"b9o%O*/LF޳60]*7O *G~ЬQru"Ջ㠕 x @==1;@y= {p$ ASă : "[+$ !k9N Pph h-*1)S @/HL8hp‘ XAZPN /9遉K$ Jk p 68Ԃr+@K 9l:_Q8?=UL4PphKq!(?2OZNyځ7vB  GK  X2s7\xB8 uC{0Dž`m[ # j`?4dLAyЌ("Hjګ n}h7:pyI72AoEam9 rё##޲0Nt[HƄP0SyVb3>$K1D4; 0*111XD;k`K Vt' PDO]~YxB 1C$+ 3CL(CǼRZ9]]r`7 ==#׃x?p0qY;۴푝M8t A'T@Y Т:ԓlY{9{8݇R} ٰʣ L M^Q[`0%,RQ?>c Ÿ[;A[Jș1]}ME=K/ݧ< q;hh_u2 =(1tڭUk; 3` g8wݫU l%8ЁYy-Ɓ`Ά0ǁa>^bK r5D;ׇ 6މGY[#ԵZLRKC >Rup4DŽ 1t]/VY-zB2K^HGpƒ3]`d$0-!]qIE:[(!{ j#L] ]s?=I5 yZJ؇"s Pe7Hkª)#{6;, +n s;PIinx[MſԼX{Ә :MvbՓMQ^>vMhPI:&g_Qv_LŸ :dF ): P֓C?>=1 P^x@ M ]2 T}BL-Ȉ kfppc~C-~L7cNfЂ>lAf p?xm`YyMPmyml3Lh#HzQ) r؜9L}(ql{]%Ah?rf+nQ 2,xa `3чw7 o+$pӝ !Fk1̜p> G)?9D Yl`Jq5l腸x tBܼҴ "\1/ 4I0_Qh|J-thC=ѹ('XPr`xȉ Li~+h3Wy: =վѵ9.ʦ:EC_򳖤BNU߃3^n]- hY*oi#tHmx0**x> be9|* b7Ȩy~֒ jR:op I "ؖ9/^1Aӡ{V%#aiCؤHH7-PmY$mW[m/A=PL) `$z@LnjikХDӝ9jУ'd&,ҐslI@bP#L@"4$ZL`z)ƕקe&O]uTOG7xZ$.8qkJ^Je|ѭG[x,pJGx Dƻ ;,RrqIjРR;)&:!v4v$B0F[?T`.)F@ x4GGRH<nvzA "ď` Jv=УUFAa$@Z]:D-n%[,0#cCF* "¾.yQb} B-"eb@؂ՇVt $!][f?cMb:[00㥡- PT"׷<"GubHn%VIIqa< Gʐ>z@kH@-<hVIL49M8Iaij6n< /䁡ؚ4U㼡8іI#jEI$@P@x HT!RӞkő8PdI'e /W<,]5Wk;m#_8mnQx( wchBȩx "zNdխv[?η~Hq$ 6́ AVavƏn_$$! #0e//ɨh0ՇaL-^}I R1 A ЈGpAìȣPPL DW8A(20_i[T 0ŠC1MGXG:AۄB9HHH)g@&A << ~(M?,E!}9%AĔzH]GЃy=`/p M=-LGCMaHWztuגhxyÁ ؅HXH< L`'}DMb FfM^)(!X>!)@ ~ 8}1ɝP`YUb`~hdIENAtx$,eb-Ќ#Ɂc`NzFhVHHb=Gel9G dć%nG GYH>QDGd%j0 /AąMWGG LWA HMHRuɼaO6h,hD^DEx@EeIV͜\p%Le\Hb4PU0ɏ2>\߷()^ݏΝ!EFG C\$:uĄiԅOP H@+M OL@W,atkAeG؏ &eBDFJCVL#vlHGH H|   HjLA(lkS-[C(zč1M@ztzB9ХGLX\^AQYC<VGhD.ʅ^ʸX] v •؆RG` $_xb.I`eCîly~x|i m]G,x@J>/YҮdXDmG$Cu<=E8 Q*0ɇ0=M[Rv1=X J4ܬ I8\ՎDGzAW~́&fyTLTMeHKRDMaz ]5@ v4]EB F(q[(F@~PeKDc=N x[  2,oG ALlI,$x$s: o``DtS (Q4@@%} PD%'c tkHD`$ tDt 3H3Ha|D @|FYg cFfԭf& @G@1$l8@8dVv26sC$ dAGt8mpG 4(JY$ W p h<S`@ /ڄo EGY]fh$VL;d  h°gTt{ $18@IFI[!#qq c`;#QR?BPQGZ1. 0?@8AC;^`B?`xah(Hq!8G#BTeK/aƔ9S"8!± Fc@SB.޻MK؊ EUhXMީ`FY.leo(aȝ\ذ.MG+8EmI͟x $gEÙZhB+_z(PJ}Prrw>0xhi1%XJ!@ԁ ~@#pB)w B`WGq"ළL0 PjZzT*z`; +&g)I \؎>9Ip(`G N#$L/tl٬ ޮK( )Ej^ ΐ衆"'(c!=e"8 $ -T&7t2 b'%(-$ \L`D<@ؘDzRHCIJ:VE >Ci&)"=zhrh' Ʌ4(/aׅa#&" aZ#D bq}"quUINhM eނP2^`C~*r~ "X/4@<`x*^(_jWdv|@mlrHu ْ BȒi9>踑^U.Zi#^h>Y,Ak9z/Ny;^l)rT9mZo[~yh6Y" ٽoNӫ_Ͼ˟OϿ(h& 6F(Vhfv>[=`,0(4h8*ꨤ:uVcs6m&gHViZp?gnha65"Bkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@; uuj! ,P_0`A*\Ȱ!Cw8HqcĨȱǏ#xI0R\yd;4I͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݩzTe LÈ+^̸ǐ#K @jܼ0.ƌr֘h@! ,Pc-uB *\ȰÇ1bȘ(3jlcA`F:^(ɗ0cl`͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝK]˷߿ LÈ+^̸% FGHGjy4"E/t ! ,Pa-A*\! 0"JlHb3bѢdž2d $B:R/Lʄ#FM(esၞ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷_ﬞKÈ+^̸ǐ#KLy`!C4d0Jƨ F*S! ,P_0x`A*\Ȱ!Cu8Hq"/V@ 2BʈɅ\)ɗIœI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx*L@޿ LÈ+^̸ǐ#K+)!IxQJ I3jDt  ! ,P_0`A*\Ȱ!Cw8HqcĨȱǏ#xI0R\yd;4I͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݩzTe LÈ+^̸ǐ#K @jܼ0.ƌr֘h@! ,Pc-uB *\ȰÇ1bȘ(3jlcA`F:^(ɗ0cl`͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝK]˷߿ LÈ+^̸% FGHGjy4"E/t ! ,Pa-A*\! 0"JlHb3bѢdž2d $B:R/Lʄ#FM(esၞ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷_ﬞKÈ+^̸ǐ#KLy`!C4d0Jƨ F*S! ,P_0x`A*\Ȱ!Cu8Hq⋋aȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhNpʝKݻx˷߿ <8F >chyś ! ,C@H*\ȰpHŋ3jȱB CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*eOҧP+ JjDX䥵ׯ`w:K(hӪ]˶۷pʝK7Dw˷߿kEVih. ʠ ccljQjȡ3덜8Ϟ9s,00Rz龭GV @6r5P@jsHo _μУ%.0kνËOӫ_Ͼ˟OϿ(h& 6F(K]@KcŅ*C($h(,0(4oC B/ #qvdAfKc9$Y@dihlpIg x|矀fjfe'h#40Bk#dZBzRZ觠**\ĩ錮e=i<6f?`/ઃjh:& $hm9)"2+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<;A٩LqnqŒ! ,C@H*\ȰBpHŋ3jȱCIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*eҧP+JjDX̥ׯ`wBKhӪ]˶۷pʝK7Dq˷߿k=V)hn ƠBcljQj8ǘuD Λ/AZFCu k;Pti1^\@dǭlrرx dУ= سk>Nӫ_Ͼ˟OϿ(h& 6F(Vhfv>[=`,0(4h8*ꨤ:uVcs6m&gHViZp?gnha65"Bkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@; uuj! ,P_0`A*\Ȱ!Cw8HqcĨȱǏ#xI0R\yd;4I͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݩzTe LÈ+^̸ǐ#K @jܼ0.ƌr֘h@! ,Pc-uB *\ȰÇ1bȘ(3jlcA`F:^(ɗ0cl`͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝK]˷߿ LÈ+^̸% FGHGjy4"E/t ! ,Pa-A*\! 0"JlHb3bѢdž2d $B:R/Lʄ#FM(esၞ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷_ﬞKÈ+^̸ǐ#KLy`!C4d0Jƨ F*S! ,P_0x`A*\Ȱ!Cu8Hq"/V@ 2BʈɅ\)ɗIœI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx*L@޿ LÈ+^̸ǐ#K+)!IxQJ I3jDt  ! ,P_0`A*\Ȱ!Cw8HqcĨȱǏ#xI0R\yd;4I͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݩzTe LÈ+^̸ǐ#K @jܼ0.ƌr֘h@! ,Pc-uB *\ȰÇ1bȘ(3jlcA`F:^(ɗ0cl`͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝK]˷߿ LÈ+^̸% FGHGjy4"E/t ! ,Pa-A*\! 0"JlHb3bѢdž2d $B:R/Lʄ#FM(esၞ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷_ﬞKÈ+^̸ǐ#KLy`!C4d0Jƨ F*S! ,P_0x`A*\Ȱ!Cu8Hq⋋aȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhNpʝKݻx˷߿ <8F >chyś ! ,C@H*\ȰpHŋ3jȱB CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*eOҧP+ JjDX䥵ׯ`w:K(hӪ]˶۷pʝK7Dw˷߿kEVih. ʠ ccljQjȡ3덜8Ϟ9s,00Rz龭GV @6r5P@jsHo _μУ%.0kνËOӫ_Ͼ˟OϿ(h& 6F(K]@KcŅ*C($h(,0(4oC B/ #qvdAfKc9$Y@dihlpIg x|矀fjfe'h#40Bk#dZBzRZ觠**\ĩ錮e=i<6f?`/ઃjh:& $hm9)"2+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<;A٩LqnqŒ! ,C@H*\ȰBpHŋ3jȱCIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*eҧP+JjDX̥ׯ`wBKhӪ]˶۷pʝK7Dq˷߿k=V)hn ƠBcljQj8ǘuD Λ/AZFCu k;Pti1^\@dǭlrرx dУ= سk>Nӫ_Ͼ˟OϿ(h& 6F(Vhfv>[=`,0(4h8*ꨤ:uVcs6m&gHViZp?gnha65"Bkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@; uuj! ,P_0`A*\Ȱ!Cw8HqcĨȱǏ#xI0R\yd;4I͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݩzTe LÈ+^̸ǐ#K @jܼ0.ƌr֘h@! ,Pc-uB *\ȰÇ1bȘ(3jlcA`F:^(ɗ0cl`͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝK]˷߿ LÈ+^̸% FGHGjy4"E/t ! ,Pa-A*\! 0"JlHb3bѢdž2d $B:R/Lʄ#FM(esၞ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷_ﬞKÈ+^̸ǐ#KLy`!C4d0Jƨ F*S! ,P_0x`A*\Ȱ!Cu8Hq"/V@ 2BʈɅ\)ɗIœI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx*L@޿ LÈ+^̸ǐ#K+)!IxQJ I3jDt  ! ,P_0`A*\Ȱ!Cw8HqcĨȱǏ#xI0R\yd;4I͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݩzTe LÈ+^̸ǐ#K @jܼ0.ƌr֘h@! ,Pc-uB *\ȰÇ1bȘ(3jlcA`F:^(ɗ0cl`͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝK]˷߿ LÈ+^̸% FGHGjy4"E/t ! ,5aH(Hb(\Ç#ŋ3jܸǎAnI \R @dĔ 83G9 JH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL9򻸧*k̹ϠCMӨS^ͺװc>L`q'ԍoϞ‹vBlLسkνËOӫ_Ͼ˟OϿ(h& 6F(aVeӅ6r(_!'"HցU]G@4>hO=FK4CώcE_}d)ϑ=A(F8OTC^0(p`$V`S;82T&&9ӣ>& i@;VLPGZW.KF(=F0:Xé\a#P;:J&e0`*6Sx=D$JXآ2 (b ։F|! ,G_9"H \ȰÇ JE/2jǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷p6P4 r˷߿ LÈ+^̸c1b ;8jό3ӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkNP{F (KFUO4 ! ,CDH*\ȰpHŋ3jȱB CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*eOҧP+ JjDX䥵ׯ`w:K(hӪ]˶۷pʝK7Dw˷߿kEVih. ʠ ccljQjȡ3덜8Ϟ9s,00Rz龭GV @6r5P@jsHo _μУ%.0kνËOӫ_Ͼ˟OϿ(h& 6F(K]@KcŅ*C($h(,0(4oC B/ #qvdAfKc9$Y@dihlpIg x|矀fjfe'h#40Bk#dZBzRZ觠**\ĩ錮e=i<6f?`/ઃjh:& $hm9)"2+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8h;\>! 4(d#]#t&t0WЀ@It 3 i$DD#)S ^Pfmpi1AF|M6ّd@*SG,A@nqCvi7ns Emd=t/N# `Iu! ,CQKH*\ȰBpHŋ3jȱǏ C^!ɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիX|gEׯ^ K)h>ͥ۷pEaݻ*˷߿ LÈ+^SJW8KL˘cz\YC7! QFتX_#0r}O2ˈC6QY;KI\/^0>J@dytO@˟Ͽ'E`ˀ& 6F(Vhfv ($h(,0(4h8<@)DiH&L"8A~PEAT\v`)dihlp bt;gOՉT{&5@o jRz.T2egVb"h`馜v駠*ꨤjꩨꪬb6i4i무j뭸뮼ݰ,Gv@٨yv*ʬC;Nkoj]knIҮK{BG@[Pu]4^ؽnY"Ln;\JlPYSYб ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wn嘧ThP, CLKѫ-5:)4'k4;ClJ7$y?4J߻A0@v2/%Go @U= A/$vQ8=|alA{v<ܳ(v%@:\v<2āHbA"Ay*" t <@P?_^b-dVЃF0@pD@@p8'@"у01 4ő'H"acC~@!0X F(" "/7">rPbr9r Gno90&?Hz%wH}as` )rz8^Ɇ-O  0yB=x#T% <<A0"@| ;f/.s9 91gV$Ax$`$T=8@/Dfv_n!'(#C0ki F5: -e؂&QZCK0'K~EP &AZF] r̡s5T!3h 나  >LXZzaxx8w #` ʸo#)`/4! " V2`eD#`bOmBo( 6U50 6!0TT՗ >  \#DxcE/;QB:w$͈r=)8{lPzz jcs?wXZ`?dmPiQ,D#`UXA8&衏;xi9@G~wq$8 D " pR숇?&aDG2ag40#- \%TR"MH61ZXD<`D "0Na* &Dj!O# @` @aԝ@ٱ X= zH" 8-:A*QN>!_P ( '\` P ŕ!]2#|)ԣ?ъ x" @}/4v  CP5  0 `dgU CmO06P .us f`mUPh U@z@D0'z "p:1KxzPp_` p 耓`` ƀ@}VO@ᄍCKS 0 epEvp 0 Pz }0 ` eP KӴM Pr@ @le-PPF0`_C:7[:tZ\ R0 oZ 0C%OJRcD0`R&^_J%e0D_H_g @R@0iΓVa Ps$P ug edPUaLZPΨE5 G pA "p["9Rl00d`K g@[^)t pyEFPaW4C? / R> `CpV(` vC@lc `sB5b> kDr@ `3ĖyWy`/B 'B Msz@g4` f ulvH@em Z ]:(_?_/> O@ ǚsp [Hws 6GC `Pvfo'"BY Tcsm_`sNPl[ lpcp:e_"@RZUTEPDOtZV@<ʂcPRpT00VP$Q\614$jQRsPdZ0Ne@RJDc`7CdOp*sl0[gl@>" + Yw}ʣRpldZOeJRK@V_Z d}*l Kp= 0 Śz9U-Mڭ"0u: Q(E9hUVUJdU"K::ѱ_t_@ʩ._'%E;FVD QIԯ ےԢ7wAO K< ZGS=y׳$Jㅺ1øS>` `oԔGj 0 ˃Od0p+?qVk54@q{q+9?`>jZV+`/ +V`[[#ۺ :3Bk9.t T[1 䡾 1Q Л{="PɉC ʠ * D;|[NnR<5&FMRxÇ*! ,Pc-uB *\ȰÇ1bȘ(3jlcA`F:^(ɗ0cl`͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝK]˷߿ LÈ+^̸% FGHGjy4"E/t ! ,Pa-A*\! 0"JlHb3bѢdž2d $B:R/Lʄ#FM(esၞ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷_ﬞKÈ+^̸ǐ#KLy`!C4d0Jƨ F*S! ,P_0x`A*\Ȱ!Cu8Hq"/V@ 2BʈɅ\)ɗIœI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx*L@޿ LÈ+^̸ǐ#K+)!IxQJ I3jDt  ! ,P_0`A*\Ȱ!Cw8HqcĨȱǏ#xI0R\yd;4I͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݩzTe LÈ+^̸ǐ#K @jܼ0.ƌr֘h@! ,Pc-uB *\ȰÇ1bȘ(3jlcA`F:^(ɗ0cl`͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝK]˷߿ LÈ+^̸% FGHGjy4"E/t ! ,Pa-A*\! 0"JlHb3bѢdž2d $B:R/Lʄ#FM(esၞ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷_ﬞKÈ+^̸ǐ#KLy`!C4d0Jƨ F*S! ,(WgH*$ǎ#JHŋ3jȱNj;j1aa`ˏ[a ̛8sY /+>$@q(J;H"N )t`Ê{1@ BIs P;L(c"-wi@i, !תN aߴ|b]0sZ&MȻtDgCz-_ݫ6 K"u) g|vCKʜ9J@6X((C0h@hp+(@;gTEN@ 8F=xALG^d  8p@>O0K6P#DᡈfY 5 餔NzpNvd|0L9̱8XQ4:.1 402ꀣzP+0D8g< C,V\E.#, 5V9h7:\`VË(rFs 91G4"&Rx`h'|80Je&ei!<+83tsL2_haO( $R|v;L=l>4O",9O9S?,\'b7t7OPO$Vxc nU`K'lH:@9C5d\ yͲ2c)(pҊll (C?-l(]C=TY *Nfnj( ȭhFphɑIM'34 WY4sB_5N! zMfg2; !. V*f5+{+7OZnZiIOtAD-NӴW] ^"" qLBHEfsދM~zV_^B)Z _{ *h`>!u4)xGށB|[H?AI^"c>bZaep:~+Z\`;"y> 4 ъV&`Sb(C.A QlA&˭AZkI[NtAE^HP =a-DOO1uj?qr_<@Ql Nݺӳvw8?IA?G>\ 8@! L|A=O =pf<(UVg=x0{<li xQ-_X7dĎ9A ;WzC|S@Ɩ -<:x~Wa yOW/[(&@p_L sps FMr + +jQtX~0s'K v! 6pxR}ŃL tl@ gfBX~F,$_@ -p:7BqKpCp z #0 ' R z%ep! wNOC8Cxv8!D!˵g #m!x08Ƒvx")3$a!01E!VqNk(a]8"yGVH;wIDEPBs]1q}0`:jWq!  _&QqHaH0V1!qHiQcrgy-$FbQ~|4@j%  u A?0@5V b7^P_ 'c'Nb$ 7vP p$3)NIxHA.Au$`Ps0gR'G@w$sM 8LV F` a g.@[e` @1U7 z03?S!sK T&r 4ڡVp g >p p @.s5 D Rඅ`Cd2$7z3SJCy'c:`:RH P@1 "`mQ 4_R kS@`Ѡ vfRv 6 e 3!P3B0dh3 k"0s0 +7RWO:[Pp0&e0[0  Xl/foe7Ps j  7?|̓ F5cXDpf0 p Od. ?0 svYP* jYo%dPZKFLz "0"tb.X7쐈p[  pశr`{  +OWPJVD`BVPct3P4KRpކ0'D /ʱ k%R%FF @@bhԠ[(  _ _PƄg`0H?@ y[ 7 $l`,`0 K;t7 {?w 5 RmSP@d~c~ KPJ?R P.g@ 7@  7SY)  Bc RP E)Ec@)etԃRQ+0c=zT k\ep r_ * c P0t @ Ǔ e0 `  0pD  g8VhɓpO0 S: '0~<c@ʪZ@= ppJʤX 5oZ> _|R@`HƏ$$3Eq&#FR1v$os|tr'@^$xn0"Ex; $꼋h`'873YpD&\B$@b $E͏RQr]adYdV{(%V<Xcq1HKQ@5F #0 C lQH  Vlp1>CzҐ.q41;j4-ep )gp""G^4.Islt-w1. BFQon#kA"mԦH 鎳٪>p0GڦٯA~-Pذ6-;YuU_kfVojf-KݧFFXUiukAc (ݷw!fsA!@}bd&>)"G!.E_46ԁol-'Nu|1^ҝdq[ԏD0CK18O0;&1CX'$A\XHi!n},1Xx@1Fs3$'?Kp |%ayanQPp O$5^cD 6 l @`833pC? @!R pC0 7濦 AE"`D8 ʐ:H#W3 `B0F'%GX] `s `t l,jd2P UJ{w@0@P.+P Y Q 4CFp/O$s͡@QѠu  "0Fq%` `dWY a8Pw `Se 85IkP `6t%[TNl`5Cv p[Pr zbDc W$*{ZkUq^7$ xYD QKBl aD S{m<][MGE=3 ege7 s2 ]?[4F#>Y_0!!@Ѱq23pF T$^V:y"B`R{ =y&O=vz@1Ջ P 멛x<ޤ6ѣh ;}&Z]te_cludGIȂ1s^w?9챛d~A.,Uʏ= HD!uq#DOD1E rbN,/=I>4BC9C0?30JoKAvР AI䋣TL3D3đ,/8?(qN P (sF(sP2\p>PBդRK/e+Pjnİ#s$K7"כ[F7SQ4W]w0GPCpX@M+2uKOQ5[m-$b ƕu # ?>%h#Nur@&s|F_E8ᄗoZn8bb,,R p [Ϳ‚x `8jVaXg9%&hnPƛ@I24a 6d2DdETa#=ry$2&!ˈNySh騧fP`ݻo4:psUƱ+} vءƟD`ÿx'0w`A 菬VDhşz q{# ZRoNwDe[#`2g 9ce}) +DQ_"b~/{ȘCA&G6)=ow =0)\N!XCPY37e8)DXp`(A% !ͅ/7CŃ˂-HAB4p\C;#4@;!-A` }DHP̬}5T연Qb?#&2e#eXD<pAAX?&lA8Pe`PO UJkѕRlMFg!4AB,r [A@+x 6z/؆Ib F B'|A$/rC`B Gݽҝ:,  =$),p@|I -^= @D#&NӤ x l2Q;&ŽØDU.Fpt:'驖MtѢ|7Qo'*&-+³S}TŬ &]fMATFwГ<Z2j`ID$-TjVL "XU S2b@6U|/ Y@ 8 ִ("=KQpX+f0FB%7AT\JꪡEnu!ȥ3= tМΐ3Խ ~ @".v"X -u#ݲTEuor˝wlepe,EA(#g;zv09Oy=NtVXM8_G5Ie>DFO8,a/LʼnYr0e b[ҩxA[Al! ehTz<ށAx5К V j_P@+)21H},c:j!eAQꈆ2ؠu4"@x! X؃L c2ٞ@fh@G–aL?}.:nmЖ<ȍO:lC9!!ғF)ze-edq-SF= 0ٱ/0N1ECzP?ЃXj򧰈;!>R 햨=X/53|p栌ILˆ `!>jaY20!e; 6"x̫,FX0r CLfn=udC DŃ, L&2M˛Z [Xt3haR0dK#p?ᑩݽ~uKgQLe9 #fZHM>1@eT0#ޝTvUh]UpIӤbWl"6ʍbF-h`G>W 5iAUIKgHMA7d%pi=w NԬfٱg]"VzX ;D2ټ9N)-7юgɑp++?-q=\=b #[iفz-I s+1[*6؄"qs~R(x(e0-٠Fh` IPM3P`PPGi X8*ďH L?x0z#x(SqB 29(020A!r?0=09'P9Wd ex">L.zp72DxexwV(#j  E5é~р[p6]{^0oyXo؂q r15+[R0tҁ9 j6Y9Pyvx wXrx/{9„9rɵpo0AuЂ`+(`<xPqhH$٘{X1;4P}uȅzx2?(I+-x@p(ʢs뱷fIx)x z]b~-^HHێ' X/;5;{ ʫKB긡1#yPjЇ?P/Ho_M$}xj#eQn%0Ї9hT7=p-h3x0:C(#x3Y)`5oo\[z)j;#ho;q߫-Uː Q o$XV x[P?Ei(9 za, I{4kJ#H `=pVp+sq@DHȥxo'̍xFPPx.X.S.)[bH;1}B9CJbcђ%yѲ- @e=ӭ .PpED] hT0Mˋsq a 0 .ŽZdݓÈ{m d=V:yJnmh0 |8}2G:݉V|@6`݋%'Ю0lmX.)'kn֍ ֏EVa=@,iոXz Qj% $%x%]}=b0u znʅw@%lXdTi=*BJxtULX%q86`/P㸀ș="#@-0p  (P`2PVh (.ʥle] ۼU pWLّiboڜ7 v upǎhn[d\ ۘw`"XUZ^ qvO0S L 2;KY2X`HvT99:]53Hأ)P56b vHq-xnrDe ` ȠpMtC^Їh06bJF`PzHehy؄Ejx`\xMd?BA0`J \;R>hu5z0Mh`2h=2?Ο%> P%yP=8z0\Dh ` rP(^  )"P3M(TqV,>p5 H}u(pV`pIPI y8x rI0az0PQ]iV3Pvȅ[=؂de{P- >y PzNZ>Xe[ IE }+rGSxFHM PM/xy ' - K)HQ{9Pй Hтld$z+C ^C("rjݪjօӂ8‹А)42w`/_q#}P/E}s[9Rk[7VXЃa^"(@"kh2#{[`~a?W!Fѭf0:38-+32'tށ-6Hf6(^+>V? &/`'X36΅ @166',281.e!VJ*LU}u Ѐ1S pJ^r1΅Y6:<9WW 3! 51q5wTds[q)ܨGM`bVM?ʊR'`>%TzA-JkQ=D7CйFP- 1[  =i g@*Uq.turAOZz74 2y#8A`)Pe r2mfHD0ɘYˀTJaIvxzL=@k<{T|k|YxcF8.R ҇ƁP7G+0[ǿ*vGyo HMS9^ 0s3 QRHRUDSh  Ijh'z%}2s+4lx%yΞOy~\{'{To9 wA rpQ(]R8hhi\PF.zsZ?r ~h"ƌG`pѣƐ"+*WLѥŖ2gҬi&Μ:w칒 (8@ѣE!HTx[ ;+Mݓ KH9܈F(P "?.\-c#J&=(9Ċ1Ȓ'SYiwA3?~tV?viOw} ̛FS5IIL6NU4-4`D ǷacO wҤ WZ!~:[X1ԧkPi2xO6d6q7Ԏz";7J#(P@|Mf &) 2 xd4CAb,I ~?;@p3Q,fLh0dD0@Xޠ^P`pL 0XClQD  B# L, d@`>d^DcBqD 500plgb.ӺjVyC G4FjCX7AzX:+@`C 8q;`C7y>!zlZ:0qcDx,A P)" %K[p;_(x<(@B!pas rc=zLy)Na9h PG6/2K0q` hp ؂ ! h29 O:! ^P =N \J@Iw A$xM(͖$ :؄? zcyވPp(t$V _0R#xuѵ)q/^ [\+EoxKRBLX*mЈ9 _:wl  ,:Q)D(<`u[ZI\Mi Fn+G=`&͖la)@x80zn&ъ,BG= zC5B+_}!50RʃZ+a]z#0 'H= eD[B`ЈE{sD `40ECZ<3x` M&`?q',f{]&NIյB#00k1ӨkRks JEaZ'L(lQҒ; EsY&mhVծSB:Eԗhg%hMJnA56c:j6p.e?oiµ]ɕj#ؚM5t;2mw 5j[.9͌W RN9\-qx )4Nem[\2_e ;a1!b4qwd.oϰZgk|#&5eK@(CwVod+Qy9X($@ #\ I6#HAwZaILcGU|A? 8K"dMax$Tbd{<#/Khw{`gB1Aa Y*\rУmC(r>uGC=0$=Lx?l3[PmM={46CJzP6lX8Cm)A2dhЏ7#IV,/8?Jh0(l9 d$L@"/A+l)BTFI~c<2 $C?~$h@Y">l&xR4@(XYj;]0?Z X>fMx8=,I)@T<J--,:xhb Ce= Z>?xlB!dgM`qUxmA(\L&LJJF}h5E\OX@sWW]uS+&-!'~D@<8V](|4 \p,</2/H&By|Xpo]@~hK`ԃ?LD;:lD"K`]>(&%́*l^)$C#om?ha@+"B+A &&NRRLۄP E$ZC+=`:,;,$ȃAC4<;S?,BV.;HA<B}=P;(%|//o"'睂U<@R<;)0ȓ:?BlC pϧ,JT7ʅ-.-2-qp_^Hi@+H] sKZɽ  ݑ@ ?\\ UMȆZ͹,׾B%.1/ +D(Uۆ 2['G g\3z[I'G]ME1Kp1z\ӮJ4tͅ\҅#Jt\كn:58V<`-7&&aشnHulʴ4e(\!H084x@B(F‚U9$9|4:'Xb)*8@zNE(,9gFY=2 28 цP_9C=6&@,X?$H)@d#g:\"0,Cz)snb6)$ $d6WX?5`85(;Fx#kX҃7yl4pO"q(H8/LJz2$B2P(цANm|œ[/!އQidhOȍFN/.9,yL*ZS9Q$hd@ay& J`mJd|\&dmW DJhm||랫y*z84:!W[,򳡣 }y .Z#^}Z٢O&ޱ.9HpOLbL:1Z\ De n߼ #'_m2'HʤI/O|c\ DhoC@-:# 6̈́Z7ZpnNTD9 D[*;;"7N9F$9І *X&&"ۘ/ZD[p^&C4eR#)?BC 3?lbE1fԸcGA9dI1#D`ČI4 pN 0~̙8UMOF:S"@Q!Ą#0HsǏ#N ѦONT[n]wR-HJ^<ڰAjj;mzEQ!ռs:Xhxqէup 6Kmڶ l+4RQ{Vy)hCu/&@.HXDOD”s61?%ﶭmb&,@Ϡ&0A ”2KpD ʁpC 0Ĕ@U =  p!3< P`$%lrBB"k9cxB%0d%&B2Ê C903Ê +FҊ `O6+H.X"Q28H CsRQI `G?1A^$XU3ixG}D oGevhDxȱ'1ޱbz-e\GvfY{`'}E BQ؈Gr1)OR .I&8_gX xGeؙUL&Q9[ǡ )6$BrS8 =! }Iq Q 6$wPG/f"  D.l awAD` w -icQa&1D6XR zD o!wԱ'!ǁ`QzD91/qϽ3 ^n&%^rIt-P~ <o` = 6D48R&G.PG+QFğ?'x9X!q_5?\!HÔ;C,A#c86aVިG+c ?ԑ9uXF<6;jR?qMnCvC8ul~2A#"8q RxhMlA91 ! 09x DC`GO$[q@ v` 2bD~ @@d7L'D:pH)P @`zb PQ-Sg@&$D@{\Oy &3 XD#a`%V )Ѐ`޹s 0D<6AKF0 Bg_8AĈD&FؒӈT$!SDP%.ePOg{"EgU`?(E NH{%,)[6K'䞮]H` Z,"W"L zP@J 3"!&1 ;AXY+CQsЀu/D*@@sYK!K9Hq# ثIxhߛaREk=72@*^`> A$ pP Ƭ! +h0BNAvX P怵,! &Ag.1.m6 . Yl6 hObrJHLK, B!p (p4J 0˒j+-DJIdR-:-~E~YCCD &+KYvL@.'3ypJzɠ\)^?&#)"=.RB=c(ÁA2z!;&1b/=H :z㟇Z*>3bsy"6 z10#bk14 W{.; qM"Cx`JH"..6J@L*-5Hor;Ѧ3"2V#.Z3bbs:6` y7p c19l/rkP3";p M0b)- Y z`TZLiN#M;&f{K` Z*&& @'`(вMK"}0o b o+p`Lj`z`|zJno@4n{ ޠ"!T)x cp vX = ~#y Q Ż% h o \j`| "a! ܵ ֠[Fɯn ^; :۵K^ W@ v8ƌ ~u4ܪ-h-Kaܫf\v =Z;p  ݵ#k; aә {="ɷa  n4` rݬilA1E}v*+@lϯ= s\sZ6T ajc݉=ᱠ>! <^!a`A LN ށ\ n)RlHr歽;;o`Yҳ ;ܝ>> > ܠ< "˝;FVtԁpFF @4<D*F ށ:) ї`˜o"~Qp:"vkۭn#S,Y` pۈ{##m &JxAɫdž=+l{5eC08%‗DR/z 6ر]=6ڵlۺ} 7ܹt¸#O kH-6;Yn-hpZ #!&-;t0N-:a$f5KH̏*^0R&9z̉gOT(}c7+"vXw"A}PЇ>Aj7P@(zģw ?!(G=+L@h`C P6@DQ-8Nl= duu& w`#/z!x#g+L:\RB 9 ?ޑ@B?|y;#N1>ӳ=X́ELK1>|0@ЖգM/  "00py7AYyzqܲJ•f<ypX#9AR0 *TjUY)mpxBٕJg#@4@z3r3v p /]X[Pg)G0sp @uM PIEҝSz_vg$`V0  @ cs0 Đr\61Ywa @yĝDt^`X9FQ_ wba jVu3dj`>g(:=#6  ` i.9^EPQx"p.)*ii.5C6#@ѠFZgsLf p _EXi:ze`z@0 .pV`g#i." 6Vp@rc D ϴ/ 쀙? ޠ".AX@.OeKP 0 s:RwBVV.K0Pz 320 r0:\4+Z l `KtI @ _PD_*mrvE,tZ_pLp "0 Dmt@Dmv4a$CP4n'ÿDO|?_vONWhal=t.gdw:`wJ FK4d7vu%OGCp$Quw`LO 8 @/8pA@.PP@ (@` 3Q@cMr`2}Z<PF;us4a"D(:U*",Ybf:?n jV#K.j+_V/ȍ[XƋyKUp_oŋՍcL-"*M 0լ0Aadf~-LlsV| rV'`~~sXWWqd~o]Y}9lߟ?)0pk@ 4wR(,jT.\p)0 eI #J@`9^qFa %4ʈiWDH$YvZ1C "HK%!;B -P'FJL6 DnE$N)S&˝ Ց<@ :4HbTDшNg (&XR<UrZk L G@[km@[' RdLG?wuTDv(QD4&2YT$u (eqPFW]A.2tҊ3b. }B5^|pux>ك:ދe/$XBcAV*@̘'nI b/;S~9uRwD袓VhS}6h8ɤQ:w,G-FqEGKٖzٟU5kZvۅoOů^pmi O<-D,yKXP*gΗ7~Psw4 =zwwHyޏWsO^xI5棯~hfFQx4s:}ǖp_/\6}b[,S?"{M)D1 *OK6)k͢`="vp,`>T 0F> yϻ<"}&QK,D!Deab/v cE(ddcF8QsDHŋqƊ>tk 4@&R!hZ|,yIL c&R2 :yJTRd%RJW>b{Ȯ5$~Q0iL}Ʊ)}pB;#Zztk5R45G=Y$gy=fBG=fZ!7KdthEΟg 6mTp_[xZ D4 e#RЀDN^0=%RIΦ5:Nq:f$3L"S5JDVy4XNDX<na7}S~o3("6 -"wD`F{ JVe,uƾle-{Y̪lg=Y*KH{ZԦR-ZZ֪mmm{[Zjen}[& ! ,)MfH0~1#JHE! CY#I\ɲ˗0WbED̛;c"0ޤ(ϔ!D㈜CJJjA?&Չ<:F|*J9}BXË.ܱd[EZ\ #_+^X vuۘ`ֳE48O@>L$6,Ѵ;FxZַhA d#}`l̼s9clui}`4//7@xW& AYgt` 8py;Y(0,=RWUh!sHEB<Сs'8@4B&j Te&q I&(<]䒋}c5G`T(ţN_(ȣ6:E]"QN?X'!֜i=1w |Z,QA M#[Avahb@Uy $櫶 tTAjTe*Pv(4yp AN g;@dD35nCvd2i@%c|$Ay&&'S@ROA9ќȬ<?,'nf\RBѩQa0XOF'2S"F2BGJ҉x:Q\JDh~ ^kHp@)K.B:lX J ;`MZuBY\%.&رF% ,\8Hڕ8#Pc "(τJJI \ \W<` `Gi&bGGd'g!Y~1n8@fK$P:MlTJVenxoFd}dtX8k}.{\ZGFElJą*awUsQ0A}P88%\Sl^.T!җ<6R^hTUalW_%m&lXL6#@@&/;[@otJYhv$%' f c| ptc0:Y ^|r;MDk =Rb.'E kzczB<P&x gg䙑Q H6-̀}G@5Z Tlyک"xIdBcIt\/Z|%k%rWA@kUsF8c†$H !Nei.%g~rhQj6Y@`V*Ki%q P04MY3@ P1 ;K@6aqUcn2{EzA?l3Z? dO.9l_64siPsp1%$'ÜwAaC(?xJ%\@ 8/*0ND\F.=<3@Z]T/ ̙N KnyBv|Ї1H P ]H& :qIRe sM(z*\h?R "4,- 5VϮd>lV_6D ~ BWv8!3#CMRܢA.D;.BTC)TťH3B D0A]tcѡp$wCwwp~bC'8BV]%$?W:Ɓ\"]F!~r?:p_A]U]G kDEko1*6ZO$Dpw6Rddth6gmuhkh[$E?p6 A:ckTCmH.i%4&TgA=$#ƁIcgC &pƁ(^m{2\@ qIԓ#py/JOPuv&!#p'dR3MKR@P$$@CuYɱf21T5pbԣp'H\mV7qj{AV V9qp%{[Wh t$J3yK4y'vj$CsqfuaEPX:cs0'gEjEY[Wd0jsc `{ѲdS4wps'`j uA)(u#qB1V4s=VsYRt2C9#7C6N#PVc%V46U!Gm(G EFC#ysM)[$M gazc5<)_,؎q u&eBk%^L&s%s1q0X5 2G1iQn=- %Q bg=6Gi ~g81)nF.#BJ1BC *0Pd`፹)xT[~uRdch 3Npt'@bV646 qh9t !EcRVh $&"'g!i؞$,ڢ,:39ar'/ҕA#@d!V2AG>a K9m Qu/ 1a6Z 1Lɂ,@w#Gn`?Jzy"]aVZvQ\z$! T.8D!B?ea 8aePH@{Jvq> +N%ѧB&K]_QJMxDB7*Hq5XbLWhZ<42B!@ZE9q54D0*ZRʪNUJ=>6@dQ|z(,d0 wyC9*&R3@tb(J!:r! "ahS?53BsB#"!G9,XcEU8z tDDzz0٦"%'xPc)$3ǯfV(| NjL3h<ps bBxua gi2 @w S1|Pgu6jD1w ufjcmu%Z9-`"fbf *ֱG@ >@"X| ZZI%#1Yg2Zp-2 {&ZEFaha;?HH0f1aK2=a1F^8P9W :-(#!^z T1 $j(tSi)6+ D 6QA: BD]5*C(AIO8l2,|sD(Z[p7bF6h3LWTe[6~4!Efh/?`qFCX|J?EUd5j@Z B`7{FXaiK0:'I[,rn30sD? ڦBIbxlJ0d0YNq_e>Vo:.dp@5+ p2'KP^Mϴd8qb8Y. RO,#]} vD?t+{ ,ygCg!SK0 7H6Ksm+&)5+Rvzu KҀS}<'TyBX tf.FRgGlci+(0r;$J!L=P4^'"ҥ0iTSm!8uMOgO!x=6Vp"Dç1 g!M[O_0Eot_pQ[`KpQ=OYj!v2B*r"#Y̴HS619,Huأ>FxIR[\刘 g0_qq*Z!KC)GA^2Ile5߽+$@݄OqBZ:8pDp>P!B؅ErBcHAè6Q]eiٱa?`NJô^z -ƠIKq gȎ,FP!c?{%z l`jpw-j&Id - `2QJMhu4$\C%<F<;;s+ZO*!pa&NY^f!X-8jf7gvq^ؠ}WxV#{ r9eP5U|@#e'^HVQ6YhڣX  e![;uC2yqӳ`ȚXFH b#.ք.#z6؄R}S,I[$vX_m ""k0) zGbУK4rIwwR7xq  dϯĞ9j`G-v PD]!ـcEJB:` 1D(wdZJ2>@3B_XZA 뚑S!%9I6#|"rɇq”g8 wx3ԌfwlxvL)d< 9NI*Wf;tr`z3%6Cɹϵ'`6i7mb9"o)rq6aqixqO,`KM8wDPJ!5gj\jQ7]IMRSpbD$qE4-h(aUFMw'K@ԫ.tW2$lPPB<;8):iIU> 94djYeci+@?]xlC]ߤ`N9g_E΅ >PK(d 9&IB" .maB\̫^;Z`bX,]"R' 1=@QjH\imI._抶&B-<&"H98iB h@F~: 6Wj}5Si+^@=J7! a'!&+ ӊmbxy[ X-͈2d5w0A 'H2k8Hv!PFb%$ ֳkJ&Jj,M  p#R !Ԧixdϸt?`'iپ饈L1BRJ!;ɴl-r9uNv/$ы3ϼLZӚrYMdIb,09nyakT'i,jra^v;u $21Y DpT&ږ ^)uiݰGS2DFOTNt%#9򄨻Jgӥ)#'݌)MO@⚜DV(NzBT@bꁜ95銴nH|6Idgȴ.B=! 0/{{(=&OSi$ !EPxu0+YхCK}rBdOp^!hXaKY+kSBQa$5tBwꑰN'\%g &u#W*{Uz<9:zZKk%\52 7a Qn>veBzO䕈s&u$OR\Q [92@8B]z_y_]Q^ }? !=S?jk S `+a;`ȗ@wb p>Mj= 8 Һ2 AmI2[JSosڿ0'+ )| `^Cd``Ky8D.;1[ !p5&Z|#j&E3Gj#3шS,2}IDN\iJ0I)ą*2>5p(DW+}dD)y cԶvC # >$ 2 ۣr6 q.ILH4y@V# SCǀ' |p(@2x `?1HWK4]C;>XЩ תȒT.9;zPI\UI(_4rӠ JR3' H 8—CDHB9lHZEc)j yc'ʙG)MT(2|2ķ%\˻kKLy_C54L&?Qç}ʕKˋ b4r [ ِbc†E M,>B굄 E4F8Tl) 3Yd1qPI RL̙T c ^Ѓ|ivQ|"^|r -0N Z7(@kAHES (>; ut&'4ȯ9 # p80L;L5Ƴ KeT?$FX,PqQOOᛄ{) )80ƈ? dP%cAy[qGФ$+DyX\rQp烣ܺ6Հ з`DI+u;Xܣap R( XDOF36~K'L-h1pm> ?;\4K%t z*M(*9b]_UY},'L5%8l **%pJf&BJg hZ5[ |LJ <6K˛\Lux)̹Z3W"1YX˒Xz7e#䤂JLJӎHFyٍq\D(X rP3r CXa C" Qӕ!vΪ51( hltP*FfUb{HxI#>EG0O wB1m[1F, UXhxxZQe<  YAUzw@F@.:=u/y2]V?P L- 3Dӈ%JTz1\]Eb'$օy㐈|\Ϋ S 2|޾:]T`wVר]x0gXR<_ xW8\h'kc5kQ8 z o̤LFC 4S]XLܐBԭX\Ta Ix:x QuŌ`!)~#pP2P-U⌨ cnQ_c | (q(> 89@ބ8=q #(8 dr XێHa!K\L><Xق-X呁PFF%ڂ\w\ݑI E--h\_F'n)vqXZU[Iӈ-8:f)AĉH]uȚш6]=x=سJ #uu~ UAȅ$;uzq/ɚԑpgqp]ȩS#*q.<ϿLhQ1>] sf$:< ~vL@OGG}sځy$ݸAn2Q)hHP.z<ɺHmр#)! 'ȗW3ޣ ׮Yۣ$sMv!8*đ[Lt¤;mtWbjZw -t拓;LfMQ%a]g} d z(2ʗ3D"E `V_#K%Hd;Q;`|/>}@<D3D M0[@[#l& 9L~%x08v2=s/f`Acf3ҴzjM!I*d 9EFW#3!#Dm`ELy&U9Is;_}@CDy`A'qy(aޖ(C`2_;^e T_ Ng%jj4&1>>'}Lg+*["d:PQ<e-3=w@byR R,G:<aAn>3(/ 3XZF o R(Q3BA0Pq;2[ HUI5Pq- =tWX?hUD "#Х025D=HZZv?5P([fII6}: x3!rI!B큓is9k90: (07Ő8J E4Az繏!{w9Dȴbu$ laI-%ڃT+֋ kT髿>H?????(< 2| #h!*dA|ˈ%h aOR!2Rz4D*sӣs'l܊D7m.l Dje3&hO?= $,&`(e {hI ;?d// 2Br !9@rHEjPJ(th22e<*] f5X(b#\M+(Laje1zށedc[Sl$n7{@tRсT#@EhxH: 1)O "oA&L 4h9 ".$i "c: ߹'`>O{ ty)1q5SxA$R!8 0b` E\@@XiFL`.2 ڥDa!0\:"J3MC';QԦfD*G"i#In!b^l9TaM,e@n򶚺N@Kv%`HZ2`rW#~.Dؐ\nᲐ>6Z3У)f xGhGۄK=m X.e2 h.%$td 0ZmR[nz@^F|Y<@[h!:@L,&kӒ Ж PݨsHey쒖N7Ů2#\ Wq+1)'8 D$0g nL p@PD @taFD!Dx xC66,)` 0Tuf M@  Dt* `FHa]> f H |ad{y@[; FebdF`D@] A0@A]mM |88fnH@lN@X4 ,AyL@3I A9fDBd5L$ -B FM,ctEA@Vbd| 9ٝ a[ $u}'zHѣ fvUEw Mnu͙qL.L@@ ̀e@ȕ Lޥ@ e@eģĤ`x XHA`4x\e.¥ ml(@ Op[ʤfGfeGC]Yz, I!a ,4NB[B ٕɻ ~̈́\@to6 a/I] 8| 0 E1h[@u 5w^,LBG DG+<ڝgr@ħȚX AҎjXড়@FS@ QE3j(W$RHK D[HTXn 4[Cxf8 A)rX zIleD蒎apC@"DumŁR D =5XM n{m iFoADtM#[A*$ JؒdL=DCnF=gFqd VJZ@88A& &*D,A @ghOpG ؇k؇bkFŨz=mWxt,HAʄ EDEX>ud uPtKoG*:rǢ?J+ߞ md HG9龉I DVWtp(.(I0O` MrZ.Nˌnϛ휀 .ќ6V/fJv!4)/ﺓ&PD/WdfnJZ\i0vq/eJpD. d( U0oU*km(Q%ʞD& $^xn0JEIZHPI,e$!oiHYEhi r.U\_$Jht@z4 rFfHdCiтDZmHF`HD!_Hy8Xx!.h,OӴJ )D &ܬ=POFY|'o8bF8F /K<DD3K$DJ0XHѹP@|WM;?D$$sJמ,[F)AaTF LI?L4D qHTճÔ@<_)CƦGS2D:hFVKF4DL @#G+KԳRdx\;Pv]H蔅nmZ5H Ht?DcHR!e:xqHxICx8rpJODuyy8*gVX,Hl=0(Sx F=3DL3,CUZn=`DA|L@bD0vJә#J~Up/쿊Y$@!K'ѷpz۫ Dl@oYc^nM/s߳]p[?ܬF,Iܾ%?&?@(?22Ο >tp1f|eBE0`h'EDrJ/aƔL7qtS@{C2N*rX/ (@/=V3kN[+X3w%+PɚڴS%Ȩ#g+paÇ@2 ,#PsgϟA=nyw_բaǖ=6a)Ȅ#k>8q"([cDG>2w%/_FǗfUV#> ,LP[ ) 1n 9! ,3NH*\Ȱ'# Jŋ3jȱX%$S\ɲ;\p`P DڄᲧϟ@748t% Cy]ʴSJJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^dP)VJ:ǛWJShC^#{Bu !L{탏^p 2ˈ|ցȟ`W>Ƌ_]!W~Υ` ;7v VhaK\v ($h(,0j[h@YF t<@)DiH&L6yٕc! ,P_=x`A*\ȰÇ JŋahܨǏ cARF SZ,KUtxr͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷p.zDZ~k | LÈ+^̸ǐ#KL˘3k̹ϠCMӨS_HI'_%;V͛7Չ! ,P_<`A*\ȰÇ#xHŅ22jǏ C(Ѡ#S6K0c̛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶[O6x!{˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCM,@PȺTa@[vf]Cm͑%Ԁ! ,Pc=uB *\ȰÇƈ!/^Dȱ;I(S.,EKAI͙ nɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷p~]^H=EFܿ LÈ+^̸ǐ#KL˘3k̹ϠCMӛ ȒXMyuE3Zrw ! ,Pa<A*\ȰC`H谢ŋwhܨQ`G C"!!A(A 2xfÙ;bҦϟ@mJѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx.(B!È+^̸ǐ#KL˘3k̹ϠCMӨS^z.18+1ko%Iv )nl>ٕc! ,P_=x`A*\ȰÇ Jŋ_hƏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`\J"&ZʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k#R:?ޱi: xZ#щ! ,3NH*\Ȱ@)# Jŋ3jȱDXp@'$S\ɲ?hh`K FᲧϟ@748tCy]ʴS#JJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^V }c֎CEg VNkщ(F* S{c/ =߯}G_صǟ]w& I ,F(Vhfv ($ EhلbYD 0(4h8<@=BiH&L6?1qPTTDj%f(_vE]'p)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjc /z*| j蹉 kȞ%)߳u򩧧uz:`g' xIyfPD$0G%,l' 7G,Wldg\w ,$l(,0,4l8<@-\Br gېxN-TWmXg?6fd~-dmhlp-tmxg! ,3NH*\Ȱ'# Jŋ3jȱX%$S\ɲ;\p`P DڄᲧϟ@748t% Cy]ʴSJJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^dP)VJ:ǛWJShC^#{Bu !L{탏^p 2ˈ|ցȟ`W>Ƌ_]!W~Υ` ;7v VhaK\v ($h(,0j[h@YF t<@)DiH&L6y demo-php demo-php c demo-php co demo-php com demo-php comp demo-php compo demo-php compos demo-php compose demo-php composer demo-php composer demo-php composer - demo-php composer -- demo-php composer --v demo-php composer --ve demo-php composer --ver demo-php composer --vers demo-php composer --versi demo-php composer --versio demo-php composer --version demo-php composer require "mercadopago/dx-php:1.2.1" demo-php composer require "mercadopago/dx-php:1.2.1" - Installing doctrine/lexer (v1.0.1): - Installing doctrine/lexer (v1.0.1): Downloading (connecting...) - Installing doctrine/lexer (v1.0.1): Downloading (connecting...) - Installing doctrine/lexer (v1.0.1): Downloading (0%) - Installing doctrine/inflector (v1.3.0): - Installing doctrine/inflector (v1.3.0): Downloading (connecting...) - Installing doctrine/inflector (v1.3.0): Downloading (connecting...) - Installing doctrine/inflector (v1.3.0): Downloading (70%) - Installing doctrine/collections (v1.5.0): - Installing doctrine/collections (v1.5.0): Downloading (connecting...) - Installing doctrine/collections (v1.5.0): Downloading (connecting...) - Installing doctrine/collections (v1.5.0): Downloading (5%) - Installing doctrine/collections (v1.5.0): Downloading (5%) - Installing doctrine/collections (v1.5.0): Downloading (60%) - Installing doctrine/collections (v1.5.0): Downloading (95%) - Installing doctrine/cache (v1.8.0): - Installing doctrine/annotations (v1.6.0): - Installing doctrine/annotations (v1.6.0): Downloading (connecting...) - Installing doctrine/annotations (v1.6.0): Downloading (connecting...) - Installing doctrine/annotations (v1.6.0): Downloading (15%) - Installing doctrine/annotations (v1.6.0): Downloading (30%) - Installing doctrine/annotations (v1.6.0): Downloading (80%) - Installing doctrine/annotations (v1.6.0): Downloading (80%) - Installing doctrine/annotations (v1.6.0): Downloading (100%) - Installing doctrine/common (v2.6.2): - Installing doctrine/common (v2.6.2): Loading from cache - Installing mercadopago/dx-php (1.2.1): demo-php t demo-php tr demo-php tre demo-php tree demo-php tree demo-php tree - demo-php tree -L demo-php tree -L demo-php tree -L 3 demo-php composer --version Composer version 1.6.5 2018-05-04 11:44:59demo-php composer require "mercadopago/dx-php:1.2.1" ./composer.json has been createdLoading composer repositories with package informationUpdating dependencies (including require-dev)Package operations: 7 installs, 0 updates, 0 removals - Installing doctrine/lexer (v1.0.1): Downloading (100%) - Installing doctrine/inflector (v1.3.0): Downloading (100%) - Installing doctrine/collections (v1.5.0): Downloading (100%) - Installing doctrine/cache (v1.8.0): Loading from cache - Installing doctrine/annotations (v1.6.0): Downloading (100%) - Installing doctrine/common (v2.6.2): Loading from cache - Installing mercadopago/dx-php (1.2.1): Loading from cachedoctrine/cache suggests installing alcaeus/mongo-php-adapter (Required to use legacy MongoDB driver)Writing lock fileGenerating autoload filesdemo-php tree -L 3 demo-php p demo-php ph demo-php php demo-php php demo-php php - demo-php php -a demo-php php -a ├── composer.lock└── vendor ├── autoload.php ├── composer │   ├── ClassLoader.php │   ├── LICENSE │   ├── autoload_classmap.php │   ├── autoload_namespaces.php │   ├── autoload_psr4.php │   ├── autoload_real.php │   ├── autoload_static.php │   └── installed.json ├── doctrine │   ├── annotations │   ├── cache │   ├── collections │   ├── common │   ├── inflector │   └── lexer └── mercadopago └── dx-php11 directories, 11 filesdemo-php php -a php > php > r Interactive shellphp > require __DIR__ . '/vendor/autoload.php'; php > require __DIR__ . '/vendor/autoload.php';php > MercadoPago\SDK::setAccessToken("YOUR_ACCESS_TOKEN"); php > MercadoPago\SDK::setAccessToken("YOUR_ACCESS_TOKEN"); php > demo-php demo-php dx-php/samples/composer.json000064400000000361150364334060012136 0ustar00{ "repositories": [ { "url": "git@github.com:mercadopago/sdk-php.git", "type": "git" } ], "name": "mercadopago/sdk-php-sample", "require": { "mercadopago/dx-php": "dev-master" } } dx-php/samples/checkout-buttons/basic-preference/button.php000064400000001134150364334060020135 0ustar00id = "00001"; $item->title = "item"; $item->quantity = 1; $item->unit_price = 100; $preference->items = array($item); $preference->save(); # Save the preference and send the HTTP Request to create # Return the HTML code for button echo " Pagar "; ?> dx-php/samples/checkout-buttons/full-preference/button.php000064400000001743150364334060020024 0ustar00id = "00001"; $item1->title = "item"; $item1->quantity = 1; $item1->unit_price = 100; $item2 = new MercadoPago\Item(); $item2->id = "00002"; $item2->title = "item"; $item2->quantity = 1; $item2->unit_price = 100; $preference->items = array($item1, $item2); $preference->payment_methods = array( "excluded_payment_types" => array( array("id" => "credit_card") ), "installments" => 12 ); $preference->external_reference = "A Custom External Reference"; $preference->save(); # Save the preference and send the HTTP Request to create # Return the HTML code for button echo " Pagar "; ?> dx-php/samples/index.php000064400000000151150364334060011231 0ustar00 dx-php/samples/composer.lock000064400000075146150364334060012132 0ustar00{ "_readme": [ "This file locks the dependencies of your project to a known state", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], "content-hash": "a97932aaf55473222cfd365b741e994b", "packages": [ { "name": "doctrine/annotations", "version": "1.13.1", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", "reference": "e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/annotations/zipball/e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f", "reference": "e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f", "shasum": "" }, "require": { "doctrine/lexer": "1.*", "ext-tokenizer": "*", "php": "^7.1 || ^8.0", "psr/cache": "^1 || ^2 || ^3" }, "require-dev": { "doctrine/cache": "^1.11 || ^2.0", "doctrine/coding-standard": "^6.0 || ^8.1", "phpstan/phpstan": "^0.12.20", "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", "symfony/cache": "^4.4 || ^5.2" }, "type": "library", "autoload": { "psr-4": { "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, { "name": "Roman Borschel", "email": "roman@code-factory.org" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" } ], "description": "Docblock Annotations Parser", "homepage": "https://www.doctrine-project.org/projects/annotations.html", "keywords": [ "annotations", "docblock", "parser" ], "time": "2021-05-16T18:07:53+00:00" }, { "name": "doctrine/cache", "version": "1.11.3", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", "reference": "3bb5588cec00a0268829cc4a518490df6741af9d" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/cache/zipball/3bb5588cec00a0268829cc4a518490df6741af9d", "reference": "3bb5588cec00a0268829cc4a518490df6741af9d", "shasum": "" }, "require": { "php": "~7.1 || ^8.0" }, "conflict": { "doctrine/common": ">2.2,<2.4", "psr/cache": ">=3" }, "require-dev": { "alcaeus/mongo-php-adapter": "^1.1", "cache/integration-tests": "dev-master", "doctrine/coding-standard": "^8.0", "mongodb/mongodb": "^1.1", "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", "predis/predis": "~1.0", "psr/cache": "^1.0 || ^2.0", "symfony/cache": "^4.4 || ^5.2" }, "suggest": { "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" }, "type": "library", "autoload": { "psr-4": { "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, { "name": "Roman Borschel", "email": "roman@code-factory.org" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" } ], "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", "homepage": "https://www.doctrine-project.org/projects/cache.html", "keywords": [ "abstraction", "apcu", "cache", "caching", "couchdb", "memcached", "php", "redis", "xcache" ], "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", "type": "custom" }, { "url": "https://www.patreon.com/phpdoctrine", "type": "patreon" }, { "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", "type": "tidelift" } ], "time": "2021-05-25T09:01:55+00:00" }, { "name": "doctrine/collections", "version": "1.6.7", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a", "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a", "shasum": "" }, "require": { "php": "^7.1.3 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^6.0", "phpstan/phpstan-shim": "^0.9.2", "phpunit/phpunit": "^7.0", "vimeo/psalm": "^3.8.1" }, "type": "library", "autoload": { "psr-4": { "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, { "name": "Roman Borschel", "email": "roman@code-factory.org" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" } ], "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", "homepage": "https://www.doctrine-project.org/projects/collections.html", "keywords": [ "array", "collections", "iterators", "php" ], "time": "2020-07-27T17:53:49+00:00" }, { "name": "doctrine/common", "version": "2.13.3", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/common/zipball/f3812c026e557892c34ef37f6ab808a6b567da7f", "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f", "shasum": "" }, "require": { "doctrine/annotations": "^1.0", "doctrine/cache": "^1.0", "doctrine/collections": "^1.0", "doctrine/event-manager": "^1.0", "doctrine/inflector": "^1.0", "doctrine/lexer": "^1.0", "doctrine/persistence": "^1.3.3", "doctrine/reflection": "^1.0", "php": "^7.1 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^1.0", "phpstan/phpstan": "^0.11", "phpstan/phpstan-phpunit": "^0.11", "phpunit/phpunit": "^7.0", "squizlabs/php_codesniffer": "^3.0", "symfony/phpunit-bridge": "^4.0.5" }, "type": "library", "extra": { "branch-alias": { "dev-master": "2.11.x-dev" } }, "autoload": { "psr-4": { "Doctrine\\Common\\": "lib/Doctrine/Common" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, { "name": "Roman Borschel", "email": "roman@code-factory.org" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" }, { "name": "Marco Pivetta", "email": "ocramius@gmail.com" } ], "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.", "homepage": "https://www.doctrine-project.org/projects/common.html", "keywords": [ "common", "doctrine", "php" ], "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", "type": "custom" }, { "url": "https://www.patreon.com/phpdoctrine", "type": "patreon" }, { "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", "type": "tidelift" } ], "time": "2020-06-05T16:46:05+00:00" }, { "name": "doctrine/event-manager", "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "conflict": { "doctrine/common": "<2.9@dev" }, "require-dev": { "doctrine/coding-standard": "^6.0", "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { "Doctrine\\Common\\": "lib/Doctrine/Common" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, { "name": "Roman Borschel", "email": "roman@code-factory.org" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" }, { "name": "Marco Pivetta", "email": "ocramius@gmail.com" } ], "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", "homepage": "https://www.doctrine-project.org/projects/event-manager.html", "keywords": [ "event", "event dispatcher", "event manager", "event system", "events" ], "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", "type": "custom" }, { "url": "https://www.patreon.com/phpdoctrine", "type": "patreon" }, { "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", "type": "tidelift" } ], "time": "2020-05-29T18:28:51+00:00" }, { "name": "doctrine/inflector", "version": "1.4.4", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/inflector/zipball/4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^8.0", "phpstan/phpstan": "^0.12", "phpstan/phpstan-phpunit": "^0.12", "phpstan/phpstan-strict-rules": "^0.12", "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector", "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, { "name": "Roman Borschel", "email": "roman@code-factory.org" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" } ], "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", "homepage": "https://www.doctrine-project.org/projects/inflector.html", "keywords": [ "inflection", "inflector", "lowercase", "manipulation", "php", "plural", "singular", "strings", "uppercase", "words" ], "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", "type": "custom" }, { "url": "https://www.patreon.com/phpdoctrine", "type": "patreon" }, { "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", "type": "tidelift" } ], "time": "2021-04-16T17:34:40+00:00" }, { "name": "doctrine/lexer", "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8", "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8", "shasum": "" }, "require": { "php": ">=5.3.2" }, "require-dev": { "phpunit/phpunit": "^4.5" }, "type": "library", "extra": { "branch-alias": { "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Roman Borschel", "email": "roman@code-factory.org" }, { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" } ], "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", "homepage": "https://www.doctrine-project.org/projects/lexer.html", "keywords": [ "annotations", "docblock", "lexer", "parser", "php" ], "time": "2019-06-08T11:03:04+00:00" }, { "name": "doctrine/persistence", "version": "1.3.8", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/persistence/zipball/7a6eac9fb6f61bba91328f15aa7547f4806ca288", "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288", "shasum": "" }, "require": { "doctrine/annotations": "^1.0", "doctrine/cache": "^1.0", "doctrine/collections": "^1.0", "doctrine/event-manager": "^1.0", "doctrine/reflection": "^1.2", "php": "^7.1 || ^8.0" }, "conflict": { "doctrine/common": "<2.10@dev" }, "require-dev": { "doctrine/coding-standard": "^6.0", "phpstan/phpstan": "^0.11", "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", "vimeo/psalm": "^3.11" }, "type": "library", "extra": { "branch-alias": { "dev-master": "1.3.x-dev" } }, "autoload": { "psr-4": { "Doctrine\\Common\\": "lib/Doctrine/Common", "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, { "name": "Roman Borschel", "email": "roman@code-factory.org" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" }, { "name": "Marco Pivetta", "email": "ocramius@gmail.com" } ], "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", "homepage": "https://doctrine-project.org/projects/persistence.html", "keywords": [ "mapper", "object", "odm", "orm", "persistence" ], "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", "type": "custom" }, { "url": "https://www.patreon.com/phpdoctrine", "type": "patreon" }, { "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fpersistence", "type": "tidelift" } ], "time": "2020-06-20T12:56:16+00:00" }, { "name": "doctrine/reflection", "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/doctrine/reflection.git", "reference": "fa587178be682efe90d005e3a322590d6ebb59a5" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/reflection/zipball/fa587178be682efe90d005e3a322590d6ebb59a5", "reference": "fa587178be682efe90d005e3a322590d6ebb59a5", "shasum": "" }, "require": { "doctrine/annotations": "^1.0", "ext-tokenizer": "*", "php": "^7.1 || ^8.0" }, "conflict": { "doctrine/common": "<2.9" }, "require-dev": { "doctrine/coding-standard": "^6.0 || ^8.2.0", "doctrine/common": "^2.10", "phpstan/phpstan": "^0.11.0 || ^0.12.20", "phpstan/phpstan-phpunit": "^0.11.0 || ^0.12.16", "phpunit/phpunit": "^7.5 || ^9.1.5" }, "type": "library", "extra": { "branch-alias": { "dev-master": "1.2.x-dev" } }, "autoload": { "psr-4": { "Doctrine\\Common\\": "lib/Doctrine/Common" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, { "name": "Roman Borschel", "email": "roman@code-factory.org" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" }, { "name": "Marco Pivetta", "email": "ocramius@gmail.com" } ], "description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.", "homepage": "https://www.doctrine-project.org/projects/reflection.html", "keywords": [ "reflection", "static" ], "abandoned": "roave/better-reflection", "time": "2020-10-27T21:46:55+00:00" }, { "name": "mercadopago/dx-php", "version": "dev-master", "source": { "type": "git", "url": "git@github.com:mercadopago/sdk-php.git", "reference": "8f71ba1515105b8a5acd167f7546edadf9e0c531" }, "require": { "doctrine/annotations": "^1.8", "doctrine/common": "^2.6", "php": ">=7.1.0" }, "require-dev": { "doctrine/orm": "~2.3", "phpdocumentor/phpdocumentor": "^2.0", "phpmd/phpmd": "@stable", "phpunit/phpunit": "^5", "sebastian/phpcpd": "*", "squizlabs/php_codesniffer": "2.3.*", "symfony/yaml": "~2.5", "vlucas/phpdotenv": "^2.5" }, "type": "library", "autoload": { "psr-4": { "MercadoPago\\": [ "src/MercadoPago/", "tests/", "src/MercadoPago/Generic/", "src/MercadoPago/Entities/", "src/MercadoPago/Entities/Shared/" ] } }, "scripts": { "test": [ "./vendor/bin/phpunit tests" ], "generate-doc": [ "php phpDocumentor.phar --visibility=\"public,protected\" --template=\"responsive-twig\" --title=\"SDK Mercado Pago\" -d ./src/MercadoPaGo/Entities -t ./docs" ] }, "license": [ "MIT" ], "description": "Mercado Pago PHP SDK", "homepage": "https://github.com/mercadopago/sdk-php", "time": "2021-05-19T21:01:47+00:00" }, { "name": "psr/cache", "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/php-fig/cache.git", "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", "shasum": "" }, "require": { "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { "Psr\\Cache\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "PHP-FIG", "homepage": "http://www.php-fig.org/" } ], "description": "Common interface for caching libraries", "keywords": [ "cache", "psr", "psr-6" ], "time": "2016-08-06T20:24:11+00:00" } ], "packages-dev": [], "aliases": [], "minimum-stability": "stable", "stability-flags": { "mercadopago/dx-php": 20 }, "prefer-stable": false, "prefer-lowest": false, "platform": [], "platform-dev": [], "plugin-api-version": "1.1.0" } dx-php/samples/suscriptions/basic-suscription.php000064400000001362150364334060016335 0ustar00payer_email = "your.payer@email.com"; $preapproval_data->back_url = "http://www.my-site.com"; $preapproval_data->reason = "Monthly subscription to premium package"; $preapproval_data->external_reference = "OP-1234"; $preapproval_data->auto_recurring = array( "frequency" => 1, "frequency_type" => "months", "transaction_amount" => 10, "currency_id" => "XXX", // your currency "start_date" => date(DATE_ISO8601), "end_date" => date(DATE_ISO8601, strtotime('+5 years')) ); $preapproval_data->save(); var_dump($preapproval_data); ?> dx-php/samples/customer-and-cards/customer/create.php000064400000000340150364334060016721 0ustar00email = "your.payer@email.com"; $customer->save(); echo "Customer ID: " . $customer->id; ?> dx-php/samples/customer-and-cards/customer/remove.php000064400000000216150364334060016755 0ustar00delete(); ?> dx-php/samples/customer-and-cards/card/list.php000064400000000306150364334060015503 0ustar00 "0000000000-zk2BeFiet6otYD")); echo 'Card ID: ' . $cards[0]->id; ?> dx-php/samples/payment/minimal/refund.php000064400000000654150364334060014520 0ustar00amount = $payment->total_paid_amount; $refund->metadata = "A total refund"; $refund->save(); echo "Refund ID: " . $refund->id . "\n"; echo "Payment Refunds: \n"; var_dump($payment->refunds); ?> dx-php/samples/payment/minimal/create.php000064400000001014150364334060014467 0ustar00transaction_amount = 100; $payment->token = "CARD_TOKEN"; $payment->description = "Title of what you are paying for"; $payment->installments = 1; $payer = new MercadoPago\Payer(); $payer->email = "your.payer@email.com"; $payment->payer = $payer; $payment->save(); echo "Payment ID: " . $payment->id . "\n"; echo "Payment Status: " . $payment->status . "\n"; ?> dx-php/phpunit.phar000064400012260305150364334060010324 0ustar00#!/usr/bin/env php ')) { fwrite( STDERR, sprintf( 'PHPUnit 6.2.1 by Sebastian Bergmann and contributors.' . PHP_EOL . PHP_EOL . 'This version of PHPUnit is supported on PHP 7.0 and PHP 7.1.' . PHP_EOL . 'You are using PHP %s (%s).' . PHP_EOL, PHP_VERSION, PHP_BINARY ) ); die(1); } if (__FILE__ == realpath($GLOBALS['_SERVER']['SCRIPT_NAME'])) { $execute = true; } else { $execute = false; } define('__PHPUNIT_PHAR__', str_replace(DIRECTORY_SEPARATOR, '/', __FILE__)); define('__PHPUNIT_PHAR_ROOT__', 'phar://phpunit-6.2.1.phar'); Phar::mapPhar('phpunit-6.2.1.phar'); require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/DeepCopy.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Exception/CloneException.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Filter/Filter.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Filter/KeepFilter.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Filter/ReplaceFilter.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Filter/SetNullFilter.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Matcher/Matcher.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Matcher/PropertyMatcher.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Matcher/PropertyNameMatcher.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Matcher/PropertyTypeMatcher.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/Reflection/ReflectionHelper.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/TypeFilter/TypeFilter.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/TypeFilter/ReplaceFilter.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/TypeFilter/ShallowCopyFilter.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php'; require 'phar://phpunit-6.2.1.phar' . '/myclabs-deep-copy/DeepCopy/TypeMatcher/TypeMatcher.php'; require 'phar://phpunit-6.2.1.phar' . '/doctrine-instantiator/Doctrine/Instantiator/Exception/ExceptionInterface.php'; require 'phar://phpunit-6.2.1.phar' . '/doctrine-instantiator/Doctrine/Instantiator/Exception/InvalidArgumentException.php'; require 'phar://phpunit-6.2.1.phar' . '/doctrine-instantiator/Doctrine/Instantiator/Exception/UnexpectedValueException.php'; require 'phar://phpunit-6.2.1.phar' . '/doctrine-instantiator/Doctrine/Instantiator/InstantiatorInterface.php'; require 'phar://phpunit-6.2.1.phar' . '/doctrine-instantiator/Doctrine/Instantiator/Instantiator.php'; require 'phar://phpunit-6.2.1.phar' . '/php-file-iterator/Iterator.php'; require 'phar://phpunit-6.2.1.phar' . '/php-file-iterator/Facade.php'; require 'phar://phpunit-6.2.1.phar' . '/php-file-iterator/Factory.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Assert.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/SelfDescribing.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/AssertionFailedError.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/TestListener.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/BaseTestListener.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/CodeCoverageException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/Constraint.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/ArrayHasKey.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/ArraySubset.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/Composite.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/Attribute.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/Callback.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/ClassHasAttribute.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/ClassHasStaticAttribute.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/Count.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/DirectoryExists.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/ExceptionCode.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/ExceptionMessage.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/ExceptionMessageRegularExpression.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/FileExists.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/GreaterThan.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsAnything.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsEmpty.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsEqual.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsFalse.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsFinite.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsIdentical.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsInfinite.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsInstanceOf.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsJson.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsNan.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsNull.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsReadable.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsTrue.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsType.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/IsWritable.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/JsonMatches.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/JsonMatchesErrorMessageProvider.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/LessThan.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/LogicalAnd.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/LogicalNot.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/LogicalOr.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/LogicalXor.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/ObjectHasAttribute.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/RegularExpression.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/SameSize.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/StringContains.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/StringEndsWith.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/StringMatchesFormatDescription.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/StringStartsWith.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/TraversableContains.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Constraint/TraversableContainsOnly.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/RiskyTest.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/RiskyTestError.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/CoveredCodeNotExecutedException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Test.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/TestSuite.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/DataProviderTestSuite.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Error/Error.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Error/Deprecated.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Error/Notice.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Error/Warning.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/ExceptionWrapper.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/ExpectationFailedException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/IncompleteTest.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/TestCase.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/IncompleteTestCase.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/IncompleteTestError.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/InvalidCoversTargetException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/MissingCoversAnnotationException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/OutputError.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/SkippedTest.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/SkippedTestCase.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/SkippedTestError.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/SkippedTestSuiteError.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/SyntheticError.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/TestFailure.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/TestResult.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/TestSuiteIterator.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/UnintentionallyCoveredCodeError.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/Warning.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Framework/WarningTestCase.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Runner/BaseTestRunner.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Runner/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Runner/Filter/GroupFilterIterator.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Runner/Filter/ExcludeGroupFilterIterator.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Runner/Filter/Factory.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Runner/Filter/IncludeGroupFilterIterator.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Runner/Filter/NameFilterIterator.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Runner/PhptTestCase.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Runner/TestSuiteLoader.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Runner/StandardTestSuiteLoader.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Runner/Version.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/TextUI/Command.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/Printer.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/TextUI/ResultPrinter.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/TextUI/TestRunner.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/Blacklist.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/Configuration.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/ConfigurationGenerator.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/ErrorHandler.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/Fileloader.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/Filesystem.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/Filter.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/Getopt.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/GlobalState.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/InvalidArgumentHelper.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/Log/JUnit.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/Log/TeamCity.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/PHP/AbstractPhpProcess.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/PHP/DefaultPhpProcess.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/PHP/WindowsPhpProcess.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/RegularExpression.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/Test.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/TestDox/ResultPrinter.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/TestDox/HtmlResultPrinter.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/TestDox/NamePrettifier.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/TestDox/TextResultPrinter.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/TestDox/XmlResultPrinter.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/Type.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit/Util/Xml.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Exception/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Exception/BadMethodCallException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Builder/Identity.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Builder/Stub.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Builder/Match.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Builder/ParametersMatch.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Builder/MethodNameMatch.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Builder/InvocationMocker.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Builder/Namespace.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Generator.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Invocation.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Stub/MatcherCollection.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Verifiable.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Invokable.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/InvocationMocker.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Invocation/Static.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Invocation/Object.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher/Invocation.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher/InvokedRecorder.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher/AnyInvokedCount.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher/StatelessInvocation.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher/AnyParameters.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher/ConsecutiveParameters.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher/InvokedAtIndex.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher/InvokedAtLeastCount.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher/InvokedAtLeastOnce.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher/InvokedAtMostCount.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher/InvokedCount.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher/MethodName.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Matcher/Parameters.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/MockBuilder.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/MockObject.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Exception/RuntimeException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Stub.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Stub/ConsecutiveCalls.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Stub/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Stub/Return.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Stub/ReturnArgument.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Stub/ReturnCallback.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Stub/ReturnReference.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Stub/ReturnSelf.php'; require 'phar://phpunit-6.2.1.phar' . '/phpunit-mock-objects/Stub/ReturnValueMap.php'; require 'phar://phpunit-6.2.1.phar' . '/php-invoker/Invoker.php'; require 'phar://phpunit-6.2.1.phar' . '/php-invoker/TimeoutException.php'; require 'phar://phpunit-6.2.1.phar' . '/php-timer/Timer.php'; require 'phar://phpunit-6.2.1.phar' . '/php-token-stream/Token.php'; require 'phar://phpunit-6.2.1.phar' . '/php-token-stream/Token/Stream.php'; require 'phar://phpunit-6.2.1.phar' . '/php-token-stream/Token/Stream/CachingFactory.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/Type.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/Application.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/ApplicationName.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/Author.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/AuthorCollection.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/AuthorCollectionIterator.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/ManifestElement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/AuthorElement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/ElementCollection.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/AuthorElementCollection.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/BundledComponent.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/BundledComponentCollection.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/BundledComponentCollectionIterator.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/BundlesElement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/ComponentElement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/ComponentElementCollection.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/ContainsElement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/CopyrightElement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/CopyrightInformation.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/Email.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/exceptions/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/ExtElement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/ExtElementCollection.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/Extension.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/ExtensionElement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/exceptions/InvalidApplicationNameException.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/exceptions/InvalidEmailException.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/exceptions/InvalidUrlException.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/Library.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/License.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/LicenseElement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/Manifest.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/ManifestDocument.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/exceptions/ManifestDocumentException.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/ManifestDocumentLoadingException.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/ManifestDocumentMapper.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/exceptions/ManifestDocumentMapperException.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/exceptions/ManifestElementException.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/ManifestLoader.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/exceptions/ManifestLoaderException.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/ManifestSerializer.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/PhpElement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/Requirement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/PhpExtensionRequirement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/PhpVersionRequirement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/RequirementCollection.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/RequirementCollectionIterator.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/xml/RequiresElement.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-manifest/values/Url.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/VersionConstraint.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/AbstractVersionConstraint.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/AndVersionConstraintGroup.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/AnyVersionConstraint.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/ExactVersionConstraint.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/GreaterThanOrEqualToVersionConstraint.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/InvalidVersionException.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/OrVersionConstraintGroup.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/PreReleaseSuffix.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/SpecificMajorAndMinorVersionConstraint.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/SpecificMajorVersionConstraint.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/UnsupportedVersionConstraintException.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/Version.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/VersionConstraintParser.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/VersionConstraintValue.php'; require 'phar://phpunit-6.2.1.phar' . '/phar-io-version/VersionNumber.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/ArgumentsWildcard.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/TokenInterface.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/AnyValueToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/AnyValuesToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/ApproximateValueToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/ArrayCountToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/ArrayEntryToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/ArrayEveryEntryToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/CallbackToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/ExactValueToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/IdenticalValueToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/LogicalAndToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/LogicalNotToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/ObjectStateToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/StringContainsToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Argument/Token/TypeToken.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Call/Call.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Call/CallCenter.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/Comparator.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Comparator/ClosureComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/Factory.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Comparator/Factory.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/ArrayComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/ObjectComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Comparator/ProphecyComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/Doubler.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/CachedDoubler.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/ClassPatch/KeywordPatch.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/ClassPatch/MagicCallPatch.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/ClassPatch/TraversablePatch.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/DoubleInterface.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/Generator/ClassCodeGenerator.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/Generator/ClassCreator.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/Generator/ClassMirror.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/Generator/Node/ArgumentNode.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/Generator/Node/ClassNode.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/Generator/Node/MethodNode.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/Generator/ReflectionInterface.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/LazyDouble.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Doubler/NameGenerator.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Prophecy/ProphecyException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Prophecy/ObjectProphecyException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Call/UnexpectedCallException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Doubler/DoublerException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Doubler/ClassCreatorException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Doubler/ClassMirrorException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Doubler/DoubleException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Doubler/ClassNotFoundException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Doubler/InterfaceNotFoundException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Doubler/MethodNotExtendableException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Doubler/MethodNotFoundException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Doubler/ReturnByReferenceException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/InvalidArgumentException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Prediction/PredictionException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Prediction/AggregateException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Prediction/FailedPredictionException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Prophecy/MethodProphecyException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Prediction/NoCallsException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Prediction/UnexpectedCallsException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/PhpDocumentor/ClassTagRetriever.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Prediction/PredictionInterface.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Prediction/CallPrediction.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Prediction/CallTimesPrediction.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Prediction/CallbackPrediction.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Prediction/NoCallsPrediction.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Promise/PromiseInterface.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Promise/CallbackPromise.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Promise/ReturnArgumentPromise.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Promise/ReturnPromise.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Promise/ThrowPromise.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Prophecy/MethodProphecy.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Prophecy/ProphecyInterface.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Prophecy/ObjectProphecy.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Prophecy/ProphecySubjectInterface.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Prophecy/RevealerInterface.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Prophecy/Revealer.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Prophet.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Util/ExportUtil.php'; require 'phar://phpunit-6.2.1.phar' . '/phpspec-prophecy/Prophecy/Util/StringUtil.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/CodeCoverage.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Exception/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Exception/RuntimeException.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Exception/CoveredCodeNotExecutedException.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Driver/Driver.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Driver/Xdebug.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Driver/HHVM.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Driver/PHPDBG.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Filter.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Exception/InvalidArgumentException.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Exception/MissingCoversAnnotationException.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Node/AbstractNode.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Node/Builder.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Node/Directory.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Node/File.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Node/Iterator.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Clover.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Crap4j.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Html/Renderer.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Html/Renderer/Dashboard.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Html/Renderer/Directory.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Html/Facade.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Html/Renderer/File.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/PHP.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Text.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Xml/BuildInformation.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Xml/Coverage.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Xml/Node.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Xml/Directory.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Xml/Facade.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Xml/File.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Xml/Method.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Xml/Project.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Xml/Report.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Xml/Source.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Xml/Tests.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Xml/Totals.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Report/Xml/Unit.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Exception/UnintentionallyCoveredCodeException.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Util.php'; require 'phar://phpunit-6.2.1.phar' . '/php-code-coverage/Version.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-code-unit-reverse-lookup/Wizard.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/ComparisonFailure.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/DOMNodeComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/DateTimeComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/ScalarComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/NumericComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/DoubleComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/ExceptionComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/MockObjectComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/ResourceComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/SplObjectStorageComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-comparator/TypeComparator.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-diff/Chunk.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-diff/Diff.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-diff/Differ.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-diff/LCS/LongestCommonSubsequence.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-diff/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-diff/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-diff/Line.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-diff/Parser.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-environment/Console.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-environment/Runtime.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-exporter/Exporter.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-global-state/Blacklist.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-global-state/CodeExporter.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-global-state/exceptions/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-global-state/Restorer.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-global-state/exceptions/RuntimeException.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-global-state/Snapshot.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-object-enumerator/Enumerator.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-object-enumerator/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-object-enumerator/InvalidArgumentException.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-object-reflector/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-object-reflector/InvalidArgumentException.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-object-reflector/ObjectReflector.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-recursion-context/Context.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-recursion-context/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-recursion-context/InvalidArgumentException.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-resource-operations/ResourceOperations.php'; require 'phar://phpunit-6.2.1.phar' . '/sebastian-version/Version.php'; require 'phar://phpunit-6.2.1.phar' . '/php-text-template/Template.php'; require 'phar://phpunit-6.2.1.phar' . '/theseer-tokenizer/Exception.php'; require 'phar://phpunit-6.2.1.phar' . '/theseer-tokenizer/NamespaceUri.php'; require 'phar://phpunit-6.2.1.phar' . '/theseer-tokenizer/NamespaceUriException.php'; require 'phar://phpunit-6.2.1.phar' . '/theseer-tokenizer/Token.php'; require 'phar://phpunit-6.2.1.phar' . '/theseer-tokenizer/TokenCollection.php'; require 'phar://phpunit-6.2.1.phar' . '/theseer-tokenizer/TokenCollectionException.php'; require 'phar://phpunit-6.2.1.phar' . '/theseer-tokenizer/Tokenizer.php'; require 'phar://phpunit-6.2.1.phar' . '/theseer-tokenizer/XMLSerializer.php'; require 'phar://phpunit-6.2.1.phar' . '/webmozart-assert/Assert.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlockFactoryInterface.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlockFactory.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Description.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/DescriptionFactory.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Serializer.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/TagFactory.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/StandardTagFactory.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tag.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Factory/StaticMethod.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/BaseTag.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Author.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Covers.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Deprecated.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Example.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Factory/Strategy.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Formatter.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Formatter/PassthroughFormatter.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Generic.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Link.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Method.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Param.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Property.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/PropertyRead.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/PropertyWrite.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Return_.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/See.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Since.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Source.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Throws.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Uses.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Var_.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/Tags/Version.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-common/Element.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-docblock/DocBlock/ExampleFinder.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-common/File.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-common/Fqsen.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/FqsenResolver.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-common/Location.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-common/Project.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-reflection-common/ProjectFactory.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Type.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/TypeResolver.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Array_.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Boolean.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Callable_.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Compound.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Context.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/ContextFactory.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Float_.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Integer.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Mixed.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Null_.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Object_.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Resource.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Scalar.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Self_.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Static_.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/String_.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/This.php'; require 'phar://phpunit-6.2.1.phar' . '/phpdocumentor-type-resolver/Types/Void_.php'; if ($execute) { if (isset($_SERVER['argv'][1]) && $_SERVER['argv'][1] == '--manifest') { print file_get_contents(__PHPUNIT_PHAR_ROOT__ . '/manifest.txt'); exit; } PHPUnit\TextUI\Command::main(); } __HALT_COMPILER(); ?> Cphpunit-6.2.1.phar manifest.txtjY1YjLca.pemY1Ybyphp-code-coverage/LICENSEY1YЉxZ"php-code-coverage/CodeCoverage.phpyY1YyZ#php-code-coverage/Driver/Driver.phpY1Y!php-code-coverage/Driver/HHVM.phpY1YՆ7#php-code-coverage/Driver/PHPDBG.php] Y1Y] ӔӶ#php-code-coverage/Driver/Xdebug.php Y1Y ?php-code-coverage/Exception/CoveredCodeNotExecutedException.phpY1Y//)php-code-coverage/Exception/Exception.php~Y1Y~u8php-code-coverage/Exception/InvalidArgumentException.phpY1YN@php-code-coverage/Exception/MissingCoversAnnotationException.phpY1YfM0php-code-coverage/Exception/RuntimeException.phppY1YpwCCphp-code-coverage/Exception/UnintentionallyCoveredCodeException.phpY1YF+php-code-coverage/Filter.phpY1Yʶ'php-code-coverage/Node/AbstractNode.phpY1Y_"php-code-coverage/Node/Builder.phpfY1Yfr$php-code-coverage/Node/Directory.php&Y1Y&kphp-code-coverage/Node/File.phpwLY1YwLo8#php-code-coverage/Node/Iterator.phpY1Y9Q#php-code-coverage/Report/Clover.php&Y1Y&1#php-code-coverage/Report/Crap4j.phpY1Yqro(php-code-coverage/Report/Html/Facade.php'Y1Y'W ն*php-code-coverage/Report/Html/Renderer.phpe"Y1Ye"4php-code-coverage/Report/Html/Renderer/Dashboard.phpm&Y1Ym&!mu4php-code-coverage/Report/Html/Renderer/Directory.php Y1Y ;$ /php-code-coverage/Report/Html/Renderer/File.phpJY1YJHˮFphp-code-coverage/Report/Html/Renderer/Template/coverage_bar.html.dist1Y1Y1itLEphp-code-coverage/Report/Html/Renderer/Template/css/bootstrap.min.csspY1YpX|FAphp-code-coverage/Report/Html/Renderer/Template/css/nv.d3.min.cssX%Y1YX%0,=php-code-coverage/Report/Html/Renderer/Template/css/style.css+Y1Y+Y`gCphp-code-coverage/Report/Html/Renderer/Template/dashboard.html.distY1YXnbCphp-code-coverage/Report/Html/Renderer/Template/directory.html.dist(Y1Y(d׶Hphp-code-coverage/Report/Html/Renderer/Template/directory_item.html.dist5Y1Y5Z]>php-code-coverage/Report/Html/Renderer/Template/file.html.distY1YFCphp-code-coverage/Report/Html/Renderer/Template/file_item.html.distgY1YgV PVphp-code-coverage/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.eotNY1YNXDZVphp-code-coverage/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.svg¨Y1Y¨|ɶVphp-code-coverage/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.ttf\Y1Y\<Wphp-code-coverage/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff[Y1Y[{Xphp-code-coverage/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff2lFY1YlFvaCphp-code-coverage/Report/Html/Renderer/Template/js/bootstrap.min.jsY1Y/j<php-code-coverage/Report/Html/Renderer/Template/js/d3.min.jsPY1YPhb:php-code-coverage/Report/Html/Renderer/Template/js/file.jsY1Y'@php-code-coverage/Report/Html/Renderer/Template/js/holder.min.jsmY1YmJsѶCphp-code-coverage/Report/Html/Renderer/Template/js/html5shiv.min.js[(Y1Y[( ü,@php-code-coverage/Report/Html/Renderer/Template/js/jquery.min.jsRY1YR~?php-code-coverage/Report/Html/Renderer/Template/js/nv.d3.min.jsRY1YR*php-code-coverage/Report/Xml/Directory.phpRY1YR&a'php-code-coverage/Report/Xml/Facade.phpGY1YGUo˶%php-code-coverage/Report/Xml/File.phpY1Yڿ'php-code-coverage/Report/Xml/Method.phpWY1YW \%php-code-coverage/Report/Xml/Node.phpY1Y;#P(php-code-coverage/Report/Xml/Project.phpX Y1YX 7'php-code-coverage/Report/Xml/Report.phpi Y1Yi E'php-code-coverage/Report/Xml/Source.php<Y1Y<yZF&php-code-coverage/Report/Xml/Tests.phpY1YM'php-code-coverage/Report/Xml/Totals.phpPY1YP%php-code-coverage/Report/Xml/Unit.php Y1Y -5^php-code-coverage/Util.phpY1Y3php-code-coverage/Version.phpY1Y|Sphp-file-iterator/LICENSE Y1Y sphp-file-iterator/Facade.php Y1Y 0php-file-iterator/Factory.php Y1Y yphp-file-iterator/Iterator.phpaY1Yaphp-text-template/LICENSE Y1Y S:php-text-template/Template.php Y1Y w4php-timer/LICENSEY1YǨAEphp-timer/Timer.php Y1Y GTphp-token-stream/LICENSEY1Y-& php-token-stream/Token.phpbY1Yblz#phpunit-mock-objects/MockObject.phpHY1YH\tphpunit-mock-objects/Stub.phpY1YCw.phpunit-mock-objects/Stub/ConsecutiveCalls.phpdY1Yd~{'phpunit-mock-objects/Stub/Exception.phpY1Y/phpunit-mock-objects/Stub/MatcherCollection.phpY1Y@M@$phpunit-mock-objects/Stub/Return.phpuY1Yu4nܶ,phpunit-mock-objects/Stub/ReturnArgument.phpY1Yͭ,phpunit-mock-objects/Stub/ReturnCallback.phpiY1Yii7s-phpunit-mock-objects/Stub/ReturnReference.php Y1Y (phpunit-mock-objects/Stub/ReturnSelf.phpY1Y=,phpunit-mock-objects/Stub/ReturnValueMap.phpMY1YMҶ#phpunit-mock-objects/Verifiable.phpY1Yτ *sebastian-code-unit-reverse-lookup/LICENSEY1YXX-sebastian-code-unit-reverse-lookup/Wizard.phpe Y1Ye sebastian-comparator/LICENSE Y1Y V7?.(sebastian-comparator/ArrayComparator.php`Y1Y`?aɶ#sebastian-comparator/Comparator.phpY1Y~O7*sebastian-comparator/ComparisonFailure.php Y1Y 0*sebastian-comparator/DOMNodeComparator.phpW Y1YW ֊+sebastian-comparator/DateTimeComparator.phpV Y1YV e)sebastian-comparator/DoubleComparator.phpsY1Ys̶,sebastian-comparator/ExceptionComparator.phpY1Yȶ sebastian-comparator/Factory.phpZ Y1YZ ^R-sebastian-comparator/MockObjectComparator.phpY1Ya6~*sebastian-comparator/NumericComparator.phpY1Yݫ[)sebastian-comparator/ObjectComparator.phpY1Yne+sebastian-comparator/ResourceComparator.php/Y1Y/ PM)sebastian-comparator/ScalarComparator.php Y1Y 鎶3sebastian-comparator/SplObjectStorageComparator.phpY1Y!ڶ'sebastian-comparator/TypeComparator.phpY1Y#նsebastian-diff/LICENSE Y1Y  ~sebastian-diff/Chunk.phpY1Yv|sebastian-diff/Diff.phpY1YS dhsebastian-diff/Differ.php)Y1Y)S9R/sebastian-diff/LCS/LongestCommonSubsequence.phpjY1Yj\/Lsebastian-diff/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.phpR Y1YR oJsebastian-diff/LCS/TimeEfficientLongestCommonSubsequenceImplementation.phpY1Ysebastian-diff/Line.phpY1Yeܶsebastian-diff/Parser.php Y1Y & Ƕsebastian-environment/LICENSEY1Yr=!sebastian-environment/Console.phpOY1YO g!sebastian-environment/Runtime.phpRY1YRqxsebastian-exporter/LICENSEY1Y`sebastian-exporter/Exporter.php#Y1Y#!Y#sebastian-recursion-context/LICENSEY1Y >'sebastian-recursion-context/Context.php{Y1Y{)sebastian-recursion-context/Exception.phpJY1YJ8sebastian-recursion-context/InvalidArgumentException.phpY1YmH%sebastian-resource-operations/LICENSE Y1Y I4sebastian-resource-operations/ResourceOperations.phpUY1YUhնsebastian-global-state/LICENSEY1Yq~Pd$sebastian-global-state/Blacklist.php Y1Y ܫ9'sebastian-global-state/CodeExporter.phpf Y1Yf |!#sebastian-global-state/Restorer.php"Y1Y"M#sebastian-global-state/Snapshot.php!Y1Y!Ò/sebastian-global-state/exceptions/Exception.phpPY1YPWZ6sebastian-global-state/exceptions/RuntimeException.phpY1Y y˶object-enumerator/LICENSEY1Yfζ*sebastian-object-enumerator/Enumerator.phprY1Yrz\)sebastian-object-enumerator/Exception.php6Y1Y6n$*a8sebastian-object-enumerator/InvalidArgumentException.phpxY1Yx'object-reflector/LICENSE Y1Y F(sebastian-object-reflector/Exception.phpNY1YN ^7sebastian-object-reflector/InvalidArgumentException.phpY1YYJ.sebastian-object-reflector/ObjectReflector.phpY1Y "sebastian-version/LICENSEY1Ynsebastian-version/Version.phpY1YN\Ƕdoctrine-instantiator/LICENSE$Y1Y$ ͂Ldoctrine-instantiator/Doctrine/Instantiator/Exception/ExceptionInterface.phpY1Y.öRdoctrine-instantiator/Doctrine/Instantiator/Exception/InvalidArgumentException.phpY1Yh7IRdoctrine-instantiator/Doctrine/Instantiator/Exception/UnexpectedValueException.php Y1Y " <doctrine-instantiator/Doctrine/Instantiator/Instantiator.php Y1Y &Edoctrine-instantiator/Doctrine/Instantiator/InstantiatorInterface.php~Y1Y~:php-invoker/Invoker.phpY1Y w php-invoker/TimeoutException.phppY1Yp~'phpdocumentor-reflection-common/LICENSE9Y1Y9*2Ȑ+phpdocumentor-reflection-common/Element.php1Y1Y1iUҶ(phpdocumentor-reflection-common/File.php7Y1Y73")phpdocumentor-reflection-common/Fqsen.phpY1YC,phpdocumentor-reflection-common/Location.phpHY1YH?-+phpdocumentor-reflection-common/Project.phpY1Y/H 2phpdocumentor-reflection-common/ProjectFactory.phpY1YQ"ܶ)phpdocumentor-reflection-docblock/LICENSE8Y1Y8ʶ.phpdocumentor-reflection-docblock/DocBlock.phpY1Y/呶:phpdocumentor-reflection-docblock/DocBlock/Description.php Y1Y Aphpdocumentor-reflection-docblock/DocBlock/DescriptionFactory.phpqY1Yq:<phpdocumentor-reflection-docblock/DocBlock/ExampleFinder.phpY1Y+9phpdocumentor-reflection-docblock/DocBlock/Serializer.php7Y1Y7@]DAphpdocumentor-reflection-docblock/DocBlock/StandardTagFactory.phpx-Y1Yx-,K2phpdocumentor-reflection-docblock/DocBlock/Tag.phpuY1Yu⹰9phpdocumentor-reflection-docblock/DocBlock/TagFactory.phpY1YP;Ͷ:phpdocumentor-reflection-docblock/DocBlock/Tags/Author.php Y1Y tc;phpdocumentor-reflection-docblock/DocBlock/Tags/BaseTag.phpY1YX c:phpdocumentor-reflection-docblock/DocBlock/Tags/Covers.phpJY1YJXL>phpdocumentor-reflection-docblock/DocBlock/Tags/Deprecated.php Y1Y HO;phpdocumentor-reflection-docblock/DocBlock/Tags/Example.phpQY1YQHphpdocumentor-reflection-docblock/DocBlock/Tags/Factory/StaticMethod.phpY1Y2iDphpdocumentor-reflection-docblock/DocBlock/Tags/Factory/Strategy.phpY1YR=phpdocumentor-reflection-docblock/DocBlock/Tags/Formatter.phpY1YDy7Rphpdocumentor-reflection-docblock/DocBlock/Tags/Formatter/PassthroughFormatter.php%Y1Y%I`;phpdocumentor-reflection-docblock/DocBlock/Tags/Generic.phpX Y1YX D 8phpdocumentor-reflection-docblock/DocBlock/Tags/Link.phpNY1YNV:phpdocumentor-reflection-docblock/DocBlock/Tags/Method.phpY1Yo9phpdocumentor-reflection-docblock/DocBlock/Tags/Param.php{Y1Y{vO<phpdocumentor-reflection-docblock/DocBlock/Tags/Property.php Y1Y T̶@phpdocumentor-reflection-docblock/DocBlock/Tags/PropertyRead.php Y1Y ѝݶAphpdocumentor-reflection-docblock/DocBlock/Tags/PropertyWrite.php Y1Y ;phpdocumentor-reflection-docblock/DocBlock/Tags/Return_.phpY1Y•R7phpdocumentor-reflection-docblock/DocBlock/Tags/See.phpdY1YdO9phpdocumentor-reflection-docblock/DocBlock/Tags/Since.php Y1Y P:phpdocumentor-reflection-docblock/DocBlock/Tags/Source.phpm Y1Ym d%:phpdocumentor-reflection-docblock/DocBlock/Tags/Throws.phpY1YȈض8phpdocumentor-reflection-docblock/DocBlock/Tags/Uses.phpPY1YPT,8phpdocumentor-reflection-docblock/DocBlock/Tags/Var_.php Y1Y L&;phpdocumentor-reflection-docblock/DocBlock/Tags/Version.php Y1Y d85phpdocumentor-reflection-docblock/DocBlockFactory.php$Y1Y$Jl2>phpdocumentor-reflection-docblock/DocBlockFactoryInterface.php!Y1Y!}#phpdocumentor-type-resolver/LICENSE8Y1Y8ʶ-phpdocumentor-type-resolver/FqsenResolver.phpY1Y]Y$phpdocumentor-type-resolver/Type.phpY1Y[L,phpdocumentor-type-resolver/TypeResolver.php"Y1Y"W.,phpdocumentor-type-resolver/Types/Array_.phpNY1YN]ɤv-phpdocumentor-type-resolver/Types/Boolean.phpY1Yf/phpdocumentor-type-resolver/Types/Callable_.phpY1Y4ɿ.phpdocumentor-type-resolver/Types/Compound.php Y1Y kd4b-phpdocumentor-type-resolver/Types/Context.php` Y1Y` `-4phpdocumentor-type-resolver/Types/ContextFactory.phpY1Y;,phpdocumentor-type-resolver/Types/Float_.phpY1Yw,-phpdocumentor-type-resolver/Types/Integer.phpY1Y"s+phpdocumentor-type-resolver/Types/Mixed.phpY1YZ+phpdocumentor-type-resolver/Types/Null_.phpY1Y@%-phpdocumentor-type-resolver/Types/Object_.phpkY1Yk.phpdocumentor-type-resolver/Types/Resource.phpY1Y/,phpdocumentor-type-resolver/Types/Scalar.phpY1YU+phpdocumentor-type-resolver/Types/Self_.phpY1Y9'-phpdocumentor-type-resolver/Types/Static_.phpUY1YUޟ -phpdocumentor-type-resolver/Types/String_.phpY1Y*phpdocumentor-type-resolver/Types/This.phpY1Yh²+phpdocumentor-type-resolver/Types/Void_.phpWY1YWֶphpspec-prophecy/LICENSE}Y1Y}6&phpspec-prophecy/Prophecy/Argument.phpY1YAT8phpspec-prophecy/Prophecy/Argument/ArgumentsWildcard.php4 Y1Y4 A;K2:phpspec-prophecy/Prophecy/Argument/Token/AnyValueToken.phpY1YFh;phpspec-prophecy/Prophecy/Argument/Token/AnyValuesToken.phpY1YbN/Bphpspec-prophecy/Prophecy/Argument/Token/ApproximateValueToken.phpY1Y#I<phpspec-prophecy/Prophecy/Argument/Token/ArrayCountToken.phpY1Y4̶<phpspec-prophecy/Prophecy/Argument/Token/ArrayEntryToken.phpY1YJ:Aphpspec-prophecy/Prophecy/Argument/Token/ArrayEveryEntryToken.phpY1Ypb:phpspec-prophecy/Prophecy/Argument/Token/CallbackToken.php,Y1Y,cR̶<phpspec-prophecy/Prophecy/Argument/Token/ExactValueToken.php Y1Y 3@phpspec-prophecy/Prophecy/Argument/Token/IdenticalValueToken.phpY1Y<phpspec-prophecy/Prophecy/Argument/Token/LogicalAndToken.phpY1Y Nv<phpspec-prophecy/Prophecy/Argument/Token/LogicalNotToken.phpY1Yr=phpspec-prophecy/Prophecy/Argument/Token/ObjectStateToken.php9 Y1Y9 E.@phpspec-prophecy/Prophecy/Argument/Token/StringContainsToken.phpY1Y>;phpspec-prophecy/Prophecy/Argument/Token/TokenInterface.phpY1Yٰ6phpspec-prophecy/Prophecy/Argument/Token/TypeToken.phpY1Yn\'phpspec-prophecy/Prophecy/Call/Call.php Y1Y {:%-phpspec-prophecy/Prophecy/Call/CallCenter.php Y1Y nJhJ:phpspec-prophecy/Prophecy/Comparator/ClosureComparator.phpKY1YK)RQ0phpspec-prophecy/Prophecy/Comparator/Factory.phpY1Yֈi;phpspec-prophecy/Prophecy/Comparator/ProphecyComparator.phpsY1YshǶ3phpspec-prophecy/Prophecy/Doubler/CachedDoubler.phpY1ẎgDphpspec-prophecy/Prophecy/Doubler/ClassPatch/ClassPatchInterface.phplY1Yl)5:Hphpspec-prophecy/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.phpY1Y:0`Cphpspec-prophecy/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.phpY1Yx^=phpspec-prophecy/Prophecy/Doubler/ClassPatch/KeywordPatch.php Y1Y /@ȶ?phpspec-prophecy/Prophecy/Doubler/ClassPatch/MagicCallPatch.phpm Y1Ym 3.ŶEphpspec-prophecy/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php Y1Y k2HPphpspec-prophecy/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.phppY1YpxAphpspec-prophecy/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.phpQ Y1YQ [Aphpspec-prophecy/Prophecy/Doubler/ClassPatch/TraversablePatch.php Y1Y jN5phpspec-prophecy/Prophecy/Doubler/DoubleInterface.phpY1Y8dj-phpspec-prophecy/Prophecy/Doubler/Doubler.phpY1Y8]^Bphpspec-prophecy/Prophecy/Doubler/Generator/ClassCodeGenerator.php Y1Y hLa^<phpspec-prophecy/Prophecy/Doubler/Generator/ClassCreator.phpY1Y?Br;phpspec-prophecy/Prophecy/Doubler/Generator/ClassMirror.php(Y1Y( )Aphpspec-prophecy/Prophecy/Doubler/Generator/Node/ArgumentNode.phpY1Y|>phpspec-prophecy/Prophecy/Doubler/Generator/Node/ClassNode.phpIY1YI)Uݶ?phpspec-prophecy/Prophecy/Doubler/Generator/Node/MethodNode.php;Y1Y;+Cphpspec-prophecy/Prophecy/Doubler/Generator/ReflectionInterface.phpY1Y0phpspec-prophecy/Prophecy/Doubler/LazyDouble.phpF Y1YF l3phpspec-prophecy/Prophecy/Doubler/NameGenerator.phpY1Y7Dphpspec-prophecy/Prophecy/Exception/Call/UnexpectedCallException.phpY1YEphpspec-prophecy/Prophecy/Exception/Doubler/ClassCreatorException.phpY1Y77/%Dphpspec-prophecy/Prophecy/Exception/Doubler/ClassMirrorException.phpY1Yۉ?Fphpspec-prophecy/Prophecy/Exception/Doubler/ClassNotFoundException.phpY1Yh+?phpspec-prophecy/Prophecy/Exception/Doubler/DoubleException.phpY1YzF@phpspec-prophecy/Prophecy/Exception/Doubler/DoublerException.phpY1YZ^Jphpspec-prophecy/Prophecy/Exception/Doubler/InterfaceNotFoundException.phpY1YLphpspec-prophecy/Prophecy/Exception/Doubler/MethodNotExtendableException.phpDY1YDpGphpspec-prophecy/Prophecy/Exception/Doubler/MethodNotFoundException.phpY1YihJphpspec-prophecy/Prophecy/Exception/Doubler/ReturnByReferenceException.phpY1Y1phpspec-prophecy/Prophecy/Exception/Exception.php+Y1Y+@phpspec-prophecy/Prophecy/Exception/InvalidArgumentException.phpY1YgEphpspec-prophecy/Prophecy/Exception/Prediction/AggregateException.phpY1Y?D<ζLphpspec-prophecy/Prophecy/Exception/Prediction/FailedPredictionException.phpJY1YJ~DCphpspec-prophecy/Prophecy/Exception/Prediction/NoCallsException.phpY1Yl<Fphpspec-prophecy/Prophecy/Exception/Prediction/PredictionException.phpY1Y2TѶPphpspec-prophecy/Prophecy/Exception/Prediction/UnexpectedCallsCountException.phpY1Y ƶKphpspec-prophecy/Prophecy/Exception/Prediction/UnexpectedCallsException.php,Y1Y,aHphpspec-prophecy/Prophecy/Exception/Prophecy/MethodProphecyException.php)Y1Y)F4Hphpspec-prophecy/Prophecy/Exception/Prophecy/ObjectProphecyException.phpY1Y:FBphpspec-prophecy/Prophecy/Exception/Prophecy/ProphecyException.phpY1Y$϶Iphpspec-prophecy/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.phpxY1YxrЬ=phpspec-prophecy/Prophecy/PhpDocumentor/ClassTagRetriever.phpDY1YDd9϶Cphpspec-prophecy/Prophecy/PhpDocumentor/LegacyClassTagRetriever.phpoY1You9Gphpspec-prophecy/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.phpY1Y ;7phpspec-prophecy/Prophecy/Prediction/CallPrediction.phpQ Y1YQ I<phpspec-prophecy/Prophecy/Prediction/CallTimesPrediction.php Y1Y X;phpspec-prophecy/Prophecy/Prediction/CallbackPrediction.phpY1YVb{ζ:phpspec-prophecy/Prophecy/Prediction/NoCallsPrediction.phpY1YL9%<phpspec-prophecy/Prophecy/Prediction/PredictionInterface.phpY1Y`IE5phpspec-prophecy/Prophecy/Promise/CallbackPromise.phpY1Y[6phpspec-prophecy/Prophecy/Promise/PromiseInterface.phpKY1YK;phpspec-prophecy/Prophecy/Promise/ReturnArgumentPromise.php'Y1Y'(3phpspec-prophecy/Prophecy/Promise/ReturnPromise.phpY1Y؏2phpspec-prophecy/Prophecy/Promise/ThrowPromise.php] Y1Y] ~5phpspec-prophecy/Prophecy/Prophecy/MethodProphecy.phpZ/Y1YZ/l_r5phpspec-prophecy/Prophecy/Prophecy/ObjectProphecy.phpY1Y5D8phpspec-prophecy/Prophecy/Prophecy/ProphecyInterface.php,Y1Y,W?phpspec-prophecy/Prophecy/Prophecy/ProphecySubjectInterface.phpY1Yi/phpspec-prophecy/Prophecy/Prophecy/Revealer.phpY1Yjɸ8phpspec-prophecy/Prophecy/Prophecy/RevealerInterface.phpHY1YHgZ%phpspec-prophecy/Prophecy/Prophet.phpY1Yvq-phpspec-prophecy/Prophecy/Util/ExportUtil.phpPY1YP2qƶ-phpspec-prophecy/Prophecy/Util/StringUtil.php Y1Y %myclabs-deep-copy/LICENSE5Y1Y5ʭ˄'myclabs-deep-copy/DeepCopy/DeepCopy.phpY1Y\U7myclabs-deep-copy/DeepCopy/Exception/CloneException.php`Y1Y`.ڝGmyclabs-deep-copy/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.phpY1YxkжLmyclabs-deep-copy/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.phpeY1Ye+ֶBmyclabs-deep-copy/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.phpyY1Yy-,myclabs-deep-copy/DeepCopy/Filter/Filter.phpSY1YSksk0myclabs-deep-copy/DeepCopy/Filter/KeepFilter.phpY1Yߝ3myclabs-deep-copy/DeepCopy/Filter/ReplaceFilter.phpY1Y̎|3myclabs-deep-copy/DeepCopy/Filter/SetNullFilter.phpY1YM䧶Dmyclabs-deep-copy/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.phpXY1YXbO.myclabs-deep-copy/DeepCopy/Matcher/Matcher.phpY1Y((6myclabs-deep-copy/DeepCopy/Matcher/PropertyMatcher.phpY1Yuօ:myclabs-deep-copy/DeepCopy/Matcher/PropertyNameMatcher.phpY1Yy㻞:myclabs-deep-copy/DeepCopy/Matcher/PropertyTypeMatcher.phpzY1Yz=#޶:myclabs-deep-copy/DeepCopy/Reflection/ReflectionHelper.php9Y1Y9jZ7myclabs-deep-copy/DeepCopy/TypeFilter/ReplaceFilter.phpY1Y;If;myclabs-deep-copy/DeepCopy/TypeFilter/ShallowCopyFilter.phpY1YتAmyclabs-deep-copy/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.phpY1Y)4myclabs-deep-copy/DeepCopy/TypeFilter/TypeFilter.phpY1Y946myclabs-deep-copy/DeepCopy/TypeMatcher/TypeMatcher.phpY1Yʨwebmozart-assert/LICENSE<Y1Y<t}webmozart-assert/Assert.php~Y1Y~O,phar-io-manifest/LICENSEQY1YQ$W0+phar-io-manifest/ManifestDocumentMapper.phpY1Y@#phar-io-manifest/ManifestLoader.phpY1YB8 'phar-io-manifest/ManifestSerializer.phpY1Ytphar-io-manifest/values/BundledComponentCollectionIterator.phpY1Y}0phar-io-manifest/values/CopyrightInformation.phpxY1Yxtb!phar-io-manifest/values/Email.phpY1YcM%phar-io-manifest/values/Extension.phpY1Y0#phar-io-manifest/values/Library.phpY1YFz#phar-io-manifest/values/License.phpY1Y*׶$phar-io-manifest/values/Manifest.php Y1Y D3phar-io-manifest/values/PhpExtensionRequirement.phpY1Y<Ͷ1phar-io-manifest/values/PhpVersionRequirement.phpY1Y,'phar-io-manifest/values/Requirement.phppY1Yp6VA1phar-io-manifest/values/RequirementCollection.phpY1Y)9phar-io-manifest/values/RequirementCollectionIterator.phpY1Yn phar-io-manifest/values/Type.phpY1Ypnphar-io-manifest/values/Url.phpY1Yf]&phar-io-manifest/xml/AuthorElement.php7Y1Y70phar-io-manifest/xml/AuthorElementCollection.php Y1Y Byζ'phar-io-manifest/xml/BundlesElement.php&Y1Y&Oϯ)phar-io-manifest/xml/ComponentElement.php>Y1Y> +ȶ3phar-io-manifest/xml/ComponentElementCollection.phpY1Y#Iζ(phar-io-manifest/xml/ContainsElement.php'Y1Y'Z)phar-io-manifest/xml/CopyrightElement.phpY1Y*phar-io-manifest/xml/ElementCollection.phpY1Y'*#phar-io-manifest/xml/ExtElement.phpY1Yh/j3-phar-io-manifest/xml/ExtElementCollection.phpY1Y)phar-io-manifest/xml/ExtensionElement.phpBY1YB'phar-io-manifest/xml/LicenseElement.php4Y1Y4 )phar-io-manifest/xml/ManifestDocument.php Y1Y 19phar-io-manifest/xml/ManifestDocumentLoadingException.phpY1Y>(phar-io-manifest/xml/ManifestElement.php Y1Y :6X#phar-io-manifest/xml/PhpElement.phpY1Yp{:(phar-io-manifest/xml/RequiresElement.phpY1Y(ͷphar-io-version/LICENSE1Y1Y1>:-phar-io-version/AbstractVersionConstraint.phpY1YWhg-phar-io-version/AndVersionConstraintGroup.php7Y1Y7p(phar-io-version/AnyVersionConstraint.phpY1Y*phar-io-version/ExactVersionConstraint.phpZY1YZ phar-io-version/Exception.phplY1Yl؈9phar-io-version/GreaterThanOrEqualToVersionConstraint.php Y1Y Rf+phar-io-version/InvalidVersionException.phpzY1Yzϡ>C,phar-io-version/OrVersionConstraintGroup.php5Y1Y5ɑ$phar-io-version/PreReleaseSuffix.php^Y1Y^!2:phar-io-version/SpecificMajorAndMinorVersionConstraint.phpaY1Ya2phar-io-version/SpecificMajorVersionConstraint.phpxY1Yx69phar-io-version/UnsupportedVersionConstraintException.phpY1Y`rphar-io-version/Version.phpY1Y%phar-io-version/VersionConstraint.php6Y1Y6wU+phar-io-version/VersionConstraintParser.phpY Y1YY +l*phar-io-version/VersionConstraintValue.php Y1Y -t!phar-io-version/VersionNumber.php"Y1Y"v޶theseer-tokenizer/LICENSEY1YR (theseer-tokenizer/Exception.phpgY1YgլX"theseer-tokenizer/NamespaceUri.phpwY1Yw 'U+theseer-tokenizer/NamespaceUriException.phprY1Yr+Atheseer-tokenizer/Token.phpqY1Yq?%theseer-tokenizer/TokenCollection.phpr Y1Yr g9.theseer-tokenizer/TokenCollectionException.phpuY1YuBKtheseer-tokenizer/Tokenizer.phpY1Y #theseer-tokenizer/XMLSerializer.php Y1Y E!{Aphpunit/Exception.phpEY1YE?:q_phpunit/Framework/Assert.phpOY1YO!&phpunit/Framework/Assert/Functions.php$Y1Y$%B*phpunit/Framework/AssertionFailedError.php2Y1Y2&phpunit/Framework/BaseTestListener.phpY1Yg+phpunit/Framework/CodeCoverageException.php5Y1Y5|c,phpunit/Framework/Constraint/ArrayHasKey.phpY1Y,phpunit/Framework/Constraint/ArraySubset.php Y1Y 䫶*phpunit/Framework/Constraint/Attribute.phpF Y1YF Y{ )phpunit/Framework/Constraint/Callback.phpKY1YKt42phpunit/Framework/Constraint/ClassHasAttribute.phpY1Y8phpunit/Framework/Constraint/ClassHasStaticAttribute.php Y1Y p퉶*phpunit/Framework/Constraint/Composite.phpaY1Ya7¶+phpunit/Framework/Constraint/Constraint.phpY1Y⬶&phpunit/Framework/Constraint/Count.php Y1Y r0phpunit/Framework/Constraint/DirectoryExists.phpY1YFW9p*phpunit/Framework/Constraint/Exception.phpZY1YZ'.phpunit/Framework/Constraint/ExceptionCode.php!Y1Y!R4#1phpunit/Framework/Constraint/ExceptionMessage.php Y1Y }2NBphpunit/Framework/Constraint/ExceptionMessageRegularExpression.phpY1Y[A^+phpunit/Framework/Constraint/FileExists.php}Y1Y},ն,phpunit/Framework/Constraint/GreaterThan.phpY1YH+phpunit/Framework/Constraint/IsAnything.phpY1YJH̶(phpunit/Framework/Constraint/IsEmpty.phpY1YJr(phpunit/Framework/Constraint/IsEqual.phpY1Y$(phpunit/Framework/Constraint/IsFalse.php=Y1Y=JP)phpunit/Framework/Constraint/IsFinite.phpBY1YBE,phpunit/Framework/Constraint/IsIdentical.phpY1YMT+phpunit/Framework/Constraint/IsInfinite.phpJY1YJpD-phpunit/Framework/Constraint/IsInstanceOf.phpY1Yk>'phpunit/Framework/Constraint/IsJson.phpY1YS &phpunit/Framework/Constraint/IsNan.php6Y1Y6 'phpunit/Framework/Constraint/IsNull.php9Y1Y9 S+phpunit/Framework/Constraint/IsReadable.phpY1YAY'phpunit/Framework/Constraint/IsTrue.php9Y1Y9Q[^'phpunit/Framework/Constraint/IsType.phpD Y1YD ѽM+phpunit/Framework/Constraint/IsWritable.phpY1Y+d,phpunit/Framework/Constraint/JsonMatches.phpY1YI)@phpunit/Framework/Constraint/JsonMatchesErrorMessageProvider.phpY1Y%˩`)phpunit/Framework/Constraint/LessThan.phpY1Y#o+phpunit/Framework/Constraint/LogicalAnd.php Y1Y j+phpunit/Framework/Constraint/LogicalNot.phpY1Y b*phpunit/Framework/Constraint/LogicalOr.php Y1Y eR8V+phpunit/Framework/Constraint/LogicalXor.php2 Y1Y2 /ȶ3phpunit/Framework/Constraint/ObjectHasAttribute.phpqY1Yqsk=+2phpunit/Framework/Constraint/RegularExpression.phpY1Y Ƕ)phpunit/Framework/Constraint/SameSize.php&Y1Y&f/phpunit/Framework/Constraint/StringContains.phpY1Y/phpunit/Framework/Constraint/StringEndsWith.phpY1Y{;Q?phpunit/Framework/Constraint/StringMatchesFormatDescription.phpN Y1YN |1phpunit/Framework/Constraint/StringStartsWith.phpY1YF{4phpunit/Framework/Constraint/TraversableContains.php Y1Y x{8phpunit/Framework/Constraint/TraversableContainsOnly.phpJ Y1YJ hf/5phpunit/Framework/CoveredCodeNotExecutedException.phpY1Y} P+phpunit/Framework/DataProviderTestSuite.phpEY1YE;p&phpunit/Framework/Error/Deprecated.phpY1YcЀ!phpunit/Framework/Error/Error.phpY1YYh"phpunit/Framework/Error/Notice.phpY1Y##phpunit/Framework/Error/Warning.phpY1YǑphpunit/Framework/Exception.phpY1Y#K&phpunit/Framework/ExceptionWrapper.phpGY1YG0*0phpunit/Framework/ExpectationFailedException.phpY1Y9b$phpunit/Framework/IncompleteTest.phpY1Y,ջݶ(phpunit/Framework/IncompleteTestCase.phpY1YP7)phpunit/Framework/IncompleteTestError.phpY1Yۮ2phpunit/Framework/InvalidCoversTargetException.phpGY1YGiZ6phpunit/Framework/MissingCoversAnnotationException.phpY1Y.@k!phpunit/Framework/OutputError.phpY1YH28phpunit/Framework/RiskyTest.phpY1Y;|$phpunit/Framework/RiskyTestError.phpY1Y>$phpunit/Framework/SelfDescribing.phpY1Y۶!phpunit/Framework/SkippedTest.phpeY1YeVl%phpunit/Framework/SkippedTestCase.phpY1Y4&phpunit/Framework/SkippedTestError.phpY1YMI+phpunit/Framework/SkippedTestSuiteError.phpY1Yo0ٶ$phpunit/Framework/SyntheticError.phpY1Y/8phpunit/Framework/Test.php@Y1Y@~DGphpunit/Framework/TestCase.phpY1YZȶ!phpunit/Framework/TestFailure.phpQY1YQǬ"phpunit/Framework/TestListener.phpHY1YH5e8 phpunit/Framework/TestResult.php {Y1Y {rR׶phpunit/Framework/TestSuite.phplY1Yl϶'phpunit/Framework/TestSuiteIterator.phpY1Yt_5phpunit/Framework/UnintentionallyCoveredCodeError.phpY1Y7phpunit/Framework/Warning.php&Y1Y&Cga%phpunit/Framework/WarningTestCase.phpY1Yأ!phpunit/Runner/BaseTestRunner.phpuY1Yu~gphpunit/Runner/Exception.phpKY1YK@5v4phpunit/Runner/Filter/ExcludeGroupFilterIterator.phpY1YIQ!phpunit/Runner/Filter/Factory.phpY1YNj-phpunit/Runner/Filter/GroupFilterIterator.phpY1Ya紶4phpunit/Runner/Filter/IncludeGroupFilterIterator.phpY1Yϋ,phpunit/Runner/Filter/NameFilterIterator.php Y1Y &sphpunit/Runner/PhptTestCase.php,Y1Y,>=*phpunit/Runner/StandardTestSuiteLoader.php Y1Y yxX"phpunit/Runner/TestSuiteLoader.phpY1Y:ȶphpunit/Runner/Version.phpPY1YPBj6phpunit/TextUI/Command.phpY1Y`} phpunit/TextUI/ResultPrinter.phpCY1YC4)phpunit/TextUI/TestRunner.phpeY1YeYphpunit/Util/Blacklist.php Y1Y p[gƶphpunit/Util/Configuration.php~Y1Y~Ro'phpunit/Util/ConfigurationGenerator.php"Y1Y"n(5phpunit/Util/ErrorHandler.phpi Y1Yi yK׶phpunit/Util/Fileloader.phpTY1YT蒶phpunit/Util/Filesystem.php-Y1Y-=phpunit/Util/Filter.phpn Y1Yn )phpunit/Util/Getopt.phpY1YDphpunit/Util/GlobalState.phpY1YQ&phpunit/Util/InvalidArgumentHelper.php.Y1Y.۟phpunit/Util/Log/JUnit.php.Y1Y.]aphpunit/Util/Log/TeamCity.php*Y1Y*[C'phpunit/Util/PHP/AbstractPhpProcess.phph)Y1Yh)%&phpunit/Util/PHP/DefaultPhpProcess.phpKY1YK[{?l0phpunit/Util/PHP/Template/TestCaseClass.tpl.dist Y1Y 4}1phpunit/Util/PHP/Template/TestCaseMethod.tpl.dist Y1Y 373&phpunit/Util/PHP/WindowsPhpProcess.phpY1Yphpunit/Util/PHP/eval-stdin.phpY1Y^߶phpunit/Util/Printer.phpA Y1YA _Y2"phpunit/Util/RegularExpression.phpxY1Yx03-phpunit/Util/Test.php8Y1Y8ƶ*phpunit/Util/TestDox/HtmlResultPrinter.php Y1Y M#i'phpunit/Util/TestDox/NamePrettifier.phpF Y1YF &phpunit/Util/TestDox/ResultPrinter.phpT#Y1YT#Z/L*phpunit/Util/TestDox/TextResultPrinter.php;Y1Y;K9)phpunit/Util/TestDox/XmlResultPrinter.phpcY1YcSƶphpunit/Util/Type.phpUY1YU>;phpunit/Util/Xml.php!Y1Y!+^Tphpunit/phpunit: 6.2.1 doctrine/instantiator: 1.0.5 myclabs/deep-copy: 1.6.1 phar-io/manifest: 1.0.1 phar-io/version: 1.0.1 phpdocumentor/reflection-common: 1.0 phpdocumentor/reflection-docblock: 3.1.1 phpdocumentor/type-resolver: 0.2.1 phpspec/prophecy: v1.7.0 phpunit/php-code-coverage: 5.2.1 phpunit/php-file-iterator: 1.4.2 phpunit/php-invoker: 1.1.4 phpunit/php-text-template: 1.2.1 phpunit/php-timer: 1.0.9 phpunit/php-token-stream: 1.4.11 phpunit/phpunit-mock-objects: 4.0.1 sebastian/code-unit-reverse-lookup: 1.0.1 sebastian/comparator: 2.0.0 sebastian/diff: 1.4.3 sebastian/environment: 3.0.3 sebastian/exporter: 3.1.0 sebastian/global-state: 2.0.0 sebastian/object-enumerator: 3.0.2 sebastian/object-reflector: 1.1.1 sebastian/recursion-context: 3.0.0 sebastian/resource-operations: 1.0.0 sebastian/version: 2.0.1 theseer/tokenizer: 1.1.0 webmozart/assert: 1.2.0 -----BEGIN CERTIFICATE----- MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290 MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9 uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0 WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0 Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= -----END CERTIFICATE----- PHP_CodeCoverage Copyright (c) 2009-2015, Sebastian Bergmann . All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Sebastian Bergmann nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage; use PHPUnit\Framework\TestCase; use PHPUnit\Runner\PhptTestCase; use SebastianBergmann\CodeCoverage\Driver\Driver; use SebastianBergmann\CodeCoverage\Driver\Xdebug; use SebastianBergmann\CodeCoverage\Driver\HHVM; use SebastianBergmann\CodeCoverage\Driver\PHPDBG; use SebastianBergmann\CodeCoverage\Node\Builder; use SebastianBergmann\CodeCoverage\Node\Directory; use SebastianBergmann\CodeUnitReverseLookup\Wizard; use SebastianBergmann\Environment\Runtime; /** * Provides collection functionality for PHP code coverage information. */ class CodeCoverage { /** * @var Driver */ private $driver; /** * @var Filter */ private $filter; /** * @var Wizard */ private $wizard; /** * @var bool */ private $cacheTokens = false; /** * @var bool */ private $checkForUnintentionallyCoveredCode = false; /** * @var bool */ private $forceCoversAnnotation = false; /** * @var bool */ private $checkForUnexecutedCoveredCode = false; /** * @var bool */ private $checkForMissingCoversAnnotation = false; /** * @var bool */ private $addUncoveredFilesFromWhitelist = true; /** * @var bool */ private $processUncoveredFilesFromWhitelist = false; /** * @var bool */ private $ignoreDeprecatedCode = false; /** * @var mixed */ private $currentId; /** * Code coverage data. * * @var array */ private $data = []; /** * @var array */ private $ignoredLines = []; /** * @var bool */ private $disableIgnoredLines = false; /** * Test data. * * @var array */ private $tests = []; /** * @var string[] */ private $unintentionallyCoveredSubclassesWhitelist = []; /** * Determine if the data has been initialized or not * * @var bool */ private $isInitialized = false; /** * Determine whether we need to check for dead and unused code on each test * * @var bool */ private $shouldCheckForDeadAndUnused = true; /** * @var Directory */ private $report; /** * Constructor. * * @param Driver $driver * @param Filter $filter * * @throws RuntimeException */ public function __construct(Driver $driver = null, Filter $filter = null) { if ($driver === null) { $driver = $this->selectDriver(); } if ($filter === null) { $filter = new Filter; } $this->driver = $driver; $this->filter = $filter; $this->wizard = new Wizard; } /** * Returns the code coverage information as a graph of node objects. * * @return Directory */ public function getReport() { if ($this->report === null) { $builder = new Builder; $this->report = $builder->build($this); } return $this->report; } /** * Clears collected code coverage data. */ public function clear() { $this->isInitialized = false; $this->currentId = null; $this->data = []; $this->tests = []; $this->report = null; } /** * Returns the filter object used. * * @return Filter */ public function filter() { return $this->filter; } /** * Returns the collected code coverage data. * Set $raw = true to bypass all filters. * * @param bool $raw * * @return array */ public function getData($raw = false) { if (!$raw && $this->addUncoveredFilesFromWhitelist) { $this->addUncoveredFilesFromWhitelist(); } return $this->data; } /** * Sets the coverage data. * * @param array $data */ public function setData(array $data) { $this->data = $data; $this->report = null; } /** * Returns the test data. * * @return array */ public function getTests() { return $this->tests; } /** * Sets the test data. * * @param array $tests */ public function setTests(array $tests) { $this->tests = $tests; } /** * Start collection of code coverage information. * * @param mixed $id * @param bool $clear * * @throws InvalidArgumentException */ public function start($id, $clear = false) { if (!is_bool($clear)) { throw InvalidArgumentException::create( 1, 'boolean' ); } if ($clear) { $this->clear(); } if ($this->isInitialized === false) { $this->initializeData(); } $this->currentId = $id; $this->driver->start($this->shouldCheckForDeadAndUnused); } /** * Stop collection of code coverage information. * * @param bool $append * @param mixed $linesToBeCovered * @param array $linesToBeUsed * * @return array * * @throws InvalidArgumentException */ public function stop($append = true, $linesToBeCovered = [], array $linesToBeUsed = []) { if (!is_bool($append)) { throw InvalidArgumentException::create( 1, 'boolean' ); } if (!is_array($linesToBeCovered) && $linesToBeCovered !== false) { throw InvalidArgumentException::create( 2, 'array or false' ); } $data = $this->driver->stop(); $this->append($data, null, $append, $linesToBeCovered, $linesToBeUsed); $this->currentId = null; return $data; } /** * Appends code coverage data. * * @param array $data * @param mixed $id * @param bool $append * @param mixed $linesToBeCovered * @param array $linesToBeUsed * * @throws RuntimeException */ public function append(array $data, $id = null, $append = true, $linesToBeCovered = [], array $linesToBeUsed = []) { if ($id === null) { $id = $this->currentId; } if ($id === null) { throw new RuntimeException; } $this->applyListsFilter($data); $this->applyIgnoredLinesFilter($data); $this->initializeFilesThatAreSeenTheFirstTime($data); if (!$append) { return; } if ($id != 'UNCOVERED_FILES_FROM_WHITELIST') { $this->applyCoversAnnotationFilter( $data, $linesToBeCovered, $linesToBeUsed ); } if (empty($data)) { return; } $size = 'unknown'; $status = null; if ($id instanceof TestCase) { $_size = $id->getSize(); if ($_size == \PHPUnit\Util\Test::SMALL) { $size = 'small'; } elseif ($_size == \PHPUnit\Util\Test::MEDIUM) { $size = 'medium'; } elseif ($_size == \PHPUnit\Util\Test::LARGE) { $size = 'large'; } $status = $id->getStatus(); $id = get_class($id) . '::' . $id->getName(); } elseif ($id instanceof PhptTestCase) { $size = 'large'; $id = $id->getName(); } $this->tests[$id] = ['size' => $size, 'status' => $status]; foreach ($data as $file => $lines) { if (!$this->filter->isFile($file)) { continue; } foreach ($lines as $k => $v) { if ($v == Driver::LINE_EXECUTED) { if (empty($this->data[$file][$k]) || !in_array($id, $this->data[$file][$k])) { $this->data[$file][$k][] = $id; } } } } $this->report = null; } /** * Merges the data from another instance. * * @param CodeCoverage $that */ public function merge(CodeCoverage $that) { $this->filter->setWhitelistedFiles( array_merge($this->filter->getWhitelistedFiles(), $that->filter()->getWhitelistedFiles()) ); foreach ($that->data as $file => $lines) { if (!isset($this->data[$file])) { if (!$this->filter->isFiltered($file)) { $this->data[$file] = $lines; } continue; } foreach ($lines as $line => $data) { if ($data !== null) { if (!isset($this->data[$file][$line])) { $this->data[$file][$line] = $data; } else { $this->data[$file][$line] = array_unique( array_merge($this->data[$file][$line], $data) ); } } } } $this->tests = array_merge($this->tests, $that->getTests()); $this->report = null; } /** * @param bool $flag * * @throws InvalidArgumentException */ public function setCacheTokens($flag) { if (!is_bool($flag)) { throw InvalidArgumentException::create( 1, 'boolean' ); } $this->cacheTokens = $flag; } /** * @return bool */ public function getCacheTokens() { return $this->cacheTokens; } /** * @param bool $flag * * @throws InvalidArgumentException */ public function setCheckForUnintentionallyCoveredCode($flag) { if (!is_bool($flag)) { throw InvalidArgumentException::create( 1, 'boolean' ); } $this->checkForUnintentionallyCoveredCode = $flag; } /** * @param bool $flag * * @throws InvalidArgumentException */ public function setForceCoversAnnotation($flag) { if (!is_bool($flag)) { throw InvalidArgumentException::create( 1, 'boolean' ); } $this->forceCoversAnnotation = $flag; } /** * @param bool $flag * * @throws InvalidArgumentException */ public function setCheckForMissingCoversAnnotation($flag) { if (!is_bool($flag)) { throw InvalidArgumentException::create( 1, 'boolean' ); } $this->checkForMissingCoversAnnotation = $flag; } /** * @param bool $flag * * @throws InvalidArgumentException */ public function setCheckForUnexecutedCoveredCode($flag) { if (!is_bool($flag)) { throw InvalidArgumentException::create( 1, 'boolean' ); } $this->checkForUnexecutedCoveredCode = $flag; } /** * @deprecated * * @param bool $flag * * @throws InvalidArgumentException */ public function setMapTestClassNameToCoveredClassName($flag) { } /** * @param bool $flag * * @throws InvalidArgumentException */ public function setAddUncoveredFilesFromWhitelist($flag) { if (!is_bool($flag)) { throw InvalidArgumentException::create( 1, 'boolean' ); } $this->addUncoveredFilesFromWhitelist = $flag; } /** * @param bool $flag * * @throws InvalidArgumentException */ public function setProcessUncoveredFilesFromWhitelist($flag) { if (!is_bool($flag)) { throw InvalidArgumentException::create( 1, 'boolean' ); } $this->processUncoveredFilesFromWhitelist = $flag; } /** * @param bool $flag * * @throws InvalidArgumentException */ public function setDisableIgnoredLines($flag) { if (!is_bool($flag)) { throw InvalidArgumentException::create( 1, 'boolean' ); } $this->disableIgnoredLines = $flag; } /** * @param bool $flag * * @throws InvalidArgumentException */ public function setIgnoreDeprecatedCode($flag) { if (!is_bool($flag)) { throw InvalidArgumentException::create( 1, 'boolean' ); } $this->ignoreDeprecatedCode = $flag; } /** * @param array $whitelist */ public function setUnintentionallyCoveredSubclassesWhitelist(array $whitelist) { $this->unintentionallyCoveredSubclassesWhitelist = $whitelist; } /** * Applies the @covers annotation filtering. * * @param array $data * @param mixed $linesToBeCovered * @param array $linesToBeUsed * * @throws MissingCoversAnnotationException * @throws UnintentionallyCoveredCodeException */ private function applyCoversAnnotationFilter(array &$data, $linesToBeCovered, array $linesToBeUsed) { if ($linesToBeCovered === false || ($this->forceCoversAnnotation && empty($linesToBeCovered))) { if ($this->checkForMissingCoversAnnotation) { throw new MissingCoversAnnotationException; } $data = []; return; } if (empty($linesToBeCovered)) { return; } if ($this->checkForUnintentionallyCoveredCode && (!$this->currentId instanceof TestCase || (!$this->currentId->isMedium() && !$this->currentId->isLarge()))) { $this->performUnintentionallyCoveredCodeCheck( $data, $linesToBeCovered, $linesToBeUsed ); } if ($this->checkForUnexecutedCoveredCode) { $this->performUnexecutedCoveredCodeCheck($data, $linesToBeCovered, $linesToBeUsed); } $data = array_intersect_key($data, $linesToBeCovered); foreach (array_keys($data) as $filename) { $_linesToBeCovered = array_flip($linesToBeCovered[$filename]); $data[$filename] = array_intersect_key( $data[$filename], $_linesToBeCovered ); } } /** * Applies the whitelist filtering. * * @param array $data */ private function applyListsFilter(array &$data) { foreach (array_keys($data) as $filename) { if ($this->filter->isFiltered($filename)) { unset($data[$filename]); } } } /** * Applies the "ignored lines" filtering. * * @param array $data */ private function applyIgnoredLinesFilter(array &$data) { foreach (array_keys($data) as $filename) { if (!$this->filter->isFile($filename)) { continue; } foreach ($this->getLinesToBeIgnored($filename) as $line) { unset($data[$filename][$line]); } } } /** * @param array $data */ private function initializeFilesThatAreSeenTheFirstTime(array $data) { foreach ($data as $file => $lines) { if ($this->filter->isFile($file) && !isset($this->data[$file])) { $this->data[$file] = []; foreach ($lines as $k => $v) { $this->data[$file][$k] = $v == -2 ? null : []; } } } } /** * Processes whitelisted files that are not covered. */ private function addUncoveredFilesFromWhitelist() { $data = []; $uncoveredFiles = array_diff( $this->filter->getWhitelist(), array_keys($this->data) ); foreach ($uncoveredFiles as $uncoveredFile) { if (!file_exists($uncoveredFile)) { continue; } if (!$this->processUncoveredFilesFromWhitelist) { $data[$uncoveredFile] = []; $lines = count(file($uncoveredFile)); for ($i = 1; $i <= $lines; $i++) { $data[$uncoveredFile][$i] = Driver::LINE_NOT_EXECUTED; } } } $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST'); } /** * Returns the lines of a source file that should be ignored. * * @param string $filename * * @return array * * @throws InvalidArgumentException */ private function getLinesToBeIgnored($filename) { if (!is_string($filename)) { throw InvalidArgumentException::create( 1, 'string' ); } if (!isset($this->ignoredLines[$filename])) { $this->ignoredLines[$filename] = []; if ($this->disableIgnoredLines) { return $this->ignoredLines[$filename]; } $ignore = false; $stop = false; $lines = file($filename); $numLines = count($lines); foreach ($lines as $index => $line) { if (!trim($line)) { $this->ignoredLines[$filename][] = $index + 1; } } if ($this->cacheTokens) { $tokens = \PHP_Token_Stream_CachingFactory::get($filename); } else { $tokens = new \PHP_Token_Stream($filename); } $classes = array_merge($tokens->getClasses(), $tokens->getTraits()); $tokens = $tokens->tokens(); foreach ($tokens as $token) { switch (get_class($token)) { case \PHP_Token_COMMENT::class: case \PHP_Token_DOC_COMMENT::class: $_token = trim($token); $_line = trim($lines[$token->getLine() - 1]); if ($_token == '// @codeCoverageIgnore' || $_token == '//@codeCoverageIgnore') { $ignore = true; $stop = true; } elseif ($_token == '// @codeCoverageIgnoreStart' || $_token == '//@codeCoverageIgnoreStart') { $ignore = true; } elseif ($_token == '// @codeCoverageIgnoreEnd' || $_token == '//@codeCoverageIgnoreEnd') { $stop = true; } if (!$ignore) { $start = $token->getLine(); $end = $start + substr_count($token, "\n"); // Do not ignore the first line when there is a token // before the comment if (0 !== strpos($_token, $_line)) { $start++; } for ($i = $start; $i < $end; $i++) { $this->ignoredLines[$filename][] = $i; } // A DOC_COMMENT token or a COMMENT token starting with "/*" // does not contain the final \n character in its text if (isset($lines[$i - 1]) && 0 === strpos($_token, '/*') && '*/' === substr(trim($lines[$i - 1]), -2)) { $this->ignoredLines[$filename][] = $i; } } break; case \PHP_Token_INTERFACE::class: case \PHP_Token_TRAIT::class: case \PHP_Token_CLASS::class: case \PHP_Token_FUNCTION::class: /* @var \PHP_Token_Interface $token */ $docblock = $token->getDocblock(); $this->ignoredLines[$filename][] = $token->getLine(); if (strpos($docblock, '@codeCoverageIgnore') || ($this->ignoreDeprecatedCode && strpos($docblock, '@deprecated'))) { $endLine = $token->getEndLine(); for ($i = $token->getLine(); $i <= $endLine; $i++) { $this->ignoredLines[$filename][] = $i; } } elseif ($token instanceof \PHP_Token_INTERFACE || $token instanceof \PHP_Token_TRAIT || $token instanceof \PHP_Token_CLASS) { if (empty($classes[$token->getName()]['methods'])) { for ($i = $token->getLine(); $i <= $token->getEndLine(); $i++) { $this->ignoredLines[$filename][] = $i; } } else { $firstMethod = array_shift( $classes[$token->getName()]['methods'] ); do { $lastMethod = array_pop( $classes[$token->getName()]['methods'] ); } while ($lastMethod !== null && substr($lastMethod['signature'], 0, 18) == 'anonymous function'); if ($lastMethod === null) { $lastMethod = $firstMethod; } for ($i = $token->getLine(); $i < $firstMethod['startLine']; $i++) { $this->ignoredLines[$filename][] = $i; } for ($i = $token->getEndLine(); $i > $lastMethod['endLine']; $i--) { $this->ignoredLines[$filename][] = $i; } } } break; case \PHP_Token_ENUM::class: $this->ignoredLines[$filename][] = $token->getLine(); break; case \PHP_Token_NAMESPACE::class: $this->ignoredLines[$filename][] = $token->getEndLine(); // Intentional fallthrough case \PHP_Token_DECLARE::class: case \PHP_Token_OPEN_TAG::class: case \PHP_Token_CLOSE_TAG::class: case \PHP_Token_USE::class: $this->ignoredLines[$filename][] = $token->getLine(); break; } if ($ignore) { $this->ignoredLines[$filename][] = $token->getLine(); if ($stop) { $ignore = false; $stop = false; } } } $this->ignoredLines[$filename][] = $numLines + 1; $this->ignoredLines[$filename] = array_unique( $this->ignoredLines[$filename] ); sort($this->ignoredLines[$filename]); } return $this->ignoredLines[$filename]; } /** * @param array $data * @param array $linesToBeCovered * @param array $linesToBeUsed * * @throws UnintentionallyCoveredCodeException */ private function performUnintentionallyCoveredCodeCheck(array &$data, array $linesToBeCovered, array $linesToBeUsed) { $allowedLines = $this->getAllowedLines( $linesToBeCovered, $linesToBeUsed ); $unintentionallyCoveredUnits = []; foreach ($data as $file => $_data) { foreach ($_data as $line => $flag) { if ($flag == 1 && !isset($allowedLines[$file][$line])) { $unintentionallyCoveredUnits[] = $this->wizard->lookup($file, $line); } } } $unintentionallyCoveredUnits = $this->processUnintentionallyCoveredUnits($unintentionallyCoveredUnits); if (!empty($unintentionallyCoveredUnits)) { throw new UnintentionallyCoveredCodeException( $unintentionallyCoveredUnits ); } } /** * @param array $data * @param array $linesToBeCovered * @param array $linesToBeUsed * * @throws CoveredCodeNotExecutedException */ private function performUnexecutedCoveredCodeCheck(array &$data, array $linesToBeCovered, array $linesToBeUsed) { $executedCodeUnits = $this->coverageToCodeUnits($data); $message = ''; foreach ($this->linesToCodeUnits($linesToBeCovered) as $codeUnit) { if (!in_array($codeUnit, $executedCodeUnits)) { $message .= sprintf( '- %s is expected to be executed (@covers) but was not executed' . "\n", $codeUnit ); } } foreach ($this->linesToCodeUnits($linesToBeUsed) as $codeUnit) { if (!in_array($codeUnit, $executedCodeUnits)) { $message .= sprintf( '- %s is expected to be executed (@uses) but was not executed' . "\n", $codeUnit ); } } if (!empty($message)) { throw new CoveredCodeNotExecutedException($message); } } /** * @param array $linesToBeCovered * @param array $linesToBeUsed * * @return array */ private function getAllowedLines(array $linesToBeCovered, array $linesToBeUsed) { $allowedLines = []; foreach (array_keys($linesToBeCovered) as $file) { if (!isset($allowedLines[$file])) { $allowedLines[$file] = []; } $allowedLines[$file] = array_merge( $allowedLines[$file], $linesToBeCovered[$file] ); } foreach (array_keys($linesToBeUsed) as $file) { if (!isset($allowedLines[$file])) { $allowedLines[$file] = []; } $allowedLines[$file] = array_merge( $allowedLines[$file], $linesToBeUsed[$file] ); } foreach (array_keys($allowedLines) as $file) { $allowedLines[$file] = array_flip( array_unique($allowedLines[$file]) ); } return $allowedLines; } /** * @return Driver * * @throws RuntimeException */ private function selectDriver() { $runtime = new Runtime; if (!$runtime->canCollectCodeCoverage()) { throw new RuntimeException('No code coverage driver available'); } if ($runtime->isHHVM()) { return new HHVM; } elseif ($runtime->isPHPDBG()) { return new PHPDBG; } else { return new Xdebug; } } /** * @param array $unintentionallyCoveredUnits * * @return array */ private function processUnintentionallyCoveredUnits(array $unintentionallyCoveredUnits) { $unintentionallyCoveredUnits = array_unique($unintentionallyCoveredUnits); sort($unintentionallyCoveredUnits); foreach (array_keys($unintentionallyCoveredUnits) as $k => $v) { $unit = explode('::', $unintentionallyCoveredUnits[$k]); if (count($unit) != 2) { continue; } $class = new \ReflectionClass($unit[0]); foreach ($this->unintentionallyCoveredSubclassesWhitelist as $whitelisted) { if ($class->isSubclassOf($whitelisted)) { unset($unintentionallyCoveredUnits[$k]); break; } } } return array_values($unintentionallyCoveredUnits); } /** * If we are processing uncovered files from whitelist, * we can initialize the data before we start to speed up the tests */ protected function initializeData() { $this->isInitialized = true; if ($this->processUncoveredFilesFromWhitelist) { $this->shouldCheckForDeadAndUnused = false; $this->driver->start(true); foreach ($this->filter->getWhitelist() as $file) { if ($this->filter->isFile($file)) { include_once($file); } } $data = []; $coverage = $this->driver->stop(); foreach ($coverage as $file => $fileCoverage) { if ($this->filter->isFiltered($file)) { continue; } foreach (array_keys($fileCoverage) as $key) { if ($fileCoverage[$key] == Driver::LINE_EXECUTED) { $fileCoverage[$key] = Driver::LINE_NOT_EXECUTED; } } $data[$file] = $fileCoverage; } $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST'); } } /** * @param array $data * * @return array */ private function coverageToCodeUnits(array $data) { $codeUnits = []; foreach ($data as $filename => $lines) { foreach ($lines as $line => $flag) { if ($flag == 1) { $codeUnits[] = $this->wizard->lookup($filename, $line); } } } return array_unique($codeUnits); } /** * @param array $data * * @return array */ private function linesToCodeUnits(array $data) { $codeUnits = []; foreach ($data as $filename => $lines) { foreach ($lines as $line) { $codeUnits[] = $this->wizard->lookup($filename, $line); } } return array_unique($codeUnits); } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Driver; /** * Interface for code coverage drivers. */ interface Driver { /** * @var int * * @see http://xdebug.org/docs/code_coverage */ const LINE_EXECUTED = 1; /** * @var int * * @see http://xdebug.org/docs/code_coverage */ const LINE_NOT_EXECUTED = -1; /** * @var int * * @see http://xdebug.org/docs/code_coverage */ const LINE_NOT_EXECUTABLE = -2; /** * Start collection of code coverage information. * * @param bool $determineUnusedAndDead */ public function start($determineUnusedAndDead = true); /** * Stop collection of code coverage information. * * @return array */ public function stop(); } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Driver; /** * Driver for HHVM's code coverage functionality. * * @codeCoverageIgnore */ class HHVM extends Xdebug { /** * Start collection of code coverage information. * * @param bool $determineUnusedAndDead */ public function start($determineUnusedAndDead = true) { xdebug_start_code_coverage(); } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Driver; use SebastianBergmann\CodeCoverage\RuntimeException; /** * Driver for PHPDBG's code coverage functionality. * * @codeCoverageIgnore */ class PHPDBG implements Driver { /** * Constructor. */ public function __construct() { if (PHP_SAPI !== 'phpdbg') { throw new RuntimeException( 'This driver requires the PHPDBG SAPI' ); } if (!function_exists('phpdbg_start_oplog')) { throw new RuntimeException( 'This build of PHPDBG does not support code coverage' ); } } /** * Start collection of code coverage information. * * @param bool $determineUnusedAndDead */ public function start($determineUnusedAndDead = true) { phpdbg_start_oplog(); } /** * Stop collection of code coverage information. * * @return array */ public function stop() { static $fetchedLines = []; $dbgData = phpdbg_end_oplog(); if ($fetchedLines == []) { $sourceLines = phpdbg_get_executable(); } else { $newFiles = array_diff( get_included_files(), array_keys($fetchedLines) ); if ($newFiles) { $sourceLines = phpdbg_get_executable( ['files' => $newFiles] ); } else { $sourceLines = []; } } foreach ($sourceLines as $file => $lines) { foreach ($lines as $lineNo => $numExecuted) { $sourceLines[$file][$lineNo] = self::LINE_NOT_EXECUTED; } } $fetchedLines = array_merge($fetchedLines, $sourceLines); return $this->detectExecutedLines($fetchedLines, $dbgData); } /** * Convert phpdbg based data into the format CodeCoverage expects * * @param array $sourceLines * @param array $dbgData * * @return array */ private function detectExecutedLines(array $sourceLines, array $dbgData) { foreach ($dbgData as $file => $coveredLines) { foreach ($coveredLines as $lineNo => $numExecuted) { // phpdbg also reports $lineNo=0 when e.g. exceptions get thrown. // make sure we only mark lines executed which are actually executable. if (isset($sourceLines[$file][$lineNo])) { $sourceLines[$file][$lineNo] = self::LINE_EXECUTED; } } } return $sourceLines; } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Driver; use SebastianBergmann\CodeCoverage\RuntimeException; /** * Driver for Xdebug's code coverage functionality. * * @codeCoverageIgnore */ class Xdebug implements Driver { /** * Cache the number of lines for each file * * @var array */ private $cacheNumLines = []; /** * Constructor. */ public function __construct() { if (!extension_loaded('xdebug')) { throw new RuntimeException('This driver requires Xdebug'); } if (version_compare(phpversion('xdebug'), '2.2.1', '>=') && !ini_get('xdebug.coverage_enable')) { throw new RuntimeException( 'xdebug.coverage_enable=On has to be set in php.ini' ); } } /** * Start collection of code coverage information. * * @param bool $determineUnusedAndDead */ public function start($determineUnusedAndDead = true) { if ($determineUnusedAndDead) { xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE); } else { xdebug_start_code_coverage(); } } /** * Stop collection of code coverage information. * * @return array */ public function stop() { $data = xdebug_get_code_coverage(); xdebug_stop_code_coverage(); return $this->cleanup($data); } /** * @param array $data * * @return array */ private function cleanup(array $data) { foreach (array_keys($data) as $file) { unset($data[$file][0]); if (strpos($file, 'xdebug://debug-eval') !== 0 && file_exists($file)) { $numLines = $this->getNumberOfLinesInFile($file); foreach (array_keys($data[$file]) as $line) { if ($line > $numLines) { unset($data[$file][$line]); } } } } return $data; } /** * @param string $file * * @return int */ private function getNumberOfLinesInFile($file) { if (!isset($this->cacheNumLines[$file])) { $buffer = file_get_contents($file); $lines = substr_count($buffer, "\n"); if (substr($buffer, -1) !== "\n") { $lines++; } $this->cacheNumLines[$file] = $lines; } return $this->cacheNumLines[$file]; } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage; /** * Exception that is raised when covered code is not executed. */ class CoveredCodeNotExecutedException extends RuntimeException { } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage; /** * Exception interface for php-code-coverage component. */ interface Exception { } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage; class InvalidArgumentException extends \InvalidArgumentException implements Exception { /** * @param int $argument * @param string $type * @param mixed $value * * @return InvalidArgumentException */ public static function create($argument, $type, $value = null) { $stack = debug_backtrace(0); return new self( sprintf( 'Argument #%d%sof %s::%s() must be a %s', $argument, $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ', $stack[1]['class'], $stack[1]['function'], $type ) ); } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage; /** * Exception that is raised when @covers must be used but is not. */ class MissingCoversAnnotationException extends RuntimeException { } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage; class RuntimeException extends \RuntimeException implements Exception { } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage; /** * Exception that is raised when code is unintentionally covered. */ class UnintentionallyCoveredCodeException extends RuntimeException { /** * @var array */ private $unintentionallyCoveredUnits = []; /** * @param array $unintentionallyCoveredUnits */ public function __construct(array $unintentionallyCoveredUnits) { $this->unintentionallyCoveredUnits = $unintentionallyCoveredUnits; parent::__construct($this->toString()); } /** * @return array */ public function getUnintentionallyCoveredUnits() { return $this->unintentionallyCoveredUnits; } /** * @return string */ private function toString() { $message = ''; foreach ($this->unintentionallyCoveredUnits as $unit) { $message .= '- ' . $unit . "\n"; } return $message; } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage; /** * Filter for whitelisting of code coverage information. */ class Filter { /** * Source files that are whitelisted. * * @var array */ private $whitelistedFiles = []; /** * Adds a directory to the whitelist (recursively). * * @param string $directory * @param string $suffix * @param string $prefix */ public function addDirectoryToWhitelist($directory, $suffix = '.php', $prefix = '') { $facade = new \File_Iterator_Facade; $files = $facade->getFilesAsArray($directory, $suffix, $prefix); foreach ($files as $file) { $this->addFileToWhitelist($file); } } /** * Adds a file to the whitelist. * * @param string $filename */ public function addFileToWhitelist($filename) { $this->whitelistedFiles[realpath($filename)] = true; } /** * Adds files to the whitelist. * * @param array $files */ public function addFilesToWhitelist(array $files) { foreach ($files as $file) { $this->addFileToWhitelist($file); } } /** * Removes a directory from the whitelist (recursively). * * @param string $directory * @param string $suffix * @param string $prefix */ public function removeDirectoryFromWhitelist($directory, $suffix = '.php', $prefix = '') { $facade = new \File_Iterator_Facade; $files = $facade->getFilesAsArray($directory, $suffix, $prefix); foreach ($files as $file) { $this->removeFileFromWhitelist($file); } } /** * Removes a file from the whitelist. * * @param string $filename */ public function removeFileFromWhitelist($filename) { $filename = realpath($filename); unset($this->whitelistedFiles[$filename]); } /** * Checks whether a filename is a real filename. * * @param string $filename * * @return bool */ public function isFile($filename) { if ($filename == '-' || strpos($filename, 'vfs://') === 0 || strpos($filename, 'xdebug://debug-eval') !== false || strpos($filename, 'eval()\'d code') !== false || strpos($filename, 'runtime-created function') !== false || strpos($filename, 'runkit created function') !== false || strpos($filename, 'assert code') !== false || strpos($filename, 'regexp code') !== false) { return false; } return file_exists($filename); } /** * Checks whether or not a file is filtered. * * @param string $filename * * @return bool */ public function isFiltered($filename) { if (!$this->isFile($filename)) { return true; } $filename = realpath($filename); return !isset($this->whitelistedFiles[$filename]); } /** * Returns the list of whitelisted files. * * @return array */ public function getWhitelist() { return array_keys($this->whitelistedFiles); } /** * Returns whether this filter has a whitelist. * * @return bool */ public function hasWhitelist() { return !empty($this->whitelistedFiles); } /** * Returns the whitelisted files. * * @return array */ public function getWhitelistedFiles() { return $this->whitelistedFiles; } /** * Sets the whitelisted files. * * @param array $whitelistedFiles */ public function setWhitelistedFiles($whitelistedFiles) { $this->whitelistedFiles = $whitelistedFiles; } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Node; use SebastianBergmann\CodeCoverage\Util; /** * Base class for nodes in the code coverage information tree. */ abstract class AbstractNode implements \Countable { /** * @var string */ private $name; /** * @var string */ private $path; /** * @var array */ private $pathArray; /** * @var AbstractNode */ private $parent; /** * @var string */ private $id; /** * Constructor. * * @param string $name * @param AbstractNode $parent */ public function __construct($name, AbstractNode $parent = null) { if (substr($name, -1) == '/') { $name = substr($name, 0, -1); } $this->name = $name; $this->parent = $parent; } /** * @return string */ public function getName() { return $this->name; } /** * @return string */ public function getId() { if ($this->id === null) { $parent = $this->getParent(); if ($parent === null) { $this->id = 'index'; } else { $parentId = $parent->getId(); if ($parentId == 'index') { $this->id = str_replace(':', '_', $this->name); } else { $this->id = $parentId . '/' . $this->name; } } } return $this->id; } /** * @return string */ public function getPath() { if ($this->path === null) { if ($this->parent === null || $this->parent->getPath() === null || $this->parent->getPath() === false) { $this->path = $this->name; } else { $this->path = $this->parent->getPath() . '/' . $this->name; } } return $this->path; } /** * @return array */ public function getPathAsArray() { if ($this->pathArray === null) { if ($this->parent === null) { $this->pathArray = []; } else { $this->pathArray = $this->parent->getPathAsArray(); } $this->pathArray[] = $this; } return $this->pathArray; } /** * @return AbstractNode */ public function getParent() { return $this->parent; } /** * Returns the percentage of classes that has been tested. * * @param bool $asString * * @return int */ public function getTestedClassesPercent($asString = true) { return Util::percent( $this->getNumTestedClasses(), $this->getNumClasses(), $asString ); } /** * Returns the percentage of traits that has been tested. * * @param bool $asString * * @return int */ public function getTestedTraitsPercent($asString = true) { return Util::percent( $this->getNumTestedTraits(), $this->getNumTraits(), $asString ); } /** * Returns the percentage of traits that has been tested. * * @param bool $asString * * @return int */ public function getTestedClassesAndTraitsPercent($asString = true) { return Util::percent( $this->getNumTestedClassesAndTraits(), $this->getNumClassesAndTraits(), $asString ); } /** * Returns the percentage of methods that has been tested. * * @param bool $asString * * @return int */ public function getTestedMethodsPercent($asString = true) { return Util::percent( $this->getNumTestedMethods(), $this->getNumMethods(), $asString ); } /** * Returns the percentage of executed lines. * * @param bool $asString * * @return int */ public function getLineExecutedPercent($asString = true) { return Util::percent( $this->getNumExecutedLines(), $this->getNumExecutableLines(), $asString ); } /** * Returns the number of classes and traits. * * @return int */ public function getNumClassesAndTraits() { return $this->getNumClasses() + $this->getNumTraits(); } /** * Returns the number of tested classes and traits. * * @return int */ public function getNumTestedClassesAndTraits() { return $this->getNumTestedClasses() + $this->getNumTestedTraits(); } /** * Returns the classes and traits of this node. * * @return array */ public function getClassesAndTraits() { return array_merge($this->getClasses(), $this->getTraits()); } /** * Returns the classes of this node. * * @return array */ abstract public function getClasses(); /** * Returns the traits of this node. * * @return array */ abstract public function getTraits(); /** * Returns the functions of this node. * * @return array */ abstract public function getFunctions(); /** * Returns the LOC/CLOC/NCLOC of this node. * * @return array */ abstract public function getLinesOfCode(); /** * Returns the number of executable lines. * * @return int */ abstract public function getNumExecutableLines(); /** * Returns the number of executed lines. * * @return int */ abstract public function getNumExecutedLines(); /** * Returns the number of classes. * * @return int */ abstract public function getNumClasses(); /** * Returns the number of tested classes. * * @return int */ abstract public function getNumTestedClasses(); /** * Returns the number of traits. * * @return int */ abstract public function getNumTraits(); /** * Returns the number of tested traits. * * @return int */ abstract public function getNumTestedTraits(); /** * Returns the number of methods. * * @return int */ abstract public function getNumMethods(); /** * Returns the number of tested methods. * * @return int */ abstract public function getNumTestedMethods(); /** * Returns the number of functions. * * @return int */ abstract public function getNumFunctions(); /** * Returns the number of tested functions. * * @return int */ abstract public function getNumTestedFunctions(); } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Node; use SebastianBergmann\CodeCoverage\CodeCoverage; class Builder { /** * @param CodeCoverage $coverage * * @return Directory */ public function build(CodeCoverage $coverage) { $files = $coverage->getData(); $commonPath = $this->reducePaths($files); $root = new Directory( $commonPath, null ); $this->addItems( $root, $this->buildDirectoryStructure($files), $coverage->getTests(), $coverage->getCacheTokens() ); return $root; } /** * @param Directory $root * @param array $items * @param array $tests * @param bool $cacheTokens */ private function addItems(Directory $root, array $items, array $tests, $cacheTokens) { foreach ($items as $key => $value) { if (substr($key, -2) == '/f') { $key = substr($key, 0, -2); if (file_exists($root->getPath() . DIRECTORY_SEPARATOR . $key)) { $root->addFile($key, $value, $tests, $cacheTokens); } } else { $child = $root->addDirectory($key); $this->addItems($child, $value, $tests, $cacheTokens); } } } /** * Builds an array representation of the directory structure. * * For instance, * * * Array * ( * [Money.php] => Array * ( * ... * ) * * [MoneyBag.php] => Array * ( * ... * ) * ) * * * is transformed into * * * Array * ( * [.] => Array * ( * [Money.php] => Array * ( * ... * ) * * [MoneyBag.php] => Array * ( * ... * ) * ) * ) * * * @param array $files * * @return array */ private function buildDirectoryStructure($files) { $result = []; foreach ($files as $path => $file) { $path = explode('/', $path); $pointer = &$result; $max = count($path); for ($i = 0; $i < $max; $i++) { if ($i == ($max - 1)) { $type = '/f'; } else { $type = ''; } $pointer = &$pointer[$path[$i] . $type]; } $pointer = $file; } return $result; } /** * Reduces the paths by cutting the longest common start path. * * For instance, * * * Array * ( * [/home/sb/Money/Money.php] => Array * ( * ... * ) * * [/home/sb/Money/MoneyBag.php] => Array * ( * ... * ) * ) * * * is reduced to * * * Array * ( * [Money.php] => Array * ( * ... * ) * * [MoneyBag.php] => Array * ( * ... * ) * ) * * * @param array $files * * @return string */ private function reducePaths(&$files) { if (empty($files)) { return '.'; } $commonPath = ''; $paths = array_keys($files); if (count($files) == 1) { $commonPath = dirname($paths[0]) . '/'; $files[basename($paths[0])] = $files[$paths[0]]; unset($files[$paths[0]]); return $commonPath; } $max = count($paths); for ($i = 0; $i < $max; $i++) { // strip phar:// prefixes if (strpos($paths[$i], 'phar://') === 0) { $paths[$i] = substr($paths[$i], 7); $paths[$i] = strtr($paths[$i], '/', DIRECTORY_SEPARATOR); } $paths[$i] = explode(DIRECTORY_SEPARATOR, $paths[$i]); if (empty($paths[$i][0])) { $paths[$i][0] = DIRECTORY_SEPARATOR; } } $done = false; $max = count($paths); while (!$done) { for ($i = 0; $i < $max - 1; $i++) { if (!isset($paths[$i][0]) || !isset($paths[$i + 1][0]) || $paths[$i][0] != $paths[$i + 1][0]) { $done = true; break; } } if (!$done) { $commonPath .= $paths[0][0]; if ($paths[0][0] != DIRECTORY_SEPARATOR) { $commonPath .= DIRECTORY_SEPARATOR; } for ($i = 0; $i < $max; $i++) { array_shift($paths[$i]); } } } $original = array_keys($files); $max = count($original); for ($i = 0; $i < $max; $i++) { $files[implode('/', $paths[$i])] = $files[$original[$i]]; unset($files[$original[$i]]); } ksort($files); return substr($commonPath, 0, -1); } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Node; use SebastianBergmann\CodeCoverage\InvalidArgumentException; /** * Represents a directory in the code coverage information tree. */ class Directory extends AbstractNode implements \IteratorAggregate { /** * @var AbstractNode[] */ private $children = []; /** * @var Directory[] */ private $directories = []; /** * @var File[] */ private $files = []; /** * @var array */ private $classes; /** * @var array */ private $traits; /** * @var array */ private $functions; /** * @var array */ private $linesOfCode = null; /** * @var int */ private $numFiles = -1; /** * @var int */ private $numExecutableLines = -1; /** * @var int */ private $numExecutedLines = -1; /** * @var int */ private $numClasses = -1; /** * @var int */ private $numTestedClasses = -1; /** * @var int */ private $numTraits = -1; /** * @var int */ private $numTestedTraits = -1; /** * @var int */ private $numMethods = -1; /** * @var int */ private $numTestedMethods = -1; /** * @var int */ private $numFunctions = -1; /** * @var int */ private $numTestedFunctions = -1; /** * Returns the number of files in/under this node. * * @return int */ public function count() { if ($this->numFiles == -1) { $this->numFiles = 0; foreach ($this->children as $child) { $this->numFiles += count($child); } } return $this->numFiles; } /** * Returns an iterator for this node. * * @return \RecursiveIteratorIterator */ public function getIterator() { return new \RecursiveIteratorIterator( new Iterator($this), \RecursiveIteratorIterator::SELF_FIRST ); } /** * Adds a new directory. * * @param string $name * * @return Directory */ public function addDirectory($name) { $directory = new self($name, $this); $this->children[] = $directory; $this->directories[] = &$this->children[count($this->children) - 1]; return $directory; } /** * Adds a new file. * * @param string $name * @param array $coverageData * @param array $testData * @param bool $cacheTokens * * @return File * * @throws InvalidArgumentException */ public function addFile($name, array $coverageData, array $testData, $cacheTokens) { $file = new File( $name, $this, $coverageData, $testData, $cacheTokens ); $this->children[] = $file; $this->files[] = &$this->children[count($this->children) - 1]; $this->numExecutableLines = -1; $this->numExecutedLines = -1; return $file; } /** * Returns the directories in this directory. * * @return array */ public function getDirectories() { return $this->directories; } /** * Returns the files in this directory. * * @return array */ public function getFiles() { return $this->files; } /** * Returns the child nodes of this node. * * @return array */ public function getChildNodes() { return $this->children; } /** * Returns the classes of this node. * * @return array */ public function getClasses() { if ($this->classes === null) { $this->classes = []; foreach ($this->children as $child) { $this->classes = array_merge( $this->classes, $child->getClasses() ); } } return $this->classes; } /** * Returns the traits of this node. * * @return array */ public function getTraits() { if ($this->traits === null) { $this->traits = []; foreach ($this->children as $child) { $this->traits = array_merge( $this->traits, $child->getTraits() ); } } return $this->traits; } /** * Returns the functions of this node. * * @return array */ public function getFunctions() { if ($this->functions === null) { $this->functions = []; foreach ($this->children as $child) { $this->functions = array_merge( $this->functions, $child->getFunctions() ); } } return $this->functions; } /** * Returns the LOC/CLOC/NCLOC of this node. * * @return array */ public function getLinesOfCode() { if ($this->linesOfCode === null) { $this->linesOfCode = ['loc' => 0, 'cloc' => 0, 'ncloc' => 0]; foreach ($this->children as $child) { $linesOfCode = $child->getLinesOfCode(); $this->linesOfCode['loc'] += $linesOfCode['loc']; $this->linesOfCode['cloc'] += $linesOfCode['cloc']; $this->linesOfCode['ncloc'] += $linesOfCode['ncloc']; } } return $this->linesOfCode; } /** * Returns the number of executable lines. * * @return int */ public function getNumExecutableLines() { if ($this->numExecutableLines == -1) { $this->numExecutableLines = 0; foreach ($this->children as $child) { $this->numExecutableLines += $child->getNumExecutableLines(); } } return $this->numExecutableLines; } /** * Returns the number of executed lines. * * @return int */ public function getNumExecutedLines() { if ($this->numExecutedLines == -1) { $this->numExecutedLines = 0; foreach ($this->children as $child) { $this->numExecutedLines += $child->getNumExecutedLines(); } } return $this->numExecutedLines; } /** * Returns the number of classes. * * @return int */ public function getNumClasses() { if ($this->numClasses == -1) { $this->numClasses = 0; foreach ($this->children as $child) { $this->numClasses += $child->getNumClasses(); } } return $this->numClasses; } /** * Returns the number of tested classes. * * @return int */ public function getNumTestedClasses() { if ($this->numTestedClasses == -1) { $this->numTestedClasses = 0; foreach ($this->children as $child) { $this->numTestedClasses += $child->getNumTestedClasses(); } } return $this->numTestedClasses; } /** * Returns the number of traits. * * @return int */ public function getNumTraits() { if ($this->numTraits == -1) { $this->numTraits = 0; foreach ($this->children as $child) { $this->numTraits += $child->getNumTraits(); } } return $this->numTraits; } /** * Returns the number of tested traits. * * @return int */ public function getNumTestedTraits() { if ($this->numTestedTraits == -1) { $this->numTestedTraits = 0; foreach ($this->children as $child) { $this->numTestedTraits += $child->getNumTestedTraits(); } } return $this->numTestedTraits; } /** * Returns the number of methods. * * @return int */ public function getNumMethods() { if ($this->numMethods == -1) { $this->numMethods = 0; foreach ($this->children as $child) { $this->numMethods += $child->getNumMethods(); } } return $this->numMethods; } /** * Returns the number of tested methods. * * @return int */ public function getNumTestedMethods() { if ($this->numTestedMethods == -1) { $this->numTestedMethods = 0; foreach ($this->children as $child) { $this->numTestedMethods += $child->getNumTestedMethods(); } } return $this->numTestedMethods; } /** * Returns the number of functions. * * @return int */ public function getNumFunctions() { if ($this->numFunctions == -1) { $this->numFunctions = 0; foreach ($this->children as $child) { $this->numFunctions += $child->getNumFunctions(); } } return $this->numFunctions; } /** * Returns the number of tested functions. * * @return int */ public function getNumTestedFunctions() { if ($this->numTestedFunctions == -1) { $this->numTestedFunctions = 0; foreach ($this->children as $child) { $this->numTestedFunctions += $child->getNumTestedFunctions(); } } return $this->numTestedFunctions; } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Node; use SebastianBergmann\CodeCoverage\InvalidArgumentException; /** * Represents a file in the code coverage information tree. */ class File extends AbstractNode { /** * @var array */ private $coverageData; /** * @var array */ private $testData; /** * @var int */ private $numExecutableLines = 0; /** * @var int */ private $numExecutedLines = 0; /** * @var array */ private $classes = []; /** * @var array */ private $traits = []; /** * @var array */ private $functions = []; /** * @var array */ private $linesOfCode = []; /** * @var int */ private $numClasses = null; /** * @var int */ private $numTestedClasses = 0; /** * @var int */ private $numTraits = null; /** * @var int */ private $numTestedTraits = 0; /** * @var int */ private $numMethods = null; /** * @var int */ private $numTestedMethods = null; /** * @var int */ private $numTestedFunctions = null; /** * @var array */ private $startLines = []; /** * @var array */ private $endLines = []; /** * @var bool */ private $cacheTokens; /** * Constructor. * * @param string $name * @param AbstractNode $parent * @param array $coverageData * @param array $testData * @param bool $cacheTokens * * @throws InvalidArgumentException */ public function __construct($name, AbstractNode $parent, array $coverageData, array $testData, $cacheTokens) { if (!is_bool($cacheTokens)) { throw InvalidArgumentException::create( 1, 'boolean' ); } parent::__construct($name, $parent); $this->coverageData = $coverageData; $this->testData = $testData; $this->cacheTokens = $cacheTokens; $this->calculateStatistics(); } /** * Returns the number of files in/under this node. * * @return int */ public function count() { return 1; } /** * Returns the code coverage data of this node. * * @return array */ public function getCoverageData() { return $this->coverageData; } /** * Returns the test data of this node. * * @return array */ public function getTestData() { return $this->testData; } /** * Returns the classes of this node. * * @return array */ public function getClasses() { return $this->classes; } /** * Returns the traits of this node. * * @return array */ public function getTraits() { return $this->traits; } /** * Returns the functions of this node. * * @return array */ public function getFunctions() { return $this->functions; } /** * Returns the LOC/CLOC/NCLOC of this node. * * @return array */ public function getLinesOfCode() { return $this->linesOfCode; } /** * Returns the number of executable lines. * * @return int */ public function getNumExecutableLines() { return $this->numExecutableLines; } /** * Returns the number of executed lines. * * @return int */ public function getNumExecutedLines() { return $this->numExecutedLines; } /** * Returns the number of classes. * * @return int */ public function getNumClasses() { if ($this->numClasses === null) { $this->numClasses = 0; foreach ($this->classes as $class) { foreach ($class['methods'] as $method) { if ($method['executableLines'] > 0) { $this->numClasses++; continue 2; } } } } return $this->numClasses; } /** * Returns the number of tested classes. * * @return int */ public function getNumTestedClasses() { return $this->numTestedClasses; } /** * Returns the number of traits. * * @return int */ public function getNumTraits() { if ($this->numTraits === null) { $this->numTraits = 0; foreach ($this->traits as $trait) { foreach ($trait['methods'] as $method) { if ($method['executableLines'] > 0) { $this->numTraits++; continue 2; } } } } return $this->numTraits; } /** * Returns the number of tested traits. * * @return int */ public function getNumTestedTraits() { return $this->numTestedTraits; } /** * Returns the number of methods. * * @return int */ public function getNumMethods() { if ($this->numMethods === null) { $this->numMethods = 0; foreach ($this->classes as $class) { foreach ($class['methods'] as $method) { if ($method['executableLines'] > 0) { $this->numMethods++; } } } foreach ($this->traits as $trait) { foreach ($trait['methods'] as $method) { if ($method['executableLines'] > 0) { $this->numMethods++; } } } } return $this->numMethods; } /** * Returns the number of tested methods. * * @return int */ public function getNumTestedMethods() { if ($this->numTestedMethods === null) { $this->numTestedMethods = 0; foreach ($this->classes as $class) { foreach ($class['methods'] as $method) { if ($method['executableLines'] > 0 && $method['coverage'] == 100) { $this->numTestedMethods++; } } } foreach ($this->traits as $trait) { foreach ($trait['methods'] as $method) { if ($method['executableLines'] > 0 && $method['coverage'] == 100) { $this->numTestedMethods++; } } } } return $this->numTestedMethods; } /** * Returns the number of functions. * * @return int */ public function getNumFunctions() { return count($this->functions); } /** * Returns the number of tested functions. * * @return int */ public function getNumTestedFunctions() { if ($this->numTestedFunctions === null) { $this->numTestedFunctions = 0; foreach ($this->functions as $function) { if ($function['executableLines'] > 0 && $function['coverage'] == 100) { $this->numTestedFunctions++; } } } return $this->numTestedFunctions; } /** * Calculates coverage statistics for the file. */ protected function calculateStatistics() { $classStack = $functionStack = []; if ($this->cacheTokens) { $tokens = \PHP_Token_Stream_CachingFactory::get($this->getPath()); } else { $tokens = new \PHP_Token_Stream($this->getPath()); } $this->processClasses($tokens); $this->processTraits($tokens); $this->processFunctions($tokens); $this->linesOfCode = $tokens->getLinesOfCode(); unset($tokens); for ($lineNumber = 1; $lineNumber <= $this->linesOfCode['loc']; $lineNumber++) { if (isset($this->startLines[$lineNumber])) { // Start line of a class. if (isset($this->startLines[$lineNumber]['className'])) { if (isset($currentClass)) { $classStack[] = &$currentClass; } $currentClass = &$this->startLines[$lineNumber]; } // Start line of a trait. elseif (isset($this->startLines[$lineNumber]['traitName'])) { $currentTrait = &$this->startLines[$lineNumber]; } // Start line of a method. elseif (isset($this->startLines[$lineNumber]['methodName'])) { $currentMethod = &$this->startLines[$lineNumber]; } // Start line of a function. elseif (isset($this->startLines[$lineNumber]['functionName'])) { if (isset($currentFunction)) { $functionStack[] = &$currentFunction; } $currentFunction = &$this->startLines[$lineNumber]; } } if (isset($this->coverageData[$lineNumber])) { if (isset($currentClass)) { $currentClass['executableLines']++; } if (isset($currentTrait)) { $currentTrait['executableLines']++; } if (isset($currentMethod)) { $currentMethod['executableLines']++; } if (isset($currentFunction)) { $currentFunction['executableLines']++; } $this->numExecutableLines++; if (count($this->coverageData[$lineNumber]) > 0) { if (isset($currentClass)) { $currentClass['executedLines']++; } if (isset($currentTrait)) { $currentTrait['executedLines']++; } if (isset($currentMethod)) { $currentMethod['executedLines']++; } if (isset($currentFunction)) { $currentFunction['executedLines']++; } $this->numExecutedLines++; } } if (isset($this->endLines[$lineNumber])) { // End line of a class. if (isset($this->endLines[$lineNumber]['className'])) { unset($currentClass); if ($classStack) { end($classStack); $key = key($classStack); $currentClass = &$classStack[$key]; unset($classStack[$key]); } } // End line of a trait. elseif (isset($this->endLines[$lineNumber]['traitName'])) { unset($currentTrait); } // End line of a method. elseif (isset($this->endLines[$lineNumber]['methodName'])) { unset($currentMethod); } // End line of a function. elseif (isset($this->endLines[$lineNumber]['functionName'])) { unset($currentFunction); if ($functionStack) { end($functionStack); $key = key($functionStack); $currentFunction = &$functionStack[$key]; unset($functionStack[$key]); } } } } foreach ($this->traits as &$trait) { foreach ($trait['methods'] as &$method) { if ($method['executableLines'] > 0) { $method['coverage'] = ($method['executedLines'] / $method['executableLines']) * 100; } else { $method['coverage'] = 100; } $method['crap'] = $this->crap( $method['ccn'], $method['coverage'] ); $trait['ccn'] += $method['ccn']; } if ($trait['executableLines'] > 0) { $trait['coverage'] = ($trait['executedLines'] / $trait['executableLines']) * 100; if ($trait['coverage'] == 100) { $this->numTestedClasses++; } } else { $trait['coverage'] = 100; } $trait['crap'] = $this->crap( $trait['ccn'], $trait['coverage'] ); } foreach ($this->classes as &$class) { foreach ($class['methods'] as &$method) { if ($method['executableLines'] > 0) { $method['coverage'] = ($method['executedLines'] / $method['executableLines']) * 100; } else { $method['coverage'] = 100; } $method['crap'] = $this->crap( $method['ccn'], $method['coverage'] ); $class['ccn'] += $method['ccn']; } if ($class['executableLines'] > 0) { $class['coverage'] = ($class['executedLines'] / $class['executableLines']) * 100; if ($class['coverage'] == 100) { $this->numTestedClasses++; } } else { $class['coverage'] = 100; } $class['crap'] = $this->crap( $class['ccn'], $class['coverage'] ); } } /** * @param \PHP_Token_Stream $tokens */ protected function processClasses(\PHP_Token_Stream $tokens) { $classes = $tokens->getClasses(); unset($tokens); $link = $this->getId() . '.html#'; foreach ($classes as $className => $class) { $this->classes[$className] = [ 'className' => $className, 'methods' => [], 'startLine' => $class['startLine'], 'executableLines' => 0, 'executedLines' => 0, 'ccn' => 0, 'coverage' => 0, 'crap' => 0, 'package' => $class['package'], 'link' => $link . $class['startLine'] ]; $this->startLines[$class['startLine']] = &$this->classes[$className]; $this->endLines[$class['endLine']] = &$this->classes[$className]; foreach ($class['methods'] as $methodName => $method) { $this->classes[$className]['methods'][$methodName] = $this->newMethod($methodName, $method, $link); $this->startLines[$method['startLine']] = &$this->classes[$className]['methods'][$methodName]; $this->endLines[$method['endLine']] = &$this->classes[$className]['methods'][$methodName]; } } } /** * @param \PHP_Token_Stream $tokens */ protected function processTraits(\PHP_Token_Stream $tokens) { $traits = $tokens->getTraits(); unset($tokens); $link = $this->getId() . '.html#'; foreach ($traits as $traitName => $trait) { $this->traits[$traitName] = [ 'traitName' => $traitName, 'methods' => [], 'startLine' => $trait['startLine'], 'executableLines' => 0, 'executedLines' => 0, 'ccn' => 0, 'coverage' => 0, 'crap' => 0, 'package' => $trait['package'], 'link' => $link . $trait['startLine'] ]; $this->startLines[$trait['startLine']] = &$this->traits[$traitName]; $this->endLines[$trait['endLine']] = &$this->traits[$traitName]; foreach ($trait['methods'] as $methodName => $method) { $this->traits[$traitName]['methods'][$methodName] = $this->newMethod($methodName, $method, $link); $this->startLines[$method['startLine']] = &$this->traits[$traitName]['methods'][$methodName]; $this->endLines[$method['endLine']] = &$this->traits[$traitName]['methods'][$methodName]; } } } /** * @param \PHP_Token_Stream $tokens */ protected function processFunctions(\PHP_Token_Stream $tokens) { $functions = $tokens->getFunctions(); unset($tokens); $link = $this->getId() . '.html#'; foreach ($functions as $functionName => $function) { $this->functions[$functionName] = [ 'functionName' => $functionName, 'signature' => $function['signature'], 'startLine' => $function['startLine'], 'executableLines' => 0, 'executedLines' => 0, 'ccn' => $function['ccn'], 'coverage' => 0, 'crap' => 0, 'link' => $link . $function['startLine'] ]; $this->startLines[$function['startLine']] = &$this->functions[$functionName]; $this->endLines[$function['endLine']] = &$this->functions[$functionName]; } } /** * Calculates the Change Risk Anti-Patterns (CRAP) index for a unit of code * based on its cyclomatic complexity and percentage of code coverage. * * @param int $ccn * @param float $coverage * * @return string */ protected function crap($ccn, $coverage) { if ($coverage == 0) { return (string) (pow($ccn, 2) + $ccn); } if ($coverage >= 95) { return (string) $ccn; } return sprintf( '%01.2F', pow($ccn, 2) * pow(1 - $coverage / 100, 3) + $ccn ); } /** * @param string $methodName * @param array $method * @param string $link * * @return array */ private function newMethod($methodName, array $method, $link) { return [ 'methodName' => $methodName, 'visibility' => $method['visibility'], 'signature' => $method['signature'], 'startLine' => $method['startLine'], 'endLine' => $method['endLine'], 'executableLines' => 0, 'executedLines' => 0, 'ccn' => $method['ccn'], 'coverage' => 0, 'crap' => 0, 'link' => $link . $method['startLine'], ]; } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Node; /** * Recursive iterator for node object graphs. */ class Iterator implements \RecursiveIterator { /** * @var int */ private $position; /** * @var AbstractNode[] */ private $nodes; /** * @param Directory $node */ public function __construct(Directory $node) { $this->nodes = $node->getChildNodes(); } /** * Rewinds the Iterator to the first element. */ public function rewind() { $this->position = 0; } /** * Checks if there is a current element after calls to rewind() or next(). * * @return bool */ public function valid() { return $this->position < count($this->nodes); } /** * Returns the key of the current element. * * @return int */ public function key() { return $this->position; } /** * Returns the current element. * * @return \PHPUnit_Framework_Test */ public function current() { return $this->valid() ? $this->nodes[$this->position] : null; } /** * Moves forward to next element. */ public function next() { $this->position++; } /** * Returns the sub iterator for the current element. * * @return Iterator */ public function getChildren() { return new self( $this->nodes[$this->position] ); } /** * Checks whether the current element has children. * * @return bool */ public function hasChildren() { return $this->nodes[$this->position] instanceof Directory; } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Report; use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\CodeCoverage\Node\File; /** * Generates a Clover XML logfile from a code coverage object. */ class Clover { /** * @param CodeCoverage $coverage * @param string $target * @param string $name * * @return string */ public function process(CodeCoverage $coverage, $target = null, $name = null) { $xmlDocument = new \DOMDocument('1.0', 'UTF-8'); $xmlDocument->formatOutput = true; $xmlCoverage = $xmlDocument->createElement('coverage'); $xmlCoverage->setAttribute('generated', (int) $_SERVER['REQUEST_TIME']); $xmlDocument->appendChild($xmlCoverage); $xmlProject = $xmlDocument->createElement('project'); $xmlProject->setAttribute('timestamp', (int) $_SERVER['REQUEST_TIME']); if (is_string($name)) { $xmlProject->setAttribute('name', $name); } $xmlCoverage->appendChild($xmlProject); $packages = []; $report = $coverage->getReport(); unset($coverage); foreach ($report as $item) { if (!$item instanceof File) { continue; } /* @var File $item */ $xmlFile = $xmlDocument->createElement('file'); $xmlFile->setAttribute('name', $item->getPath()); $classes = $item->getClassesAndTraits(); $coverage = $item->getCoverageData(); $lines = []; $namespace = 'global'; foreach ($classes as $className => $class) { $classStatements = 0; $coveredClassStatements = 0; $coveredMethods = 0; $classMethods = 0; foreach ($class['methods'] as $methodName => $method) { if ($method['executableLines'] == 0) { continue; } $classMethods++; $classStatements += $method['executableLines']; $coveredClassStatements += $method['executedLines']; if ($method['coverage'] == 100) { $coveredMethods++; } $methodCount = 0; foreach (range($method['startLine'], $method['endLine']) as $line) { if (isset($coverage[$line]) && ($coverage[$line] !== null)) { $methodCount = max($methodCount, count($coverage[$line])); } } $lines[$method['startLine']] = [ 'ccn' => $method['ccn'], 'count' => $methodCount, 'crap' => $method['crap'], 'type' => 'method', 'visibility' => $method['visibility'], 'name' => $methodName ]; } if (!empty($class['package']['namespace'])) { $namespace = $class['package']['namespace']; } $xmlClass = $xmlDocument->createElement('class'); $xmlClass->setAttribute('name', $className); $xmlClass->setAttribute('namespace', $namespace); if (!empty($class['package']['fullPackage'])) { $xmlClass->setAttribute( 'fullPackage', $class['package']['fullPackage'] ); } if (!empty($class['package']['category'])) { $xmlClass->setAttribute( 'category', $class['package']['category'] ); } if (!empty($class['package']['package'])) { $xmlClass->setAttribute( 'package', $class['package']['package'] ); } if (!empty($class['package']['subpackage'])) { $xmlClass->setAttribute( 'subpackage', $class['package']['subpackage'] ); } $xmlFile->appendChild($xmlClass); $xmlMetrics = $xmlDocument->createElement('metrics'); $xmlMetrics->setAttribute('complexity', $class['ccn']); $xmlMetrics->setAttribute('methods', $classMethods); $xmlMetrics->setAttribute('coveredmethods', $coveredMethods); $xmlMetrics->setAttribute('conditionals', 0); $xmlMetrics->setAttribute('coveredconditionals', 0); $xmlMetrics->setAttribute('statements', $classStatements); $xmlMetrics->setAttribute('coveredstatements', $coveredClassStatements); $xmlMetrics->setAttribute('elements', $classMethods + $classStatements /* + conditionals */); $xmlMetrics->setAttribute('coveredelements', $coveredMethods + $coveredClassStatements /* + coveredconditionals */); $xmlClass->appendChild($xmlMetrics); } foreach ($coverage as $line => $data) { if ($data === null || isset($lines[$line])) { continue; } $lines[$line] = [ 'count' => count($data), 'type' => 'stmt' ]; } ksort($lines); foreach ($lines as $line => $data) { $xmlLine = $xmlDocument->createElement('line'); $xmlLine->setAttribute('num', $line); $xmlLine->setAttribute('type', $data['type']); if (isset($data['name'])) { $xmlLine->setAttribute('name', $data['name']); } if (isset($data['visibility'])) { $xmlLine->setAttribute('visibility', $data['visibility']); } if (isset($data['ccn'])) { $xmlLine->setAttribute('complexity', $data['ccn']); } if (isset($data['crap'])) { $xmlLine->setAttribute('crap', $data['crap']); } $xmlLine->setAttribute('count', $data['count']); $xmlFile->appendChild($xmlLine); } $linesOfCode = $item->getLinesOfCode(); $xmlMetrics = $xmlDocument->createElement('metrics'); $xmlMetrics->setAttribute('loc', $linesOfCode['loc']); $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']); $xmlMetrics->setAttribute('classes', $item->getNumClassesAndTraits()); $xmlMetrics->setAttribute('methods', $item->getNumMethods()); $xmlMetrics->setAttribute('coveredmethods', $item->getNumTestedMethods()); $xmlMetrics->setAttribute('conditionals', 0); $xmlMetrics->setAttribute('coveredconditionals', 0); $xmlMetrics->setAttribute('statements', $item->getNumExecutableLines()); $xmlMetrics->setAttribute('coveredstatements', $item->getNumExecutedLines()); $xmlMetrics->setAttribute('elements', $item->getNumMethods() + $item->getNumExecutableLines() /* + conditionals */); $xmlMetrics->setAttribute('coveredelements', $item->getNumTestedMethods() + $item->getNumExecutedLines() /* + coveredconditionals */); $xmlFile->appendChild($xmlMetrics); if ($namespace == 'global') { $xmlProject->appendChild($xmlFile); } else { if (!isset($packages[$namespace])) { $packages[$namespace] = $xmlDocument->createElement( 'package' ); $packages[$namespace]->setAttribute('name', $namespace); $xmlProject->appendChild($packages[$namespace]); } $packages[$namespace]->appendChild($xmlFile); } } $linesOfCode = $report->getLinesOfCode(); $xmlMetrics = $xmlDocument->createElement('metrics'); $xmlMetrics->setAttribute('files', count($report)); $xmlMetrics->setAttribute('loc', $linesOfCode['loc']); $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']); $xmlMetrics->setAttribute('classes', $report->getNumClassesAndTraits()); $xmlMetrics->setAttribute('methods', $report->getNumMethods()); $xmlMetrics->setAttribute('coveredmethods', $report->getNumTestedMethods()); $xmlMetrics->setAttribute('conditionals', 0); $xmlMetrics->setAttribute('coveredconditionals', 0); $xmlMetrics->setAttribute('statements', $report->getNumExecutableLines()); $xmlMetrics->setAttribute('coveredstatements', $report->getNumExecutedLines()); $xmlMetrics->setAttribute('elements', $report->getNumMethods() + $report->getNumExecutableLines() /* + conditionals */); $xmlMetrics->setAttribute('coveredelements', $report->getNumTestedMethods() + $report->getNumExecutedLines() /* + coveredconditionals */); $xmlProject->appendChild($xmlMetrics); $buffer = $xmlDocument->saveXML(); if ($target !== null) { if (!is_dir(dirname($target))) { mkdir(dirname($target), 0777, true); } file_put_contents($target, $buffer); } return $buffer; } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Report; use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\CodeCoverage\Node\File; use SebastianBergmann\CodeCoverage\InvalidArgumentException; class Crap4j { /** * @var int */ private $threshold; /** * @param int $threshold */ public function __construct($threshold = 30) { if (!is_int($threshold)) { throw InvalidArgumentException::create( 1, 'integer' ); } $this->threshold = $threshold; } /** * @param CodeCoverage $coverage * @param string $target * @param string $name * * @return string */ public function process(CodeCoverage $coverage, $target = null, $name = null) { $document = new \DOMDocument('1.0', 'UTF-8'); $document->formatOutput = true; $root = $document->createElement('crap_result'); $document->appendChild($root); $project = $document->createElement('project', is_string($name) ? $name : ''); $root->appendChild($project); $root->appendChild($document->createElement('timestamp', date('Y-m-d H:i:s', (int) $_SERVER['REQUEST_TIME']))); $stats = $document->createElement('stats'); $methodsNode = $document->createElement('methods'); $report = $coverage->getReport(); unset($coverage); $fullMethodCount = 0; $fullCrapMethodCount = 0; $fullCrapLoad = 0; $fullCrap = 0; foreach ($report as $item) { $namespace = 'global'; if (!$item instanceof File) { continue; } $file = $document->createElement('file'); $file->setAttribute('name', $item->getPath()); $classes = $item->getClassesAndTraits(); foreach ($classes as $className => $class) { foreach ($class['methods'] as $methodName => $method) { $crapLoad = $this->getCrapLoad($method['crap'], $method['ccn'], $method['coverage']); $fullCrap += $method['crap']; $fullCrapLoad += $crapLoad; $fullMethodCount++; if ($method['crap'] >= $this->threshold) { $fullCrapMethodCount++; } $methodNode = $document->createElement('method'); if (!empty($class['package']['namespace'])) { $namespace = $class['package']['namespace']; } $methodNode->appendChild($document->createElement('package', $namespace)); $methodNode->appendChild($document->createElement('className', $className)); $methodNode->appendChild($document->createElement('methodName', $methodName)); $methodNode->appendChild($document->createElement('methodSignature', htmlspecialchars($method['signature']))); $methodNode->appendChild($document->createElement('fullMethod', htmlspecialchars($method['signature']))); $methodNode->appendChild($document->createElement('crap', $this->roundValue($method['crap']))); $methodNode->appendChild($document->createElement('complexity', $method['ccn'])); $methodNode->appendChild($document->createElement('coverage', $this->roundValue($method['coverage']))); $methodNode->appendChild($document->createElement('crapLoad', round($crapLoad))); $methodsNode->appendChild($methodNode); } } } $stats->appendChild($document->createElement('name', 'Method Crap Stats')); $stats->appendChild($document->createElement('methodCount', $fullMethodCount)); $stats->appendChild($document->createElement('crapMethodCount', $fullCrapMethodCount)); $stats->appendChild($document->createElement('crapLoad', round($fullCrapLoad))); $stats->appendChild($document->createElement('totalCrap', $fullCrap)); if ($fullMethodCount > 0) { $crapMethodPercent = $this->roundValue((100 * $fullCrapMethodCount) / $fullMethodCount); } else { $crapMethodPercent = 0; } $stats->appendChild($document->createElement('crapMethodPercent', $crapMethodPercent)); $root->appendChild($stats); $root->appendChild($methodsNode); $buffer = $document->saveXML(); if ($target !== null) { if (!is_dir(dirname($target))) { mkdir(dirname($target), 0777, true); } file_put_contents($target, $buffer); } return $buffer; } /** * @param float $crapValue * @param int $cyclomaticComplexity * @param float $coveragePercent * * @return float */ private function getCrapLoad($crapValue, $cyclomaticComplexity, $coveragePercent) { $crapLoad = 0; if ($crapValue >= $this->threshold) { $crapLoad += $cyclomaticComplexity * (1.0 - $coveragePercent / 100); $crapLoad += $cyclomaticComplexity / $this->threshold; } return $crapLoad; } /** * @param float $value * * @return float */ private function roundValue($value) { return round($value, 2); } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Report\Html; use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; use SebastianBergmann\CodeCoverage\RuntimeException; /** * Generates an HTML report from a code coverage object. */ class Facade { /** * @var string */ private $templatePath; /** * @var string */ private $generator; /** * @var int */ private $lowUpperBound; /** * @var int */ private $highLowerBound; /** * Constructor. * * @param int $lowUpperBound * @param int $highLowerBound * @param string $generator */ public function __construct($lowUpperBound = 50, $highLowerBound = 90, $generator = '') { $this->generator = $generator; $this->highLowerBound = $highLowerBound; $this->lowUpperBound = $lowUpperBound; $this->templatePath = __DIR__ . '/Renderer/Template/'; } /** * @param CodeCoverage $coverage * @param string $target */ public function process(CodeCoverage $coverage, $target) { $target = $this->getDirectory($target); $report = $coverage->getReport(); unset($coverage); if (!isset($_SERVER['REQUEST_TIME'])) { $_SERVER['REQUEST_TIME'] = time(); } $date = date('D M j G:i:s T Y', $_SERVER['REQUEST_TIME']); $dashboard = new Dashboard( $this->templatePath, $this->generator, $date, $this->lowUpperBound, $this->highLowerBound ); $directory = new Directory( $this->templatePath, $this->generator, $date, $this->lowUpperBound, $this->highLowerBound ); $file = new File( $this->templatePath, $this->generator, $date, $this->lowUpperBound, $this->highLowerBound ); $directory->render($report, $target . 'index.html'); $dashboard->render($report, $target . 'dashboard.html'); foreach ($report as $node) { $id = $node->getId(); if ($node instanceof DirectoryNode) { if (!file_exists($target . $id)) { mkdir($target . $id, 0777, true); } $directory->render($node, $target . $id . '/index.html'); $dashboard->render($node, $target . $id . '/dashboard.html'); } else { $dir = dirname($target . $id); if (!file_exists($dir)) { mkdir($dir, 0777, true); } $file->render($node, $target . $id . '.html'); } } $this->copyFiles($target); } /** * @param string $target */ private function copyFiles($target) { $dir = $this->getDirectory($target . '.css'); file_put_contents( $dir . 'bootstrap.min.css', str_replace( 'url(../fonts/', 'url(../.fonts/', file_get_contents($this->templatePath . 'css/bootstrap.min.css') ) ); copy($this->templatePath . 'css/nv.d3.min.css', $dir . 'nv.d3.min.css'); copy($this->templatePath . 'css/style.css', $dir . 'style.css'); $dir = $this->getDirectory($target . '.fonts'); copy($this->templatePath . 'fonts/glyphicons-halflings-regular.eot', $dir . 'glyphicons-halflings-regular.eot'); copy($this->templatePath . 'fonts/glyphicons-halflings-regular.svg', $dir . 'glyphicons-halflings-regular.svg'); copy($this->templatePath . 'fonts/glyphicons-halflings-regular.ttf', $dir . 'glyphicons-halflings-regular.ttf'); copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff', $dir . 'glyphicons-halflings-regular.woff'); copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff2', $dir . 'glyphicons-halflings-regular.woff2'); $dir = $this->getDirectory($target . '.js'); copy($this->templatePath . 'js/bootstrap.min.js', $dir . 'bootstrap.min.js'); copy($this->templatePath . 'js/d3.min.js', $dir . 'd3.min.js'); copy($this->templatePath . 'js/holder.min.js', $dir . 'holder.min.js'); copy($this->templatePath . 'js/html5shiv.min.js', $dir . 'html5shiv.min.js'); copy($this->templatePath . 'js/jquery.min.js', $dir . 'jquery.min.js'); copy($this->templatePath . 'js/nv.d3.min.js', $dir . 'nv.d3.min.js'); copy($this->templatePath . 'js/respond.min.js', $dir . 'respond.min.js'); copy($this->templatePath . 'js/file.js', $dir . 'file.js'); } /** * @param string $directory * * @return string * * @throws RuntimeException */ private function getDirectory($directory) { if (substr($directory, -1, 1) != DIRECTORY_SEPARATOR) { $directory .= DIRECTORY_SEPARATOR; } if (is_dir($directory)) { return $directory; } if (@mkdir($directory, 0777, true)) { return $directory; } throw new RuntimeException( sprintf( 'Directory "%s" does not exist.', $directory ) ); } } * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage\Report\Html; use SebastianBergmann\CodeCoverage\Node\AbstractNode; use SebastianBergmann\CodeCoverage\Node\File as FileNode; use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; use SebastianBergmann\CodeCoverage\Version; use SebastianBergmann\Environment\Runtime; /** * Base class for node renderers. */ abstract class Renderer { /** * @var string */ protected $templatePath; /** * @var string */ protected $generator; /** * @var string */ protected $date; /** * @var int */ protected $lowUpperBound; /** * @var int */ protected $highLowerBound; /** * @var string */ protected $version; /** * Constructor. * * @param string $templatePath * @param string $generator * @param string $date * @param int $lowUpperBound * @param int $highLowerBound */ public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound) { $this->templatePath = $templatePath; $this->generator = $generator; $this->date = $date; $this->lowUpperBound = $lowUpperBound; $this->highLowerBound = $highLowerBound; $this->version = Version::id(); } /** * @param \Text_Template $template * @param array $data * * @return string */ protected function renderItemTemplate(\Text_Template $template, array $data) { $numSeparator = ' / '; if (isset($data['numClasses']) && $data['numClasses'] > 0) { $classesLevel = $this->getColorLevel($data['testedClassesPercent']); $classesNumber = $data['numTestedClasses'] . $numSeparator . $data['numClasses']; $classesBar = $this->getCoverageBar( $data['testedClassesPercent'] ); } else { $classesLevel = ''; $classesNumber = '0' . $numSeparator . '0'; $classesBar = ''; $data['testedClassesPercentAsString'] = 'n/a'; } if ($data['numMethods'] > 0) { $methodsLevel = $this->getColorLevel($data['testedMethodsPercent']); $methodsNumber = $data['numTestedMethods'] . $numSeparator . $data['numMethods']; $methodsBar = $this->getCoverageBar( $data['testedMethodsPercent'] ); } else { $methodsLevel = ''; $methodsNumber = '0' . $numSeparator . '0'; $methodsBar = ''; $data['testedMethodsPercentAsString'] = 'n/a'; } if ($data['numExecutableLines'] > 0) { $linesLevel = $this->getColorLevel($data['linesExecutedPercent']); $linesNumber = $data['numExecutedLines'] . $numSeparator . $data['numExecutableLines']; $linesBar = $this->getCoverageBar( $data['linesExecutedPercent'] ); } else { $linesLevel = ''; $linesNumber = '0' . $numSeparator . '0'; $linesBar = ''; $data['linesExecutedPercentAsString'] = 'n/a'; } $template->setVar( [ 'icon' => isset($data['icon']) ? $data['icon'] : '', 'crap' => isset($data['crap']) ? $data['crap'] : '', 'name' => $data['name'], 'lines_bar' => $linesBar, 'lines_executed_percent' => $data['linesExecutedPercentAsString'], 'lines_level' => $linesLevel, 'lines_number' => $linesNumber, 'methods_bar' => $methodsBar, 'methods_tested_percent' => $data['testedMethodsPercentAsString'], 'methods_level' => $methodsLevel, 'methods_number' => $methodsNumber, 'classes_bar' => $classesBar, 'classes_tested_percent' => isset($data['testedClassesPercentAsString']) ? $data['testedClassesPercentAsString'] : '', 'classes_level' => $classesLevel, 'classes_number' => $classesNumber ] ); return $template->render(); } /** * @param \Text_Template $template * @param AbstractNode $node */ protected function setCommonTemplateVariables(\Text_Template $template, AbstractNode $node) { $template->setVar( [ 'id' => $node->getId(), 'full_path' => $node->getPath(), 'path_to_root' => $this->getPathToRoot($node), 'breadcrumbs' => $this->getBreadcrumbs($node), 'date' => $this->date, 'version' => $this->version, 'runtime' => $this->getRuntimeString(), 'generator' => $this->generator, 'low_upper_bound' => $this->lowUpperBound, 'high_lower_bound' => $this->highLowerBound ] ); } protected function getBreadcrumbs(AbstractNode $node) { $breadcrumbs = ''; $path = $node->getPathAsArray(); $pathToRoot = []; $max = count($path); if ($node instanceof FileNode) { $max--; } for ($i = 0; $i < $max; $i++) { $pathToRoot[] = str_repeat('../', $i); } foreach ($path as $step) { if ($step !== $node) { $breadcrumbs .= $this->getInactiveBreadcrumb( $step, array_pop($pathToRoot) ); } else { $breadcrumbs .= $this->getActiveBreadcrumb($step); } } return $breadcrumbs; } protected function getActiveBreadcrumb(AbstractNode $node) { $buffer = sprintf( '