diff --git a/.gitignore b/.gitignore index ec2b7a2..9bea433 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,2 @@ -nbproject/* -*.json~ -*.php~ -*.gitignore~ + .DS_Store diff --git a/LICENSE b/LICENSE deleted file mode 100644 index d4de9c1..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (C) 2012, TelTech Systems, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 7817d76..0000000 --- a/README.md +++ /dev/null @@ -1,109 +0,0 @@ -**PLEASE NOTE THAT THIS LIBRARY IS NOT ACTIVELY MAINTAINED BY TELAPI** - -telapi-php -========== - -This PHP library is an open source tool built to simplify interaction with the [TelAPI](http://telapi.com) telephony platform. TelAPI makes adding voice and SMS to applications fun and easy. - -For this libraries full documentation visit: http://telapi.github.com/telapi-php - -For more information about TelAPI visit: [telapi.com/features](http://www.telapi.com/features) or [telapi.com/docs](http://www.telapi.com/docs) - ---- - -Installation -============ - -#### Via Pear - -At the moment we don't support the PEAR package but will in the near future! - -##### PHP 5.2+ Required (5.3+ recommended) - -#### Via GitHub clone - -Access terminal and run the following code: - -```shell - $ cd ~ - $ git clone https://github.com/TelAPI/telapi-php.git - $ cd telapi-php -``` - -#### Via Download - -##### Step 1 - -Download the [.zip file](https://github.com/telapi/telapi-php/zipball/master). - -##### Step 2 - -Once the .zip download is complete, extract it and get started with the examples below. - - ---- - -Usage -====== - -### REST - -[TelAPI REST API documentation](http://www.telapi.com/docs/api/rest/) - -##### Send SMS Example - -```php - setOptions(array( - 'account_sid' => '{AccountSid}', - 'auth_token' => '{AuthToken}', -)); - -// Send the SMS -$sms_message = $telapi->create('sms_messages', array( - 'From' => '+12223334444', - 'To' => '+15550001212', - 'Body' => "This is an SMS message sent from the TelAPI PHP wrapper! Easy as 1, 2, 3!" -)); - -print_r($sms_message); -``` - -### InboundXML - -InboundXML is an XML dialect which enables you to control phone call flow. For more information please visit the [TelAPI InboundXML documentation](http://www.telapi.com/docs/api/inboundxml/) - -##### Example - -```php -say('Welcome to TelAPI. This is a sample InboundXML document.', array('voice' => 'man')); - -echo $inbound_xml; -``` - -will render - -```xml - - - Welcome to TelAPI. This is a sample InboundXML document. - -``` - -Just host that PHP file somewhere, buy a phone number in your [TelAPI Account Dashboard](https://www.telapi.com/dashboard/) and assign the URL of that PHP page to your new number. Whenever you dial that number, the InboundXML this page generates will be executed and you'll hear our text-to-speech engine say welcome. - ---- - -Documentation -============= -http://telapi.github.com/telapi-php diff --git a/RELEASE b/RELEASE deleted file mode 100644 index 73feb82..0000000 --- a/RELEASE +++ /dev/null @@ -1,2 +0,0 @@ -Version 0.1.0 - 01/04/2013 - Adding Rates endpoint support -Version 0.1.0 - 01/04/2013 - Adding Connect endpoint support diff --git a/composer.json b/composer.json deleted file mode 100644 index 4a859e9..0000000 --- a/composer.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "telapi/telapi-php", - "require": { - "php": ">=5.3.0", - } -} diff --git a/examples/README.md b/examples/README.md deleted file mode 100644 index ea2ca24..0000000 --- a/examples/README.md +++ /dev/null @@ -1,48 +0,0 @@ -## Run Instructions - -In order to run files located under this path you will need to follow a few short steps. Runing them is very easy :) - -Once you choose the desired example you will need to: - -#### Step 1 - Change credentials - -Every example file contains the following block of the code: - -```php -# A 36 character long AccountSid is always required. It can be described -# as the username for your account -$account_sid = '{AccountSid}'; - -# A 34 character long AuthToken is always required. It can be described -# as your account's password -$auth_token = '{AuthToken}'; -``` - -`{AccountSid}` and `{AuthToken}` must be replaced with real credentials which you can find at [TelAPI dashboard](https://www.telapi.com/dashboard) - - -#### Step 2 - Change parameters ( if needed ) - -if you are trying to run the [Send SMS](https://github.com/TelAPI/telapi-php/blob/master/examples/send-sms.php) example you will need to update following block of the code: - -```php -$sms_message = $telapi->create('sms_messages', array( - 'From' => '(XXX) XXX-XXXX', - 'To' => '(XXX) XXX-XXXX', - 'Body' => "This is an SMS message sent from the TelAPI PHP wrapper! Easy as 1, 2, 3!" -)); -``` - -where `From` and `To` must be valid phone numbers. - - -#### Step 3 - Run the code! - -There are many ways to run the example code. To run it in terminal, perform the following commands: - -**You must have PHP 5.3 or greater installed in order to run any example!** - -```shell -cd telapi-php/examples -php send-sms.php -``` \ No newline at end of file diff --git a/examples/buy-phone-number.php b/examples/buy-phone-number.php deleted file mode 100644 index d999814..0000000 --- a/examples/buy-phone-number.php +++ /dev/null @@ -1,107 +0,0 @@ - - * @license http://creativecommons.org/licenses/MIT/ MIT - * @copyright (2012) TelTech Systems, Inc. - */ - - -# A 36 character long AccountSid is always required. It can be described -# as the username for your account -$account_sid = '{AccountSid}'; - -# A 34 character long AuthToken is always required. It can be described -# as your account's password -$auth_token = '{AuthToken}'; - -# If you want the response decoded into an Array instead of an Object, set -# response_to_array to TRUE otherwise, leave it as-is -$response_to_array = false; - -# First we must import the actual TelAPI library -require_once '../library/TelApi.php'; - -# Now what we need to do is instantiate the library and set the required options defined above -$telapi = TelApi::getInstance(); - -# This is the best approach to setting multiple options recursively -# Take note that you cannot set non-existing options -$telapi -> setOptions(array( - 'account_sid' => $account_sid, - 'auth_token' => $auth_token, - 'response_to_array' => $response_to_array -)); - -# If an error occurs, TelApi_Exception will be raised. Due to this, -# it's a good idea to always do try/catch blocks while querying TelAPI -try { - - # NOTICE: THIS IS AN AUTOMATED PHONE NUMBER PURCHASING SCRIPT - - # STEP ONE: GET THE AVAILABLE PHONE NUMBER SID - - # First, you must lookup the phone number you wish to buy. - # You can do that by looking at the AvailablePhoneNumber resource: - - # Country Code of phone number. 2 digit country code required. - # Always use uppercase letters such as 'US' instead of 'us' - $country_code = strtoupper('US'); - - # Type of phone number. At the moment we only support Local phone numbers. - # Soon we'll support Tollfree numbers as well. - $phone_number_type = 'Local'; - - # This is how you can request the available phone numbers page limited to 1 record per page. - # array( 'available_phone_numbers', $country_code, $phone_number_type ) will create: - # AvailablePhoneNumbers/US/Local.json for you! - $available_numbers = $telapi->get(array( 'available_phone_numbers', $country_code, $phone_number_type ), array( - 'PageSize' => 1 - )); - - # This will be or NULL (if no numbers were available) or an E.164 based phone number from TelAPI - $available_phone_number = null; - - # Because we can have multiple available phone numbers in a list if we choose - # we cannot access numbers as in instance mode ( $instance -> sid ) and instead - # we need to loop thru numbers, or in this case, the AvailablePhoneNumber resource, - # fetch first instance, access phone number value and then break. - foreach($available_numbers->items() as $available_number) { - $available_phone_number = $available_number->phone_number; - break; - } - - # In case there's no available_phone_number (if it's null) throw LogicException - # LogicException is native to PHP so you don't have to worry about if that's part of - # TelAPI or not. - if(is_null($available_phone_number)) { - throw new LogicException( - "Available phone number cannot be found, and therefore, purchase of phone number cannot continue" - ); - } - - # STEP TWO: REGISTER THE NEW PHONE NUMBER - - # Now what we need to do is to register the phone number by creating a new - # call to incoming_phone_numbers with the PhoneNumber POST parameter - # If phone number is not available you'll see the ('Invalid Phone Number') error - $incoming_numbers = $telapi->create('incoming_phone_numbers', array( - 'PhoneNumber' => $available_phone_number - )); - - # Iterate over incoming phone numbers - foreach($incoming_numbers->items() as $number) { - print_r($number); - } - -} catch (Exception $e) { - echo "Error occured: " . $e->getMessage() . "\n"; - exit; -} \ No newline at end of file diff --git a/examples/carrier-lookup.php b/examples/carrier-lookup.php deleted file mode 100644 index 88be984..0000000 --- a/examples/carrier-lookup.php +++ /dev/null @@ -1,62 +0,0 @@ - - * @license http://creativecommons.org/licenses/MIT/ MIT - * @copyright (2012) TelTech Systems, Inc. - */ - -# First we must import the actual TelAPI library -require_once '../library/TelApi.php'; - - -# A 36 character long AccountSid is always required. It can be described -# as the username for your account -$account_sid = '{AccountSid}'; - -# A 34 character long AuthToken is always required. It can be described -# as your account's password -$auth_token = '{AuthToken}'; - -# Phone Number you wish to query against. Take under notice that filter_e164 helper used bellow is not required. -$phone_number = TelApi_Helpers::filter_e164('{PhoneNumber}'); - - -# If you want the response decoded into an Array instead of an Object, set -# response_to_array to TRUE otherwise, leave it as-is -$response_to_array = false; - - -# Now what we need to do is instantiate the library and set the required options defined above -$telapi = TelApi::getInstance(); - -# This is the best approach to setting multiple options recursively -# Take note that you cannot set non-existing options -$telapi -> setOptions(array( - 'account_sid' => $account_sid, - 'auth_token' => $auth_token, - 'response_to_array' => $response_to_array -)); - -# If an error occurs, TelApi_Exception will be raised. Due to this, -# it's a good idea to always do try/catch blocks while querying TelAPI -try { - - # The code bellow will fetch the carrier lookup record - $carrier = $telapi->create('carrier', array( 'PhoneNumber' => $phone_number)); - - # Printing response object - print_r($carrier); - -} catch (TelApi_Exception $e) { - echo "Error occured: " . $e->getMessage() . "\n"; - exit; -} \ No newline at end of file diff --git a/examples/create-call.php b/examples/create-call.php deleted file mode 100644 index 5827857..0000000 --- a/examples/create-call.php +++ /dev/null @@ -1,68 +0,0 @@ - - * @license http://creativecommons.org/licenses/MIT/ MIT - * @copyright (2012) TelTech Systems, Inc. - */ - - -# A 36 character long AccountSid is always required. It can be described -# as the username for your account -$account_sid = '{AccountSid}'; - -# A 34 character long AuthToken is always required. It can be described -# as your account's password -$auth_token = '{AuthToken}'; - -# If you want the response decoded into an Array instead of an Object, set -# response_to_array to TRUE, otherwise, leave it as-is -$response_to_array = false; - - -# First we must import the actual TelAPI library -require_once '../library/TelApi.php'; - -# Now what we need to do is instantiate the library and set the required options defined above -$telapi = TelApi::getInstance(); - -# This is the best approach to setting multiple options recursively -# Take note that you cannot set non-existing options -$telapi -> setOptions(array( - 'account_sid' => $account_sid, - 'auth_token' => $auth_token, - 'response_to_array' => $response_to_array -)); - -# If an error occurs, TelApi_Exception will be raised. Due to this, -# it's a good idea to always do try/catch blocks while querying TelAPI -try { - - # NOTICE: The code bellow will initiate a new call message. - - # TelApi_Helpers::filter_e164 is a internal, wrapper helper to help you work with phone numbers and their formatting - # For more information about E.164, please visit: http://en.wikipedia.org/wiki/E.164 - - $call = $telapi->create('calls', array( - 'From' => '(XXX) XXX-XXXX', - 'To' => '(XXX) XXX-XXXX', - 'Url' => "http://www.telapi.com/ivr/welcome/call" - )); - - # If you wish to get the Call SID just created then use: - print_r($call->sid); - - # If you wish to get back the full response object/array then use: - print_r($call->getResponse()); - -} catch (TelApi_Exception $e) { - echo "Error occured: " . $e->getMessage() . "\n"; - exit; -} diff --git a/examples/generate-client-token.php b/examples/generate-client-token.php deleted file mode 100644 index c5c3a52..0000000 --- a/examples/generate-client-token.php +++ /dev/null @@ -1,73 +0,0 @@ - - * @license http://creativecommons.org/licenses/MIT/ MIT - * @copyright (2012) TelAPI, Inc. - */ - - -# A 36 character long AccountSid is always required. It can be described -# as the username for your account - -$account_sid = '{AccountSid}'; - -# A 34 character long AuthToken is always required. It can be described -# as your account's password - -$auth_token = '{AuthToken}'; - -# If you want the response decoded into an Array instead of an Object, set -# response_to_array to TRUE; otherwise, leave it as-is - -$response_to_array = false; - -# First we must import the actual TelAPI library - -require_once '../library/TelApi.php'; - -# Then instantiate the library and set the required options defined above - -$telapi = TelApi::getInstance(); - -# This is the best approach to setting multiple options recursively -# Take note that you cannot set non-existing options - -$telapi -> setOptions(array( - 'account_sid' => $account_sid, - 'auth_token' => $auth_token, - 'response_to_array' => $response_to_array -)); - -# Now get the client class - -$telapi_client = $telapi->getClient(); - -# Lastly, generate the client token -# In order to do so, you will need to have a valid Application and Application SID created via REST API -# or website: https://www.telapi.com/numbers/applications/ - -$application_sid = '{ApplicationSid}'; - -# In the even this wrapper enounters an error, this exception will be thrown. Always use exceptions to catch and view errors -try { - $telapi_client -> generateToken($application_sid); -} catch(Exception $e) { - die( sprintf("We could not generate token due to : %s \n", $e->getMessage()) ); -} - -# If the token is created successfully, it will be printed below - -echo sprintf("Client Token for Application '%s' is: '%s' \n", $application_sid, $telapi_client->getToken($application_sid)); - - - - - diff --git a/examples/list-available-numbers.php b/examples/list-available-numbers.php deleted file mode 100644 index ebaca56..0000000 --- a/examples/list-available-numbers.php +++ /dev/null @@ -1,74 +0,0 @@ - - * @license http://creativecommons.org/licenses/MIT/ MIT - * @copyright (2012) TelTech Systems, Inc. - */ - - -# A 36 character long AccountSid is always required. It can be described -# as the username for your account -$account_sid = '{AccountSid}'; - -# A 34 character long AuthToken is always required. It can be described -# as your account's password -$auth_token = '{AuthToken}'; - -# If you want the response decoded into an Array instead of an Object, set -# response_to_array to TRUE otherwise, leave it as-is -$response_to_array = false; - - -# First we must import the actual TelAPI library -require_once '../library/TelApi.php'; - -# Now what we need to do is instantiate the library and set the required options defined above -$telapi = TelApi::getInstance(); - -# This is the best approach to setting multiple options recursively -# Take note that you cannot set non-existing options -$telapi -> setOptions(array( - 'account_sid' => $account_sid, - 'auth_token' => $auth_token, - 'response_to_array' => $response_to_array -)); - -# If an error occurs, TelApi_Exception will be raised. Due to this, -# it's a good idea to always do try/catch blocks while querying TelAPI -try { - - # The AvailablePhoneNumbers resource is used to help with purchasing a phone number. - # With this resource you can list ALL available phone numbers based on the phone type and the country code - - # Country Code of phone number. 2 digit country code required. - # Always use uppercase letters such as 'US' instead of 'us' - $country_code = strtoupper('US'); - - # Type of phone number. At the moment we only support Local phone numbers. - # Soon we'll support Tollfree numbers as well. - $phone_number_type = 'Local'; - - # This is how you can request the available phone numbers page limited to 5 records per page. - # array( 'available_phone_numbers', $country_code, $phone_number_type ) will create: - # AvailablePhoneNumbers/US/Local.json for you! - $available_numbers = $telapi->get(array( 'available_phone_numbers', $country_code, $phone_number_type ), array( - 'PageSize' => 5 - )); - - # Iteration over available phone numbers - foreach($available_numbers->items() as $number) { - print_r($number); - } - -} catch (TelApi_Exception $e) { - echo "Error occured: " . $e->getMessage() . "\n"; - exit; -} \ No newline at end of file diff --git a/examples/list-calls.php b/examples/list-calls.php deleted file mode 100644 index 5b0f65e..0000000 --- a/examples/list-calls.php +++ /dev/null @@ -1,60 +0,0 @@ - - * @license http://creativecommons.org/licenses/MIT/ MIT - * @copyright (2012) TelTech Systems, Inc. - */ - - -# A 36 character long AccountSid is always required. It can be described -# as the username for your account -$account_sid = '{AccountSid}'; - -# A 34 character long AuthToken is always required. It can be described -# as your account's password -$auth_token = '{AuthToken}'; - -# If you want the response decoded into an Array instead of an Object, set -# response_to_array to TRUE otherwise, leave it as-is -$response_to_array = false; - - -# First we must import the actual TelAPI library -require_once '../library/TelApi.php'; - -# Now what we need to do is instantiate the library and set the required options defined above -$telapi = TelApi::getInstance(); - -# This is the best approach to setting multiple options recursively -# Take note that you cannot set non-existing options -$telapi -> setOptions(array( - 'account_sid' => $account_sid, - 'auth_token' => $auth_token, - 'response_to_array' => $response_to_array -)); - -# If an error occurs, TelApi_Exception will be raised. Due to this, -# it's a good idea to always do try/catch blocks while querying TelAPI -try { - - # The code bellow will fetch the call details with 10 records per page (PageSize). - $calls = $telapi->get('calls', array( 'PageSize' => 10)); - - # In order to access the resource iterator you'll need to use ->items() method. - foreach($calls->items() as $call) { - print_r($call); - } - -} catch (TelApi_Exception $e) { - echo "Error occured: " . $e->getMessage() . "\n"; - exit; -} \ No newline at end of file diff --git a/examples/list-incoming-phone-numbers.php b/examples/list-incoming-phone-numbers.php deleted file mode 100644 index 55c0bdf..0000000 --- a/examples/list-incoming-phone-numbers.php +++ /dev/null @@ -1,62 +0,0 @@ - - * @license http://creativecommons.org/licenses/MIT/ MIT - * @copyright (2012) TelTech Systems, Inc. - */ - - -# A 36 character long AccountSid is always required. It can be described -# as the username for your account -$account_sid = '{AccountSid}'; - -# A 34 character long AuthToken is always required. It can be described -# as your account's password -$auth_token = '{AuthToken}'; - -# If you want the response decoded into an Array instead of an Object, set -# response_to_array to TRUE, otherwise, leave it as-is -$response_to_array = false; - - -# First we must import the actual TelAPI library -require_once '../library/TelApi.php'; - -# Now what we need to do is instantiate the library and set the required options defined above -$telapi = TelApi::getInstance(); - -# This is the best approach to setting multiple options recursively -# Take note that you cannot set non-existing options -$telapi -> setOptions(array( - 'account_sid' => $account_sid, - 'auth_token' => $auth_token, - 'response_to_array' => $response_to_array -)); - -# If an error occurs, TelApi_Exception will be raised. Due to this, -# it's a good idea to always do try/catch blocks while querying TelAPI -try { - - # The code below will fetch IncomingPhoneNumbers details with 5 records per page (PageSize). - $incoming_numbers = $telapi->get('incoming_phone_numbers', array( - 'PageSize' => 5 - )); - - # Iterate over incoming phone numbers - foreach($incoming_numbers->items() as $number) { - print_r($number); - } - -} catch (TelApi_Exception $e) { - echo "Error occured: " . $e->getMessage() . "\n"; - exit; -} \ No newline at end of file diff --git a/examples/send-sms.php b/examples/send-sms.php deleted file mode 100644 index 5d77d5e..0000000 --- a/examples/send-sms.php +++ /dev/null @@ -1,68 +0,0 @@ - - * @license http://creativecommons.org/licenses/MIT/ MIT - * @copyright (2012) TelTech Systems, Inc. - */ - - -# A 36 character long AccountSid is always required. It can be described -# as the username for your account -$account_sid = '{AccountSid}'; - -# A 34 character long AuthToken is always required. It can be described -# as your account's password -$auth_token = '{AuthToken}'; - -# If you want the response decoded into an Array instead of an Object, set -# response_to_array to TRUE, otherwise, leave it as-is -$response_to_array = false; - - -# First we must import the actual TelAPI library -require_once '../library/TelApi.php'; - -# Now what we need to do is instantiate the library and set the required options defined above -$telapi = TelApi::getInstance(); - -# This is the best approach to setting multiple options recursively -# Take note that you cannot set non-existing options -$telapi -> setOptions(array( - 'account_sid' => $account_sid, - 'auth_token' => $auth_token, - 'response_to_array' => $response_to_array -)); - -# If an error occurs, TelApi_Exception will be raised. Due to this, -# it's a good idea to always do try/catch blocks while querying TelAPI -try { - - # NOTICE: The code below will send a new SMS message. - - # TelApi_Helpers::filter_e164 is a internal wrapper helper to help you work with phone numbers and their formatting - # For more information about E.164, please visit: http://en.wikipedia.org/wiki/E.164 - - $sms_message = $telapi->create('sms_messages', array( - 'From' => '(XXX) XXX-XXXX', - 'To' => '(XXX) XXX-XXXX', - 'Body' => "This is an SMS message sent from the TelAPI PHP wrapper! Easy as 1, 2, 3!" - )); - - # If you wish to get back the SMS/Message SID just created then use: - print_r($sms_message->sid); - - # If you wish to get back the full response object/array then use: - print_r($sms_message->getResponse()); - -} catch (TelApi_Exception $e) { - echo "Error occured: " . $e->getMessage() . "\n"; - exit; -} \ No newline at end of file diff --git a/examples/view-account.php b/examples/view-account.php deleted file mode 100644 index ef84eae..0000000 --- a/examples/view-account.php +++ /dev/null @@ -1,59 +0,0 @@ - - * @license http://creativecommons.org/licenses/MIT/ MIT - * @copyright (2012) TelTech Systems, Inc. - */ - - -# A 36 character long AccountSid is always required. It can be described -# as the username for your account -$account_sid = '{AccountSid}'; - -# A 34 character long AuthToken is always required. It can be described -# as your account's password -$auth_token = '{AuthToken}'; - -# If you want the response decoded into an Array instead of an Object, set -# response_to_array to TRUE otherwise, leave it as-is -$response_to_array = false; - -# First we must import the actual TelAPI library -require_once '../library/TelApi.php'; - -# Now what we need to do is instantiate the library and set the required options defined above -$telapi = TelApi::getInstance(); - -# This is the best approach to setting multiple options recursively -# Take note that you cannot set non-existing options -$telapi -> setOptions(array( - 'account_sid' => $account_sid, - 'auth_token' => $auth_token, - 'response_to_array' => $response_to_array -)); - -# If an error occurs, TelApi_Exception will be raised. Due to this, -# it's a good idea to always do try/catch blocks while querying TelAPI -try { - - # The code below will fetch your account details - $account_details = $telapi->get('accounts'); - - # If you wish to get back the Account SID then use: - print_r($account_details->sid); - - # If you wish to get back the full response object/array use: - print_r($account_details->getResponse()); - -} catch (TelApi_Exception $e) { - echo "Error occured: " . $e->getMessage() . "\n"; - exit; -} \ No newline at end of file diff --git a/examples/view-connect-account.php b/examples/view-connect-account.php deleted file mode 100644 index 338ba57..0000000 --- a/examples/view-connect-account.php +++ /dev/null @@ -1,91 +0,0 @@ - - * @license http://creativecommons.org/licenses/MIT/ MIT - * @copyright (2012) TelTech Systems, Inc. - */ - - -# A 36 character long AccountSid is always required. It can be described -# as the username for your account -$account_sid = '{AccountSid}'; - -# A 34 character long AuthToken is always required. It can be described -# as your account's password -$auth_token = '{AuthToken}'; - -# If you want the response decoded into an Array instead of an Object, set -# response_to_array to TRUE otherwise, leave it as-is -$response_to_array = false; - -# First we must import the actual TelAPI library -require_once '../library/TelApi.php'; - -# Now what we need to do is instantiate the library and set the required options defined above -$telapi = TelApi::getInstance(); - -# This is the best approach to setting multiple options recursively -# Take note that you cannot set non-existing options -$telapi -> setOptions(array( - 'account_sid' => $account_sid, - 'auth_token' => $auth_token, - 'response_to_array' => $response_to_array -)); - -# In order to use connect client you need this: -$telapi -> getConnect() -> setCredentials( - '{ConnectSid}', '{AccessKey}', '{AccessToken}' -); - -# If an error occurs, TelApi_Exception will be raised. Due to this, -# it's a good idea to always do try/catch blocks while querying TelAPI -try { - - /** GET ACCOUNT OVER CONNECT CLIENT **/ - - # The code below will fetch your account details - $account_details = $telapi->get('accounts'); - - # If you wish to get back the Account SID then use: - print_r($account_details->sid); - - # If you wish to get back the full response object/array use: - print_r($account_details->getResponse()); - - - echo "\n\n----------------------------------------------------\n\n"; - - - /** GET DEVELOPER ACCOUNT **/ - - # This method will disable connect and from this moment, until connect is again enabled, - # main developer account will be used. - $telapi->getConnect()->disable(); - - - # The code below will fetch your account details - $account_details = $telapi->get('accounts'); - - # If you wish to get back the Account SID then use: - print_r($account_details->sid); - - # If you wish to get back the full response object/array use: - print_r($account_details->getResponse()); - - - # Let's go enable connect client again :) - $telapi->getConnect()->enable(); - - -} catch (TelApi_Exception $e) { - echo "Error occured: " . $e->getMessage() . "\n"; - exit; -} \ No newline at end of file diff --git a/examples/view-sms-message.php b/examples/view-sms-message.php deleted file mode 100644 index 8eaf8b0..0000000 --- a/examples/view-sms-message.php +++ /dev/null @@ -1,60 +0,0 @@ - - * @license http://creativecommons.org/licenses/MIT/ MIT - * @copyright (2012) TelTech Systems, Inc. - */ - - -# A 36 character long AccountSid is always required. It can be described -# as the username for your account -$account_sid = '{AccountSid}'; - -# A 34 character long AuthToken is always required. It can be described -# as your account's password -$auth_token = '{AuthToken}'; - -# If you want the response decoded into an Array instead of an Object, set -# response_to_array to TRUE otherwise, leave it as-is -$response_to_array = false; - -# First we must import the actual TelAPI library -require_once '../library/TelApi.php'; - -# Now what we need to do is instantiate the library and set the required options defined above -$telapi = TelApi::getInstance(); - -# This is the best approach to setting multiple options recursively -# Take note that you cannot set non-existing options -$telapi -> setOptions(array( - 'account_sid' => $account_sid, - 'auth_token' => $auth_token, - 'response_to_array' => $response_to_array -)); - -# If an error occurs, TelApi_Exception will be raised. Due to this, -# it's a good idea to always do try/catch blocks while querying TelAPI -try { - - # ARRAY as the first argument is due to mutliple components in the resource uri /sms_messages/{SMSMessageSid} - $sms_message = $telapi->get(array( 'sms_messages', '{SMSMessageSid}' )); - - # If you wish to get back the SMS/Message SID then use: - print_r($sms_message->sid); - - # If you wish to get back the full response object/array use: - print_r($sms_message->getResponse()); - -} catch (TelApi_Exception $e) { - echo "Error occured: " . $e->getMessage() . "\n"; - exit; -} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..00ff35a --- /dev/null +++ b/index.html @@ -0,0 +1,2195 @@ + + + + TelAPI-PHP Reference + + + + + + + + +
+
+TelAPI +
+
+ +
+
+

TelAPI-PHP Reference

+
+
+ +
+
+
+ +

InboundXML

+ +

We've made generating InboundXML with this library as intuitive as possible by defining a simple code design pattern which corresponds to the structure of the XML. The best way to understand this pattern is to take a look at an example:

+ +
+$inbound_xml = new TelApi_InboundXML();
+
+echo $inbound_xml;
+
+/*
+<?xml version="1.0"?>
+</Response>
+*/
+
+ +

First and foremost, you need to instantiate a new InboundXML object. This assignment alone begins the process of generating the xml. As shown above, if we echo $inbound_xml, the start of the base elements required for an InboundXML document are output.

+ +
+$inbound_xml = new TelApi_InboundXML();
+
+$inbound_xml->record();
+
+echo $inbound_xml;
+
+/*
+<?xml version="1.0"?>
+<Response><Record/></Response>
+*/
+
+ +

Creating elements is super easy. Simply reference the element you would like to add to the XML document with pointer notation as shown above.

+ +
+$inbound_xml = new TelApi_InboundXML();
+
+$inbound_xml->record(array('action'=>'http://foo-url.com/'));
+
+$inbound_xml->say('hello!', array('voice'=>'man'));
+
+echo $inbound_xml;
+
+/*
+<?xml version="1.0"?>
+<Response>
+<Record action="http://foo-url.com/">
+<Say voice="man">hello!</Say>
+</Response>
+*/
+
+ +

The elements can take two parameters: the first (or only) may be a string of text. If no string parameter is provided, the element will output an empty-element tag, which is what is desired in the case of record. The second parameter (or only) parameter may be an array containing key value pairs to be used as element attributes. The example above demonstrates both of these patterns.

+ +
+$inbound_xml = new TelApi_InboundXML();
+
+$inbound_xml->record(array('action'=>'http://foo-url.com/'));
+
+$inbound_xml->say('hello!', array('voice'=>'man'));
+
+$inbound_xml->dial()->conference('ConfRoom');
+
+echo $inbound_xml;
+
+/*
+<?xml version="1.0"?>
+<Response>
+<Record action="http://foo-url.com/">
+<Say voice="man">hello!</Say>
+<Dial><Conference>ConfRoom</Conference></Dial>
+</Response>
+*/
+
+ +

The last design pattern to be aware of is used for nesting elements. To nest an element within another, just use pointer notation from the parent element to the nested element. This is demonstrated by the code above which outputs a conference element nested within a dial.

+ + +

REST API

+ +

Before using any of the TelAPI REST methods available, you must authenticate your account. Do so by including your REST API credentials in the following way:

+ +
+$telapi = TelApi::getInstance();
+$telapi -> setOptions(array(
+    'account_sid'       => '{AccountSid}',
+    'auth_token'        => '{AuthToken}',
+));
+
+ +

By default, the responses and resources returned by TelAPI are stored as objects. To store responses as arrays instead, simply include 'response_to_array' => true in the setOptions array when authenticating.

+ +

Query Methods

+ +

In addition to setOptions, there are only four other methods you might use to interact with TelAPI:

+ +
+$telapi->get()          // used to view or list resources
+
+$telapi->create()     // used to create resources (make call, send sms, etc.)
+
+$telapi->update()   // used to update resources
+
+$telapi->delete() // used to delete resources
+
+ +

Query Method Request Format

+

The above query methods will take at least one parameter and at most two (delete will only take one). The first (or only) parameter may be either a string or an array and defines the URL path components to use with the API request. An array is used for the first parameter when multiple URL components are required. The second parameter that may be passed will always be an array containing key value pairs defining the API request parameters. See below for query method usage examples.

+ +

Parameter Format

+

All keys passed to the second query method array parameter defining the REST API options and behavior must be PascalCased.

+ +

Accounts

+ +

View Account

+ + Documentation
+ +

Request and print an account resource:

+ +
+$account = $telapi->get('accounts');
+
+print_r($account->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [sid] => {AccountSid}
+    [friendly_name] => foo@email.com
+    [status] => active
+    [account_balance] => 38.193200
+    [date_created] => Wed, 14 Mar 2012 16:47:29 +0000
+    [date_updated] => Thu, 4 Oct 2012 13:58:47 +0000
+    [uri] => /v1/Accounts/{AccountSid}.json
+    [type] => Full
+    [timezone] => EST
+    [subresource_uris] => stdClass Object
+        (
+            [available_phone_numbers] => /v1/Accounts/{AccountSid}/AvailablePhoneNumbers.json
+            [calls] => /v1/Accounts/{AccountSid}/Calls.json
+            [conferencess] => /v1/Accounts/{AccountSid}/Conferencess.json
+            [incoming_phone_numbers] => /v1/Accounts/{AccountSid}/IncomingPhoneNumbers.json
+            [notifications] => /v1/Accounts/{AccountSid}/Notifications.json
+            [recordings] => /v1/Accounts/{AccountSid}/Recordings.json
+            [sms_messages] => /v1/Accounts/{AccountSid}/SMS/Messages.json
+            [transcriptions] => /v1/Accounts/{AccountSid}/Transcriptions.json
+            [transactions] => /v1/Accounts/{AccountSid}/Transactions.json
+            [applications] => /v1/Accounts/{AccountSid}/Applications.json
+            [fraud] => /v1/Accounts/{AccountSid}/Fraud.json
+            [cnam] => /v1/Accounts/{AccountSid}/CNAM.json
+            [carrier] => /v1/Accounts/{AccountSid}/Carrier.json
+            [usages] => /v1/Accounts/{AccountSid}/Usages.json
+        )
+
+)
+
+ + +

View Usage

+ + Documentation
+ + +

Request and print a usage resource:

+ + +
+$usage = $telapi->get(array(
+        'usages',
+        '{usageSid}'
+));
+
+print_r($usage->getResponse());                     
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [sid] => {UsageSid}
+    [product] => Inbound Call
+    [day] => 5
+    [month] => 10
+    [year] => 2012
+    [quantity] => 2
+    [average_cost] => 0.010000
+    [total_cost] => 0.020000
+    [uri] => /v1/Accounts/{AccountSid}/Usages/{UsageSid}.json
+)
+
+ +

List Usages

+ + Documentation
+ + +

Request and print a usage list resource with an optional pagesize parameter:

+ + +
+$usages = $telapi->get('usages',array(
+    'PageSize' => '5'
+));
+ 
+# Print content of the usages object
+print_r($usages->getResponse());                   
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [page] => 0
+    [num_pages] => 1
+    [page_size] => 5
+    [total] => 8
+    [start] => 0
+    [end] => 4
+    [uri] => /v1/Accounts/{AccountSid}/Usages.json
+    [first_page_uri] => /v1/Accounts/{AccountSid}/Usages.json?Page=0&PageSize=5
+    [previous_page_uri] => 
+    [next_page_uri] => 
+    [last_page_uri] => /v1/Accounts/{AccountSid}/Usages.json?Page=0&PageSize=5
+    [usages] => Array
+        (
+            [0] => stdClass Object
+                (
+                    [sid] => {UsageSid}
+                    [product] => Inbound Call
+                    [day] => 27
+                    [month] => 9
+                    [year] => 2012
+                    [quantity] => 2
+                    [average_cost] => 0.010000
+                    [total_cost] => 0.020000
+                    [uri] => /v1/Accounts/{AccountSid}/Usages/{UsageSid}.json
+                )
+
+            [1] => stdClass Object
+                (
+                    [sid] => {UsageSid}
+                    [product] => Recurring Inbound Channel
+                    [day] => 1
+                    [month] => 10
+                    [year] => 2012
+                    [quantity] => 1
+                    [average_cost] => 27.000000
+                    [total_cost] => 27.000000
+                    [uri] => /v1/Accounts/{AccountSid}/Usages/{UsageSid}.json
+                )
+
+            [2] => stdClass Object
+                (
+                    [sid] => {UsageSid}
+                    [product] => Outbound Call (Spoofed)
+                    [day] => 1
+                    [month] => 10
+                    [year] => 2012
+                    [quantity] => 1
+                    [average_cost] => 0.058400
+                    [total_cost] => 0.058400
+                    [uri] => /v1/Accounts/{AccountSid}/Usages/{UsageSid}.json
+                )
+
+
+        )
+
+)
+
+ +

SMS

+ +

View SMS Message

+ + Documentation
+ +

Request and print an SMS resource:

+ +
+$sms_message = $telapi->get(array(
+    'sms_messages',
+    '{SmsMessageSid}'
+));
+ 
+print_r($sms_message->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [api_version] => v1
+    [sid] => {SmsMessageSid}
+    [account_sid] => {AccountSid}
+    [date_created] => Thu, 13 Sep 2012 14:26:23 +0000
+    [date_updated] => Thu, 13 Sep 2012 14:26:25 +0000
+    [date_sent] => Thu, 13 Sep 2012 14:26:25 +0000
+    [to] => +17325551234
+    [from] => +15558675309
+    [body] => Hey! Whats for dinner?
+    [status] => sent
+    [direction] => outbound-reply
+    [price] => 0.010000
+    [uri] => /v1/Accounts/{AccountSid}/SMS/Messages/{SmsMessageSid}.json
+)
+
+ +

List SMS Messages

+ + Documentation
+ +

Request and print an SMS list resource with an optional pagesize parameter:

+ +
+$sms_messages = $telapi->get('sms_messages', array(
+    'PageSize' => '5'
+));
+
+print_r($sms_messages->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [api_version] => v1
+    [sid] => {SmsMessageSid}
+    [account_sid] => {AccountSid}
+    [date_created] => Thu, 13 Sep 2012 14:26:23 +0000
+    [date_updated] => Thu, 13 Sep 2012 14:26:25 +0000
+    [date_sent] => Thu, 13 Sep 2012 14:26:25 +0000
+    [to] => +17325551234
+    [from] => +15558675309
+    [body] => Hey! Whats for dinner?
+    [status] => sent
+    [direction] => outbound-reply
+    [price] => 0.010000
+    [uri] => /v1/Accounts/{AccountSid}/SMS/Messages/{SmsMessageSid}.json
+)
+stdClass Object
+(
+    [api_version] => v1
+    [sid] => {SmsMessageSid}
+    [account_sid] => {AccountSid}
+    [date_created] => Thu, 13 Sep 2012 15:26:23 +0000
+    [date_updated] => Thu, 13 Sep 2012 15:26:25 +0000
+    [date_sent] => Thu, 13 Sep 2012 15:26:25 +0000
+    [to] => +15558675309
+    [from] => +17325551234
+    [body] => Cake.
+    [status] => sent
+    [direction] => outbound-reply
+    [price] => 0.010000
+    [uri] => /v1/Accounts/{AccountSid}/SMS/Messages/{SmsMessageSid}.json
+)
+
+ +

Send SMS Message

+ + Documentation
+ +

Use the create method along with an array of parameters to send an SMS message:

+ +
+$sms_message = $telapi->create('sms_messages', array(
+    'From' => '{SMS_Enabled_TelAPI_Number}',
+    'To' => '{SMS_Enabled_Receiving_Number}',
+    'Body' => 'This is an SMS message!'
+));
+ 
+# Print content of the sms message object
+print_r($sms_message->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [api_version] => v1
+    [sid] => {SmsMessageSid}
+    [account_sid] => {AccountSid}
+    [date_created] => Fri, 5 Oct 2012 19:51:00 +0000
+    [date_updated] => Fri, 5 Oct 2012 19:51:00 +0000
+    [date_sent] => 
+    [to] => {SMS_Enabled_TelAPI_Number}
+    [from] => {SMS_Enabled_Receiving_Number}
+    [body] => This is an SMS Message!
+    [status] => sent
+    [direction] => outbound-api
+    [price] => 0.0200000
+    [uri] => /v1/Accounts/{AccountSid}/SMS/Messages/{SmsMessageSid}.json
+)
+
+ +

Calls

+ +

View Call

+ + Documentation
+ +

Request and print a call resource:

+ +
+$call = $telapi->get(array(
+    'calls',
+    '{CallSid}'
+));
+ 
+print_r($call->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [sid] => {CallSid}
+    [date_created] => Tue, 18 Sep 2012 17:06:57 +0000
+    [date_updated] => Tue, 18 Sep 2012 17:07:56 +0000
+    [parent_call_sid] => 
+    [account_sid] => {AccountSid}
+    [to] => +17325551234
+    [from] => +6091235555
+    [phone_number_sid] => {PhoneNumberSid}
+    [status] => completed
+    [start_time] => Tue, 18 Sep 2012 17:06:57 +0000
+    [end_time] => Tue, 18 Sep 2012 17:07:56 +0000
+    [duration] => 59
+    [price] => 0.010000
+    [direction] => inbound
+    [answered_by] => None
+    [api_version] => v1
+    [forwarded_from] => 
+    [sip_privacy] => 
+    [privacy_hide_number] => False
+    [uri] => /v1/Accounts/{AccountSid}/Calls/{CallSid}.json
+    [subresource_uris] => stdClass Object
+        (
+            [notifications] => /v1/Accounts/{AccountSid}/Calls/{CallSid}/Notifications.json
+            [recordings] => /v1/Accounts/{AccountSid}/Calls/{CallSid}/Recordings.json
+        )
+
+)
+
+ + +

List Calls

+ + Documentation
+ +

Request and print a call list resource with an optional pagesize parameter:

+ +
+$calls = $telapi->get( 'calls', array(
+    'PageSize' => '5'
+));
+
+print_r($calls->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [page] => 0
+    [num_pages] => 1
+    [page_size] => 5
+    [total] => 3
+    [start] => 0
+    [end] => 0
+    [uri] => /v1/Accounts/{AccountSid}/Calls.json
+    [first_page_uri] => /v1/Accounts/{AccountSid}/Calls.json?Page=0&PageSize=5
+    [previous_page_uri] => 
+    [next_page_uri] => /v1/Accounts/{AccountSid}/Calls.json?Page=1&PageSize=5
+    [last_page_uri] => /v1/Accounts/{AccountSid}/Calls.json?Page=383&PageSize=5
+    [calls] => Array
+        (
+            [0] => stdClass Object
+                (
+                    [sid] => {CallSid}
+                    [date_created] => Fri, 5 Oct 2012 20:39:46 +0000
+                    [date_updated] => Fri, 5 Oct 2012 20:39:53 +0000
+                    [parent_call_sid] => 
+                    [account_sid] => {AccountSid}
+                    [to] => +17321235555
+                    [from] => +17325551234
+                    [phone_number_sid] => 
+                    [status] => canceled
+                    [start_time] => Fri, 5 Oct 2012 20:39:46 +0000
+                    [end_time] => Fri, 5 Oct 2012 20:39:53 +0000
+                    [duration] => 0
+                    [price] => 0.000000
+                    [direction] => outbound-api
+                    [answered_by] => None
+                    [api_version] => v1
+                    [forwarded_from] => 
+                    [sip_privacy] => None
+                    [privacy_hide_number] => False
+                    [uri] => /v1/Accounts/{AccountSid}/Calls/{CallSid}.json
+                    [subresource_uris] => stdClass Object
+                        (
+                            [notifications] => /v1/Accounts/{AccountSid}/Calls/{CallSid}/Notifications.json
+                            [recordings] => /v1/Accounts/{AccountSid}/Calls/{CallSid}/Recordings.json
+                        )
+
+                )
+
+            [1] => stdClass Object
+                (
+                    [sid] => {CallSid}
+                    [date_created] => Fri, 5 Oct 2012 13:55:05 +0000
+                    [date_updated] => Fri, 5 Oct 2012 13:55:12 +0000
+                    [parent_call_sid] => 
+                    [account_sid] => {AccountSid}
+                    [to] => +7325551234
+                    [from] => +1235551234
+                    [phone_number_sid] => {PhoneNumebrSid}
+                    [status] => completed
+                    [start_time] => Fri, 5 Oct 2012 13:55:05 +0000
+                    [end_time] => Fri, 5 Oct 2012 13:55:12 +0000
+                    [duration] => 7
+                    [price] => 0.010000
+                    [direction] => inbound
+                    [answered_by] => None
+                    [api_version] => v1
+                    [forwarded_from] => 
+                    [sip_privacy] => 
+                    [privacy_hide_number] => False
+                    [uri] => /v1/Accounts/{AccountSid}/Calls/{CallSid}.json
+                    [subresource_uris] => stdClass Object
+                        (
+                            [notifications] => /v1/Accounts/{AccountSid}/Calls/{CallSid}/Notifications.json
+                            [recordings] => /v1/Accounts/{AccountSid}/Calls/{CallSid}/Recordings.json
+                        )
+
+                )
+
+        )
+
+)
+
+ +

Make Call

+ + Documentation
+ +

Use the create method along with an array of parameters to make a call:

+ +
+$call = $telapi->create( 'calls', array(
+    'To' => '5558675309',
+    'From' => '7325551234',
+    'Url' => 'http://www.foo.com'
+));
+
+print_r($call->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [sid] => {CallSid}
+    [date_created] => Fri, 05 oct 2012 20:39:46 0
+    [date_updated>] => Fri, 05 oct 2012 20:39:46 0
+    [parent_call_sid] => 
+    [account_sid] => {AccoutSid}
+    [to] => +17312355555
+    [from] => +17325551234
+    [phone_number_sid] => 
+    [status] => in-progress
+    [start_time] => 
+    [end_time] => 
+    [duration] => 
+    [price] => 
+    [direction] => outbound-api
+    [answered_by] => 
+    [api_version>] => v1
+    [forwarded_from] => 
+    [caller_name] => 
+    [uri] => /v1/Accounts/{AccoutSid}/Calls/{CallSid}.json
+    [subresource_uris] => stdClass Object
+        (
+            [notifications] => /v1/Accounts/{AccoutSid}/Calls/{CallSid}/Notifications.json
+            [recordings] => /v1/Accounts/{AccoutSid}/Calls/{CallSid}/Recordings.json
+        )
+
+)
+
+ +

Interrupt Live Call

+ + Documentation
+ +

Use the update method to interrupt a call:

+ +
+$call = $telapi->update(
+    array( 'calls', '{CallSid}'), 
+    array( 'Url' => 'http://telapi.com/xml-redirect')
+);
+
+ +

Hangup Call

+ + Documentation
+ +

Use the update method along with a status parameter set to completed to hangup a call:

+ +
+$telapi->update(
+    array( 'calls', '{InprogressCallSid}' ),
+    array( 'Status' => 'completed' )
+);
+
+ +

Send Digits to Call

+ Documentation
+ +

Use the update method along with an array of parameters to play audio to a call:

+ +
+$telapi->update(
+    array( 'calls', '{InprogessCallSid}' ), 
+    array( 'PlayDtmf' => '123' )
+);
+
+ +

Play Audio to Call

+ + Documentation
+ +

Use the update method along with an array of parameters to play audio to a call:

+ +
+$telapi->update(
+    array( 'calls', '{InprogressCallSid}', 'Play' ),
+    array(
+    'AudioUrl' => 'http://www.example.com/file.mp3'
+));
+
+ +

Voice Effects

+ + Documentation
+ +

Use the update method along with an array of parameters to adjust voice effects during a call:

+ +
+$telapi->update( array( 'calls', '{InprogressCallSid}', 'Effect' ),
+    array(
+    'Pitch' => '5'
+));
+
+ +

Call Recording

+ + Documentation
+ +

Use the update method along with an array of parameters to start or stop recording. Whether the rest call will begin or end a recording depend on the value of the Record parameter:

+ +
+$telapi->update(
+    array( 'calls', '{InprogressCallSid}', 'Recordings' ),
+    array( 'Record' => 'true' )
+);
+
+ +

Conferences

+ +

View Conference

+ + Documentation
+ +

Request and print a conference resource:

+ +
+$conference = $telapi->get(
+    array( 'conferences', '{ConferenceSid}' )
+);
+ 
+print_r($conference->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [sid] => {ConferenceSid}
+    [friendly_name] => ExampleConference
+    [account_sid] => {AccountSid}
+    [participant_count] => 2
+    [run_time] => 30
+    [status] => completed
+    [uri] => /v1/Accounts/{AccountSid}/Conferences/{ConferenceSid}.json
+    [date_created] => Mon, 8 Oct 2012 15:51:30 +0000
+    [date_updated] => Mon, 8 Oct 2012 15:53:03 +0000
+    [subresource_uris] => stdClass Object
+        (
+            [participants] => /v1/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants.json
+        )
+
+)
+
+ +

List Conferences

+ + Documentation
+ +

Request and print a conferences list resource with an optional pagesize parameter:

+ +
+$conferences = $telapi->get( 'conferences', array(
+    'PageSize' => '5'
+));
+
+print_r($conferences->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [page] => 0
+    [num_pages] => 2
+    [page_size] => 5
+    [total] => 14
+    [start] => 0
+    [end] => 4
+    [uri] => /v1/Accounts/{AccountSid}/Conferences.json
+    [first_page_uri] => /v1/Accounts/{AccountSid}/Conferences.json?Page=0&PageSize=5
+    [previous_page_uri] => 
+    [next_page_uri] => /v1/Accounts/{AccountSid}/Conferences.json?Page=1&PageSize=5
+    [last_page_uri] => /v1/Accounts/{AccountSid}/Conferences.json?Page=1&PageSize=5
+    [conferences] => Array
+        (
+            [0] => stdClass Object
+                (
+                    [sid] => {ConferenceSid}
+                    [friendly_name] => someconference
+                    [account_sid] => {AccountSid}
+                    [participant_count] => 0
+                    [run_time] => 0
+                    [status] => completed
+                    [uri] => /v1/Accounts/{AccountSid}/Conferences/{ConferenceSid}.json
+                    [date_created] => Mon, 8 Oct 2012 15:51:30 +0000
+                    [date_updated] => Mon, 8 Oct 2012 15:53:03 +0000
+                    [subresource_uris] => stdClass Object
+                        (
+                            [participants] => /v1/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants.json
+                        )
+
+                )
+
+            [1] => stdClass Object
+                (
+                    [sid] => {ConferenceSid}
+                    [friendly_name] => testconference
+                    [account_sid] => {AccountSid}
+                    [participant_count] => 0
+                    [run_time] => 0
+                    [status] => completed
+                    [uri] => /v1/Accounts/{AccountSid}/Conferences/{ConferenceSid}.json
+                    [date_created] => Mon, 8 Oct 2012 15:39:15 +0000
+                    [date_updated] => Mon, 8 Oct 2012 15:45:14 +0000
+                    [subresource_uris] => stdClass Object
+                        (
+                            [participants] => /v1/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants.json
+                        )
+
+                )
+
+            [2] => stdClass Object
+                (
+                    [sid] => {ConferenceSid}
+                    [friendly_name] => conferenconame
+                    [account_sid] => {AccountSid}
+                    [participant_count] => 0
+                    [run_time] => 0
+                    [status] => completed
+                    [uri] => /v1/Accounts/{AccountSid}/Conferences/{ConferenceSid}.json
+                    [date_created] => Mon, 17 Sep 2012 17:28:01 +0000
+                    [date_updated] => Mon, 17 Sep 2012 17:32:24 +0000
+                    [subresource_uris] => stdClass Object
+                        (
+                            [participants] => /v1/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants.json
+                        )
+
+                )
+
+        )
+
+)
+
+ +

View Participant

+ + Documentation
+ +

Request and print a conference participant resource:

+ +
+$participant = $telapi->get(array( 
+'conferences', '{ConferenceSid}', 'Participants', '{CallSid}' 
+));
+ 
+print_r($participant->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [call_sid] => {Callsid}
+    [conference_sid] => {ConferenceSid}
+    [account_sid] => {AccountSid}
+    [muted] => false
+    [deaf] => false
+    [caller_name] => LAKEWOOD, NJ
+    [caller_number] => 7325551234
+    [duration] => 41
+    [uri] => /v1/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants/{Callsid}
+    [date_created] => Mon, 8 Oct 2012 17:44:12 +0000
+    [date_updated] => Mon, 8 Oct 2012 17:44:12 +0000
+)
+
+ +

List Participants

+ + Documentation
+ +

Request and print a conference participant list resource with an optional pagesize parameter:

+ +
+$participant = $telapi->get(array(
+'conferences', '{ConferenceSid}', 'Participants'
+),
+array(PageSize => '5'));
+
+print_r($participant);
+
+ +

print_r example output:

+ +
+Array
+(
+    [0] => stdClass Object
+        (
+            [call_sid] => {CallSid}
+            [conference_sid] => {ConferenceSid}
+            [account_sid] => {AccountSid}
+            [muted] => false
+            [deaf] => false
+            [caller_name] => LAKEWOOD, NJ
+            [caller_number] => 7325551234
+            [duration] => 100
+            [uri] => /v1/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants/{CallSid}
+            [date_created] => Mon, 8 Oct 2012 17:47:19 +0000
+            [date_updated] => Mon, 8 Oct 2012 17:47:19 +0000
+        )
+
+    [1] => stdClass Object
+        (
+            [call_sid] => {CallSid}
+            [conference_sid] => {ConferenceSid}
+            [account_sid] => {AccountSid}
+            [muted] => false
+            [deaf] => false
+            [caller_name] => JOHN SMITH    
+            [caller_number] => 12165551342
+            [duration] => 7
+            [uri] => /v1/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants/{CallSid}
+            [date_created] => Mon, 8 Oct 2012 17:48:52 +0000
+            [date_updated] => Mon, 8 Oct 2012 17:48:52 +0000
+        )
+
+)
+
+ +

Deaf or Mute Participant

+ + Documentation
+ +

Use the update method to deaf or mute a conference participant:

+ +
+$telapi->update(
+    array( 'conferences', '{ConferenceSid}', 'Participants', '{CallSid}' ),
+    array( 
+    'Muted' => 'true',
+    'Deaf' => 'false'
+    )
+);
+
+ +

Hangup Participant

+ + Documentation
+ +

Use the delete method to hangup a conference participant:

+ +
+$participant = $telapi->delete(
+    array( 'conferences', '{ConferenceSid}', 'Participants', '{CallSid}' )
+);
+
+ +

Play Audio to Participant

+ + Documentation
+ +

Use the update method to play audio to a participant:

+ +
+$telapi->update(
+    array( 'conferences', '{ConferenceSid}', 'Participants', '{CallSid}', 'Play' ),
+    array(
+    'AudioUrl' => 'http://foo.com/file.mp3'
+    )
+);
+
+ +

Applications

+ +

View Application

+ + Documentation
+ +

Request and print an application resource:

+ +
+$application = $telapi->get(array(
+    'applications',
+    '{ApplicationSid}'
+));
+ 
+print_r($application->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [sid] => {ApplicationSid}
+    [date_created] => Mon, 30 Jul 2012 16:53:23 +0000
+    [date_updated] => Tue, 31 Jul 2012 13:39:21 +0000
+    [account_sid] => {AccountSid}
+    [friendly_name] => ExampleApplication
+    [api_version] => v1
+    [voice_url] => http://www.test.com
+    [voice_method] => POST
+    [voice_fallback_url] => 
+    [voice_fallback_method] => POST
+    [heartbeat_url] => 
+    [heartbeat_method] => POST
+    [hangup_callback] => 
+    [hangup_callback_method] => POST
+    [voice_caller_id_lookup] => False
+    [sms_url] => 
+    [sms_method] => POST
+    [sms_fallback_url] => 
+    [sms_fallback_method] => POST
+    [sms_status_callback] => 
+    [sms_status_callback_method] => POST
+    [uri] => /v1/Accounts/{AccountSid}/Applications/{ApplicationSid}.json
+)
+
+ +

List Application

+ + Documentation
+ +

Request and print an application list resource with an optional pagesize parameter:

+ +
+$applications = $telapi->get('applications', array(
+    'PageSize' => '5'
+));
+
+print_r($applications->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [page] => 0
+    [num_pages] => 0
+    [page_size] => 5
+    [total] => 3
+    [start] => 0
+    [end] => 3
+    [uri] => /v1/Accounts/{AccountSid}/Applications.json
+    [first_page_uri] => /v1/Accounts/{AccountSid}/Applications.json?Page=0&PageSize=5
+    [previous_page_uri] => 
+    [next_page_uri] => /v1/Accounts/{AccountSid}/Applications.json?Page=-1&PageSize=5
+    [last_page_uri] => /v1/Accounts/{AccountSid}/Applications.json?Page=-1&PageSize=5
+    [applications] => Array
+        (
+            [0] => stdClass Object
+                (
+                    [sid] => {ApplicationSid}
+                    [date_created] => Mon, 30 Jul 2012 16:53:23 +0000
+                    [date_updated] => Tue, 31 Jul 2012 13:39:21 +0000
+                    [account_sid] => {AccountSid}
+                    [friendly_name] => ExampleApplication
+                    [api_version] => v1
+                    [voice_url] => http://www.test.com
+                    [voice_method] => POST
+                    [voice_fallback_url] => 
+                    [voice_fallback_method] => POST
+                    [heartbeat_url] => 
+                    [heartbeat_method] => POST
+                    [hangup_callback] => 
+                    [hangup_callback_method] => POST
+                    [voice_caller_id_lookup] => False
+                    [sms_url] => 
+                    [sms_method] => POST
+                    [sms_fallback_url] => 
+                    [sms_fallback_method] => POST
+                    [sms_status_callback] => 
+                    [sms_status_callback_method] => POST
+                    [uri] => /v1/Accounts/{AccountSid}/Applications/{ApplicationSid}.json
+                )
+
+            [1] => stdClass Object
+                (
+                    [sid] => {ApplicationSid}
+                    [date_created] => Tue, 31 Jul 2012 13:34:16 +0000
+                    [date_updated] => Tue, 31 Jul 2012 13:34:16 +0000
+                    [account_sid] => {AccountSid}
+                    [friendly_name] => asdfasf
+                    [api_version] => v1
+                    [voice_url] => 
+                    [voice_method] => POST
+                    [voice_fallback_url] => 
+                    [voice_fallback_method] => POST
+                    [heartbeat_url] => 
+                    [heartbeat_method] => POST
+                    [hangup_callback] => 
+                    [hangup_callback_method] => POST
+                    [voice_caller_id_lookup] => False
+                    [sms_url] => 
+                    [sms_method] => POST
+                    [sms_fallback_url] => 
+                    [sms_fallback_method] => POST
+                    [sms_status_callback] => 
+                    [sms_status_callback_method] => POST
+                    [uri] => /v1/Accounts/{AccountSid}/Applications/{ApplicationSid}.json
+                )
+        )
+
+)
+
+ +

Create Application

+ + Documentation
+ +

Use the create method along with an array of parameters to create an application:

+ +
+$telapi->create('applications', array(
+     'FriendlyName' => 'exampleApp'
+));
+
+ +

Update Application

+ + Documentation
+ +

Use the update method along with an array of parameters to create an application:

+ +
+$telapi->update(
+    array( 'applications', '{ApplicationSid}'), 
+    array( 'FriendlyName' => 'updatedFriendlyName' )
+);
+
+ +

Delete Application

+ + Documentation
+ +

Use the delete method to delete an application:

+ +
+$telapi->delete(array(
+    'applications',
+    '{ApplicationSid}'
+));
+
+ +

Incoming Phone Numbers

+ +

View Incoming Phone Number

+ + Documentation
+ +

Request and print an incoming phone number resource:

+ +
+$incoming_number = $telapi->get(array( 
+    'incoming_phone_numbers', '{IncomingPhoneNumberSid}' 
+));
+ 
+print_r($incoming_number->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [sid] => {IncomingPhoneNumberSid}
+    [account_sid] => {AccountSid}
+    [friendly_name] => exampleName
+    [phone_number] => +11235554567
+    [type] => local
+    [voice_application_sid] => 
+    [voice_url] =>  http://telapi.com/ivr/welcome/voice
+    [voice_method] => POST
+    [voice_fallback_url] => 
+    [voice_fallback_method] => POST
+    [voice_caller_id_lookup] => false
+    [date_created] => Thu, 22 Mar 2012 00:00:00 +0000
+    [date_updated] => Mon, 1 Oct 2012 05:00:03 +0000
+    [sms_application_sid] => 
+    [sms_url] =>  http://telapi.com/ivr/welcome/sms 
+    [sms_method] => POST
+    [sms_fallback_url] => 
+    [sms_fallback_method] => POST
+    [heartbeat_url] => 
+    [heartbeat_method] => POST
+    [capabilities] => stdClass Object
+        (
+            [voice] => True
+            [sms] => True
+        )
+
+    [hangup_callback] => 
+    [hangup_callback_method] => POST
+    [api_version] => v1
+    [uri] => /v1/Accounts/{AccountSid}/IncomingPhoneNumbers/{IncomingPhoneNumberSid}.json
+)
+
+ +

List Incoming Phone Numbers

+ + Documentation
+ +

Request and print an incoming phone number list resource:

+ +
+$incoming_numbers = $telapi->get('incoming_phone_numbers', array(
+     'PageSize' => '5'
+));
+ 
+print_r($incoming_numbers->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [page] => 0
+    [num_pages] => 0
+    [page_size] => 5
+    [total] => 2
+    [start] => 0
+    [end] => 2
+    [uri] => /v1/Accounts/{AccountSid}/IncomingPhoneNumbers.json
+    [first_page_uri] => /v1/Accounts/{AccountSid}/IncomingPhoneNumbers?Page=0&PageSize=5
+    [previous_page_uri] => 
+    [next_page_uri] => /v1/Accounts/{AccountSid}/IncomingPhoneNumbers.json?Page=-1&PageSize=5
+    [last_page_uri] => /v1/Accounts/{AccountSid}/IncomingPhoneNumbers.json?Page=-1&PageSize=5
+    [incoming_phone_numbers] => Array
+        (
+            [0] => stdClass Object
+                (
+                    [sid] => {IncomingPhoneNumberSid}
+                    [account_sid] => {AccountSid}
+                    [friendly_name] => main DID
+                    [phone_number] => +15557771111
+                    [type] => local
+                    [voice_application_sid] => 
+                    [voice_url] =>  https://foo.com/file.xml
+                    [voice_method] => POST
+                    [voice_fallback_url] => 
+                    [voice_fallback_method] => POST
+                    [voice_caller_id_lookup] => false
+                    [date_created] => Thu, 22 Mar 2012 00:00:00 +0000
+                    [date_updated] => Mon, 8 Oct 2012 20:02:27 +0000
+                    [sms_application_sid] => 
+                    [sms_url] => 
+                    [sms_method] => GET
+                    [sms_fallback_url] => 
+                    [sms_fallback_method] => POST
+                    [heartbeat_url] => 
+                    [heartbeat_method] => POST
+                    [capabilities] => stdClass Object
+                        (
+                            [voice] => True
+                            [sms] => True
+                        )
+
+                    [hangup_callback] => 
+                    [hangup_callback_method] => POST
+                    [api_version] => v1
+                    [uri] => /v1/Accounts/{AccountSid}/IncomingPhoneNumbers/{IncomingPhoneNumberSid}.json
+                )
+
+            [1] => stdClass Object
+                (
+                    [sid] => {IncomingPhoneNumberSid}
+                    [account_sid] => {AccountSid}
+                    [friendly_name] => exampleName
+                    [phone_number] => +11235554567
+                    [type] => local
+                    [voice_application_sid] => 
+                    [voice_url] =>  http://telapi.com/ivr/welcome/voice
+                    [voice_method] => POST
+                    [voice_fallback_url] => 
+                    [voice_fallback_method] => POST
+                    [voice_caller_id_lookup] => false
+                    [date_created] => Thu, 22 Mar 2012 00:00:00 +0000
+                    [date_updated] => Mon, 1 Oct 2012 05:00:03 +0000
+                    [sms_application_sid] => 
+                    [sms_url] =>  http://telapi.com/ivr/welcome/sms 
+                    [sms_method] => POST
+                    [sms_fallback_url] => 
+                    [sms_fallback_method] => POST
+                    [heartbeat_url] => 
+                    [heartbeat_method] => POST
+                    [capabilities] => stdClass Object
+                        (
+                            [voice] => True
+                            [sms] => True
+                        )
+
+                    [hangup_callback] => 
+                    [hangup_callback_method] => POST
+                    [api_version] => v1
+                    [uri] => /v1/Accounts/{AccountSid}/IncomingPhoneNumbers/{IncomingPhoneNumberSid}.json
+                )
+        )
+)
+
+ +

Add Incoming Phone Number

+ + Documentation
+ +

Use the create method to add incoming phone numbers:

+ +
+$telapi->create( 'incoming_phone_numbers', array( 
+     'PhoneNumber' => '{avialbale_telapi_number}'
+));
+
+ +

Delete Incoming Phone Number

+ + Documentation
+ +

Use the delete method to delete incoming phone numbers:

+ +
+$telapi->delete(array( 
+    'incoming_phone_numbers', '{IncomingPhoneNumberSid}' 
+));
+
+ +

Update Incoming Phone Number

+ + Documentation
+ +

Use the update method along with an array of parameters to update incoming phone numbers:

+ +
+$incoming_number = $telapi->update(
+    array( 'incoming_phone_numbers', '{IncomingPhoneNumberSid}' ),
+    array( 'FriendlyName' => 'updatedFriendlyName' )
+);
+
+ +

Available Phone Numbers

+ +

List Available Phone Numbers

+ + Documentation
+ +

Request and print an available phone number list resource:

+ +
+$available_numbers = $telapi->get(array( 
+    'available_phone_numbers', '{CountryCode}', 'Local'),
+     array( 'PageSize' => '5')
+);
+ 
+print_r($available_numbers->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [page] => 0
+    [num_pages] => 18
+    [page_size] => 5
+    [total] => 94
+    [start] => 0
+    [end] => 4
+    [uri] => /v1/Accounts/{AccountSid}/AvailablePhoneNumbers/US/Local.json?PageSize=5
+    [first_page_uri] => /v1/Accounts/{AccountSid}/AvailablePhoneNumbers/US/Local.json?Page=0&PageSize=5
+    [previous_page_uri] => 
+    [next_page_uri] => /v1/Accounts/{AccountSid}/AvailablePhoneNumbers/US/Local.json?Page=1&PageSize=5
+    [last_page_uri] => /v1/Accounts/{AccountSid}/AvailablePhoneNumbers/US/Local.json?Page=17&PageSize=5
+    [available_phone_numbers] => Array
+        (
+            [0] => stdClass Object
+                (
+                    [friendly_name] => 
+                    [phone_number] => +17605556502
+                    [lata] => 
+                    [rate_center] => 
+                    [latitude] => None
+                    [longitude] => None
+                    [region] => CA
+                    [postal_code] => 
+                    [iso_country] => US
+                    [country_code] => +1
+                    [npa] => 760
+                    [exchange] => 283
+                    [city] => 
+                    [type] => local
+                    [setup_cost] => 1
+                    [monthly_cost] => 1
+                    [unblock_support] => 
+                    [voice_enabled] => 1
+                    [sms_enabled] => 1
+                    [supports_forwarded_from] => 
+                )
+
+            [1] => stdClass Object
+                (
+                    [friendly_name] => 
+                    [phone_number] => +17605556507
+                    [lata] => 
+                    [rate_center] => 
+                    [latitude] => None
+                    [longitude] => None
+                    [region] => CA
+                    [postal_code] => 
+                    [iso_country] => US
+                    [country_code] => +1
+                    [npa] => 760
+                    [exchange] => 283
+                    [city] => 
+                    [type] => local
+                    [setup_cost] => 1
+                    [monthly_cost] => 1
+                    [unblock_support] => 
+                    [voice_enabled] => 1
+                    [sms_enabled] => 1
+                    [supports_forwarded_from] => 
+                )
+
+        )
+
+)
+
+ +

Recordings

+ +

View Recording

+ + Documentation
+ +

Request and print a recording resource:

+ +
+$recording = $telapi->get(array(
+    'recordings', '{recordingSid}'
+));
+
+print_r($recording->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [sid] => {RecordingSid}
+    [account_sid] => {AccountSid}
+    [call_sid] => {CallSid}
+    [duration] => 1
+    [date_created] => Wed, 3 Oct 2012 20:34:37 +0000
+    [api_version] => v1
+    [date_updated] => Wed, 3 Oct 2012 20:34:43 +0000
+    [recording_url] => http://recordings.telapi.com/{RecordingBucket}/{RecordingSid}.mp3
+    [uri] => /v1/Accounts/{AccountSid}/Recordings/{RecordingSid}.json
+)
+
+ +

List Recording

+ + Documentation
+ +

Request and print a recording list resource:

+ +
+$recording = $telapi->get(
+    array( 'recordings' ),
+    array('PageSize' => '2')
+);
+
+print_r($recording->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [page] => 0
+    [num_pages] => 38
+    [page_size] => 2
+    [total] => 76
+    [start] => 0
+    [end] => 1
+    [uri] => /v1/Accounts/{AccountSid}/Recordings.json
+    [first_page_uri] => /v1/Accounts/{AccountSid}/Recordings.json?Page=0&PageSize=2
+    [previous_page_uri] => 
+    [next_page_uri] => /v1/Accounts/{AccountSid}/Recordings.json?Page=1&PageSize=2
+    [last_page_uri] => /v1/Accounts/{AccountSid}/Recordings.json?Page=37&PageSize=2
+    [recordings] => Array
+        (
+            [0] => stdClass Object
+                (
+                    [sid] => {RecordingSid}
+                    [account_sid] => {AccountSid}
+                    [call_sid] => {CallSid}
+                    [duration] => 7
+                    [date_created] => Mon, 8 Oct 2012 15:52:55 +0000
+                    [api_version] => v1
+                    [date_updated] => Mon, 8 Oct 2012 15:53:03 +0000
+                    [recording_url] => http://recordings.telapi.com/{RecordingBucket}/{RecordingSid}.mp3
+                    [uri] => /v1/Accounts/{AccountSid}/Recordings/{RecordingSid}.json
+                )
+
+            [1] => stdClass Object
+                (
+                    [sid] => {RecordingSid}
+                    [account_sid] => {AccountSid}
+                    [call_sid] => {CallSid}
+                    [duration] => 1
+                    [date_created] => Wed, 3 Oct 2012 20:34:37 +0000
+                    [api_version] => v1
+                    [date_updated] => Wed, 3 Oct 2012 20:34:43 +0000
+                    [recording_url] => http://recordings.telapi.com/{RecordingBucket}/{RecordingSid}.mp3
+                    [uri] => /v1/Accounts/{AccountSid}/Recordings/{RecordingSid}.json
+                )
+
+        )
+
+)
+
+ +

Notifications

+ +

View Notification

+ + Documentation
+ +

Request and print a notification resource:

+ +
+$notification = $telapi->get(array(
+    'notifications', '{NotificationSid}'
+));
+
+print_r($notification->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [sid] => {NotificationSid}
+    [account_sid] => {AccountSid}
+    [call_sid] => 
+    [api_version] => v1
+    [date_created] => Tue, 9 Oct 2012 15:03:50 +0000
+    [date_updated] => Tue, 9 Oct 2012 15:03:50 +0000
+    [log] => 0
+    [error_code] => 21227
+    [more_info] => http://telapi.com/docs/api/rest/overview/errors/21227
+    [message_text] => ErrorCode=21227&Msg=SID+Could+not+be+found&LogLevel=%280%2C+%27ERROR%27%29&ObjectType=Recording
+    [message_date] => Tue, 9 Oct 2012 15:03:50 +0000
+    [response_body] => 
+    [request_method] => GET
+    [request_url] => https://api.telapi.com/v1/Accounts/{AccountSid}/Recordings/{RecordingSid}.json
+    [request_variables] => 
+    [response_headers] => 
+    [uri] => /v1/Accounts/{AccountSid}/Notifications/{NotificationSid}.json
+)
+
+ +

List Notifications

+ + Documentation
+ +

Request and print a notification list resource with optional parameter specifying a pagesize of 2:

+ +
+$notifications = $telapi->get('notifications', array(
+        'PageSize'=>'2'
+));
+
+print_r($notifications->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [page] => 0
+    [num_pages] => 240
+    [page_size] => 2
+    [total] => 480
+    [start] => 0
+    [end] => 1
+    [uri] => /v1/Accounts/{AccountSid}/Notifications.json
+    [first_page_uri] => /v1/Accounts/{AccountSid}/Notifications.json?Page=0&PageSize=2
+    [previous_page_uri] => null
+    [next_page_uri] => /v1/Accounts/{AccountSid}/Notifications.json?Page=1&PageSize=2
+    [last_page_uri] => /v1/Accounts/{AccountSid}/Notifications.json?Page=239&PageSize=2
+    [notifications] => Array
+        (
+            [0] => stdClass Object
+                (
+                    [sid] => {NotificationSid}
+                    [account_sid] => {AccountSid}
+                    [call_sid] => 
+                    [api_version] => v1
+                    [date_created] => Tue, 9 Oct 2012 15:04:15 +0000
+                    [date_updated] => Tue, 9 Oct 2012 15:04:15 +0000
+                    [log] => 0
+                    [error_code] => 21227
+                    [more_info] => http://telapi.com/docs/api/rest/overview/errors/21227
+                    [message_text] => ErrorCode=21227&Msg=SID+Could+not+be+found&LogLevel=%280%2C+%27ERROR%27%29&ObjectType=Recording
+                    [message_date] => Tue, 9 Oct 2012 15:04:15 +0000
+                    [response_body] => 
+                    [request_method] => GET
+                    [request_url] => https://api.telapi.com/v1/Accounts/{AccountSid}/Recordings/{RecordingSid}.json
+                    [request_variables] => 
+                    [response_headers] => 
+                    [uri] => /v1/Accounts/{AccountSid}/Notifications/{NotificationSid}.json
+                )
+
+            [1] => stdClass Object
+                (
+                    [sid] => {NotificationSid}
+                    [account_sid] => {AccountSid}
+                    [call_sid] => 
+                    [api_version] => v1
+                    [date_created] => Tue, 9 Oct 2012 15:03:50 +0000
+                    [date_updated] => Tue, 9 Oct 2012 15:03:50 +0000
+                    [log] => 0
+                    [error_code] => 21227
+                    [more_info] => http://telapi.com/docs/api/rest/overview/errors/21227
+                    [message_text] => ErrorCode=21227&Msg=SID+Could+not+be+found&LogLevel=%280%2C+%27ERROR%27%29&ObjectType=Recording
+                    [message_date] => Tue, 9 Oct 2012 15:03:50 +0000
+                    [response_body] => 
+                    [request_method] => GET
+                    [request_url] => https://api.telapi.com/v1/Accounts/{AccountSid}/Recordings/{RecordingSid}.json
+                    [request_variables] => 
+                    [response_headers] => 
+                    [uri] => /v1/Accounts/{AccountSid}/Notifications/{NotificationSid}.json
+                )
+
+        )
+
+)
+
+ +

Transcriptions

+ +

View Transcriptions

+ + Documentation
+ +

Request and print a transcription resource:

+ +
+$transcription = $telapi->get(array(
+    'transcriptions', '{TranscriptionSid}'
+));
+
+print_r($transcription->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [sid] => {TranscriptionSid}
+    [date_created] => Mon, 10 Sep 2012 18:28:54 +0000
+    [date_updated] => Mon, 10 Sep 2012 18:28:54 +0000
+    [account_sid] => {AccountSid}
+    [status] => in-progress
+    [type] => platinum
+    [audio_url] => http://foo.com/file.mp3
+    [duration] => 0
+    [transcription_text] => None
+    [api_version] => v1
+    [price] => 0.000000
+    [transcribe_callback] => 
+    [callback_method] => POST
+)
+
+ +

List Transcriptions

+ + Documentation
+ +

Request and print a transcription list resource:

+ +
+$transcriptions = $telapi->get('transcriptions', array(
+    'PageSize' = '2'
+));
+
+print_r($transcriptions->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [page] => 0
+    [num_pages] => 32
+    [page_size] => 2
+    [total] => 65
+    [start] => 0
+    [end] => 1
+    [uri] => /v1/Accounts/{AccountSid}/Transcriptions.json
+    [first_page_uri] => /v1/Accounts/{AccountSid}/Transcriptions.json?Page=0&PageSize=2
+    [previous_page_uri] => 
+    [next_page_uri] => /v1/Accounts/{AccountSid}/Transcriptions.json?Page=1&PageSize=2
+    [last_page_uri] => /v1/Accounts/{AccountSid}/Transcriptions.json?Page=31&PageSize=2
+    [transcriptions] => Array
+        (
+            [0] => stdClass Object
+                (
+                    [sid] => {TranscriptionSid}
+                    [date_created] => Mon, 10 Sep 2012 18:28:54 +0000
+                    [date_updated] => Mon, 10 Sep 2012 18:28:54 +0000
+                    [account_sid] => {AccountSid}
+                    [status] => in-progress
+                    [type] => platinum
+                    [audio_url] => http://foo.com/file.mp3
+                    [duration] => 0
+                    [transcription_text] => None
+                    [api_version] => v1
+                    [price] => 0.000000
+                    [transcribe_callback] => 
+                    [callback_method] => POST
+                    [uri] => /v1/Accounts/{AccountSid}/Transcriptions/{TranscriptionSid}.json
+                )
+
+            [1] => stdClass Object
+                (
+                    [sid] => {TranscriptionSid}
+                    [date_created] => Thu, 6 Sep 2012 15:49:57 +0000
+                    [date_updated] => Thu, 6 Sep 2012 15:50:40 +0000
+                    [account_sid] => {AccountSid}
+                    [status] => completed
+                    [type] => auto
+                    [audio_url] => http://foo.com/file.mp3
+                    [duration] => 2
+                    [transcription_text] => This is a transcription.
+                    [api_version] => v1
+                    [price] => 0.050000
+                    [transcribe_callback] => 
+                    [callback_method] => POST
+                    [uri] => /v1/Accounts/{AccountSid}/Transcriptions/{TranscriptionSid}.json
+                )
+
+        )
+
+)
+
+ +

Transcribe Recording

+ + Documentation
+ +

Transcribe recordings with the create method:

+ +
+$transcribe = $telapi->create(
+    array('recordings', '{RecordingSid}', 'transcribe'),
+    array({optionalParameters})
+);
+
+ +

Transcribe Audio URL

+ + Documentation
+ +

Transcribe audio files located at external URLs with the create method:

+ +
+$transcription = $telapi->create( 'transcriptions', array( 
+    'AudioUrl' => '{fully_qualified_audio_url}' 
+));
+
+ +

Carrier Services

+ +

Carrier Look Up

+ + Documentation
+ +

Request and print a carrier look up resource:

+ +
+$carrier_resource = $telapi->get('carrier', array(
+     'PhoneNumber' => '{valid_phone_number}'
+));
+
+print_r($carrier_resource->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [page] => 0
+    [num_pages] => 0
+    [page_size] => 100
+    [total] => 1
+    [start] => 0
+    [end] => 1
+    [uri] => /v1/Accounts/{AccountSid}/Carrier.json
+    [first_page_uri] => /v1/Accounts/{AccountSid}/Carrier.json?Page=0&PageSize=100
+    [previous_page_uri] => 
+    [next_page_uri] => /v1/Accounts/{AccountSid}/Carrier.json?Page=-1&PageSize=100
+    [last_page_uri] => /v1/Accounts/{AccountSid}/Carrier.json?Page=-1&PageSize=100
+    [carrier_lookups] => Array
+        (
+            [0] => stdClass Object
+                (
+                    [api_version] => v1
+                    [sid] => {LookupSid}
+                    [account_sid] => {AccountSid}
+                    [date_created] => Tue, 9 Oct 2012 16:32:54 +0000
+                    [date_updated] => Tue, 9 Oct 2012 16:32:54 +0000
+                    [phone_number] => +1735551234
+                    [carrier] => AT&T Wireless
+                    [is_mobile] => 1
+                    [country] => 1
+                    [cic_code] => 155521
+                    [price] => 0.010000
+                    [uri] => /v1/Accounts/{AccountSid}/Carrier/{LookupSid}.json
+                )
+
+        )
+
+)
+
+ +

To look up more than one number at a time, pass the PhoneNumber value as an array:

+ +
+$telapi->get('carrier', array(
+     'PhoneNumber' => array('{lookup_#1}', '{lookup_#2}')
+));
+
+ +

CNAM (caller id) Look Up

+ + Documentation
+ +

Request and print a cnam look up resource:

+ +
+$cnam_resource = $telapi->get('cnam', array(
+     'PhoneNumber' => '{valid_phone_number}'
+));
+
+print_r($cnam_resource->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [page] => 0
+    [num_pages] => 0
+    [page_size] => 100
+    [total] => 1
+    [start] => 0
+    [end] => 1
+    [uri] => /v1/Accounts/{AccountSid}/CNAM.json
+    [first_page_uri] => /v1/Accounts/{AccountSid}/CNAM.json?Page=0&PageSize=100
+    [previous_page_uri] => 
+    [next_page_uri] => /v1/Accounts/{AccountSid}/CNAM.json?Page=-1&PageSize=100
+    [last_page_uri] => /v1/Accounts/{AccountSid}/CNAM.json?Page=-1&PageSize=100
+    [cnam_dips] => Array
+        (
+            [0] => stdClass Object
+                (
+                    [api_version] => v1
+                    [sid] => {LookupSid}
+                    [account_sid] => {AccountSid}
+                    [date_created] => Tue, 9 Oct 2012 16:27:38 +0000
+                    [date_updated] => Tue, 9 Oct 2012 16:27:39 +0000
+                    [phone_number] => +17325551234
+                    [body] => JOHN SMITH
+                    [price] => 0.010000
+                    [uri] => /v1/Accounts/{AccountSid}/CNAM/{LookupSid}.json
+                )
+
+        )
+
+)
+
+ +

To look up more than one number at a time, pass the PhoneNumber value as an array:

+ +
+$telapi->get('cnam', array(
+     'PhoneNumber' => array('{lookup_#1}', '{lookup_#2}')
+));
+
+ +

BNA (billing name address) Look Up

+ + Documentation
+ +

Request and print a BNA look up resource:

+ +
+$bna_resource = $telapi->get('bna', array(
+     'PhoneNumber' => '{valid_phone_number}'
+));
+
+print_r($bna_resource->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [page] => 0
+    [num_pages] => 0
+    [page_size] => 100
+    [total] => 1
+    [start] => 0
+    [end] => 1
+    [uri] => /v1/Accounts/{AccountSid}/BNA.json
+    [first_page_uri] => /v1/Accounts/{AccountSid}/BNA.json?Page=0&PageSize=100
+    [previous_page_uri] => 
+    [next_page_uri] => /v1/Accounts/{AccountSid}/BNA.json?Page=-1&PageSize=100
+    [last_page_uri] => /v1/Accounts/{AccountSid}/BNA.json?Page=-1&PageSize=100
+    [bna_lookups] => Array
+        (
+            [0] => stdClass Object
+                (
+                    [api_version] => v1
+                    [sid] => {LookupSid}
+                    [account_sid] => {LookupSid}
+                    [date_created] => Thu, 25 Oct 2012 19:24:19 +0000
+                    [date_updated] => Thu, 25 Oct 2012 19:24:19 +0000
+                    [phone_number] => +1735551234
+                    [first_name] => Bob
+                    [last_name] => Randomness
+                    [address] => 123 East St
+                    [city] => Trenton
+                    [state] => NJ
+                    [zip_code] => 12345
+                    [country_code] => US
+                    [price] => 0.150000
+                    [uri] => /v1/Accounts/{AccountSid}/BNA/{LookupSid}
+                )
+
+        )
+
+)
+
+ +

To look up more than one number at a time, pass the PhoneNumber value as an array:

+ +
+$telapi->get('bna', array(
+     'PhoneNumber' => array('{lookup_#1}', '{lookup_#2}')
+));
+
+

Fraud Control

+ +

List Fraud Control resources

+ + Documentation
+ +

Request and print a fraud control list resource:

+ +
+$fraud_resources = $telapi->get('fraud', array(
+     'PageSize' => '5'
+));
+
+print_r($fraud_resources->getResponse());
+
+ +

print_r example output:

+ +
+stdClass Object
+(
+    [page] => 0
+    [num_pages] => 1
+    [page_size] => 5
+    [total] => 5
+    [start] => 0
+    [end] => 4
+    [uri] => /v1/Accounts/{AccountSid}/Fraud.json
+    [first_page_uri] => /v1/Accounts/{AccountSid}/Fraud.json?Page=0&PageSize=5
+    [previous_page_uri] => 
+    [next_page_uri] => 
+    [last_page_uri] => /v1/Accounts/{AccountSid}/Fraud.json?Page=0&PageSize=5
+    [frauds] => stdClass Object
+        (
+            [max_outbound_rate] => 0.400000
+            [destinations] => stdClass Object
+                (
+                    [blocked] => Array
+                        (
+                            [0] => stdClass Object
+                                (
+                                    [country_name] => New Zealand
+                                    [country_code] => NZ
+                                    [country_prefix] => +64
+                                    [mobile_enabled] => True
+                                    [landline_enabled] => True
+                                    [sms_enabled] => True
+                                    [is_lock] => False
+                                    [date_created] => Thu, 16 Aug 2012 18:03:56 +0000
+                                    [date_updated] => Thu, 16 Aug 2012 18:03:56 +0000
+                                )
+
+                        )
+
+                    [authorized] => Array
+                        (
+                            [0] => stdClass Object
+                                (
+                                    [country_name] => Belize
+                                    [country_code] => BZ
+                                    [country_prefix] => +501
+                                    [mobile_enabled] => True
+                                    [landline_enabled] => True
+                                    [sms_enabled] => True
+                                    [is_lock] => False
+                                    [date_created] => Thu, 30 Aug 2012 13:48:00 +0000
+                                    [date_updated] => Thu, 30 Aug 2012 13:48:27 +0000
+                                    [expiration_date] => Sat, 29 Sep 2012 13:48:27 +0000
+                                )
+
+                            [1] => stdClass Object
+                                (
+                                    [country_name] => Bahrain
+                                    [country_code] => BH
+                                    [country_prefix] => +973
+                                    [mobile_enabled] => True
+                                    [landline_enabled] => True
+                                    [sms_enabled] => True
+                                    [is_lock] => False
+                                    [date_created] => Thu, 30 Aug 2012 13:48:57 +0000
+                                    [date_updated] => Thu, 30 Aug 2012 13:49:15 +0000
+                                    [expiration_date] => Sat, 29 Sep 2012 13:49:15 +0000
+                                )
+
+                        )
+
+                    [whitelisted] => Array
+                        (
+                            [0] => stdClass Object
+                                (
+                                    [country_name] => Canada
+                                    [country_code] => CA
+                                    [country_prefix] => +1
+                                    [mobile_enabled] => True
+                                    [landline_enabled] => False
+                                    [sms_enabled] => False
+                                    [is_lock] => False
+                                    [date_created] => Mon, 30 Jul 2012 19:03:07 +0000
+                                    [date_updated] => Tue, 28 Aug 2012 20:28:09 +0000
+                                )
+
+                            [1] => stdClass Object
+                                (
+                                    [country_name] => United States
+                                    [country_code] => US
+                                    [country_prefix] => +1
+                                    [mobile_enabled] => True
+                                    [landline_enabled] => True
+                                    [sms_enabled] => True
+                                    [is_lock] => True
+                                    [date_created] => Thu, 16 Aug 2012 18:07:27 +0000
+                                    [date_updated] => Wed, 22 Aug 2012 19:26:13 +0000
+                                )
+
+                        )
+
+                )
+
+        )
+
+)
+
+ +

Authorize Destination

+ + Documentation
+ +

Authorize destinations with the create method:

+ +
+$telapi->create(
+    array( 'fraud', 'Authorize',  {CountryCode})
+);
+
+ +

Extend Destination Authorization

+ + Documentation
+ +

Extend destination authorization with the create method:

+ +
+$telapi->create(
+    array( 'fraud', 'Extend',  {CountryCode})
+);
+
+ +

Block Destination

+ + Documentation
+ +

Block destinations with the create method:

+ +
+$telapi->create(
+    array( 'fraud', 'Block',  {CountryCode})
+);
+
+ +

Whitelist Destination

+ + Documentation
+ +

Whitelist destinations with the create method:

+ +
+$telapi->create(
+    array( 'fraud', 'Whitelist',  {CountryCode})
+);
+
+ + +
+ + + +
+
+ + + \ No newline at end of file diff --git a/javascripts/prettify.js b/javascripts/prettify.js new file mode 100644 index 0000000..037c26d --- /dev/null +++ b/javascripts/prettify.js @@ -0,0 +1,1477 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview + * some functions for browser-side pretty printing of code contained in html. + * + *

+ * For a fairly comprehensive set of languages see the + * README + * file that came with this source. At a minimum, the lexer should work on a + * number of languages including C and friends, Java, Python, Bash, SQL, HTML, + * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk + * and a subset of Perl, but, because of commenting conventions, doesn't work on + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. + *

+ * Usage:

    + *
  1. include this source file in an html page via + * {@code } + *
  2. define style rules. See the example page for examples. + *
  3. mark the {@code
    } and {@code } tags in your source with
    + *    {@code class=prettyprint.}
    + *    You can also use the (html deprecated) {@code } tag, but the pretty
    + *    printer needs to do more substantial DOM manipulations to support that, so
    + *    some css styles may not be preserved.
    + * </ol>
    + * That's it.  I wanted to keep the API as simple as possible, so there's no
    + * need to specify which language the code is in, but if you wish, you can add
    + * another class to the {@code <pre>} or {@code <code>} element to specify the
    + * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
    + * starts with "lang-" followed by a file extension, specifies the file type.
    + * See the "lang-*.js" files in this directory for code that implements
    + * per-language file handlers.
    + * <p>
    + * Change log:<br>
    + * cbeust, 2006/08/22
    + * <blockquote>
    + *   Java annotations (start with "@") are now captured as literals ("lit")
    + * </blockquote>
    + * @requires console
    + */
    +
    +// JSLint declarations
    +/*global console, document, navigator, setTimeout, window */
    +
    +/**
    + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
    + * UI events.
    + * If set to {@code false}, {@code prettyPrint()} is synchronous.
    + */
    +window['PR_SHOULD_USE_CONTINUATION'] = true;
    +
    +(function () {
    +  // Keyword lists for various languages.
    +  // We use things that coerce to strings to make them compact when minified
    +  // and to defeat aggressive optimizers that fold large string constants.
    +  var FLOW_CONTROL_KEYWORDS = ["break,continue,do,else,for,if,return,while"];
    +  var C_KEYWORDS = [FLOW_CONTROL_KEYWORDS,"auto,case,char,const,default," + 
    +      "double,enum,extern,float,goto,int,long,register,short,signed,sizeof," +
    +      "static,struct,switch,typedef,union,unsigned,void,volatile"];
    +  var COMMON_KEYWORDS = [C_KEYWORDS,"catch,class,delete,false,import," +
    +      "new,operator,private,protected,public,this,throw,true,try,typeof"];
    +  var CPP_KEYWORDS = [COMMON_KEYWORDS,"alignof,align_union,asm,axiom,bool," +
    +      "concept,concept_map,const_cast,constexpr,decltype," +
    +      "dynamic_cast,explicit,export,friend,inline,late_check," +
    +      "mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast," +
    +      "template,typeid,typename,using,virtual,where"];
    +  var JAVA_KEYWORDS = [COMMON_KEYWORDS,
    +      "abstract,boolean,byte,extends,final,finally,implements,import," +
    +      "instanceof,null,native,package,strictfp,super,synchronized,throws," +
    +      "transient"];
    +  var CSHARP_KEYWORDS = [JAVA_KEYWORDS,
    +      "as,base,by,checked,decimal,delegate,descending,dynamic,event," +
    +      "fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock," +
    +      "object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed," +
    +      "stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];
    +  var COFFEE_KEYWORDS = "all,and,by,catch,class,else,extends,false,finally," +
    +      "for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then," +
    +      "true,try,unless,until,when,while,yes";
    +  var JSCRIPT_KEYWORDS = [COMMON_KEYWORDS,
    +      "debugger,eval,export,function,get,null,set,undefined,var,with," +
    +      "Infinity,NaN"];
    +  var PERL_KEYWORDS = "caller,delete,die,do,dump,elsif,eval,exit,foreach,for," +
    +      "goto,if,import,last,local,my,next,no,our,print,package,redo,require," +
    +      "sub,undef,unless,until,use,wantarray,while,BEGIN,END";
    +  var PYTHON_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "and,as,assert,class,def,del," +
    +      "elif,except,exec,finally,from,global,import,in,is,lambda," +
    +      "nonlocal,not,or,pass,print,raise,try,with,yield," +
    +      "False,True,None"];
    +  var RUBY_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "alias,and,begin,case,class," +
    +      "def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo," +
    +      "rescue,retry,self,super,then,true,undef,unless,until,when,yield," +
    +      "BEGIN,END"];
    +  var SH_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "case,done,elif,esac,eval,fi," +
    +      "function,in,local,set,then,until"];
    +  var ALL_KEYWORDS = [
    +      CPP_KEYWORDS, CSHARP_KEYWORDS, JSCRIPT_KEYWORDS, PERL_KEYWORDS +
    +      PYTHON_KEYWORDS, RUBY_KEYWORDS, SH_KEYWORDS];
    +  var C_TYPES = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;
    +
    +  // token style names.  correspond to css classes
    +  /**
    +   * token style for a string literal
    +   * @const
    +   */
    +  var PR_STRING = 'str';
    +  /**
    +   * token style for a keyword
    +   * @const
    +   */
    +  var PR_KEYWORD = 'kwd';
    +  /**
    +   * token style for a comment
    +   * @const
    +   */
    +  var PR_COMMENT = 'com';
    +  /**
    +   * token style for a type
    +   * @const
    +   */
    +  var PR_TYPE = 'typ';
    +  /**
    +   * token style for a literal value.  e.g. 1, null, true.
    +   * @const
    +   */
    +  var PR_LITERAL = 'lit';
    +  /**
    +   * token style for a punctuation string.
    +   * @const
    +   */
    +  var PR_PUNCTUATION = 'pun';
    +  /**
    +   * token style for a punctuation string.
    +   * @const
    +   */
    +  var PR_PLAIN = 'pln';
    +
    +  /**
    +   * token style for an sgml tag.
    +   * @const
    +   */
    +  var PR_TAG = 'tag';
    +  /**
    +   * token style for a markup declaration such as a DOCTYPE.
    +   * @const
    +   */
    +  var PR_DECLARATION = 'dec';
    +  /**
    +   * token style for embedded source.
    +   * @const
    +   */
    +  var PR_SOURCE = 'src';
    +  /**
    +   * token style for an sgml attribute name.
    +   * @const
    +   */
    +  var PR_ATTRIB_NAME = 'atn';
    +  /**
    +   * token style for an sgml attribute value.
    +   * @const
    +   */
    +  var PR_ATTRIB_VALUE = 'atv';
    +
    +  /**
    +   * A class that indicates a section of markup that is not code, e.g. to allow
    +   * embedding of line numbers within code listings.
    +   * @const
    +   */
    +  var PR_NOCODE = 'nocode';
    +
    +
    +
    +/**
    + * A set of tokens that can precede a regular expression literal in
    + * javascript
    + * http://web.archive.org/web/20070717142515/http://www.mozilla.org/js/language/js20/rationale/syntax.html
    + * has the full list, but I've removed ones that might be problematic when
    + * seen in languages that don't support regular expression literals.
    + *
    + * <p>Specifically, I've removed any keywords that can't precede a regexp
    + * literal in a syntactically legal javascript program, and I've removed the
    + * "in" keyword since it's not a keyword in many languages, and might be used
    + * as a count of inches.
    + *
    + * <p>The link a above does not accurately describe EcmaScript rules since
    + * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
    + * very well in practice.
    + *
    + * @private
    + * @const
    + */
    +var REGEXP_PRECEDER_PATTERN = '(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*';
    +
    +// CAVEAT: this does not properly handle the case where a regular
    +// expression immediately follows another since a regular expression may
    +// have flags for case-sensitivity and the like.  Having regexp tokens
    +// adjacent is not valid in any language I'm aware of, so I'm punting.
    +// TODO: maybe style special characters inside a regexp as punctuation.
    +
    +
    +  /**
    +   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
    +   * matches the union of the sets of strings matched by the input RegExp.
    +   * Since it matches globally, if the input strings have a start-of-input
    +   * anchor (/^.../), it is ignored for the purposes of unioning.
    +   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
    +   * @return {RegExp} a global regex.
    +   */
    +  function combinePrefixPatterns(regexs) {
    +    var capturedGroupIndex = 0;
    +  
    +    var needToFoldCase = false;
    +    var ignoreCase = false;
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.ignoreCase) {
    +        ignoreCase = true;
    +      } else if (/[a-z]/i.test(regex.source.replace(
    +                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
    +        needToFoldCase = true;
    +        ignoreCase = false;
    +        break;
    +      }
    +    }
    +  
    +    var escapeCharToCodeUnit = {
    +      'b': 8,
    +      't': 9,
    +      'n': 0xa,
    +      'v': 0xb,
    +      'f': 0xc,
    +      'r': 0xd
    +    };
    +  
    +    function decodeEscape(charsetPart) {
    +      var cc0 = charsetPart.charCodeAt(0);
    +      if (cc0 !== 92 /* \\ */) {
    +        return cc0;
    +      }
    +      var c1 = charsetPart.charAt(1);
    +      cc0 = escapeCharToCodeUnit[c1];
    +      if (cc0) {
    +        return cc0;
    +      } else if ('0' <= c1 && c1 <= '7') {
    +        return parseInt(charsetPart.substring(1), 8);
    +      } else if (c1 === 'u' || c1 === 'x') {
    +        return parseInt(charsetPart.substring(2), 16);
    +      } else {
    +        return charsetPart.charCodeAt(1);
    +      }
    +    }
    +  
    +    function encodeEscape(charCode) {
    +      if (charCode < 0x20) {
    +        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
    +      }
    +      var ch = String.fromCharCode(charCode);
    +      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
    +        ch = '\\' + ch;
    +      }
    +      return ch;
    +    }
    +  
    +    function caseFoldCharset(charSet) {
    +      var charsetParts = charSet.substring(1, charSet.length - 1).match(
    +          new RegExp(
    +              '\\\\u[0-9A-Fa-f]{4}'
    +              + '|\\\\x[0-9A-Fa-f]{2}'
    +              + '|\\\\[0-3][0-7]{0,2}'
    +              + '|\\\\[0-7]{1,2}'
    +              + '|\\\\[\\s\\S]'
    +              + '|-'
    +              + '|[^-\\\\]',
    +              'g'));
    +      var groups = [];
    +      var ranges = [];
    +      var inverse = charsetParts[0] === '^';
    +      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
    +        var p = charsetParts[i];
    +        if (/\\[bdsw]/i.test(p)) {  // Don't muck with named groups.
    +          groups.push(p);
    +        } else {
    +          var start = decodeEscape(p);
    +          var end;
    +          if (i + 2 < n && '-' === charsetParts[i + 1]) {
    +            end = decodeEscape(charsetParts[i + 2]);
    +            i += 2;
    +          } else {
    +            end = start;
    +          }
    +          ranges.push([start, end]);
    +          // If the range might intersect letters, then expand it.
    +          // This case handling is too simplistic.
    +          // It does not deal with non-latin case folding.
    +          // It works for latin source code identifiers though.
    +          if (!(end < 65 || start > 122)) {
    +            if (!(end < 65 || start > 90)) {
    +              ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
    +            }
    +            if (!(end < 97 || start > 122)) {
    +              ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
    +            }
    +          }
    +        }
    +      }
    +  
    +      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
    +      // -> [[1, 12], [14, 14], [16, 17]]
    +      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
    +      var consolidatedRanges = [];
    +      var lastRange = [NaN, NaN];
    +      for (var i = 0; i < ranges.length; ++i) {
    +        var range = ranges[i];
    +        if (range[0] <= lastRange[1] + 1) {
    +          lastRange[1] = Math.max(lastRange[1], range[1]);
    +        } else {
    +          consolidatedRanges.push(lastRange = range);
    +        }
    +      }
    +  
    +      var out = ['['];
    +      if (inverse) { out.push('^'); }
    +      out.push.apply(out, groups);
    +      for (var i = 0; i < consolidatedRanges.length; ++i) {
    +        var range = consolidatedRanges[i];
    +        out.push(encodeEscape(range[0]));
    +        if (range[1] > range[0]) {
    +          if (range[1] + 1 > range[0]) { out.push('-'); }
    +          out.push(encodeEscape(range[1]));
    +        }
    +      }
    +      out.push(']');
    +      return out.join('');
    +    }
    +  
    +    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
    +      // Split into character sets, escape sequences, punctuation strings
    +      // like ('(', '(?:', ')', '^'), and runs of characters that do not
    +      // include any of the above.
    +      var parts = regex.source.match(
    +          new RegExp(
    +              '(?:'
    +              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
    +              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
    +              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
    +              + '|\\\\[0-9]+'  // a back-reference or octal escape
    +              + '|\\\\[^ux0-9]'  // other escape sequence
    +              + '|\\(\\?[:!=]'  // start of a non-capturing group
    +              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
    +              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
    +              + ')',
    +              'g'));
    +      var n = parts.length;
    +  
    +      // Maps captured group numbers to the number they will occupy in
    +      // the output or to -1 if that has not been determined, or to
    +      // undefined if they need not be capturing in the output.
    +      var capturedGroups = [];
    +  
    +      // Walk over and identify back references to build the capturedGroups
    +      // mapping.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          // groups are 1-indexed, so max group index is count of '('
    +          ++groupIndex;
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            capturedGroups[decimalValue] = -1;
    +          }
    +        }
    +      }
    +  
    +      // Renumber groups and reduce capturing groups to non-capturing groups
    +      // where possible.
    +      for (var i = 1; i < capturedGroups.length; ++i) {
    +        if (-1 === capturedGroups[i]) {
    +          capturedGroups[i] = ++capturedGroupIndex;
    +        }
    +      }
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          ++groupIndex;
    +          if (capturedGroups[groupIndex] === undefined) {
    +            parts[i] = '(?:';
    +          }
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            parts[i] = '\\' + capturedGroups[groupIndex];
    +          }
    +        }
    +      }
    +  
    +      // Remove any prefix anchors so that the output will match anywhere.
    +      // ^^ really does mean an anchored match though.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
    +      }
    +  
    +      // Expand letters to groups to handle mixing of case-sensitive and
    +      // case-insensitive patterns if necessary.
    +      if (regex.ignoreCase && needToFoldCase) {
    +        for (var i = 0; i < n; ++i) {
    +          var p = parts[i];
    +          var ch0 = p.charAt(0);
    +          if (p.length >= 2 && ch0 === '[') {
    +            parts[i] = caseFoldCharset(p);
    +          } else if (ch0 !== '\\') {
    +            // TODO: handle letters in numeric escapes.
    +            parts[i] = p.replace(
    +                /[a-zA-Z]/g,
    +                function (ch) {
    +                  var cc = ch.charCodeAt(0);
    +                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
    +                });
    +          }
    +        }
    +      }
    +  
    +      return parts.join('');
    +    }
    +  
    +    var rewritten = [];
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.global || regex.multiline) { throw new Error('' + regex); }
    +      rewritten.push(
    +          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
    +    }
    +  
    +    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
    +  }
    +
    +
    +  /**
    +   * Split markup into a string of source code and an array mapping ranges in
    +   * that string to the text nodes in which they appear.
    +   *
    +   * <p>
    +   * The HTML DOM structure:</p>
    +   * <pre>
    +   * (Element   "p"
    +   *   (Element "b"
    +   *     (Text  "print "))       ; #1
    +   *   (Text    "'Hello '")      ; #2
    +   *   (Element "br")            ; #3
    +   *   (Text    "  + 'World';")) ; #4
    +   * </pre>
    +   * <p>
    +   * corresponds to the HTML
    +   * {@code <p><b>print </b>'Hello '<br>  + 'World';</p>}.</p>
    +   *
    +   * <p>
    +   * It will produce the output:</p>
    +   * <pre>
    +   * {
    +   *   sourceCode: "print 'Hello '\n  + 'World';",
    +   *   //                 1         2
    +   *   //       012345678901234 5678901234567
    +   *   spans: [0, #1, 6, #2, 14, #3, 15, #4]
    +   * }
    +   * </pre>
    +   * <p>
    +   * where #1 is a reference to the {@code "print "} text node above, and so
    +   * on for the other text nodes.
    +   * </p>
    +   *
    +   * <p>
    +   * The {@code} spans array is an array of pairs.  Even elements are the start
    +   * indices of substrings, and odd elements are the text nodes (or BR elements)
    +   * that contain the text for those substrings.
    +   * Substrings continue until the next index or the end of the source.
    +   * </p>
    +   *
    +   * @param {Node} node an HTML DOM subtree containing source-code.
    +   * @return {Object} source code and the text nodes in which they occur.
    +   */
    +  function extractSourceSpans(node) {
    +    var nocode = /(?:^|\s)nocode(?:\s|$)/;
    +  
    +    var chunks = [];
    +    var length = 0;
    +    var spans = [];
    +    var k = 0;
    +  
    +    var whitespace;
    +    if (node.currentStyle) {
    +      whitespace = node.currentStyle.whiteSpace;
    +    } else if (window.getComputedStyle) {
    +      whitespace = document.defaultView.getComputedStyle(node, null)
    +          .getPropertyValue('white-space');
    +    }
    +    var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3);
    +  
    +    function walk(node) {
    +      switch (node.nodeType) {
    +        case 1:  // Element
    +          if (nocode.test(node.className)) { return; }
    +          for (var child = node.firstChild; child; child = child.nextSibling) {
    +            walk(child);
    +          }
    +          var nodeName = node.nodeName;
    +          if ('BR' === nodeName || 'LI' === nodeName) {
    +            chunks[k] = '\n';
    +            spans[k << 1] = length++;
    +            spans[(k++ << 1) | 1] = node;
    +          }
    +          break;
    +        case 3: case 4:  // Text
    +          var text = node.nodeValue;
    +          if (text.length) {
    +            if (!isPreformatted) {
    +              text = text.replace(/[ \t\r\n]+/g, ' ');
    +            } else {
    +              text = text.replace(/\r\n?/g, '\n');  // Normalize newlines.
    +            }
    +            // TODO: handle tabs here?
    +            chunks[k] = text;
    +            spans[k << 1] = length;
    +            length += text.length;
    +            spans[(k++ << 1) | 1] = node;
    +          }
    +          break;
    +      }
    +    }
    +  
    +    walk(node);
    +  
    +    return {
    +      sourceCode: chunks.join('').replace(/\n$/, ''),
    +      spans: spans
    +    };
    +  }
    +
    +
    +  /**
    +   * Apply the given language handler to sourceCode and add the resulting
    +   * decorations to out.
    +   * @param {number} basePos the index of sourceCode within the chunk of source
    +   *    whose decorations are already present on out.
    +   */
    +  function appendDecorations(basePos, sourceCode, langHandler, out) {
    +    if (!sourceCode) { return; }
    +    var job = {
    +      sourceCode: sourceCode,
    +      basePos: basePos
    +    };
    +    langHandler(job);
    +    out.push.apply(out, job.decorations);
    +  }
    +
    +  var notWs = /\S/;
    +
    +  /**
    +   * Given an element, if it contains only one child element and any text nodes
    +   * it contains contain only space characters, return the sole child element.
    +   * Otherwise returns undefined.
    +   * <p>
    +   * This is meant to return the CODE element in {@code <pre><code ...>} when
    +   * there is a single child element that contains all the non-space textual
    +   * content, but not to return anything where there are multiple child elements
    +   * as in {@code <pre><code>...</code><code>...</code></pre>} or when there
    +   * is textual content.
    +   */
    +  function childContentWrapper(element) {
    +    var wrapper = undefined;
    +    for (var c = element.firstChild; c; c = c.nextSibling) {
    +      var type = c.nodeType;
    +      wrapper = (type === 1)  // Element Node
    +          ? (wrapper ? element : c)
    +          : (type === 3)  // Text Node
    +          ? (notWs.test(c.nodeValue) ? element : wrapper)
    +          : wrapper;
    +    }
    +    return wrapper === element ? undefined : wrapper;
    +  }
    +
    +  /** Given triples of [style, pattern, context] returns a lexing function,
    +    * The lexing function interprets the patterns to find token boundaries and
    +    * returns a decoration list of the form
    +    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
    +    * where index_n is an index into the sourceCode, and style_n is a style
    +    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
    +    * all characters in sourceCode[index_n-1:index_n].
    +    *
    +    * The stylePatterns is a list whose elements have the form
    +    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
    +    *
    +    * Style is a style constant like PR_PLAIN, or can be a string of the
    +    * form 'lang-FOO', where FOO is a language extension describing the
    +    * language of the portion of the token in $1 after pattern executes.
    +    * E.g., if style is 'lang-lisp', and group 1 contains the text
    +    * '(hello (world))', then that portion of the token will be passed to the
    +    * registered lisp handler for formatting.
    +    * The text before and after group 1 will be restyled using this decorator
    +    * so decorators should take care that this doesn't result in infinite
    +    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
    +    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
    +    * '<script>foo()<\/script>', which would cause the current decorator to
    +    * be called with '<script>' which would not match the same rule since
    +    * group 1 must not be empty, so it would be instead styled as PR_TAG by
    +    * the generic tag rule.  The handler registered for the 'js' extension would
    +    * then be called with 'foo()', and finally, the current decorator would
    +    * be called with '<\/script>' which would not match the original rule and
    +    * so the generic tag rule would identify it as a tag.
    +    *
    +    * Pattern must only match prefixes, and if it matches a prefix, then that
    +    * match is considered a token with the same style.
    +    *
    +    * Context is applied to the last non-whitespace, non-comment token
    +    * recognized.
    +    *
    +    * Shortcut is an optional string of characters, any of which, if the first
    +    * character, gurantee that this pattern and only this pattern matches.
    +    *
    +    * @param {Array} shortcutStylePatterns patterns that always start with
    +    *   a known character.  Must have a shortcut string.
    +    * @param {Array} fallthroughStylePatterns patterns that will be tried in
    +    *   order if the shortcut ones fail.  May have shortcuts.
    +    *
    +    * @return {function (Object)} a
    +    *   function that takes source code and returns a list of decorations.
    +    */
    +  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
    +    var shortcuts = {};
    +    var tokenizer;
    +    (function () {
    +      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
    +      var allRegexs = [];
    +      var regexKeys = {};
    +      for (var i = 0, n = allPatterns.length; i < n; ++i) {
    +        var patternParts = allPatterns[i];
    +        var shortcutChars = patternParts[3];
    +        if (shortcutChars) {
    +          for (var c = shortcutChars.length; --c >= 0;) {
    +            shortcuts[shortcutChars.charAt(c)] = patternParts;
    +          }
    +        }
    +        var regex = patternParts[1];
    +        var k = '' + regex;
    +        if (!regexKeys.hasOwnProperty(k)) {
    +          allRegexs.push(regex);
    +          regexKeys[k] = null;
    +        }
    +      }
    +      allRegexs.push(/[\0-\uffff]/);
    +      tokenizer = combinePrefixPatterns(allRegexs);
    +    })();
    +
    +    var nPatterns = fallthroughStylePatterns.length;
    +
    +    /**
    +     * Lexes job.sourceCode and produces an output array job.decorations of
    +     * style classes preceded by the position at which they start in
    +     * job.sourceCode in order.
    +     *
    +     * @param {Object} job an object like <pre>{
    +     *    sourceCode: {string} sourceText plain text,
    +     *    basePos: {int} position of job.sourceCode in the larger chunk of
    +     *        sourceCode.
    +     * }</pre>
    +     */
    +    var decorate = function (job) {
    +      var sourceCode = job.sourceCode, basePos = job.basePos;
    +      /** Even entries are positions in source in ascending order.  Odd enties
    +        * are style markers (e.g., PR_COMMENT) that run from that position until
    +        * the end.
    +        * @type {Array.<number|string>}
    +        */
    +      var decorations = [basePos, PR_PLAIN];
    +      var pos = 0;  // index into sourceCode
    +      var tokens = sourceCode.match(tokenizer) || [];
    +      var styleCache = {};
    +
    +      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
    +        var token = tokens[ti];
    +        var style = styleCache[token];
    +        var match = void 0;
    +
    +        var isEmbedded;
    +        if (typeof style === 'string') {
    +          isEmbedded = false;
    +        } else {
    +          var patternParts = shortcuts[token.charAt(0)];
    +          if (patternParts) {
    +            match = token.match(patternParts[1]);
    +            style = patternParts[0];
    +          } else {
    +            for (var i = 0; i < nPatterns; ++i) {
    +              patternParts = fallthroughStylePatterns[i];
    +              match = token.match(patternParts[1]);
    +              if (match) {
    +                style = patternParts[0];
    +                break;
    +              }
    +            }
    +
    +            if (!match) {  // make sure that we make progress
    +              style = PR_PLAIN;
    +            }
    +          }
    +
    +          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
    +          if (isEmbedded && !(match && typeof match[1] === 'string')) {
    +            isEmbedded = false;
    +            style = PR_SOURCE;
    +          }
    +
    +          if (!isEmbedded) { styleCache[token] = style; }
    +        }
    +
    +        var tokenStart = pos;
    +        pos += token.length;
    +
    +        if (!isEmbedded) {
    +          decorations.push(basePos + tokenStart, style);
    +        } else {  // Treat group 1 as an embedded block of source code.
    +          var embeddedSource = match[1];
    +          var embeddedSourceStart = token.indexOf(embeddedSource);
    +          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
    +          if (match[2]) {
    +            // If embeddedSource can be blank, then it would match at the
    +            // beginning which would cause us to infinitely recurse on the
    +            // entire token, so we catch the right context in match[2].
    +            embeddedSourceEnd = token.length - match[2].length;
    +            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
    +          }
    +          var lang = style.substring(5);
    +          // Decorate the left of the embedded source
    +          appendDecorations(
    +              basePos + tokenStart,
    +              token.substring(0, embeddedSourceStart),
    +              decorate, decorations);
    +          // Decorate the embedded source
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceStart,
    +              embeddedSource,
    +              langHandlerForExtension(lang, embeddedSource),
    +              decorations);
    +          // Decorate the right of the embedded section
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceEnd,
    +              token.substring(embeddedSourceEnd),
    +              decorate, decorations);
    +        }
    +      }
    +      job.decorations = decorations;
    +    };
    +    return decorate;
    +  }
    +
    +  /** returns a function that produces a list of decorations from source text.
    +    *
    +    * This code treats ", ', and ` as string delimiters, and \ as a string
    +    * escape.  It does not recognize perl's qq() style strings.
    +    * It has no special handling for double delimiter escapes as in basic, or
    +    * the tripled delimiters used in python, but should work on those regardless
    +    * although in those cases a single string literal may be broken up into
    +    * multiple adjacent string literals.
    +    *
    +    * It recognizes C, C++, and shell style comments.
    +    *
    +    * @param {Object} options a set of optional parameters.
    +    * @return {function (Object)} a function that examines the source code
    +    *     in the input job and builds the decoration list.
    +    */
    +  function sourceDecorator(options) {
    +    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
    +    if (options['tripleQuotedStrings']) {
    +      // '''multi-line-string''', 'single-line-string', and double-quoted
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
    +           null, '\'"']);
    +    } else if (options['multiLineStrings']) {
    +      // 'multi-line-string', "multi-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
    +           null, '\'"`']);
    +    } else {
    +      // 'single-line-string', "single-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,
    +           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
    +           null, '"\'']);
    +    }
    +    if (options['verbatimStrings']) {
    +      // verbatim-string-literal production from the C# grammar.  See issue 93.
    +      fallthroughStylePatterns.push(
    +          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
    +    }
    +    var hc = options['hashComments'];
    +    if (hc) {
    +      if (options['cStyleComments']) {
    +        if (hc > 1) {  // multiline hash comments
    +          shortcutStylePatterns.push(
    +              [PR_COMMENT, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']);
    +        } else {
    +          // Stop C preprocessor declarations at an unclosed open comment
    +          shortcutStylePatterns.push(
    +              [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
    +               null, '#']);
    +        }
    +        fallthroughStylePatterns.push(
    +            [PR_STRING,
    +             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
    +             null]);
    +      } else {
    +        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
    +      }
    +    }
    +    if (options['cStyleComments']) {
    +      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
    +      fallthroughStylePatterns.push(
    +          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
    +    }
    +    if (options['regexLiterals']) {
    +      /**
    +       * @const
    +       */
    +      var REGEX_LITERAL = (
    +          // A regular expression literal starts with a slash that is
    +          // not followed by * or / so that it is not confused with
    +          // comments.
    +          '/(?=[^/*])'
    +          // and then contains any number of raw characters,
    +          + '(?:[^/\\x5B\\x5C]'
    +          // escape sequences (\x5C),
    +          +    '|\\x5C[\\s\\S]'
    +          // or non-nesting character sets (\x5B\x5D);
    +          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
    +          // finally closed by a /.
    +          + '/');
    +      fallthroughStylePatterns.push(
    +          ['lang-regex',
    +           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
    +           ]);
    +    }
    +
    +    var types = options['types'];
    +    if (types) {
    +      fallthroughStylePatterns.push([PR_TYPE, types]);
    +    }
    +
    +    var keywords = ("" + options['keywords']).replace(/^ | $/g, '');
    +    if (keywords.length) {
    +      fallthroughStylePatterns.push(
    +          [PR_KEYWORD,
    +           new RegExp('^(?:' + keywords.replace(/[\s,]+/g, '|') + ')\\b'),
    +           null]);
    +    }
    +
    +    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
    +    fallthroughStylePatterns.push(
    +        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
    +        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_TYPE,        /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null],
    +        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_LITERAL,
    +         new RegExp(
    +             '^(?:'
    +             // A hex number
    +             + '0x[a-f0-9]+'
    +             // or an octal or decimal number,
    +             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
    +             // possibly in scientific notation
    +             + '(?:e[+\\-]?\\d+)?'
    +             + ')'
    +             // with an optional modifier like UL for unsigned long
    +             + '[a-z]*', 'i'),
    +         null, '0123456789'],
    +        // Don't treat escaped quotes in bash as starting strings.  See issue 144.
    +        [PR_PLAIN,       /^\\[\s\S]?/, null],
    +        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#\\]*/, null]);
    +
    +    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
    +  }
    +
    +  var decorateSource = sourceDecorator({
    +        'keywords': ALL_KEYWORDS,
    +        'hashComments': true,
    +        'cStyleComments': true,
    +        'multiLineStrings': true,
    +        'regexLiterals': true
    +      });
    +
    +  /**
    +   * Given a DOM subtree, wraps it in a list, and puts each line into its own
    +   * list item.
    +   *
    +   * @param {Node} node modified in place.  Its content is pulled into an
    +   *     HTMLOListElement, and each line is moved into a separate list item.
    +   *     This requires cloning elements, so the input might not have unique
    +   *     IDs after numbering.
    +   */
    +  function numberLines(node, opt_startLineNum) {
    +    var nocode = /(?:^|\s)nocode(?:\s|$)/;
    +    var lineBreak = /\r\n?|\n/;
    +  
    +    var document = node.ownerDocument;
    +  
    +    var whitespace;
    +    if (node.currentStyle) {
    +      whitespace = node.currentStyle.whiteSpace;
    +    } else if (window.getComputedStyle) {
    +      whitespace = document.defaultView.getComputedStyle(node, null)
    +          .getPropertyValue('white-space');
    +    }
    +    // If it's preformatted, then we need to split lines on line breaks
    +    // in addition to <BR>s.
    +    var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3);
    +  
    +    var li = document.createElement('LI');
    +    while (node.firstChild) {
    +      li.appendChild(node.firstChild);
    +    }
    +    // An array of lines.  We split below, so this is initialized to one
    +    // un-split line.
    +    var listItems = [li];
    +  
    +    function walk(node) {
    +      switch (node.nodeType) {
    +        case 1:  // Element
    +          if (nocode.test(node.className)) { break; }
    +          if ('BR' === node.nodeName) {
    +            breakAfter(node);
    +            // Discard the <BR> since it is now flush against a </LI>.
    +            if (node.parentNode) {
    +              node.parentNode.removeChild(node);
    +            }
    +          } else {
    +            for (var child = node.firstChild; child; child = child.nextSibling) {
    +              walk(child);
    +            }
    +          }
    +          break;
    +        case 3: case 4:  // Text
    +          if (isPreformatted) {
    +            var text = node.nodeValue;
    +            var match = text.match(lineBreak);
    +            if (match) {
    +              var firstLine = text.substring(0, match.index);
    +              node.nodeValue = firstLine;
    +              var tail = text.substring(match.index + match[0].length);
    +              if (tail) {
    +                var parent = node.parentNode;
    +                parent.insertBefore(
    +                    document.createTextNode(tail), node.nextSibling);
    +              }
    +              breakAfter(node);
    +              if (!firstLine) {
    +                // Don't leave blank text nodes in the DOM.
    +                node.parentNode.removeChild(node);
    +              }
    +            }
    +          }
    +          break;
    +      }
    +    }
    +  
    +    // Split a line after the given node.
    +    function breakAfter(lineEndNode) {
    +      // If there's nothing to the right, then we can skip ending the line
    +      // here, and move root-wards since splitting just before an end-tag
    +      // would require us to create a bunch of empty copies.
    +      while (!lineEndNode.nextSibling) {
    +        lineEndNode = lineEndNode.parentNode;
    +        if (!lineEndNode) { return; }
    +      }
    +  
    +      function breakLeftOf(limit, copy) {
    +        // Clone shallowly if this node needs to be on both sides of the break.
    +        var rightSide = copy ? limit.cloneNode(false) : limit;
    +        var parent = limit.parentNode;
    +        if (parent) {
    +          // We clone the parent chain.
    +          // This helps us resurrect important styling elements that cross lines.
    +          // E.g. in <i>Foo<br>Bar</i>
    +          // should be rewritten to <li><i>Foo</i></li><li><i>Bar</i></li>.
    +          var parentClone = breakLeftOf(parent, 1);
    +          // Move the clone and everything to the right of the original
    +          // onto the cloned parent.
    +          var next = limit.nextSibling;
    +          parentClone.appendChild(rightSide);
    +          for (var sibling = next; sibling; sibling = next) {
    +            next = sibling.nextSibling;
    +            parentClone.appendChild(sibling);
    +          }
    +        }
    +        return rightSide;
    +      }
    +  
    +      var copiedListItem = breakLeftOf(lineEndNode.nextSibling, 0);
    +  
    +      // Walk the parent chain until we reach an unattached LI.
    +      for (var parent;
    +           // Check nodeType since IE invents document fragments.
    +           (parent = copiedListItem.parentNode) && parent.nodeType === 1;) {
    +        copiedListItem = parent;
    +      }
    +      // Put it on the list of lines for later processing.
    +      listItems.push(copiedListItem);
    +    }
    +  
    +    // Split lines while there are lines left to split.
    +    for (var i = 0;  // Number of lines that have been split so far.
    +         i < listItems.length;  // length updated by breakAfter calls.
    +         ++i) {
    +      walk(listItems[i]);
    +    }
    +  
    +    // Make sure numeric indices show correctly.
    +    if (opt_startLineNum === (opt_startLineNum|0)) {
    +      listItems[0].setAttribute('value', opt_startLineNum);
    +    }
    +  
    +    var ol = document.createElement('OL');
    +    ol.className = 'linenums';
    +    var offset = Math.max(0, ((opt_startLineNum - 1 /* zero index */)) | 0) || 0;
    +    for (var i = 0, n = listItems.length; i < n; ++i) {
    +      li = listItems[i];
    +      // Stick a class on the LIs so that stylesheets can
    +      // color odd/even rows, or any other row pattern that
    +      // is co-prime with 10.
    +      li.className = 'L' + ((i + offset) % 10);
    +      if (!li.firstChild) {
    +        li.appendChild(document.createTextNode('\xA0'));
    +      }
    +      ol.appendChild(li);
    +    }
    +  
    +    node.appendChild(ol);
    +  }
    +
    +  /**
    +   * Breaks {@code job.sourceCode} around style boundaries in
    +   * {@code job.decorations} and modifies {@code job.sourceNode} in place.
    +   * @param {Object} job like <pre>{
    +   *    sourceCode: {string} source as plain text,
    +   *    spans: {Array.<number|Node>} alternating span start indices into source
    +   *       and the text node or element (e.g. {@code <BR>}) corresponding to that
    +   *       span.
    +   *    decorations: {Array.<number|string} an array of style classes preceded
    +   *       by the position at which they start in job.sourceCode in order
    +   * }</pre>
    +   * @private
    +   */
    +  function recombineTagsAndDecorations(job) {
    +    var isIE = /\bMSIE\b/.test(navigator.userAgent);
    +    var newlineRe = /\n/g;
    +  
    +    var source = job.sourceCode;
    +    var sourceLength = source.length;
    +    // Index into source after the last code-unit recombined.
    +    var sourceIndex = 0;
    +  
    +    var spans = job.spans;
    +    var nSpans = spans.length;
    +    // Index into spans after the last span which ends at or before sourceIndex.
    +    var spanIndex = 0;
    +  
    +    var decorations = job.decorations;
    +    var nDecorations = decorations.length;
    +    // Index into decorations after the last decoration which ends at or before
    +    // sourceIndex.
    +    var decorationIndex = 0;
    +  
    +    // Remove all zero-length decorations.
    +    decorations[nDecorations] = sourceLength;
    +    var decPos, i;
    +    for (i = decPos = 0; i < nDecorations;) {
    +      if (decorations[i] !== decorations[i + 2]) {
    +        decorations[decPos++] = decorations[i++];
    +        decorations[decPos++] = decorations[i++];
    +      } else {
    +        i += 2;
    +      }
    +    }
    +    nDecorations = decPos;
    +  
    +    // Simplify decorations.
    +    for (i = decPos = 0; i < nDecorations;) {
    +      var startPos = decorations[i];
    +      // Conflate all adjacent decorations that use the same style.
    +      var startDec = decorations[i + 1];
    +      var end = i + 2;
    +      while (end + 2 <= nDecorations && decorations[end + 1] === startDec) {
    +        end += 2;
    +      }
    +      decorations[decPos++] = startPos;
    +      decorations[decPos++] = startDec;
    +      i = end;
    +    }
    +  
    +    nDecorations = decorations.length = decPos;
    +  
    +    var decoration = null;
    +    while (spanIndex < nSpans) {
    +      var spanStart = spans[spanIndex];
    +      var spanEnd = spans[spanIndex + 2] || sourceLength;
    +  
    +      var decStart = decorations[decorationIndex];
    +      var decEnd = decorations[decorationIndex + 2] || sourceLength;
    +  
    +      var end = Math.min(spanEnd, decEnd);
    +  
    +      var textNode = spans[spanIndex + 1];
    +      var styledText;
    +      if (textNode.nodeType !== 1  // Don't muck with <BR>s or <LI>s
    +          // Don't introduce spans around empty text nodes.
    +          && (styledText = source.substring(sourceIndex, end))) {
    +        // This may seem bizarre, and it is.  Emitting LF on IE causes the
    +        // code to display with spaces instead of line breaks.
    +        // Emitting Windows standard issue linebreaks (CRLF) causes a blank
    +        // space to appear at the beginning of every line but the first.
    +        // Emitting an old Mac OS 9 line separator makes everything spiffy.
    +        if (isIE) { styledText = styledText.replace(newlineRe, '\r'); }
    +        textNode.nodeValue = styledText;
    +        var document = textNode.ownerDocument;
    +        var span = document.createElement('SPAN');
    +        span.className = decorations[decorationIndex + 1];
    +        var parentNode = textNode.parentNode;
    +        parentNode.replaceChild(span, textNode);
    +        span.appendChild(textNode);
    +        if (sourceIndex < spanEnd) {  // Split off a text node.
    +          spans[spanIndex + 1] = textNode
    +              // TODO: Possibly optimize by using '' if there's no flicker.
    +              = document.createTextNode(source.substring(end, spanEnd));
    +          parentNode.insertBefore(textNode, span.nextSibling);
    +        }
    +      }
    +  
    +      sourceIndex = end;
    +  
    +      if (sourceIndex >= spanEnd) {
    +        spanIndex += 2;
    +      }
    +      if (sourceIndex >= decEnd) {
    +        decorationIndex += 2;
    +      }
    +    }
    +  }
    +
    +
    +  /** Maps language-specific file extensions to handlers. */
    +  var langHandlerRegistry = {};
    +  /** Register a language handler for the given file extensions.
    +    * @param {function (Object)} handler a function from source code to a list
    +    *      of decorations.  Takes a single argument job which describes the
    +    *      state of the computation.   The single parameter has the form
    +    *      {@code {
    +    *        sourceCode: {string} as plain text.
    +    *        decorations: {Array.<number|string>} an array of style classes
    +    *                     preceded by the position at which they start in
    +    *                     job.sourceCode in order.
    +    *                     The language handler should assigned this field.
    +    *        basePos: {int} the position of source in the larger source chunk.
    +    *                 All positions in the output decorations array are relative
    +    *                 to the larger source chunk.
    +    *      } }
    +    * @param {Array.<string>} fileExtensions
    +    */
    +  function registerLangHandler(handler, fileExtensions) {
    +    for (var i = fileExtensions.length; --i >= 0;) {
    +      var ext = fileExtensions[i];
    +      if (!langHandlerRegistry.hasOwnProperty(ext)) {
    +        langHandlerRegistry[ext] = handler;
    +      } else if (window['console']) {
    +        console['warn']('cannot override language handler %s', ext);
    +      }
    +    }
    +  }
    +  function langHandlerForExtension(extension, source) {
    +    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
    +      // Treat it as markup if the first non whitespace character is a < and
    +      // the last non-whitespace character is a >.
    +      extension = /^\s*</.test(source)
    +          ? 'default-markup'
    +          : 'default-code';
    +    }
    +    return langHandlerRegistry[extension];
    +  }
    +  registerLangHandler(decorateSource, ['default-code']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [],
    +          [
    +           [PR_PLAIN,       /^[^<?]+/],
    +           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
    +           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
    +           // Unescaped content in an unknown language
    +           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
    +           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
    +           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
    +           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
    +           // Unescaped content in javascript.  (Or possibly vbscript).
    +           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
    +           // Contains unescaped stylesheet content
    +           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
    +           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
    +          ]),
    +      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [
    +           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
    +           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
    +           ],
    +          [
    +           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
    +           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
    +           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
    +           [PR_PUNCTUATION,  /^[=<>\/]+/],
    +           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
    +           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
    +           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
    +           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
    +           ]),
    +      ['in.tag']);
    +  registerLangHandler(
    +      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CPP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true,
    +          'types': C_TYPES
    +        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': 'null,true,false'
    +        }), ['json']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CSHARP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true,
    +          'verbatimStrings': true,
    +          'types': C_TYPES
    +        }), ['cs']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JAVA_KEYWORDS,
    +          'cStyleComments': true
    +        }), ['java']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': SH_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true
    +        }), ['bsh', 'csh', 'sh']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PYTHON_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'tripleQuotedStrings': true
    +        }), ['cv', 'py']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PERL_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['perl', 'pl', 'pm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': RUBY_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['rb']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JSCRIPT_KEYWORDS,
    +          'cStyleComments': true,
    +          'regexLiterals': true
    +        }), ['js']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': COFFEE_KEYWORDS,
    +          'hashComments': 3,  // ### style block comments
    +          'cStyleComments': true,
    +          'multilineStrings': true,
    +          'tripleQuotedStrings': true,
    +          'regexLiterals': true
    +        }), ['coffee']);
    +  registerLangHandler(createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
    +
    +  function applyDecorator(job) {
    +    var opt_langExtension = job.langExtension;
    +
    +    try {
    +      // Extract tags, and convert the source code to plain text.
    +      var sourceAndSpans = extractSourceSpans(job.sourceNode);
    +      /** Plain text. @type {string} */
    +      var source = sourceAndSpans.sourceCode;
    +      job.sourceCode = source;
    +      job.spans = sourceAndSpans.spans;
    +      job.basePos = 0;
    +
    +      // Apply the appropriate language handler
    +      langHandlerForExtension(opt_langExtension, source)(job);
    +
    +      // Integrate the decorations and tags back into the source code,
    +      // modifying the sourceNode in place.
    +      recombineTagsAndDecorations(job);
    +    } catch (e) {
    +      if ('console' in window) {
    +        console['log'](e && e['stack'] ? e['stack'] : e);
    +      }
    +    }
    +  }
    +
    +  /**
    +   * @param sourceCodeHtml {string} The HTML to pretty print.
    +   * @param opt_langExtension {string} The language name to use.
    +   *     Typically, a filename extension like 'cpp' or 'java'.
    +   * @param opt_numberLines {number|boolean} True to number lines,
    +   *     or the 1-indexed number of the first line in sourceCodeHtml.
    +   */
    +  function prettyPrintOne(sourceCodeHtml, opt_langExtension, opt_numberLines) {
    +    var container = document.createElement('PRE');
    +    // This could cause images to load and onload listeners to fire.
    +    // E.g. <img onerror="alert(1337)" src="nosuchimage.png">.
    +    // We assume that the inner HTML is from a trusted source.
    +    container.innerHTML = sourceCodeHtml;
    +    if (opt_numberLines) {
    +      numberLines(container, opt_numberLines);
    +    }
    +
    +    var job = {
    +      langExtension: opt_langExtension,
    +      numberLines: opt_numberLines,
    +      sourceNode: container
    +    };
    +    applyDecorator(job);
    +    return container.innerHTML;
    +  }
    +
    +  function prettyPrint(opt_whenDone) {
    +    function byTagName(tn) { return document.getElementsByTagName(tn); }
    +    // fetch a list of nodes to rewrite
    +    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
    +    var elements = [];
    +    for (var i = 0; i < codeSegments.length; ++i) {
    +      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
    +        elements.push(codeSegments[i][j]);
    +      }
    +    }
    +    codeSegments = null;
    +
    +    var clock = Date;
    +    if (!clock['now']) {
    +      clock = { 'now': function () { return +(new Date); } };
    +    }
    +
    +    // The loop is broken into a series of continuations to make sure that we
    +    // don't make the browser unresponsive when rewriting a large page.
    +    var k = 0;
    +    var prettyPrintingJob;
    +
    +    var langExtensionRe = /\blang(?:uage)?-([\w.]+)(?!\S)/;
    +    var prettyPrintRe = /\bprettyprint\b/;
    +
    +    function doWork() {
    +      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
    +                     clock['now']() + 250 /* ms */ :
    +                     Infinity);
    +      for (; k < elements.length && clock['now']() < endTime; k++) {
    +        var cs = elements[k];
    +        var className = cs.className;
    +        if (className.indexOf('prettyprint') >= 0) {
    +          // If the classes includes a language extensions, use it.
    +          // Language extensions can be specified like
    +          //     <pre class="prettyprint lang-cpp">
    +          // the language extension "cpp" is used to find a language handler as
    +          // passed to PR.registerLangHandler.
    +          // HTML5 recommends that a language be specified using "language-"
    +          // as the prefix instead.  Google Code Prettify supports both.
    +          // http://dev.w3.org/html5/spec-author-view/the-code-element.html
    +          var langExtension = className.match(langExtensionRe);
    +          // Support <pre class="prettyprint"><code class="language-c">
    +          var wrapper;
    +          if (!langExtension && (wrapper = childContentWrapper(cs))
    +              && "CODE" === wrapper.tagName) {
    +            langExtension = wrapper.className.match(langExtensionRe);
    +          }
    +
    +          if (langExtension) {
    +            langExtension = langExtension[1];
    +          }
    +
    +          // make sure this is not nested in an already prettified element
    +          var nested = false;
    +          for (var p = cs.parentNode; p; p = p.parentNode) {
    +            if ((p.tagName === 'pre' || p.tagName === 'code' ||
    +                 p.tagName === 'xmp') &&
    +                p.className && p.className.indexOf('prettyprint') >= 0) {
    +              nested = true;
    +              break;
    +            }
    +          }
    +          if (!nested) {
    +            // Look for a class like linenums or linenums:<n> where <n> is the
    +            // 1-indexed number of the first line.
    +            var lineNums = cs.className.match(/\blinenums\b(?::(\d+))?/);
    +            lineNums = lineNums
    +                  ? lineNums[1] && lineNums[1].length ? +lineNums[1] : true
    +                  : false;
    +            if (lineNums) { numberLines(cs, lineNums); }
    +
    +            // do the pretty printing
    +            prettyPrintingJob = {
    +              langExtension: langExtension,
    +              sourceNode: cs,
    +              numberLines: lineNums
    +            };
    +            applyDecorator(prettyPrintingJob);
    +          }
    +        }
    +      }
    +      if (k < elements.length) {
    +        // finish up in a continuation
    +        setTimeout(doWork, 250);
    +      } else if (opt_whenDone) {
    +        opt_whenDone();
    +      }
    +    }
    +
    +    doWork();
    +  }
    +
    +   /**
    +    * Find all the {@code <pre>} and {@code <code>} tags in the DOM with
    +    * {@code class=prettyprint} and prettify them.
    +    *
    +    * @param {Function?} opt_whenDone if specified, called when the last entry
    +    *     has been finished.
    +    */
    +  window['prettyPrintOne'] = prettyPrintOne;
    +   /**
    +    * Pretty print a chunk of code.
    +    *
    +    * @param {string} sourceCodeHtml code as html
    +    * @return {string} code as html, but prettier
    +    */
    +  window['prettyPrint'] = prettyPrint;
    +   /**
    +    * Contains functions for creating and registering new language handlers.
    +    * @type {Object}
    +    */
    +  window['PR'] = {
    +        'createSimpleLexer': createSimpleLexer,
    +        'registerLangHandler': registerLangHandler,
    +        'sourceDecorator': sourceDecorator,
    +        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
    +        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
    +        'PR_COMMENT': PR_COMMENT,
    +        'PR_DECLARATION': PR_DECLARATION,
    +        'PR_KEYWORD': PR_KEYWORD,
    +        'PR_LITERAL': PR_LITERAL,
    +        'PR_NOCODE': PR_NOCODE,
    +        'PR_PLAIN': PR_PLAIN,
    +        'PR_PUNCTUATION': PR_PUNCTUATION,
    +        'PR_SOURCE': PR_SOURCE,
    +        'PR_STRING': PR_STRING,
    +        'PR_TAG': PR_TAG,
    +        'PR_TYPE': PR_TYPE
    +      };
    +})();
    diff --git a/javascripts/scale.fix.js b/javascripts/scale.fix.js
    new file mode 100644
    index 0000000..87a40ca
    --- /dev/null
    +++ b/javascripts/scale.fix.js
    @@ -0,0 +1,17 @@
    +var metas = document.getElementsByTagName('meta');
    +var i;
    +if (navigator.userAgent.match(/iPhone/i)) {
    +  for (i=0; i<metas.length; i++) {
    +    if (metas[i].name == "viewport") {
    +      metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";
    +    }
    +  }
    +  document.addEventListener("gesturestart", gestureStart, false);
    +}
    +function gestureStart() {
    +  for (i=0; i<metas.length; i++) {
    +    if (metas[i].name == "viewport") {
    +      metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";
    +    }
    +  }
    +}
    \ No newline at end of file
    diff --git a/library/TelApi.php b/library/TelApi.php
    deleted file mode 100644
    index 97cee0c..0000000
    --- a/library/TelApi.php
    +++ /dev/null
    @@ -1,66 +0,0 @@
    -<?php
    -
    -if( floatval(phpversion()) < 5.2) {
    -    trigger_error(sprintf(
    -        "Your PHP version %s is not valid. In order to run TelAPI helper you will need to have at least PHP 5.2 or above.", 
    -         phpversion() 
    -    ));
    -}
    -
    -
    -/** @see TelApi_Exception */
    -require_once 'TelApi/Exception.php';
    -
    -/** @see TelApi_Schemas */
    -require_once 'TelApi/Schemas.php';
    -
    -/** @see TelApi_InboundXML **/
    -require_once 'TelApi/InboundXML.php';
    -
    -/** @see TelApi_Helpers **/
    -require_once 'TelApi/Helpers.php';
    -
    -/** @see TelApi_Connector **/
    -require_once 'TelApi/Connector.php';
    -
    -/** @see TelApi_Related **/
    -require_once 'TelApi/Related.php';
    -
    -/** @see TelApi_Client **/
    -require_once 'TelApi/Sdk.php';
    -
    -/** @see TelApi_Client **/
    -require_once 'TelApi/Connect.php';
    -
    -/**
    - * 
    - * TelAPI singleton instance to the wrapper
    - * 
    - * --------------------------------------------------------------------------------
    - * 
    - * @category  TelApi Wrapper
    - * @package   TelApi
    - * @author    Nevio Vesic <nevio@telapi.com>
    - * @license   http://creativecommons.org/licenses/MIT/ MIT
    - * @copyright (2012) TelTech Systems, Inc. <info@telapi.com>
    - */
    -
    -final class TelApi extends TelApi_Related
    -{
    -    /**
    -     * Singleton instance container
    -     * @var self|null 
    -     */
    -    protected static $_instance = null;
    -    
    -    /**
    -     * Singleton access method to TelAPI. This is THE ONLY PROPER WAY to
    -     * access the TelAPI wrapper!
    -     * 
    -     * @return self
    -     */
    -    static function getInstance() {
    -        if(is_null(self::$_instance)) self::$_instance = new self();
    -        return self::$_instance;
    -    }
    -}
    diff --git a/library/TelApi/Connect.php b/library/TelApi/Connect.php
    deleted file mode 100644
    index 822f5a7..0000000
    --- a/library/TelApi/Connect.php
    +++ /dev/null
    @@ -1,111 +0,0 @@
    -<?php
    -
    -/**
    - * 
    - * A TelAPI Connect wrapper.
    - * 
    - * This class will help you with usage of TelAPI Connect
    - * 
    - * --------------------------------------------------------------------------------
    - * 
    - * @category  TelApi Wrapper
    - * @package   TelApi
    - * @author    Nevio Vesic <nevio@telapi.com>
    - * @license   http://creativecommons.org/licenses/MIT/ MIT
    - * @copyright (2012) TelTech Systems, Inc. <info@telapi.com>
    - */
    -
    -class TelApi_Connect extends TelApi_Related
    -{
    -	/**
    -	 * Singleton instance container
    -	 * @var self|null
    -	 */
    -	protected static $_instance = null;
    -	
    -	/**
    -	 * Status of the connect. If disabled, connect credentials will be entirely
    -	 * ignored
    -	 * 
    -	 * @var boolean
    -	 */
    -	protected static $_status   = true;
    -	
    -	
    -	/**
    -     * Singleton access method to TelAPI. This is THE ONLY PROPER WAY to
    -     * access the TelAPI wrapper!
    -	 *
    -	 * @return self
    -	 */
    -	static function getInstance() {
    -		if(is_null(self::$_instance)) self::$_instance = new self();
    -		return self::$_instance;
    -	}
    -	
    -	
    -	/**
    -	 * Get TelAPI Connect Authorize URL
    -	 * 
    -	 * @param string $connect_sid
    -	 * @return string
    -	 */
    -	public function getConnectUrl($connect_sid) {
    -		if(strlen($connect_sid) != 34) {
    -			new TelApi_Exception("Please provide valid Connect SID in order to generate Connect URL");
    -		}
    -		
    -		return 'http://www.telapi.com/connect/authorize/' . $connect_sid;
    -	}
    -	
    -	
    -	/**
    -	 * Set TelAPI Connect client credentials
    -	 * 
    -	 * @param string $connect_sid
    -	 * @param string $access_key
    -	 * @param string $access_token
    -	 */
    -	public function setCredentials($connect_sid, $access_key, $access_token) {
    -		
    -		if(strlen($connect_sid) != 34) {
    -			new TelApi_Exception("Please provide valid Connect SID in order to set connect credentials!");
    -		}
    -		
    -		if(strlen($access_key) != 34) {
    -			new TelApi_Exception("Please provide valid AccessKey in order to set connect credentials!");
    -		}
    -		
    -		if(strlen($access_token) != 34) {
    -			new TelApi_Exception("Please provide valid AccessToken in order to set connect credentials!");
    -		}
    -		
    -		self::$_connectHeaders[] = "CONNECT-ACCESS-SID: {$connect_sid}";
    -		self::$_connectHeaders[] = "CONNECT-ACCESS-KEY: {$access_key}";
    -		self::$_connectHeaders[] = "CONNECT-ACCESS-TOKEN: {$access_token}";
    -	}
    -	
    -	
    -	/**
    -	 * Enable connect client
    -	 * 
    -	 * @return Void
    -	 */
    -	public function enable() { self::$_status = true; }
    -	
    -	
    -	/**
    -	 * Disable connect client
    -	 * 
    -	 * @return Void
    -	 */
    -	public function disable(){ self::$_status = false; }
    -	
    -	
    -	/**
    -	 * Get connect client status
    -	 * 
    -	 * @return boolean
    -	 */
    -	public function getStatus() { return self::$_status; }
    -}
    \ No newline at end of file
    diff --git a/library/TelApi/Connector.php b/library/TelApi/Connector.php
    deleted file mode 100644
    index 1f0b060..0000000
    --- a/library/TelApi/Connector.php
    +++ /dev/null
    @@ -1,219 +0,0 @@
    -<?php
    -
    -/** @see TelApi_Exception **/
    -require_once 'Exception.php';
    -
    -/**
    - * 
    - * A connector class. Class where TelAPI response is being "organized" for usage.
    - * From here you can get records, attributes, and request header data.
    - * 
    - * --------------------------------------------------------------------------------
    - * 
    - * @category  TelApi Wrapper
    - * @package   TelApi
    - * @author    Nevio Vesic <nevio@telapi.com>
    - * @license   http://creativecommons.org/licenses/MIT/ MIT
    - * @copyright (2012) TelTech Systems, Inc. <info@telapi.com>
    - */
    -
    -class TelApi_Connector
    -{
    -    /**
    -     * All the curl data passed by TelApi_Related class
    -     * 
    -     * @var array
    -     */
    -    protected $curl_data = array();
    -    
    -    
    -    /**
    -     * In case of FALSE, decoded response will be object.
    -     * In case of TRUE, decoded response will be array.
    -     * 
    -     * @var bool
    -     */
    -    protected $response_association = false;
    -    
    -    /**
    -     * Current component used for internal retrival of response items
    -     * 
    -     * @var string|null
    -     */
    -    protected $_component       = null;
    -
    -    
    -    /**
    -     * @param string $curl_data
    -     * @param bool   $response_association
    -     */
    -    function __construct($curl_data, $response_association = false, $component=null) {
    -        $this->curl_data = $curl_data;
    -        $this->response_association = $response_association;
    -        $this->_component = $component;
    -        
    -        if($this->curl_data['errno'] > 0) {
    -            $errno = $this->curl_data['errno'];
    -            $error = $this->curl_data['error'];
    -            throw new TelApi_Exception("Curl returned error with code '{$errno}' and message '{$error}'");
    -        } else {
    -            $http_code = $this->curl_data['info']['http_code'];
    -            if($http_code != 200) {
    -                $data = trim($this->curl_data['exec']);
    -                if(substr($data, 0, 5) == '<?xml') {
    -                    $xml_data = simplexml_load_string($data);
    -                    $error_code = isset($xml_data->RestException->Status) ? (string)$xml_data->RestException->Status : 500;
    -                    $error_message = isset($xml_data->RestException->Message) ? (string)$xml_data->RestException->Message : 'Internal wrapper error';
    -                } else {
    -                    $json_data = json_decode(trim($this->curl_data['exec']), false);
    -                    if(json_last_error() > 0) {
    -                        $error_code = 500;
    -                        $error_message = $this->_validateJSON();
    -                    }
    -                    else {
    -                        $error_code = isset($json_data->status) ? $json_data->status : 500;
    -                        $error_message = isset($json_data->message) ? $json_data->message : 'Internal wrapper error';
    -                    }
    -                }
    -
    -                
    -                throw new TelApi_Exception(
    -                    "An error occured while querying TelAPI with the message '{$error_message}' and the error code '{$error_code}'"
    -                );
    -            }
    -        }
    -        
    -        $this->_decodeJSON();
    -    }
    -    
    -    
    -    /**
    -     * Get response object key details if exists, otherwise return null
    -     * 
    -     * @param  string      $name
    -     * @return mixed|null 
    -     */
    -    function __get($name) {
    -        if($this->response_association == false)
    -            return isset($this->curl_data['response']->$name) ?
    -            $this->curl_data['response']->$name : null;
    -        else
    -            return isset($this->curl_data['response'][$name]) ?
    -            $this->curl_data['response'][$name] : null;
    -    }
    -
    -    
    -    /**
    -     * Returning JSON response as string
    -     * 
    -     * @return string
    -     */
    -    function __toString() {
    -        return print_r($this->curl_data['response'], true);
    -    }
    -    
    -    /**
    -     * Get the attribute of an object. If attribute doesn't exist TelApi_Exception
    -     * will be raised. If attribute exists but it's not set,
    -     * then default_value will be returned. Default is null
    -     * 
    -     * @param  string  $key
    -     * @param  mixed   $default_value
    -     * @return mixed
    -     * @throws TelApi_Exception 
    -     */
    -    function attr($key, $default_value=null) {
    -        $schemas = TelApi_Schemas::getInstance();
    -        
    -        if(!$schemas->isPagingProperty($key)) {
    -            $available_attrs = implode(", ", $schemas->getPagingProperties());
    -            throw new TelApi_Exception(
    -                "Attribute you've requested '{$key}' cannot be found. Available attributes are: '{$available_attrs}'"
    -            );
    -        }
    -        if($this->response_association == false)
    -            return isset($this->curl_data['response']->$key) ? $this->curl_data['response']->$key : $default_value;
    -        else
    -            return isset($this->curl_data['response'][$key]) ? $this->curl_data['response'][$key] : $default_value;
    -    }
    -    
    -    
    -    /**
    -     * Returning full response as-is
    -     * 
    -     * @return stdclass|array 
    -     */
    -    function getResponse() { return $this->curl_data['response']; }
    -    
    -    
    -    /**
    -     * Return all the items of current TelAPI request. Actual response will be
    -     * auto fetched based on requested component key
    -     * 
    -     * @return object|array
    -     */
    -    function items($access_key=null) {
    -        $component = is_null($access_key) ? $this->_component : $access_key;
    -        if($this->response_association == false)
    -            return isset($this->curl_data['response']->$component) ? $this->curl_data['response']->$component : array();
    -        else
    -            return isset($this->curl_data['response'][$component]) ? $this->curl_data['response'][$component] : array();
    -    }
    -    
    -    
    -    /**
    -     * Decode returned JSON object and throw error in case of a decoding failure.
    -     * 
    -     * @throws TelApi_Exception 
    -     * @return Void
    -     */
    -    private function _decodeJSON() {
    -        $result = json_decode(trim($this->curl_data['exec']), $this->response_association);
    -        
    -        $error = '';
    -       
    -
    -        # JSON will be validated only if you use PHP 5 >= 5.3.0
    -	if( floatval(phpversion()) < 5.3) {
    -            if(function_exists('json_last_error')) {
    -                
    -                $error  = $this->_validateJSON();
    -                
    -                if (!empty($error)) {
    -                    throw new TelApi_Exception('JSON Error: '.$error);
    -                }
    -            }
    -	}
    -        
    -        
    -        $this->curl_data['response'] = $result;
    -    }
    -    
    -    
    -    /**
    -     * Get last validation error if exists
    -     * 
    -     * @return string 
    -     */
    -    private function _validateJSON() {
    -        switch(json_last_error()) {
    -            case JSON_ERROR_DEPTH:
    -                $error =  ' - Maximum stack depth exceeded';
    -                break;
    -            case JSON_ERROR_CTRL_CHAR:
    -                $error = ' - Unexpected control character found';
    -                break;
    -            case JSON_ERROR_STATE_MISMATCH:
    -                $error  = ' - Invalid or Malformed JSON';
    -                break;
    -            case JSON_ERROR_SYNTAX:
    -                $error = ' - Syntax error, malformed JSON';
    -                break;
    -            case JSON_ERROR_NONE:
    -            default:
    -                $error = '';              
    -        }
    -        
    -        return $error;
    -    }
    -}
    diff --git a/library/TelApi/Exception.php b/library/TelApi/Exception.php
    deleted file mode 100644
    index a250d57..0000000
    --- a/library/TelApi/Exception.php
    +++ /dev/null
    @@ -1,17 +0,0 @@
    -<?php
    -
    -/**
    - * 
    - * Main TelAPI library exception 
    - * 
    - * --------------------------------------------------------------------------------
    - * 
    - * @category  TelApi Wrapper
    - * @package   TelApi
    - * @author    Nevio Vesic <nevio@telapi.com>
    - * @license   http://creativecommons.org/licenses/MIT/ MIT
    - * @copyright (2012) TelTech Systems, Inc. <info@telapi.com>
    - */
    -
    -class TelApi_Exception extends Exception
    -{}
    \ No newline at end of file
    diff --git a/library/TelApi/Helpers.php b/library/TelApi/Helpers.php
    deleted file mode 100644
    index eb652b9..0000000
    --- a/library/TelApi/Helpers.php
    +++ /dev/null
    @@ -1,38 +0,0 @@
    -<?php
    -
    -/**
    - * 
    - * TelAPI common helpers such as filtering numbers over E.164.
    - * 
    - * --------------------------------------------------------------------------------
    - * 
    - * @category  TelApi Wrapper
    - * @package   TelApi
    - * @author    Nevio Vesic <nevio@telapi.com>
    - * @license   http://creativecommons.org/licenses/MIT/ MIT
    - * @copyright (2012) TelTech Systems, Inc. <info@telapi.com>
    - */
    -
    -class TelApi_Helpers
    -{
    -    
    -    public static function filter_e164($value) {
    -        $value = preg_replace("/[^\+0-9]/","", trim($value));
    -        
    -        if (preg_match("/^\+[1-9][0-9]{5,20}$/",$value)) //it's already in e164 with the +
    -            $e164 = $value;
    -        elseif (preg_match("/^1[2-9][0-9]{9}$/",$value)) //it's a North American number
    -            $e164 = "+".$value;
    -        elseif (preg_match("/^[2-9][0-9]{9}$/",$value)) //assume it's a North American number w/o country code
    -            $e164 = "+1".$value;
    -        elseif (preg_match("/^011[2-9][0-9]{5,20}$/",$value)) //it's an international number with leading 011
    -            $e164 = preg_replace("/^011/","+",$value);
    -        elseif (preg_match("/^[2-9][0-9]{5,20}$/",$value)) //it must be an international number with no + or 011 prefix
    -            $e164 = "+".$value;
    -        else
    -            return "";
    -
    -        return $e164;
    -    } 
    -    
    -}
    \ No newline at end of file
    diff --git a/library/TelApi/InboundXML.php b/library/TelApi/InboundXML.php
    deleted file mode 100644
    index c1d37df..0000000
    --- a/library/TelApi/InboundXML.php
    +++ /dev/null
    @@ -1,187 +0,0 @@
    -<?php
    -
    -/** @see TelApi_Exception **/
    -require_once 'Exception.php';
    -
    -/** @see TelApi_Schemas **/
    -require_once 'Schemas.php';
    -
    -/**
    - * 
    - * A TelAPI InboundXML wrapper.
    - * 
    - * Please consult the online documentation for more details.
    - * Online documentation can be found at: http://www.telapi.com/docs/api/inboundxml/
    - * 
    - * --------------------------------------------------------------------------------
    - * 
    - * @category  TelApi Wrapper
    - * @package   TelApi
    - * @author    Nevio Vesic <nevio@telapi.com>
    - * @license   http://creativecommons.org/licenses/MIT/ MIT
    - * @copyright (2012) TelTech Systems, Inc. <info@telapi.com>
    - */
    -
    -class TelApi_InboundXML
    -{
    -    
    -    /**
    -     * InboundXML simple xml element container
    -     * 
    -     * @var null|SimpleXmlElement
    -     */
    -    protected $element;
    -    
    -    /**
    -     * Current child pointer. Used for nesting validations
    -     * 
    -     * @var string|null
    -     */
    -    protected $_currentChild = null;
    -
    -    /**
    -     * Constructs a InboundXML response.
    -     *
    -     * @param SimpleXmlElement|array $arg:
    -     *   - the element to wrap
    -     *   - attributes to add to the element
    -     *   - if null, initialize an empty element named 'Response'
    -     */
    -    public function __construct($arg = null) {
    -        switch (true) {
    -            case $arg instanceof SimpleXmlElement:
    -                $this->element = $arg;
    -                $this->_currentChild = strtolower($arg->getName());
    -                break;
    -            case $arg === null:
    -                $this->element = new SimpleXmlElement('<Response/>');
    -                $this->_currentChild = 'response';
    -                break;
    -            case is_array($arg):
    -                $this->element = new SimpleXmlElement('<Response/>');
    -                $this->_currentChild = 'response';
    -                foreach ($arg as $name => $value) {
    -                    $this->_validateAttribute($name, 'response');
    -                    $this->element->addAttribute($name, $value);
    -                }
    -                break;
    -            default: throw new TelApi_Exception('InboundXML Invalid construction argument');
    -        }
    -    }
    -	
    -    
    -    /**
    -     * Converts method calls into InboundXML verbs.
    -     *
    -     * @return SimpleXmlElement A SimpleXmlElement
    -     */
    -    public function __call($verb, array $args) {
    -
    -        /** convert verbs input like-this-one to LikeThisOne **/
    -        $verb = preg_replace("/[-_]([a-z])/e", "ucfirst('\\1')", ucwords($verb));
    -        
    -        /** Let's first go check if the verb exists **/
    -        $this->_validateVerb(ucfirst($verb));
    -
    -        /** Let's go validate nesting **/
    -        $this->_validateNesting(ucfirst($verb));
    -        
    -        list($noun, $attrs) = $args + array('', array());
    -        
    -        if (is_array($noun)) list($attrs, $noun) = array($noun, '');
    -
    -        $child = empty($noun)
    -            ? $this->element->addChild(ucfirst($verb))
    -            : $this->element->addChild(ucfirst($verb), $noun);
    -            
    -        foreach ($attrs as $name => $value) {
    -            /** Validation of verb attributes **/
    -            $this->_validateAttribute($name, $verb);
    -            $child->addAttribute($name, $value);
    -        }
    -        return new self($child);
    -        
    -    }
    -
    -    
    -    /**
    -     * Returns the object as XML.
    -     *
    -     * @return string The response as an XML string
    -     */
    -    public function __toString() {
    -        $xml = $this->element->asXml();
    -        return str_replace(
    -            '<?xml version="1.0" ?>', 
    -            '<?xml version="1.0" encoding="UTF-8" ?>', 
    -            $xml
    -        );
    -    }
    -    
    -    
    -    /**
    -     * Validate existance of the verb. Return true if exists, throw exception
    -     * if fails.
    -     * 
    -     * @param  string $verb
    -     * @throws TelApi_Exception 
    -     * @return bool
    -     */
    -    private function _validateVerb($verb) {
    -        $schemas = TelApi_Schemas::getInstance();
    -        
    -        if(!$schemas->isVerb(ucfirst($verb))) {
    -            $available_verbs = implode(', ', $schemas->getAvailableVerbs());
    -            throw new TelApi_Exception(
    -                "Verb '{$verb}' is not a valid InboundXML verb. Available verbs are: '{$available_verbs}'"
    -            );
    -        }
    -        
    -        return true;
    -    }
    -    
    -    
    -    /**
    -     * Validate if previous child allows this verb to be its child.
    -     * 
    -     * @param  string  $verb
    -     * @return boolean
    -     * @throws TelApi_Exception 
    -     */
    -    private function _validateNesting($verb) {
    -        $schemas = TelApi_Schemas::getInstance();
    -        
    -        if(!$schemas->isNestingAllowed(ucfirst($this->_currentChild), ucfirst($verb))) {
    -            $nestable_verbs = implode(', ', $schemas->getNestableByVerbs(ucfirst($this->_currentChild)));
    -            $current_verb   = ucfirst($this->_currentChild);
    -            $next_verb      = ucfirst($verb);
    -            throw new TelApi_Exception(
    -                "InboundXML element '{$current_verb}' does not support '{$next_verb}' element. The following elements are supported: '{$nestable_verbs}'."
    -            );
    -        }
    -        
    -        return true;
    -    }
    -    
    -    
    -    /**
    -     * Validate if attribute of verb exists. If not, throw exception, otherwise, return true.
    -     * 
    -     * @param  string $attr
    -     * @param  string $verb
    -     * @return boolean
    -     * @throws TelApi_Exception 
    -     */
    -    private function _validateAttribute($attr, $verb) {
    -        $schemas = TelApi_Schemas::getInstance();
    -        
    -        if(!$schemas->isValidAttribute($attr, ucfirst($verb))) {
    -            $verb_attribuges = implode(', ', $schemas->getAvailableAttributes(ucfirst($verb)));
    -            throw new TelApi_Exception(
    -                "Attribute '{$attr}' does not exist for verb '{$verb}'. Available attributes are: '{$verb_attribuges}'"
    -            );
    -        }
    -        return true;
    -    }
    -    
    -}
    diff --git a/library/TelApi/Related.php b/library/TelApi/Related.php
    deleted file mode 100644
    index f4e0578..0000000
    --- a/library/TelApi/Related.php
    +++ /dev/null
    @@ -1,449 +0,0 @@
    -<?php
    -
    -/**
    - * 
    - * Related logic to TelAPI wrapper. This file is the parent of "all"
    - * 
    - * --------------------------------------------------------------------------------
    - * 
    - * @category  TelApi Wrapper
    - * @package   TelApi
    - * @author    Nevio Vesic <nevio@telapi.com>
    - * @license   http://creativecommons.org/licenses/MIT/ MIT
    - * @copyright (2012) TelTech Systems, Inc. <info@telapi.com>
    - */
    -
    -abstract class TelApi_Related
    -{
    -    
    -    /** Wrapper to return TelAPI response as JSON */
    -    CONST WRAPPER_JSON         = 'json';
    -    
    -   
    -    /** Wrapper to return TelAPI response as XML */
    -    CONST WRAPPER_XML          = 'xml';
    -    
    -    
    -    /** BASE TELAPI URI */
    -    CONST API_URL              = 'https://api.telapi.com/';
    -    
    -    /** BASE TELAPI API VERSION */
    -    CONST API_VERSION          = 'v1';
    -    
    -    
    -    /** 
    -     * Beginning component of the API request url. This will be built into the
    -     * url, so please avoid changing this if you want the wrapper to work! 
    -     */
    -    CONST API_START_COMPONENT  = 'Accounts';
    -    
    -    /**
    -     * Available TelAPI REST endpoint versions are:
    -     * 
    -     * @var array
    -     */
    -    protected $_availableVersions = array( '2011-07-01', 'v1' );
    -
    -
    -    /**
    -     * All available options which can be set for the wrapper itself.
    -     * All the listed options are required as well.
    -     * 
    -     * @var array
    -     */
    -    protected static $_options = array(
    -        'account_sid'       => null,
    -        'auth_token'        => null,
    -        'wrapper_type'      => self::WRAPPER_JSON,
    -        'response_to_array' => false,
    -        'api_version'       => self::API_VERSION
    -    );
    -    
    -    
    -    /**
    -     * All existing and available TelAPI components that can be accessed by
    -     * this wrapper
    -     * 
    -     * @var array
    -     */
    -    private $_components = array(
    -        'accounts'                =>  null, # Accounts is already defined in url from the start.  
    -        'calls'                   => 'Calls',
    -        'conferences'             => 'Conferences',
    -        'sms_messages'            => 'SMS/Messages',
    -        'recordings'              => 'Recordings',
    -        'transcriptions'          => 'Transcriptions',
    -        'notifications'           => 'Notifications',
    -        'available_phone_numbers' => 'AvailablePhoneNumbers',
    -        'incoming_phone_numbers'  => 'IncomingPhoneNumbers',
    -        'carrier'                 => 'Lookups/Carrier',
    -        'cnam'                    => 'Lookups/Cnam',
    -        'bna'                     => 'Lookups/Bna',
    -        'applications'            => 'Applications',
    -        'fraud'                   => 'Fraud',
    -        'usages'                  => 'Usages',
    -    	'rates'                   => 'Rates',
    -		'connect'                 => 'Connect',
    -        'faxes'                   => 'Faxes'
    -    );
    -    
    -    
    -    /**
    -     * Current component key which will be passed out to the Connector class
    -     * when the time comes
    -     * 
    -     * @var string|null
    -     */
    -    private $_component = null;
    -    
    -    /**
    -     * Client token. When generated, it will be "saved" here
    -     * 
    -     * @var array
    -     */
    -    protected $_clientToken = array();
    -    
    -    
    -    /**
    -     * Generated headers (credentials) which came from successful authorisation
    -     *
    -     * @var array
    -     */
    -    protected static $_connectHeaders = array();
    -    
    -    
    -    /** *********** OPTION RELATED METHODS ************** **/
    -
    -
    -    /**
    -     * Set a list of options all at once.
    -     * 
    -     * @param  array $options 
    -     * @return void
    -     */
    -    function setOptions(Array $options) {
    -        foreach($options as $key => $value) $this->setOption($key, $value);
    -    }
    -    
    -    /**
    -     * Set a single option for the TelAPI wrapper. If option key doesn't exist it will
    -     * throw that the key itself is not available and therefore cannot be found.
    -     * 
    -     * @param  string $key
    -     * @param  mixed  $value
    -     * @throws TelApi_Exception 
    -     * @return void
    -     */
    -    function setOption($key, $value) {
    -        if(!array_key_exists(strtolower($key), self::$_options)) {
    -            throw new TelApi_Exception("Provided option '{$key}' cannot be found");
    -        }
    -        self::$_options[strtolower($key)] = $value;
    -    }
    -    
    -    
    -    /**
    -     * Get singular option value. If value is not set, null will be returned
    -     * 
    -     * @param  string $key
    -     * @return mixed
    -     */
    -    function option($key) {
    -        return isset(self::$_options[strtolower($key)]) 
    -               ? self::$_options[strtolower($key)] : null;
    -    }
    -    
    -    
    -    /** *********** QUERY RELATED METHODS ************** **/
    -    
    -    
    -    /**
    -     * Get resource by component and component SID
    -     * 
    -     * @param  string|array $component
    -     * @param  array        $parameters 
    -     * @return TelApi_Connector
    -     */
    -    function get($component, Array $parameters=array()) {
    -        return new TelApi_Connector($this->_execute(
    -            rtrim($this->_buildBaseUrl() . $this->_buildUrl($component, $parameters), '/') . '.' . self::WRAPPER_JSON
    -            .
    -            $this->_buildParameters($parameters)
    -         ), $this->option('response_to_array'), $this->_component);
    -    }
    -    
    -    
    -    /**
    -     * POSTING (Creating) new documents for desired resources, such as sending new
    -     * SMS messages
    -     * 
    -     * @param  string|array $component
    -     * @param  array        $data
    -     * @return TelApi_Connector 
    -     */
    -    function create($component, Array $data) {
    -        $creation_url = rtrim($this->_buildBaseUrl() . $this->_buildUrl($component, array()), '/') . '.' . self::WRAPPER_JSON;
    -        $post_params  = $this->_buildPostParameters($data);
    -        return new TelApi_Connector($this->_execute($creation_url, 'POST', $post_params), $this->option('response_to_array'), $this->_component);
    -    }
    -    
    -    /**
    -     * POSTING (Updating) documents for desired resources, such as sending new
    -     * SMS messages
    -     * 
    -     * @param  string|array $component
    -     * @param  array        $data
    -     * @return TelApi_Connector 
    -     */
    -    function update($component, Array $data) {
    -        $creation_url = rtrim($this->_buildBaseUrl() . $this->_buildUrl($component, array()), '/') . '.' . self::WRAPPER_JSON;
    -        $post_params  = $this->_buildPostParameters($data);
    -        return new TelApi_Connector($this->_execute($creation_url, 'POST', $post_params), $this->option('response_to_array'), $this->_component);
    -    }
    -    
    -    
    -    /**
    -     * DELETING resources such as recordings.
    -     * You cannot add query parameters to this resource and it is very limited (deleting)
    -     * so please consult REST documentation on the telapi site.
    -     * 
    -     * @param  string|array $component 
    -     * @param  array        $data
    -     * @return TelApi_Connector 
    -     */
    -    function delete($component) {
    -        $creation_url = rtrim($this->_buildBaseUrl() . $this->_buildUrl($component, array()), '/') . '.' . self::WRAPPER_JSON;
    -        return new TelApi_Connector($this->_execute($creation_url, 'DELETE', ''), $this->option('response_to_array'), $this->_component);
    -    }
    -    
    -    /** *********** CLIENT RELATED METHODS ************** **/
    -    
    -    
    -    /**
    -     * Return an instance of the TelAPI Client class
    -     * 
    -     * @return Class <TelApi_Client, self, NULL>
    -     */
    -    function getClient() {
    -    	return TelApi_Client::getInstance();
    -    }
    -    
    -    /**
    -     * Return an instance of the TelAPI Connect class
    -     *
    -     * @return Class <TelApi_Connect, self, NULL>
    -     */
    -    function getConnect() {
    -    	return TelApi_Connect::getInstance();
    -    }
    -    
    -    /** *********** INTERNAL METHODS ************** **/
    -    
    -    
    -    /**
    -     * Building base URL of TelAPI wrapper. This will set 
    -     * https://{url}/{version}/accounts/account_sid
    -     * as main and base url.
    -     * 
    -     * @return string
    -     * @throws TelApi_Exception 
    -     */
    -    private function _buildBaseUrl() {
    -
    -        $return_url = self::API_URL . $this->_getBaseVersion() . '/';
    -        
    -        if(is_null($this->option('account_sid'))) {
    -            throw new TelApi_Exception(
    -                "Please set account_sid option. You need to pass account_sid option as 
    -                auth_token in order to authenticate and/or use TelAPI wrapper"
    -            );
    -        }
    -        
    -        $return_url .= self::API_START_COMPONENT . '/' . $this->option('account_sid') . '/';
    -        return $return_url;
    -    }
    -    
    -    /**
    -     * Get base version of the TelAPI REST API endpoint.
    -     * 
    -     * @return string
    -     * @throws TelApi_Exception  If invalid api_version applied
    -     */
    -    private function _getBaseVersion() {
    -        $base_version = strtolower($this->option('api_version'));
    -        
    -        if(!in_array($base_version, $this->_availableVersions)) {
    -            $base_versions = implode(', ', $this->_availableVersions);
    -            throw new TelApi_Exception("Defined version '{$base_version}' does not exist. Please use one of following versions: '{$base_versions}'");
    -        }
    -        
    -        $this->setOption('api_version', $base_version);
    -        return $this->option('api_version');
    -    }
    -
    -
    -    
    -    /**
    -     * This will build URL of TelAPI wrapper after the AccountSid with or without
    -     * possible GET parameters like ?PageSize=20
    -     * 
    -     * @param  array|string $component
    -     * @param  array $parameters
    -     * @return string
    -     * @throws TelApi_Exception
    -     */
    -    private function _buildUrl($component, Array $parameters=array()) {
    -        $return_url = '';
    -        
    -        $schemas = TelApi_Schemas::getInstance();
    -        
    -        if(is_array($component)) {
    -            
    -            $is_component = $schemas->isRestComponent(strtolower($component[0])); 
    -            
    -            if(!$is_component) {
    -                $available_components = implode(", ", array_keys((array)$schemas->getAvailableRestComponents()));
    -                throw new TelApi_Exception(
    -                    "Component you've requested '{$component[0]}' cannot be found. Available components are: '{$available_components}'"
    -                );
    -            }
    -            
    -            if(is_null($schemas->getRestComponentName(strtolower($component[0])))) {
    -                throw new TelApi_Exception("First resource argument in array cannot be null!");
    -            }
    -            
    -            $this->_component = strtolower($component[0]);
    -            
    -            $return_url = str_ireplace($component[0], $this->_components[strtolower($component[0])], implode('/', $component));
    -            
    -        } else {
    -            
    -            $is_component = $schemas->isRestComponent(strtolower($component)); 
    -
    -            if(!$is_component) {
    -                $available_components = implode(", ", array_keys((array)$schemas->getAvailableRestComponents()));
    -                throw new TelApi_Exception(
    -                    "Component you've requested '{$component}' cannot be found. Available components are: '{$available_components}'"
    -                );
    -            }
    -            
    -            $this->_component = strtolower($component);
    -            
    -            if(!is_null($this->_components[strtolower($component)]))
    -                $return_url .= $this->_components[strtolower($component)] . '/';
    -            
    -        }
    -
    -        return $return_url;
    -    }
    -    
    -    
    -    /**
    -     * Building GET query parameters will return blank if there are no parameters
    -     * 
    -     * @param  array  $parameters
    -     * @return string 
    -     */
    -    private function _buildParameters(Array $parameters=array()) {
    -        $return_params = '';
    -        
    -        if(count($parameters) > 0) {
    -            $return_params = '?';
    -            
    -            foreach($parameters as $parameter => $value) {
    -                if(is_array($value)) {
    -                    foreach($value as $subvalue) {
    -                        $return_params .= $parameter.'='.$subvalue.'&';
    -                    }
    -                } else {
    -                    $return_params .= $parameter.'='.$value.'&';
    -                }
    -            }
    -            
    -            $return_params = rtrim($return_params, '&');
    -        }
    -        
    -        return $return_params;
    -    }
    -    
    -    
    -    /**
    -     * Building GET query parameters will return blank if there are no parameters
    -     * 
    -     * @param  array  $parameters
    -     * @return string 
    -     */
    -    private function _buildPostParameters(Array $parameters=array()) {
    -        $return_params = '';
    -        
    -        if(count($parameters) > 0) {
    -            foreach($parameters as $parameter => $value) {
    -                if(is_array($value)) {
    -                    foreach($value as $subvalue) {
    -                        $return_params .= $parameter.'='.urlencode($subvalue).'&';
    -                    }
    -                } else {
    -                    $return_params .= $parameter.'='.urlencode($value).'&';
    -                }
    -            }
    -            $return_params = rtrim($return_params, '&');
    -        }
    -        
    -        return $return_params;
    -    }
    -
    -
    -    
    -    /**
    -     * Do the actual curl request
    -     * 
    -     * @param  string  $url
    -     * @param  string  $type
    -     * @param  string  $params
    -     * @return array 
    -     */
    -    private function _execute($url, $type='GET', $params=null){
    -        $type = strtoupper($type);
    -        $account_sid = $this->option('account_sid');
    -        $auth_token  = $this->option('auth_token');
    -        $response    = array();
    -        
    -        if(substr($url, 0, 4) == 'http') $curl_port = 80;
    -        if(substr($url, 0, 5) == 'https') $curl_port = 443;
    -        
    -        if($resource = curl_init()) {
    -            $curl_opts = array(
    -                CURLOPT_URL            => $url,
    -                CURLOPT_PORT           => $curl_port,
    -                CURLOPT_HEADER         => FALSE,
    -                CURLOPT_RETURNTRANSFER => TRUE,
    -                CURLOPT_TIMEOUT        => 0,
    -                CURLOPT_SSL_VERIFYPEER => FALSE,
    -                CURLOPT_USERPWD        => "{$account_sid}:{$auth_token}",
    -            );
    -                
    -            if($type == 'DELETE') {
    -                $curl_opts[CURLOPT_CUSTOMREQUEST] = 'DELETE';
    -            }
    -            
    -            if($type == 'POST') {
    -                $curl_opts[CURLOPT_POST] = 1;
    -                $curl_opts[CURLOPT_POSTFIELDS] = $params;
    -            }
    -            
    -            if($this->getConnect()->getStatus() === true) {
    -	            if(count(self::$_connectHeaders) > 0) {
    -	            	$curl_opts[CURLOPT_HTTPHEADER] = self::$_connectHeaders;
    -	            }
    -            }
    -            
    -            if(curl_setopt_array($resource, $curl_opts)) {
    -                $response['exec']  = curl_exec($resource);
    -                $response['error'] = curl_error($resource);
    -                $response['errno'] = curl_errno($resource);
    -                $response['info']  = curl_getinfo($resource);
    -            }
    -        }
    -        return $response;
    -    }
    -}
    diff --git a/library/TelApi/Schemas.php b/library/TelApi/Schemas.php
    deleted file mode 100644
    index c84e301..0000000
    --- a/library/TelApi/Schemas.php
    +++ /dev/null
    @@ -1,227 +0,0 @@
    -<?php
    -
    -/** @see TelApi_Exception **/
    -require_once 'Exception.php';
    -
    -/**
    - * 
    - * TelAPI Schemas file. With this file schemas/telapi.json will be imported
    - * 
    - * --------------------------------------------------------------------------------
    - * 
    - * @category  TelApi Wrapper
    - * @package   TelApi
    - * @author    Nevio Vesic <nevio@telapi.com>
    - * @license   http://creativecommons.org/licenses/MIT/ MIT
    - * @copyright (2012) TelTech Systems, Inc. <info@telapi.com>
    - */
    - 
    -class TelApi_Schemas 
    -{
    -    
    -    /** Default location of the telapi.json schema file  */
    -    CONST TELAPI_SCHEMA_FILE = '/schemas/telapi.json';
    -    
    -    /**
    -     * Storage of telapi.json schema data 
    -     * 
    -     * @var array|null
    -     */
    -    protected static $_schemaData = null;
    -    
    -    /**
    -     * Schemas singleton instance container 
    -     * 
    -     * @var self|null
    -     */
    -    protected static $_instance   = null;
    -    
    -
    -    /**
    -     * Get singleton instance of Schemas object
    -     * 
    -     * @return self 
    -     */
    -    static function getInstance() {
    -        if(is_null(self::$_instance)) {
    -            self::$_instance = new self();
    -            self::$_instance-> loadSchema();
    -        }
    -        return self::$_instance;
    -    }
    -    
    -    
    -    /**
    -     * This method will load internal telapi.json schema in case it's not being loaded
    -     * 
    -     * @throws TelApi_Exception 
    -     * @return void
    -     */
    -    public function loadSchema() {
    -        if(is_null(self::$_schemaData)) {
    -            $schema_file = realpath(dirname(dirname(dirname(__FILE__)))) . self::TELAPI_SCHEMA_FILE;
    -            $json_schema = file_get_contents($schema_file);
    -
    -            $error = ''; 
    -
    -            $result = json_decode(trim($json_schema), false);
    -            
    -
    -            if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
    -
    -                switch(json_last_error()) {
    -                    case JSON_ERROR_DEPTH:
    -                        $error =  ' - Maximum stack depth exceeded';
    -                        break;
    -                    case JSON_ERROR_CTRL_CHAR:
    -                        $error = ' - Unexpected control character found';
    -                        break;
    -                    case JSON_ERROR_STATE_MISMATCH:
    -                        $error  = ' - Invalid or Malformed JSON';
    -                        break;
    -                    case JSON_ERROR_SYNTAX:
    -                        $error = ' - Syntax error, malformed JSON';
    -                        break;
    -                    case JSON_ERROR_NONE:
    -                    default:
    -                        $error = '';              
    -                }
    -
    -            }
    -
    -            if (!empty($error)) throw new TelApi_Exception('JSON SCHEMA Error: '.$error);
    -            self::$_schemaData = $result;
    -        }
    -    }
    -    
    -    
    -    /**
    -     * Is current component name part of TelAPI REST API
    -     * 
    -     * @param  string $component_name
    -     * @return bool
    -     */
    -    public function isRestComponent($component_name) {
    -        if(!isset(self::$_schemaData->rest_api->components)) return false;
    -        return array_key_exists($component_name, self::$_schemaData->rest_api->components) ? true : false;
    -    }
    -    
    -    /**
    -     * Converts a short name to a relative TelAPI REST API URI
    -     * Example: sms_messages -> SMS/Messages
    -     * 
    -     * @param  string $component_name
    -     * @return mixed
    -     */
    -    public function getRestComponentName($component_name) {
    -        if(!isset(self::$_schemaData->rest_api->components)) return null;
    -        return self::$_schemaData->rest_api->components->$component_name;
    -    }
    -    
    -    
    -    /**
    -     * Get all available TelAPI REST API components
    -     * 
    -     * @return stdClass|null
    -     */
    -    public function getAvailableRestComponents() {
    -        if(!isset(self::$_schemaData->rest_api->components)) return null;
    -        return self::$_schemaData->rest_api->components;
    -    }
    -    
    -    /**
    -     * Check whenever attribute is or is not in paging property
    -     * Used to extract paging properties from the rest of the properties
    -     * 
    -     * @param  string $paging_property
    -     * @return bool|null 
    -     */
    -    public function isPagingProperty($paging_property) {
    -        if(!isset(self::$_schemaData->rest_api->pagination)) return null;
    -        return in_array($paging_property, self::$_schemaData->rest_api->pagination) ? true : false;
    -    }
    -    
    -    
    -    /**
    -     * Get all available paging properties 
    -     * 
    -     * @return array
    -     */
    -    public function getPagingProperties() {
    -        if(!isset(self::$_schemaData->rest_api->pagination)) return array();
    -        return (array) self::$_schemaData->rest_api->pagination;
    -    }
    -    
    -    
    -    /**
    -     * Is current string part of verb dictionary
    -     * 
    -     * @param  string $verb
    -     * @return boolean 
    -     */
    -    public function isVerb($verb) {
    -        if(!isset(self::$_schemaData->inboundxml->verbs)) return array();
    -        return array_key_exists(ucfirst($verb), self::$_schemaData->inboundxml->verbs) ? true : false;
    -    }
    -    
    -    
    -    /**
    -     * List of all available InboundXML verbs
    -     * 
    -     * @return array
    -     */
    -    public function getAvailableVerbs() {
    -        if(!isset(self::$_schemaData->inboundxml->verbs)) return array();
    -        return array_keys((array)self::$_schemaData->inboundxml->verbs);
    -    }
    -    
    -    
    -    /**
    -     * Is nesting of current verb allowed inside of root element
    -     * 
    -     * @param  string  $root_element
    -     * @param  string  $next_element
    -     * @return boolean 
    -     */
    -    public function isNestingAllowed($root_element, $next_element) {
    -        if(!isset(self::$_schemaData->inboundxml->verbs->$root_element)) return false;
    -        return in_array(ucfirst($next_element), self::$_schemaData->inboundxml->verbs->$root_element->nesting) ? true : false;
    -    }
    -    
    -    /**
    -     * Get all nestable InboundXML elements by parent element. Some InboundXML elements can be nested inside
    -     * others, such as <Gather><Say>Enter your PIN</Say></Gather>
    -     * 
    -     * @param  string $verb
    -     * @return array 
    -     */
    -    public function getNestableByVerbs($verb) {
    -        if(!isset(self::$_schemaData->inboundxml->verbs->$verb)) return array();
    -        return self::$_schemaData->inboundxml->verbs->$verb->nesting;
    -    }
    -    
    -    
    -    /**
    -     * Get all available verb attributes
    -     * 
    -     * @param  string $verb
    -     * @return array 
    -     */
    -    public function getAvailableAttributes($verb) {
    -        if(!isset(self::$_schemaData->inboundxml->verbs->$verb->attributes)) return array();
    -        return self::$_schemaData->inboundxml->verbs->$verb->attributes;
    -    }
    -    
    -    /**
    -     * Check if an attribute name is valid for a InboundXML element
    -     * 
    -     * @param  string  $attribute
    -     * @param  string  $verb
    -     * @return boolean 
    -     */
    -    public function isValidAttribute($attribute, $verb) {
    -        $verb = ucfirst($verb);
    -        if(!isset(self::$_schemaData->inboundxml->verbs->$verb->attributes)) return false;
    -        return in_array($attribute, self::$_schemaData->inboundxml->verbs->$verb->attributes) ? true : false;
    -    }
    -}
    \ No newline at end of file
    diff --git a/library/TelApi/Sdk.php b/library/TelApi/Sdk.php
    deleted file mode 100644
    index f410f7a..0000000
    --- a/library/TelApi/Sdk.php
    +++ /dev/null
    @@ -1,166 +0,0 @@
    -<?php
    -
    -/**
    - * 
    - * A TelAPI Client wrapper.
    - * 
    - * This class will help you with generating and managing TelAPI client tokens.
    - * 
    - * --------------------------------------------------------------------------------
    - * 
    - * @category  TelApi Wrapper
    - * @package   TelApi
    - * @author    Nevio Vesic <nevio@telapi.com>
    - * @license   http://creativecommons.org/licenses/MIT/ MIT
    - * @copyright (2012) TelTech Systems, Inc. <info@telapi.com>
    - */
    -
    -class TelApi_Client extends TelApi_Related
    -{
    -	
    -	/**
    -	 * Singleton instance container
    -	 * @var self|null
    -	 */
    -	protected static $_instance = null;
    -
    -	/**
    -	 * All available resources sorted by a application sids. This is used to for example
    -	 * figure out client_password.
    -	 * @var array
    -	 */
    -	protected static $_resource = array();
    -	
    -	/**
    -     * Singleton access method to TelAPI. This is THE ONLY PROPER WAY to
    -     * access the TelAPI wrapper!
    -	 *
    -	 * @return self
    -	 */
    -	static function getInstance() {
    -		if(is_null(self::$_instance)) self::$_instance = new self();
    -		return self::$_instance;
    -	}
    -	
    -	/**
    -     * Generate token by application sid. If an error occurs, a TelAPI Exception will be thrown
    -     * try/catch block.
    -	 * 
    -	 * @param  String  $application_sid
    -	 * @param  Boolean $force_regenerate     If true, regardless of the existing token, it will be regenerated
    -	 * @return Ambigous <string, multitype:>
    -	 */
    -	public function generateToken($application_sid,$client_nickname, $force_regenerate=false) {
    -		
    -		$this->_isApplication($application_sid);
    -		
    -		# In case that token already exists and force_regenerate is false
    -		if($this->tokenExists($application_sid) && !$force_regenerate) return $this->getToken($application_sid);
    -		
    -		$resource = $this->create(array('Applications', $application_sid, 'Clients', 'Tokens'), array(
    -			'Nickname'					=> $client_nickname,
    -			'X-TELAPI-HELPER'           => 'PHP',
    -			'X-TELAPI-HELPER-TIMESTAMP'	=> time()
    -		));
    -
    -		self::$_resource[$application_sid] = $resource;
    -		
    -		$this->setToken($application_sid, $resource->sid);
    -		
    -		return $resource;
    -	}
    -	
    -	
    -	/**
    -	 * Set the token for some application regardless of if token is already assigned
    -	 * 
    -	 * @param  String $application_sid
    -	 * @param  String $token
    -	 * @throws TelApi_Exception  if application sid is not correct
    -	 */
    -	public function setToken($application_sid, $token) {
    -		
    -		$this->_isApplication($application_sid);
    -		
    -		$this->_isTokenValid($token);
    -		
    -		$this->_sdkToken[$application_sid] = $token;
    -		
    -		return true;
    -	}
    -	
    -	
    -	/**
    -	 * Return client token or NULL if not set
    -	 * 
    -	 * @return String <string, NULL>
    -	 * @throws TelApi_Exception  if application sid is not correct
    -	 */
    -	public function getToken($application_sid) {  
    -
    -		$this->_isApplication($application_sid);
    -		
    -		return isset($this->_sdkToken[$application_sid]) ? $this->_sdkToken[$application_sid] : null;
    -	}
    -	
    -
    -	public function getPassword($application_sid) {
    -
    -		$this->_isApplication($application_sid);
    -
    -		if( array_key_exists($application_sid, self::$_resource) ) {
    -			if( @self::$_resource[$application_sid]->client_password ) {
    -				return self::$_resource[$application_sid]->client_password;
    -			}
    -		}
    -
    -		return null;
    -	}
    -
    -	
    -	/**
    -	 * Return whenever token is generated and is set within the class.
    -	 * 
    -	 * @return boolean
    -	 * @throws TelApi_Exception  if application sid is not correct
    -	 */
    -	public function tokenExists($application_sid) {
    -
    -		$this->_isApplication($application_sid);
    -		
    -		return $this->getToken($application_sid) ? true : false;
    -	}
    -
    -
    -	public function passwordExists($application_sid) {
    -		$this->_isApplication($application_sid);
    -	}
    -	
    -	
    -	/**
    -	 * Check if Application SID is valid
    -	 * 
    -	 * @param  String  $application_sid
    -	 * @throws TelApi_Exception
    -	 */
    -	private function _isApplication($application_sid) {
    -		if(! is_string($application_sid) || strlen($application_sid) != 34 || substr($application_sid, 0, 2) != "AP" ) {
    -			throw new TelApi_Exception("Provided TelAPI Application sid is not valid.");
    -		}
    -	}
    -	
    -	/**
    -	 * Check if Application client sid is valid when received
    -	 * 
    -	 * @param  String  $client_sid
    -	 * @throws TelApi_Exception
    -	 * @return boolean
    -	 */
    -	private function _isTokenValid($client_sid) {
    -		if(is_null($client_sid) || strlen($client_sid) < 20) {
    -			throw new TelApi_Exception("Specified TelAPI Application client sid is not valid!");
    -		}
    -		
    -		return true;
    -	}
    -}
    \ No newline at end of file
    diff --git a/package.php b/package.php
    deleted file mode 100644
    index fc83aca..0000000
    --- a/package.php
    +++ /dev/null
    @@ -1,126 +0,0 @@
    -<?php
    -
    -/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
    -
    -/**
    - * This is the package.xml generator for TelAPI
    - *
    - * PHP version 5
    - *
    - * LICENSE:
    - *
    - * Copyright 2012 TelAPI.
    - *
    - * Licensed under the Apache License, Version 2.0 (the "License");
    - * you may not use this file except in compliance with the License.
    - * You may obtain a copy of the License at
    - *
    - *   http://www.apache.org/licenses/LICENSE-2.0
    - *
    - * Unless required by applicable law or agreed to in writing, software
    - * distributed under the License is distributed on an "AS IS" BASIS,
    - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    - * See the License for the specific language governing permissions and
    - * limitations under the License.
    - *
    - * @category  TelAPI
    - * @package   TelApi
    - * @author    Nevio Vesic <nevio@telapi.com>
    - * @copyright 2012 TelAPI
    - * @license   http://creativecommons.org/licenses/MIT/
    - */
    -
    -error_reporting(E_ALL & ~E_DEPRECATED);
    -require_once 'PEAR/PackageFileManager2.php';
    -PEAR::setErrorHandling(PEAR_ERROR_DIE);
    -
    -$api_version     = '1.0.0';
    -$api_state       = 'stable';
    -
    -$release_version = '1.0.1';
    -$release_state   = 'stable';
    -$release_notes   = 'Adding PEAR package improvements';
    -
    -$release_version = '1.0.2';
    -$release_state   = 'stable';
    -$release_notes   = 'Adding PEAR package improvements';
    -
    -$description = <<<DESC
    -TelAPI PHP wrapper is an open source tool built for easy access to the TelAPI.com API infrastructure. TelAPI is a powerful cloud communications API built to enable your apps to send and receive SMS messages and phone calls — all while controlling the call flow. Some features are conferencing, phone calls, text-to-speech, recordings, transcriptions and much more.
    -DESC;
    -
    -$package = new PEAR_PackageFileManager2();
    -
    -$package->setOptions(
    -    array(
    -        'filelistgenerator'       => 'file',
    -        'simpleoutput'            => true,
    -        'baseinstalldir'          => '/',
    -        'packagedirectory'        => './',
    -        'dir_roles'               => array(
    -            'schemas'  => 'data',
    -            'library'  => 'php',
    -            'library/TelApi' => 'php'
    -            
    -        ),
    -        'ignore'                  => array(
    -            'examples/*',
    -	        'logs/*',
    -            'package.php',
    -            'package.xml~',
    -            'package.php~',
    -            '*.tgz',
    -            '*.md',
    -            'scratch/*',
    -            'vendor/*',
    -            'composer.*',
    -            'coverage/*',
    -            'docs/*',
    -            'travis_install.bash',
    -            '.travis.yml',
    -        )
    -    )
    -);
    -
    -$package->setPackage('TelAPI');
    -$package->setSummary('PHP helper library for TelAPI');
    -$package->setDescription($description);
    -$package->setChannel('pear.telapi.com');
    -$package->setPackageType('php');
    -$package->setLicense(
    -    'MIT License',
    -    'http://creativecommons.org/licenses/MIT/'
    -);
    -
    -$package->setNotes($release_notes);
    -$package->setReleaseVersion($release_version);
    -$package->setReleaseStability($release_state);
    -$package->setAPIVersion($api_version);
    -$package->setAPIStability($api_state);
    -
    -$package->addMaintainer(
    -    'lead',
    -    '0x19',
    -    'Nevio Vesic',
    -    'nevio@telapi.com'
    -);
    -
    -
    -$package->setPhpDep('5.2.1');
    -
    -#$package->addPackageDepWithChannel('optional');
    -
    -$package->setPearInstallerDep('1.9.3');
    -$package->generateContents();
    -$package->addRelease();
    -
    -if (isset($_GET['make'])
    -    || (isset($_SERVER['argv']) && @$_SERVER['argv'][1] == 'make')
    -) {
    -    $package->writePackageFile();
    -} else {
    -    $package->debugPackageFile();
    -}
    -
    -?>
    -
    diff --git a/params.json b/params.json
    new file mode 100644
    index 0000000..da3698c
    --- /dev/null
    +++ b/params.json
    @@ -0,0 +1 @@
    +{"note":"Don't delete this file! It's used internally to help with page regeneration.","google":"","name":"Telapi-php","tagline":"","body":"### Welcome to GitHub Pages.\r\nThis automatic page generator is the easiest way to create beautiful pages for all of your projects. Author your page content here using GitHub Flavored Markdown, select a template crafted by a designer, and publish. After your page is generated, you can check out the new branch:\r\n\r\n```\r\n$ cd your_repo_root/repo_name\r\n$ git fetch origin\r\n$ git checkout gh-pages\r\n```\r\n\r\nIf you're using the GitHub for Mac, simply sync your repository and you'll see the new branch.\r\n\r\n### Designer Templates\r\nWe've crafted some handsome templates for you to use. Go ahead and continue to layouts to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved if it remained markdown format.\r\n\r\n### Rather Drive Stick?\r\nIf you prefer to not use the automatic generator, push a branch named `gh-pages` to your repository to create a page manually. In addition to supporting regular HTML content, GitHub Pages support Jekyll, a simple, blog aware static site generator written by our own Tom Preston-Werner. Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers intelligent blog support and other advanced templating features.\r\n\r\n### Authors and Contributors\r\nYou can @mention a GitHub username to generate a link to their profile. The resulting `<a>` element will link to the contributor's GitHub Profile. For example: In 2007, Chris Wanstrath (@defunkt), PJ Hyett (@pjhyett), and Tom Preston-Werner (@mojombo) founded GitHub.\r\n\r\n### Support or Contact\r\nHaving trouble with Pages? Check out the documentation at http://help.github.com/pages or contact support@github.com and we’ll help you sort it out."}
    \ No newline at end of file
    diff --git a/schemas/telapi.json b/schemas/telapi.json
    deleted file mode 100644
    index caad304..0000000
    --- a/schemas/telapi.json
    +++ /dev/null
    @@ -1,243 +0,0 @@
    -{
    -    "version" : "0.0.4",
    -    "rest_api" : {
    -        "components" : {
    -            "accounts"                : "Accounts",
    -            "notifications"           : "Notifications",
    -            "recordings"              : "Recordings",
    -            "sms_messages"            : "SMS/Messages",
    -            "transcriptions"          : "Transcriptions",
    -            "calls"                   : "Calls",
    -            "carrier"                 : "Lookups/Carrier",
    -            "cnam"                    : "Lookups/Cnam",
    -            "bna"                     : "Lookups/Bna",
    -            "incoming_phone_numbers"  : "IncomingPhoneNumbers",
    -            "available_phone_numbers" : "AvailablePhoneNumbers",
    -            "conferences"             : "Conferences",
    -            "applications"            : "Applications",
    -            "fraud"                   : "Fraud",
    -            "usages"                  : "Usages",
    -            "rates"                   : "Rates",
    -            "connect"                 : "Connect",
    -            "faxes"                   : "Faxes"
    -        },
    -
    -        "pagination" : [
    -            "page", "num_pages", "page_size", "total", "start", "end",
    -            "uri", "first_page_uri", "previous_page_uri", "next_page_uri",
    -            "last_page_uri"   
    -        ]
    -    },
    -    
    -    "inboundxml" : {
    -        "verbs": {
    -            "Response": {
    -                "attributes": [],
    -                "nesting": [
    -                    "Say",
    -                    "Play",
    -                    "Gather",
    -                    "GetSpeech",
    -                    "Record",
    -                    "PlayLastRecording",
    -                    "Dial",
    -                    "Hangup",
    -                    "Ping",
    -                    "Redirect",
    -                    "Reject",
    -                    "Pause",
    -                    "Sms"
    -                ],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/response/",
    -                "blank": false
    -            },
    -            "Say": {
    -                "attributes": [
    -                    "voice",
    -                    "loop",
    -                    "language"
    -                ],
    -                "nesting": [],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/say/",
    -                "blank": false
    -            },
    -            "Play": {
    -                "attributes": [
    -                    "loop"
    -                ],
    -                "nesting": [],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/play/",
    -                "blank": false
    -            },
    -            "Gather": {
    -                "attributes": [
    -                    "action",
    -                    "method",
    -                    "finishOnKey",
    -                    "timeout",
    -                    "numDigits"
    -                ],
    -                "nesting": [
    -                    "Say",
    -                    "Play",
    -                    "Pause"
    -                ],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/gather/",
    -                "blank": true
    -            },
    -            "Record": {
    -                "attributes": [
    -                    "action",
    -                    "method",
    -                    "timeout",
    -                    "finishOnKey",
    -                    "maxLength",
    -                    "transcribe",
    -                    "transcribeCallback",
    -                    "transcribeQuality",
    -                    "playBeep",
    -                    "direction",
    -                    "fileFormat",
    -                    "background"
    -                ],
    -                "nesting": [],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/record/",
    -                "blank": true
    -            },
    -            "PlayLastRecording": {
    -                "attributes": [],
    -                "nesting": [],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/playlastrecording/",
    -                "blank": true
    -            },
    -            "GetSpeech": {
    -                "attributes": [
    -                    "grammar", "action", "method", "timeout", "playBeep"
    -                ],
    -                "nesting": [
    -                    "Say", "Play", "Pause"
    -                ],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/getspeech/",
    -                "blank": false
    -            },
    -            "Dial": {
    -                "attributes": [
    -                    "action",
    -                    "method",
    -                    "timeout",
    -                    "hangupOnStar",
    -                    "timeLimit",
    -                    "callerId",
    -                    "hideCallerId",
    -                    "dialMusic",
    -                    "callbackUrl",
    -                    "callbackMethod",
    -                    "confirmSound",
    -                    "digitsMatch",
    -                    "straightToVm",
    -                    "heartbeatUrl",
    -                    "heartbeatMethod",
    -                    "forwardedFrom",
    -                    "ifMachine",
    -                    "ifMachineUrl",
    -                    "ifMachineMethod"
    -                ],
    -                "nesting": [
    -                    "Number",
    -                    "Conference",
    -                    "Sip"
    -                ],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/dial/",
    -                "blank": false
    -            },
    -            "Number": {
    -                "attributes": [
    -                    "sendDigits"
    -                ],
    -                "nesting": [],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/dial/number/",
    -                "blank": false
    -            },
    -            "Conference": {
    -                "attributes": [
    -                    "muted",
    -                    "beep",
    -                    "startConferenceOnEnter",
    -                    "endConferenceOnEnter",
    -                    "maxParticipants",
    -                    "waitUrl",
    -                    "waitMethod",
    -                    "hangupOnStar",
    -                    "callbackUrl",
    -                    "waitSound",
    -                    "waitSoundMethod",
    -                    "digitsMatch",
    -                    "stayAlone"
    -                ],
    -                "nesting": [],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/dial/conference/",
    -                "blank": false
    -            },
    -            "Sip": {
    -                "attributes": [
    -                    "action",
    -                    "method"
    -                ],
    -                "nesting": [],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/dial/sip/",
    -                "blank": false
    -            },
    -            "Hangup": {
    -                "attributes": [
    -                    "schedule"
    -                ],
    -                "nesting": [],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/hangup/",
    -                "blank": false
    -            },
    -            "Ping": {
    -                "attributes": [],
    -                "nesting": [],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/ping/",
    -                "blank": true
    -            },
    -            "Redirect": {
    -                "attributes": [
    -                    "method"
    -                ],
    -                "nesting": [],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/redirect/",
    -                "blank": true
    -            },
    -            "Reject": {
    -                "attributes": [
    -                    "reason"
    -                ],
    -                "nesting": [],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/reject/",
    -                "blank": true
    -            },
    -            "Pause": {
    -                "attributes": [
    -                    "length"
    -                ],
    -                "nesting": [],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/voice/pause/",
    -                "blank": true
    -            },
    -            "Sms": {
    -                "attributes": [
    -                    "to",
    -                    "from",
    -                    "action",
    -                    "method",
    -                    "statusCallback",
    -                    "statusCallbackMethod"
    -                ],
    -                "nesting": [],
    -                "docs_url": "http: //www.telapi.com/docs/api/inboundxml/sms/sms/",
    -                "blank": false
    -            }
    -        }
    -    }
    -}
    diff --git a/stylesheets/ProximaNova-Bold-webfont.eot b/stylesheets/ProximaNova-Bold-webfont.eot
    new file mode 100644
    index 0000000..3bb7903
    Binary files /dev/null and b/stylesheets/ProximaNova-Bold-webfont.eot differ
    diff --git a/stylesheets/ProximaNova-Bold-webfont.svg b/stylesheets/ProximaNova-Bold-webfont.svg
    new file mode 100644
    index 0000000..d16a9a8
    --- /dev/null
    +++ b/stylesheets/ProximaNova-Bold-webfont.svg
    @@ -0,0 +1,237 @@
    +<?xml version="1.0" standalone="no"?>
    +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
    +<svg xmlns="http://www.w3.org/2000/svg">
    +<metadata>
    +This is a custom SVG webfont generated by Fontspring.
    +</metadata>
    +<defs>
    +<font id="webfontnr0MA2zn" horiz-adv-x="256" >
    +<font-face units-per-em="1000" ascent="790" descent="-210" />
    +<missing-glyph horiz-adv-x="500" />
    +<glyph unicode=" " />
    +<glyph unicode="!" d="M184 217h-112l-21 450h153zM128 -10q-33 0 -56.5 24t-23.5 56q0 33 23.5 57t56.5 24t57 -24t24 -57q0 -32 -24 -56t-57 -24z" />
    +<glyph unicode="&#x22;" horiz-adv-x="406" d="M141 375h-56q-41 214 -41 233q0 28 20 48.5t49 20.5q28 0 48.5 -20.5t20.5 -48.5zM321 375h-55q-41 214 -41 233q0 28 20.5 48.5t48.5 20.5t48 -20t20 -49z" />
    +<glyph unicode="#" horiz-adv-x="618" d="M339 0h-95l58 169h-95l-57 -169h-94l57 169h-96l26 81h98l54 166h-98l25 80h101l56 171h94l-56 -171h94l56 171h95l-58 -171h97l-24 -80h-100l-55 -166h101l-25 -81h-103zM328 250l55 166h-94l-54 -166h93z" />
    +<glyph unicode="$" horiz-adv-x="614" d="M266 -100v90q-146 13 -236 104l77 108q66 -70 159 -86v158q-37 9 -62.5 17.5t-57 25t-50.5 36t-32 51t-13 70.5q0 78 58 134.5t157 66.5v93h95v-95q120 -13 203 -89l-79 -104q-52 47 -124 65v-141q37 -9 63 -18t57.5 -25.5t51 -36.5t33 -51.5t13.5 -70.5q0 -86 -56 -143 t-162 -68v-91h-95zM435 186q0 40 -74 64v-134q35 7 54.5 26.5t19.5 43.5zM196 486q0 -37 70 -57v122q-33 -4 -51.5 -21.5t-18.5 -43.5z" />
    +<glyph unicode="%" horiz-adv-x="757" d="M195 345q-75 0 -122 46.5t-47 117.5q0 72 47 120t122 48q76 0 123 -48t47 -120q0 -71 -47 -117.5t-123 -46.5zM205 0h-75l426 667h76zM562 -12q-75 0 -122 47t-47 118q0 72 47 120t122 48t122.5 -48t47.5 -120q0 -71 -47.5 -118t-122.5 -47zM195 423q35 0 57 23.5 t22 62.5q0 41 -22 65t-57 24t-57 -24t-22 -65q0 -38 22.5 -62t56.5 -24zM562 66q35 0 57.5 23.5t22.5 63.5q0 41 -22.5 65t-57.5 24t-57 -24t-22 -65q0 -40 22 -63.5t57 -23.5z" />
    +<glyph unicode="&#x26;" horiz-adv-x="646" d="M638 0h-162l-50 50q-82 -62 -182 -62q-96 0 -158 50t-62 143q0 69 38.5 114t104.5 78q-44 83 -44 144q0 68 54 114t137 46q74 0 124.5 -38.5t50.5 -102.5q0 -36 -13 -65t-39.5 -51t-50 -35.5t-61.5 -31.5q22 -29 58 -72l56 -68q40 62 61 129l102 -47q-42 -92 -93 -161z M262 88q49 0 96 34q-50 55 -74 85q-35 43 -67 88q-58 -41 -58 -102q0 -47 30 -76t73 -29zM250 514q0 -35 29 -90q49 23 74.5 47t25.5 58q0 26 -17 41t-42 15q-30 0 -50 -20.5t-20 -50.5z" />
    +<glyph unicode="'" horiz-adv-x="225" d="M141 375h-56q-41 214 -41 233q0 28 20 48.5t49 20.5q28 0 48.5 -20.5t20.5 -48.5z" />
    +<glyph unicode="(" horiz-adv-x="297" d="M279 -137l-80 -62q-73 82 -115.5 201.5t-42.5 240.5t42.5 240.5t115.5 201.5l80 -60q-52 -95 -76.5 -184t-24.5 -198t24.5 -198t76.5 -182z" />
    +<glyph unicode=")" horiz-adv-x="297" d="M97 -199l-80 62q53 92 77.5 181t24.5 199t-24.5 199t-77.5 183l80 60q74 -83 117 -202t43 -240t-43.5 -240.5t-116.5 -201.5z" />
    +<glyph unicode="*" horiz-adv-x="351" d="M207 366h-63l5 110l-93 -59l-31 54l97 50l-97 50l31 55l93 -59l-5 110h63l-5 -110l92 59l32 -55l-97 -50l97 -50l-32 -54l-92 59z" />
    +<glyph unicode="+" horiz-adv-x="504" d="M475 298h-179v-203h-87v203h-180v79h180v195h87v-195h179v-79z" />
    +<glyph unicode="," d="M215 49q0 -55 -28 -103.5t-75 -82.5l-55 45q25 13 48 40.5t29 53.5q-9 -3 -19 -3q-29 0 -48.5 20t-19.5 52q0 33 23 56.5t55 23.5q37 0 63.5 -27.5t26.5 -74.5z" />
    +<glyph unicode="-" horiz-adv-x="300" d="M270 188h-240v108h240v-108z" />
    +<glyph unicode="." d="M128 -11q-33 0 -57 24t-24 57t24 57t57 24t57 -24t24 -57t-24 -57t-57 -24z" />
    +<glyph unicode="/" horiz-adv-x="329" d="M92 -20h-92l237 707h92z" />
    +<glyph unicode="0" horiz-adv-x="620" d="M310 -12q-91 0 -155.5 51.5t-92.5 127.5t-28 166t28 166t92.5 127t155.5 51t155 -51t92.5 -127t28.5 -166t-28.5 -166t-92.5 -127.5t-155 -51.5zM310 114q68 0 99.5 60t31.5 159t-31.5 158.5t-99.5 59.5t-100 -59.5t-32 -158.5t32 -159t100 -60z" />
    +<glyph unicode="1" horiz-adv-x="411" d="M345 0h-142v484l-111 -113l-81 85l210 211h124v-667z" />
    +<glyph unicode="2" horiz-adv-x="600" d="M549 0h-502v111q214 159 283.5 226.5t69.5 126.5q0 41 -32 64t-76 23q-105 0 -179 -77l-81 94q47 54 115.5 81.5t141.5 27.5q110 0 182.5 -58t72.5 -155q0 -82 -64.5 -160.5t-202.5 -178.5h272v-125z" />
    +<glyph unicode="3" horiz-adv-x="587" d="M283 -12q-88 0 -156 29.5t-107 77.5l74 95q34 -35 84 -55.5t100 -20.5q60 0 93 23.5t33 61.5q0 40 -32 58.5t-102 18.5q-63 0 -83 -2v128q12 -1 83 -1q123 0 123 71q0 38 -34.5 58.5t-89.5 20.5q-97 0 -169 -69l-71 89q94 106 255 106q117 0 184.5 -49t67.5 -132 q0 -60 -43 -100.5t-103 -51.5q59 -6 107.5 -48.5t48.5 -111.5q0 -87 -72 -141.5t-191 -54.5z" />
    +<glyph unicode="4" horiz-adv-x="597" d="M486 0h-142v138h-319v112l265 417h196v-404h86v-125h-86v-138zM344 263v278l-180 -278h180z" />
    +<glyph unicode="5" horiz-adv-x="608" d="M306 -12q-165 0 -257 100l79 99q70 -73 177 -73q57 0 90.5 28.5t33.5 70.5q0 45 -32 72t-88 27q-83 0 -140 -54l-99 26v383h458v-125h-316v-163q56 56 147 56q89 0 151.5 -59t62.5 -157q0 -106 -73 -168.5t-194 -62.5z" />
    +<glyph unicode="6" horiz-adv-x="608" d="M322 -12q-144 0 -216 96t-72 248q0 155 83 250t228 95q116 0 197 -69l-64 -109q-55 52 -133 52q-73 0 -120 -54.5t-47 -134.5q0 -9 1 -14q25 36 72 61t99 25q95 0 161 -57.5t66 -159.5q0 -99 -71 -164t-184 -65zM314 114q54 0 86.5 30t32.5 68q0 49 -36 74.5t-88 25.5 q-80 0 -130 -63q5 -56 38 -95.5t97 -39.5z" />
    +<glyph unicode="7" horiz-adv-x="545" d="M277 0h-156l239 542h-336v125h501v-99z" />
    +<glyph unicode="8" horiz-adv-x="606" d="M303 -12q-113 0 -190.5 48t-77.5 137q0 58 40 103.5t103 67.5q-132 46 -132 157q0 87 76.5 131.5t180.5 44.5q66 0 122 -17t95.5 -58.5t39.5 -100.5q0 -110 -133 -157q63 -22 103.5 -67.5t40.5 -103.5q0 -88 -78 -136.5t-190 -48.5zM303 400q41 6 76.5 26t35.5 53 q0 35 -31 55.5t-81 20.5t-81.5 -20.5t-31.5 -55.5q0 -33 36 -53t77 -26zM303 110q52 0 88 22.5t36 58.5q0 37 -40.5 60t-83.5 29q-43 -6 -83.5 -29t-40.5 -60q0 -36 35.5 -58.5t88.5 -22.5z" />
    +<glyph unicode="9" horiz-adv-x="608" d="M263 -11q-119 0 -196 69l63 109q55 -52 133 -52t122.5 55.5t44.5 132.5v15q-26 -36 -73 -61t-99 -25q-95 0 -161.5 57.5t-66.5 159.5q0 99 71.5 164t184.5 65q97 0 163.5 -48t95 -123.5t28.5 -173.5q0 -154 -82.5 -249t-227.5 -95zM298 354q80 0 131 62q-5 56 -38 96 t-98 40q-54 0 -86 -30t-32 -68q0 -49 36 -74.5t87 -25.5z" />
    +<glyph unicode=":" horiz-adv-x="251" d="M128 328q-33 0 -57 24t-24 57t24 57t57 24t57 -24t24 -57t-24 -57t-57 -24zM128 -11q-33 0 -57 24t-24 57t24 57t57 24t57 -24t24 -57t-24 -57t-57 -24z" />
    +<glyph unicode=";" d="M128 328q-33 0 -57 24.5t-24 56.5q0 33 24 57t57 24t57 -24t24 -57q0 -32 -24 -56.5t-57 -24.5zM215 51q0 -55 -28 -103.5t-75 -82.5l-55 45q25 14 48 42t29 53q-12 -4 -19 -4q-29 0 -48.5 20.5t-19.5 52.5q0 33 23 56t55 23q37 0 63.5 -27.5t26.5 -74.5z" />
    +<glyph unicode="&#x3c;" horiz-adv-x="504" d="M475 90l-446 199v91l446 200v-94l-355 -152l355 -150v-94z" />
    +<glyph unicode="=" horiz-adv-x="504" d="M475 388h-446v80h446v-80zM475 201h-446v78h446v-78z" />
    +<glyph unicode="&#x3e;" horiz-adv-x="504" d="M475 289l-446 -199v94l355 150l-355 152v94l446 -200v-91z" />
    +<glyph unicode="?" horiz-adv-x="456" d="M178 204q-33 36 -33 88q0 40 23 72t50 48t50 38t23 44q0 25 -19.5 41t-58.5 16q-71 0 -123 -62l-81 91q83 97 219 97q96 0 152 -43.5t56 -114.5q0 -40 -17 -72t-42 -52t-49.5 -37t-41.5 -37t-17 -43q0 -26 18 -42zM226 -11q-33 0 -57 24t-24 57t24 57t57 24t57 -24 t24 -57t-24 -57t-57 -24z" />
    +<glyph unicode="@" horiz-adv-x="783" d="M352 -70q-136 0 -226.5 90.5t-90.5 223.5q0 104 55.5 195.5t147.5 145t194 53.5q140 0 227.5 -89t87.5 -217q0 -116 -62 -181.5t-136 -65.5q-42 0 -67 21.5t-30 52.5l-1 6q-26 -37 -65 -58.5t-79 -21.5q-71 0 -113 47t-42 121q0 99 69 172t157 73q43 0 75.5 -18.5 t49.5 -48.5l11 53h113l-51 -244q-3 -18 -3 -24q0 -45 37 -45q35 0 64.5 41.5t29.5 119.5q0 119 -75.5 193t-200.5 74q-142 0 -248 -106.5t-106 -246.5q0 -118 80.5 -198t201.5 -80q96 0 183 55l21 -30q-98 -63 -208 -63zM351 175q63 0 111 65l25 117q-25 51 -81 51 q-58 0 -98 -44t-40 -101q0 -39 22.5 -63.5t60.5 -24.5z" />
    +<glyph unicode="A" horiz-adv-x="684" d="M688 0h-162l-41 113h-286l-42 -113h-162l258 667h178zM446 238l-104 287l-104 -287h208z" />
    +<glyph unicode="B" horiz-adv-x="663" d="M428 0h-362v667h351q91 0 141.5 -49.5t50.5 -120.5q0 -61 -33 -102t-82 -51q54 -8 91 -55t37 -109q0 -78 -51 -129t-143 -51zM386 400q36 0 57 20t21 52t-21.5 52.5t-56.5 20.5h-178v-145h178zM391 123q40 0 63 20.5t23 56.5q0 33 -23 55.5t-63 22.5h-183v-155h183z" />
    +<glyph unicode="C" horiz-adv-x="687" d="M389 -12q-152 0 -253.5 96.5t-101.5 248.5t101.5 248.5t253.5 96.5q187 0 279 -163l-122 -60q-22 42 -64.5 69.5t-92.5 27.5q-91 0 -150 -62t-59 -157t59 -157t150 -62q50 0 92.5 27t64.5 70l122 -59q-95 -164 -279 -164z" />
    +<glyph unicode="D" horiz-adv-x="718" d="M329 0h-263v667h263q157 0 255.5 -92t98.5 -242t-98 -241.5t-256 -91.5zM329 125q96 0 152.5 60t56.5 148q0 92 -55 150.5t-154 58.5h-121v-417h121z" />
    +<glyph unicode="E" horiz-adv-x="583" d="M538 0h-472v667h472v-125h-330v-141h323v-125h-323v-151h330v-125z" />
    +<glyph unicode="F" horiz-adv-x="571" d="M208 0h-142v667h472v-125h-330v-141h323v-125h-323v-276z" />
    +<glyph unicode="G" horiz-adv-x="720" d="M389 -13q-150 0 -252.5 96t-102.5 250q0 155 102.5 250t252.5 95q182 0 276 -149l-118 -64q-24 38 -65.5 62.5t-92.5 24.5q-91 0 -150 -62t-59 -157t59 -157t150 -62q42 0 81 15t61 36v80h-176v124h318v-256q-113 -126 -284 -126z" />
    +<glyph unicode="H" horiz-adv-x="731" d="M666 0h-143v280h-315v-280h-142v667h142v-262h315v262h143v-667z" />
    +<glyph unicode="I" horiz-adv-x="274" d="M208 0h-142v667h142v-667z" />
    +<glyph unicode="J" horiz-adv-x="486" d="M185 -12q-113 0 -179 65l62 109q50 -48 106 -48q47 0 75.5 29t28.5 78v446h142v-448q0 -114 -64 -172.5t-171 -58.5z" />
    +<glyph unicode="K" horiz-adv-x="636" d="M637 0h-175l-202 267l-52 -62v-205h-142v667h142v-298l236 298h175l-265 -313z" />
    +<glyph unicode="L" horiz-adv-x="523" d="M490 0h-424v667h142v-542h282v-125z" />
    +<glyph unicode="M" horiz-adv-x="855" d="M789 0h-143v467l-188 -467h-62l-188 467v-467h-142v667h199l162 -403l162 403h200v-667z" />
    +<glyph unicode="N" horiz-adv-x="729" d="M663 0h-137l-318 435v-435h-142v667h146l309 -419v419h142v-667z" />
    +<glyph unicode="O" horiz-adv-x="765" d="M382 -12q-151 0 -249.5 97.5t-98.5 247.5t98.5 247.5t249.5 97.5q152 0 250.5 -97t98.5 -248t-98.5 -248t-250.5 -97zM382 114q91 0 147 62t56 157t-56 157t-147 62t-146.5 -62t-55.5 -157t55.5 -157t146.5 -62z" />
    +<glyph unicode="P" horiz-adv-x="624" d="M208 0h-142v667h312q105 0 164.5 -61.5t59.5 -153.5q0 -91 -60 -153t-164 -62h-170v-237zM359 362q43 0 70.5 24.5t27.5 65.5t-27.5 65.5t-70.5 24.5h-151v-180h151z" />
    +<glyph unicode="Q" horiz-adv-x="765" d="M382 -12q-151 0 -249.5 97.5t-98.5 247.5t98.5 247.5t249.5 97.5q152 0 250.5 -97t98.5 -248q0 -141 -87 -236l49 -57l-99 -81l-54 62q-74 -33 -158 -33zM382 114q35 0 70 11l-73 86l98 81l74 -87q34 56 34 128q0 95 -56 157t-147 62t-146.5 -62t-55.5 -157t55.5 -157 t146.5 -62z" />
    +<glyph unicode="R" horiz-adv-x="643" d="M606 0h-163l-131 237h-104v-237h-142v667h312q103 0 163.5 -60t60.5 -155q0 -82 -42.5 -133t-103.5 -65zM357 362q44 0 72 24.5t28 65.5t-28 65.5t-72 24.5h-149v-180h149z" />
    +<glyph unicode="S" horiz-adv-x="600" d="M303 -12q-178 0 -282 106l77 108q86 -90 212 -90q55 0 85.5 21.5t30.5 52.5q0 27 -28.5 45t-71 26t-92.5 23t-92.5 34t-71 60t-28.5 100q0 86 69 144.5t184 58.5q159 0 260 -93l-79 -104q-79 73 -194 73q-45 0 -70 -18t-25 -49q0 -24 28.5 -40.5t71 -24.5t92 -23.5 t92 -35t71 -61t28.5 -99.5q0 -96 -68.5 -155t-198.5 -59z" />
    +<glyph unicode="T" horiz-adv-x="582" d="M363 0h-143v542h-195v125h532v-125h-194v-542z" />
    +<glyph unicode="U" horiz-adv-x="733" d="M367 -12q-148 0 -224.5 75.5t-76.5 202.5v401h144v-396q0 -72 41 -114.5t116 -42.5t115.5 42.5t40.5 114.5v396h145v-400q0 -129 -76.5 -204t-224.5 -75z" />
    +<glyph unicode="V" horiz-adv-x="684" d="M431 0h-178l-258 667h162l185 -513l184 513h162z" />
    +<glyph unicode="W" horiz-adv-x="918" d="M727 0h-151l-117 458l-116 -458h-151l-191 667h159l117 -482l127 482h111l126 -482l116 482h160z" />
    +<glyph unicode="X" horiz-adv-x="668" d="M671 0h-170l-167 244l-168 -244h-169l242 342l-227 325h169l153 -228l151 228h171l-227 -324z" />
    +<glyph unicode="Y" horiz-adv-x="645" d="M394 0h-142v273l-257 394h162l166 -268l164 268h162l-255 -394v-273z" />
    +<glyph unicode="Z" horiz-adv-x="592" d="M550 0h-508v115l315 427h-315v125h501v-114l-315 -428h322v-125z" />
    +<glyph unicode="[" horiz-adv-x="280" d="M263 -190h-216v868h216v-85h-125v-698h125v-85z" />
    +<glyph unicode="\" horiz-adv-x="329" d="M237 -20l-237 707h92l237 -707h-92z" />
    +<glyph unicode="]" horiz-adv-x="280" d="M233 -190h-216v85h125v698h-125v85h216v-868z" />
    +<glyph unicode="^" horiz-adv-x="441" d="M422 333h-94l-108 247l-107 -247h-94l156 334h93z" />
    +<glyph unicode="_" horiz-adv-x="564" d="M567 -125h-570v85h570v-85z" />
    +<glyph unicode="`" horiz-adv-x="251" d="M251 556h-89l-162 144h116z" />
    +<glyph unicode="a" horiz-adv-x="543" d="M480 0h-127v50q-52 -62 -153 -62q-65 0 -116.5 42.5t-51.5 117.5q0 78 50.5 117t117.5 39q103 0 153 -59v65q0 37 -29 59t-77 22q-79 0 -141 -57l-48 85q86 76 211 76q93 0 152 -43t59 -140v-312zM251 74q71 0 102 42v60q-31 42 -102 42q-39 0 -65 -19.5t-26 -53.5 q0 -33 26 -52t65 -19z" />
    +<glyph unicode="b" horiz-adv-x="586" d="M190 155q16 -23 47 -38.5t62 -15.5q55 0 89 38.5t34 101.5t-34 102t-89 39q-31 0 -62 -16t-47 -40v-171zM190 0h-127v667h127v-246q57 74 149 74q94 0 154 -69t60 -185q0 -118 -60 -185.5t-154 -67.5q-90 0 -149 74v-62z" />
    +<glyph unicode="c" horiz-adv-x="499" d="M288 -12q-112 0 -184 71t-72 183q0 111 72 182t184 71q128 0 191 -87l-83 -78q-35 52 -102 52q-58 0 -94.5 -38.5t-36.5 -101.5t36.5 -102t94.5 -39q65 0 102 52l83 -77q-63 -88 -191 -88z" />
    +<glyph unicode="d" horiz-adv-x="586" d="M523 0h-128v62q-59 -74 -149 -74q-94 0 -154 67.5t-60 185.5q0 116 60 185t154 69q92 0 149 -74v246h128v-667zM285 101q32 0 63 15.5t47 39.5v171q-16 24 -47 39.5t-63 15.5q-54 0 -88 -39t-34 -102q0 -62 34 -101t88 -39z" />
    +<glyph unicode="e" horiz-adv-x="553" d="M290 -12q-112 0 -185 70t-73 184q0 107 70.5 180t179.5 73q108 0 175 -73.5t67 -192.5v-28h-359q6 -48 43 -80t96 -32q32 0 69.5 13t59.5 35l56 -82q-73 -67 -199 -67zM401 287q-3 41 -32.5 74t-86.5 33q-54 0 -84 -32.5t-35 -74.5h238z" />
    +<glyph unicode="f" horiz-adv-x="327" d="M219 0h-128v372h-80v111h80v26q0 77 45 122.5t118 45.5q84 0 126 -45l-48 -75q-20 20 -53 20q-27 0 -43.5 -17.5t-16.5 -50.5v-26h98v-111h-98v-372z" />
    +<glyph unicode="g" horiz-adv-x="585" d="M261 -196q-125 0 -208 72l57 92q54 -60 151 -60q54 0 93.5 28.5t39.5 93.5v49q-60 -76 -149 -76q-94 0 -153.5 64.5t-59.5 181.5q0 116 59.5 181t153.5 65q90 0 149 -74v62h128v-450q0 -66 -23.5 -113t-63.5 -71t-82.5 -34.5t-91.5 -10.5zM285 116q31 0 62 16t47 39v156 q-16 24 -46.5 39.5t-62.5 15.5q-55 0 -88.5 -36t-33.5 -97t33.5 -97t88.5 -36z" />
    +<glyph unicode="h" horiz-adv-x="580" d="M517 0h-127v294q0 48 -23 68t-67 20q-67 0 -110 -57v-325h-127v667h127v-247q26 31 70.5 53t99.5 22q78 0 117.5 -40t39.5 -112v-343z" />
    +<glyph unicode="i" horiz-adv-x="253" d="M126 535q-31 0 -53.5 22.5t-22.5 53.5t22.5 53t53.5 22q32 0 54 -22t22 -53t-22 -53.5t-54 -22.5zM190 0h-127v483h127v-483z" />
    +<glyph unicode="j" horiz-adv-x="253" d="M126 535q-31 0 -53.5 22.5t-22.5 53.5t22.5 53t53.5 22q32 0 54 -22t22 -53t-22 -53.5t-54 -22.5zM18 -196q-44 0 -68.5 7.5t-52.5 26.5l35 95q30 -25 65 -25q30 0 48 20t18 59v496h127v-496q0 -85 -43.5 -134t-128.5 -49z" />
    +<glyph unicode="k" horiz-adv-x="535" d="M535 0h-159l-128 186l-58 -62v-124h-127v667h127v-399l183 215h156l-191 -219z" />
    +<glyph unicode="l" horiz-adv-x="253" d="M190 0h-127v667h127v-667z" />
    +<glyph unicode="m" horiz-adv-x="852" d="M790 0h-128v305q0 77 -72 77q-31 0 -57.5 -17t-42.5 -39v-326h-128v305q0 77 -72 77q-30 0 -57 -17t-43 -40v-325h-127v483h127v-63q18 26 63 50.5t95 24.5q105 0 134 -88q23 36 68.5 62t97.5 26q68 0 105 -36.5t37 -109.5v-349z" />
    +<glyph unicode="n" horiz-adv-x="579" d="M516 0h-127v292q0 90 -89 90q-69 0 -110 -57v-325h-127v483h127v-63q63 75 169 75q78 0 117.5 -41t39.5 -113v-341z" />
    +<glyph unicode="o" horiz-adv-x="574" d="M287 -12q-116 0 -185.5 73.5t-69.5 180.5t69.5 180t185.5 73t186 -73t70 -180t-70 -180.5t-186 -73.5zM287 101q57 0 90.5 40.5t33.5 100.5q0 59 -33.5 99.5t-90.5 40.5t-90 -40.5t-33 -99.5q0 -60 33 -100.5t90 -40.5z" />
    +<glyph unicode="p" horiz-adv-x="583" d="M339 -12q-91 0 -149 74v-246h-127v667h127v-61q57 73 149 73q95 0 154.5 -67.5t59.5 -185.5t-59.5 -186t-154.5 -68zM299 101q55 0 88.5 39t33.5 102q0 62 -33.5 101t-88.5 39q-31 0 -62 -16t-47 -39v-171q16 -23 47.5 -39t61.5 -16z" />
    +<glyph unicode="q" horiz-adv-x="583" d="M284 101q30 0 61.5 16t47.5 39v171q-16 23 -47 39t-62 16q-54 0 -88 -39t-34 -101q0 -63 34 -102t88 -39zM244 -12q-95 0 -154.5 68t-59.5 186t59.5 185.5t154.5 67.5q92 0 149 -73v61h128v-667h-128v246q-58 -74 -149 -74z" />
    +<glyph unicode="r" horiz-adv-x="360" d="M190 0h-127v483h127v-66q27 34 69 56t85 22v-124q-14 3 -35 3q-32 0 -68 -16t-51 -39v-319z" />
    +<glyph unicode="s" horiz-adv-x="477" d="M237 -12q-63 0 -120.5 20t-95.5 55l55 89q28 -26 76 -46t91 -20q40 0 60.5 14t20.5 38q0 18 -21.5 29.5t-53 16.5t-69 15t-69 24t-53 44.5t-21.5 75.5q0 64 53 108t145 44q112 0 195 -66l-51 -87q-23 24 -61.5 40t-81.5 16q-34 0 -55 -13.5t-21 -34.5q0 -16 21 -26.5 t53 -15.5t69 -15.5t69 -25t53 -46.5t21 -78q0 -68 -55.5 -111.5t-153.5 -43.5z" />
    +<glyph unicode="t" horiz-adv-x="338" d="M225 -12q-67 0 -102 34t-35 98v252h-80v111h80v132h128v-132h98v-111h-98v-218q0 -23 12 -38t32 -15q30 0 44 14l27 -96q-35 -31 -106 -31z" />
    +<glyph unicode="u" horiz-adv-x="579" d="M516 0h-127v61q-65 -73 -170 -73q-78 0 -117 40t-39 112v343h127v-293q0 -89 89 -89q67 0 110 55v327h127v-483z" />
    +<glyph unicode="v" horiz-adv-x="513" d="M325 0h-137l-194 483h136l126 -336l126 336h137z" />
    +<glyph unicode="w" horiz-adv-x="769" d="M622 0h-135l-102 329l-102 -329h-136l-147 483h132l90 -325l106 325h113l106 -325l90 325h132z" />
    +<glyph unicode="x" horiz-adv-x="504" d="M504 0h-142l-110 163l-111 -163h-141l171 248l-161 235h142l100 -149l99 149h142l-162 -235z" />
    +<glyph unicode="y" horiz-adv-x="513" d="M46 -189l19 114q18 -8 40 -8q51 0 67 35l18 41l-196 490h136l126 -336l126 336h137l-227 -562q-25 -64 -70 -89.5t-113 -27.5q-35 0 -63 7z" />
    +<glyph unicode="z" horiz-adv-x="479" d="M436 0h-394v95l218 277h-218v111h390v-92l-221 -280h225v-111z" />
    +<glyph unicode="{" horiz-adv-x="288" d="M271 -190h-61q-63 0 -109 44t-46 115v172q0 29 -13.5 48t-38.5 19v72q25 0 38.5 19t13.5 48v171q0 71 46 115.5t109 44.5h61v-85h-61q-26 0 -44 -20.5t-18 -53.5v-185q0 -70 -46 -90q46 -20 46 -90v-184q0 -33 18 -54t44 -21h61v-85z" />
    +<glyph unicode="|" horiz-adv-x="216" d="M151 -20h-85v707h85v-707z" />
    +<glyph unicode="}" horiz-adv-x="288" d="M17 -190v85h61q26 0 44.5 21t18.5 54v184q0 70 46 90q-46 20 -46 90v185q0 33 -18.5 53.5t-44.5 20.5h-61v85h61q63 0 109 -44.5t46 -115.5v-171q0 -29 13.5 -48t38.5 -19v-72q-25 0 -38.5 -19t-13.5 -48v-172q0 -71 -46 -115t-109 -44h-61z" />
    +<glyph unicode="~" horiz-adv-x="510" d="M398 667l86 -10q-4 -52 -12 -90t-23.5 -76t-44.5 -58.5t-69 -20.5q-44 0 -71 27.5t-35.5 60.5t-21.5 60.5t-32 27.5q-48 0 -62 -176l-87 10q4 51 12 89.5t24 76t44.5 58t68.5 20.5q36 0 60.5 -18t35.5 -44t19 -52.5t18.5 -44.5t26.5 -18q49 0 63 178z" />
    +<glyph unicode="&#xa0;" />
    +<glyph unicode="&#xa1;" d="M51 -184l20 449h113l21 -449h-154zM47 414q0 32 23.5 56t56.5 24t57 -24t24 -56q0 -33 -24 -57.5t-57 -24.5t-56.5 24.5t-23.5 57.5z" />
    +<glyph unicode="&#xa2;" horiz-adv-x="499" d="M241 -100v92q-94 14 -151.5 82.5t-57.5 167.5q0 98 57.5 166.5t151.5 82.5v74h92v-73q95 -15 146 -84l-83 -78q-25 36 -63 46v-270q37 11 63 47l83 -77q-51 -72 -146 -85v-91h-92zM163 242q0 -47 21 -81.5t57 -49.5v261q-36 -15 -57 -49t-21 -81z" />
    +<glyph unicode="&#xa3;" horiz-adv-x="550" d="M23 269v81h68q-46 63 -46 120q0 91 74 149t169 58q169 0 232 -121l-113 -66q-13 32 -40.5 51.5t-61.5 19.5q-45 0 -75 -26t-30 -68q0 -14 2 -26.5t9 -27t10 -20t15 -23.5t13 -20h144v-81h-113q0 -3 0.5 -9.5t0.5 -9.5q0 -34 -18 -64t-46 -47q21 7 49 7q30 0 68 -16.5 t62 -16.5q59 0 86 37l56 -113q-48 -50 -147 -50q-47 0 -100.5 22t-80.5 22q-47 0 -116 -38l-48 97q109 53 109 125q0 25 -12 54h-120z" />
    +<glyph unicode="&#xa4;" horiz-adv-x="623" d="M311 86q-78 0 -138 35l-73 -74l-76 74l73 73q-40 62 -40 139t40 139l-74 75l76 74l76 -76q60 34 136 34q74 0 136 -34l76 76l76 -75l-73 -73q41 -63 41 -140q0 -79 -42 -141l74 -71l-76 -74l-75 73q-59 -34 -137 -34zM311 200q60 0 94 38t34 95q0 56 -34 94t-94 38 q-59 0 -93 -38t-34 -94t34 -94.5t93 -38.5z" />
    +<glyph unicode="&#xa5;" horiz-adv-x="645" d="M394 0h-142v115h-228v78h228v80h-228v79h176l-205 315h162l166 -268l164 268h162l-204 -315h178v-79h-229v-80h229v-78h-229v-115z" />
    +<glyph unicode="&#xa6;" horiz-adv-x="216" d="M151 -20h-85v316h85v-316zM151 371h-85v316h85v-316z" />
    +<glyph unicode="&#xa7;" horiz-adv-x="484" d="M446 326q0 -86 -83 -128q83 -36 83 -123q0 -73 -58 -114.5t-151 -41.5q-127 0 -214 79l53 80q29 -29 72 -50t89 -21q40 0 63.5 15t23.5 43q0 22 -21.5 36t-53 20.5t-69 17.5t-69 24.5t-53 43.5t-21.5 74q0 47 29 79t69 46q-98 37 -98 126q0 62 55.5 103.5t142.5 41.5 q124 0 194 -68l-50 -75q-54 54 -139 54q-37 0 -58.5 -14.5t-21.5 -39.5q0 -23 29.5 -35.5t71.5 -21t84 -21t71.5 -45.5t29.5 -85zM321 302q0 53 -83 72q-43 -10 -60.5 -28t-17.5 -46q0 -32 27 -46.5t76 -25.5q58 25 58 74z" />
    +<glyph unicode="&#xa8;" horiz-adv-x="295" d="M321 611q0 -28 -20 -48t-48 -20t-48 20t-20 48t20 47.5t48 19.5t48 -19.5t20 -47.5zM109 611q0 -28 -19.5 -48t-47.5 -20t-48 19.5t-20 48.5q0 28 20 47.5t48 19.5t47.5 -19.5t19.5 -47.5z" />
    +<glyph unicode="&#xa9;" horiz-adv-x="778" d="M734 334q0 -143 -101 -244t-244 -101t-244 101.5t-101 243.5q0 143 101 244t244 101t244 -101t101 -244zM698 334q0 128 -91 218.5t-218 90.5t-218 -91t-91 -218t91 -218t218 -91t218 91t91 218zM512 221l31 -30q-58 -68 -149 -68q-87 0 -147.5 60.5t-60.5 151.5 q0 90 60.5 150t147.5 60q92 0 148 -66l-31 -31q-42 57 -117 57q-67 0 -114.5 -48t-47.5 -122q0 -73 47.5 -122.5t114.5 -49.5q75 0 118 58z" />
    +<glyph unicode="&#xaa;" horiz-adv-x="385" d="M335 326h-92v32q-36 -40 -102 -40q-44 0 -77 27.5t-33 76.5q0 48 33 74.5t77 26.5q68 0 102 -38v40q0 25 -19 39.5t-50 14.5q-53 0 -92 -41l-35 60q59 50 143 50q63 0 104 -29t41 -96v-197zM179 375q43 0 64 29v36q-21 27 -64 27q-24 0 -40.5 -12t-16.5 -33 q0 -22 16.5 -34.5t40.5 -12.5z" />
    +<glyph unicode="&#xab;" horiz-adv-x="527" d="M497 63h-117l-160 180l160 177h117l-160 -177zM307 63h-117l-160 180l160 177h117l-160 -177z" />
    +<glyph unicode="&#xac;" horiz-adv-x="515" d="M475 468v-267h-81v187h-365v80h446z" />
    +<glyph unicode="&#xad;" horiz-adv-x="300" d="M270 188h-240v108h240v-108z" />
    +<glyph unicode="&#xae;" horiz-adv-x="494" d="M459 465q0 -88 -62 -150t-150 -62t-150 62t-62 150t62 150t150 62q89 0 150.5 -61.5t61.5 -150.5zM427 465q0 75 -53 127.5t-127 52.5q-75 0 -127.5 -52.5t-52.5 -127.5q0 -74 52.5 -127t127.5 -53q74 0 127 53t53 127zM347 343h-42l-63 96h-42v-96h-34v243h99 q32 0 55.5 -20.5t23.5 -53.5q0 -35 -22.5 -53.5t-39.5 -18.5zM309 512q0 19 -13.5 31.5t-30.5 12.5h-65v-86h65q17 0 30.5 12t13.5 30z" />
    +<glyph unicode="&#xaf;" horiz-adv-x="363" d="M363 562h-363v72h363v-72z" />
    +<glyph unicode="&#xb0;" horiz-adv-x="311" d="M290 541q0 -56 -39.5 -95t-95.5 -39t-95.5 39t-39.5 95t39.5 96t95.5 40t95.5 -40t39.5 -96zM221 541q0 28 -19.5 47.5t-46.5 19.5q-28 0 -46.5 -19.5t-18.5 -47.5q0 -27 18.5 -46t46.5 -19q27 0 46.5 19t19.5 46z" />
    +<glyph unicode="&#xb1;" horiz-adv-x="504" d="M475 326h-179v-204h-87v204h-180v78h180v197h87v-197h179v-78zM475 0h-446v78h446v-78z" />
    +<glyph unicode="&#xb2;" horiz-adv-x="397" d="M360 421h-314v70q131 92 173.5 131.5t42.5 72.5q0 27 -19 41t-49 14q-33 0 -63 -15t-46 -35l-50 61q59 66 161 66q71 0 116 -33t45 -92q0 -47 -40.5 -93.5t-131.5 -110.5h175v-77z" />
    +<glyph unicode="&#xb3;" horiz-adv-x="397" d="M363 532q0 -53 -45.5 -85.5t-120.5 -32.5q-111 0 -165 63l47 63q46 -49 115 -49q35 0 54 13t19 34q0 49 -88 49q-39 0 -45 -1v76q9 -1 44 -1q82 0 82 45q0 44 -73 44q-61 0 -105 -44l-45 57q59 64 160 64q75 0 117 -29.5t42 -79.5q0 -35 -26 -60t-63 -31 q35 -3 65.5 -28.5t30.5 -66.5z" />
    +<glyph unicode="&#xb4;" horiz-adv-x="251" d="M251 700l-162 -144h-89l134 144h117z" />
    +<glyph unicode="&#xb5;" horiz-adv-x="593" d="M190 16v-200h-127v667h127v-293q0 -90 90 -90q65 0 109 56v327h127v-338q0 -21 11 -32.5t29 -11.5q9 0 19 2l9 -108q-26 -7 -59 -7q-104 0 -130 86q-22 -38 -57.5 -62t-77.5 -24q-49 0 -70 28z" />
    +<glyph unicode="&#xb6;" horiz-adv-x="449" d="M403 -100h-63v705h-78v-705h-63v423q-71 0 -121.5 50.5t-50.5 121.5t50.5 121.5t121.5 50.5h204v-767z" />
    +<glyph unicode="&#xb7;" d="M209 244q0 -32 -24 -56t-57 -24t-57 24t-24 56q0 33 24 57t57 24t57 -24t24 -57z" />
    +<glyph unicode="&#xb8;" horiz-adv-x="221" d="M110 -196q-70 0 -110 32l25 51q38 -29 81 -29q22 0 37 8.5t15 24.5q0 26 -29 26q-18 0 -32 -14l-46 26l30 82h63l-26 -62q17 10 36 10q28 0 47.5 -19.5t19.5 -50.5q0 -39 -32 -62t-79 -23z" />
    +<glyph unicode="&#xb9;" horiz-adv-x="286" d="M226 421h-97v277l-68 -69l-54 58l136 134h83v-400z" />
    +<glyph unicode="&#xba;" horiz-adv-x="405" d="M202 318q-77 0 -124.5 48t-47.5 117t47.5 117t124.5 48q78 0 125.5 -48t47.5 -117t-47.5 -117t-125.5 -48zM202 392q36 0 57 24.5t21 66.5q0 41 -20.5 65t-57.5 24q-36 0 -56.5 -23.5t-20.5 -65.5t20.5 -66.5t56.5 -24.5z" />
    +<glyph unicode="&#xbb;" horiz-adv-x="527" d="M307 243l-160 -180h-117l160 180l-160 177h117zM497 243l-160 -180h-117l160 180l-160 177h117z" />
    +<glyph unicode="&#xbc;" horiz-adv-x="833" d="M226 267h-97v277l-68 -69l-54 58l136 134h83v-400zM808 86h-53v-86h-95v86h-196v65l158 249h133v-239h53v-75zM660 161v158l-101 -158h101zM641 667l-427 -667h-76l426 667h77z" />
    +<glyph unicode="&#xbd;" horiz-adv-x="867" d="M226 267h-97v277l-68 -69l-54 58l136 134h83v-400zM829 0h-314v70q131 92 173.5 131.5t42.5 72.5q0 27 -19 41t-49 14q-33 0 -63 -15t-46 -35l-50 61q59 66 161 66q71 0 116 -33t45 -92q0 -47 -40.5 -93.5t-131.5 -110.5h175v-77zM641 667l-427 -667h-76l426 667h77z" />
    +<glyph unicode="&#xbe;" horiz-adv-x="921" d="M896 86h-53v-86h-95v86h-196v65l158 249h133v-239h53v-75zM748 161v158l-101 -158h101zM728 667l-427 -667h-76l426 667h77zM363 378q0 -53 -45.5 -85.5t-120.5 -32.5q-111 0 -165 63l47 63q46 -49 115 -49q35 0 54 13t19 34q0 49 -88 49q-39 0 -45 -1v76q9 -1 44 -1 q82 0 82 45q0 44 -73 44q-61 0 -105 -44l-45 57q59 64 160 64q75 0 117 -29.5t42 -79.5q0 -35 -26 -60t-63 -31q35 -3 65.5 -28.5t30.5 -66.5z" />
    +<glyph unicode="&#xbf;" horiz-adv-x="398" d="M277 277q34 -34 34 -88q0 -40 -23 -71.5t-50.5 -48t-50.5 -38.5t-23 -44q0 -24 20 -40t59 -16q72 0 123 61l81 -91q-84 -96 -220 -96q-95 0 -151.5 43.5t-56.5 114.5q0 49 26.5 87t57.5 57t57.5 44.5t26.5 52.5q0 26 -19 42zM230 494q33 0 57 -24t24 -57t-24 -57t-57 -24 t-57 24t-24 57t24 57t57 24z" />
    +<glyph unicode="&#xc0;" horiz-adv-x="684" d="M688 0h-162l-41 113h-286l-42 -113h-162l258 667h178zM446 238l-104 287l-104 -287h208zM406 723h-89l-162 144h116z" />
    +<glyph unicode="&#xc1;" horiz-adv-x="684" d="M688 0h-162l-41 113h-286l-42 -113h-162l258 667h178zM446 238l-104 287l-104 -287h208zM530 867l-162 -144h-89l134 144h117z" />
    +<glyph unicode="&#xc2;" horiz-adv-x="684" d="M493 723h-78l-73 89l-71 -89h-78l92 144h114zM688 0h-162l-41 113h-286l-42 -113h-162l258 667h178zM446 238l-104 287l-104 -287h208z" />
    +<glyph unicode="&#xc3;" horiz-adv-x="684" d="M688 0h-162l-41 113h-286l-42 -113h-162l258 667h178zM446 238l-104 287l-104 -287h208zM399 721q-29 0 -50 17t-36.5 34t-30.5 17q-36 0 -36 -62h-67q0 64 28 99t80 35q22 0 40.5 -10.5t28 -23t22.5 -23t25 -10.5q36 0 36 61h67q0 -64 -27.5 -99t-79.5 -35z" />
    +<glyph unicode="&#xc4;" horiz-adv-x="684" d="M516 778q0 -28 -20 -48t-48 -20t-48 20t-20 48t20 47.5t48 19.5t48 -19.5t20 -47.5zM304 778q0 -28 -19.5 -48t-47.5 -20q-29 0 -48.5 20t-19.5 48t20 47.5t48 19.5t47.5 -19.5t19.5 -47.5zM688 0h-162l-41 113h-286l-42 -113h-162l258 667h178zM446 238l-104 287 l-104 -287h208z" />
    +<glyph unicode="&#xc5;" horiz-adv-x="684" d="M688 0h-162l-41 113h-286l-42 -113h-162l258 667h178zM446 238l-104 287l-104 -287h208zM343 688q-43 0 -74 31t-31 74t31 74.5t74 31.5t73.5 -31.5t30.5 -74.5q0 -44 -30.5 -74.5t-73.5 -30.5zM343 746q19 0 32.5 14t13.5 33q0 20 -13.5 33.5t-32.5 13.5t-33 -14 t-14 -33t14 -33t33 -14z" />
    +<glyph unicode="&#xc6;" horiz-adv-x="968" d="M926 0h-472v113h-235l-66 -113h-162l406 667h529v-125h-329v-141h322v-125h-322v-151h329v-125zM454 238v287l-167 -287h167z" />
    +<glyph unicode="&#xc7;" horiz-adv-x="687" d="M383 -192q-70 0 -110 32l25 51q38 -29 81 -29q22 0 37 8.5t15 24.5q0 26 -29 26q-18 0 -32 -14l-46 26l21 58q-136 14 -223.5 108t-87.5 234q0 152 101.5 248.5t253.5 96.5q187 0 279 -163l-122 -60q-22 42 -64.5 69.5t-92.5 27.5q-91 0 -150 -62t-59 -157t59 -157 t150 -62q50 0 92.5 27t64.5 70l122 -59q-89 -155 -262 -163l-15 -36q17 10 36 10q28 0 47.5 -19.5t19.5 -50.5q0 -39 -32 -62t-79 -23z" />
    +<glyph unicode="&#xc8;" horiz-adv-x="583" d="M538 0h-472v667h472v-125h-330v-141h323v-125h-323v-151h330v-125zM364 723h-89l-162 144h116z" />
    +<glyph unicode="&#xc9;" horiz-adv-x="583" d="M489 867l-162 -144h-89l134 144h117zM538 0h-472v667h472v-125h-330v-141h323v-125h-323v-151h330v-125z" />
    +<glyph unicode="&#xca;" horiz-adv-x="583" d="M452 723h-78l-73 89l-71 -89h-78l92 144h114zM538 0h-472v667h472v-125h-330v-141h323v-125h-323v-151h330v-125z" />
    +<glyph unicode="&#xcb;" horiz-adv-x="583" d="M476 778q0 -28 -20 -48t-48 -20t-48 20t-20 48t20 47.5t48 19.5t48 -19.5t20 -47.5zM264 778q0 -28 -19.5 -48t-47.5 -20q-29 0 -48.5 20t-19.5 48t20 47.5t48 19.5t47.5 -19.5t19.5 -47.5zM538 0h-472v667h472v-125h-330v-141h323v-125h-323v-151h330v-125z" />
    +<glyph unicode="&#xcc;" horiz-adv-x="274" d="M208 0h-142v667h142v-667zM201 723h-89l-162 144h116z" />
    +<glyph unicode="&#xcd;" horiz-adv-x="274" d="M208 0h-142v667h142v-667zM326 867l-162 -144h-89l134 144h117z" />
    +<glyph unicode="&#xce;" horiz-adv-x="274" d="M287 723h-78l-73 89l-71 -89h-78l92 144h114zM208 0h-142v667h142v-667z" />
    +<glyph unicode="&#xcf;" horiz-adv-x="274" d="M311 778q0 -28 -20 -48t-48 -20t-48 20t-20 48t20 47.5t48 19.5t48 -19.5t20 -47.5zM99 778q0 -28 -19.5 -48t-47.5 -20t-48 20t-20 48t20 47.5t48 19.5t47.5 -19.5t19.5 -47.5zM208 0h-142v667h142v-667z" />
    +<glyph unicode="&#xd0;" horiz-adv-x="742" d="M354 0h-263v277h-83v105h83v285h263q157 0 255.5 -92t98.5 -242t-98 -241.5t-256 -91.5zM354 125q96 0 152.5 60t56.5 148q0 92 -55 150.5t-154 58.5h-121v-160h149v-105h-149v-152h121z" />
    +<glyph unicode="&#xd1;" horiz-adv-x="729" d="M420 721q-29 0 -50 17t-36.5 34t-30.5 17q-36 0 -36 -62h-67q0 64 28 99t80 35q22 0 40.5 -10.5t28 -23t22.5 -23t25 -10.5q36 0 36 61h67q0 -64 -27.5 -99t-79.5 -35zM663 0h-137l-318 435v-435h-142v667h146l309 -419v419h142v-667z" />
    +<glyph unicode="&#xd2;" horiz-adv-x="765" d="M447 723h-89l-162 144h116zM382 -12q-151 0 -249.5 97.5t-98.5 247.5t98.5 247.5t249.5 97.5q152 0 250.5 -97t98.5 -248t-98.5 -248t-250.5 -97zM382 114q91 0 147 62t56 157t-56 157t-147 62t-146.5 -62t-55.5 -157t55.5 -157t146.5 -62z" />
    +<glyph unicode="&#xd3;" horiz-adv-x="765" d="M570 867l-162 -144h-89l134 144h117zM382 -12q-151 0 -249.5 97.5t-98.5 247.5t98.5 247.5t249.5 97.5q152 0 250.5 -97t98.5 -248t-98.5 -248t-250.5 -97zM382 114q91 0 147 62t56 157t-56 157t-147 62t-146.5 -62t-55.5 -157t55.5 -157t146.5 -62z" />
    +<glyph unicode="&#xd4;" horiz-adv-x="765" d="M535 723h-78l-73 89l-71 -89h-78l92 144h114zM382 -12q-151 0 -249.5 97.5t-98.5 247.5t98.5 247.5t249.5 97.5q152 0 250.5 -97t98.5 -248t-98.5 -248t-250.5 -97zM382 114q91 0 147 62t56 157t-56 157t-147 62t-146.5 -62t-55.5 -157t55.5 -157t146.5 -62z" />
    +<glyph unicode="&#xd5;" horiz-adv-x="765" d="M382 -12q-151 0 -249.5 97.5t-98.5 247.5t98.5 247.5t249.5 97.5q152 0 250.5 -97t98.5 -248t-98.5 -248t-250.5 -97zM382 114q91 0 147 62t56 157t-56 157t-147 62t-146.5 -62t-55.5 -157t55.5 -157t146.5 -62zM439 721q-29 0 -50 17t-36.5 34t-30.5 17q-36 0 -36 -62 h-67q0 64 28 99t80 35q22 0 40.5 -10.5t28 -23t22.5 -23t25 -10.5q36 0 36 61h67q0 -64 -27.5 -99t-79.5 -35z" />
    +<glyph unicode="&#xd6;" horiz-adv-x="765" d="M557 778q0 -28 -20 -48t-48 -20t-48 20t-20 48t20 47.5t48 19.5t48 -19.5t20 -47.5zM345 778q0 -28 -19.5 -48t-47.5 -20t-48 20t-20 48t20 47.5t48 19.5t47.5 -19.5t19.5 -47.5zM382 -12q-151 0 -249.5 97.5t-98.5 247.5t98.5 247.5t249.5 97.5q152 0 250.5 -97 t98.5 -248t-98.5 -248t-250.5 -97zM382 114q91 0 147 62t56 157t-56 157t-147 62t-146.5 -62t-55.5 -157t55.5 -157t146.5 -62z" />
    +<glyph unicode="&#xd7;" horiz-adv-x="504" d="M393 137l-141 141l-140 -141l-57 55l141 142l-141 141l57 56l140 -142l141 142l56 -56l-141 -141l141 -142z" />
    +<glyph unicode="&#xd8;" horiz-adv-x="765" d="M382 -12q-103 0 -184 47l-27 -35h-102l64 84q-99 97 -99 249q0 150 98.5 247.5t249.5 97.5q94 0 173 -41l23 30h102l-58 -76q109 -99 109 -258q0 -151 -98.5 -248t-250.5 -97zM382 114q91 0 147 62t56 157q0 88 -48 147l-259 -339q46 -27 104 -27zM180 333q0 -79 39 -137 l255 335q-44 21 -92 21q-91 0 -146.5 -62t-55.5 -157z" />
    +<glyph unicode="&#xd9;" horiz-adv-x="733" d="M367 -12q-148 0 -224.5 75.5t-76.5 202.5v401h144v-396q0 -72 41 -114.5t116 -42.5t115.5 42.5t40.5 114.5v396h145v-400q0 -129 -76.5 -204t-224.5 -75zM431 723h-89l-162 144h116z" />
    +<glyph unicode="&#xda;" horiz-adv-x="733" d="M555 867l-162 -144h-89l134 144h117zM367 -12q-148 0 -224.5 75.5t-76.5 202.5v401h144v-396q0 -72 41 -114.5t116 -42.5t115.5 42.5t40.5 114.5v396h145v-400q0 -129 -76.5 -204t-224.5 -75z" />
    +<glyph unicode="&#xdb;" horiz-adv-x="733" d="M521 723h-78l-73 89l-71 -89h-78l92 144h114zM367 -12q-148 0 -224.5 75.5t-76.5 202.5v401h144v-396q0 -72 41 -114.5t116 -42.5t115.5 42.5t40.5 114.5v396h145v-400q0 -129 -76.5 -204t-224.5 -75z" />
    +<glyph unicode="&#xdc;" horiz-adv-x="733" d="M543 778q0 -28 -20 -48t-48 -20t-48 20t-20 48t20 47.5t48 19.5t48 -19.5t20 -47.5zM331 778q0 -28 -19.5 -48t-47.5 -20t-48 20t-20 48t20 47.5t48 19.5t47.5 -19.5t19.5 -47.5zM367 -12q-148 0 -224.5 75.5t-76.5 202.5v401h144v-396q0 -72 41 -114.5t116 -42.5 t115.5 42.5t40.5 114.5v396h145v-400q0 -129 -76.5 -204t-224.5 -75z" />
    +<glyph unicode="&#xdd;" horiz-adv-x="645" d="M394 0h-142v273l-257 394h162l166 -268l164 268h162l-255 -394v-273zM510 867l-162 -144h-89l134 144h117z" />
    +<glyph unicode="&#xde;" horiz-adv-x="624" d="M208 0h-142v667h142v-108h170q105 0 164.5 -62t59.5 -154q0 -91 -60 -152t-164 -61h-170v-130zM357 255q44 0 72 24t28 65t-28.5 65.5t-71.5 24.5h-149v-179h149z" />
    +<glyph unicode="&#xdf;" horiz-adv-x="643" d="M627 144q0 -68 -55 -112t-146 -44q-66 0 -111 19.5t-86 56.5l54 88q21 -27 60.5 -46t82.5 -19q38 0 58.5 15t20.5 37q0 21 -27 33.5t-65.5 21t-76.5 22t-65 45.5t-27 83q0 29 12.5 53t31 39.5t36.5 28t30.5 25t12.5 24.5q0 23 -23 36.5t-54 13.5q-43 0 -71.5 -24 t-28.5 -65v-475h-127v475q0 86 62 144t167 58q83 0 144.5 -40t61.5 -105q0 -38 -20.5 -67.5t-45.5 -44t-45.5 -34t-20.5 -38.5t27 -29t65.5 -17.5t76.5 -21t65 -48t27 -88.5z" />
    +<glyph unicode="&#xe0;" horiz-adv-x="543" d="M480 0h-127v50q-52 -62 -153 -62q-65 0 -116.5 42.5t-51.5 117.5q0 78 50.5 117t117.5 39q103 0 153 -59v65q0 37 -29 59t-77 22q-79 0 -141 -57l-48 85q86 76 211 76q93 0 152 -43t59 -140v-312zM251 74q71 0 102 42v60q-31 42 -102 42q-39 0 -65 -19.5t-26 -53.5 q0 -33 26 -52t65 -19zM332 556h-89l-162 144h116z" />
    +<glyph unicode="&#xe1;" horiz-adv-x="543" d="M480 0h-127v50q-52 -62 -153 -62q-65 0 -116.5 42.5t-51.5 117.5q0 78 50.5 117t117.5 39q103 0 153 -59v65q0 37 -29 59t-77 22q-79 0 -141 -57l-48 85q86 76 211 76q93 0 152 -43t59 -140v-312zM251 74q71 0 102 42v60q-31 42 -102 42q-39 0 -65 -19.5t-26 -53.5 q0 -33 26 -52t65 -19zM456 700l-162 -144h-89l134 144h117z" />
    +<glyph unicode="&#xe2;" horiz-adv-x="543" d="M480 0h-127v50q-52 -62 -153 -62q-65 0 -116.5 42.5t-51.5 117.5q0 78 50.5 117t117.5 39q103 0 153 -59v65q0 37 -29 59t-77 22q-79 0 -141 -57l-48 85q86 76 211 76q93 0 152 -43t59 -140v-312zM251 74q71 0 102 42v60q-31 42 -102 42q-39 0 -65 -19.5t-26 -53.5 q0 -33 26 -52t65 -19zM421 556h-78l-73 89l-71 -89h-78l92 144h114z" />
    +<glyph unicode="&#xe3;" horiz-adv-x="543" d="M480 0h-127v50q-52 -62 -153 -62q-65 0 -116.5 42.5t-51.5 117.5q0 78 50.5 117t117.5 39q103 0 153 -59v65q0 37 -29 59t-77 22q-79 0 -141 -57l-48 85q86 76 211 76q93 0 152 -43t59 -140v-312zM251 74q71 0 102 42v60q-31 42 -102 42q-39 0 -65 -19.5t-26 -53.5 q0 -33 26 -52t65 -19zM326 554q-29 0 -50 17t-36.5 34t-30.5 17q-36 0 -36 -62h-67q0 64 28 99t80 35q28 0 49 -17t36.5 -33.5t30.5 -16.5q36 0 36 61h67q0 -64 -27.5 -99t-79.5 -35z" />
    +<glyph unicode="&#xe4;" horiz-adv-x="543" d="M480 0h-127v50q-52 -62 -153 -62q-65 0 -116.5 42.5t-51.5 117.5q0 78 50.5 117t117.5 39q103 0 153 -59v65q0 37 -29 59t-77 22q-79 0 -141 -57l-48 85q86 76 211 76q93 0 152 -43t59 -140v-312zM251 74q71 0 102 42v60q-31 42 -102 42q-39 0 -65 -19.5t-26 -53.5 q0 -33 26 -52t65 -19zM443 611q0 -28 -20 -48t-48 -20t-48 20t-20 48t20 47.5t48 19.5t48 -19.5t20 -47.5zM231 611q0 -28 -19.5 -48t-47.5 -20t-48 19.5t-20 48.5q0 28 20 47.5t48 19.5t47.5 -19.5t19.5 -47.5z" />
    +<glyph unicode="&#xe5;" horiz-adv-x="543" d="M480 0h-127v50q-52 -62 -153 -62q-65 0 -116.5 42.5t-51.5 117.5q0 78 50.5 117t117.5 39q103 0 153 -59v65q0 37 -29 59t-77 22q-79 0 -141 -57l-48 85q86 76 211 76q93 0 152 -43t59 -140v-312zM251 74q71 0 102 42v60q-31 42 -102 42q-39 0 -65 -19.5t-26 -53.5 q0 -33 26 -52t65 -19zM271 531q-43 0 -74 31t-31 74t31 74.5t74 31.5t73.5 -31.5t30.5 -74.5q0 -44 -30.5 -74.5t-73.5 -30.5zM271 589q19 0 32.5 14t13.5 33q0 20 -13.5 33.5t-32.5 13.5t-33 -14t-14 -33t14 -33t33 -14z" />
    +<glyph unicode="&#xe6;" horiz-adv-x="870" d="M841 201h-341q7 -47 41 -78t89 -31q74 0 119 47l57 -84q-35 -32 -86 -49.5t-99 -17.5q-125 0 -186 88q-31 -39 -84.5 -63.5t-116.5 -24.5q-86 0 -144 40.5t-58 117.5q0 76 50 117t125 41q109 0 165 -58v65q0 36 -31.5 58t-83.5 22q-83 0 -151 -57l-48 85q86 76 214 76 q127 0 169 -83q63 83 175 83q100 0 162.5 -73.5t62.5 -192.5v-28zM498 287h220q-2 41 -29.5 74t-80.5 33q-50 0 -78 -32.5t-32 -74.5zM372 169v6q-38 43 -113 43q-43 0 -71 -17t-28 -48t27.5 -48t68.5 -17q46 0 81 25.5t35 55.5z" />
    +<glyph unicode="&#xe7;" horiz-adv-x="499" d="M291 -194q-70 0 -110 32l25 51q38 -29 81 -29q22 0 37 8.5t15 24.5q0 26 -29 26q-18 0 -32 -14l-46 26l21 59q-99 11 -160 80t-61 172q0 111 72 182t184 71q128 0 191 -87l-83 -78q-35 52 -102 52q-58 0 -94.5 -38.5t-36.5 -101.5t36.5 -102t94.5 -39q65 0 102 52l83 -77 q-55 -78 -164 -87l-16 -38q17 10 36 10q28 0 47.5 -19.5t19.5 -50.5q0 -39 -32 -62t-79 -23z" />
    +<glyph unicode="&#xe8;" horiz-adv-x="553" d="M290 -12q-112 0 -185 70t-73 184q0 107 70.5 180t179.5 73q108 0 175 -73.5t67 -192.5v-28h-359q6 -48 43 -80t96 -32q32 0 69.5 13t59.5 35l56 -82q-73 -67 -199 -67zM401 287q-3 41 -32.5 74t-86.5 33q-54 0 -84 -32.5t-35 -74.5h238zM346 556h-89l-162 144h116z" />
    +<glyph unicode="&#xe9;" horiz-adv-x="553" d="M470 700l-162 -144h-89l134 144h117zM290 -12q-112 0 -185 70t-73 184q0 107 70.5 180t179.5 73q108 0 175 -73.5t67 -192.5v-28h-359q6 -48 43 -80t96 -32q32 0 69.5 13t59.5 35l56 -82q-73 -67 -199 -67zM401 287q-3 41 -32.5 74t-86.5 33q-54 0 -84 -32.5t-35 -74.5 h238z" />
    +<glyph unicode="&#xea;" horiz-adv-x="553" d="M433 556h-78l-73 89l-71 -89h-78l92 144h114zM290 -12q-112 0 -185 70t-73 184q0 107 70.5 180t179.5 73q108 0 175 -73.5t67 -192.5v-28h-359q6 -48 43 -80t96 -32q32 0 69.5 13t59.5 35l56 -82q-73 -67 -199 -67zM401 287q-3 41 -32.5 74t-86.5 33q-54 0 -84 -32.5 t-35 -74.5h238z" />
    +<glyph unicode="&#xeb;" horiz-adv-x="553" d="M457 611q0 -28 -20 -48t-48 -20t-48 20t-20 48t20 47.5t48 19.5t48 -19.5t20 -47.5zM245 611q0 -28 -19.5 -48t-47.5 -20t-48 19.5t-20 48.5q0 28 20 47.5t48 19.5t47.5 -19.5t19.5 -47.5zM290 -12q-112 0 -185 70t-73 184q0 107 70.5 180t179.5 73q108 0 175 -73.5 t67 -192.5v-28h-359q6 -48 43 -80t96 -32q32 0 69.5 13t59.5 35l56 -82q-73 -67 -199 -67zM401 287q-3 41 -32.5 74t-86.5 33q-54 0 -84 -32.5t-35 -74.5h238z" />
    +<glyph unicode="&#xec;" horiz-adv-x="253" d="M190 0h-127v483h127v-483zM190 556h-89l-162 144h116z" />
    +<glyph unicode="&#xed;" horiz-adv-x="253" d="M314 700l-162 -144h-89l134 144h117zM190 0h-127v483h127v-483z" />
    +<glyph unicode="&#xee;" horiz-adv-x="253" d="M276 556h-78l-73 89l-71 -89h-78l92 144h114zM190 0h-127v483h127v-483z" />
    +<glyph unicode="&#xef;" horiz-adv-x="253" d="M300 611q0 -28 -20 -48t-48 -20t-48 20t-20 48t20 47.5t48 19.5t48 -19.5t20 -47.5zM88 611q0 -28 -19.5 -48t-47.5 -20q-29 0 -48.5 19.5t-19.5 48.5q0 28 20 47.5t48 19.5t47.5 -19.5t19.5 -47.5zM190 0h-127v483h127v-483z" />
    +<glyph unicode="&#xf0;" horiz-adv-x="574" d="M103 469l-25 60l107 47l-61 37l69 103q79 -48 123 -83l103 45l25 -58l-73 -32q172 -153 172 -336q0 -119 -69 -191.5t-187 -72.5q-114 0 -184.5 66t-70.5 170q0 103 61.5 169.5t152.5 66.5q102 0 160 -93q-36 81 -157 166zM287 101q57 0 90.5 35.5t33.5 87.5t-33.5 87.5 t-90.5 35.5t-90 -35.5t-33 -87.5t33 -87.5t90 -35.5z" />
    +<glyph unicode="&#xf1;" horiz-adv-x="579" d="M516 0h-127v292q0 90 -89 90q-69 0 -110 -57v-325h-127v483h127v-63q63 75 169 75q78 0 117.5 -41t39.5 -113v-341zM347 554q-29 0 -50 17t-36.5 34t-30.5 17q-36 0 -36 -62h-67q0 64 28 99t80 35q28 0 49 -17t36.5 -33.5t30.5 -16.5q36 0 36 61h67q0 -64 -27.5 -99 t-79.5 -35z" />
    +<glyph unicode="&#xf2;" horiz-adv-x="574" d="M287 -12q-116 0 -185.5 73.5t-69.5 180.5t69.5 180t185.5 73t186 -73t70 -180t-70 -180.5t-186 -73.5zM287 101q57 0 90.5 40.5t33.5 100.5q0 59 -33.5 99.5t-90.5 40.5t-90 -40.5t-33 -99.5q0 -60 33 -100.5t90 -40.5zM351 556h-89l-162 144h116z" />
    +<glyph unicode="&#xf3;" horiz-adv-x="574" d="M475 700l-162 -144h-89l134 144h117zM287 -12q-116 0 -185.5 73.5t-69.5 180.5t69.5 180t185.5 73t186 -73t70 -180t-70 -180.5t-186 -73.5zM287 101q57 0 90.5 40.5t33.5 100.5q0 59 -33.5 99.5t-90.5 40.5t-90 -40.5t-33 -99.5q0 -60 33 -100.5t90 -40.5z" />
    +<glyph unicode="&#xf4;" horiz-adv-x="574" d="M437 556h-78l-73 89l-71 -89h-78l92 144h114zM287 -12q-116 0 -185.5 73.5t-69.5 180.5t69.5 180t185.5 73t186 -73t70 -180t-70 -180.5t-186 -73.5zM287 101q57 0 90.5 40.5t33.5 100.5q0 59 -33.5 99.5t-90.5 40.5t-90 -40.5t-33 -99.5q0 -60 33 -100.5t90 -40.5z" />
    +<glyph unicode="&#xf5;" horiz-adv-x="574" d="M287 -12q-116 0 -185.5 73.5t-69.5 180.5t69.5 180t185.5 73t186 -73t70 -180t-70 -180.5t-186 -73.5zM287 101q57 0 90.5 40.5t33.5 100.5q0 59 -33.5 99.5t-90.5 40.5t-90 -40.5t-33 -99.5q0 -60 33 -100.5t90 -40.5zM344 554q-29 0 -50 17t-36.5 34t-30.5 17 q-36 0 -36 -62h-67q0 64 28 99t80 35q28 0 49 -17t36.5 -33.5t30.5 -16.5q36 0 36 61h67q0 -64 -27.5 -99t-79.5 -35z" />
    +<glyph unicode="&#xf6;" horiz-adv-x="574" d="M461 611q0 -28 -20 -48t-48 -20t-48 20t-20 48t20 47.5t48 19.5t48 -19.5t20 -47.5zM249 611q0 -28 -19.5 -48t-47.5 -20t-48 19.5t-20 48.5q0 28 20 47.5t48 19.5t47.5 -19.5t19.5 -47.5zM287 -12q-116 0 -185.5 73.5t-69.5 180.5t69.5 180t185.5 73t186 -73t70 -180 t-70 -180.5t-186 -73.5zM287 101q57 0 90.5 40.5t33.5 100.5q0 59 -33.5 99.5t-90.5 40.5t-90 -40.5t-33 -99.5q0 -60 33 -100.5t90 -40.5z" />
    +<glyph unicode="&#xf7;" horiz-adv-x="511" d="M316 516q0 -26 -18 -44t-43 -18t-43 18t-18 44q0 25 18 42.5t43 17.5t43 -17.5t18 -42.5zM482 298h-453v79h453v-79zM316 157q0 -25 -18 -43t-43 -18t-43 18t-18 43t18 43t43 18t43 -18t18 -43z" />
    +<glyph unicode="&#xf8;" horiz-adv-x="574" d="M118 0h-78l57 67q-65 71 -65 175q0 107 69.5 180t185.5 73q81 0 141 -38l22 26h80l-55 -64q68 -71 68 -177q0 -107 -70 -180.5t-186 -73.5q-85 0 -145 40zM287 101q57 0 90.5 40.5t33.5 100.5q0 44 -20 79l-171 -201q26 -19 67 -19zM164 242q0 -42 17 -76l169 199 q-28 17 -63 17q-57 0 -90 -40.5t-33 -99.5z" />
    +<glyph unicode="&#xf9;" horiz-adv-x="579" d="M516 0h-127v61q-65 -73 -170 -73q-78 0 -117 40t-39 112v343h127v-293q0 -89 89 -89q67 0 110 55v327h127v-483zM353 556h-89l-162 144h116z" />
    +<glyph unicode="&#xfa;" horiz-adv-x="579" d="M476 700l-162 -144h-89l134 144h117zM516 0h-127v61q-65 -73 -170 -73q-78 0 -117 40t-39 112v343h127v-293q0 -89 89 -89q67 0 110 55v327h127v-483z" />
    +<glyph unicode="&#xfb;" horiz-adv-x="579" d="M440 556h-78l-73 89l-71 -89h-78l92 144h114zM516 0h-127v61q-65 -73 -170 -73q-78 0 -117 40t-39 112v343h127v-293q0 -89 89 -89q67 0 110 55v327h127v-483z" />
    +<glyph unicode="&#xfc;" horiz-adv-x="579" d="M463 611q0 -28 -20 -48t-48 -20t-48 20t-20 48t20 47.5t48 19.5t48 -19.5t20 -47.5zM251 611q0 -28 -19.5 -48t-47.5 -20t-48 19.5t-20 48.5q0 28 20 47.5t48 19.5t47.5 -19.5t19.5 -47.5zM516 0h-127v61q-65 -73 -170 -73q-78 0 -117 40t-39 112v343h127v-293 q0 -89 89 -89q67 0 110 55v327h127v-483z" />
    +<glyph unicode="&#xfd;" horiz-adv-x="513" d="M46 -189l19 114q18 -8 40 -8q51 0 67 35l18 41l-196 490h136l126 -336l126 336h137l-227 -562q-25 -64 -70 -89.5t-113 -27.5q-35 0 -63 7zM443 700l-162 -144h-89l134 144h117z" />
    +<glyph unicode="&#xfe;" horiz-adv-x="583" d="M339 -12q-91 0 -149 74v-246h-127v851h127v-245q57 73 149 73q95 0 154.5 -67.5t59.5 -185.5t-59.5 -186t-154.5 -68zM299 101q55 0 88.5 39t33.5 102q0 62 -33.5 101t-88.5 39q-31 0 -62 -16t-47 -39v-171q16 -23 47.5 -39t61.5 -16z" />
    +<glyph unicode="&#xff;" horiz-adv-x="513" d="M46 -189l19 114q18 -8 40 -8q51 0 67 35l18 41l-196 490h136l126 -336l126 336h137l-227 -562q-25 -64 -70 -89.5t-113 -27.5q-35 0 -63 7zM430 611q0 -28 -20 -48t-48 -20t-48 20t-20 48t20 47.5t48 19.5t48 -19.5t20 -47.5zM218 611q0 -28 -19.5 -48t-47.5 -20 q-29 0 -48.5 19.5t-19.5 48.5q0 28 20 47.5t48 19.5t47.5 -19.5t19.5 -47.5z" />
    +<glyph unicode="&#x152;" horiz-adv-x="1084" d="M1041 0h-472v78q-32 -43 -87.5 -66.5t-113.5 -23.5q-146 0 -240 97t-94 248t94 247.5t240 96.5q58 0 113.5 -23t87.5 -66v79h472v-125h-329v-141h322v-125h-322v-151h329v-125zM569 230v206q-24 56 -71.5 85.5t-109.5 29.5q-95 0 -151.5 -61t-56.5 -157q0 -95 56.5 -157 t151.5 -62q61 0 109 30.5t72 85.5z" />
    +<glyph unicode="&#x153;" horiz-adv-x="931" d="M902 201h-358q7 -48 43.5 -80t95.5 -32q76 0 128 47l57 -81q-75 -67 -199 -67q-120 0 -194 107q-74 -107 -188 -107q-116 0 -185.5 73.5t-69.5 180.5t69.5 180t185.5 73q112 0 189 -108q69 108 185 108q108 0 174.5 -73.5t66.5 -192.5v-28zM542 287h238q-3 41 -33 74 t-87 33q-54 0 -84 -32.5t-34 -74.5zM411 242q0 62 -34 101t-90 39q-55 0 -89 -39t-34 -101q0 -63 34 -102.5t89 -39.5q56 0 90 39.5t34 102.5z" />
    +<glyph unicode="&#x178;" horiz-adv-x="645" d="M497 778q0 -28 -20 -48t-48 -20t-48 20t-20 48t20 47.5t48 19.5t48 -19.5t20 -47.5zM285 778q0 -28 -19.5 -48t-47.5 -20t-48 20t-20 48t20 47.5t48 19.5t47.5 -19.5t19.5 -47.5zM394 0h-142v273l-257 394h162l166 -268l164 268h162l-255 -394v-273z" />
    +<glyph unicode="&#x2c6;" horiz-adv-x="300" d="M300 556h-78l-73 89l-71 -89h-78l92 144h114z" />
    +<glyph unicode="&#x2dc;" horiz-adv-x="327" d="M220 554q-29 0 -50 17t-36.5 34t-30.5 17q-36 0 -36 -62h-67q0 64 28 99t80 35q28 0 49 -17t36.5 -33.5t30.5 -16.5q36 0 36 61h67q0 -64 -27.5 -99t-79.5 -35z" />
    +<glyph unicode="&#x2000;" horiz-adv-x="449" />
    +<glyph unicode="&#x2001;" horiz-adv-x="899" />
    +<glyph unicode="&#x2002;" horiz-adv-x="449" />
    +<glyph unicode="&#x2003;" horiz-adv-x="899" />
    +<glyph unicode="&#x2004;" horiz-adv-x="299" />
    +<glyph unicode="&#x2005;" horiz-adv-x="224" />
    +<glyph unicode="&#x2006;" horiz-adv-x="149" />
    +<glyph unicode="&#x2007;" horiz-adv-x="149" />
    +<glyph unicode="&#x2008;" horiz-adv-x="112" />
    +<glyph unicode="&#x2009;" horiz-adv-x="179" />
    +<glyph unicode="&#x200a;" horiz-adv-x="49" />
    +<glyph unicode="&#x2010;" horiz-adv-x="300" d="M270 188h-240v108h240v-108z" />
    +<glyph unicode="&#x2011;" horiz-adv-x="300" d="M270 188h-240v108h240v-108z" />
    +<glyph unicode="&#x2013;" horiz-adv-x="593" d="M563 188h-533v108h533v-108z" />
    +<glyph unicode="&#x2014;" horiz-adv-x="833" d="M803 188h-773v108h773v-108z" />
    +<glyph unicode="&#x2018;" horiz-adv-x="255" d="M38 492q0 55 28 103.5t76 81.5l55 -44q-25 -13 -48 -41t-30 -54q5 3 20 3q29 0 48.5 -20t19.5 -52t-23.5 -55.5t-55.5 -23.5q-37 0 -63.5 27.5t-26.5 74.5z" />
    +<glyph unicode="&#x2019;" horiz-adv-x="255" d="M215 575q0 -55 -28 -103.5t-75 -82.5l-55 45q25 13 48 41t29 54q-6 -4 -19 -4q-29 0 -48.5 20.5t-19.5 51.5q0 33 23 56.5t55 23.5q37 0 63.5 -27.5t26.5 -74.5z" />
    +<glyph unicode="&#x201a;" d="M215 49q0 -55 -28 -103.5t-75 -82.5l-55 45q25 13 48 40.5t29 53.5q-9 -3 -19 -3q-29 0 -48.5 20t-19.5 52q0 33 23 56.5t55 23.5q37 0 63.5 -27.5t26.5 -74.5z" />
    +<glyph unicode="&#x201c;" horiz-adv-x="459" d="M40 492q0 55 27.5 103.5t75.5 81.5l55 -44q-25 -13 -48 -41t-30 -54q4 3 20 3q29 0 48.5 -20t19.5 -52t-23.5 -55.5t-55.5 -23.5q-37 0 -63 27.5t-26 74.5zM244 492q0 55 27.5 103.5t74.5 81.5l56 -44q-25 -13 -48.5 -41t-29.5 -54q4 3 20 3q28 0 47.5 -20t19.5 -52 t-23 -55.5t-56 -23.5q-37 0 -62.5 27.5t-25.5 74.5z" />
    +<glyph unicode="&#x201d;" horiz-adv-x="459" d="M418 575q0 -55 -27.5 -103.5t-75.5 -82.5l-55 45q25 13 48 41t30 54q-8 -4 -20 -4q-29 0 -48.5 20.5t-19.5 51.5q0 33 23.5 56.5t55.5 23.5q37 0 63 -27.5t26 -74.5zM215 575q0 -55 -28 -103.5t-75 -82.5l-55 45q25 13 48 41t29 54q-6 -4 -19 -4q-29 0 -48.5 20.5 t-19.5 51.5q0 33 23 56.5t55 23.5q37 0 63.5 -27.5t26.5 -74.5z" />
    +<glyph unicode="&#x201e;" horiz-adv-x="459" d="M215 49q0 -55 -28 -103.5t-75 -82.5l-55 45q25 13 48 40.5t29 53.5q-9 -3 -19 -3q-29 0 -48.5 20t-19.5 52q0 33 23 56.5t55 23.5q37 0 63.5 -27.5t26.5 -74.5zM418 49q0 -55 -27.5 -103.5t-75.5 -82.5l-55 45q25 13 48 40.5t30 53.5q-12 -3 -20 -3q-29 0 -48.5 20 t-19.5 52q0 33 23.5 56.5t55.5 23.5q37 0 63 -27.5t26 -74.5z" />
    +<glyph unicode="&#x2022;" horiz-adv-x="358" d="M299 242q0 -49 -35 -83.5t-84 -34.5t-84 34.5t-35 83.5q0 50 34.5 84.5t84.5 34.5t84.5 -34.5t34.5 -84.5z" />
    +<glyph unicode="&#x2026;" horiz-adv-x="768" d="M208 70q0 -32 -24 -56t-57 -24t-56.5 24t-23.5 56q0 33 23.5 57t56.5 24t57 -24t24 -57zM464 70q0 -32 -24 -56t-57 -24t-56.5 24t-23.5 56q0 33 23.5 57t56.5 24t57 -24t24 -57zM720 70q0 -32 -24 -56t-57 -24t-56.5 24t-23.5 56q0 33 23.5 57t56.5 24t57 -24t24 -57z " />
    +<glyph unicode="&#x202f;" horiz-adv-x="179" />
    +<glyph unicode="&#x2039;" horiz-adv-x="337" d="M307 63h-117l-160 180l160 177h117l-160 -177z" />
    +<glyph unicode="&#x203a;" horiz-adv-x="337" d="M307 243l-160 -180h-117l160 180l-160 177h117z" />
    +<glyph unicode="&#x205f;" horiz-adv-x="224" />
    +<glyph unicode="&#x20ac;" horiz-adv-x="709" d="M412 -12q-122 0 -214.5 64.5t-125.5 173.5h-51v76h37q-1 10 -1 31q0 23 1 34h-37v75h52q33 108 125 172t214 64q187 0 279 -163l-122 -60q-22 42 -64.5 69.5t-92.5 27.5q-61 0 -109 -29.5t-75 -80.5h245v-75h-268q-2 -11 -2 -34q0 -11 2 -31h268v-76h-246q26 -52 75 -82 t110 -30q50 0 92.5 27t64.5 70l122 -59q-95 -164 -279 -164z" />
    +<glyph unicode="&#x2122;" horiz-adv-x="454" d="M419 447h-28v182l-75 -182h-8l-75 182v-182h-28v220h43l64 -160l64 160h43v-220zM169 641h-62v-194h-28v194h-62v26h152v-26z" />
    +</font>
    +</defs></svg> 
    \ No newline at end of file
    diff --git a/stylesheets/ProximaNova-Bold-webfont.ttf b/stylesheets/ProximaNova-Bold-webfont.ttf
    new file mode 100644
    index 0000000..a5a6926
    Binary files /dev/null and b/stylesheets/ProximaNova-Bold-webfont.ttf differ
    diff --git a/stylesheets/ProximaNova-Bold-webfont.woff b/stylesheets/ProximaNova-Bold-webfont.woff
    new file mode 100644
    index 0000000..ccffe49
    Binary files /dev/null and b/stylesheets/ProximaNova-Bold-webfont.woff differ
    diff --git a/stylesheets/ProximaNova-Light-webfont.eot b/stylesheets/ProximaNova-Light-webfont.eot
    new file mode 100644
    index 0000000..55731cd
    Binary files /dev/null and b/stylesheets/ProximaNova-Light-webfont.eot differ
    diff --git a/stylesheets/ProximaNova-Light-webfont.svg b/stylesheets/ProximaNova-Light-webfont.svg
    new file mode 100644
    index 0000000..69a1122
    --- /dev/null
    +++ b/stylesheets/ProximaNova-Light-webfont.svg
    @@ -0,0 +1,238 @@
    +<?xml version="1.0" standalone="no"?>
    +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
    +<svg xmlns="http://www.w3.org/2000/svg">
    +<metadata>
    +This is a custom SVG webfont generated by Fontspring.
    +</metadata>
    +<defs>
    +<font id="webfont1IYZQmli" horiz-adv-x="571" >
    +<font-face units-per-em="1000" ascent="790" descent="-210" />
    +<missing-glyph horiz-adv-x="259" />
    +<glyph unicode=" "  horiz-adv-x="259" />
    +<glyph unicode="&#x09;" horiz-adv-x="259" />
    +<glyph unicode="&#xa0;" horiz-adv-x="259" />
    +<glyph unicode="!" horiz-adv-x="219" d="M130 174h-41l-13 493h67zM109 -9q-18 0 -30.5 13t-12.5 31q0 17 12.5 30t30.5 13t31.5 -13t13.5 -30q0 -18 -13.5 -31t-31.5 -13z" />
    +<glyph unicode="&#x22;" horiz-adv-x="317" d="M109 427h-30q-21 201 -21 214q0 15 10 25.5t26 10.5q15 0 25.5 -10.5t10.5 -25.5zM238 427h-30q-21 201 -21 214q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5z" />
    +<glyph unicode="#" horiz-adv-x="579" d="M284 0h-48l64 186h-118l-63 -186h-47l62 186h-110l13 41h112l71 213h-113l12 41h115l61 186h47l-61 -186h117l61 186h48l-63 -186h111l-11 -41h-113l-72 -213h115l-12 -41h-116zM312 227l72 213h-117l-71 -213h116z" />
    +<glyph unicode="$" horiz-adv-x="584" d="M273 -100v89q-145 7 -225 105l37 43q75 -88 188 -96v280q-49 14 -76.5 24.5t-61.5 31t-50 51t-16 72.5q0 76 58 124.5t146 52.5v91h46v-91q120 -10 195 -93l-38 -42q-59 71 -157 82v-252q47 -13 77.5 -25.5t64.5 -34.5t51 -55.5t17 -79.5q0 -71 -50.5 -126t-159.5 -62 v-89h-46zM469 173q0 55 -38.5 84t-111.5 51v-267q79 6 114.5 45t35.5 87zM129 503q0 -48 37 -73t107 -45v240q-63 -3 -103.5 -37t-40.5 -85z" />
    +<glyph unicode="%" horiz-adv-x="720" d="M190 350q-69 0 -112.5 46t-43.5 116q0 71 44 118t112 47q69 0 113 -47t44 -118q0 -70 -44 -116t-113 -46zM173 0h-45l426 667h46zM530 -12q-69 0 -113 46.5t-44 116.5q0 71 44 118t113 47t113 -47t44 -118q0 -70 -44 -116.5t-113 -46.5zM190 388q48 0 79.5 36.5 t31.5 87.5q0 53 -31 89.5t-80 36.5q-48 0 -79 -36.5t-31 -89.5q0 -51 31 -87.5t79 -36.5zM530 27q49 0 79.5 36t30.5 88q0 53 -30.5 89.5t-79.5 36.5t-80 -36.5t-31 -89.5q0 -52 31 -88t80 -36z" />
    +<glyph unicode="&#x26;" horiz-adv-x="639" d="M602 0h-78q-38 33 -85 80q-82 -92 -196 -92q-87 0 -144 48t-57 134q0 72 39 117.5t110 84.5q-55 87 -55 153q0 65 46 108.5t113 43.5q63 0 101.5 -33.5t38.5 -92.5q0 -29 -11 -54.5t-23.5 -41.5t-41.5 -36.5t-45 -28.5l-52 -29q29 -40 86 -105q63 -71 89 -98 q49 73 76 162l48 -20q-47 -118 -88 -178q48 -50 129 -122zM247 34q87 0 158 81q-74 76 -100 107q-59 69 -89 112q-55 -32 -85.5 -69t-30.5 -92q0 -65 43 -102t104 -37zM192 524q0 -54 46 -127q37 19 56 31t43.5 31t35 41t10.5 49q0 40 -24.5 62t-62.5 22q-43 0 -73.5 -31 t-30.5 -78z" />
    +<glyph unicode="'" horiz-adv-x="187" d="M109 427h-30q-21 201 -21 214q0 15 10 25.5t26 10.5q15 0 25.5 -10.5t10.5 -25.5z" />
    +<glyph unicode="(" horiz-adv-x="227" d="M210 -176l-31 -23q-133 201 -133 442t133 442l31 -22q-53 -109 -79.5 -204t-26.5 -216t26.5 -216t79.5 -203z" />
    +<glyph unicode=")" horiz-adv-x="227" d="M48 -199l-31 23q53 107 79.5 202.5t26.5 216.5q0 122 -26.5 217t-79.5 203l31 22q134 -203 134 -442t-134 -442z" />
    +<glyph unicode="*" horiz-adv-x="335" d="M186 399h-37l5 117l-98 -64l-19 33l104 53l-104 53l19 33l98 -64l-5 117h37l-6 -117l99 64l18 -33l-103 -53l103 -53l-18 -33l-99 64z" />
    +<glyph unicode="+" horiz-adv-x="496" d="M467 316h-196v-217h-45v217h-197v42h197v211h45v-211h196v-42z" />
    +<glyph unicode="," horiz-adv-x="219" d="M159 14q0 -40 -20.5 -77.5t-51.5 -59.5l-29 25q24 16 40 42.5t18 49.5q-7 -1 -10 -1q-18 0 -29.5 12t-11.5 30q0 17 12.5 30t30.5 13q21 0 36 -17t15 -47z" />
    +<glyph unicode="-" horiz-adv-x="300" d="M270 218h-240v48h240v-48z" />
    +<glyph unicode="." horiz-adv-x="219" d="M109 -10q-18 0 -31 13.5t-13 31.5q0 17 13 30t31 13t31.5 -13t13.5 -30q0 -18 -13.5 -31.5t-31.5 -13.5z" />
    +<glyph unicode="/" horiz-adv-x="282" d="M45 -20h-45l237 707h45z" />
    +<glyph unicode="0" horiz-adv-x="608" d="M305 -12q-64 0 -114 31t-77.5 82.5t-41.5 110t-14 121.5t14 121.5t41.5 109.5t77 82t114.5 31q64 0 113 -31t77 -82t42 -109.5t14 -121.5q0 -62 -14 -121t-42 -110.5t-77 -82.5t-113 -31zM305 40q50 0 87.5 26t58 69.5t30 93t9.5 104.5t-9.5 104.5t-30 93t-58 69 t-87.5 25.5q-51 0 -88.5 -25.5t-58 -69t-30.5 -93t-10 -104.5t10 -104.5t30.5 -93t58 -69.5t88.5 -26z" />
    +<glyph unicode="1" horiz-adv-x="308" d="M225 0h-57v589l-107 -114l-35 37l147 155h52v-667z" />
    +<glyph unicode="2" horiz-adv-x="582" d="M496 0h-440v47l128 105q48 40 102 91t82.5 88.5t47.5 78.5t19 79q0 67 -45.5 101.5t-106.5 34.5q-60 0 -107.5 -23.5t-75.5 -63.5l-39 36q36 48 94 75.5t128 27.5q83 0 146.5 -48t63.5 -140q0 -53 -25 -106t-79 -111.5t-105.5 -104t-138.5 -115.5h351v-52z" />
    +<glyph unicode="3" horiz-adv-x="544" d="M259 -12q-78 0 -137 31.5t-90 79.5l39 34q65 -93 187 -93q77 0 122.5 38t45.5 104q0 68 -49.5 101.5t-129.5 33.5q-52 0 -62 -1v54q10 -1 62 -1q72 0 120.5 32t48.5 95q0 60 -46 94.5t-114 34.5q-103 0 -179 -85l-36 36q83 101 218 101q91 0 153 -47t62 -129 q0 -47 -25 -83t-55 -51.5t-63 -21.5q54 -6 103.5 -49t49.5 -117q0 -84 -60.5 -137.5t-164.5 -53.5z" />
    +<glyph unicode="4" horiz-adv-x="541" d="M408 0h-57v182h-316v51l296 434h77v-433h98v-52h-98v-182zM351 234v376l-257 -376h257z" />
    +<glyph unicode="5" horiz-adv-x="582" d="M299 -12q-149 0 -225 109l38 38q67 -95 187 -95q72 0 119.5 46t47.5 115q0 75 -46.5 119t-119.5 44q-91 0 -162 -65l-43 18v350h385v-52h-328v-261q64 62 159 62q89 0 151 -56.5t62 -156.5q0 -97 -65 -156t-160 -59z" />
    +<glyph unicode="6" horiz-adv-x="584" d="M303 -12q-52 0 -94 19t-70 51t-46.5 76.5t-26.5 93.5t-8 105q0 53 8.5 101.5t28.5 93.5t48.5 77.5t72.5 52t97 19.5q112 0 180 -85l-34 -42q-55 75 -146 75q-52 0 -91.5 -25.5t-61.5 -68.5t-33 -93t-11 -106q0 -21 1 -31q25 41 79 76t116 35q95 0 155 -54.5t60 -156.5 q0 -87 -61 -150t-163 -63zM301 40q79 0 123.5 49.5t44.5 110.5q0 79 -46 120t-121 41q-54 0 -103.5 -31.5t-78.5 -82.5q4 -51 22 -95t59 -78t100 -34z" />
    +<glyph unicode="7" horiz-adv-x="502" d="M185 0h-63l280 615h-369v52h437v-40z" />
    +<glyph unicode="8" d="M286 -12q-98 0 -162.5 49.5t-64.5 129.5q0 65 48 111.5t118 65.5q-66 18 -110.5 58.5t-44.5 102.5q0 83 64 127.5t152 44.5q86 0 151 -44.5t65 -127.5q0 -62 -44.5 -102.5t-110.5 -58.5q70 -19 117.5 -65t47.5 -112q0 -80 -64.5 -129.5t-161.5 -49.5zM286 368 q22 4 43 11.5t50 22t47 40t18 57.5q0 58 -45 92t-113 34t-113 -34t-45 -92q0 -32 18 -57.5t47 -40.5t50 -22t43 -11zM286 40q68 0 118.5 36.5t50.5 94.5q0 36 -20 65t-50 45.5t-55 25.5t-44 11q-19 -2 -44.5 -11t-55 -25.5t-49.5 -45.5t-20 -65q0 -59 49.5 -95t119.5 -36z " />
    +<glyph unicode="9" horiz-adv-x="584" d="M271 -11q-113 0 -179 85l33 41q55 -74 146 -74q53 0 92.5 25.5t61.5 69t32.5 93t10.5 105.5v31q-26 -41 -80.5 -76.5t-115.5 -35.5q-95 0 -155 55t-60 157q0 87 61 150t163 63q52 0 94 -19t70 -51t46.5 -76.5t26.5 -93.5t8 -105q0 -53 -8.5 -101.5t-28.5 -93.5 t-48.5 -77.5t-72.5 -52t-97 -19.5zM282 305q54 0 103.5 31.5t78.5 82.5q-4 51 -22 95t-59 78t-100 34q-79 0 -123.5 -49.5t-44.5 -110.5q0 -79 46 -120t121 -41z" />
    +<glyph unicode=":" horiz-adv-x="219" d="M109 403q-18 0 -31 13t-13 30q0 18 13 31t31 13t31.5 -13t13.5 -31q0 -17 -13.5 -30t-31.5 -13zM109 -10q-18 0 -31 13.5t-13 31.5q0 17 13 30t31 13t31.5 -13t13.5 -30q0 -18 -13.5 -31.5t-31.5 -13.5z" />
    +<glyph unicode=";" horiz-adv-x="219" d="M109 403q-18 0 -31 13t-13 30q0 18 13 31t31 13t31.5 -13t13.5 -31q0 -17 -13.5 -30t-31.5 -13zM159 14q0 -40 -20.5 -77t-51.5 -59l-29 25q24 16 40 42.5t18 49.5q-7 -1 -10 -1q-18 0 -29.5 12t-11.5 30q0 17 12.5 30t30.5 13q21 0 36 -17.5t15 -47.5z" />
    +<glyph unicode="&#x3c;" horiz-adv-x="496" d="M467 90l-438 226v37l438 227v-49l-386 -197l386 -195v-49z" />
    +<glyph unicode="=" horiz-adv-x="496" d="M467 411h-438v42h438v-42zM467 216h-438v41h438v-41z" />
    +<glyph unicode="&#x3e;" horiz-adv-x="496" d="M467 316l-438 -226v49l386 195l-386 197v49l438 -227v-37z" />
    +<glyph unicode="?" horiz-adv-x="464" d="M214 176q-41 34 -41 79q0 36 20 65t49 49l57 39q29 20 49 47.5t20 61.5q0 46 -35.5 77t-98.5 31q-109 0 -176 -90l-36 37q77 105 215 105q87 0 139 -44.5t52 -109.5q0 -42 -21 -76t-51 -56t-60 -41.5t-51 -44t-21 -53.5t30 -51zM223 -10q-18 0 -31 13.5t-13 31.5 q0 17 13 30t31 13t31 -13t13 -30q0 -18 -13 -31.5t-31 -13.5z" />
    +<glyph unicode="@" horiz-adv-x="783" d="M352 -70q-136 0 -226.5 90.5t-90.5 223.5q0 106 55.5 197.5t147 144t194.5 52.5q139 0 227 -92.5t88 -229.5q0 -108 -48 -169.5t-114 -61.5q-39 0 -63 25t-25 60l-1 6q-28 -39 -72 -65t-92 -26q-69 0 -111 43.5t-42 116.5q0 104 73.5 179t165.5 75q47 0 81 -23t49 -59 l13 65h49l-59 -282q-2 -12 -2 -19q0 -25 14.5 -40t35.5 -15q40 0 78 46.5t38 144.5q0 125 -80 207t-206 82q-145 0 -253.5 -109.5t-108.5 -251.5q0 -121 82 -202.5t207 -81.5q99 0 187 57l17 -25q-98 -63 -208 -63zM342 126q95 0 164 101l32 148q-11 32 -40 57.5t-74 25.5 q-79 0 -136 -64.5t-57 -145.5q0 -54 29.5 -88t81.5 -34z" />
    +<glyph unicode="A" horiz-adv-x="647" d="M632 0h-66l-66 164h-353l-66 -164h-66l273 667h71zM481 216l-158 390l-157 -390h315z" />
    +<glyph unicode="B" horiz-adv-x="614" d="M363 0h-280v667h274q84 0 134 -46t50 -124q0 -60 -34.5 -101.5t-82.5 -51.5q53 -8 91.5 -56.5t38.5 -107.5q0 -83 -51 -131.5t-140 -48.5zM350 368q62 0 96.5 34.5t34.5 88.5q0 53 -34.5 88.5t-96.5 35.5h-210v-247h210zM354 52q66 0 103 35.5t37 96.5q0 55 -37 93.5 t-103 38.5h-214v-264h214z" />
    +<glyph unicode="C" horiz-adv-x="672" d="M396 -12q-144 0 -241 96.5t-97 248.5t97 248.5t241 96.5q148 0 243 -118l-48 -31q-32 44 -84 70.5t-111 26.5q-119 0 -198.5 -82t-79.5 -211q0 -128 79.5 -210.5t198.5 -82.5q59 0 111 26.5t84 70.5l48 -30q-96 -119 -243 -119z" />
    +<glyph unicode="D" horiz-adv-x="692" d="M296 0h-213v667h213q151 0 244 -96.5t93 -237.5q0 -142 -92.5 -237.5t-244.5 -95.5zM296 52q128 0 202.5 80t74.5 201t-74 201.5t-203 80.5h-156v-563h156z" />
    +<glyph unicode="E" horiz-adv-x="564" d="M506 0h-423v667h423v-52h-366v-247h359v-52h-359v-264h366v-52z" />
    +<glyph unicode="F" horiz-adv-x="542" d="M140 0h-57v667h423v-52h-366v-247h359v-52h-359v-316z" />
    +<glyph unicode="G" horiz-adv-x="711" d="M396 -13q-143 0 -240.5 97t-97.5 249t97.5 248.5t240.5 96.5q152 0 251 -114l-43 -31q-36 43 -90.5 68t-117.5 25q-119 0 -198.5 -82t-79.5 -211q0 -128 79.5 -211t198.5 -83q61 0 112 24t84 57v160h-252v51h309v-233q-99 -111 -253 -111z" />
    +<glyph unicode="H" horiz-adv-x="703" d="M621 0h-58v317h-423v-317h-57v667h57v-298h423v298h58v-667z" />
    +<glyph unicode="I" horiz-adv-x="223" d="M140 0h-57v667h57v-667z" />
    +<glyph unicode="J" horiz-adv-x="470" d="M185 -12q-108 0 -171 82l35 43q56 -73 133 -73q67 0 107 42.5t40 110.5v474h58v-474q0 -100 -57 -152.5t-145 -52.5z" />
    +<glyph unicode="K" horiz-adv-x="586" d="M562 0h-73l-275 314l-74 -81v-233h-57v667h57v-365l322 365h73l-284 -318z" />
    +<glyph unicode="L" horiz-adv-x="504" d="M463 0h-380v667h57v-615h323v-52z" />
    +<glyph unicode="M" horiz-adv-x="790" d="M707 0h-58v589l-243 -589h-22l-244 589v-589h-57v667h85l227 -550l226 550h86v-667z" />
    +<glyph unicode="N" horiz-adv-x="699" d="M616 0h-56l-420 573v-573h-57v667h58l418 -565v565h57v-667z" />
    +<glyph unicode="O" horiz-adv-x="764" d="M382 -12q-145 0 -234.5 98t-89.5 247t89.5 247t234.5 98q144 0 234 -98t90 -247t-90 -247t-234 -98zM382 40q118 0 191 82.5t73 210.5q0 129 -72.5 211t-191.5 82q-120 0 -192 -82t-72 -211q0 -128 72 -210.5t192 -82.5z" />
    +<glyph unicode="P" d="M140 0h-57v667h250q93 0 147 -56.5t54 -138.5t-54.5 -138.5t-146.5 -56.5h-193v-277zM327 329q66 0 106.5 40t40.5 103t-40.5 103t-106.5 40h-187v-286h187z" />
    +<glyph unicode="Q" horiz-adv-x="764" d="M382 -12q-145 0 -234.5 98t-89.5 247t89.5 247t234.5 98q144 0 234 -98t90 -247q0 -153 -95 -251l70 -73l-39 -36l-71 73q-80 -58 -189 -58zM382 40q86 0 151 46l-103 107l40 37l103 -108q73 84 73 211q0 129 -72.5 211t-191.5 82q-120 0 -192 -82t-72 -211 q0 -128 72 -210.5t192 -82.5z" />
    +<glyph unicode="R" horiz-adv-x="594" d="M543 0h-69l-187 276h-147v-276h-57v667h249q88 0 145.5 -53t57.5 -142q0 -87 -53.5 -138t-131.5 -54zM327 328q66 0 107 40.5t41 103.5t-41 103t-107 40h-187v-287h187z" />
    +<glyph unicode="S" horiz-adv-x="581" d="M290 -12q-157 0 -244 106l37 43q83 -97 208 -97q93 0 134.5 40.5t41.5 92.5q0 40 -22 67.5t-57.5 42.5t-78 27t-85 25.5t-78 32t-57.5 52t-22 80.5q0 80 63 129t156 49q143 0 226 -94l-38 -42q-70 84 -191 84q-67 0 -111.5 -34.5t-44.5 -88.5q0 -34 22 -58.5t57.5 -38 t78 -25t85 -26t78 -34.5t57.5 -56.5t22 -87.5q0 -76 -57 -132.5t-180 -56.5z" />
    +<glyph unicode="T" horiz-adv-x="564" d="M311 0h-58v615h-218v52h494v-52h-218v-615z" />
    +<glyph unicode="U" horiz-adv-x="686" d="M343 -12q-126 0 -193 71.5t-67 196.5v411h58v-410q0 -102 52.5 -159.5t149.5 -57.5q98 0 150 57t52 160v410h58v-411q0 -126 -66.5 -197t-193.5 -71z" />
    +<glyph unicode="V" horiz-adv-x="647" d="M359 0h-71l-273 667h66l242 -603l243 603h66z" />
    +<glyph unicode="W" horiz-adv-x="867" d="M658 0h-64l-160 573l-160 -573h-64l-191 667h64l161 -587l164 587h52l163 -587l161 587h64z" />
    +<glyph unicode="X" horiz-adv-x="645" d="M626 0h-71l-233 301l-232 -301h-72l269 342l-254 325h73l216 -283l217 283h72l-253 -324z" />
    +<glyph unicode="Y" horiz-adv-x="618" d="M338 0h-58v285l-265 382h69l225 -328l225 328h69l-265 -382v-285z" />
    +<glyph unicode="Z" horiz-adv-x="581" d="M531 0h-481v50l402 565h-402v52h474v-49l-402 -566h409v-52z" />
    +<glyph unicode="[" horiz-adv-x="228" d="M211 -190h-174v868h174v-43h-130v-782h130v-43z" />
    +<glyph unicode="\" horiz-adv-x="282" d="M237 -20l-237 707h45l237 -707h-45z" />
    +<glyph unicode="]" horiz-adv-x="228" d="M191 -190h-174v43h130v782h-130v43h174v-868z" />
    +<glyph unicode="^" horiz-adv-x="428" d="M409 333h-48l-147 293l-147 -293h-48l174 334h42z" />
    +<glyph unicode="_" horiz-adv-x="564" d="M567 -83h-570v43h570v-43z" />
    +<glyph unicode="`" horiz-adv-x="216" d="M216 556h-44l-172 144h62z" />
    +<glyph unicode="a" horiz-adv-x="521" d="M440 0h-52v57q-63 -69 -164 -69q-67 0 -118 43.5t-51 117.5q0 75 50.5 117.5t118.5 42.5q102 0 164 -69v98q0 52 -37 81.5t-93 29.5q-89 0 -151 -71l-29 36q75 81 186 81q78 0 127 -39t49 -116v-340zM242 29q95 0 146 66v106q-52 67 -146 67q-59 0 -95.5 -34t-36.5 -86 t36.5 -85.5t95.5 -33.5z" />
    +<glyph unicode="b" d="M133 121q22 -36 66 -61t93 -25q79 0 124 58t45 148q0 91 -45 149t-124 58q-48 0 -92.5 -26t-66.5 -62v-239zM133 0h-52v667h52v-262q64 90 168 90q97 0 156.5 -69.5t59.5 -184.5t-59.5 -184t-156.5 -69q-52 0 -96.5 25t-71.5 64v-77z" />
    +<glyph unicode="c" horiz-adv-x="494" d="M288 -12q-105 0 -170 73t-65 181t65 180.5t170 72.5q106 0 171 -82l-36 -32q-49 67 -132 67t-132.5 -58.5t-49.5 -147.5t49.5 -148t132.5 -59q82 0 132 68l36 -32q-65 -83 -171 -83z" />
    +<glyph unicode="d" d="M490 0h-53v77q-27 -39 -71.5 -64t-96.5 -25q-97 0 -156.5 69t-59.5 184q0 114 60 184t156 70q104 0 168 -90v262h53v-667zM278 35q49 0 93 25t66 61v239q-22 37 -66 62.5t-93 25.5q-78 0 -123.5 -58.5t-45.5 -148.5t45.5 -148t123.5 -58z" />
    +<glyph unicode="e" horiz-adv-x="567" d="M295 -12q-106 0 -174 71t-68 183q0 106 66.5 179.5t166.5 73.5q106 0 167 -73.5t61 -182.5v-14h-404q4 -82 55 -137t134 -55q96 0 158 67l27 -34q-75 -78 -189 -78zM461 266q-1 70 -46.5 127t-129.5 57q-79 0 -125.5 -56.5t-49.5 -127.5h351z" />
    +<glyph unicode="f" horiz-adv-x="265" d="M150 0h-52v437h-80v46h80v44q0 70 35 110t96 40q53 0 92 -34l-25 -36q-27 25 -62 25q-84 0 -84 -105v-44h98v-46h-98v-437z" />
    +<glyph unicode="g" horiz-adv-x="570" d="M272 -196q-63 0 -106 15.5t-84 57.5l30 40q31 -37 68 -52.5t92 -15.5q72 0 118.5 38.5t46.5 116.5v76q-27 -39 -71.5 -64.5t-96.5 -25.5q-97 0 -156.5 68.5t-59.5 183.5q0 114 60 183.5t156 69.5q104 0 168 -90v78h53v-478q0 -104 -60.5 -152.5t-157.5 -48.5zM278 37 q49 0 93 25.5t66 62.5v235q-22 37 -66 62.5t-93 25.5q-78 0 -123.5 -58t-45.5 -148t45.5 -147.5t123.5 -57.5z" />
    +<glyph unicode="h" horiz-adv-x="540" d="M459 0h-52v329q0 66 -30 92.5t-87 26.5q-45 0 -89 -24t-68 -59v-365h-52v667h52v-257q29 34 77 59.5t97 25.5q152 0 152 -155v-340z" />
    +<glyph unicode="i" horiz-adv-x="214" d="M107 559q-16 0 -28 12t-12 28t12 27.5t28 11.5q17 0 28.5 -11.5t11.5 -27.5q0 -17 -11.5 -28.5t-28.5 -11.5zM133 0h-52v483h52v-483z" />
    +<glyph unicode="j" horiz-adv-x="214" d="M107 559q-16 0 -28 12t-12 28t12 27.5t28 11.5q17 0 28.5 -11.5t11.5 -27.5q0 -17 -11.5 -28.5t-28.5 -11.5zM2 -196q-56 0 -99 37l23 41q31 -33 71 -33q38 0 61 22t23 67v545h52v-545q0 -66 -34 -100t-97 -34z" />
    +<glyph unicode="k" horiz-adv-x="505" d="M486 0h-70l-193 230l-90 -85v-145h-52v667h52v-460l285 276h69l-225 -218z" />
    +<glyph unicode="l" horiz-adv-x="214" d="M133 0h-52v667h52v-667z" />
    +<glyph unicode="m" horiz-adv-x="789" d="M708 0h-52v338q0 110 -97 110q-38 0 -77.5 -24t-60.5 -58v-366h-53v338q0 110 -97 110q-37 0 -76 -24.5t-62 -58.5v-365h-52v483h52v-73q18 29 63.5 57t92.5 28q53 0 85 -26t42 -65q22 36 67 63.5t93 27.5q132 0 132 -147v-348z" />
    +<glyph unicode="n" horiz-adv-x="540" d="M459 0h-52v327q0 66 -30 93.5t-87 27.5q-45 0 -89 -24t-68 -59v-365h-52v483h52v-73q29 34 77 59.5t97 25.5q152 0 152 -157v-338z" />
    +<glyph unicode="o" d="M285 -12q-104 0 -168 73t-64 181t64 180.5t168 72.5q105 0 169 -72.5t64 -180.5t-64 -181t-169 -73zM285 35q82 0 129.5 60.5t47.5 146.5q0 85 -47.5 145.5t-129.5 60.5q-81 0 -128.5 -60.5t-47.5 -145.5t47.5 -146t128.5 -61z" />
    +<glyph unicode="p" horiz-adv-x="567" d="M301 -12q-104 0 -168 90v-262h-52v667h52v-76q27 39 71.5 63.5t96.5 24.5q97 0 156.5 -68.5t59.5 -184.5q0 -115 -59.5 -184.5t-156.5 -69.5zM292 35q79 0 124 58t45 149q0 90 -45 148t-124 58q-49 0 -93 -25t-66 -61v-239q22 -36 66.5 -62t92.5 -26z" />
    +<glyph unicode="q" horiz-adv-x="567" d="M275 35q48 0 92.5 26t66.5 62v239q-22 36 -66 61t-93 25q-79 0 -124 -58t-45 -148q0 -91 45 -149t124 -58zM265 -12q-96 0 -155.5 69.5t-59.5 184.5t59 184t156 69q53 0 97.5 -24.5t71.5 -63.5v76h52v-667h-52v262q-64 -90 -169 -90z" />
    +<glyph unicode="r" horiz-adv-x="317" d="M133 0h-52v483h52v-83q71 93 163 93v-57q-9 2 -26 2q-36 0 -78 -27t-59 -59v-352z" />
    +<glyph unicode="s" horiz-adv-x="459" d="M225 -12q-117 0 -186 76l31 39q25 -31 66 -51t90 -20q59 0 94 27.5t35 70.5q0 36 -31.5 57.5t-76 32t-89.5 23t-76.5 41.5t-31.5 77q0 57 46.5 95.5t125.5 38.5q109 0 173 -71l-29 -37q-47 64 -144 64q-55 0 -88 -25t-33 -63q0 -33 31.5 -52t76.5 -29.5t89.5 -23.5 t76 -45t31.5 -83q0 -62 -47 -102t-134 -40z" />
    +<glyph unicode="t" horiz-adv-x="275" d="M186 -12q-95 0 -95 105v344h-80v46h80v132h53v-132h98v-46h-98v-336q0 -66 50 -66q33 0 54 23l20 -40q-32 -30 -82 -30z" />
    +<glyph unicode="u" horiz-adv-x="540" d="M459 0h-52v71q-33 -36 -79 -59.5t-95 -23.5q-76 0 -114 37.5t-38 117.5v340h52v-328q0 -67 30 -93.5t87 -26.5q45 0 88.5 23t68.5 57v368h52v-483z" />
    +<glyph unicode="v" horiz-adv-x="481" d="M270 0h-59l-204 483h58l176 -422l174 422h59z" />
    +<glyph unicode="w" horiz-adv-x="719" d="M545 0h-50l-135 413l-136 -413h-50l-157 483h56l128 -410l136 410h45l136 -410l128 410h56z" />
    +<glyph unicode="x" horiz-adv-x="479" d="M462 0h-62l-160 213l-161 -213h-62l191 248l-180 235h62l150 -199l149 199h62l-180 -235z" />
    +<glyph unicode="y" horiz-adv-x="481" d="M49 -189l9 48q18 -8 42 -8q49 0 73 59l38 86l-204 487h58l176 -422l174 422h59l-250 -589q-38 -90 -124 -90q-28 0 -51 7z" />
    +<glyph unicode="z" horiz-adv-x="469" d="M413 0h-357v43l286 394h-286v46h353v-42l-289 -395h293v-46z" />
    +<glyph unicode="{" horiz-adv-x="249" d="M232 -190h-62q-44 0 -78 34.5t-34 88.5v220q0 30 -13.5 50.5t-38.5 20.5v40q25 0 38.5 20.5t13.5 50.5v219q0 54 34 89t78 35h62v-43h-62q-28 0 -47.5 -23t-19.5 -58v-222q0 -68 -46 -88q46 -20 46 -88v-222q0 -35 19.5 -58t47.5 -23h62v-43z" />
    +<glyph unicode="|" horiz-adv-x="208" d="M126 -20h-43v707h43v-707z" />
    +<glyph unicode="}" horiz-adv-x="249" d="M17 -190v43h62q28 0 47.5 23t19.5 58v222q0 68 46 88q-46 20 -46 88v222q0 35 -19.5 58t-47.5 23h-62v43h62q44 0 78 -35t34 -89v-219q0 -30 13.5 -50.5t38.5 -20.5v-40q-25 0 -38.5 -20.5t-13.5 -50.5v-220q0 -54 -34 -88.5t-78 -34.5h-62z" />
    +<glyph unicode="~" horiz-adv-x="499" d="M429 667l43 -5q-5 -50 -13 -88t-23 -73.5t-39.5 -54t-58.5 -18.5t-57 20t-34.5 49t-21.5 58t-25.5 49t-38.5 20q-72 0 -90 -197l-44 6q11 106 41 169t93 63q34 0 57 -20.5t34.5 -49.5t21.5 -57.5t25.5 -49t38.5 -20.5q72 0 91 199z" />
    +<glyph unicode="&#xa1;" horiz-adv-x="219" d="M76 -184l13 493h41l14 -493h-68zM66 449q0 17 12.5 30t30.5 13t31.5 -13t13.5 -30q0 -18 -13.5 -31t-31.5 -13t-30.5 13t-12.5 31z" />
    +<glyph unicode="&#xa2;" horiz-adv-x="494" d="M257 -100v90q-92 11 -148 81.5t-56 170.5q0 99 56 169.5t148 81.5v72h45v-70q95 -5 157 -82l-36 -32q-47 62 -121 67v-413q73 3 121 68l36 -32q-61 -78 -157 -83v-88h-45zM109 242q0 -79 39.5 -135.5t108.5 -68.5v407q-69 -13 -108.5 -68.5t-39.5 -134.5z" />
    +<glyph unicode="&#xa3;" horiz-adv-x="505" d="M18 267v42h125q-3 4 -20.5 22.5t-22.5 24.5l-18 25q-13 18 -18 31t-9.5 32.5t-4.5 40.5q0 79 62 135.5t154 56.5q62 0 112.5 -29t75.5 -79l-46 -29q-15 35 -53 61t-85 26q-67 0 -113 -38.5t-46 -104.5q0 -29 10.5 -56.5t22 -42.5t32.5 -39.5t30 -36.5h151v-42h-126 q10 -27 10 -53q0 -81 -81 -140q25 9 54 9q34 0 79.5 -22t74.5 -22q32 0 60 13t40 28l27 -47q-49 -47 -129 -47q-47 0 -93 23.5t-86 23.5q-42 0 -118 -40l-22 48q69 29 105.5 72.5t36.5 92.5q0 29 -16 61h-155z" />
    +<glyph unicode="&#xa4;" horiz-adv-x="588" d="M293 96q-88 0 -151 53l-78 -78l-34 33l79 79q-47 64 -47 150q0 88 48 150l-81 82l34 33l80 -80q61 51 150 51t151 -51l79 79l34 -33l-80 -80q48 -63 48 -151t-48 -150l80 -79l-34 -33l-78 77q-61 -52 -152 -52zM293 145q82 0 129.5 55t47.5 133q0 77 -47.5 132t-129.5 55 q-81 0 -129 -55t-48 -132q0 -78 48 -133t129 -55z" />
    +<glyph unicode="&#xa5;" horiz-adv-x="618" d="M338 0h-58v126h-258v41h258v118h-258v42h229l-236 340h69l225 -328l225 328h69l-236 -340h230v-42h-259v-118h259v-41h-259v-126z" />
    +<glyph unicode="&#xa6;" horiz-adv-x="208" d="M126 -20h-43v316h43v-316zM126 371h-43v316h43v-316z" />
    +<glyph unicode="&#xa7;" horiz-adv-x="461" d="M406 311q0 -87 -96 -128q96 -36 96 -121q0 -67 -49.5 -105t-131.5 -38q-113 0 -186 77l31 36q58 -72 155 -72q57 0 93.5 27t36.5 73q0 37 -31.5 59t-76 32.5t-89.5 23.5t-76.5 42t-31.5 77q0 51 34 83.5t89 45.5q-60 18 -91.5 46t-31.5 76q0 55 46 93.5t126 38.5 q112 0 172 -72l-28 -33q-49 64 -143 64q-54 0 -88 -25.5t-34 -66.5q0 -29 22.5 -47.5t56.5 -26t73.5 -19t73.5 -24t56.5 -42.5t22.5 -74zM354 307q0 23 -10.5 40t-31 28.5t-38.5 18t-45 13.5q-71 -19 -99.5 -45.5t-28.5 -64.5q0 -22 11.5 -38t33 -26t46 -17.5t55.5 -14.5 q9 -2 14 -3q93 40 93 109z" />
    +<glyph unicode="&#xa8;" horiz-adv-x="262" d="M270 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM66 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26z" />
    +<glyph unicode="&#xa9;" horiz-adv-x="778" d="M734 334q0 -143 -101 -244t-244 -101t-244 101.5t-101 243.5q0 143 101 244t244 101t244 -101t101 -244zM706 334q0 131 -93 224t-224 93t-224 -93t-93 -224q0 -130 93 -223.5t224 -93.5t224 93t93 224zM513 208l22 -22q-57 -66 -145 -66q-87 0 -147.5 62.5t-60.5 153.5 t60.5 152t147.5 61q90 0 145 -65l-23 -22q-19 26 -52.5 41.5t-69.5 15.5q-71 0 -123 -51.5t-52 -132.5q0 -79 52 -132t123 -53q36 0 70 16t53 42z" />
    +<glyph unicode="&#xaa;" horiz-adv-x="375" d="M310 326h-42v37q-42 -45 -110 -45q-45 0 -78.5 28.5t-33.5 76.5t33.5 75.5t78.5 27.5q68 0 110 -44v61q0 33 -25 51.5t-60 18.5q-62 0 -100 -48l-22 28q51 55 127 55q54 0 88 -26t34 -79v-217zM174 348q61 0 94 42v65q-32 41 -94 41q-37 0 -61 -20.5t-24 -52.5 q0 -33 24 -54t61 -21z" />
    +<glyph unicode="&#xab;" horiz-adv-x="402" d="M372 63h-57l-160 180l160 177h57l-160 -177zM247 63h-57l-160 180l160 177h57l-160 -177z" />
    +<glyph unicode="&#xac;" horiz-adv-x="499" d="M467 453v-237h-43v195h-395v42h438z" />
    +<glyph unicode="&#xad;" horiz-adv-x="300" d="M270 218h-240v48h240v-48z" />
    +<glyph unicode="&#xae;" horiz-adv-x="494" d="M459 465q0 -88 -62 -150t-150 -62t-150 62t-62 150t62 150t150 62q89 0 150.5 -61.5t61.5 -150.5zM432 465q0 77 -54 131t-131 54t-131 -54t-54 -131q0 -76 54.5 -130.5t130.5 -54.5t130.5 54.5t54.5 130.5zM344 343h-38l-63 96h-46v-96h-30v243h99q32 0 53.5 -20.5 t21.5 -53.5q0 -35 -22.5 -53.5t-39.5 -18.5zM310 512q0 19 -13.5 32.5t-30.5 13.5h-69v-90h69q16 0 30 13t14 31z" />
    +<glyph unicode="&#xaf;" horiz-adv-x="363" d="M363 577h-363v37h363v-37z" />
    +<glyph unicode="&#xb0;" horiz-adv-x="282" d="M257 560q0 -48 -34 -81.5t-83 -33.5q-48 0 -81.5 33.5t-33.5 81.5t33.5 82.5t81.5 34.5q49 0 83 -34.5t34 -82.5zM218 560q0 32 -23 55t-55 23q-31 0 -53.5 -23t-22.5 -55t22 -54t54 -22t55 22.5t23 53.5z" />
    +<glyph unicode="&#xb1;" horiz-adv-x="496" d="M467 323h-196v-218h-45v218h-197v41h197v212h45v-212h196v-41zM467 0h-438v41h438v-41z" />
    +<glyph unicode="&#xb2;" horiz-adv-x="384" d="M333 421h-281v35q122 87 178.5 144.5t56.5 109.5q0 40 -27 59.5t-66 19.5q-75 0 -113 -52l-27 28q48 62 141 62q55 0 95.5 -29t40.5 -86q0 -60 -54.5 -119t-158.5 -134h215v-38z" />
    +<glyph unicode="&#xb3;" horiz-adv-x="384" d="M334 529q0 -51 -39 -83t-105 -32q-49 0 -87 18t-57 47l26 28q42 -55 117 -55q47 0 73.5 20.5t26.5 57.5q0 40 -30.5 59t-79.5 19q-32 0 -38 -1v39q7 -1 38 -1q46 0 75 17.5t29 54.5q0 34 -27.5 53t-68.5 19q-65 0 -111 -50l-25 27q52 61 139 61q60 0 98.5 -28.5 t38.5 -77.5q0 -41 -27.5 -64.5t-61.5 -28.5q34 -3 65 -28.5t31 -70.5z" />
    +<glyph unicode="&#xb4;" horiz-adv-x="216" d="M216 700l-172 -144h-44l154 144h62z" />
    +<glyph unicode="&#xb5;" horiz-adv-x="554" d="M133 44v-228h-52v667h52v-328q0 -122 118 -122q44 0 87.5 24t68.5 58v368h52v-384q0 -64 49 -64q12 0 20 2l4 -46q-12 -3 -31 -3q-81 0 -93 86q-29 -37 -72.5 -61.5t-88.5 -24.5q-84 0 -114 56z" />
    +<glyph unicode="&#xb6;" horiz-adv-x="449" d="M368 -100h-38v730h-93v-730h-38v423q-71 0 -121.5 50.5t-50.5 121.5t50.5 121.5t121.5 50.5h169v-767z" />
    +<glyph unicode="&#xb7;" horiz-adv-x="219" d="M154 245q0 -18 -13.5 -31t-31.5 -13t-31 13t-13 31q0 17 13 30t31 13t31.5 -13t13.5 -30z" />
    +<glyph unicode="&#xb8;" horiz-adv-x="198" d="M97 -189q-63 0 -97 29l16 32q35 -28 80 -28q28 0 46.5 12t18.5 33q0 39 -41 39q-25 0 -40 -17l-28 16l31 84h38l-26 -68q15 12 37 12q29 0 47.5 -18t18.5 -48q0 -35 -29 -56.5t-72 -21.5z" />
    +<glyph unicode="&#xb9;" horiz-adv-x="214" d="M154 421h-46v341l-64 -69l-27 29l97 99h40v-400z" />
    +<glyph unicode="&#xba;" horiz-adv-x="405" d="M202 318q-70 0 -114 47.5t-44 117.5t44 117.5t114 47.5q71 0 115 -47t44 -118q0 -70 -44 -117.5t-115 -47.5zM202 355q53 0 84 36.5t31 91.5q0 54 -31 90.5t-84 36.5q-52 0 -82.5 -36t-30.5 -91t30.5 -91.5t82.5 -36.5z" />
    +<glyph unicode="&#xbb;" horiz-adv-x="402" d="M247 243l-160 -180h-57l160 180l-160 177h57zM372 243l-160 -180h-57l160 180l-160 177h57z" />
    +<glyph unicode="&#xbc;" horiz-adv-x="742" d="M154 267h-46v341l-64 -69l-27 29l97 99h40v-400zM701 107h-60v-107h-44v107h-196v35l179 258h61v-256h60v-37zM597 144v215l-150 -215h150zM568 667l-427 -667h-45l426 667h46z" />
    +<glyph unicode="&#xbd;" horiz-adv-x="781" d="M154 267h-46v341l-64 -69l-27 29l97 99h40v-400zM730 0h-281v35q122 87 178.5 144.5t56.5 109.5q0 40 -27 59.5t-66 19.5q-75 0 -113 -52l-27 28q48 62 141 62q55 0 95.5 -29t40.5 -86q0 -60 -54.5 -119t-158.5 -134h215v-38zM568 667l-427 -667h-45l426 667h46z" />
    +<glyph unicode="&#xbe;" horiz-adv-x="859" d="M818 107h-60v-107h-44v107h-196v35l179 258h61v-256h60v-37zM714 144v215l-150 -215h150zM685 667l-427 -667h-45l426 667h46zM334 375q0 -51 -39 -83t-105 -32q-49 0 -87 18t-57 47l26 28q42 -55 117 -55q47 0 73.5 20.5t26.5 57.5q0 40 -30.5 59t-79.5 19q-32 0 -38 -1 v39q7 -1 38 -1q46 0 75 17.5t29 54.5q0 34 -27.5 53t-68.5 19q-65 0 -111 -50l-25 27q52 61 139 61q60 0 98.5 -28.5t38.5 -77.5q0 -41 -27.5 -64.5t-61.5 -28.5q34 -3 65 -28.5t31 -70.5z" />
    +<glyph unicode="&#xbf;" horiz-adv-x="393" d="M250 304q42 -34 42 -79q0 -36 -20 -65t-49 -49l-58 -39q-29 -20 -49 -47.5t-20 -61.5q0 -46 36 -77t99 -31q61 0 101.5 23t73.5 67l36 -37q-77 -105 -215 -105q-87 0 -139 44.5t-52 109.5q0 42 21 76t51 56l60 42q30 20 51 44.5t21 53.5t-30 50zM241 492q18 0 31.5 -13 t13.5 -31q0 -17 -13.5 -30t-31.5 -13t-31 13t-13 30q0 18 13 31t31 13z" />
    +<glyph unicode="&#xc0;" horiz-adv-x="647" d="M632 0h-66l-66 164h-353l-66 -164h-66l273 667h71zM481 216l-158 390l-157 -390h315zM378 723h-44l-172 144h62z" />
    +<glyph unicode="&#xc1;" horiz-adv-x="647" d="M632 0h-66l-66 164h-353l-66 -164h-66l273 667h71zM481 216l-158 390l-157 -390h315zM486 867l-172 -144h-44l154 144h62z" />
    +<glyph unicode="&#xc2;" horiz-adv-x="647" d="M450 723h-40l-86 113l-85 -113h-39l97 144h54zM632 0h-66l-66 164h-353l-66 -164h-66l273 667h71zM481 216l-158 390l-157 -390h315z" />
    +<glyph unicode="&#xc3;" horiz-adv-x="647" d="M632 0h-66l-66 164h-353l-66 -164h-66l273 667h71zM481 216l-158 390l-157 -390h315zM385 721q-25 0 -43.5 16t-27.5 35.5t-23.5 35.5t-31.5 16q-24 0 -39 -24t-15 -73h-35q0 58 24.5 96t68.5 38q25 0 43.5 -16t27 -35t23 -35t31.5 -16q24 0 38.5 24t14.5 72h36 q0 -59 -24 -96.5t-68 -37.5z" />
    +<glyph unicode="&#xc4;" horiz-adv-x="647" d="M463 768q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM259 768q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM632 0h-66l-66 164h-353l-66 -164h-66l273 667h71zM481 216l-158 390l-157 -390h315z" />
    +<glyph unicode="&#xc5;" horiz-adv-x="647" d="M632 0h-66l-66 164h-353l-66 -164h-66l273 667h71zM481 216l-158 390l-157 -390h315zM325 691q-40 0 -68 28t-28 68q0 39 28 67.5t68 28.5q39 0 66.5 -28.5t27.5 -67.5q0 -40 -27.5 -68t-66.5 -28zM325 723q26 0 44.5 19t18.5 45t-18.5 45t-44.5 19t-45 -19t-19 -45 t19 -45t45 -19z" />
    +<glyph unicode="&#xc6;" horiz-adv-x="939" d="M879 0h-423v164h-274l-102 -164h-66l421 667h444v-52h-365v-247h358v-52h-358v-264h365v-52zM456 216v390l-245 -390h245z" />
    +<glyph unicode="&#xc7;" horiz-adv-x="672" d="M390 -185q-63 0 -97 29l16 32q35 -28 80 -28q28 0 46.5 12t18.5 33q0 39 -41 39q-25 0 -40 -17l-28 16l21 58q-133 11 -220.5 106t-87.5 238q0 152 97 248.5t241 96.5q148 0 243 -118l-48 -31q-32 44 -84 70.5t-111 26.5q-119 0 -198.5 -82t-79.5 -211 q0 -128 79.5 -210.5t198.5 -82.5q59 0 111 26.5t84 70.5l48 -30q-94 -116 -236 -119l-15 -41q15 12 37 12q29 0 47.5 -18t18.5 -48q0 -35 -29 -56.5t-72 -21.5z" />
    +<glyph unicode="&#xc8;" horiz-adv-x="564" d="M506 0h-423v667h423v-52h-366v-247h359v-52h-359v-264h366v-52zM349 723h-44l-172 144h62z" />
    +<glyph unicode="&#xc9;" horiz-adv-x="564" d="M456 867l-172 -144h-44l154 144h62zM506 0h-423v667h423v-52h-366v-247h359v-52h-359v-264h366v-52z" />
    +<glyph unicode="&#xca;" horiz-adv-x="564" d="M418 723h-40l-86 113l-85 -113h-39l97 144h54zM506 0h-423v667h423v-52h-366v-247h359v-52h-359v-264h366v-52z" />
    +<glyph unicode="&#xcb;" horiz-adv-x="564" d="M432 768q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM228 768q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM506 0h-423v667h423v-52h-366v-247h359v-52h-359v-264h366v-52z" />
    +<glyph unicode="&#xcc;" horiz-adv-x="223" d="M140 0h-57v667h57v-667zM166 723h-44l-172 144h62z" />
    +<glyph unicode="&#xcd;" horiz-adv-x="223" d="M140 0h-57v667h57v-667zM274 867l-172 -144h-44l154 144h62z" />
    +<glyph unicode="&#xce;" horiz-adv-x="223" d="M238 723h-40l-86 113l-85 -113h-39l97 144h54zM140 0h-57v667h57v-667z" />
    +<glyph unicode="&#xcf;" horiz-adv-x="223" d="M251 768q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM47 768q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM140 0h-57v667h57v-667z" />
    +<glyph unicode="&#xd0;" horiz-adv-x="721" d="M326 0h-213v309h-102v44h102v314h213q151 0 244 -96.5t93 -237.5q0 -142 -92.5 -237.5t-244.5 -95.5zM326 52q128 0 202.5 80t74.5 201t-74 201.5t-203 80.5h-156v-262h179v-44h-179v-257h156z" />
    +<glyph unicode="&#xd1;" horiz-adv-x="699" d="M410 721q-25 0 -43.5 16t-27.5 35.5t-23.5 35.5t-31.5 16q-24 0 -39 -24t-15 -73h-35q0 58 24.5 96t68.5 38q25 0 43.5 -16t27 -35t23 -35t31.5 -16q24 0 38.5 24t14.5 72h36q0 -59 -24 -96.5t-68 -37.5zM616 0h-56l-420 573v-573h-57v667h58l418 -565v565h57v-667z" />
    +<glyph unicode="&#xd2;" horiz-adv-x="764" d="M437 723h-44l-172 144h62zM382 -12q-145 0 -234.5 98t-89.5 247t89.5 247t234.5 98q144 0 234 -98t90 -247t-90 -247t-234 -98zM382 40q118 0 191 82.5t73 210.5q0 129 -72.5 211t-191.5 82q-120 0 -192 -82t-72 -211q0 -128 72 -210.5t192 -82.5z" />
    +<glyph unicode="&#xd3;" horiz-adv-x="764" d="M544 867l-172 -144h-44l154 144h62zM382 -12q-145 0 -234.5 98t-89.5 247t89.5 247t234.5 98q144 0 234 -98t90 -247t-90 -247t-234 -98zM382 40q118 0 191 82.5t73 210.5q0 129 -72.5 211t-191.5 82q-120 0 -192 -82t-72 -211q0 -128 72 -210.5t192 -82.5z" />
    +<glyph unicode="&#xd4;" horiz-adv-x="764" d="M509 723h-40l-86 113l-85 -113h-39l97 144h54zM382 -12q-145 0 -234.5 98t-89.5 247t89.5 247t234.5 98q144 0 234 -98t90 -247t-90 -247t-234 -98zM382 40q118 0 191 82.5t73 210.5q0 129 -72.5 211t-191.5 82q-120 0 -192 -82t-72 -211q0 -128 72 -210.5t192 -82.5z " />
    +<glyph unicode="&#xd5;" horiz-adv-x="764" d="M382 -12q-145 0 -234.5 98t-89.5 247t89.5 247t234.5 98q144 0 234 -98t90 -247t-90 -247t-234 -98zM382 40q118 0 191 82.5t73 210.5q0 129 -72.5 211t-191.5 82q-120 0 -192 -82t-72 -211q0 -128 72 -210.5t192 -82.5zM444 721q-25 0 -43.5 16t-27.5 35.5t-23.5 35.5 t-31.5 16q-24 0 -39 -24t-15 -73h-35q0 58 24.5 96t68.5 38q25 0 43.5 -16t27 -35t23 -35t31.5 -16q24 0 38.5 24t14.5 72h36q0 -59 -24 -96.5t-68 -37.5z" />
    +<glyph unicode="&#xd6;" horiz-adv-x="764" d="M520 768q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM316 768q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM382 -12q-145 0 -234.5 98t-89.5 247t89.5 247t234.5 98q144 0 234 -98t90 -247t-90 -247t-234 -98zM382 40 q118 0 191 82.5t73 210.5q0 129 -72.5 211t-191.5 82q-120 0 -192 -82t-72 -211q0 -128 72 -210.5t192 -82.5z" />
    +<glyph unicode="&#xd7;" horiz-adv-x="496" d="M400 153l-152 152l-151 -152l-30 29l152 152l-152 152l30 29l151 -152l152 152l29 -29l-152 -152l152 -152z" />
    +<glyph unicode="&#xd8;" horiz-adv-x="764" d="M382 -12q-93 0 -168 44l-20 -32h-51l36 56q-58 47 -89.5 119t-31.5 158q0 149 89.5 247t234.5 98q89 0 164 -43l20 32h52l-36 -56q59 -47 91.5 -119.5t32.5 -158.5q0 -149 -90 -247t-234 -98zM382 40q118 0 191 82.5t73 210.5q0 149 -93 231l-310 -487q60 -37 139 -37z M118 333q0 -147 91 -230l308 487q-59 36 -135 36q-120 0 -192 -82t-72 -211z" />
    +<glyph unicode="&#xd9;" horiz-adv-x="686" d="M343 -12q-126 0 -193 71.5t-67 196.5v411h58v-410q0 -102 52.5 -159.5t149.5 -57.5q98 0 150 57t52 160v410h58v-411q0 -126 -66.5 -197t-193.5 -71zM398 723h-44l-172 144h62z" />
    +<glyph unicode="&#xda;" horiz-adv-x="686" d="M505 867l-172 -144h-44l154 144h62zM343 -12q-126 0 -193 71.5t-67 196.5v411h58v-410q0 -102 52.5 -159.5t149.5 -57.5q98 0 150 57t52 160v410h58v-411q0 -126 -66.5 -197t-193.5 -71z" />
    +<glyph unicode="&#xdb;" horiz-adv-x="686" d="M471 723h-40l-86 113l-85 -113h-39l97 144h54zM343 -12q-126 0 -193 71.5t-67 196.5v411h58v-410q0 -102 52.5 -159.5t149.5 -57.5q98 0 150 57t52 160v410h58v-411q0 -126 -66.5 -197t-193.5 -71z" />
    +<glyph unicode="&#xdc;" horiz-adv-x="686" d="M483 768q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM279 768q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM343 -12q-126 0 -193 71.5t-67 196.5v411h58v-410q0 -102 52.5 -159.5t149.5 -57.5q98 0 150 57t52 160v410h58v-411 q0 -126 -66.5 -197t-193.5 -71z" />
    +<glyph unicode="&#xdd;" horiz-adv-x="618" d="M338 0h-58v285l-265 382h69l225 -328l225 328h69l-265 -382v-285zM471 867l-172 -144h-44l154 144h62z" />
    +<glyph unicode="&#xde;" d="M140 0h-57v667h57v-124h193q93 0 147 -57t54 -139t-54.5 -138t-146.5 -56h-193v-153zM327 205q66 0 106.5 39.5t40.5 102.5t-41 103.5t-106 40.5h-187v-286h187z" />
    +<glyph unicode="&#xdf;" horiz-adv-x="578" d="M557 131q0 -60 -46 -101.5t-134 -41.5q-65 0 -105.5 20t-75.5 57l31 38q54 -71 150 -71q62 0 95.5 28.5t33.5 69.5q0 36 -31 57.5t-75 32.5t-87.5 23.5t-74.5 41.5t-31 77q0 37 24.5 66t53.5 44t53.5 37t24.5 46q0 34 -33.5 54.5t-74.5 20.5q-51 0 -86.5 -33t-35.5 -88 v-509h-52v509q0 72 48 120t126 48q66 0 113.5 -32.5t47.5 -85.5q0 -30 -16.5 -53t-39.5 -38l-46 -29q-23 -14 -39.5 -33.5t-16.5 -44.5q0 -33 31 -51.5t75 -28.5t87.5 -22.5t74.5 -44.5t31 -83z" />
    +<glyph unicode="&#xe0;" horiz-adv-x="521" d="M440 0h-52v57q-63 -69 -164 -69q-67 0 -118 43.5t-51 117.5q0 75 50.5 117.5t118.5 42.5q102 0 164 -69v98q0 52 -37 81.5t-93 29.5q-89 0 -151 -71l-29 36q75 81 186 81q78 0 127 -39t49 -116v-340zM242 29q95 0 146 66v106q-52 67 -146 67q-59 0 -95.5 -34t-36.5 -86 t36.5 -85.5t95.5 -33.5zM318 556h-44l-172 144h62z" />
    +<glyph unicode="&#xe1;" horiz-adv-x="521" d="M440 0h-52v57q-63 -69 -164 -69q-67 0 -118 43.5t-51 117.5q0 75 50.5 117.5t118.5 42.5q102 0 164 -69v98q0 52 -37 81.5t-93 29.5q-89 0 -151 -71l-29 36q75 81 186 81q78 0 127 -39t49 -116v-340zM242 29q95 0 146 66v106q-52 67 -146 67q-59 0 -95.5 -34t-36.5 -86 t36.5 -85.5t95.5 -33.5zM426 700l-172 -144h-44l154 144h62z" />
    +<glyph unicode="&#xe2;" horiz-adv-x="521" d="M440 0h-52v57q-63 -69 -164 -69q-67 0 -118 43.5t-51 117.5q0 75 50.5 117.5t118.5 42.5q102 0 164 -69v98q0 52 -37 81.5t-93 29.5q-89 0 -151 -71l-29 36q75 81 186 81q78 0 127 -39t49 -116v-340zM242 29q95 0 146 66v106q-52 67 -146 67q-59 0 -95.5 -34t-36.5 -86 t36.5 -85.5t95.5 -33.5zM390 556h-40l-86 113l-85 -113h-39l97 144h54z" />
    +<glyph unicode="&#xe3;" horiz-adv-x="521" d="M440 0h-52v57q-63 -69 -164 -69q-67 0 -118 43.5t-51 117.5q0 75 50.5 117.5t118.5 42.5q102 0 164 -69v98q0 52 -37 81.5t-93 29.5q-89 0 -151 -71l-29 36q75 81 186 81q78 0 127 -39t49 -116v-340zM242 29q95 0 146 66v106q-52 67 -146 67q-59 0 -95.5 -34t-36.5 -86 t36.5 -85.5t95.5 -33.5zM325 554q-25 0 -43.5 16t-27.5 35.5t-23.5 35.5t-31.5 16q-24 0 -39 -24t-15 -73h-35q0 58 24.5 96t68.5 38q25 0 43.5 -16t27 -35t23 -35t31.5 -16q24 0 38.5 24t14.5 72h36q0 -59 -24 -96.5t-68 -37.5z" />
    +<glyph unicode="&#xe4;" horiz-adv-x="521" d="M440 0h-52v57q-63 -69 -164 -69q-67 0 -118 43.5t-51 117.5q0 75 50.5 117.5t118.5 42.5q102 0 164 -69v98q0 52 -37 81.5t-93 29.5q-89 0 -151 -71l-29 36q75 81 186 81q78 0 127 -39t49 -116v-340zM242 29q95 0 146 66v106q-52 67 -146 67q-59 0 -95.5 -34t-36.5 -86 t36.5 -85.5t95.5 -33.5zM401 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM197 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26z" />
    +<glyph unicode="&#xe5;" horiz-adv-x="521" d="M440 0h-52v57q-63 -69 -164 -69q-67 0 -118 43.5t-51 117.5q0 75 50.5 117.5t118.5 42.5q102 0 164 -69v98q0 52 -37 81.5t-93 29.5q-89 0 -151 -71l-29 36q75 81 186 81q78 0 127 -39t49 -116v-340zM242 29q95 0 146 66v106q-52 67 -146 67q-59 0 -95.5 -34t-36.5 -86 t36.5 -85.5t95.5 -33.5zM263 548q-40 0 -68 28t-28 68q0 39 28 67.5t68 28.5q39 0 66.5 -28.5t27.5 -67.5q0 -40 -27.5 -68t-66.5 -28zM263 580q26 0 44.5 19t18.5 45t-18.5 45t-44.5 19t-45 -19t-19 -45t19 -45t45 -19z" />
    +<glyph unicode="&#xe6;" horiz-adv-x="897" d="M844 225h-379q4 -82 51 -137t123 -55q89 0 148 67l27 -34q-72 -78 -175 -78q-67 0 -118 33t-78 96q-23 -59 -75.5 -94t-119.5 -35q-84 0 -138.5 43t-54.5 118t52 117.5t127 42.5q111 0 179 -67v96q0 53 -38.5 82t-102.5 29q-97 0 -165 -71l-29 36q75 81 202 81 q63 0 111.5 -27.5t58.5 -87.5q26 51 72.5 83t107.5 32q101 0 157.5 -73t56.5 -183v-14zM465 266h326q0 71 -42 127.5t-121 56.5q-73 0 -116.5 -57t-46.5 -127zM413 184v16q-57 68 -159 68q-65 0 -104.5 -33t-39.5 -84q0 -52 39.5 -85t104.5 -33q69 0 114 45.5t45 105.5z" />
    +<glyph unicode="&#xe7;" horiz-adv-x="494" d="M289 -187q-63 0 -97 29l16 32q35 -28 80 -28q28 0 46.5 12t18.5 33q0 39 -41 39q-25 0 -40 -17l-28 16l22 60q-96 8 -154.5 79.5t-58.5 173.5q0 108 65 180.5t170 72.5q106 0 171 -82l-36 -32q-49 67 -132 67t-132.5 -58.5t-49.5 -147.5t49.5 -148t132.5 -59q82 0 132 68 l36 -32q-61 -77 -156 -82l-16 -44q15 12 37 12q29 0 47.5 -18t18.5 -48q0 -35 -29 -56.5t-72 -21.5z" />
    +<glyph unicode="&#xe8;" horiz-adv-x="567" d="M295 -12q-106 0 -174 71t-68 183q0 106 66.5 179.5t166.5 73.5q106 0 167 -73.5t61 -182.5v-14h-404q4 -82 55 -137t134 -55q96 0 158 67l27 -34q-75 -78 -189 -78zM461 266q-1 70 -46.5 127t-129.5 57q-79 0 -125.5 -56.5t-49.5 -127.5h351zM341 556h-44l-172 144h62z " />
    +<glyph unicode="&#xe9;" horiz-adv-x="567" d="M448 700l-172 -144h-44l154 144h62zM295 -12q-106 0 -174 71t-68 183q0 106 66.5 179.5t166.5 73.5q106 0 167 -73.5t61 -182.5v-14h-404q4 -82 55 -137t134 -55q96 0 158 67l27 -34q-75 -78 -189 -78zM461 266q-1 70 -46.5 127t-129.5 57q-79 0 -125.5 -56.5 t-49.5 -127.5h351z" />
    +<glyph unicode="&#xea;" horiz-adv-x="567" d="M413 556h-40l-86 113l-85 -113h-39l97 144h54zM295 -12q-106 0 -174 71t-68 183q0 106 66.5 179.5t166.5 73.5q106 0 167 -73.5t61 -182.5v-14h-404q4 -82 55 -137t134 -55q96 0 158 67l27 -34q-75 -78 -189 -78zM461 266q-1 70 -46.5 127t-129.5 57q-79 0 -125.5 -56.5 t-49.5 -127.5h351z" />
    +<glyph unicode="&#xeb;" horiz-adv-x="567" d="M426 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM222 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM295 -12q-106 0 -174 71t-68 183q0 106 66.5 179.5t166.5 73.5q106 0 167 -73.5t61 -182.5v-14h-404q4 -82 55 -137 t134 -55q96 0 158 67l27 -34q-75 -78 -189 -78zM461 266q-1 70 -46.5 127t-129.5 57q-79 0 -125.5 -56.5t-49.5 -127.5h351z" />
    +<glyph unicode="&#xec;" horiz-adv-x="214" d="M133 0h-52v483h52v-483zM161 556h-44l-172 144h62z" />
    +<glyph unicode="&#xed;" horiz-adv-x="214" d="M269 700l-172 -144h-44l154 144h62zM133 0h-52v483h52v-483z" />
    +<glyph unicode="&#xee;" horiz-adv-x="214" d="M232 556h-40l-86 113l-85 -113h-39l97 144h54zM133 0h-52v483h52v-483z" />
    +<glyph unicode="&#xef;" horiz-adv-x="214" d="M246 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM42 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM133 0h-52v483h52v-483z" />
    +<glyph unicode="&#xf0;" d="M130 510l-14 34l121 53l-81 53l30 44q62 -38 108 -72l109 48l14 -33l-91 -40q192 -162 192 -353q0 -111 -64 -183.5t-169 -72.5q-103 0 -167.5 71t-64.5 179q0 107 62 178t161 71q96 0 157 -87q-58 95 -161 173zM285 35q82 0 129.5 59.5t47.5 143.5q0 83 -47.5 142.5 t-129.5 59.5q-81 0 -128.5 -59.5t-47.5 -142.5q0 -84 47.5 -143.5t128.5 -59.5z" />
    +<glyph unicode="&#xf1;" horiz-adv-x="540" d="M459 0h-52v327q0 66 -30 93.5t-87 27.5q-45 0 -89 -24t-68 -59v-365h-52v483h52v-73q29 34 77 59.5t97 25.5q152 0 152 -157v-338zM332 554q-25 0 -43.5 16t-27.5 35.5t-23.5 35.5t-31.5 16q-24 0 -39 -24t-15 -73h-35q0 58 24.5 96t68.5 38q25 0 43.5 -16t27 -35t23 -35 t31.5 -16q24 0 38.5 24t14.5 72h36q0 -59 -24 -96.5t-68 -37.5z" />
    +<glyph unicode="&#xf2;" d="M285 -12q-104 0 -168 73t-64 181t64 180.5t168 72.5q105 0 169 -72.5t64 -180.5t-64 -181t-169 -73zM285 35q82 0 129.5 60.5t47.5 146.5q0 85 -47.5 145.5t-129.5 60.5q-81 0 -128.5 -60.5t-47.5 -145.5t47.5 -146t128.5 -61zM340 556h-44l-172 144h62z" />
    +<glyph unicode="&#xf3;" d="M448 700l-172 -144h-44l154 144h62zM285 -12q-104 0 -168 73t-64 181t64 180.5t168 72.5q105 0 169 -72.5t64 -180.5t-64 -181t-169 -73zM285 35q82 0 129.5 60.5t47.5 146.5q0 85 -47.5 145.5t-129.5 60.5q-81 0 -128.5 -60.5t-47.5 -145.5t47.5 -146t128.5 -61z" />
    +<glyph unicode="&#xf4;" d="M412 556h-40l-86 113l-85 -113h-39l97 144h54zM285 -12q-104 0 -168 73t-64 181t64 180.5t168 72.5q105 0 169 -72.5t64 -180.5t-64 -181t-169 -73zM285 35q82 0 129.5 60.5t47.5 146.5q0 85 -47.5 145.5t-129.5 60.5q-81 0 -128.5 -60.5t-47.5 -145.5t47.5 -146 t128.5 -61z" />
    +<glyph unicode="&#xf5;" d="M285 -12q-104 0 -168 73t-64 181t64 180.5t168 72.5q105 0 169 -72.5t64 -180.5t-64 -181t-169 -73zM285 35q82 0 129.5 60.5t47.5 146.5q0 85 -47.5 145.5t-129.5 60.5q-81 0 -128.5 -60.5t-47.5 -145.5t47.5 -146t128.5 -61zM347 554q-25 0 -43.5 16t-27.5 35.5 t-23.5 35.5t-31.5 16q-24 0 -39 -24t-15 -73h-35q0 58 24.5 96t68.5 38q25 0 43.5 -16t27 -35t23 -35t31.5 -16q24 0 38.5 24t14.5 72h36q0 -59 -24 -96.5t-68 -37.5z" />
    +<glyph unicode="&#xf6;" d="M425 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM221 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM285 -12q-104 0 -168 73t-64 181t64 180.5t168 72.5q105 0 169 -72.5t64 -180.5t-64 -181t-169 -73zM285 35 q82 0 129.5 60.5t47.5 146.5q0 85 -47.5 145.5t-129.5 60.5q-81 0 -128.5 -60.5t-47.5 -145.5t47.5 -146t128.5 -61z" />
    +<glyph unicode="&#xf7;" horiz-adv-x="511" d="M295 531q0 -16 -11.5 -28t-27.5 -12t-28 12t-12 28t11.5 27.5t28.5 11.5q16 0 27.5 -11.5t11.5 -27.5zM482 316h-453v42h453v-42zM295 138q0 -16 -11.5 -27.5t-27.5 -11.5t-28 11.5t-12 27.5t12 28t28 12t27.5 -12t11.5 -28z" />
    +<glyph unicode="&#xf8;" d="M118 0h-44l45 59q-66 72 -66 183q0 108 64 180.5t168 72.5q78 0 135 -43l24 31h44l-41 -53q71 -73 71 -188q0 -108 -64 -181t-169 -73q-81 0 -141 47zM285 35q82 0 129.5 60.5t47.5 146.5q0 85 -48 145l-238 -311q44 -41 109 -41zM109 242q0 -82 43 -140l237 310 q-44 36 -104 36q-81 0 -128.5 -60.5t-47.5 -145.5z" />
    +<glyph unicode="&#xf9;" horiz-adv-x="540" d="M459 0h-52v71q-33 -36 -79 -59.5t-95 -23.5q-76 0 -114 37.5t-38 117.5v340h52v-328q0 -67 30 -93.5t87 -26.5q45 0 88.5 23t68.5 57v368h52v-483zM324 556h-44l-172 144h62z" />
    +<glyph unicode="&#xfa;" horiz-adv-x="540" d="M432 700l-172 -144h-44l154 144h62zM459 0h-52v71q-33 -36 -79 -59.5t-95 -23.5q-76 0 -114 37.5t-38 117.5v340h52v-328q0 -67 30 -93.5t87 -26.5q45 0 88.5 23t68.5 57v368h52v-483z" />
    +<glyph unicode="&#xfb;" horiz-adv-x="540" d="M395 556h-40l-86 113l-85 -113h-39l97 144h54zM459 0h-52v71q-33 -36 -79 -59.5t-95 -23.5q-76 0 -114 37.5t-38 117.5v340h52v-328q0 -67 30 -93.5t87 -26.5q45 0 88.5 23t68.5 57v368h52v-483z" />
    +<glyph unicode="&#xfc;" horiz-adv-x="540" d="M411 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM207 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM459 0h-52v71q-33 -36 -79 -59.5t-95 -23.5q-76 0 -114 37.5t-38 117.5v340h52v-328q0 -67 30 -93.5t87 -26.5 q45 0 88.5 23t68.5 57v368h52v-483z" />
    +<glyph unicode="&#xfd;" horiz-adv-x="481" d="M49 -189l9 48q18 -8 42 -8q49 0 73 59l38 86l-204 487h58l176 -422l174 422h59l-250 -589q-38 -90 -124 -90q-28 0 -51 7zM403 700l-172 -144h-44l154 144h62z" />
    +<glyph unicode="&#xfe;" horiz-adv-x="567" d="M301 -12q-104 0 -168 90v-262h-52v851h52v-260q27 39 71.5 63.5t96.5 24.5q97 0 156.5 -68.5t59.5 -184.5q0 -115 -59.5 -184.5t-156.5 -69.5zM292 35q79 0 124 58t45 149q0 90 -45 148t-124 58q-49 0 -93 -25t-66 -61v-239q22 -36 66.5 -62t92.5 -26z" />
    +<glyph unicode="&#xff;" horiz-adv-x="481" d="M49 -189l9 48q18 -8 42 -8q49 0 73 59l38 86l-204 487h58l176 -422l174 422h59l-250 -589q-38 -90 -124 -90q-28 0 -51 7zM380 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM176 601q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11 t11 -26z" />
    +<glyph unicode="&#x152;" horiz-adv-x="1115" d="M1055 0h-423v139q-37 -73 -105.5 -112t-147.5 -39q-143 0 -232 98t-89 247t89 246.5t232 97.5q79 0 147.5 -39t105.5 -110v139h423v-52h-365v-247h358v-52h-358v-264h365v-52zM632 221v225q-31 88 -96.5 133.5t-152.5 45.5q-121 0 -193 -81.5t-72 -210.5t72.5 -211 t192.5 -82q86 0 151.5 46.5t97.5 134.5z" />
    +<glyph unicode="&#x153;" horiz-adv-x="975" d="M922 225h-403q3 -82 54 -137t134 -55q95 0 159 67l27 -34q-76 -78 -189 -78q-89 0 -142 46.5t-72 104.5q-10 -25 -23.5 -47.5t-37.5 -48t-61.5 -40.5t-82.5 -15q-104 0 -168 73t-64 181t64 180.5t168 72.5q46 0 83.5 -15.5t61.5 -40.5t38 -48t22 -47q19 55 70.5 103 t133.5 48q106 0 167 -73.5t61 -182.5v-14zM518 266h351q-1 70 -46.5 127t-129.5 57q-79 0 -125.5 -56.5t-49.5 -127.5zM462 242q0 86 -48 146t-129 60q-80 0 -128 -60t-48 -146t48 -147t128 -61q81 0 129 60.5t48 147.5z" />
    +<glyph unicode="&#x178;" horiz-adv-x="618" d="M451 768q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM247 768q0 -15 -11 -26t-26 -11t-26 11t-11 26t11 26t26 11t26 -11t11 -26zM338 0h-58v285l-265 382h69l225 -328l225 328h69l-265 -382v-285z" />
    +<glyph unicode="&#x2c6;" horiz-adv-x="250" d="M250 556h-40l-86 113l-85 -113h-39l97 144h54z" />
    +<glyph unicode="&#x2dc;" horiz-adv-x="307" d="M215 554q-25 0 -43.5 16t-27.5 35.5t-23.5 35.5t-31.5 16q-24 0 -39 -24t-15 -73h-35q0 58 24.5 96t68.5 38q25 0 43.5 -16t27 -35t23 -35t31.5 -16q24 0 38.5 24t14.5 72h36q0 -59 -24 -96.5t-68 -37.5z" />
    +<glyph unicode="&#x2000;" horiz-adv-x="441" />
    +<glyph unicode="&#x2001;" horiz-adv-x="883" />
    +<glyph unicode="&#x2002;" horiz-adv-x="441" />
    +<glyph unicode="&#x2003;" horiz-adv-x="883" />
    +<glyph unicode="&#x2004;" horiz-adv-x="294" />
    +<glyph unicode="&#x2005;" horiz-adv-x="220" />
    +<glyph unicode="&#x2006;" horiz-adv-x="147" />
    +<glyph unicode="&#x2007;" horiz-adv-x="147" />
    +<glyph unicode="&#x2008;" horiz-adv-x="110" />
    +<glyph unicode="&#x2009;" horiz-adv-x="176" />
    +<glyph unicode="&#x200a;" horiz-adv-x="49" />
    +<glyph unicode="&#x2010;" horiz-adv-x="300" d="M270 218h-240v48h240v-48z" />
    +<glyph unicode="&#x2011;" horiz-adv-x="300" d="M270 218h-240v48h240v-48z" />
    +<glyph unicode="&#x2013;" horiz-adv-x="593" d="M563 218h-533v48h533v-48z" />
    +<glyph unicode="&#x2014;" horiz-adv-x="833" d="M803 218h-773v48h773v-48z" />
    +<glyph unicode="&#x2018;" horiz-adv-x="219" d="M51 541q0 40 20.5 77t51.5 59l29 -24q-24 -16 -40 -42.5t-18 -50.5q0 2 10 2q18 0 29.5 -12t11.5 -30q0 -17 -12.5 -30t-30.5 -13q-21 0 -36 17t-15 47z" />
    +<glyph unicode="&#x2019;" horiz-adv-x="219" d="M159 613q0 -40 -20.5 -77.5t-51.5 -58.5l-29 24q24 16 40 42.5t18 50.5q0 -2 -10 -2q-18 0 -29.5 12t-11.5 30q0 17 12.5 30t30.5 13q21 0 36 -17t15 -47z" />
    +<glyph unicode="&#x201a;" horiz-adv-x="219" d="M159 14q0 -40 -20.5 -77.5t-51.5 -59.5l-29 25q24 16 40 42.5t18 49.5q-7 -1 -10 -1q-18 0 -29.5 12t-11.5 30q0 17 12.5 30t30.5 13q21 0 36 -17t15 -47z" />
    +<glyph unicode="&#x201c;" horiz-adv-x="360" d="M60 541q0 40 20 77t51 59l30 -24q-24 -17 -41 -43t-18 -50q2 2 11 2q17 0 28.5 -12.5t11.5 -29.5q0 -18 -12.5 -30.5t-30.5 -12.5q-21 0 -35.5 17t-14.5 47zM202 541q0 40 20 77t51 59l30 -24q-24 -17 -41 -43t-18 -50q2 2 11 2q17 0 28.5 -12.5t11.5 -29.5 q0 -18 -12.5 -30.5t-30.5 -12.5q-21 0 -35.5 17t-14.5 47z" />
    +<glyph unicode="&#x201d;" horiz-adv-x="360" d="M300 613q0 -41 -20 -78t-51 -58l-30 24q24 17 41 43t18 50q-2 -2 -11 -2q-17 0 -28.5 12t-11.5 30t12.5 30.5t30.5 12.5q21 0 35.5 -17t14.5 -47zM159 613q0 -40 -20.5 -77.5t-51.5 -58.5l-29 24q24 16 40 42.5t18 50.5q0 -2 -10 -2q-18 0 -29.5 12t-11.5 30 q0 17 12.5 30t30.5 13q21 0 36 -17t15 -47z" />
    +<glyph unicode="&#x201e;" horiz-adv-x="361" d="M159 14q0 -40 -20.5 -77.5t-51.5 -59.5l-29 25q24 16 40 42.5t18 49.5q-7 -1 -10 -1q-18 0 -29.5 12t-11.5 30q0 17 12.5 30t30.5 13q21 0 36 -17t15 -47zM300 14q0 -40 -20 -77.5t-51 -59.5l-30 25q24 16 40.5 42.5t18.5 49.5h-4q-5 -1 -7 -1q-17 0 -28.5 12t-11.5 30 t12.5 30.5t30.5 12.5q21 0 35.5 -17t14.5 -47z" />
    +<glyph unicode="&#x2022;" horiz-adv-x="358" d="M283 242q0 -42 -30 -72t-73 -30t-73 30t-30 72q0 43 30 73t73 30t73 -30t30 -73z" />
    +<glyph unicode="&#x2026;" horiz-adv-x="657" d="M153 35q0 -18 -13 -31t-31 -13t-31 13t-13 31q0 17 13 30t31 13t31 -13t13 -30zM372 35q0 -18 -13 -31t-31 -13t-31 13t-13 31q0 17 13 30t31 13t31 -13t13 -30zM591 35q0 -18 -13 -31t-31 -13t-30.5 13t-12.5 31q0 17 12.5 30t30.5 13t31 -13t13 -30z" />
    +<glyph unicode="&#x202f;" horiz-adv-x="176" />
    +<glyph unicode="&#x2039;" horiz-adv-x="277" d="M247 63h-57l-160 180l160 177h57l-160 -177z" />
    +<glyph unicode="&#x203a;" horiz-adv-x="277" d="M247 243l-160 -180h-57l160 180l-160 177h57z" />
    +<glyph unicode="&#x205f;" horiz-adv-x="220" />
    +<glyph unicode="&#x20ac;" horiz-adv-x="690" d="M417 -12q-121 0 -210.5 69t-117.5 185h-54v41h47q-3 24 -3 50q0 27 3 52h-47v41h55q28 114 117.5 183t209.5 69q148 0 243 -118l-48 -31q-32 44 -84 70.5t-111 26.5q-95 0 -167.5 -54.5t-98.5 -145.5h326v-41h-335q-3 -25 -3 -52q0 -26 3 -50h335v-41h-326 q26 -92 98 -147t168 -55q59 0 111 26.5t84 70.5l48 -30q-96 -119 -243 -119z" />
    +<glyph unicode="&#x2122;" horiz-adv-x="454" d="M419 447h-28v182l-75 -182h-8l-75 182v-182h-28v220h43l64 -160l64 160h43v-220zM169 641h-62v-194h-28v194h-62v26h152v-26z" />
    +</font>
    +</defs></svg> 
    \ No newline at end of file
    diff --git a/stylesheets/ProximaNova-Light-webfont.ttf b/stylesheets/ProximaNova-Light-webfont.ttf
    new file mode 100644
    index 0000000..22886ec
    Binary files /dev/null and b/stylesheets/ProximaNova-Light-webfont.ttf differ
    diff --git a/stylesheets/ProximaNova-Light-webfont.woff b/stylesheets/ProximaNova-Light-webfont.woff
    new file mode 100644
    index 0000000..649cd96
    Binary files /dev/null and b/stylesheets/ProximaNova-Light-webfont.woff differ
    diff --git a/stylesheets/ProximaNova-Reg-webfont.eot b/stylesheets/ProximaNova-Reg-webfont.eot
    new file mode 100644
    index 0000000..c119d7c
    Binary files /dev/null and b/stylesheets/ProximaNova-Reg-webfont.eot differ
    diff --git a/stylesheets/ProximaNova-Reg-webfont.svg b/stylesheets/ProximaNova-Reg-webfont.svg
    new file mode 100644
    index 0000000..e465e36
    --- /dev/null
    +++ b/stylesheets/ProximaNova-Reg-webfont.svg
    @@ -0,0 +1,238 @@
    +<?xml version="1.0" standalone="no"?>
    +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
    +<svg xmlns="http://www.w3.org/2000/svg">
    +<metadata>
    +This is a custom SVG webfont generated by Fontspring.
    +</metadata>
    +<defs>
    +<font id="webfontahTfxwb5" horiz-adv-x="572" >
    +<font-face units-per-em="1000" ascent="790" descent="-210" />
    +<missing-glyph horiz-adv-x="258" />
    +<glyph unicode=" "  horiz-adv-x="258" />
    +<glyph unicode="&#x09;" horiz-adv-x="258" />
    +<glyph unicode="&#xa0;" horiz-adv-x="258" />
    +<glyph unicode="!" horiz-adv-x="230" d="M146 187h-62l-16 480h94zM115 -10q-22 0 -38.5 16.5t-16.5 38.5q0 23 16 39t39 16t39 -16t16 -39q0 -22 -16.5 -38.5t-38.5 -16.5z" />
    +<glyph unicode="&#x22;" horiz-adv-x="343" d="M118 412h-37q-27 205 -27 219q0 19 13 32.5t32 13.5t32.5 -13.5t13.5 -32.5zM263 412h-37q-27 205 -27 219q0 19 13.5 32.5t32.5 13.5t32 -13.5t13 -32.5z" />
    +<glyph unicode="#" horiz-adv-x="590" d="M300 0h-61l61 181h-111l-60 -181h-62l61 181h-106l17 53h107l66 199h-108l16 52h110l60 182h62l-60 -182h110l60 182h61l-61 -182h107l-15 -52h-109l-67 -199h111l-16 -53h-113zM317 234l66 199h-110l-66 -199h110z" />
    +<glyph unicode="$" horiz-adv-x="593" d="M271 -100v89q-144 8 -229 105l49 63q73 -82 180 -94v244q-38 10 -61.5 18t-54.5 23.5t-49 33.5t-30.5 46t-12.5 64q0 77 58 128t150 56v92h61v-93q121 -12 197 -91l-50 -61q-59 63 -147 76v-217q47 -13 78 -25.5t65.5 -35t51.5 -57t17 -80.5q0 -76 -52 -131.5t-160 -63.5 v-89h-61zM458 177q0 45 -32.5 70t-93.5 43v-227q65 7 95.5 40t30.5 74zM149 497q0 -38 31 -59.5t91 -39.5v204q-54 -4 -88 -32.5t-34 -72.5z" />
    +<glyph unicode="%" horiz-adv-x="731" d="M191 348q-71 0 -115.5 46.5t-44.5 116.5q0 71 45 118.5t115 47.5q71 0 116.5 -47.5t45.5 -118.5q0 -70 -45.5 -116.5t-116.5 -46.5zM182 0h-54l426 667h55zM539 -12q-71 0 -115.5 46.5t-44.5 116.5q0 71 45 118.5t115 47.5q71 0 116 -47.5t45 -118.5q0 -70 -45 -116.5 t-116 -46.5zM191 398q44 0 73 32.5t29 80.5q0 50 -28.5 82.5t-73.5 32.5q-44 0 -72 -32.5t-28 -82.5q0 -48 28 -80.5t72 -32.5zM539 38q44 0 73 32.5t29 80.5q0 50 -28.5 82.5t-73.5 32.5t-73 -32.5t-28 -82.5q0 -48 28.5 -80.5t72.5 -32.5z" />
    +<glyph unicode="&#x26;" horiz-adv-x="641" d="M613 0h-104q-30 26 -73 70q-82 -82 -192 -82q-91 0 -149.5 48.5t-58.5 137.5q0 71 39 116t108 82q-51 87 -51 150q0 66 48.5 110.5t119.5 44.5q67 0 109 -34.5t42 -96.5q0 -36 -13 -64.5t-42 -52t-50.5 -36.5t-64.5 -35q32 -44 77 -95q36 -43 79 -89q44 65 72 152l65 -28 q-49 -114 -91 -172q50 -52 130 -126zM251 50q74 0 140 66q-66 69 -92 101q-46 53 -84 106q-47 -29 -72.5 -62.5t-25.5 -81.5q0 -60 39.5 -94.5t94.5 -34.5zM210 521q0 -47 40 -115q65 32 98.5 62t33.5 75q0 36 -22 55.5t-57 19.5q-39 0 -66 -27.5t-27 -69.5z" />
    +<glyph unicode="'" horiz-adv-x="199" d="M118 412h-37q-27 205 -27 219q0 19 13 32.5t32 13.5t32.5 -13.5t13.5 -32.5z" />
    +<glyph unicode="(" horiz-adv-x="248" d="M230 -164l-45 -35q-141 193 -141 442q0 248 141 442l45 -34q-53 -105 -78.5 -198t-25.5 -210t25.5 -210.5t78.5 -196.5z" />
    +<glyph unicode=")" horiz-adv-x="248" d="M62 -199l-45 35q53 103 79 196.5t26 210.5q0 118 -26 211t-79 197l45 34q142 -193 142 -442q0 -250 -142 -442z" />
    +<glyph unicode="*" horiz-adv-x="340" d="M193 389h-46l5 115l-96 -63l-22 40l102 52l-102 52l22 39l96 -62l-5 115h46l-6 -115l96 62l23 -39l-102 -52l102 -52l-23 -40l-96 63z" />
    +<glyph unicode="+" horiz-adv-x="499" d="M470 311h-192v-213h-57v213h-192v52h192v207h57v-207h192v-52z" />
    +<glyph unicode="," horiz-adv-x="230" d="M176 24q0 -44 -23 -84.5t-59 -66.5l-37 31q25 16 43.5 42.5t21.5 50.5q-4 -2 -14 -2q-21 0 -34.5 14.5t-13.5 36.5t15.5 38t37.5 16q26 0 44.5 -20.5t18.5 -55.5z" />
    +<glyph unicode="-" horiz-adv-x="300" d="M270 209h-240v66h240v-66z" />
    +<glyph unicode="." horiz-adv-x="230" d="M115 -10q-23 0 -39 16t-16 39t16 39t39 16t39 -16t16 -39t-16 -39t-39 -16z" />
    +<glyph unicode="/" horiz-adv-x="296" d="M59 -20h-59l237 707h59z" />
    +<glyph unicode="0" horiz-adv-x="612" d="M306 -12q-66 0 -116.5 30.5t-80 81.5t-44 110t-14.5 123t14.5 123t44 109.5t80 81t116.5 30.5q65 0 116 -30.5t80.5 -81t44 -109.5t14.5 -123t-14.5 -123t-44 -110t-80.5 -81.5t-116 -30.5zM306 62q60 0 100 41.5t55 99.5t15 130t-15 130t-55 99t-100 41t-100 -41 t-55 -99t-15 -130t15 -130t55 -99.5t100 -41.5z" />
    +<glyph unicode="1" horiz-adv-x="339" d="M261 0h-83v557l-107 -113l-50 51l167 172h73v-667z" />
    +<glyph unicode="2" horiz-adv-x="588" d="M512 0h-458v66l162 130q57 49 110.5 103.5t75.5 97t22 84.5q0 60 -41 91t-98 31q-115 0 -181 -84l-51 53q38 50 99.5 77.5t132.5 27.5q91 0 157.5 -51t66.5 -145q0 -93 -80 -185.5t-244 -221.5h327v-74z" />
    +<glyph unicode="3" horiz-adv-x="557" d="M266 -12q-80 0 -142 31t-95 79l49 52q30 -40 79 -64t107 -24q73 0 114.5 33.5t41.5 91.5q0 60 -44.5 89t-121.5 29q-59 0 -69 -1v76q11 -1 69 -1q68 0 111.5 27.5t43.5 82.5q0 53 -42.5 83.5t-106.5 30.5q-101 0 -176 -81l-46 52q85 103 228 103q99 0 162.5 -47.5 t63.5 -130.5q0 -66 -44 -105.5t-100 -49.5q55 -5 104.5 -48t49.5 -116q0 -85 -64 -138.5t-172 -53.5z" />
    +<glyph unicode="4" horiz-adv-x="558" d="M432 0h-83v169h-317v69l286 429h114v-425h94v-73h-94v-169zM349 242v348l-234 -348h234z" />
    +<glyph unicode="5" horiz-adv-x="590" d="M301 -12q-154 0 -235 107l51 55q69 -88 184 -88q68 0 111 41t43 102q0 65 -42.5 104.5t-110.5 39.5q-90 0 -154 -63l-61 21v360h408v-74h-325v-232q60 60 156 60q88 0 150 -57.5t62 -155.5q0 -100 -67 -160t-170 -60z" />
    +<glyph unicode="6" horiz-adv-x="591" d="M308 -12q-67 0 -118 28t-80.5 76.5t-44 109t-14.5 130.5q0 94 28 170t90.5 125.5t152.5 49.5q115 0 185 -80l-42 -62q-58 68 -143 68q-62 0 -105.5 -39t-63 -96.5t-19.5 -126.5q0 -17 1 -26q25 40 77.5 72t111.5 32q95 0 156.5 -55.5t61.5 -157.5q0 -91 -64 -154.5 t-170 -63.5zM305 62q72 0 112.5 43.5t40.5 97.5q0 70 -43 107t-111 37q-49 0 -94 -27.5t-73 -72.5q7 -74 48 -129.5t120 -55.5z" />
    +<glyph unicode="7" horiz-adv-x="515" d="M213 0h-92l269 593h-359v74h455v-57z" />
    +<glyph unicode="8" horiz-adv-x="581" d="M291 -12q-102 0 -170.5 49t-68.5 132q0 63 45.5 109t113.5 66q-64 18 -106 58.5t-42 101.5q0 84 68 128.5t160 44.5t160.5 -44.5t68.5 -128.5q0 -61 -42 -101.5t-107 -58.5q68 -20 113.5 -66t45.5 -109q0 -82 -68.5 -131.5t-170.5 -49.5zM291 378q20 3 40.5 10t46.5 19.5 t42 35t16 50.5q0 50 -41.5 80t-103.5 30q-63 0 -104 -30t-41 -80q0 -28 16 -50.5t42 -35t46.5 -19t40.5 -10.5zM291 62q64 0 109.5 32t45.5 84q0 40 -31.5 70.5t-64 43t-59.5 15.5q-27 -3 -59.5 -15.5t-64.5 -43t-32 -70.5q0 -52 45.5 -84t110.5 -32z" />
    +<glyph unicode="9" horiz-adv-x="591" d="M269 -11q-115 0 -185 80l42 62q58 -68 143 -68q64 0 108 40t62 97t18 124q0 18 -1 27q-25 -40 -77 -72t-111 -32q-95 0 -157 55.5t-62 157.5q0 90 64 154t169 64q68 0 119 -28t80.5 -77t44 -109t14.5 -131q0 -94 -28 -169.5t-90.5 -125t-152.5 -49.5zM287 319 q49 0 94.5 27t71.5 72q-6 74 -47 130t-120 56q-71 0 -112 -44t-41 -97q0 -70 43 -107t111 -37z" />
    +<glyph unicode=":" horiz-adv-x="230" d="M115 380q-23 0 -39 16t-16 39t16 39t39 16t39 -16t16 -39t-16 -39t-39 -16zM115 -10q-23 0 -39 16t-16 39t16 39t39 16t39 -16t16 -39t-16 -39t-39 -16z" />
    +<glyph unicode=";" horiz-adv-x="230" d="M115 380q-22 0 -38.5 16.5t-16.5 38.5q0 23 16 39t39 16t39 -16t16 -39q0 -22 -16.5 -38.5t-38.5 -16.5zM176 26q0 -45 -23 -85.5t-59 -65.5l-37 30q24 16 43 43t22 51q-6 -3 -14 -3q-21 0 -34.5 14.5t-13.5 36.5q0 23 15.5 39t37.5 16q26 0 44.5 -20.5t18.5 -55.5z" />
    +<glyph unicode="&#x3c;" horiz-adv-x="499" d="M470 90l-441 218v53l441 219v-63l-377 -183l377 -182v-62z" />
    +<glyph unicode="=" horiz-adv-x="499" d="M470 404h-441v53h441v-53zM470 211h-441v52h441v-52z" />
    +<glyph unicode="&#x3e;" horiz-adv-x="499" d="M470 308l-441 -218v62l376 182l-376 183v63l441 -219v-53z" />
    +<glyph unicode="?" horiz-adv-x="462" d="M203 185q-39 33 -39 81q0 30 13.5 55t33.5 41l43 34l44 32q20 15 33.5 36t13.5 46q0 40 -30.5 66.5t-87.5 26.5q-97 0 -159 -82l-50 54q79 102 217 102q89 0 142.5 -44.5t53.5 -110.5q0 -51 -30.5 -90.5t-66.5 -60.5t-66.5 -50t-30.5 -61q0 -28 27 -49zM224 -10 q-22 0 -38.5 16t-16.5 39t16.5 39t38.5 16t38.5 -16t16.5 -39t-16.5 -39t-38.5 -16z" />
    +<glyph unicode="@" horiz-adv-x="783" d="M352 -70q-136 0 -226.5 90.5t-90.5 223.5q0 160 119.5 277t277.5 117q139 0 227 -91.5t88 -225.5q0 -111 -52 -173.5t-121 -62.5q-40 0 -64.5 23.5t-26.5 57.5l-1 6q-27 -38 -69.5 -62.5t-88.5 -24.5q-69 0 -111 45t-42 118q0 102 72 176.5t163 74.5q46 0 79.5 -22 t48.5 -56l13 62h68l-57 -271q-2 -12 -2 -21q0 -25 13.5 -38.5t33.5 -13.5q38 0 73 45t35 137q0 124 -78.5 203.5t-204.5 79.5q-144 0 -251.5 -108.5t-107.5 -249.5q0 -121 81.5 -202t205.5 -81q97 0 186 56l18 -26q-98 -63 -208 -63zM344 141q87 0 149 90l29 138 q-10 29 -36.5 51.5t-66.5 22.5q-73 0 -125 -58.5t-52 -132.5q0 -49 27.5 -80t74.5 -31z" />
    +<glyph unicode="A" horiz-adv-x="658" d="M649 0h-95l-59 148h-332l-59 -148h-95l268 667h103zM470 222l-141 359l-142 -359h283z" />
    +<glyph unicode="B" horiz-adv-x="629" d="M382 0h-304v667h297q86 0 136.5 -47t50.5 -123q0 -60 -34 -101.5t-83 -51.5q53 -8 91.5 -56t38.5 -108q0 -81 -51.5 -130.5t-141.5 -49.5zM361 378q55 0 85 30t30 77t-30.5 77.5t-84.5 30.5h-200v-215h200zM365 74q58 0 91 31t33 84q0 49 -32.5 82t-91.5 33h-204v-230 h204z" />
    +<glyph unicode="C" horiz-adv-x="676" d="M394 -12q-146 0 -244.5 96.5t-98.5 248.5t98.5 248.5t244.5 96.5q160 0 253 -132l-70 -39q-29 43 -78 70t-105 27q-110 0 -183.5 -76.5t-73.5 -194.5t73.5 -194.5t183.5 -76.5q56 0 105 26.5t78 70.5l71 -39q-97 -132 -254 -132z" />
    +<glyph unicode="D" horiz-adv-x="700" d="M306 0h-228v667h228q153 0 247.5 -95t94.5 -239q0 -145 -94.5 -239t-247.5 -94zM306 74q118 0 187 74t69 185q0 112 -68 186t-188 74h-145v-519h145z" />
    +<glyph unicode="E" horiz-adv-x="569" d="M515 0h-437v667h437v-74h-354v-215h347v-74h-347v-230h354v-74z" />
    +<glyph unicode="F" horiz-adv-x="550" d="M161 0h-83v667h437v-74h-354v-215h347v-74h-347v-304z" />
    +<glyph unicode="G" horiz-adv-x="713" d="M394 -13q-145 0 -244 96.5t-99 249.5t99 249t244 96q158 0 259 -125l-66 -41q-32 42 -83.5 67t-109.5 25q-110 0 -183.5 -76.5t-73.5 -194.5t73.5 -195t183.5 -77q55 0 102.5 21.5t76.5 50.5v136h-229v74h312v-241q-103 -115 -262 -115z" />
    +<glyph unicode="H" horiz-adv-x="712" d="M634 0h-83v306h-390v-306h-83v667h83v-287h390v287h83v-667z" />
    +<glyph unicode="I" horiz-adv-x="239" d="M161 0h-83v667h83v-667z" />
    +<glyph unicode="J" horiz-adv-x="475" d="M185 -12q-108 0 -174 77l43 63q55 -66 126 -66q61 0 97.5 38.5t36.5 101.5v465h83v-466q0 -104 -59 -158.5t-153 -54.5z" />
    +<glyph unicode="K" horiz-adv-x="601" d="M584 0h-103l-253 300l-67 -76v-224h-83v667h83v-345l295 345h104l-278 -317z" />
    +<glyph unicode="L" horiz-adv-x="510" d="M471 0h-393v667h83v-593h310v-74z" />
    +<glyph unicode="M" horiz-adv-x="809" d="M731 0h-83v549l-227 -549h-34l-226 549v-549h-83v667h119l207 -502l208 502h119v-667z" />
    +<glyph unicode="N" horiz-adv-x="708" d="M630 0h-80l-389 532v-532h-83v667h85l384 -521v521h83v-667z" />
    +<glyph unicode="O" horiz-adv-x="765" d="M382 -12q-147 0 -239 98t-92 247t92 247t239 98q146 0 238.5 -98t92.5 -247t-92.5 -247t-238.5 -98zM382 62q110 0 177.5 76.5t67.5 194.5q0 119 -67.5 195t-177.5 76q-111 0 -178 -76t-67 -195q0 -118 67 -194.5t178 -76.5z" />
    +<glyph unicode="P" horiz-adv-x="587" d="M161 0h-83v667h268q97 0 153 -58t56 -143t-56.5 -143t-152.5 -58h-185v-265zM336 339q59 0 96 35.5t37 91.5t-37 91.5t-96 35.5h-175v-254h175z" />
    +<glyph unicode="Q" horiz-adv-x="765" d="M382 -12q-147 0 -239 98t-92 247t92 247t239 98q146 0 238.5 -98t92.5 -247t-92 -246l64 -68l-58 -50l-65 69q-78 -50 -180 -50zM382 62q71 0 127 34l-95 103l58 49l94 -102q61 75 61 187q0 119 -67.5 195t-177.5 76q-111 0 -178 -76t-67 -195q0 -118 67 -194.5 t178 -76.5z" />
    +<glyph unicode="R" horiz-adv-x="608" d="M562 0h-98l-170 265h-133v-265h-83v667h268q93 0 151 -55t58 -146q0 -86 -50 -137t-123 -57zM336 338q59 0 96 36t37 92t-37 91.5t-96 35.5h-175v-255h175z" />
    +<glyph unicode="S" horiz-adv-x="586" d="M294 -12q-162 0 -256 106l49 63q85 -95 210 -95q81 0 119 34.5t38 80.5q0 35 -22 59t-56.5 37.5t-77 24.5t-84.5 24.5t-76.5 32.5t-56.5 54t-22 83q0 82 65 133.5t164 51.5q149 0 237 -93l-50 -61q-73 80 -193 80q-60 0 -98.5 -29.5t-38.5 -76.5q0 -35 29.5 -58t73 -34 t95 -27.5t95 -35t73 -59.5t29.5 -99q0 -82 -60.5 -139t-185.5 -57z" />
    +<glyph unicode="T" horiz-adv-x="570" d="M326 0h-83v593h-211v74h506v-74h-212v-593z" />
    +<glyph unicode="U" horiz-adv-x="700" d="M350 -12q-133 0 -202.5 72.5t-69.5 198.5v408h83v-406q0 -93 49 -146t140 -53t140 53t49 146v406h83v-407q0 -127 -69.5 -199.5t-202.5 -72.5z" />
    +<glyph unicode="V" horiz-adv-x="658" d="M380 0h-103l-268 667h95l225 -576l225 576h95z" />
    +<glyph unicode="W" horiz-adv-x="883" d="M678 0h-90l-147 538l-147 -538h-90l-190 667h92l148 -556l153 556h69l153 -556l147 556h92z" />
    +<glyph unicode="X" horiz-adv-x="652" d="M639 0h-100l-213 284l-213 -284h-101l260 342l-245 325h101l198 -267l197 267h101l-244 -324z" />
    +<glyph unicode="Y" horiz-adv-x="626" d="M355 0h-83v282l-263 385h97l207 -310l207 310h97l-262 -385v-282z" />
    +<glyph unicode="Z" horiz-adv-x="585" d="M536 0h-488v69l375 524h-375v74h481v-69l-375 -524h382v-74z" />
    +<glyph unicode="[" horiz-adv-x="243" d="M226 -190h-186v868h186v-55h-128v-758h128v-55z" />
    +<glyph unicode="\" horiz-adv-x="296" d="M237 -20l-237 707h59l237 -707h-59z" />
    +<glyph unicode="]" horiz-adv-x="243" d="M203 -190h-186v55h128v758h-128v55h186v-868z" />
    +<glyph unicode="^" horiz-adv-x="432" d="M413 333h-62l-135 279l-135 -279h-62l169 334h57z" />
    +<glyph unicode="_" horiz-adv-x="564" d="M567 -95h-570v55h570v-55z" />
    +<glyph unicode="`" horiz-adv-x="226" d="M226 556h-57l-169 144h78z" />
    +<glyph unicode="a" horiz-adv-x="527" d="M452 0h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332zM244 42q90 0 133 60v91q-43 60 -133 60q-52 0 -85.5 -29.5t-33.5 -76.5 q0 -46 33.5 -75.5t85.5 -29.5z" />
    +<glyph unicode="b" horiz-adv-x="575" d="M150 131q20 -32 60.5 -54t83.5 -22q72 0 114 52t42 134t-42 134.5t-114 52.5q-43 0 -83.5 -22.5t-60.5 -55.5v-219zM150 0h-75v667h75v-257q63 85 163 85q95 0 155 -69.5t60 -184.5q0 -116 -59.5 -184.5t-155.5 -68.5q-101 0 -163 84v-72z" />
    +<glyph unicode="c" horiz-adv-x="495" d="M288 -12q-107 0 -174 72.5t-67 181.5t67 181t174 72q112 0 177 -84l-50 -46q-46 63 -123 63q-76 0 -121.5 -52t-45.5 -134t45.5 -134.5t121.5 -52.5t123 63l50 -46q-65 -84 -177 -84z" />
    +<glyph unicode="d" horiz-adv-x="575" d="M500 0h-75v72q-62 -84 -163 -84q-96 0 -155.5 68.5t-59.5 184.5q0 115 59.5 184.5t155.5 69.5q100 0 163 -85v257h75v-667zM280 55q44 0 84 22t61 54v219q-21 33 -61.5 55.5t-83.5 22.5q-71 0 -113 -52.5t-42 -134.5t42 -134t113 -52z" />
    +<glyph unicode="e" horiz-adv-x="563" d="M293 -12q-108 0 -177 70.5t-69 183.5q0 106 68 179.5t170 73.5q107 0 169.5 -73.5t62.5 -185.5v-19h-391q5 -71 52 -119t122 -48q90 0 149 61l36 -49q-74 -74 -192 -74zM443 272q-1 62 -42 111.5t-117 49.5q-72 0 -113.5 -49t-44.5 -112h317z" />
    +<glyph unicode="f" horiz-adv-x="283" d="M171 0h-75v417h-80v66h80v37q0 74 37.5 115.5t102.5 41.5q62 0 102 -37l-31 -49q-27 24 -60 24q-37 0 -56.5 -24.5t-19.5 -70.5v-37h98v-66h-98v-417z" />
    +<glyph unicode="g" horiz-adv-x="574" d="M269 -196q-64 0 -109 15.5t-86 56.5l38 56q55 -66 157 -66q67 0 111 35.5t44 109.5v69q-27 -38 -70 -62t-92 -24q-96 0 -155.5 67.5t-59.5 182.5t59.5 183t155.5 68q99 0 162 -85v73h75v-469q0 -111 -65 -160.5t-165 -49.5zM280 60q43 0 83.5 23t60.5 56v211 q-20 33 -60 55.5t-84 22.5q-72 0 -113.5 -51t-41.5 -133q0 -81 42 -132.5t113 -51.5z" />
    +<glyph unicode="h" horiz-adv-x="552" d="M477 0h-75v318q0 60 -28 85t-81 25q-41 0 -80.5 -22t-62.5 -53v-353h-75v667h75v-254q28 33 75 57.5t98 24.5q154 0 154 -154v-341z" />
    +<glyph unicode="i" horiz-adv-x="225" d="M112 552q-20 0 -35 14.5t-15 35.5t15 36t35 15q21 0 36 -15t15 -36t-15 -35.5t-36 -14.5zM150 0h-75v483h75v-483z" />
    +<glyph unicode="j" horiz-adv-x="225" d="M112 552q-20 0 -35 14.5t-15 35.5t15 36t35 15q21 0 36 -15t15 -36t-15 -35.5t-36 -14.5zM7 -196q-59 0 -106 36l27 57q31 -31 69 -31q36 0 57 21.5t21 65.5v530h75v-530q0 -71 -37 -110t-106 -39z" />
    +<glyph unicode="k" horiz-adv-x="514" d="M500 0h-96l-174 217l-80 -79v-138h-75v667h75v-441l254 257h95l-214 -219z" />
    +<glyph unicode="l" horiz-adv-x="225" d="M150 0h-75v667h75v-667z" />
    +<glyph unicode="m" horiz-adv-x="808" d="M733 0h-75v328q0 100 -89 100q-36 0 -72 -22t-56 -52v-354h-75v328q0 100 -89 100q-35 0 -70.5 -22t-56.5 -53v-353h-75v483h75v-70q18 28 63 55t93 27q53 0 86 -25t44 -65q22 36 67 63t95 27q135 0 135 -146v-349z" />
    +<glyph unicode="n" horiz-adv-x="551" d="M476 0h-75v316q0 61 -28 86.5t-80 25.5q-42 0 -81.5 -22t-61.5 -53v-353h-75v483h75v-70q28 33 75 57.5t97 24.5q154 0 154 -156v-339z" />
    +<glyph unicode="o" d="M286 -12q-108 0 -173.5 73t-65.5 181t65.5 180.5t173.5 72.5t173.5 -72.5t65.5 -180.5t-65.5 -181t-173.5 -73zM286 55q74 0 117 54.5t43 132.5t-43 132t-117 54t-117.5 -54.5t-43.5 -131.5q0 -78 43.5 -132.5t117.5 -54.5z" />
    +<glyph unicode="p" d="M313 -12q-102 0 -163 85v-257h-75v667h75v-72q27 38 70 61t93 23q96 0 155.5 -68.5t59.5 -184.5t-59.5 -185t-155.5 -69zM294 55q71 0 113 52.5t42 134.5t-42 134t-113 52q-43 0 -83.5 -22.5t-60.5 -54.5v-218q20 -33 60.5 -55.5t83.5 -22.5z" />
    +<glyph unicode="q" d="M277 55q44 0 84.5 22.5t59.5 55.5v218q-19 32 -59.5 54.5t-84.5 22.5q-71 0 -112.5 -52t-41.5 -134t41.5 -134.5t112.5 -52.5zM259 -12q-96 0 -155.5 69t-59.5 185t59.5 184.5t155.5 68.5q50 0 93 -23t69 -61v72h75v-667h-75v257q-61 -85 -162 -85z" />
    +<glyph unicode="r" horiz-adv-x="330" d="M150 0h-75v483h75v-78q67 88 161 88v-77q-13 3 -30 3q-34 0 -74 -24t-57 -53v-342z" />
    +<glyph unicode="s" horiz-adv-x="465" d="M228 -12q-123 0 -195 76l39 54q25 -29 68.5 -49t90.5 -20q54 0 84 23t30 60q0 32 -31 50.5t-74.5 28t-87.5 22t-75 43t-31 80.5q0 59 48.5 99t131.5 40q109 0 179 -70l-35 -52q-51 61 -144 61q-49 0 -78 -21.5t-29 -54.5q0 -29 31 -45.5t74.5 -26t87.5 -22.5t75 -45.5 t31 -84.5q0 -64 -50 -105t-140 -41z" />
    +<glyph unicode="t" horiz-adv-x="294" d="M197 -12q-53 0 -80 29t-27 84v316h-80v66h80v132h75v-132h98v-66h-98v-300q0 -28 12.5 -45t36.5 -17q33 0 51 20l22 -56q-33 -31 -90 -31z" />
    +<glyph unicode="u" horiz-adv-x="551" d="M476 0h-75v68q-30 -34 -75.5 -57t-96.5 -23q-154 0 -154 154v341h75v-318q0 -60 27.5 -85t80.5 -25q42 0 81.5 21t61.5 52v355h75v-483z" />
    +<glyph unicode="v" horiz-adv-x="490" d="M286 0h-82l-201 483h81l161 -396l160 396h82z" />
    +<glyph unicode="w" horiz-adv-x="734" d="M568 0h-75l-126 388l-126 -388h-75l-154 483h78l118 -385l127 385h64l127 -385l118 385h78z" />
    +<glyph unicode="x" horiz-adv-x="486" d="M475 0h-87l-145 198l-145 -198h-86l185 248l-175 235h87l134 -184l134 184h87l-175 -235z" />
    +<glyph unicode="y" horiz-adv-x="490" d="M48 -189l12 68q18 -8 41 -8q26 0 43 11t29 40l32 73l-202 488h81l161 -396l160 396h82l-242 -581q-40 -96 -142 -98q-31 0 -55 7z" />
    +<glyph unicode="z" horiz-adv-x="472" d="M420 0h-368v58l266 359h-266v66h364v-57l-268 -361h272v-65z" />
    +<glyph unicode="{" horiz-adv-x="260" d="M243 -190h-61q-50 0 -87.5 37.5t-37.5 96.5v206q0 30 -13.5 49.5t-38.5 19.5v50q25 0 38.5 19.5t13.5 49.5v205q0 60 37.5 97.5t87.5 37.5h61v-55h-61q-27 0 -46.5 -22.5t-19.5 -57.5v-211q0 -68 -46 -88q46 -20 46 -88v-211q0 -34 19.5 -57t46.5 -23h61v-55z" />
    +<glyph unicode="|" horiz-adv-x="211" d="M133 -20h-55v707h55v-707z" />
    +<glyph unicode="}" horiz-adv-x="260" d="M17 -190v55h61q27 0 46.5 23t19.5 57v211q0 68 46 88q-46 20 -46 88v211q0 35 -19.5 57.5t-46.5 22.5h-61v55h61q50 0 87.5 -37.5t37.5 -97.5v-205q0 -30 13.5 -49.5t38.5 -19.5v-50q-25 0 -38.5 -19.5t-13.5 -49.5v-206q0 -59 -37.5 -96.5t-87.5 -37.5h-61z" />
    +<glyph unicode="~" horiz-adv-x="503" d="M419 667l56 -7q-5 -51 -12.5 -89t-22.5 -74t-41 -55t-62 -19q-35 0 -58 19.5t-34.5 47.5t-21 56t-23.5 47.5t-35 19.5q-63 0 -82 -191l-56 7q5 50 13 88.5t23 74.5t41 55t61 19t58.5 -19.5t35 -48t20.5 -56.5t23 -47.5t35 -19.5q65 0 82 192z" />
    +<glyph unicode="&#xa1;" horiz-adv-x="230" d="M69 -184l15 480h62l16 -480h-93zM60 438q0 22 16.5 38.5t38.5 16.5t38.5 -16.5t16.5 -38.5t-16 -38.5t-39 -16.5t-39 16.5t-16 38.5z" />
    +<glyph unicode="&#xa2;" horiz-adv-x="495" d="M252 -100v91q-92 12 -148.5 81.5t-56.5 169.5q0 98 56.5 167.5t148.5 82.5v73h59v-71q94 -8 154 -83l-50 -46q-40 54 -104 62v-371q63 6 104 62l50 -46q-58 -75 -154 -83v-89h-59zM125 242q0 -70 34 -120t93 -63v364q-59 -13 -93 -62.5t-34 -118.5z" />
    +<glyph unicode="&#xa3;" horiz-adv-x="518" d="M19 268v54h106q-28 32 -38.5 45.5t-24.5 46t-14 66.5q0 82 66 139.5t158 57.5q68 0 121 -29.5t81 -82.5l-67 -40q-14 34 -48.5 58t-78.5 24q-59 0 -101 -35t-42 -93q0 -26 9 -50t17.5 -37t28.5 -37.5t26 -32.5h150v-54h-122q7 -23 7 -43q0 -78 -76 -132q25 9 52 9 q33 0 76.5 -20.5t71.5 -20.5q31 0 57 12.5t38 27.5l36 -67q-49 -47 -135 -47q-47 0 -95 23t-84 23q-42 0 -118 -40l-30 62q64 29 98.5 68.5t34.5 84.5q0 30 -15 60h-145z" />
    +<glyph unicode="&#xa4;" horiz-adv-x="598" d="M299 93q-86 0 -149 47l-75 -76l-47 45l77 77q-45 64 -45 147q0 86 46 147l-79 79l47 46l78 -79q62 46 147 46q86 0 146 -46l78 78l46 -46l-78 -78q47 -63 47 -147q0 -83 -46 -148l77 -76l-46 -45l-77 75q-62 -46 -147 -46zM299 161q75 0 118.5 50.5t43.5 121.5 t-43.5 120.5t-118.5 49.5t-118.5 -50t-43.5 -120q0 -71 43.5 -121.5t118.5 -50.5z" />
    +<glyph unicode="&#xa5;" horiz-adv-x="626" d="M355 0h-83v122h-250v53h250v107h-250v52h214l-227 333h97l207 -310l207 310h97l-227 -333h215v-52h-250v-107h250v-53h-250v-122z" />
    +<glyph unicode="&#xa6;" horiz-adv-x="211" d="M133 -20h-55v316h55v-316zM133 371h-55v316h55v-316z" />
    +<glyph unicode="&#xa7;" horiz-adv-x="468" d="M418 315q0 -87 -92 -128q92 -35 92 -121q0 -69 -52 -108t-138 -39q-114 0 -194 78l38 49q60 -72 156 -72q53 0 85 23t32 64q0 34 -31 53.5t-74.5 30t-87.5 23t-75 43t-31 79.5q0 50 32.5 82.5t82.5 45.5q-115 36 -115 123q0 58 48.5 97t131.5 39q117 0 178 -71l-34 -45 q-50 60 -142 60q-48 0 -78.5 -22t-30.5 -58q0 -31 31 -48.5t74.5 -26.5t87.5 -22t75 -45t31 -84zM344 305q0 39 -30.5 59t-82.5 33q-62 -16 -87 -40t-25 -59q0 -47 67 -70q18 -7 75 -21q83 36 83 98z" />
    +<glyph unicode="&#xa8;" horiz-adv-x="272" d="M286 604q0 -19 -14 -33t-33 -14t-33 14t-14 33t14 32.5t33 13.5t33 -13.5t14 -32.5zM79 604q0 -19 -13.5 -33t-32.5 -14t-33 13.5t-14 33.5q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5z" />
    +<glyph unicode="&#xa9;" horiz-adv-x="778" d="M734 334q0 -143 -101 -244t-244 -101t-244 101.5t-101 243.5q0 143 101 244t244 101t244 -101t101 -244zM703 334q0 130 -92 222t-222 92t-222 -92t-92 -222t92 -222t222 -92t222 92t92 222zM512 212l26 -25q-57 -66 -147 -66q-87 0 -147.5 61.5t-60.5 152.5t60.5 152 t147.5 61q90 0 146 -66l-25 -24q-19 26 -52.5 41.5t-68.5 15.5q-70 0 -120.5 -50.5t-50.5 -129.5q0 -77 51 -129t120 -52q36 0 68.5 16t52.5 42z" />
    +<glyph unicode="&#xaa;" horiz-adv-x="378" d="M317 326h-57v35q-40 -43 -107 -43q-44 0 -78 28t-34 76q0 49 33.5 76t78.5 27q67 0 107 -42v55q0 30 -23 47.5t-56 17.5q-59 0 -99 -46l-25 37q53 54 131 54q57 0 93 -27t36 -84v-211zM175 356q57 0 85 38v56q-28 38 -85 38q-33 0 -54.5 -18.5t-21.5 -47.5 q0 -30 21.5 -48t54.5 -18z" />
    +<glyph unicode="&#xab;" horiz-adv-x="439" d="M409 63h-75l-160 180l160 177h75l-160 -177zM265 63h-75l-160 180l160 177h75l-160 -177z" />
    +<glyph unicode="&#xac;" horiz-adv-x="504" d="M470 457v-246h-55v193h-386v53h441z" />
    +<glyph unicode="&#xad;" horiz-adv-x="300" d="M270 209h-240v66h240v-66z" />
    +<glyph unicode="&#xae;" horiz-adv-x="494" d="M459 465q0 -88 -62 -150t-150 -62t-150 62t-62 150t62 150t150 62q89 0 150.5 -61.5t61.5 -150.5zM430 465q0 76 -53.5 129.5t-129.5 53.5q-77 0 -130.5 -53.5t-53.5 -129.5t54 -130t130 -54t129.5 54t53.5 130zM345 343h-40l-63 96h-44v-96h-32v243h99q32 0 54.5 -20.5 t22.5 -53.5q0 -35 -22.5 -53.5t-39.5 -18.5zM309 512q0 19 -13.5 32.5t-30.5 13.5h-67v-90h67q16 0 30 13t14 31z" />
    +<glyph unicode="&#xaf;" horiz-adv-x="363" d="M363 572h-363v48h363v-48z" />
    +<glyph unicode="&#xb0;" horiz-adv-x="290" d="M267 555q0 -51 -36 -86.5t-87 -35.5q-50 0 -85.5 35.5t-35.5 86.5q0 50 35.5 86t85.5 36q51 0 87 -36t36 -86zM219 555q0 30 -22 52t-53 22q-30 0 -51 -22t-21 -52q0 -31 21 -52.5t51 -21.5q31 0 53 21.5t22 52.5z" />
    +<glyph unicode="&#xb1;" horiz-adv-x="499" d="M470 324h-192v-214h-57v214h-192v52h192v207h57v-207h192v-52zM470 0h-441v52h441v-52z" />
    +<glyph unicode="&#xb2;" horiz-adv-x="388" d="M341 421h-291v45q124 88 176.5 140.5t52.5 98.5q0 36 -25 54.5t-60 18.5q-73 0 -112 -52l-33 38q49 63 147 63q60 0 101.5 -30.5t41.5 -87.5q0 -56 -50 -111.5t-151 -127.5h203v-49z" />
    +<glyph unicode="&#xb3;" horiz-adv-x="388" d="M343 530q0 -52 -41 -84t-110 -32q-103 0 -150 65l32 38q44 -54 116 -54q43 0 68 19t25 51q0 69 -104 69q-34 0 -40 -1v50q7 -1 39 -1q98 0 98 64q0 30 -25.5 47t-63.5 17q-64 0 -109 -49l-31 36q55 62 145 62q64 0 104 -29t40 -78q0 -40 -27 -63.5t-62 -29.5 q34 -3 65 -28t31 -69z" />
    +<glyph unicode="&#xb4;" horiz-adv-x="226" d="M226 700l-169 -144h-57l148 144h78z" />
    +<glyph unicode="&#xb5;" horiz-adv-x="565" d="M150 36v-220h-75v667h75v-318q0 -112 110 -112q41 0 80 22t61 53v355h75v-370q0 -58 47 -58q11 0 19 2l6 -65q-22 -4 -40 -4q-88 0 -104 86q-27 -37 -68 -61.5t-85 -24.5q-75 0 -101 48z" />
    +<glyph unicode="&#xb6;" horiz-adv-x="449" d="M378 -100h-45v722h-89v-722h-45v423q-71 0 -121.5 50.5t-50.5 121.5t50.5 121.5t121.5 50.5h179v-767z" />
    +<glyph unicode="&#xb7;" horiz-adv-x="230" d="M170 244q0 -22 -16.5 -38t-38.5 -16t-38.5 16t-16.5 38t16 38.5t39 16.5t39 -16.5t16 -38.5z" />
    +<glyph unicode="&#xb8;" horiz-adv-x="205" d="M101 -191q-63 0 -101 30l19 38q35 -29 80 -29q25 0 43 11.5t18 30.5q0 35 -37 35q-23 0 -38 -17l-33 19l31 84h45l-26 -66q16 11 37 11q29 0 47.5 -18.5t18.5 -48.5q0 -36 -30 -58t-74 -22z" />
    +<glyph unicode="&#xb9;" horiz-adv-x="235" d="M175 421h-60v322l-66 -69l-35 37l108 110h53v-400z" />
    +<glyph unicode="&#xba;" horiz-adv-x="405" d="M202 318q-73 0 -117.5 47.5t-44.5 117.5t44.5 117.5t117.5 47.5q74 0 118.5 -47.5t44.5 -117.5t-44.5 -117.5t-118.5 -47.5zM202 366q48 0 76 33t28 84q0 50 -28 82.5t-76 32.5q-47 0 -74.5 -32.5t-27.5 -82.5q0 -51 27.5 -84t74.5 -33z" />
    +<glyph unicode="&#xbb;" horiz-adv-x="439" d="M265 243l-160 -180h-75l160 180l-160 177h75zM409 243l-160 -180h-75l160 180l-160 177h75z" />
    +<glyph unicode="&#xbc;" horiz-adv-x="770" d="M175 267h-60v322l-66 -69l-35 37l108 110h53v-400zM733 100h-58v-100h-59v100h-196v44l172 256h83v-251h58v-49zM616 149v198l-136 -198h136zM590 667l-427 -667h-55l426 667h56z" />
    +<glyph unicode="&#xbd;" horiz-adv-x="807" d="M175 267h-60v322l-66 -69l-35 37l108 110h53v-400zM759 0h-291v45q124 88 176.5 140.5t52.5 98.5q0 36 -25 54.5t-60 18.5q-73 0 -112 -52l-33 38q49 63 147 63q60 0 101.5 -30.5t41.5 -87.5q0 -56 -50 -111.5t-151 -127.5h203v-49zM590 667l-427 -667h-55l426 667h56z " />
    +<glyph unicode="&#xbe;" horiz-adv-x="878" d="M842 100h-58v-100h-59v100h-196v44l172 256h83v-251h58v-49zM725 149v198l-136 -198h136zM698 667l-427 -667h-55l426 667h56zM343 376q0 -52 -41 -84t-110 -32q-103 0 -150 65l32 38q44 -54 116 -54q43 0 68 19t25 51q0 69 -104 69q-34 0 -40 -1v50q7 -1 39 -1 q98 0 98 64q0 30 -25.5 47t-63.5 17q-64 0 -109 -49l-31 36q55 62 145 62q64 0 104 -29t40 -78q0 -40 -27 -63.5t-62 -29.5q34 -3 65 -28t31 -69z" />
    +<glyph unicode="&#xbf;" horiz-adv-x="394" d="M258 296q39 -35 39 -82q0 -35 -18.5 -63t-44.5 -47l-54 -38q-26 -18 -44.5 -42.5t-18.5 -53.5q0 -39 30.5 -65.5t86.5 -26.5q99 0 160 81l49 -53q-78 -102 -216 -102q-89 0 -142.5 44.5t-53.5 110.5q0 42 20 75.5t49 54.5l56 40q28 19 48 42t20 50q0 29 -26 48zM238 493 q22 0 38.5 -16.5t16.5 -39.5q0 -22 -16.5 -38t-38.5 -16t-38.5 16t-16.5 38q0 23 16.5 39.5t38.5 16.5z" />
    +<glyph unicode="&#xc0;" horiz-adv-x="658" d="M649 0h-95l-59 148h-332l-59 -148h-95l268 667h103zM470 222l-141 359l-142 -359h283zM386 723h-57l-169 144h78z" />
    +<glyph unicode="&#xc1;" horiz-adv-x="658" d="M649 0h-95l-59 148h-332l-59 -148h-95l268 667h103zM470 222l-141 359l-142 -359h283zM498 867l-169 -144h-57l148 144h78z" />
    +<glyph unicode="&#xc2;" horiz-adv-x="658" d="M463 723h-51l-83 106l-80 -106h-51l95 144h72zM649 0h-95l-59 148h-332l-59 -148h-95l268 667h103zM470 222l-141 359l-142 -359h283z" />
    +<glyph unicode="&#xc3;" horiz-adv-x="658" d="M649 0h-95l-59 148h-332l-59 -148h-95l268 667h103zM470 222l-141 359l-142 -359h283zM389 721q-25 0 -43.5 14.5t-27.5 31.5t-22.5 31.5t-29.5 14.5q-21 0 -34.5 -21.5t-13.5 -64.5h-45q0 60 25.5 97t71.5 37q24 0 42.5 -14.5t28 -31.5t23 -31.5t29.5 -14.5 q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97t-71.5 -37z" />
    +<glyph unicode="&#xc4;" horiz-adv-x="658" d="M480 771q0 -19 -14 -33t-33 -14t-33 14t-14 33t14 32.5t33 13.5t33 -13.5t14 -32.5zM273 771q0 -19 -13.5 -33t-32.5 -14t-33 14t-14 33t14 32.5t33 13.5t32.5 -13.5t13.5 -32.5zM649 0h-95l-59 148h-332l-59 -148h-95l268 667h103zM470 222l-141 359l-142 -359h283z" />
    +<glyph unicode="&#xc5;" horiz-adv-x="658" d="M649 0h-95l-59 148h-332l-59 -148h-95l268 667h103zM470 222l-141 359l-142 -359h283zM329 690q-41 0 -69.5 29t-28.5 69q0 41 29 70t69 29t69 -29t29 -70q0 -40 -28.5 -69t-69.5 -29zM329 729q24 0 41 17.5t17 41.5q0 25 -16.5 42t-41.5 17q-24 0 -41 -17t-17 -42 q0 -24 17 -41.5t41 -17.5z" />
    +<glyph unicode="&#xc6;" horiz-adv-x="947" d="M893 0h-437v148h-263l-91 -148h-95l416 667h470v-74h-354v-215h347v-74h-347v-230h354v-74zM456 222v359l-222 -359h222z" />
    +<glyph unicode="&#xc7;" horiz-adv-x="676" d="M388 -187q-64 0 -101 30l19 38q35 -29 80 -29q25 0 43 11.5t18 30.5q0 35 -37 35q-23 0 -38 -17l-33 19l21 59q-134 11 -221.5 105.5t-87.5 237.5q0 152 98.5 248.5t244.5 96.5q160 0 253 -132l-70 -39q-29 43 -78 70t-105 27q-110 0 -183.5 -76.5t-73.5 -194.5 t73.5 -194.5t183.5 -76.5q56 0 105 26.5t78 70.5l71 -39q-95 -128 -244 -132l-15 -39q16 11 37 11q29 0 47.5 -18.5t18.5 -48.5q0 -36 -30 -58t-74 -22z" />
    +<glyph unicode="&#xc8;" horiz-adv-x="569" d="M515 0h-437v667h437v-74h-354v-215h347v-74h-347v-230h354v-74zM353 723h-57l-169 144h78z" />
    +<glyph unicode="&#xc9;" horiz-adv-x="569" d="M465 867l-169 -144h-57l148 144h78zM515 0h-437v667h437v-74h-354v-215h347v-74h-347v-230h354v-74z" />
    +<glyph unicode="&#xca;" horiz-adv-x="569" d="M428 723h-51l-83 106l-80 -106h-51l95 144h72zM515 0h-437v667h437v-74h-354v-215h347v-74h-347v-230h354v-74z" />
    +<glyph unicode="&#xcb;" horiz-adv-x="569" d="M446 771q0 -19 -14 -33t-33 -14t-33 14t-14 33t14 32.5t33 13.5t33 -13.5t14 -32.5zM239 771q0 -19 -13.5 -33t-32.5 -14t-33 14t-14 33t14 32.5t33 13.5t32.5 -13.5t13.5 -32.5zM515 0h-437v667h437v-74h-354v-215h347v-74h-347v-230h354v-74z" />
    +<glyph unicode="&#xcc;" horiz-adv-x="239" d="M161 0h-83v667h83v-667zM176 723h-57l-169 144h78z" />
    +<glyph unicode="&#xcd;" horiz-adv-x="239" d="M161 0h-83v667h83v-667zM289 867l-169 -144h-57l148 144h78z" />
    +<glyph unicode="&#xce;" horiz-adv-x="239" d="M253 723h-51l-83 106l-80 -106h-51l95 144h72zM161 0h-83v667h83v-667z" />
    +<glyph unicode="&#xcf;" horiz-adv-x="239" d="M270 771q0 -19 -14 -33t-33 -14t-33 14t-14 33t14 32.5t33 13.5t33 -13.5t14 -32.5zM63 771q0 -19 -13.5 -33t-32.5 -14t-33 14t-14 33t14 32.5t33 13.5t32.5 -13.5t13.5 -32.5zM161 0h-83v667h83v-667z" />
    +<glyph unicode="&#xd0;" horiz-adv-x="728" d="M334 0h-228v299h-96v61h96v307h228q153 0 247.5 -95t94.5 -239q0 -145 -94.5 -239t-247.5 -94zM334 74q118 0 187 74t69 185q0 112 -68 186t-188 74h-145v-233h169v-61h-169v-225h145z" />
    +<glyph unicode="&#xd1;" horiz-adv-x="708" d="M412 721q-25 0 -43.5 14.5t-27.5 31.5t-22.5 31.5t-29.5 14.5q-21 0 -34.5 -21.5t-13.5 -64.5h-45q0 60 25.5 97t71.5 37q24 0 42.5 -14.5t28 -31.5t23 -31.5t29.5 -14.5q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97t-71.5 -37zM630 0h-80l-389 532v-532h-83v667h85 l384 -521v521h83v-667z" />
    +<glyph unicode="&#xd2;" horiz-adv-x="765" d="M440 723h-57l-169 144h78zM382 -12q-147 0 -239 98t-92 247t92 247t239 98q146 0 238.5 -98t92.5 -247t-92.5 -247t-238.5 -98zM382 62q110 0 177.5 76.5t67.5 194.5q0 119 -67.5 195t-177.5 76q-111 0 -178 -76t-67 -195q0 -118 67 -194.5t178 -76.5z" />
    +<glyph unicode="&#xd3;" horiz-adv-x="765" d="M552 867l-169 -144h-57l148 144h78zM382 -12q-147 0 -239 98t-92 247t92 247t239 98q146 0 238.5 -98t92.5 -247t-92.5 -247t-238.5 -98zM382 62q110 0 177.5 76.5t67.5 194.5q0 119 -67.5 195t-177.5 76q-111 0 -178 -76t-67 -195q0 -118 67 -194.5t178 -76.5z" />
    +<glyph unicode="&#xd4;" horiz-adv-x="765" d="M517 723h-51l-83 106l-80 -106h-51l95 144h72zM382 -12q-147 0 -239 98t-92 247t92 247t239 98q146 0 238.5 -98t92.5 -247t-92.5 -247t-238.5 -98zM382 62q110 0 177.5 76.5t67.5 194.5q0 119 -67.5 195t-177.5 76q-111 0 -178 -76t-67 -195q0 -118 67 -194.5t178 -76.5 z" />
    +<glyph unicode="&#xd5;" horiz-adv-x="765" d="M382 -12q-147 0 -239 98t-92 247t92 247t239 98q146 0 238.5 -98t92.5 -247t-92.5 -247t-238.5 -98zM382 62q110 0 177.5 76.5t67.5 194.5q0 119 -67.5 195t-177.5 76q-111 0 -178 -76t-67 -195q0 -118 67 -194.5t178 -76.5zM442 721q-25 0 -43.5 14.5t-27.5 31.5 t-22.5 31.5t-29.5 14.5q-21 0 -34.5 -21.5t-13.5 -64.5h-45q0 60 25.5 97t71.5 37q24 0 42.5 -14.5t28 -31.5t23 -31.5t29.5 -14.5q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97t-71.5 -37z" />
    +<glyph unicode="&#xd6;" horiz-adv-x="765" d="M532 771q0 -19 -14 -33t-33 -14t-33 14t-14 33t14 32.5t33 13.5t33 -13.5t14 -32.5zM325 771q0 -19 -13.5 -33t-32.5 -14t-33 14t-14 33t14 32.5t33 13.5t32.5 -13.5t13.5 -32.5zM382 -12q-147 0 -239 98t-92 247t92 247t239 98q146 0 238.5 -98t92.5 -247t-92.5 -247 t-238.5 -98zM382 62q110 0 177.5 76.5t67.5 194.5q0 119 -67.5 195t-177.5 76q-111 0 -178 -76t-67 -195q0 -118 67 -194.5t178 -76.5z" />
    +<glyph unicode="&#xd7;" horiz-adv-x="499" d="M398 148l-149 149l-148 -149l-37 37l148 149l-148 148l37 38l148 -149l149 149l37 -38l-148 -148l148 -149z" />
    +<glyph unicode="&#xd8;" horiz-adv-x="765" d="M382 -12q-97 0 -173 45l-22 -33h-66l44 65q-114 98 -114 268q0 149 92 247t239 98q92 0 167 -42l21 31h66l-42 -62q57 -47 88 -117.5t31 -154.5q0 -149 -92.5 -247t-238.5 -98zM382 62q110 0 177.5 76.5t67.5 194.5q0 130 -78 205l-297 -441q55 -35 130 -35zM137 333 q0 -126 73 -201l296 440q-56 32 -124 32q-111 0 -178 -76t-67 -195z" />
    +<glyph unicode="&#xd9;" horiz-adv-x="700" d="M350 -12q-133 0 -202.5 72.5t-69.5 198.5v408h83v-406q0 -93 49 -146t140 -53t140 53t49 146v406h83v-407q0 -127 -69.5 -199.5t-202.5 -72.5zM407 723h-57l-169 144h78z" />
    +<glyph unicode="&#xda;" horiz-adv-x="700" d="M519 867l-169 -144h-57l148 144h78zM350 -12q-133 0 -202.5 72.5t-69.5 198.5v408h83v-406q0 -93 49 -146t140 -53t140 53t49 146v406h83v-407q0 -127 -69.5 -199.5t-202.5 -72.5z" />
    +<glyph unicode="&#xdb;" horiz-adv-x="700" d="M485 723h-51l-83 106l-80 -106h-51l95 144h72zM350 -12q-133 0 -202.5 72.5t-69.5 198.5v408h83v-406q0 -93 49 -146t140 -53t140 53t49 146v406h83v-407q0 -127 -69.5 -199.5t-202.5 -72.5z" />
    +<glyph unicode="&#xdc;" horiz-adv-x="700" d="M501 771q0 -19 -14 -33t-33 -14t-33 14t-14 33t14 32.5t33 13.5t33 -13.5t14 -32.5zM294 771q0 -19 -13.5 -33t-32.5 -14q-20 0 -33.5 14t-13.5 33t14 32.5t33 13.5t32.5 -13.5t13.5 -32.5zM350 -12q-133 0 -202.5 72.5t-69.5 198.5v408h83v-406q0 -93 49 -146t140 -53 t140 53t49 146v406h83v-407q0 -127 -69.5 -199.5t-202.5 -72.5z" />
    +<glyph unicode="&#xdd;" horiz-adv-x="626" d="M355 0h-83v282l-263 385h97l207 -310l207 310h97l-262 -385v-282zM482 867l-169 -144h-57l148 144h78z" />
    +<glyph unicode="&#xde;" horiz-adv-x="587" d="M161 0h-83v667h83v-119h185q97 0 153 -58t56 -144q0 -85 -56.5 -142.5t-152.5 -57.5h-185v-146zM336 220q59 0 96 35t37 91t-37 92t-96 36h-175v-254h175z" />
    +<glyph unicode="&#xdf;" horiz-adv-x="597" d="M578 135q0 -62 -48.5 -104.5t-137.5 -42.5q-66 0 -107.5 20t-78.5 58l38 52q23 -30 61.5 -49.5t86.5 -19.5q54 0 83.5 24.5t29.5 59.5q0 32 -29.5 50.5t-71.5 28.5t-84.5 22.5t-72 43t-29.5 78.5q0 37 23 66t50 44t50 35t23 41q0 32 -30 50t-69 18q-49 0 -82 -30.5 t-33 -80.5v-499h-75v499q0 75 52.5 126.5t138.5 51.5q72 0 123.5 -34.5t51.5 -91.5q0 -37 -23.5 -65t-51.5 -42.5t-51.5 -37t-23.5 -49.5q0 -28 29.5 -44.5t71.5 -25.5t84.5 -22t72 -45.5t29.5 -84.5z" />
    +<glyph unicode="&#xe0;" horiz-adv-x="527" d="M452 0h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332zM244 42q90 0 133 60v91q-43 60 -133 60q-52 0 -85.5 -29.5t-33.5 -76.5 q0 -46 33.5 -75.5t85.5 -29.5zM322 556h-57l-169 144h78z" />
    +<glyph unicode="&#xe1;" horiz-adv-x="527" d="M452 0h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332zM244 42q90 0 133 60v91q-43 60 -133 60q-52 0 -85.5 -29.5t-33.5 -76.5 q0 -46 33.5 -75.5t85.5 -29.5zM434 700l-169 -144h-57l148 144h78z" />
    +<glyph unicode="&#xe2;" horiz-adv-x="527" d="M452 0h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332zM244 42q90 0 133 60v91q-43 60 -133 60q-52 0 -85.5 -29.5t-33.5 -76.5 q0 -46 33.5 -75.5t85.5 -29.5zM398 556h-51l-83 106l-80 -106h-51l95 144h72z" />
    +<glyph unicode="&#xe3;" horiz-adv-x="527" d="M452 0h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332zM244 42q90 0 133 60v91q-43 60 -133 60q-52 0 -85.5 -29.5t-33.5 -76.5 q0 -46 33.5 -75.5t85.5 -29.5zM325 554q-25 0 -43.5 14.5t-27.5 31.5t-22.5 31.5t-29.5 14.5q-21 0 -34.5 -21.5t-13.5 -64.5h-45q0 60 25.5 97t71.5 37q24 0 42.5 -14.5t28 -31.5t23 -31.5t29.5 -14.5q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97t-71.5 -37z" />
    +<glyph unicode="&#xe4;" horiz-adv-x="527" d="M452 0h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332zM244 42q90 0 133 60v91q-43 60 -133 60q-52 0 -85.5 -29.5t-33.5 -76.5 q0 -46 33.5 -75.5t85.5 -29.5zM415 604q0 -19 -14 -33t-33 -14t-33 14t-14 33t14 32.5t33 13.5t33 -13.5t14 -32.5zM208 604q0 -19 -13.5 -33t-32.5 -14q-20 0 -33.5 13.5t-13.5 33.5q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5z" />
    +<glyph unicode="&#xe5;" horiz-adv-x="527" d="M452 0h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332zM244 42q90 0 133 60v91q-43 60 -133 60q-52 0 -85.5 -29.5t-33.5 -76.5 q0 -46 33.5 -75.5t85.5 -29.5zM265 543q-41 0 -69.5 28.5t-28.5 69.5t29 70t69 29t69 -29t29 -70t-28.5 -69.5t-69.5 -28.5zM265 582q24 0 41 17.5t17 41.5q0 25 -16.5 42t-41.5 17q-24 0 -41 -17t-17 -42q0 -24 17 -41.5t41 -17.5z" />
    +<glyph unicode="&#xe6;" horiz-adv-x="889" d="M843 217h-367q5 -71 48 -118t113 -47q84 0 139 61l36 -51q-72 -74 -178 -74q-136 0 -193 116q-26 -52 -79.5 -84t-119.5 -32q-82 0 -138 42.5t-56 117.5t51.5 117t126.5 42q112 0 175 -64v86q0 47 -36.5 74t-96.5 27q-94 0 -161 -67l-35 52q79 80 205 80q64 0 111 -26 t60 -79q60 105 179 105q101 0 158.5 -73t57.5 -186v-19zM476 272h293q-1 63 -38 112t-109 49q-66 0 -104.5 -49.5t-41.5 -111.5zM401 180v12q-52 61 -145 61q-59 0 -95 -27.5t-36 -73.5q0 -45 36 -72.5t95 -27.5q62 0 103.5 39t41.5 89z" />
    +<glyph unicode="&#xe7;" horiz-adv-x="495" d="M289 -189q-63 0 -101 30l19 38q35 -29 80 -29q25 0 43 11.5t18 30.5q0 35 -37 35q-23 0 -38 -17l-33 19l22 61q-96 9 -155.5 79t-59.5 173q0 109 67 181t174 72q112 0 177 -84l-50 -46q-46 63 -123 63q-76 0 -121.5 -52t-45.5 -134t45.5 -134.5t121.5 -52.5t123 63 l50 -46q-60 -77 -159 -83l-16 -42q16 11 37 11q29 0 47.5 -18.5t18.5 -48.5q0 -36 -30 -58t-74 -22z" />
    +<glyph unicode="&#xe8;" horiz-adv-x="563" d="M293 -12q-108 0 -177 70.5t-69 183.5q0 106 68 179.5t170 73.5q107 0 169.5 -73.5t62.5 -185.5v-19h-391q5 -71 52 -119t122 -48q90 0 149 61l36 -49q-74 -74 -192 -74zM443 272q-1 62 -42 111.5t-117 49.5q-72 0 -113.5 -49t-44.5 -112h317zM342 556h-57l-169 144h78z " />
    +<glyph unicode="&#xe9;" horiz-adv-x="563" d="M454 700l-169 -144h-57l148 144h78zM293 -12q-108 0 -177 70.5t-69 183.5q0 106 68 179.5t170 73.5q107 0 169.5 -73.5t62.5 -185.5v-19h-391q5 -71 52 -119t122 -48q90 0 149 61l36 -49q-74 -74 -192 -74zM443 272q-1 62 -42 111.5t-117 49.5q-72 0 -113.5 -49 t-44.5 -112h317z" />
    +<glyph unicode="&#xea;" horiz-adv-x="563" d="M419 556h-51l-83 106l-80 -106h-51l95 144h72zM293 -12q-108 0 -177 70.5t-69 183.5q0 106 68 179.5t170 73.5q107 0 169.5 -73.5t62.5 -185.5v-19h-391q5 -71 52 -119t122 -48q90 0 149 61l36 -49q-74 -74 -192 -74zM443 272q-1 62 -42 111.5t-117 49.5 q-72 0 -113.5 -49t-44.5 -112h317z" />
    +<glyph unicode="&#xeb;" horiz-adv-x="563" d="M436 604q0 -19 -14 -33t-33 -14t-33 14t-14 33t14 32.5t33 13.5t33 -13.5t14 -32.5zM229 604q0 -19 -13.5 -33t-32.5 -14t-33 13.5t-14 33.5q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5zM293 -12q-108 0 -177 70.5t-69 183.5q0 106 68 179.5t170 73.5 q107 0 169.5 -73.5t62.5 -185.5v-19h-391q5 -71 52 -119t122 -48q90 0 149 61l36 -49q-74 -74 -192 -74zM443 272q-1 62 -42 111.5t-117 49.5q-72 0 -113.5 -49t-44.5 -112h317z" />
    +<glyph unicode="&#xec;" horiz-adv-x="225" d="M150 0h-75v483h75v-483zM169 556h-57l-169 144h78z" />
    +<glyph unicode="&#xed;" horiz-adv-x="225" d="M282 700l-169 -144h-57l148 144h78zM150 0h-75v483h75v-483z" />
    +<glyph unicode="&#xee;" horiz-adv-x="225" d="M245 556h-51l-83 106l-80 -106h-51l95 144h72zM150 0h-75v483h75v-483z" />
    +<glyph unicode="&#xef;" horiz-adv-x="225" d="M263 604q0 -19 -14 -33t-33 -14t-33 14t-14 33t14 32.5t33 13.5t33 -13.5t14 -32.5zM56 604q0 -19 -13.5 -33t-32.5 -14q-20 0 -33.5 13.5t-13.5 33.5q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5zM150 0h-75v483h75v-483z" />
    +<glyph unicode="&#xf0;" d="M122 497l-18 42l118 52l-75 48l41 62q67 -41 112 -76l108 48l17 -41l-86 -38q186 -158 186 -347q0 -114 -65 -186.5t-174 -72.5q-107 0 -173 70t-66 176t62 175.5t158 69.5t158 -89q-49 88 -160 170zM286 55q74 0 117 52t43 127q0 74 -43 126t-117 52t-117.5 -52 t-43.5 -126q0 -75 43.5 -127t117.5 -52z" />
    +<glyph unicode="&#xf1;" horiz-adv-x="551" d="M476 0h-75v316q0 61 -28 86.5t-80 25.5q-42 0 -81.5 -22t-61.5 -53v-353h-75v483h75v-70q28 33 75 57.5t97 24.5q154 0 154 -156v-339zM336 554q-25 0 -43.5 14.5t-27.5 31.5t-22.5 31.5t-29.5 14.5q-21 0 -34.5 -21.5t-13.5 -64.5h-45q0 60 25.5 97t71.5 37 q24 0 42.5 -14.5t28 -31.5t23 -31.5t29.5 -14.5q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97t-71.5 -37z" />
    +<glyph unicode="&#xf2;" d="M286 -12q-108 0 -173.5 73t-65.5 181t65.5 180.5t173.5 72.5t173.5 -72.5t65.5 -180.5t-65.5 -181t-173.5 -73zM286 55q74 0 117 54.5t43 132.5t-43 132t-117 54t-117.5 -54.5t-43.5 -131.5q0 -78 43.5 -132.5t117.5 -54.5zM343 556h-57l-169 144h78z" />
    +<glyph unicode="&#xf3;" d="M455 700l-169 -144h-57l148 144h78zM286 -12q-108 0 -173.5 73t-65.5 181t65.5 180.5t173.5 72.5t173.5 -72.5t65.5 -180.5t-65.5 -181t-173.5 -73zM286 55q74 0 117 54.5t43 132.5t-43 132t-117 54t-117.5 -54.5t-43.5 -131.5q0 -78 43.5 -132.5t117.5 -54.5z" />
    +<glyph unicode="&#xf4;" d="M419 556h-51l-83 106l-80 -106h-51l95 144h72zM286 -12q-108 0 -173.5 73t-65.5 181t65.5 180.5t173.5 72.5t173.5 -72.5t65.5 -180.5t-65.5 -181t-173.5 -73zM286 55q74 0 117 54.5t43 132.5t-43 132t-117 54t-117.5 -54.5t-43.5 -131.5q0 -78 43.5 -132.5t117.5 -54.5z " />
    +<glyph unicode="&#xf5;" d="M286 -12q-108 0 -173.5 73t-65.5 181t65.5 180.5t173.5 72.5t173.5 -72.5t65.5 -180.5t-65.5 -181t-173.5 -73zM286 55q74 0 117 54.5t43 132.5t-43 132t-117 54t-117.5 -54.5t-43.5 -131.5q0 -78 43.5 -132.5t117.5 -54.5zM346 554q-25 0 -43.5 14.5t-27.5 31.5 t-22.5 31.5t-29.5 14.5q-21 0 -34.5 -21.5t-13.5 -64.5h-45q0 60 25.5 97t71.5 37q24 0 42.5 -14.5t28 -31.5t23 -31.5t29.5 -14.5q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97t-71.5 -37z" />
    +<glyph unicode="&#xf6;" d="M436 604q0 -19 -14 -33t-33 -14t-33 14t-14 33t14 32.5t33 13.5t33 -13.5t14 -32.5zM229 604q0 -19 -13.5 -33t-32.5 -14t-33 13.5t-14 33.5q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5zM286 -12q-108 0 -173.5 73t-65.5 181t65.5 180.5t173.5 72.5t173.5 -72.5 t65.5 -180.5t-65.5 -181t-173.5 -73zM286 55q74 0 117 54.5t43 132.5t-43 132t-117 54t-117.5 -54.5t-43.5 -131.5q0 -78 43.5 -132.5t117.5 -54.5z" />
    +<glyph unicode="&#xf7;" horiz-adv-x="511" d="M302 526q0 -19 -14 -32.5t-33 -13.5t-32 13.5t-13 32.5t13 32.5t32 13.5q20 0 33.5 -13.5t13.5 -32.5zM482 311h-453v52h453v-52zM302 144q0 -19 -14 -32.5t-33 -13.5t-32 13.5t-13 32.5t13 32.5t32 13.5t33 -13.5t14 -32.5z" />
    +<glyph unicode="&#xf8;" d="M118 0h-54l48 61q-65 71 -65 181q0 108 65.5 180.5t173.5 72.5q79 0 137 -41l23 29h54l-45 -57q70 -72 70 -184q0 -108 -65.5 -181t-173.5 -73q-83 0 -142 45zM286 55q74 0 117 54.5t43 132.5q0 73 -38 125l-220 -278q42 -34 98 -34zM125 242q0 -70 34 -121l219 277 q-38 30 -92 30q-74 0 -117.5 -54.5t-43.5 -131.5z" />
    +<glyph unicode="&#xf9;" horiz-adv-x="551" d="M476 0h-75v68q-30 -34 -75.5 -57t-96.5 -23q-154 0 -154 154v341h75v-318q0 -60 27.5 -85t80.5 -25q42 0 81.5 21t61.5 52v355h75v-483zM332 556h-57l-169 144h78z" />
    +<glyph unicode="&#xfa;" horiz-adv-x="551" d="M444 700l-169 -144h-57l148 144h78zM476 0h-75v68q-30 -34 -75.5 -57t-96.5 -23q-154 0 -154 154v341h75v-318q0 -60 27.5 -85t80.5 -25q42 0 81.5 21t61.5 52v355h75v-483z" />
    +<glyph unicode="&#xfb;" horiz-adv-x="551" d="M408 556h-51l-83 106l-80 -106h-51l95 144h72zM476 0h-75v68q-30 -34 -75.5 -57t-96.5 -23q-154 0 -154 154v341h75v-318q0 -60 27.5 -85t80.5 -25q42 0 81.5 21t61.5 52v355h75v-483z" />
    +<glyph unicode="&#xfc;" horiz-adv-x="551" d="M427 604q0 -19 -14 -33t-33 -14t-33 14t-14 33t14 32.5t33 13.5t33 -13.5t14 -32.5zM220 604q0 -19 -13.5 -33t-32.5 -14q-20 0 -33.5 13.5t-13.5 33.5q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5zM476 0h-75v68q-30 -34 -75.5 -57t-96.5 -23q-154 0 -154 154v341h75 v-318q0 -60 27.5 -85t80.5 -25q42 0 81.5 21t61.5 52v355h75v-483z" />
    +<glyph unicode="&#xfd;" horiz-adv-x="490" d="M48 -189l12 68q18 -8 41 -8q26 0 43 11t29 40l32 73l-202 488h81l161 -396l160 396h82l-242 -581q-40 -96 -142 -98q-31 0 -55 7zM414 700l-169 -144h-57l148 144h78z" />
    +<glyph unicode="&#xfe;" d="M313 -12q-102 0 -163 85v-257h-75v851h75v-256q27 38 70 61t93 23q96 0 155.5 -68.5t59.5 -184.5t-59.5 -185t-155.5 -69zM294 55q71 0 113 52.5t42 134.5t-42 134t-113 52q-43 0 -83.5 -22.5t-60.5 -54.5v-218q20 -33 60.5 -55.5t83.5 -22.5z" />
    +<glyph unicode="&#xff;" horiz-adv-x="490" d="M48 -189l12 68q18 -8 41 -8q26 0 43 11t29 40l32 73l-202 488h81l161 -396l160 396h82l-242 -581q-40 -96 -142 -98q-31 0 -55 7zM395 604q0 -19 -14 -33t-33 -14t-33 14t-14 33t14 32.5t33 13.5t33 -13.5t14 -32.5zM188 604q0 -19 -13.5 -33t-32.5 -14q-20 0 -33.5 13.5 t-13.5 33.5q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5z" />
    +<glyph unicode="&#x152;" horiz-adv-x="1105" d="M1051 0h-438v120q-36 -63 -100.5 -97.5t-137.5 -34.5q-144 0 -234 98t-90 247t90 246.5t234 97.5q73 0 137.5 -34t100.5 -97v121h438v-74h-355v-215h348v-74h-348v-230h355v-74zM613 223v220q-29 78 -89.5 119t-139.5 41q-112 0 -179.5 -75.5t-67.5 -194.5t67.5 -195 t179.5 -76q79 0 139.5 41.5t89.5 119.5z" />
    +<glyph unicode="&#x153;" horiz-adv-x="962" d="M916 217h-390q5 -71 51.5 -119t121.5 -48q89 0 150 61l36 -49q-76 -74 -192 -74q-83 0 -133 41.5t-75 96.5q-62 -138 -199 -138q-108 0 -173.5 73t-65.5 181t65.5 180.5t173.5 72.5q42 0 78 -14t59.5 -36.5t38 -43.5t24.5 -44q22 52 71.5 95t126.5 43q107 0 169.5 -73.5 t62.5 -185.5v-19zM525 272h318q-2 62 -43 111.5t-117 49.5q-72 0 -113.5 -49t-44.5 -112zM446 242q0 79 -43.5 132.5t-116.5 53.5t-117 -53.5t-44 -132.5t44 -133.5t117 -54.5t116.5 54t43.5 134z" />
    +<glyph unicode="&#x178;" horiz-adv-x="626" d="M465 771q0 -19 -14 -33t-33 -14t-33 14t-14 33t14 32.5t33 13.5t33 -13.5t14 -32.5zM258 771q0 -19 -13.5 -33t-32.5 -14q-20 0 -33.5 14t-13.5 33t14 32.5t33 13.5t32.5 -13.5t13.5 -32.5zM355 0h-83v282l-263 385h97l207 -310l207 310h97l-262 -385v-282z" />
    +<glyph unicode="&#x2c6;" horiz-adv-x="265" d="M265 556h-51l-83 106l-80 -106h-51l95 144h72z" />
    +<glyph unicode="&#x2dc;" horiz-adv-x="313" d="M216 554q-25 0 -43.5 14.5t-27.5 31.5t-22.5 31.5t-29.5 14.5q-21 0 -34.5 -21.5t-13.5 -64.5h-45q0 60 25.5 97t71.5 37q24 0 42.5 -14.5t28 -31.5t23 -31.5t29.5 -14.5q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97t-71.5 -37z" />
    +<glyph unicode="&#x2000;" horiz-adv-x="443" />
    +<glyph unicode="&#x2001;" horiz-adv-x="887" />
    +<glyph unicode="&#x2002;" horiz-adv-x="443" />
    +<glyph unicode="&#x2003;" horiz-adv-x="887" />
    +<glyph unicode="&#x2004;" horiz-adv-x="295" />
    +<glyph unicode="&#x2005;" horiz-adv-x="221" />
    +<glyph unicode="&#x2006;" horiz-adv-x="147" />
    +<glyph unicode="&#x2007;" horiz-adv-x="147" />
    +<glyph unicode="&#x2008;" horiz-adv-x="110" />
    +<glyph unicode="&#x2009;" horiz-adv-x="177" />
    +<glyph unicode="&#x200a;" horiz-adv-x="49" />
    +<glyph unicode="&#x2010;" horiz-adv-x="300" d="M270 209h-240v66h240v-66z" />
    +<glyph unicode="&#x2011;" horiz-adv-x="300" d="M270 209h-240v66h240v-66z" />
    +<glyph unicode="&#x2013;" horiz-adv-x="593" d="M563 209h-533v66h533v-66z" />
    +<glyph unicode="&#x2014;" horiz-adv-x="833" d="M803 209h-773v66h773v-66z" />
    +<glyph unicode="&#x2018;" horiz-adv-x="230" d="M47 527q0 44 22.5 84t58.5 66l37 -30q-24 -16 -42.5 -42.5t-21.5 -50.5q1 0 6 0.5t7 0.5q21 0 35 -14.5t14 -36.5t-15.5 -37.5t-37.5 -15.5q-26 0 -44.5 20.5t-18.5 55.5z" />
    +<glyph unicode="&#x2019;" horiz-adv-x="230" d="M176 601q0 -44 -23 -84.5t-59 -66.5l-37 31q24 16 43 42.5t22 50.5q-4 -2 -14 -2q-21 0 -34.5 14.5t-13.5 36.5t15.5 38t37.5 16q26 0 44.5 -20.5t18.5 -55.5z" />
    +<glyph unicode="&#x201a;" horiz-adv-x="230" d="M176 24q0 -44 -23 -84.5t-59 -66.5l-37 31q25 16 43.5 42.5t21.5 50.5q-4 -2 -14 -2q-21 0 -34.5 14.5t-13.5 36.5t15.5 38t37.5 16q26 0 44.5 -20.5t18.5 -55.5z" />
    +<glyph unicode="&#x201c;" horiz-adv-x="390" d="M54 527q0 44 22.5 84t58.5 66l37 -30q-24 -16 -43 -42.5t-21 -50.5h5q5 1 8 1q21 0 34.5 -14.5t13.5 -36.5t-15.5 -37.5t-37.5 -15.5q-26 0 -44 20.5t-18 55.5zM214 527q0 44 22.5 84t58.5 66l37 -30q-24 -16 -42.5 -42.5t-21.5 -50.5h5q5 1 8 1q21 0 35 -14.5t14 -36.5 t-16 -37.5t-38 -15.5q-26 0 -44 20.5t-18 55.5z" />
    +<glyph unicode="&#x201d;" horiz-adv-x="390" d="M336 601q0 -44 -23 -84.5t-58 -66.5l-37 31q24 16 42.5 42.5t21.5 50.5q-4 -2 -13 -2q-21 0 -35 14.5t-14 36.5t15.5 38t37.5 16q26 0 44.5 -20.5t18.5 -55.5zM176 601q0 -44 -23 -84.5t-59 -66.5l-37 31q24 16 43 42.5t22 50.5q-4 -2 -14 -2q-21 0 -34.5 14.5 t-13.5 36.5t15.5 38t37.5 16q26 0 44.5 -20.5t18.5 -55.5z" />
    +<glyph unicode="&#x201e;" horiz-adv-x="390" d="M176 24q0 -44 -23 -84.5t-59 -66.5l-37 31q25 16 43.5 42.5t21.5 50.5q-4 -2 -14 -2q-21 0 -34.5 14.5t-13.5 36.5t15.5 38t37.5 16q26 0 44.5 -20.5t18.5 -55.5zM336 24q0 -44 -23 -84.5t-58 -66.5l-37 31q24 16 42.5 42.5t21.5 50.5q-4 -2 -13 -2q-21 0 -35 14.5 t-14 36.5t15.5 38t37.5 16q26 0 44.5 -20.5t18.5 -55.5z" />
    +<glyph unicode="&#x2022;" horiz-adv-x="358" d="M288 242q0 -44 -32 -75.5t-76 -31.5t-76 31.5t-32 75.5t32 76t76 32t76 -32t32 -76z" />
    +<glyph unicode="&#x2026;" horiz-adv-x="690" d="M169 45q0 -22 -16.5 -38.5t-38.5 -16.5t-38 16.5t-16 38.5q0 23 16 39t38 16t38.5 -16t16.5 -39zM400 45q0 -22 -17 -38.5t-39 -16.5t-38 16.5t-16 38.5q0 23 16 39t38 16q23 0 39.5 -16.5t16.5 -38.5zM630 45q0 -22 -16.5 -38.5t-38.5 -16.5t-38.5 16.5t-16.5 38.5 q0 23 16 39t39 16t39 -16t16 -39z" />
    +<glyph unicode="&#x202f;" horiz-adv-x="177" />
    +<glyph unicode="&#x2039;" horiz-adv-x="295" d="M265 63h-75l-160 180l160 177h75l-160 -177z" />
    +<glyph unicode="&#x203a;" horiz-adv-x="295" d="M265 243l-160 -180h-75l160 180l-160 177h75z" />
    +<glyph unicode="&#x205f;" horiz-adv-x="221" />
    +<glyph unicode="&#x20ac;" horiz-adv-x="695" d="M415 -12q-121 0 -211.5 67.5t-119.5 181.5h-53v52h43q-2 28 -2 44t2 46h-43v52h53q30 112 120.5 179.5t210.5 67.5q160 0 253 -132l-70 -39q-29 43 -78 70t-105 27q-85 0 -150 -47t-92 -126h303v-52h-315q-3 -23 -3 -46t3 -44h315v-52h-303q26 -80 91.5 -127.5 t150.5 -47.5q56 0 105 26.5t78 70.5l71 -39q-97 -132 -254 -132z" />
    +<glyph unicode="&#x2122;" horiz-adv-x="454" d="M419 447h-28v182l-75 -182h-8l-75 182v-182h-28v220h43l64 -160l64 160h43v-220zM169 641h-62v-194h-28v194h-62v26h152v-26z" />
    +</font>
    +</defs></svg> 
    \ No newline at end of file
    diff --git a/stylesheets/ProximaNova-Reg-webfont.ttf b/stylesheets/ProximaNova-Reg-webfont.ttf
    new file mode 100644
    index 0000000..ca6c50b
    Binary files /dev/null and b/stylesheets/ProximaNova-Reg-webfont.ttf differ
    diff --git a/stylesheets/ProximaNova-Reg-webfont.woff b/stylesheets/ProximaNova-Reg-webfont.woff
    new file mode 100644
    index 0000000..487d618
    Binary files /dev/null and b/stylesheets/ProximaNova-Reg-webfont.woff differ
    diff --git a/stylesheets/ProximaNova-Sbold-webfont.eot b/stylesheets/ProximaNova-Sbold-webfont.eot
    new file mode 100644
    index 0000000..3011c58
    Binary files /dev/null and b/stylesheets/ProximaNova-Sbold-webfont.eot differ
    diff --git a/stylesheets/ProximaNova-Sbold-webfont.svg b/stylesheets/ProximaNova-Sbold-webfont.svg
    new file mode 100644
    index 0000000..d215439
    --- /dev/null
    +++ b/stylesheets/ProximaNova-Sbold-webfont.svg
    @@ -0,0 +1,238 @@
    +<?xml version="1.0" standalone="no"?>
    +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
    +<svg xmlns="http://www.w3.org/2000/svg">
    +<metadata>
    +This is a custom SVG webfont generated by Fontspring.
    +</metadata>
    +<defs>
    +<font id="webfontaA1mSBzj" horiz-adv-x="673" >
    +<font-face units-per-em="1000" ascent="790" descent="-210" />
    +<missing-glyph horiz-adv-x="257" />
    +<glyph unicode=" "  horiz-adv-x="257" />
    +<glyph unicode="&#x09;" horiz-adv-x="257" />
    +<glyph unicode="&#xa0;" horiz-adv-x="257" />
    +<glyph unicode="!" horiz-adv-x="245" d="M168 204h-91l-19 463h128zM122 -10q-28 0 -48.5 20.5t-20.5 48.5q0 29 20.5 49.5t48.5 20.5t49 -20.5t21 -49.5q0 -28 -21 -48.5t-49 -20.5z" />
    +<glyph unicode="&#x22;" horiz-adv-x="379" d="M131 391h-48q-35 210 -35 227q0 24 17 41.5t42 17.5q24 0 41.5 -17.5t17.5 -41.5zM296 391h-47q-35 210 -35 227q0 24 17 41.5t42 17.5q24 0 41 -17.5t17 -41.5z" />
    +<glyph unicode="#" horiz-adv-x="606" d="M322 0h-80l59 174h-102l-58 -174h-80l58 174h-100l22 69h102l59 180h-102l21 68h105l58 176h80l-58 -176h101l58 176h80l-59 -176h101l-20 -68h-104l-60 -180h105l-21 -69h-107zM323 243l60 180h-101l-59 -180h100z" />
    +<glyph unicode="$" horiz-adv-x="605" d="M268 -100v90q-149 11 -233 104l65 90q69 -74 168 -89v193q-47 12 -78 23.5t-65 33t-51.5 56t-17.5 81.5q0 77 58 131t154 62v93h80v-94q121 -13 201 -90l-67 -87q-55 54 -134 70v-172q37 -10 63 -19t57.5 -25.5t50.5 -36t32 -50.5t13 -70q0 -82 -54.5 -138.5 t-161.5 -65.5v-90h-80zM445 183q0 31 -25 50.5t-72 33.5v-173q49 8 73 33t24 56zM176 490q0 -48 92 -74v156q-43 -4 -67.5 -26.5t-24.5 -55.5z" />
    +<glyph unicode="%" horiz-adv-x="746" d="M193 346q-73 0 -119 46.5t-46 117.5q0 72 46 119.5t119 47.5q74 0 120.5 -47.5t46.5 -119.5q0 -71 -46.5 -117.5t-120.5 -46.5zM195 0h-66l426 667h67zM552 -12q-73 0 -119 46.5t-46 117.5q0 72 46 119.5t119 47.5t119.5 -48t46.5 -119t-46.5 -117.5t-119.5 -46.5z M193 412q39 0 64 27.5t25 70.5q0 45 -25 72.5t-64 27.5t-63.5 -27.5t-24.5 -72.5q0 -43 25 -70.5t63 -27.5zM552 54q39 0 64 27.5t25 70.5q0 45 -25 72.5t-64 27.5t-63.5 -27.5t-24.5 -72.5q0 -43 24.5 -70.5t63.5 -27.5z" />
    +<glyph unicode="&#x26;" horiz-adv-x="644" d="M627 0h-137q-22 19 -59 58q-83 -70 -187 -70q-94 0 -154.5 49.5t-60.5 140.5q0 70 38.5 114.5t106.5 80.5q-47 84 -47 146q0 68 51.5 113t129.5 45q71 0 118 -37t47 -100q0 -36 -13 -65t-40.5 -51.5t-51 -36t-62.5 -32.5q29 -40 66 -82q37 -45 66 -77q44 69 66 139 l86 -39q-47 -103 -93 -165q55 -59 130 -131zM257 72q60 0 115 47q-63 68 -82 92q-42 51 -74 96q-75 -49 -75 -120q0 -53 34 -84t82 -31zM233 517q0 -43 33 -101q56 26 85 53t29 66q0 30 -19 47t-48 17q-34 0 -57 -23t-23 -59z" />
    +<glyph unicode="'" horiz-adv-x="214" d="M131 391h-48q-35 210 -35 227q0 24 17 41.5t42 17.5q24 0 41.5 -17.5t17.5 -41.5z" />
    +<glyph unicode="(" horiz-adv-x="276" d="M258 -149l-65 -50q-71 86 -111 203.5t-40 238.5q0 120 40 237.5t111 204.5l65 -49q-52 -98 -77 -189t-25 -204t25 -204t77 -188z" />
    +<glyph unicode=")" horiz-adv-x="276" d="M82 -199l-65 50q53 97 78 188t25 204t-25 204t-78 189l65 49q71 -87 111.5 -204t40.5 -238t-40.5 -238.5t-111.5 -203.5z" />
    +<glyph unicode="*" horiz-adv-x="346" d="M201 376h-56l5 112l-94 -61l-27 48l99 51l-99 51l27 48l94 -60l-5 112h56l-6 -112l94 60l28 -48l-99 -51l99 -51l-28 -48l-94 61z" />
    +<glyph unicode="+" horiz-adv-x="502" d="M473 303h-185v-207h-74v207h-185v68h185v200h74v-200h185v-68z" />
    +<glyph unicode="," horiz-adv-x="245" d="M198 38q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5t20 48.5t48 20.5q32 0 55 -24.5t23 -66.5z" />
    +<glyph unicode="-" horiz-adv-x="300" d="M270 197h-240v90h240v-90z" />
    +<glyph unicode="." horiz-adv-x="245" d="M122 -11q-28 0 -49 20.5t-21 49.5t21 49.5t49 20.5t49 -20.5t21 -49.5t-21 -49.5t-49 -20.5z" />
    +<glyph unicode="/" horiz-adv-x="315" d="M78 -20h-78l237 707h78z" />
    +<glyph unicode="0" horiz-adv-x="616" d="M308 -12q-67 0 -120 30t-84 80t-47 110t-16 125t16 125t47 109.5t84 79.5t120 30t120 -30t84 -79.5t47 -109.5t16 -125t-16 -125t-47 -110t-84 -80t-120 -30zM308 92q76 0 112 68t36 173q0 67 -13.5 119t-48 86.5t-86.5 34.5t-86.5 -34.5t-48 -86.5t-13.5 -119 q0 -105 36 -173t112 -68z" />
    +<glyph unicode="1" horiz-adv-x="380" d="M309 0h-117v515l-109 -113l-68 71l192 194h102v-667z" />
    +<glyph unicode="2" horiz-adv-x="595" d="M533 0h-483v92q209 158 284.5 234.5t75.5 144.5q0 49 -35.5 75.5t-85.5 26.5q-110 0 -180 -80l-68 77q43 52 108.5 79.5t137.5 27.5q102 0 172 -55t70 -151q0 -86 -72 -171t-220 -197h296v-103z" />
    +<glyph unicode="3" horiz-adv-x="574" d="M276 -12q-85 0 -150.5 30t-101.5 78l63 77q32 -37 82 -59t103 -22q65 0 102 27.5t37 74.5q0 94 -148 94q-67 0 -77 -1v105q12 -1 77 -1q62 0 99.5 22t37.5 66q0 45 -38 69.5t-97 24.5q-98 0 -172 -74l-60 73q89 105 243 105q109 0 175 -48.5t66 -131.5 q0 -62 -43.5 -102.5t-101.5 -50.5q57 -5 106 -48t49 -114q0 -86 -68.5 -140t-182.5 -54z" />
    +<glyph unicode="4" horiz-adv-x="580" d="M463 0h-117v151h-318v94l274 422h161v-413h89v-103h-89v-151zM346 254v308l-203 -308h203z" />
    +<glyph unicode="5" horiz-adv-x="600" d="M304 -12q-161 0 -248 103l67 80q70 -79 180 -79q62 0 99.5 33.5t37.5 83.5q0 54 -36.5 86.5t-97.5 32.5q-85 0 -146 -58l-83 24v373h437v-103h-320v-193q58 58 151 58q88 0 150.5 -58.5t62.5 -156.5q0 -103 -70.5 -164.5t-183.5 -61.5z" />
    +<glyph unicode="6" horiz-adv-x="601" d="M316 -12q-71 0 -125 27.5t-86 75.5t-48 108.5t-16 132.5q0 151 77 248t217 97q116 0 192 -74l-55 -89q-56 59 -137 59q-80 0 -128 -64t-48 -156q0 -13 1 -19q25 37 74 65t105 28q95 0 159 -56.5t64 -158.5q0 -95 -68 -159.5t-178 -64.5zM310 92q62 0 98 35.5t36 80.5 q0 58 -39 88.5t-98 30.5q-42 0 -81 -21.5t-65 -57.5q6 -64 42 -110t107 -46z" />
    +<glyph unicode="7" horiz-adv-x="532" d="M249 0h-128l252 564h-346v103h481v-81z" />
    +<glyph unicode="8" horiz-adv-x="595" d="M298 -12q-108 0 -182 48.5t-74 134.5q0 61 42.5 106t107.5 67q-62 20 -100.5 59t-38.5 99q0 44 21.5 79t57 55t78 30.5t88.5 10.5t88 -10.5t78 -30.5t57.5 -55t21.5 -79q0 -113 -140 -158q65 -22 107.5 -67t42.5 -106q0 -86 -73.5 -134.5t-181.5 -48.5zM298 390 q27 5 52 13.5t49.5 30t24.5 50.5q0 41 -35.5 65t-90.5 24q-56 0 -91.5 -24t-35.5 -65t40.5 -63.5t86.5 -30.5zM298 92q57 0 97 26t40 68q0 45 -46.5 72.5t-90.5 32.5q-26 -3 -55 -13.5t-56 -35t-27 -56.5q0 -42 39.5 -68t98.5 -26z" />
    +<glyph unicode="9" horiz-adv-x="601" d="M265 -11q-117 0 -191 74l54 88q56 -58 137 -58q85 0 130.5 64.5t45.5 154.5v20q-26 -37 -75 -65.5t-104 -28.5q-95 0 -159.5 57t-64.5 159q0 95 68.5 159.5t177.5 64.5q94 0 157.5 -48.5t90.5 -124t27 -172.5q0 -150 -77 -247t-217 -97zM293 339q43 0 82 21t64 57 q-5 63 -41.5 110t-107.5 47q-61 0 -97 -36t-36 -80q0 -58 39 -88.5t97 -30.5z" />
    +<glyph unicode=":" horiz-adv-x="245" d="M122 350q-28 0 -49 21t-21 49t21 49t49 21t49 -21t21 -49t-21 -49t-49 -21zM122 -11q-28 0 -49 20.5t-21 49.5t21 49.5t49 20.5t49 -20.5t21 -49.5t-21 -49.5t-49 -20.5z" />
    +<glyph unicode=";" horiz-adv-x="245" d="M122 350q-28 0 -49 21t-21 49t21 49t49 21t49 -21t21 -49t-21 -49t-49 -21zM198 41q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5t20 48.5t48 20.5q32 0 55 -24.5t23 -66.5z" />
    +<glyph unicode="&#x3c;" horiz-adv-x="502" d="M473 90l-444 207v75l444 208v-81l-365 -165l365 -164v-80z" />
    +<glyph unicode="=" horiz-adv-x="502" d="M473 395h-444v68h444v-68zM473 205h-444v67h444v-67z" />
    +<glyph unicode="&#x3e;" horiz-adv-x="502" d="M473 297l-444 -207v80l364 164l-364 165v81l444 -208v-75z" />
    +<glyph unicode="?" horiz-adv-x="458" d="M189 196q-36 34 -36 85q0 41 25 73.5t55.5 50.5t55.5 43t25 53q0 31 -24.5 51.5t-70.5 20.5q-82 0 -139 -70l-67 75q81 99 218 99q93 0 148 -44t55 -113q0 -41 -18.5 -73.5t-45 -53t-52.5 -38.5t-44.5 -39.5t-18.5 -45.5q0 -26 22 -45zM225 -11q-29 0 -49.5 20.5 t-20.5 49.5t20.5 49.5t49.5 20.5t49.5 -20.5t20.5 -49.5t-20.5 -49.5t-49.5 -20.5z" />
    +<glyph unicode="@" horiz-adv-x="783" d="M352 -70q-136 0 -226.5 90.5t-90.5 223.5q0 159 120 276.5t277 117.5q139 0 227 -90t88 -221q0 -114 -58 -178t-129 -64q-42 0 -66.5 22t-28.5 55l-1 6q-27 -37 -67 -60t-83 -23q-70 0 -112 46t-42 120q0 100 70.5 173.5t159.5 73.5q90 0 126 -71l12 56h94l-54 -255 q-2 -12 -2 -23q0 -23 11.5 -35.5t29.5 -12.5q36 0 68 43t32 127q0 122 -76.5 198t-202.5 76q-143 0 -249.5 -107t-106.5 -248q0 -120 80.5 -200t203.5 -80q97 0 184 55l20 -28q-98 -63 -208 -63zM348 160q73 0 127 76l27 126q-10 24 -33 42.5t-58 18.5q-64 0 -109 -50.5 t-45 -114.5q0 -44 24.5 -71t66.5 -27z" />
    +<glyph unicode="A" d="M671 0h-133l-49 128h-306l-49 -128h-133l262 667h146zM456 231l-120 318l-120 -318h240z" />
    +<glyph unicode="B" horiz-adv-x="648" d="M408 0h-337v667h328q89 0 139.5 -48.5t50.5 -121.5q0 -60 -33.5 -101.5t-82.5 -51.5q54 -8 91.5 -55.5t37.5 -108.5q0 -80 -51.5 -130t-142.5 -50zM375 391q44 0 69 24t25 62q0 39 -25 63t-69 24h-187v-173h187zM380 103q48 0 75 24.5t27 68.5q0 39 -27 65.5t-75 26.5 h-192v-185h192z" />
    +<glyph unicode="C" horiz-adv-x="682" d="M391 -12q-150 0 -250 96.5t-100 248.5t100 248.5t250 96.5q174 0 268 -150l-100 -51q-25 43 -70.5 70t-97.5 27q-99 0 -164.5 -68t-65.5 -173t65.5 -173t164.5 -68q53 0 98 27t70 70l100 -51q-96 -150 -268 -150z" />
    +<glyph unicode="D" horiz-adv-x="710" d="M319 0h-248v667h248q155 0 252 -93t97 -241q0 -147 -96.5 -240t-252.5 -93zM319 103q105 0 167 66t62 164q0 101 -60.5 166t-168.5 65h-131v-461h131z" />
    +<glyph unicode="E" horiz-adv-x="577" d="M528 0h-457v667h457v-103h-340v-173h333v-103h-333v-185h340v-103z" />
    +<glyph unicode="F" horiz-adv-x="562" d="M188 0h-117v667h457v-103h-340v-173h333v-103h-333v-288z" />
    +<glyph unicode="G" horiz-adv-x="717" d="M391 -13q-148 0 -249 96t-101 250t101 249.5t249 95.5q172 0 269 -139l-96 -54q-28 39 -73.5 64t-99.5 25q-99 0 -164.5 -68t-65.5 -173t65.5 -173.5t164.5 -68.5q47 0 89.5 18t68.5 42v104h-199v103h316v-250q-109 -121 -275 -121z" />
    +<glyph unicode="H" horiz-adv-x="723" d="M652 0h-117v291h-347v-291h-117v667h117v-273h347v273h117v-667z" />
    +<glyph unicode="I" horiz-adv-x="259" d="M188 0h-117v667h117v-667z" />
    +<glyph unicode="J" horiz-adv-x="481" d="M185 -12q-111 0 -177 70l54 89q51 -55 114 -55q54 0 85.5 33t31.5 88v454h117v-456q0 -110 -62 -166.5t-163 -56.5z" />
    +<glyph unicode="K" horiz-adv-x="621" d="M614 0h-144l-224 281l-58 -68v-213h-117v667h117v-318l261 318h145l-271 -315z" />
    +<glyph unicode="L" horiz-adv-x="517" d="M482 0h-411v667h117v-564h294v-103z" />
    +<glyph unicode="M" horiz-adv-x="835" d="M764 0h-117v495l-205 -495h-50l-204 495v-495h-117v667h165l181 -439l182 439h165v-667z" />
    +<glyph unicode="N" horiz-adv-x="720" d="M649 0h-113l-348 476v-476h-117v667h120l341 -463v463h117v-667z" />
    +<glyph unicode="O" horiz-adv-x="765" d="M382 -12q-149 0 -245 97.5t-96 247.5t96 247.5t245 97.5t245 -97.5t96 -247.5t-96 -247.5t-245 -97.5zM382 92q99 0 160 68.5t61 172.5q0 105 -61 173t-160 68q-100 0 -160.5 -68t-60.5 -173t60.5 -173t160.5 -68z" />
    +<glyph unicode="P" horiz-adv-x="608" d="M188 0h-117v667h293q101 0 159.5 -60t58.5 -149q0 -88 -58.5 -148.5t-159.5 -60.5h-176v-249zM348 352q50 0 82 29t32 77t-32 77t-82 29h-160v-212h160z" />
    +<glyph unicode="Q" horiz-adv-x="765" d="M382 -12q-149 0 -245 97.5t-96 247.5t96 247.5t245 97.5t245 -97.5t96 -247.5q0 -143 -89 -240l55 -62l-81 -68l-58 65q-74 -40 -168 -40zM382 92q51 0 94 20l-82 94l81 67l82 -94q46 63 46 154q0 105 -61 173t-160 68q-100 0 -160.5 -68t-60.5 -173t60.5 -173t160.5 -68 z" />
    +<glyph unicode="R" horiz-adv-x="628" d="M587 0h-135l-148 249h-116v-249h-117v667h293q98 0 158 -58t60 -151q0 -84 -46 -134.5t-112 -61.5zM348 352q50 0 82 29t32 77t-32 77t-82 29h-160v-212h160z" />
    +<glyph unicode="S" horiz-adv-x="594" d="M299 -12q-172 0 -271 106l65 90q86 -92 211 -92q67 0 100.5 27t33.5 64q0 38 -40 60.5t-97 35.5t-114.5 31t-97.5 61t-40 111q0 84 67.5 139.5t175.5 55.5q154 0 250 -93l-67 -87q-76 76 -193 76q-52 0 -82.5 -22.5t-30.5 -60.5q0 -25 21.5 -42t55.5 -27.5t75.5 -20.5 t83 -24.5t75.5 -35.5t55.5 -58t21.5 -88q0 -90 -65 -148t-193 -58z" />
    +<glyph unicode="T" horiz-adv-x="577" d="M347 0h-117v564h-202v103h521v-103h-202v-564z" />
    +<glyph unicode="U" horiz-adv-x="719" d="M360 -12q-142 0 -215.5 74t-73.5 201v404h118v-400q0 -81 44.5 -128t126.5 -47t126 47t44 128v400h118v-403q0 -128 -73.5 -202t-214.5 -74z" />
    +<glyph unicode="V" d="M409 0h-146l-262 667h133l202 -540l202 540h133z" />
    +<glyph unicode="W" horiz-adv-x="903" d="M706 0h-125l-130 492l-129 -492h-125l-191 667h131l130 -514l138 514h93l138 -514l129 514h131z" />
    +<glyph unicode="X" horiz-adv-x="661" d="M657 0h-140l-187 261l-187 -261h-140l250 342l-235 325h140l172 -245l171 245h141l-234 -324z" />
    +<glyph unicode="Y" horiz-adv-x="637" d="M377 0h-117v277l-259 390h134l184 -286l182 286h134l-258 -390v-277z" />
    +<glyph unicode="Z" horiz-adv-x="589" d="M544 0h-500v95l341 469h-341v103h493v-95l-341 -469h348v-103z" />
    +<glyph unicode="[" horiz-adv-x="264" d="M247 -190h-203v868h203v-72h-126v-724h126v-72z" />
    +<glyph unicode="\" horiz-adv-x="315" d="M237 -20l-237 707h78l237 -707h-78z" />
    +<glyph unicode="]" horiz-adv-x="264" d="M220 -190h-203v72h126v724h-126v72h203v-868z" />
    +<glyph unicode="^" horiz-adv-x="437" d="M418 333h-80l-120 261l-119 -261h-80l161 334h78z" />
    +<glyph unicode="_" horiz-adv-x="564" d="M567 -112h-570v72h570v-72z" />
    +<glyph unicode="`" horiz-adv-x="240" d="M240 556h-75l-165 144h100z" />
    +<glyph unicode="a" horiz-adv-x="536" d="M468 0h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320zM248 60q79 0 115 50v73q-36 50 -115 50q-45 0 -74 -24t-29 -63t29 -62.5 t74 -23.5z" />
    +<glyph unicode="b" horiz-adv-x="581" d="M173 145q17 -27 52.5 -45.5t71.5 -18.5q62 0 99.5 44.5t37.5 115.5t-37.5 116t-99.5 45q-36 0 -71 -19t-53 -47v-191zM173 0h-105v667h105v-251q59 79 155 79q94 0 154 -69.5t60 -184.5q0 -117 -60 -185t-154 -68q-95 0 -155 78v-66z" />
    +<glyph unicode="c" horiz-adv-x="497" d="M288 -12q-110 0 -180 71.5t-70 182.5q0 110 70 181.5t180 71.5q121 0 185 -86l-69 -64q-40 57 -111 57q-66 0 -106 -44.5t-40 -115.5t40 -116t106 -45q69 0 111 57l69 -64q-64 -86 -185 -86z" />
    +<glyph unicode="d" horiz-adv-x="581" d="M513 0h-105v66q-60 -78 -155 -78t-155 68t-60 185q0 116 60 185t155 69t155 -79v251h105v-667zM283 81q37 0 72 18t53 46v192q-18 28 -53 46.5t-72 18.5q-62 0 -99 -45t-37 -116t37 -115.5t99 -44.5z" />
    +<glyph unicode="e" horiz-adv-x="557" d="M291 -12q-110 0 -181.5 70.5t-71.5 183.5q0 106 69.5 179.5t175.5 73.5q107 0 172.5 -74t65.5 -189v-25h-373q6 -57 47 -95t107 -38q37 0 74.5 14t62.5 39l48 -69q-73 -70 -196 -70zM419 281q-2 50 -36.5 89t-99.5 39q-62 0 -97 -38.5t-39 -89.5h272z" />
    +<glyph unicode="f" horiz-adv-x="308" d="M198 0h-105v391h-80v92h80v27q0 78 41.5 122.5t111.5 44.5q75 0 116 -42l-41 -65q-23 21 -56 21q-31 0 -49 -20.5t-18 -60.5v-27h98v-92h-98v-391z" />
    +<glyph unicode="g" horiz-adv-x="580" d="M264 -196q-123 0 -202 72l49 76q54 -62 153 -62q60 0 101.5 31.5t41.5 99.5v58q-62 -80 -155 -80q-95 0 -154.5 66t-59.5 182q0 115 59.5 181.5t154.5 66.5t155 -79v67h105v-458q0 -62 -21.5 -107.5t-58.5 -69t-78.5 -34t-89.5 -10.5zM283 92q36 0 71 19t53 46v180 q-18 27 -53 46t-71 19q-62 0 -99 -42.5t-37 -112.5t37 -112.5t99 -42.5z" />
    +<glyph unicode="h" horiz-adv-x="568" d="M500 0h-105v304q0 53 -25.5 75.5t-72.5 22.5q-37 0 -70 -19t-54 -46v-337h-105v667h105v-250q27 32 72.5 55t98.5 23q156 0 156 -153v-342z" />
    +<glyph unicode="i" horiz-adv-x="241" d="M120 542q-26 0 -45.5 19t-19.5 46t19.5 46t45.5 19q27 0 46 -19t19 -46t-19 -46t-46 -19zM173 0h-105v483h105v-483z" />
    +<glyph unicode="j" horiz-adv-x="241" d="M120 542q-26 0 -45.5 19t-19.5 46t19.5 46t45.5 19q27 0 46 -19t19 -46t-19 -46t-46 -19zM13 -196q-40 0 -64 8t-50 27l31 78q30 -27 67 -27q32 0 51.5 20.5t19.5 61.5v511h105v-511q0 -79 -41 -123.5t-119 -44.5z" />
    +<glyph unicode="k" horiz-adv-x="526" d="M520 0h-132l-148 199l-67 -69v-130h-105v667h105v-417l213 233h130l-201 -219z" />
    +<glyph unicode="l" horiz-adv-x="241" d="M173 0h-105v667h105v-667z" />
    +<glyph unicode="m" horiz-adv-x="833" d="M765 0h-105v315q0 87 -79 87q-33 0 -64 -19t-48 -45v-338h-105v315q0 87 -80 87q-32 0 -62.5 -19t-48.5 -46v-337h-105v483h105v-66q18 27 62.5 52.5t94.5 25.5q105 0 132 -89q23 36 68 62.5t96 26.5q139 0 139 -146v-349z" />
    +<glyph unicode="n" horiz-adv-x="567" d="M499 0h-105v302q0 100 -97 100q-38 0 -71 -19t-53 -46v-337h-105v483h105v-66q27 32 72 55t98 23q77 0 116.5 -40t39.5 -115v-340z" />
    +<glyph unicode="o" horiz-adv-x="573" d="M286 -12q-112 0 -180 73.5t-68 180.5t68 180t180 73q113 0 181 -73t68 -180q0 -108 -68 -181t-181 -73zM286 81q65 0 102.5 46.5t37.5 114.5q0 67 -37.5 113.5t-102.5 46.5q-64 0 -101.5 -46.5t-37.5 -113.5q0 -68 37.5 -114.5t101.5 -46.5z" />
    +<glyph unicode="p" horiz-adv-x="578" d="M328 -12q-96 0 -155 79v-251h-105v667h105v-66q59 78 155 78q95 0 154.5 -68t59.5 -185t-59.5 -185.5t-154.5 -68.5zM297 81q62 0 99 45t37 116t-37 115.5t-99 44.5q-36 0 -71 -19t-53 -46v-191q18 -27 53 -46t71 -19z" />
    +<glyph unicode="q" horiz-adv-x="578" d="M281 81q36 0 71 19t53 46v191q-18 27 -53 46t-71 19q-62 0 -99 -44.5t-37 -115.5t37 -116t99 -45zM250 -12q-95 0 -154.5 68.5t-59.5 185.5t59.5 185t154.5 68q96 0 155 -78v66h105v-667h-105v251q-59 -79 -155 -79z" />
    +<glyph unicode="r" horiz-adv-x="347" d="M173 0h-105v483h105v-71q28 36 70 59t87 23v-104q-14 3 -33 3q-33 0 -70.5 -19.5t-53.5 -44.5v-329z" />
    +<glyph unicode="s" horiz-adv-x="472" d="M233 -12q-130 0 -207 75l48 76q27 -28 73 -48t91 -20q46 0 70.5 18t24.5 47q0 26 -30 40.5t-73 23t-86 21t-73 44.5t-30 83q0 62 51 104.5t139 42.5q111 0 188 -68l-44 -74q-23 26 -61 42t-82 16q-41 0 -65.5 -16.5t-24.5 -42.5q0 -20 21.5 -32.5t54 -18.5t70.5 -16.5 t70.5 -24.5t54 -45.5t21.5 -76.5q0 -66 -53 -108t-148 -42z" />
    +<glyph unicode="t" horiz-adv-x="319" d="M213 -12q-61 0 -92.5 32t-31.5 92v279h-80v92h80v132h105v-132h98v-92h-98v-253q0 -26 12 -41.5t34 -15.5q32 0 47 17l25 -79q-33 -31 -99 -31z" />
    +<glyph unicode="u" horiz-adv-x="567" d="M499 0h-105v64q-68 -76 -171 -76q-155 0 -155 153v342h105v-304q0 -53 25 -75.5t72 -22.5q38 0 71 18t53 45v339h105v-483z" />
    +<glyph unicode="v" horiz-adv-x="503" d="M308 0h-113l-197 483h112l141 -362l141 362h113z" />
    +<glyph unicode="w" horiz-adv-x="754" d="M599 0h-110l-112 354l-112 -354h-110l-150 483h109l102 -351l115 351h92l115 -351l102 351h109z" />
    +<glyph unicode="x" horiz-adv-x="496" d="M491 0h-118l-125 178l-126 -178h-117l177 248l-167 235h118l115 -164l114 164h118l-167 -235z" />
    +<glyph unicode="y" horiz-adv-x="503" d="M47 -189l16 94q18 -8 40 -8q51 0 69 42l24 55l-198 489h112l141 -362l141 362h113l-233 -570q-43 -107 -166 -109q-33 0 -59 7z" />
    +<glyph unicode="z" horiz-adv-x="476" d="M429 0h-383v79l239 312h-239v92h379v-77l-241 -315h245v-91z" />
    +<glyph unicode="{" horiz-adv-x="276" d="M259 -190h-61q-58 0 -100 41t-42 107v187q0 29 -13.5 48.5t-38.5 19.5v62q25 0 38.5 19.5t13.5 48.5v186q0 66 42.5 107.5t99.5 41.5h61v-72h-61q-27 0 -45.5 -21.5t-18.5 -55.5v-196q0 -69 -46 -89q46 -20 46 -89v-196q0 -33 18.5 -55t45.5 -22h61v-72z" />
    +<glyph unicode="|" horiz-adv-x="214" d="M143 -20h-72v707h72v-707z" />
    +<glyph unicode="}" horiz-adv-x="276" d="M17 -190v72h61q27 0 45.5 22t18.5 55v196q0 69 46 89q-46 20 -46 89v196q0 34 -18.5 55.5t-45.5 21.5h-61v72h61q57 0 99.5 -41.5t42.5 -107.5v-186q0 -29 13.5 -48.5t38.5 -19.5v-62q-25 0 -38.5 -19.5t-13.5 -48.5v-187q0 -66 -42 -107t-100 -41h-61z" />
    +<glyph unicode="~" horiz-adv-x="507" d="M407 667l73 -9q-4 -51 -12 -89.5t-23.5 -75t-43 -56.5t-65.5 -20q-43 0 -70 28.5t-35.5 62.5t-23 62.5t-36.5 28.5q-54 0 -71 -183l-74 9q5 51 13 89.5t23.5 75t43 56.5t65.5 20q43 0 70 -28.5t35.5 -63t23 -63t36.5 -28.5q56 0 71 184z" />
    +<glyph unicode="&#xa1;" horiz-adv-x="245" d="M59 -184l18 462h91l19 -462h-128zM53 424q0 28 20.5 48.5t48.5 20.5t49 -20.5t21 -48.5t-21 -49t-49 -21t-48.5 20.5t-20.5 49.5z" />
    +<glyph unicode="&#xa2;" horiz-adv-x="497" d="M246 -100v91q-93 14 -150.5 82.5t-57.5 168.5q0 98 57.5 167t150.5 83v73h78v-72q95 -12 149 -84l-69 -64q-31 43 -80 54v-315q49 11 80 54l69 -64q-54 -72 -149 -84v-90h-78zM147 242q0 -57 26.5 -98.5t72.5 -55.5v307q-46 -15 -72.5 -55.5t-26.5 -97.5z" />
    +<glyph unicode="&#xa3;" horiz-adv-x="536" d="M21 268v70h83q-18 23 -28.5 39t-20 42.5t-9.5 54.5q0 87 71 145t164 58q158 0 219 -117l-93 -55q-13 33 -44 54.5t-69 21.5q-51 0 -86 -30t-35 -79q0 -17 3 -32t11 -30.5t13 -23.5l18 -25q13 -17 17 -23h147v-70h-116q3 -14 3 -29q0 -75 -70 -120q24 8 51 8q32 0 72 -18 t66 -18q60 0 90 38l47 -93q-47 -49 -142 -49q-47 0 -98 22.5t-82 22.5q-44 0 -117 -39l-40 82q119 55 119 137q0 28 -13 56h-131z" />
    +<glyph unicode="&#xa4;" horiz-adv-x="612" d="M306 89q-81 0 -143 40l-74 -75l-63 62l74 74q-42 64 -42 143q0 80 43 143l-76 76l63 62l76 -77q61 39 142 39q80 0 141 -39l76 77l63 -63l-75 -75q43 -63 43 -143q0 -81 -43 -144l75 -73l-63 -62l-76 74q-59 -39 -141 -39zM306 183q66 0 104 43.5t38 106.5q0 62 -38 105 t-104 43t-104 -43t-38 -105q0 -63 38 -106.5t104 -43.5z" />
    +<glyph unicode="&#xa5;" horiz-adv-x="637" d="M377 0h-117v118h-237v67h237v92h-237v67h192l-214 323h134l184 -286l182 286h134l-214 -323h194v-67h-238v-92h238v-67h-238v-118z" />
    +<glyph unicode="&#xa6;" horiz-adv-x="214" d="M143 -20h-72v316h72v-316zM143 371h-72v316h72v-316z" />
    +<glyph unicode="&#xa7;" horiz-adv-x="477" d="M434 321q0 -87 -87 -128q87 -36 87 -122q0 -71 -55.5 -111.5t-145.5 -40.5q-121 0 -205 78l46 67q27 -29 69.5 -50t89.5 -21q45 0 72.5 18.5t27.5 51.5q0 25 -21.5 41t-54 23.5t-70.5 18.5t-70.5 24t-54 42.5t-21.5 72.5q0 48 30.5 80t74.5 46q-105 37 -105 125 q0 60 52.5 100.5t137.5 40.5q120 0 187 -69l-43 -63q-52 57 -140 57q-42 0 -67.5 -17.5t-25.5 -47.5q0 -26 30 -41t73 -23.5t86 -21.5t73 -45.5t30 -84.5zM331 303q0 34 -26 52t-70 29q-51 -13 -72 -33.5t-21 -51.5q0 -19 9 -32t29.5 -22.5t36 -14t45.5 -11.5q69 29 69 84z " />
    +<glyph unicode="&#xa8;" horiz-adv-x="285" d="M306 608q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41zM96 608q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42q0 24 17 41t42 17q24 0 41 -17t17 -41z" />
    +<glyph unicode="&#xa9;" horiz-adv-x="778" d="M734 334q0 -143 -101 -244t-244 -101t-244 101.5t-101 243.5q0 143 101 244t244 101t244 -101t101 -244zM700 334q0 128 -91.5 219.5t-219.5 91.5t-219.5 -91.5t-91.5 -219.5t91.5 -219.5t219.5 -91.5t219.5 91.5t91.5 219.5zM512 217l29 -28q-57 -67 -148 -67 q-87 0 -147.5 61t-60.5 152t60.5 151t147.5 60q91 0 147 -66l-29 -28q-42 57 -118 57q-69 0 -117.5 -49t-48.5 -125q0 -75 49 -125.5t117 -50.5q76 0 119 58z" />
    +<glyph unicode="&#xaa;" horiz-adv-x="382" d="M327 326h-77v33q-37 -41 -104 -41q-44 0 -77.5 27.5t-33.5 76.5t33.5 75.5t77.5 26.5q68 0 104 -40v46q0 27 -20.5 43t-52.5 16q-55 0 -95 -43l-31 50q56 52 138 52q61 0 99.5 -28t38.5 -91v-203zM177 367q49 0 73 33v44q-24 32 -73 32q-28 0 -46.5 -15t-18.5 -39 q0 -25 18.5 -40t46.5 -15z" />
    +<glyph unicode="&#xab;" horiz-adv-x="489" d="M459 63h-99l-160 180l160 177h99l-160 -177zM289 63h-99l-160 180l160 177h99l-160 -177z" />
    +<glyph unicode="&#xac;" horiz-adv-x="510" d="M473 463v-258h-70v190h-374v68h444z" />
    +<glyph unicode="&#xad;" horiz-adv-x="300" d="M270 197h-240v90h240v-90z" />
    +<glyph unicode="&#xae;" horiz-adv-x="494" d="M459 465q0 -88 -62 -150t-150 -62t-150 62t-62 150t62 150t150 62q89 0 150.5 -61.5t61.5 -150.5zM428 465q0 76 -53 128.5t-128 52.5q-76 0 -129 -52.5t-53 -128.5q0 -75 53 -128.5t129 -53.5q75 0 128 53.5t53 128.5zM346 343h-41l-63 96h-43v-96h-33v243h99 q32 0 55 -20.5t23 -53.5q0 -35 -22.5 -53.5t-39.5 -18.5zM309 512q0 19 -13.5 32t-30.5 13h-66v-88h66q17 0 30.5 12.5t13.5 30.5z" />
    +<glyph unicode="&#xaf;" horiz-adv-x="363" d="M363 566h-363v62h363v-62z" />
    +<glyph unicode="&#xb0;" horiz-adv-x="302" d="M280 547q0 -54 -38 -91.5t-92 -37.5q-53 0 -91 37.5t-38 91.5q0 53 38 91.5t91 38.5q54 0 92 -38.5t38 -91.5zM220 547q0 29 -21 49.5t-49 20.5t-48 -20.5t-20 -49.5t20 -49t48 -20q29 0 49.5 20.5t20.5 48.5z" />
    +<glyph unicode="&#xb1;" horiz-adv-x="502" d="M473 325h-185v-208h-74v208h-185v67h185v201h74v-201h185v-67zM473 0h-444v67h444v-67z" />
    +<glyph unicode="&#xb2;" horiz-adv-x="393" d="M352 421h-304v59q128 91 174.5 136t46.5 83q0 31 -21.5 47t-53.5 16q-34 0 -64 -15t-46 -36l-43 51q55 65 155 65q66 0 109.5 -32t43.5 -90q0 -51 -44.5 -101.5t-139.5 -117.5h187v-65z" />
    +<glyph unicode="&#xb3;" horiz-adv-x="393" d="M354 531q0 -52 -43.5 -84.5t-115.5 -32.5q-107 0 -159 64l41 52q45 -51 115 -51q39 0 60.5 15.5t21.5 41.5q0 57 -95 57q-37 0 -43 -1v65q8 -1 42 -1q89 0 89 53q0 25 -22.5 39t-57.5 14q-62 0 -107 -46l-39 48q58 63 154 63q70 0 111 -29.5t41 -78.5q0 -37 -26.5 -61.5 t-62.5 -30.5q35 -3 65.5 -28t30.5 -68z" />
    +<glyph unicode="&#xb4;" horiz-adv-x="240" d="M240 700l-165 -144h-75l140 144h100z" />
    +<glyph unicode="&#xb5;" horiz-adv-x="581" d="M173 24v-208h-105v667h105v-304q0 -99 98 -99q37 0 70 18.5t53 45.5v339h105v-352q0 -23 11.5 -36.5t31.5 -13.5q9 0 19 2l7 -89q-20 -6 -50 -6q-97 0 -119 86q-25 -38 -62.5 -62t-80.5 -24q-60 0 -83 36z" />
    +<glyph unicode="&#xb6;" horiz-adv-x="449" d="M392 -100h-55v712h-83v-712h-55v423q-71 0 -121.5 50.5t-50.5 121.5t50.5 121.5t121.5 50.5h193v-767z" />
    +<glyph unicode="&#xb7;" horiz-adv-x="245" d="M192 244q0 -28 -21 -48.5t-49 -20.5t-49 20.5t-21 48.5t21 49t49 21t49 -21t21 -49z" />
    +<glyph unicode="&#xb8;" horiz-adv-x="214" d="M106 -194q-67 0 -106 31l22 46q36 -29 81 -29q23 0 39.5 9.5t16.5 26.5q0 30 -33 30q-21 0 -34 -15l-41 23l31 83h55l-26 -64q16 11 36 11q29 0 48 -19.5t19 -49.5q0 -37 -31 -60t-77 -23z" />
    +<glyph unicode="&#xb9;" horiz-adv-x="264" d="M204 421h-81v296l-67 -69l-46 49l124 124h70v-400z" />
    +<glyph unicode="&#xba;" horiz-adv-x="405" d="M202 318q-75 0 -121.5 47.5t-46.5 117.5t46.5 117.5t121.5 47.5q77 0 123 -47.5t46 -117.5t-46 -117.5t-123 -47.5zM202 381q41 0 65 28t24 74q0 45 -24 72.5t-65 27.5t-64.5 -27.5t-23.5 -72.5q0 -46 23.5 -74t64.5 -28z" />
    +<glyph unicode="&#xbb;" horiz-adv-x="489" d="M289 243l-160 -180h-99l160 180l-160 177h99zM459 243l-160 -180h-99l160 180l-160 177h99z" />
    +<glyph unicode="&#xbc;" horiz-adv-x="806" d="M204 267h-81v296l-67 -69l-46 49l124 124h70v-400zM776 92h-55v-92h-80v92h-196v56l164 252h112v-244h55v-64zM641 156v175l-116 -175h116zM619 667l-427 -667h-67l426 667h68z" />
    +<glyph unicode="&#xbd;" horiz-adv-x="841" d="M204 267h-81v296l-67 -69l-46 49l124 124h70v-400zM799 0h-304v59q128 91 174.5 136t46.5 83q0 31 -21.5 47t-53.5 16q-34 0 -64 -15t-46 -36l-43 51q55 65 155 65q66 0 109.5 -32t43.5 -90q0 -51 -44.5 -101.5t-139.5 -117.5h187v-65zM619 667l-427 -667h-67l426 667h68 z" />
    +<glyph unicode="&#xbe;" horiz-adv-x="902" d="M873 92h-55v-92h-80v92h-196v56l164 252h112v-244h55v-64zM738 156v175l-116 -175h116zM715 667l-427 -667h-67l426 667h68zM354 377q0 -52 -43.5 -84.5t-115.5 -32.5q-107 0 -159 64l41 52q45 -51 115 -51q39 0 60.5 15.5t21.5 41.5q0 57 -95 57q-37 0 -43 -1v65 q8 -1 42 -1q89 0 89 53q0 25 -22.5 39t-57.5 14q-62 0 -107 -46l-39 48q58 63 154 63q70 0 111 -29.5t41 -78.5q0 -37 -26.5 -61.5t-62.5 -30.5q35 -3 65.5 -28t30.5 -68z" />
    +<glyph unicode="&#xbf;" horiz-adv-x="396" d="M269 285q36 -35 36 -85q0 -41 -25 -73.5t-55.5 -50.5t-55.5 -43t-25 -53q0 -31 24.5 -51.5t70.5 -20.5q82 0 139 70l67 -75q-81 -99 -218 -99q-93 0 -148 44t-55 113q0 41 18.5 73.5t45 53t52.5 38.5t44.5 39.5t18.5 45.5q0 26 -22 45zM233 493q29 0 49.5 -20.5 t20.5 -49.5q0 -28 -21 -48.5t-49 -20.5t-49 20.5t-21 48.5q0 29 20.5 49.5t49.5 20.5z" />
    +<glyph unicode="&#xc0;" d="M671 0h-133l-49 128h-306l-49 -128h-133l262 667h146zM456 231l-120 318l-120 -318h240zM398 723h-75l-165 144h100z" />
    +<glyph unicode="&#xc1;" d="M671 0h-133l-49 128h-306l-49 -128h-133l262 667h146zM456 231l-120 318l-120 -318h240zM516 867l-165 -144h-75l140 144h100z" />
    +<glyph unicode="&#xc2;" d="M480 723h-67l-77 96l-75 -96h-66l93 144h96zM671 0h-133l-49 128h-306l-49 -128h-133l262 667h146zM456 231l-120 318l-120 -318h240z" />
    +<glyph unicode="&#xc3;" d="M671 0h-133l-49 128h-306l-49 -128h-133l262 667h146zM456 231l-120 318l-120 -318h240zM394 721q-19 0 -34.5 8t-25.5 19.5t-18.5 23t-19 19.5t-21.5 8q-18 0 -30 -18t-12 -54h-57q0 62 26.5 98t76.5 36q30 0 50.5 -19.5t36 -39t32.5 -19.5q41 0 41 72h58 q0 -62 -26.5 -98t-76.5 -36z" />
    +<glyph unicode="&#xc4;" d="M500 775q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41zM290 775q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42q0 24 17 41t42 17q24 0 41 -17t17 -41zM671 0h-133l-49 128h-306l-49 -128h-133l262 667h146zM456 231l-120 318 l-120 -318h240z" />
    +<glyph unicode="&#xc5;" d="M671 0h-133l-49 128h-306l-49 -128h-133l262 667h146zM456 231l-120 318l-120 -318h240zM337 689q-42 0 -72 30t-30 72t30 72.5t72 30.5t71.5 -30.5t29.5 -72.5t-29.5 -72t-71.5 -30zM337 739q21 0 36 15.5t15 36.5q0 22 -14.5 37t-36.5 15q-21 0 -36.5 -15t-15.5 -37 q0 -21 15.5 -36.5t36.5 -15.5z" />
    +<glyph unicode="&#xc6;" horiz-adv-x="959" d="M912 0h-457v128h-247l-77 -128h-133l410 667h504v-103h-340v-173h333v-103h-333v-185h340v-103zM455 231v318l-191 -318h191z" />
    +<glyph unicode="&#xc7;" horiz-adv-x="682" d="M385 -190q-67 0 -106 31l22 46q36 -29 81 -29q23 0 39.5 9.5t16.5 26.5q0 30 -33 30q-21 0 -34 -15l-41 23l21 58q-135 13 -222.5 107.5t-87.5 235.5q0 152 100 248.5t250 96.5q174 0 268 -150l-100 -51q-25 43 -70.5 70t-97.5 27q-99 0 -164.5 -68t-65.5 -173t65.5 -173 t164.5 -68q53 0 98 27t70 70l100 -51q-91 -144 -254 -150l-15 -37q16 11 36 11q29 0 48 -19.5t19 -49.5q0 -37 -31 -60t-77 -23z" />
    +<glyph unicode="&#xc8;" horiz-adv-x="577" d="M528 0h-457v667h457v-103h-340v-173h333v-103h-333v-185h340v-103zM360 723h-75l-165 144h100z" />
    +<glyph unicode="&#xc9;" horiz-adv-x="577" d="M478 867l-165 -144h-75l140 144h100zM528 0h-457v667h457v-103h-340v-173h333v-103h-333v-185h340v-103z" />
    +<glyph unicode="&#xca;" horiz-adv-x="577" d="M442 723h-67l-77 96l-75 -96h-66l93 144h96zM528 0h-457v667h457v-103h-340v-173h333v-103h-333v-185h340v-103z" />
    +<glyph unicode="&#xcb;" horiz-adv-x="577" d="M463 775q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41zM253 775q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42q0 24 17 41t42 17q24 0 41 -17t17 -41zM528 0h-457v667h457v-103h-340v-173h333v-103h-333v-185h340v-103z" />
    +<glyph unicode="&#xcc;" horiz-adv-x="259" d="M188 0h-117v667h117v-667zM190 723h-75l-165 144h100z" />
    +<glyph unicode="&#xcd;" horiz-adv-x="259" d="M188 0h-117v667h117v-667zM310 867l-165 -144h-75l140 144h100z" />
    +<glyph unicode="&#xce;" horiz-adv-x="259" d="M273 723h-67l-77 96l-75 -96h-66l93 144h96zM188 0h-117v667h117v-667z" />
    +<glyph unicode="&#xcf;" horiz-adv-x="259" d="M294 775q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41zM84 775q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42q0 24 17 41t42 17q24 0 41 -17t17 -41zM188 0h-117v667h117v-667z" />
    +<glyph unicode="&#xd0;" horiz-adv-x="736" d="M345 0h-248v285h-88v86h88v296h248q155 0 252 -93t97 -241q0 -147 -96.5 -240t-252.5 -93zM345 103q105 0 167 66t62 164q0 101 -60.5 166t-168.5 65h-131v-193h158v-86h-158v-182h131z" />
    +<glyph unicode="&#xd1;" horiz-adv-x="720" d="M416 721q-19 0 -34.5 8t-25.5 19.5t-18.5 23t-19 19.5t-21.5 8q-18 0 -30 -18t-12 -54h-57q0 62 26.5 98t76.5 36q30 0 50.5 -19.5t36 -39t32.5 -19.5q41 0 41 72h58q0 -62 -26.5 -98t-76.5 -36zM649 0h-113l-348 476v-476h-117v667h120l341 -463v463h117v-667z" />
    +<glyph unicode="&#xd2;" horiz-adv-x="765" d="M444 723h-75l-165 144h100zM382 -12q-149 0 -245 97.5t-96 247.5t96 247.5t245 97.5t245 -97.5t96 -247.5t-96 -247.5t-245 -97.5zM382 92q99 0 160 68.5t61 172.5q0 105 -61 173t-160 68q-100 0 -160.5 -68t-60.5 -173t60.5 -173t160.5 -68z" />
    +<glyph unicode="&#xd3;" horiz-adv-x="765" d="M562 867l-165 -144h-75l140 144h100zM382 -12q-149 0 -245 97.5t-96 247.5t96 247.5t245 97.5t245 -97.5t96 -247.5t-96 -247.5t-245 -97.5zM382 92q99 0 160 68.5t61 172.5q0 105 -61 173t-160 68q-100 0 -160.5 -68t-60.5 -173t60.5 -173t160.5 -68z" />
    +<glyph unicode="&#xd4;" horiz-adv-x="765" d="M527 723h-67l-77 96l-75 -96h-66l93 144h96zM382 -12q-149 0 -245 97.5t-96 247.5t96 247.5t245 97.5t245 -97.5t96 -247.5t-96 -247.5t-245 -97.5zM382 92q99 0 160 68.5t61 172.5q0 105 -61 173t-160 68q-100 0 -160.5 -68t-60.5 -173t60.5 -173t160.5 -68z" />
    +<glyph unicode="&#xd5;" horiz-adv-x="765" d="M382 -12q-149 0 -245 97.5t-96 247.5t96 247.5t245 97.5t245 -97.5t96 -247.5t-96 -247.5t-245 -97.5zM382 92q99 0 160 68.5t61 172.5q0 105 -61 173t-160 68q-100 0 -160.5 -68t-60.5 -173t60.5 -173t160.5 -68zM440 721q-19 0 -34.5 8t-25.5 19.5t-18.5 23t-19 19.5 t-21.5 8q-18 0 -30 -18t-12 -54h-57q0 62 26.5 98t76.5 36q30 0 50.5 -19.5t36 -39t32.5 -19.5q41 0 41 72h58q0 -62 -26.5 -98t-76.5 -36z" />
    +<glyph unicode="&#xd6;" horiz-adv-x="765" d="M546 775q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41zM336 775q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42q0 24 17 41t42 17q24 0 41 -17t17 -41zM382 -12q-149 0 -245 97.5t-96 247.5t96 247.5t245 97.5t245 -97.5 t96 -247.5t-96 -247.5t-245 -97.5zM382 92q99 0 160 68.5t61 172.5q0 105 -61 173t-160 68q-100 0 -160.5 -68t-60.5 -173t60.5 -173t160.5 -68z" />
    +<glyph unicode="&#xd7;" horiz-adv-x="502" d="M395 142l-144 144l-144 -144l-48 47l144 145l-144 144l48 48l144 -145l144 145l48 -48l-144 -144l144 -145z" />
    +<glyph unicode="&#xd8;" horiz-adv-x="765" d="M382 -12q-101 0 -179 46l-25 -34h-87l55 76q-105 99 -105 257q0 150 96 247.5t245 97.5q93 0 170 -41l22 30h87l-51 -71q113 -100 113 -263q0 -150 -96 -247.5t-245 -97.5zM382 92q99 0 160 68.5t61 172.5t-60 172l-276 -383q51 -30 115 -30zM161 333q0 -98 52 -164 l275 379q-47 26 -106 26q-100 0 -160.5 -68t-60.5 -173z" />
    +<glyph unicode="&#xd9;" horiz-adv-x="719" d="M360 -12q-142 0 -215.5 74t-73.5 201v404h118v-400q0 -81 44.5 -128t126.5 -47t126 47t44 128v400h118v-403q0 -128 -73.5 -202t-214.5 -74zM421 723h-75l-165 144h100z" />
    +<glyph unicode="&#xda;" horiz-adv-x="719" d="M539 867l-165 -144h-75l140 144h100zM360 -12q-142 0 -215.5 74t-73.5 201v404h118v-400q0 -81 44.5 -128t126.5 -47t126 47t44 128v400h118v-403q0 -128 -73.5 -202t-214.5 -74z" />
    +<glyph unicode="&#xdb;" horiz-adv-x="719" d="M504 723h-67l-77 96l-75 -96h-66l93 144h96zM360 -12q-142 0 -215.5 74t-73.5 201v404h118v-400q0 -81 44.5 -128t126.5 -47t126 47t44 128v400h118v-403q0 -128 -73.5 -202t-214.5 -74z" />
    +<glyph unicode="&#xdc;" horiz-adv-x="719" d="M525 775q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41zM315 775q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42q0 24 17 41t42 17q24 0 41 -17t17 -41zM360 -12q-142 0 -215.5 74t-73.5 201v404h118v-400q0 -81 44.5 -128 t126.5 -47t126 47t44 128v400h118v-403q0 -128 -73.5 -202t-214.5 -74z" />
    +<glyph unicode="&#xdd;" horiz-adv-x="637" d="M377 0h-117v277l-259 390h134l184 -286l182 286h134l-258 -390v-277zM497 867l-165 -144h-75l140 144h100z" />
    +<glyph unicode="&#xde;" horiz-adv-x="608" d="M188 0h-117v667h117v-113h176q101 0 159.5 -60.5t58.5 -149.5q0 -88 -58.5 -147.5t-159.5 -59.5h-176v-137zM348 240q50 0 82 29t32 76t-32 76.5t-82 29.5h-160v-211h160z" />
    +<glyph unicode="&#xdf;" horiz-adv-x="623" d="M606 140q0 -66 -52.5 -109t-142.5 -43q-67 0 -109.5 20t-82.5 58l47 73q22 -29 61.5 -48t83.5 -19q45 0 69.5 19t24.5 46q0 22 -20 36t-50.5 20.5t-65.5 17.5t-65.5 24.5t-50.5 42.5t-20 71q0 36 21 65t45.5 44t45.5 33t21 35q0 27 -26.5 42.5t-60.5 15.5q-46 0 -76 -27 t-30 -72v-485h-105v485q0 81 58 136.5t155 55.5q78 0 135 -38t57 -99q0 -37 -21.5 -66t-48 -44t-48 -35t-21.5 -43q0 -20 20 -32t50.5 -17.5t65.5 -16.5t65.5 -24.5t50.5 -45t20 -76.5z" />
    +<glyph unicode="&#xe0;" horiz-adv-x="536" d="M468 0h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320zM248 60q79 0 115 50v73q-36 50 -115 50q-45 0 -74 -24t-29 -63t29 -62.5 t74 -23.5zM328 556h-75l-165 144h100z" />
    +<glyph unicode="&#xe1;" horiz-adv-x="536" d="M468 0h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320zM248 60q79 0 115 50v73q-36 50 -115 50q-45 0 -74 -24t-29 -63t29 -62.5 t74 -23.5zM446 700l-165 -144h-75l140 144h100z" />
    +<glyph unicode="&#xe2;" horiz-adv-x="536" d="M468 0h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320zM248 60q79 0 115 50v73q-36 50 -115 50q-45 0 -74 -24t-29 -63t29 -62.5 t74 -23.5zM410 556h-67l-77 96l-75 -96h-66l93 144h96z" />
    +<glyph unicode="&#xe3;" horiz-adv-x="536" d="M468 0h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320zM248 60q79 0 115 50v73q-36 50 -115 50q-45 0 -74 -24t-29 -63t29 -62.5 t74 -23.5zM325 554q-19 0 -34.5 8t-25.5 19.5t-18.5 23t-19 19.5t-21.5 8q-18 0 -30 -18t-12 -54h-57q0 62 26.5 98t76.5 36q30 0 50.5 -19.5t36 -39t32.5 -19.5q41 0 41 72h58q0 -62 -26.5 -98t-76.5 -36z" />
    +<glyph unicode="&#xe4;" horiz-adv-x="536" d="M468 0h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320zM248 60q79 0 115 50v73q-36 50 -115 50q-45 0 -74 -24t-29 -63t29 -62.5 t74 -23.5zM431 608q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41zM221 608q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42q0 24 17 41t42 17q24 0 41 -17t17 -41z" />
    +<glyph unicode="&#xe5;" horiz-adv-x="536" d="M468 0h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320zM248 60q79 0 115 50v73q-36 50 -115 50q-45 0 -74 -24t-29 -63t29 -62.5 t74 -23.5zM268 536q-42 0 -72 30t-30 72t30 72.5t72 30.5t71.5 -30.5t29.5 -72.5t-29.5 -72t-71.5 -30zM268 586q21 0 36 15.5t15 36.5q0 22 -14.5 37t-36.5 15q-21 0 -36.5 -15t-15.5 -37q0 -21 15.5 -36.5t36.5 -15.5z" />
    +<glyph unicode="&#xe6;" horiz-adv-x="878" d="M842 207h-351q6 -57 43.5 -94t98.5 -37q34 0 69 14t58 39l48 -71q-35 -33 -84 -51.5t-96 -18.5q-132 0 -190 98q-29 -44 -83.5 -71t-119.5 -27q-82 0 -139 41.5t-57 117.5q0 75 51 116.5t126 41.5q110 0 170 -60v71q0 41 -34 65t-89 24q-89 0 -156 -61l-43 73 q84 78 208 78q137 0 174 -93q64 93 177 93q100 0 159.5 -73.5t59.5 -189.5v-25zM490 281h250q-2 50 -33.5 89t-91.5 39q-57 0 -89.5 -39t-35.5 -89zM386 175v7q-45 51 -128 51q-50 0 -81.5 -20.5t-31.5 -58.5t31 -58t82 -20t89.5 31.5t38.5 67.5z" />
    +<glyph unicode="&#xe7;" horiz-adv-x="497" d="M290 -192q-67 0 -106 31l22 46q36 -29 81 -29q23 0 39.5 9.5t16.5 26.5q0 30 -33 30q-21 0 -34 -15l-41 23l22 60q-98 10 -158.5 79.5t-60.5 172.5q0 110 70 181.5t180 71.5q121 0 185 -86l-69 -64q-40 57 -111 57q-66 0 -106 -44.5t-40 -115.5t40 -116t106 -45 q69 0 111 57l69 -64q-57 -77 -162 -85l-16 -40q16 11 36 11q29 0 48 -19.5t19 -49.5q0 -37 -31 -60t-77 -23z" />
    +<glyph unicode="&#xe8;" horiz-adv-x="557" d="M291 -12q-110 0 -181.5 70.5t-71.5 183.5q0 106 69.5 179.5t175.5 73.5q107 0 172.5 -74t65.5 -189v-25h-373q6 -57 47 -95t107 -38q37 0 74.5 14t62.5 39l48 -69q-73 -70 -196 -70zM419 281q-2 50 -36.5 89t-99.5 39q-62 0 -97 -38.5t-39 -89.5h272zM345 556h-75 l-165 144h100z" />
    +<glyph unicode="&#xe9;" horiz-adv-x="557" d="M463 700l-165 -144h-75l140 144h100zM291 -12q-110 0 -181.5 70.5t-71.5 183.5q0 106 69.5 179.5t175.5 73.5q107 0 172.5 -74t65.5 -189v-25h-373q6 -57 47 -95t107 -38q37 0 74.5 14t62.5 39l48 -69q-73 -70 -196 -70zM419 281q-2 50 -36.5 89t-99.5 39 q-62 0 -97 -38.5t-39 -89.5h272z" />
    +<glyph unicode="&#xea;" horiz-adv-x="557" d="M427 556h-67l-77 96l-75 -96h-66l93 144h96zM291 -12q-110 0 -181.5 70.5t-71.5 183.5q0 106 69.5 179.5t175.5 73.5q107 0 172.5 -74t65.5 -189v-25h-373q6 -57 47 -95t107 -38q37 0 74.5 14t62.5 39l48 -69q-73 -70 -196 -70zM419 281q-2 50 -36.5 89t-99.5 39 q-62 0 -97 -38.5t-39 -89.5h272z" />
    +<glyph unicode="&#xeb;" horiz-adv-x="557" d="M448 608q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41zM238 608q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42q0 24 17 41t42 17q24 0 41 -17t17 -41zM291 -12q-110 0 -181.5 70.5t-71.5 183.5q0 106 69.5 179.5t175.5 73.5 q107 0 172.5 -74t65.5 -189v-25h-373q6 -57 47 -95t107 -38q37 0 74.5 14t62.5 39l48 -69q-73 -70 -196 -70zM419 281q-2 50 -36.5 89t-99.5 39q-62 0 -97 -38.5t-39 -89.5h272z" />
    +<glyph unicode="&#xec;" horiz-adv-x="241" d="M173 0h-105v483h105v-483zM181 556h-75l-165 144h100z" />
    +<glyph unicode="&#xed;" horiz-adv-x="241" d="M300 700l-165 -144h-75l140 144h100zM173 0h-105v483h105v-483z" />
    +<glyph unicode="&#xee;" horiz-adv-x="241" d="M263 556h-67l-77 96l-75 -96h-66l93 144h96zM173 0h-105v483h105v-483z" />
    +<glyph unicode="&#xef;" horiz-adv-x="241" d="M284 608q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41zM74 608q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42q0 24 17 41t42 17q24 0 41 -17t17 -41zM173 0h-105v483h105v-483z" />
    +<glyph unicode="&#xf0;" horiz-adv-x="573" d="M111 481l-22 52l112 49q-13 9 -37 23.5t-30 18.5l57 85q64 -38 118 -79l105 46l22 -51l-78 -35q177 -155 177 -340q0 -117 -67 -189.5t-182 -72.5q-111 0 -179.5 67.5t-68.5 172.5q0 104 61.5 172t155.5 68q99 0 159 -91q-40 81 -158 168zM286 81q65 0 102.5 42.5 t37.5 104.5t-37.5 104.5t-102.5 42.5q-64 0 -101.5 -42.5t-37.5 -104.5t37.5 -104.5t101.5 -42.5z" />
    +<glyph unicode="&#xf1;" horiz-adv-x="567" d="M499 0h-105v302q0 100 -97 100q-38 0 -71 -19t-53 -46v-337h-105v483h105v-66q27 32 72 55t98 23q77 0 116.5 -40t39.5 -115v-340zM342 554q-19 0 -34.5 8t-25.5 19.5t-18.5 23t-19 19.5t-21.5 8q-18 0 -30 -18t-12 -54h-57q0 62 26.5 98t76.5 36q30 0 50.5 -19.5t36 -39 t32.5 -19.5q41 0 41 72h58q0 -62 -26.5 -98t-76.5 -36z" />
    +<glyph unicode="&#xf2;" horiz-adv-x="573" d="M286 -12q-112 0 -180 73.5t-68 180.5t68 180t180 73q113 0 181 -73t68 -180q0 -108 -68 -181t-181 -73zM286 81q65 0 102.5 46.5t37.5 114.5q0 67 -37.5 113.5t-102.5 46.5q-64 0 -101.5 -46.5t-37.5 -113.5q0 -68 37.5 -114.5t101.5 -46.5zM348 556h-75l-165 144h100z " />
    +<glyph unicode="&#xf3;" horiz-adv-x="573" d="M466 700l-165 -144h-75l140 144h100zM286 -12q-112 0 -180 73.5t-68 180.5t68 180t180 73q113 0 181 -73t68 -180q0 -108 -68 -181t-181 -73zM286 81q65 0 102.5 46.5t37.5 114.5q0 67 -37.5 113.5t-102.5 46.5q-64 0 -101.5 -46.5t-37.5 -113.5q0 -68 37.5 -114.5 t101.5 -46.5z" />
    +<glyph unicode="&#xf4;" horiz-adv-x="573" d="M429 556h-67l-77 96l-75 -96h-66l93 144h96zM286 -12q-112 0 -180 73.5t-68 180.5t68 180t180 73q113 0 181 -73t68 -180q0 -108 -68 -181t-181 -73zM286 81q65 0 102.5 46.5t37.5 114.5q0 67 -37.5 113.5t-102.5 46.5q-64 0 -101.5 -46.5t-37.5 -113.5 q0 -68 37.5 -114.5t101.5 -46.5z" />
    +<glyph unicode="&#xf5;" horiz-adv-x="573" d="M286 -12q-112 0 -180 73.5t-68 180.5t68 180t180 73q113 0 181 -73t68 -180q0 -108 -68 -181t-181 -73zM286 81q65 0 102.5 46.5t37.5 114.5q0 67 -37.5 113.5t-102.5 46.5q-64 0 -101.5 -46.5t-37.5 -113.5q0 -68 37.5 -114.5t101.5 -46.5zM344 554q-19 0 -34.5 8 t-25.5 19.5t-18.5 23t-19 19.5t-21.5 8q-18 0 -30 -18t-12 -54h-57q0 62 26.5 98t76.5 36q30 0 50.5 -19.5t36 -39t32.5 -19.5q41 0 41 72h58q0 -62 -26.5 -98t-76.5 -36z" />
    +<glyph unicode="&#xf6;" horiz-adv-x="573" d="M450 608q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41zM240 608q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42q0 24 17 41t42 17q24 0 41 -17t17 -41zM286 -12q-112 0 -180 73.5t-68 180.5t68 180t180 73q113 0 181 -73t68 -180 q0 -108 -68 -181t-181 -73zM286 81q65 0 102.5 46.5t37.5 114.5q0 67 -37.5 113.5t-102.5 46.5q-64 0 -101.5 -46.5t-37.5 -113.5q0 -68 37.5 -114.5t101.5 -46.5z" />
    +<glyph unicode="&#xf7;" horiz-adv-x="511" d="M310 520q0 -22 -16 -38.5t-39 -16.5q-22 0 -38 16t-16 39q0 22 15.5 38t38.5 16t39 -16t16 -38zM482 303h-453v68h453v-68zM310 151q0 -22 -16 -38t-39 -16t-38.5 15.5t-15.5 38.5t16 39t38 16q23 0 39 -16t16 -39z" />
    +<glyph unicode="&#xf8;" horiz-adv-x="573" d="M118 0h-68l53 64q-65 71 -65 178t68 180t180 73q78 0 140 -39l22 27h69l-50 -61q68 -71 68 -180q0 -108 -68 -181t-181 -73q-84 0 -143 42zM286 81q65 0 102.5 46.5t37.5 114.5q0 58 -27 98l-193 -233q36 -26 80 -26zM147 242q0 -54 24 -95l191 232q-34 23 -76 23 q-64 0 -101.5 -46.5t-37.5 -113.5z" />
    +<glyph unicode="&#xf9;" horiz-adv-x="567" d="M499 0h-105v64q-68 -76 -171 -76q-155 0 -155 153v342h105v-304q0 -53 25 -75.5t72 -22.5q38 0 71 18t53 45v339h105v-483zM344 556h-75l-165 144h100z" />
    +<glyph unicode="&#xfa;" horiz-adv-x="567" d="M462 700l-165 -144h-75l140 144h100zM499 0h-105v64q-68 -76 -171 -76q-155 0 -155 153v342h105v-304q0 -53 25 -75.5t72 -22.5q38 0 71 18t53 45v339h105v-483z" />
    +<glyph unicode="&#xfb;" horiz-adv-x="567" d="M426 556h-67l-77 96l-75 -96h-66l93 144h96zM499 0h-105v64q-68 -76 -171 -76q-155 0 -155 153v342h105v-304q0 -53 25 -75.5t72 -22.5q38 0 71 18t53 45v339h105v-483z" />
    +<glyph unicode="&#xfc;" horiz-adv-x="567" d="M446 608q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41zM236 608q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42q0 24 17 41t42 17q24 0 41 -17t17 -41zM499 0h-105v64q-68 -76 -171 -76q-155 0 -155 153v342h105v-304 q0 -53 25 -75.5t72 -22.5q38 0 71 18t53 45v339h105v-483z" />
    +<glyph unicode="&#xfd;" horiz-adv-x="503" d="M47 -189l16 94q18 -8 40 -8q51 0 69 42l24 55l-198 489h112l141 -362l141 362h113l-233 -570q-43 -107 -166 -109q-33 0 -59 7zM430 700l-165 -144h-75l140 144h100z" />
    +<glyph unicode="&#xfe;" horiz-adv-x="578" d="M328 -12q-96 0 -155 79v-251h-105v851h105v-250q59 78 155 78q95 0 154.5 -68t59.5 -185t-59.5 -185.5t-154.5 -68.5zM297 81q62 0 99 45t37 116t-37 115.5t-99 44.5q-36 0 -71 -19t-53 -46v-191q18 -27 53 -46t71 -19z" />
    +<glyph unicode="&#xff;" horiz-adv-x="503" d="M47 -189l16 94q18 -8 40 -8q51 0 69 42l24 55l-198 489h112l141 -362l141 362h113l-233 -570q-43 -107 -166 -109q-33 0 -59 7zM415 608q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41zM205 608q0 -25 -17 -42t-41 -17 q-25 0 -42 17t-17 42q0 24 17 41t42 17q24 0 41 -17t17 -41z" />
    +<glyph unicode="&#x152;" horiz-adv-x="1093" d="M1045 0h-457v96q-34 -52 -93.5 -80t-123.5 -28q-145 0 -237.5 97.5t-92.5 247.5t92.5 247t237.5 97q64 0 123.5 -28t93.5 -79v97h457v-103h-340v-173h333v-103h-333v-185h340v-103zM588 227v212q-26 65 -79 99.5t-123 34.5q-103 0 -164 -67.5t-61 -172.5t61.5 -173 t163.5 -68q69 0 122.5 35t79.5 100z" />
    +<glyph unicode="&#x153;" horiz-adv-x="944" d="M908 207h-372q6 -57 46.5 -95t106.5 -38q83 0 138 53l48 -69q-75 -70 -196 -70q-129 0 -200 120q-69 -120 -193 -120q-112 0 -180 73.5t-68 180.5t68 180t180 73q123 0 194 -121q67 121 191 121q107 0 172 -73.5t65 -189.5v-25zM535 281h272q-3 50 -37.5 89t-99.5 39 q-62 0 -97 -39t-38 -89zM426 242q0 69 -38 114.5t-102 45.5q-63 0 -101 -45.5t-38 -114.5q0 -70 38 -116t101 -46q64 0 102 46t38 116z" />
    +<glyph unicode="&#x178;" horiz-adv-x="637" d="M483 775q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41zM273 775q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42q0 24 17 41t42 17q24 0 41 -17t17 -41zM377 0h-117v277l-259 390h134l184 -286l182 286h134l-258 -390v-277z" />
    +<glyph unicode="&#x2c6;" horiz-adv-x="285" d="M285 556h-67l-77 96l-75 -96h-66l93 144h96z" />
    +<glyph unicode="&#x2dc;" horiz-adv-x="321" d="M218 554q-19 0 -34.5 8t-25.5 19.5t-18.5 23t-19 19.5t-21.5 8q-18 0 -30 -18t-12 -54h-57q0 62 26.5 98t76.5 36q30 0 50.5 -19.5t36 -39t32.5 -19.5q41 0 41 72h58q0 -62 -26.5 -98t-76.5 -36z" />
    +<glyph unicode="&#x2000;" horiz-adv-x="447" />
    +<glyph unicode="&#x2001;" horiz-adv-x="894" />
    +<glyph unicode="&#x2002;" horiz-adv-x="447" />
    +<glyph unicode="&#x2003;" horiz-adv-x="894" />
    +<glyph unicode="&#x2004;" horiz-adv-x="298" />
    +<glyph unicode="&#x2005;" horiz-adv-x="223" />
    +<glyph unicode="&#x2006;" horiz-adv-x="149" />
    +<glyph unicode="&#x2007;" horiz-adv-x="149" />
    +<glyph unicode="&#x2008;" horiz-adv-x="111" />
    +<glyph unicode="&#x2009;" horiz-adv-x="178" />
    +<glyph unicode="&#x200a;" horiz-adv-x="49" />
    +<glyph unicode="&#x2010;" horiz-adv-x="300" d="M270 197h-240v90h240v-90z" />
    +<glyph unicode="&#x2011;" horiz-adv-x="300" d="M270 197h-240v90h240v-90z" />
    +<glyph unicode="&#x2013;" horiz-adv-x="593" d="M563 197h-533v90h533v-90z" />
    +<glyph unicode="&#x2014;" horiz-adv-x="833" d="M803 197h-773v90h773v-90z" />
    +<glyph unicode="&#x2018;" horiz-adv-x="244" d="M42 507q0 50 25.5 95t68.5 75l47 -38q-25 -15 -46 -42t-26 -52q6 2 17 2q26 0 43 -17.5t17 -45.5t-20 -48t-48 -20q-32 0 -55 24.5t-23 66.5z" />
    +<glyph unicode="&#x2019;" horiz-adv-x="244" d="M198 586q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5t20 48.5t48 20.5q32 0 55 -24.5t23 -66.5z" />
    +<glyph unicode="&#x201a;" horiz-adv-x="245" d="M198 38q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5t20 48.5t48 20.5q32 0 55 -24.5t23 -66.5z" />
    +<glyph unicode="&#x201c;" horiz-adv-x="429" d="M46 507q0 50 25.5 95t67.5 75l48 -38q-25 -15 -46.5 -42t-25.5 -52q4 2 17 2q25 0 42 -18t17 -45q0 -28 -20 -48t-48 -20q-32 0 -54.5 24.5t-22.5 66.5zM231 507q0 50 25.5 95t67.5 75l48 -38q-25 -15 -46.5 -42t-25.5 -52q4 2 17 2q25 0 42 -18t17 -45q0 -28 -20 -48 t-48 -20q-32 0 -54.5 24.5t-22.5 66.5z" />
    +<glyph unicode="&#x201d;" horiz-adv-x="429" d="M383 586q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5t20 48.5t48 20.5q32 0 55 -24.5t23 -66.5zM198 586q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5t20 48.5 t48 20.5q32 0 55 -24.5t23 -66.5z" />
    +<glyph unicode="&#x201e;" horiz-adv-x="430" d="M198 38q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5t20 48.5t48 20.5q32 0 55 -24.5t23 -66.5zM383 38q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5t20 48.5 t48 20.5q32 0 55 -24.5t23 -66.5z" />
    +<glyph unicode="&#x2022;" horiz-adv-x="358" d="M294 242q0 -47 -33.5 -80t-80.5 -33t-80.5 33t-33.5 80t33.5 80.5t80.5 33.5t80.5 -33.5t33.5 -80.5z" />
    +<glyph unicode="&#x2026;" horiz-adv-x="734" d="M191 59q0 -28 -21 -48.5t-49 -20.5t-48.5 20.5t-20.5 48.5q0 29 20.5 49.5t48.5 20.5q29 0 49.5 -20.5t20.5 -49.5zM436 59q0 -28 -21 -48.5t-49 -20.5t-48.5 20.5t-20.5 48.5q0 29 20.5 49.5t48.5 20.5t49 -20.5t21 -49.5zM681 59q0 -28 -21 -48.5t-49 -20.5t-48.5 20.5 t-20.5 48.5q0 29 20.5 49.5t48.5 20.5q29 0 49.5 -20.5t20.5 -49.5z" />
    +<glyph unicode="&#x202f;" horiz-adv-x="178" />
    +<glyph unicode="&#x2039;" horiz-adv-x="319" d="M289 63h-99l-160 180l160 177h99l-160 -177z" />
    +<glyph unicode="&#x203a;" horiz-adv-x="319" d="M289 243l-160 -180h-99l160 180l-160 177h99z" />
    +<glyph unicode="&#x205f;" horiz-adv-x="223" />
    +<glyph unicode="&#x20ac;" horiz-adv-x="703" d="M413 -12q-122 0 -213.5 65.5t-122.5 176.5h-52v67h39q-1 11 -1 36q0 12 2 38h-40v67h52q32 109 123.5 174.5t212.5 65.5q174 0 268 -150l-100 -51q-25 43 -70.5 70t-97.5 27q-71 0 -127 -36.5t-82 -99.5h270v-67h-289q-2 -24 -2 -38q0 -25 2 -36h289v-67h-271 q27 -64 82.5 -101t127.5 -37q53 0 98 27t70 70l100 -51q-96 -150 -268 -150z" />
    +<glyph unicode="&#x2122;" horiz-adv-x="454" d="M419 447h-28v182l-75 -182h-8l-75 182v-182h-28v220h43l64 -160l64 160h43v-220zM169 641h-62v-194h-28v194h-62v26h152v-26z" />
    +</font>
    +</defs></svg> 
    \ No newline at end of file
    diff --git a/stylesheets/ProximaNova-Sbold-webfont.ttf b/stylesheets/ProximaNova-Sbold-webfont.ttf
    new file mode 100644
    index 0000000..846a241
    Binary files /dev/null and b/stylesheets/ProximaNova-Sbold-webfont.ttf differ
    diff --git a/stylesheets/ProximaNova-Sbold-webfont.woff b/stylesheets/ProximaNova-Sbold-webfont.woff
    new file mode 100644
    index 0000000..1ddc005
    Binary files /dev/null and b/stylesheets/ProximaNova-Sbold-webfont.woff differ
    diff --git a/stylesheets/ProximaNova-Xbold-webfont.eot b/stylesheets/ProximaNova-Xbold-webfont.eot
    new file mode 100644
    index 0000000..9f175aa
    Binary files /dev/null and b/stylesheets/ProximaNova-Xbold-webfont.eot differ
    diff --git a/stylesheets/ProximaNova-Xbold-webfont.svg b/stylesheets/ProximaNova-Xbold-webfont.svg
    new file mode 100644
    index 0000000..0d87902
    --- /dev/null
    +++ b/stylesheets/ProximaNova-Xbold-webfont.svg
    @@ -0,0 +1,238 @@
    +<?xml version="1.0" standalone="no"?>
    +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
    +<svg xmlns="http://www.w3.org/2000/svg">
    +<metadata>
    +This is a custom SVG webfont generated by Fontspring.
    +</metadata>
    +<defs>
    +<font id="webfont2rpW2ohz" horiz-adv-x="589" >
    +<font-face units-per-em="1000" ascent="790" descent="-210" />
    +<missing-glyph horiz-adv-x="256" />
    +<glyph unicode=" "  horiz-adv-x="256" />
    +<glyph unicode="&#x09;" horiz-adv-x="256" />
    +<glyph unicode="&#xa0;" horiz-adv-x="256" />
    +<glyph unicode="!" horiz-adv-x="268" d="M203 233h-137l-24 434h184zM134 -11q-38 0 -65.5 27.5t-27.5 65.5t27.5 66t65.5 28t66 -28t28 -66t-28 -65.5t-66 -27.5z" />
    +<glyph unicode="&#x22;" horiz-adv-x="438" d="M152 357h-65q-48 219 -48 240q0 33 23.5 56.5t56.5 23.5t57 -23.5t24 -56.5q0 -9 -12 -69l-24 -116zM351 357h-64q-48 219 -48 240q0 33 23 56.5t57 23.5q33 0 56.5 -23.5t23.5 -56.5q0 -9 -12 -69l-24 -116z" />
    +<glyph unicode="#" horiz-adv-x="632" d="M358 0h-111l55 164h-87l-54 -164h-110l54 164h-91l31 95h93l48 148h-92l30 94h95l55 166h110l-55 -166h86l55 166h111l-56 -166h93l-29 -94h-95l-50 -148h96l-30 -95h-98zM333 259l50 148h-86l-49 -148h85z" />
    +<glyph unicode="$" horiz-adv-x="625" d="M264 -100v91q-148 14 -240 103l91 129q88 -88 213 -88q44 0 69.5 15.5t25.5 39.5q0 21 -28 34.5t-70 20t-91 21t-91 34t-70 62.5t-28 103q0 79 58 138t161 71v94h111v-95q121 -17 207 -89l-94 -123q-84 69 -195 69q-72 0 -72 -48q0 -23 39 -36.5t94 -25t110.5 -30.5 t94.5 -64.5t39 -114.5q0 -91 -58 -149.5t-165 -70.5v-91h-111z" />
    +<glyph unicode="%" horiz-adv-x="771" d="M196 343q-77 0 -125 47.5t-48 118.5q0 72 48 120t125 48q79 0 127.5 -48t48.5 -120q0 -71 -48.5 -118.5t-127.5 -47.5zM216 0h-86l426 667h87zM573 -12q-77 0 -125 47.5t-48 118.5q0 72 48 120t125 48q78 0 126.5 -48t48.5 -120q0 -71 -48.5 -118.5t-126.5 -47.5z M196 435q30 0 49.5 19.5t19.5 54.5q0 36 -19.5 56t-49.5 20t-48.5 -20t-18.5 -56q0 -35 18.5 -54.5t48.5 -19.5zM573 80q31 0 50 19t19 55t-19.5 56t-49.5 20t-48.5 -20t-18.5 -56t18.5 -55t48.5 -19z" />
    +<glyph unicode="&#x26;" horiz-adv-x="649" d="M651 0h-192l-40 41q-80 -53 -174 -53q-99 0 -163 51t-64 146q0 69 37.5 113t103.5 76q-40 80 -40 140q0 69 57 116t145 47q77 0 132 -40t55 -106q0 -69 -42 -108t-119 -73l48 -61q16 -22 46 -57q35 56 55 118l121 -57q-42 -90 -94 -155zM267 107q35 0 72 21 q-48 53 -63 74q-37 47 -59 78q-38 -33 -38 -80q0 -41 26 -67t62 -26zM271 511q0 -32 23 -78q41 19 62 39.5t21 49.5q0 21 -13.5 33.5t-34.5 12.5q-25 0 -41.5 -16t-16.5 -41z" />
    +<glyph unicode="'" horiz-adv-x="239" d="M152 357h-65q-48 219 -48 240q0 33 23.5 56.5t56.5 23.5t57 -23.5t24 -56.5q0 -9 -12 -69l-24 -116z" />
    +<glyph unicode="(" horiz-adv-x="322" d="M304 -124l-97 -75q-76 76 -122 198t-46 244t46 244t122 198l97 -74q-53 -90 -76.5 -176t-23.5 -192q0 -105 23.5 -191.5t76.5 -175.5z" />
    +<glyph unicode=")" horiz-adv-x="322" d="M115 -199l-97 75q99 169 99 367q0 106 -23.5 192t-75.5 176l97 74q76 -76 122 -198t46 -244t-46 -244t-122 -198z" />
    +<glyph unicode="*" horiz-adv-x="357" d="M215 355h-73l5 107l-90 -58l-36 63l95 49l-95 49l36 62l90 -57l-5 107h73l-6 -107l90 57l37 -62l-95 -49l95 -49l-37 -63l-90 58z" />
    +<glyph unicode="+" horiz-adv-x="507" d="M478 291h-174v-198h-101v198h-174v92h174v191h101v-191h174v-92z" />
    +<glyph unicode="," horiz-adv-x="268" d="M234 61q0 -123 -114 -203l-64 52q25 13 51 41t34 54q-15 -3 -23 -3q-33 0 -55.5 23t-22.5 59q0 38 27 65t65 27q42 0 72 -31t30 -84z" />
    +<glyph unicode="-" horiz-adv-x="300" d="M270 178h-240v129h240v-129z" />
    +<glyph unicode="." horiz-adv-x="270" d="M134 -12q-38 0 -66 28t-28 66t28 66t66 28t66 -28t28 -66t-28 -66t-66 -28z" />
    +<glyph unicode="/" horiz-adv-x="346" d="M109 -20h-109l237 707h109z" />
    +<glyph unicode="0" horiz-adv-x="624" d="M312 -12q-71 0 -126.5 29t-90 78t-52 109.5t-17.5 128.5q0 92 30 168t96.5 126t159.5 50t159.5 -50t96.5 -126t30 -168q0 -68 -17.5 -128.5t-52 -109.5t-90 -78t-126.5 -29zM312 140q112 0 112 193q0 192 -112 192t-112 -192q0 -193 112 -193z" />
    +<glyph unicode="1" horiz-adv-x="447" d="M387 0h-172v447l-112 -113l-98 103l233 230h149v-667z" />
    +<glyph unicode="2" horiz-adv-x="607" d="M567 0h-523v134q222 160 282.5 216t60.5 105q0 33 -26.5 51.5t-65.5 18.5q-100 0 -178 -73l-95 114q51 56 123 83.5t147 27.5q119 0 194.5 -61t75.5 -161q0 -75 -56 -146t-183 -159h244v-150z" />
    +<glyph unicode="3" horiz-adv-x="602" d="M292 -12q-92 0 -163.5 29t-112.5 76l87 117q34 -34 84.5 -52t97.5 -18q54 0 83 18t29 47t-26.5 42.5t-92.5 13.5q-80 0 -90 -1v153q13 -1 90 -1q108 0 108 52q0 30 -31 45.5t-81 15.5q-94 0 -166 -64l-83 108q96 108 267 108q126 0 195.5 -49.5t69.5 -133.5 q0 -57 -42.5 -98.5t-103.5 -51.5q60 -6 108.5 -48.5t48.5 -109.5q0 -88 -76 -143t-200 -55z" />
    +<glyph unicode="4" horiz-adv-x="616" d="M514 0h-173v122h-319v134l253 411h239v-394h81v-151h-81v-122zM341 273v244l-152 -244h152z" />
    +<glyph unicode="5" horiz-adv-x="617" d="M309 -12q-170 0 -269 97l94 120q71 -65 173 -65q52 0 80.5 22t28.5 55q0 35 -27 56t-77 21q-79 0 -132 -50l-119 29v394h484v-150h-312v-129q55 53 143 53t151.5 -60t63.5 -157q0 -108 -76 -172t-206 -64z" />
    +<glyph unicode="6" horiz-adv-x="617" d="M329 -12q-151 0 -227 95.5t-76 248.5q0 159 89 252t241 93q121 0 203 -64l-75 -132q-54 44 -128 44q-63 0 -109.5 -42.5t-46.5 -109.5v-8q25 34 69.5 55t94.5 21q96 0 163.5 -58.5t67.5 -160.5q0 -103 -75 -168.5t-191 -65.5zM318 140q46 0 74.5 23t28.5 53 q0 39 -32.5 59t-76.5 20q-68 0 -112 -45q4 -46 33 -78t85 -32z" />
    +<glyph unicode="7" horiz-adv-x="560" d="M309 0h-189l226 517h-325v150h523v-119z" />
    +<glyph unicode="8" horiz-adv-x="618" d="M309 -12q-118 0 -200.5 48t-82.5 140q0 55 37.5 100t97.5 68q-124 47 -124 155q0 46 23.5 81.5t63.5 56t87 30.5t98 10q70 0 129 -17t101 -58.5t42 -102.5q0 -107 -125 -155q60 -23 97.5 -68t37.5 -100q0 -62 -41.5 -106t-103.5 -63t-137 -19zM309 411q37 5 66.5 21.5 t29.5 41.5q0 28 -26.5 44t-69.5 16q-44 0 -70.5 -16t-26.5 -44q0 -25 30 -41.5t67 -21.5zM309 131q47 0 77.5 18t30.5 47q0 28 -35 46.5t-73 23.5q-39 -5 -73.5 -23.5t-34.5 -46.5q0 -29 30 -47t78 -18z" />
    +<glyph unicode="9" horiz-adv-x="617" d="M260 -11q-122 0 -202 64l74 132q54 -44 128 -44q70 0 113 44.5t43 107.5v8q-25 -34 -69.5 -55.5t-93.5 -21.5q-95 0 -163.5 59t-68.5 161q0 103 75 168.5t191 65.5q151 0 227 -95.5t76 -248.5q0 -159 -89 -252t-241 -93zM304 371q70 0 112 45q-3 46 -32.5 78t-86.5 32 q-45 0 -73 -23t-28 -53q0 -39 32.5 -59t75.5 -20z" />
    +<glyph unicode=":" horiz-adv-x="259" d="M134 302q-38 0 -66 28t-28 66t28 66t66 28t66 -28t28 -66t-28 -66t-66 -28zM134 -12q-38 0 -66 28t-28 66t28 66t66 28t66 -28t28 -66t-28 -66t-66 -28z" />
    +<glyph unicode=";" horiz-adv-x="268" d="M134 302q-38 0 -66 28.5t-28 66.5t28 65.5t66 27.5t66 -27.5t28 -65.5t-28 -66.5t-66 -28.5zM234 62q0 -122 -114 -202l-64 52q25 12 51 40t34 55q-10 -4 -23 -4q-33 0 -55.5 23t-22.5 60q0 38 27 65t65 27q43 0 72.5 -31.5t29.5 -84.5z" />
    +<glyph unicode="&#x3c;" horiz-adv-x="507" d="M478 90l-449 189v111l449 190v-110l-345 -136l345 -135v-109z" />
    +<glyph unicode="=" horiz-adv-x="507" d="M478 381h-449v92h449v-92zM478 195h-449v92h449v-92z" />
    +<glyph unicode="&#x3e;" horiz-adv-x="507" d="M478 279l-449 -189v109l345 135l-345 136v110l449 -190v-111z" />
    +<glyph unicode="?" horiz-adv-x="453" d="M166 214q-31 38 -31 92q0 31 13.5 56.5t32.5 41.5t38 29t32.5 26.5t13.5 26.5q0 39 -59 39q-60 0 -105 -52l-96 110q40 46 98.5 70t121.5 24q98 0 156 -44t58 -116q0 -40 -16 -71t-38.5 -50.5t-45.5 -35.5t-39 -34t-16 -38q0 -25 15 -40zM227 -12q-38 0 -66 28t-28 66 t28 66t66 28t66 -28t28 -66t-28 -66t-66 -28z" />
    +<glyph unicode="@" horiz-adv-x="783" d="M352 -70q-136 0 -226.5 90.5t-90.5 223.5q0 158 120 276t277 118q141 0 228 -87.5t87 -213.5q0 -62 -20 -112t-52 -79.5t-68 -45t-70 -15.5q-83 0 -101 70l-1 7q-26 -37 -62.5 -57t-74.5 -20q-72 0 -114 48t-42 123q0 97 67.5 169t154.5 72q86 0 123 -61l10 48h136 l-49 -230q-2 -10 -2 -26q0 -41 32 -41q33 0 60 39.5t27 110.5q0 118 -74 188.5t-199 70.5q-141 0 -246 -104.5t-105 -244.5q0 -118 79.5 -197t200.5 -79q94 0 180 54l23 -32q-98 -63 -208 -63zM355 192q52 0 92 53l22 106q-22 40 -70 40q-51 0 -84 -37t-33 -86 q0 -35 19.5 -55.5t53.5 -20.5z" />
    +<glyph unicode="A" horiz-adv-x="697" d="M708 0h-195l-33 96h-263l-33 -96h-195l251 667h216zM433 246l-85 251l-85 -251h170z" />
    +<glyph unicode="B" horiz-adv-x="680" d="M450 0h-390v667h378q93 0 144 -50.5t51 -119.5q0 -60 -32.5 -101t-81.5 -52q54 -8 90.5 -54.5t36.5 -108.5q0 -77 -51 -129t-145 -52zM399 411q26 0 42.5 15.5t16.5 40.5q0 24 -16.5 39.5t-42.5 15.5h-167v-111h167zM405 145q31 0 48.5 16.5t17.5 43.5q0 26 -17.5 43 t-48.5 17h-173v-120h173z" />
    +<glyph unicode="C" horiz-adv-x="692" d="M387 -12q-155 0 -258 96.5t-103 248.5q0 153 102.5 249t258.5 96q201 0 291 -179l-148 -70q-17 41 -56.5 69t-86.5 28q-81 0 -133.5 -55.5t-52.5 -137.5t52.5 -137.5t133.5 -55.5q47 0 86.5 28t56.5 69l148 -70q-38 -76 -109.5 -127.5t-181.5 -51.5z" />
    +<glyph unicode="D" horiz-adv-x="727" d="M341 0h-281v667h280q160 0 260.5 -90t100.5 -243t-100.5 -243.5t-259.5 -90.5zM340 150q85 0 135 53.5t50 130.5q0 81 -48 132t-136 51h-109v-367h108z" />
    +<glyph unicode="E" d="M549 0h-489v667h489v-150h-317v-104h310v-150h-310v-113h317v-150z" />
    +<glyph unicode="F" horiz-adv-x="582" d="M232 0h-172v667h489v-150h-317v-104h310v-150h-310v-263z" />
    +<glyph unicode="G" horiz-adv-x="723" d="M387 -12q-153 0 -257 95t-104 250t104 250t257 95q104 0 175 -46t110 -116l-144 -75q-20 36 -57.5 60.5t-83.5 24.5q-81 0 -133.5 -55.5t-52.5 -137.5t52.5 -137.5t133.5 -55.5q35 0 69.5 12t53.5 28v52h-150v151h322v-265q-118 -130 -295 -130z" />
    +<glyph unicode="H" horiz-adv-x="741" d="M681 0h-172v268h-277v-268h-172v667h172v-249h277v249h172v-667z" />
    +<glyph unicode="I" horiz-adv-x="292" d="M232 0h-172v667h172v-667z" />
    +<glyph unicode="J" horiz-adv-x="492" d="M186 -12q-115 0 -183 60l72 131q47 -39 96 -39q41 0 65 24.5t24 66.5v436h172v-438q0 -120 -66 -180.5t-180 -60.5z" />
    +<glyph unicode="K" horiz-adv-x="654" d="M663 0h-211l-175 251l-45 -56v-195h-172v667h172v-274l205 274h212l-259 -312z" />
    +<glyph unicode="L" horiz-adv-x="529" d="M500 0h-440v667h172v-517h268v-150z" />
    +<glyph unicode="M" horiz-adv-x="877" d="M817 0h-172v434l-169 -434h-76l-168 434v-434h-172v667h239l139 -362l140 362h239v-667z" />
    +<glyph unicode="N" horiz-adv-x="740" d="M680 0h-166l-282 386v-386h-172v667h177l270 -367v367h173v-667z" />
    +<glyph unicode="O" horiz-adv-x="766" d="M383 -12q-154 0 -255.5 97t-101.5 248t101.5 248t255.5 97t255 -97t101 -248t-101 -248t-255 -97zM383 140q81 0 131 55t50 138t-50 138t-131 55q-82 0 -132 -55t-50 -138t50 -138t132 -55z" />
    +<glyph unicode="P" horiz-adv-x="643" d="M232 0h-172v667h334q108 0 170 -63.5t62 -158.5q0 -94 -62 -157.5t-170 -63.5h-162v-224zM371 374q35 0 57.5 19t22.5 52q0 34 -22.5 53t-57.5 19h-139v-143h139z" />
    +<glyph unicode="Q" horiz-adv-x="766" d="M383 -12q-154 0 -255.5 97t-101.5 248t101.5 248t255.5 97t255 -97t101 -248q0 -137 -84 -231l42 -51l-120 -96l-49 60q-70 -27 -145 -27zM383 140q22 0 39 4l-61 74l119 96l63 -76q21 45 21 95q0 83 -50 138t-131 55q-82 0 -132 -55t-50 -138t50 -138t132 -55z" />
    +<glyph unicode="R" horiz-adv-x="661" d="M629 0h-197l-112 224h-88v-224h-172v667h334q108 0 170 -63t62 -159q0 -80 -39.5 -130.5t-93.5 -69.5zM368 374q35 0 59 19t24 53q0 33 -24 52t-59 19h-136v-143h136z" />
    +<glyph unicode="S" horiz-adv-x="606" d="M308 -12q-185 0 -296 106l91 129q88 -88 213 -88q44 0 69.5 15.5t25.5 39.5q0 21 -28 34.5t-70 20t-91 21t-91 34t-70 62.5t-28 103q0 88 71.5 150t194.5 62q163 0 271 -93l-94 -123q-84 69 -195 69q-72 0 -72 -48q0 -19 28 -32.5t70 -20.5t90.5 -21.5t90.5 -34.5t70 -62 t28 -100q0 -102 -73 -162.5t-205 -60.5z" />
    +<glyph unicode="T" d="M381 0h-172v517h-187v150h545v-150h-186v-517z" />
    +<glyph unicode="U" horiz-adv-x="750" d="M376 -12q-156 0 -236 77t-80 205v397h175v-391q0 -61 36.5 -98.5t104.5 -37.5q67 0 103.5 37.5t36.5 98.5v391h174v-396q0 -129 -79.5 -206t-234.5 -77z" />
    +<glyph unicode="V" horiz-adv-x="697" d="M456 0h-216l-251 667h195l164 -481l165 481h195z" />
    +<glyph unicode="W" horiz-adv-x="936" d="M751 0h-182l-101 418l-101 -418h-182l-191 667h193l101 -445l114 445h132l114 -445l100 445h194z" />
    +<glyph unicode="X" horiz-adv-x="676" d="M686 0h-203l-145 224l-145 -224h-204l233 342l-218 325h203l131 -209l129 209h204l-217 -324z" />
    +<glyph unicode="Y" horiz-adv-x="655" d="M414 0h-172v269l-253 398h194l145 -246l143 246h195l-252 -398v-269z" />
    +<glyph unicode="Z" horiz-adv-x="596" d="M557 0h-518v137l284 380h-284v150h511v-137l-285 -380h292v-150z" />
    +<glyph unicode="[" horiz-adv-x="298" d="M281 -190h-230v868h230v-99h-122v-670h122v-99z" />
    +<glyph unicode="\" horiz-adv-x="346" d="M237 -20l-237 707h109l237 -707h-109z" />
    +<glyph unicode="]" horiz-adv-x="298" d="M248 -190h-230v99h122v670h-122v99h230v-868z" />
    +<glyph unicode="^" horiz-adv-x="445" d="M426 333h-109l-94 231l-93 -231h-111l149 334h111z" />
    +<glyph unicode="_" horiz-adv-x="564" d="M567 -139h-570v99h570v-99z" />
    +<glyph unicode="`" horiz-adv-x="263" d="M263 556h-104l-159 144h136z" />
    +<glyph unicode="a" horiz-adv-x="551" d="M495 0h-154v48q-23 -27 -63.5 -43.5t-86.5 -16.5q-63 0 -114.5 41.5t-51.5 117.5q0 80 50 117.5t116 37.5q105 0 150 -56v58q0 32 -26 51t-72 19q-77 0 -137 -51l-55 97q88 75 219 75q46 0 84.5 -9.5t71 -30.5t51 -60t18.5 -93v-302zM255 89q62 0 86 35v43q-25 34 -86 34 q-33 0 -55 -14.5t-22 -41.5t22 -41.5t55 -14.5z" />
    +<glyph unicode="b" horiz-adv-x="591" d="M210 167q14 -19 40.5 -31t51.5 -12q47 0 77 32t30 86q0 53 -30 85t-77 32q-25 0 -51.5 -12.5t-40.5 -31.5v-148zM210 0h-154v667h154v-241q55 69 143 69q92 0 152.5 -68.5t60.5 -184.5q0 -119 -60 -186.5t-153 -67.5q-84 0 -143 68v-56z" />
    +<glyph unicode="c" horiz-adv-x="500" d="M288 -12q-114 0 -189 70.5t-75 183.5q0 112 75 182.5t189 70.5q72 0 122.5 -26t75.5 -63l-100 -93q-31 46 -91 46q-49 0 -81 -31.5t-32 -85.5t32 -86t81 -32q58 0 91 47l100 -94q-25 -37 -75.5 -63t-122.5 -26z" />
    +<glyph unicode="d" horiz-adv-x="591" d="M534 0h-153v56q-59 -68 -143 -68q-93 0 -153.5 67.5t-60.5 186.5q0 116 60.5 184.5t153.5 68.5q87 0 143 -69v241h153v-667zM288 124q25 0 51.5 12.5t41.5 31.5v148q-15 19 -41.5 31t-51.5 12q-47 0 -76.5 -32t-29.5 -85t30 -85.5t76 -32.5z" />
    +<glyph unicode="e" horiz-adv-x="548" d="M288 -12q-114 0 -189 69.5t-75 184.5q0 107 72.5 180t184.5 73q109 0 178 -73.5t69 -195.5v-33h-344q7 -36 39 -61t82 -25q28 0 64.5 11.5t55.5 29.5l65 -96q-35 -31 -89.5 -47.5t-112.5 -16.5zM381 293q-4 32 -28 57.5t-72 25.5q-45 0 -69 -25t-30 -58h199z" />
    +<glyph unicode="f" horiz-adv-x="349" d="M243 0h-154v349h-80v134h80v24q0 76 48.5 123t124.5 47q92 0 139 -48l-57 -88q-18 19 -48 19q-23 0 -38 -14t-15 -39v-24h98v-134h-98v-349z" />
    +<glyph unicode="g" horiz-adv-x="590" d="M257 -196q-126 0 -214 72l67 110q52 -56 147 -56q48 0 85.5 25t37.5 86v37q-60 -70 -143 -70q-93 0 -153 63.5t-60 180.5q0 116 59.5 179.5t153.5 63.5q87 0 143 -69v57h153v-440q0 -57 -17.5 -100.5t-44.5 -69t-65 -42t-74 -22t-75 -5.5zM288 144q25 0 51.5 12t40.5 31 v129q-14 19 -40.5 31t-51.5 12q-47 0 -76.5 -28t-29.5 -79q0 -52 29.5 -80t76.5 -28z" />
    +<glyph unicode="h" horiz-adv-x="594" d="M538 0h-154v281q0 78 -80 78q-55 0 -93 -47v-312h-154v667h154v-243q61 71 167 71q80 0 120 -40.5t40 -110.5v-344z" />
    +<glyph unicode="i" horiz-adv-x="266" d="M133 526q-37 0 -62.5 26t-25.5 63t25.5 62.5t62.5 25.5t62.5 -25.5t25.5 -62.5t-25.5 -63t-62.5 -26zM210 0h-154v483h154v-483z" />
    +<glyph unicode="j" horiz-adv-x="266" d="M133 526q-37 0 -62.5 26t-25.5 63t25.5 62.5t62.5 25.5t62.5 -25.5t25.5 -62.5t-25.5 -63t-62.5 -26zM23 -196q-47 0 -72 7.5t-55 26.5l39 113q27 -21 62 -21q59 0 59 74v479h154v-479q0 -92 -47 -146t-140 -54z" />
    +<glyph unicode="k" horiz-adv-x="546" d="M552 0h-190l-106 171l-46 -55v-116h-154v667h154v-377l147 193h186l-178 -220z" />
    +<glyph unicode="l" horiz-adv-x="266" d="M210 0h-154v667h154v-667z" />
    +<glyph unicode="m" horiz-adv-x="875" d="M818 0h-153v294q0 65 -64 65q-52 0 -87 -47v-312h-154v294q0 65 -64 65q-48 0 -86 -47v-312h-154v483h154v-59q19 25 63 48t96 23q107 0 137 -86q23 35 68.5 60.5t98.5 25.5q69 0 107 -36.5t38 -108.5v-350z" />
    +<glyph unicode="n" horiz-adv-x="593" d="M537 0h-154v279q0 80 -79 80q-56 0 -94 -47v-312h-154v483h154v-59q61 71 167 71q80 0 120 -41.5t40 -111.5v-342z" />
    +<glyph unicode="o" horiz-adv-x="576" d="M287 -12q-119 0 -191 74t-72 180t72 179.5t191 73.5q120 0 192 -73.5t72 -179.5t-72 -180t-192 -74zM287 124q49 0 77.5 33.5t28.5 84.5q0 50 -28.5 83.5t-77.5 33.5t-76.5 -33.5t-27.5 -83.5q0 -51 27.5 -84.5t76.5 -33.5z" />
    +<glyph unicode="p" d="M353 -12q-85 0 -143 69v-241h-154v667h154v-56q56 68 143 68q94 0 153 -67t59 -186q0 -120 -59 -187t-153 -67zM302 124q46 0 76 32t30 86q0 53 -30 85t-76 32q-25 0 -51.5 -12.5t-40.5 -31.5v-147q14 -19 40.5 -31.5t51.5 -12.5z" />
    +<glyph unicode="q" d="M288 124q24 0 51 12.5t40 31.5v147q-14 19 -40.5 31.5t-50.5 12.5q-47 0 -77 -32t-30 -85q0 -54 30 -86t77 -32zM236 -12q-94 0 -153 67t-59 187q0 119 59 186t153 67q87 0 143 -68v56h154v-667h-154v241q-57 -69 -143 -69z" />
    +<glyph unicode="r" horiz-adv-x="375" d="M210 0h-154v483h154v-59q25 30 67 51t84 21v-148q-18 4 -38 4q-32 0 -65.5 -12.5t-47.5 -31.5v-308z" />
    +<glyph unicode="s" horiz-adv-x="484" d="M241 -12q-65 0 -126.5 20t-99.5 54l64 106q28 -25 78.5 -44.5t91.5 -19.5q65 0 65 37q0 17 -29 25.5t-70 15t-82.5 19.5t-70.5 47t-29 88q0 67 55 113t152 46q114 0 202 -64l-59 -102q-23 22 -62 37.5t-80 15.5q-27 0 -44 -10t-17 -25t29 -22.5t70 -15t82.5 -21.5 t70.5 -49.5t29 -90.5q0 -71 -59 -115.5t-161 -44.5z" />
    +<glyph unicode="t" horiz-adv-x="360" d="M239 -12q-74 0 -112.5 36t-38.5 106v219h-80v134h80v132h153v-132h98v-134h-98v-176q0 -22 11.5 -35.5t31.5 -13.5q29 0 39 12l30 -116q-34 -32 -114 -32z" />
    +<glyph unicode="u" horiz-adv-x="592" d="M536 0h-154v58q-62 -70 -167 -70q-80 0 -119.5 40.5t-39.5 110.5v344h154v-281q0 -78 80 -78q55 0 92 47v312h154v-483z" />
    +<glyph unicode="v" horiz-adv-x="524" d="M344 0h-164l-190 483h162l109 -306l110 306h163z" />
    +<glyph unicode="w" horiz-adv-x="787" d="M650 0h-166l-91 299l-90 -299h-166l-143 483h158l78 -296l95 296h137l95 -296l77 296h159z" />
    +<glyph unicode="x" horiz-adv-x="512" d="M518 0h-169l-93 146l-94 -146h-168l165 248l-155 235h169l83 -131l82 131h169l-154 -235z" />
    +<glyph unicode="y" horiz-adv-x="524" d="M46 -188l22 137q16 -9 38 -9q54 0 65 27l11 26l-192 490h162l109 -306l110 306h163l-218 -552q-27 -71 -77 -98t-127 -29q-40 0 -66 8z" />
    +<glyph unicode="z" horiz-adv-x="483" d="M445 0h-407v113l194 236h-194v134h403v-109l-198 -241h202v-133z" />
    +<glyph unicode="{" horiz-adv-x="302" d="M285 -190h-60q-70 0 -120 47t-50 124v156q0 29 -13.5 47.5t-38.5 18.5v82q25 0 38.5 18.5t13.5 47.5v155q0 77 50 124.5t120 47.5h60v-99h-60q-26 0 -44 -20t-18 -53v-172q0 -70 -46 -90q46 -20 46 -90v-172q0 -32 18 -52.5t44 -20.5h60v-99z" />
    +<glyph unicode="|" horiz-adv-x="219" d="M159 -20h-99v707h99v-707z" />
    +<glyph unicode="}" horiz-adv-x="302" d="M17 -190v99h60q26 0 44 20.5t18 52.5v172q0 70 46 90q-46 20 -46 90v172q0 33 -18 53t-44 20h-60v99h60q70 0 120 -47.5t50 -124.5v-155q0 -29 13.5 -47.5t38.5 -18.5v-82q-25 0 -38.5 -18.5t-13.5 -47.5v-156q0 -77 -50 -124t-120 -47h-60z" />
    +<glyph unicode="~" horiz-adv-x="514" d="M388 667l100 -12q-4 -51 -11.5 -90t-23.5 -77.5t-46 -59.5t-72 -21q-45 0 -72.5 26.5t-35.5 58t-19.5 58t-27.5 26.5q-38 0 -52 -170l-103 12q4 52 12 90.5t24.5 77.5t46.5 60t72 21q45 0 72.5 -26.5t35.5 -58.5t19.5 -58.5t27.5 -26.5q40 0 53 170z" />
    +<glyph unicode="&#xa1;" horiz-adv-x="268" d="M42 -184l23 434h137l24 -434h-184zM40 401q0 38 27.5 65.5t65.5 27.5t65.5 -27.5t27.5 -65.5t-27.5 -66t-65.5 -28t-65.5 28t-27.5 66z" />
    +<glyph unicode="&#xa2;" horiz-adv-x="500" d="M235 -100v93q-94 15 -152.5 82.5t-58.5 166.5q0 98 58.5 165t152.5 83v75h109v-75q95 -17 142 -84l-100 -93q-31 46 -91 46q-49 0 -81 -31.5t-32 -85.5t32 -86t81 -32q58 0 91 47l100 -94q-47 -67 -142 -84v-93h-109z" />
    +<glyph unicode="&#xa3;" horiz-adv-x="565" d="M24 269v96h52q-33 52 -33 100q0 96 78.5 154t173.5 58q183 0 248 -125l-137 -79q-11 31 -35 48t-54 17q-37 0 -61 -21.5t-24 -54.5q0 -37 34 -97h140v-96h-110v-7q0 -30 -17 -58.5t-43 -42.5q21 8 48 8q29 0 64.5 -14.5t57.5 -14.5q56 0 81 35l67 -136q-47 -51 -154 -51 q-47 0 -103.5 21.5t-78.5 21.5q-48 0 -115 -38l-57 115q97 48 97 110q0 26 -11 51h-108z" />
    +<glyph unicode="&#xa4;" horiz-adv-x="635" d="M318 83q-74 0 -132 30l-74 -75l-90 90l70 70q-37 62 -37 135q0 75 38 136l-71 71l90 90l75 -76q60 29 131 29q70 0 130 -29l76 76l89 -90l-71 -71q39 -62 39 -136q0 -77 -39 -137l71 -68l-89 -90l-76 73q-58 -28 -130 -28zM318 219q51 0 80.5 32.5t29.5 81.5t-29.5 81 t-80.5 32t-80.5 -32.5t-29.5 -80.5q0 -49 29.5 -81.5t80.5 -32.5z" />
    +<glyph unicode="&#xa5;" horiz-adv-x="655" d="M414 0h-172v111h-218v92h218v66h-218v92h159l-194 306h194l145 -246l143 246h195l-194 -306h160v-92h-218v-66h218v-92h-218v-111z" />
    +<glyph unicode="&#xa6;" horiz-adv-x="219" d="M159 -20h-99v316h99v-316zM159 371h-99v316h99v-316z" />
    +<glyph unicode="&#xa7;" horiz-adv-x="492" d="M461 331q0 -40 -21 -74t-59 -54q80 -37 80 -123q0 -75 -61.5 -118t-158.5 -43q-131 0 -223 79l61 97q29 -28 74 -49.5t88 -21.5q73 0 73 42q0 22 -29 34.5t-70 21t-82.5 22t-70.5 47t-29 86.5q0 45 27.5 77t61.5 46q-89 37 -89 128q0 64 58.5 106.5t147.5 42.5 q128 0 202 -66l-58 -91q-56 51 -136 51q-67 0 -67 -40q0 -19 29 -29.5t70 -18t82.5 -20.5t70.5 -46.5t29 -85.5zM310 300q0 47 -69 63q-61 -14 -61 -61q0 -20 13.5 -33.5t29.5 -19t40 -10.5q47 19 47 61z" />
    +<glyph unicode="&#xa8;" horiz-adv-x="306" d="M339 615q0 -34 -23 -56.5t-56 -22.5q-32 0 -55 23t-23 56q0 32 23 55t55 23q33 0 56 -23t23 -55zM125 615q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 22.5 55t55.5 23t56 -23t23 -55z" />
    +<glyph unicode="&#xa9;" horiz-adv-x="778" d="M734 334q0 -143 -101 -244t-244 -101t-244 101.5t-101 243.5q0 143 101 244t244 101t244 -101t101 -244zM695 334q0 126 -90 216t-216 90t-216 -90t-90 -216t90 -216t216 -90t216 90t90 216zM511 226l35 -33q-59 -69 -150 -69q-87 0 -147.5 60t-60.5 151q0 90 60.5 149.5 t147.5 59.5q92 0 149 -67l-35 -34q-43 58 -114 58q-66 0 -112 -47t-46 -119q0 -71 46 -119.5t112 -48.5q71 0 115 59z" />
    +<glyph unicode="&#xaa;" horiz-adv-x="389" d="M343 326h-109v30q-33 -38 -99 -38q-43 0 -76.5 27t-33.5 76t33.5 75t76.5 26q68 0 99 -35v31q0 22 -16.5 35.5t-46.5 13.5q-50 0 -89 -39l-39 71q59 49 147 49q153 0 153 -132v-190zM181 385q37 0 53 24v25q-16 23 -53 23q-48 0 -48 -36t48 -36z" />
    +<glyph unicode="&#xab;" horiz-adv-x="571" d="M541 63h-139l-160 180l160 177h139l-160 -177zM329 63h-139l-160 180l160 177h139l-160 -177z" />
    +<glyph unicode="&#xac;" horiz-adv-x="521" d="M478 473v-278h-94v186h-355v92h449z" />
    +<glyph unicode="&#xad;" horiz-adv-x="300" d="M270 178h-240v129h240v-129z" />
    +<glyph unicode="&#xae;" horiz-adv-x="494" d="M459 465q0 -88 -62 -150t-150 -62t-150 62t-62 150t62 150t150 62q89 0 150.5 -61.5t61.5 -150.5zM425 465q0 75 -52 126.5t-126 51.5q-75 0 -127 -51.5t-52 -126.5q0 -74 52.5 -126.5t126.5 -52.5t126 52.5t52 126.5zM348 343h-44l-63 96h-40v-96h-36v243h99 q32 0 56.5 -21t24.5 -53q0 -35 -22.5 -53.5t-39.5 -18.5zM308 512q0 19 -13.5 31.5t-30.5 12.5h-63v-86h63q17 0 30.5 12t13.5 30z" />
    +<glyph unicode="&#xaf;" horiz-adv-x="363" d="M363 556h-363v85h363v-85z" />
    +<glyph unicode="&#xb0;" horiz-adv-x="321" d="M302 535q0 -59 -41.5 -100.5t-100.5 -41.5t-100.5 41.5t-41.5 100.5t42 100.5t100 41.5t100 -41.5t42 -100.5zM223 535q0 25 -18.5 44t-44.5 19q-25 0 -43 -18.5t-18 -44.5t18 -44t43 -18q26 0 44.5 18.5t18.5 43.5z" />
    +<glyph unicode="&#xb1;" horiz-adv-x="507" d="M478 327h-174v-198h-101v198h-174v92h174v190h101v-190h174v-92zM478 0h-449v92h449v-92z" />
    +<glyph unicode="&#xb2;" horiz-adv-x="402" d="M370 421h-326v82q135 94 172 127.5t37 59.5q0 22 -16 34.5t-43 12.5q-31 0 -61 -15t-46 -34l-58 72q62 67 168 67q77 0 123.5 -34t46.5 -94q0 -43 -35.5 -85t-122.5 -103h161v-90z" />
    +<glyph unicode="&#xb3;" horiz-adv-x="402" d="M373 533q0 -53 -47.5 -86t-125.5 -33q-116 0 -172 63l54 74q46 -47 113 -47q31 0 48 10.5t17 26.5q0 23 -20 30.5t-61 7.5t-47 -1v89q9 -1 46 -1q39 0 57 8t18 28q0 35 -65 35q-62 0 -104 -42l-51 67q60 65 167 65q80 0 123 -30t43 -80q0 -33 -25.5 -58.5t-63.5 -31.5 q37 -3 66.5 -28.5t29.5 -65.5z" />
    +<glyph unicode="&#xb4;" horiz-adv-x="263" d="M263 700l-159 -144h-104l127 144h136z" />
    +<glyph unicode="&#xb5;" horiz-adv-x="606" d="M210 6v-190h-154v667h154v-281q0 -78 80 -78q55 0 92 47v312h154v-321q0 -18 10.5 -28t26.5 -10q11 0 19 3l10 -130q-27 -9 -68 -9q-114 0 -143 87q-20 -39 -53 -63t-74 -24q-36 0 -54 18z" />
    +<glyph unicode="&#xb6;" horiz-adv-x="449" d="M415 -100h-71v696h-74v-696h-71v423q-71 0 -121.5 50.5t-50.5 121.5t50.5 121.5t121.5 50.5h216v-767z" />
    +<glyph unicode="&#xb7;" horiz-adv-x="270" d="M228 244q0 -38 -28 -65.5t-66 -27.5t-65.5 27.5t-27.5 65.5t27.5 66t65.5 28t66 -28t28 -66z" />
    +<glyph unicode="&#xb8;" horiz-adv-x="229" d="M114 -198q-73 0 -114 33l28 58q41 -30 82 -30q19 0 33 7.5t14 20.5q0 22 -25 22q-16 0 -29 -13l-53 30l31 81h71l-25 -60q17 10 34 10q28 0 48 -20.5t20 -51.5q0 -40 -33 -63.5t-82 -23.5z" />
    +<glyph unicode="&#xb9;" horiz-adv-x="311" d="M251 421h-114v255l-69 -69l-64 68l149 146h98v-400z" />
    +<glyph unicode="&#xba;" horiz-adv-x="405" d="M202 318q-80 0 -128.5 48t-48.5 117t48.5 117t128.5 48q81 0 129.5 -48t48.5 -117t-48.5 -117t-129.5 -48zM202 405q31 0 48.5 20.5t17.5 57.5t-17.5 56.5t-48.5 19.5q-64 0 -64 -76q0 -37 17 -57.5t47 -20.5z" />
    +<glyph unicode="&#xbb;" horiz-adv-x="571" d="M329 243l-160 -180h-139l160 180l-160 177h139zM541 243l-160 -180h-139l160 180l-160 177h139z" />
    +<glyph unicode="&#xbc;" horiz-adv-x="865" d="M251 267h-114v255l-69 -69l-64 68l149 146h98v-400zM847 78h-50v-78h-113v78h-197v77l150 245h160v-233h50v-89zM684 167v138l-85 -138h85zM667 667l-428 -667h-86l426 667h88z" />
    +<glyph unicode="&#xbd;" horiz-adv-x="897" d="M251 267h-114v255l-69 -69l-64 68l149 146h98v-400zM864 0h-326v82q135 94 172 127.5t37 59.5q0 22 -16 34.5t-43 12.5q-31 0 -61 -15t-46 -34l-58 72q62 67 168 67q77 0 123.5 -34t46.5 -94q0 -43 -35.5 -85t-122.5 -103h161v-90zM667 667l-428 -667h-86l426 667h88z " />
    +<glyph unicode="&#xbe;" horiz-adv-x="942" d="M924 78h-50v-78h-113v78h-197v77l150 245h160v-233h50v-89zM761 167v138l-85 -138h85zM744 667l-428 -667h-86l426 667h88zM373 379q0 -53 -47.5 -86t-125.5 -33q-116 0 -172 63l54 74q46 -47 113 -47q31 0 48 10.5t17 26.5q0 23 -20 30.5t-61 7.5t-47 -1v89q9 -1 46 -1 q39 0 57 8t18 28q0 35 -65 35q-62 0 -104 -42l-51 67q60 65 167 65q80 0 123 -30t43 -80q0 -33 -25.5 -58.5t-63.5 -31.5q37 -3 66.5 -28.5t29.5 -65.5z" />
    +<glyph unicode="&#xbf;" horiz-adv-x="399" d="M287 268q30 -35 30 -91q0 -32 -13.5 -57.5t-32.5 -41.5t-37.5 -29t-32 -26.5t-13.5 -26.5q0 -39 59 -39q58 0 105 52l96 -110q-40 -46 -98.5 -70t-121.5 -24q-98 0 -156 44t-58 116q0 40 16 71t39 50.5t45.5 35.5t38.5 34t16 39q0 25 -15 40zM226 494q38 0 66 -28t28 -66 t-28 -65.5t-66 -27.5t-66 27.5t-28 65.5t28 66t66 28z" />
    +<glyph unicode="&#xc0;" horiz-adv-x="697" d="M708 0h-195l-33 96h-263l-33 -96h-195l251 667h216zM433 246l-85 251l-85 -251h170zM414 723h-104l-159 144h136z" />
    +<glyph unicode="&#xc1;" horiz-adv-x="697" d="M708 0h-195l-33 96h-263l-33 -96h-195l251 667h216zM433 246l-85 251l-85 -251h170zM545 867l-159 -144h-104l127 144h136z" />
    +<glyph unicode="&#xc2;" horiz-adv-x="697" d="M509 723h-92l-69 81l-66 -81h-91l90 144h135zM708 0h-195l-33 96h-263l-33 -96h-195l251 667h216zM433 246l-85 251l-85 -251h170z" />
    +<glyph unicode="&#xc3;" horiz-adv-x="697" d="M708 0h-195l-33 96h-263l-33 -96h-195l251 667h216zM433 246l-85 251l-85 -251h170zM403 721q-22 0 -40.5 8.5t-28.5 19t-22 19t-22 8.5q-30 0 -30 -49h-78q0 134 113 134q28 0 49 -13.5t36.5 -27.5t27.5 -14q30 0 30 49h78q0 -134 -113 -134z" />
    +<glyph unicode="&#xc4;" horiz-adv-x="697" d="M534 782q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 23 55t55 23q33 0 56 -23t23 -55zM320 782q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 22.5 55t55.5 23t56 -23t23 -55zM708 0h-195l-33 96h-263l-33 -96h-195l251 667h216zM433 246l-85 251 l-85 -251h170z" />
    +<glyph unicode="&#xc5;" horiz-adv-x="697" d="M708 0h-195l-33 96h-263l-33 -96h-195l251 667h216zM433 246l-85 251l-85 -251h170zM350 687q-45 0 -77 32t-32 76q0 45 32 77t77 32q44 0 75 -32t31 -77q0 -44 -31 -76t-75 -32zM350 755q16 0 27.5 11.5t11.5 28.5t-11.5 29t-27.5 12q-17 0 -29 -12t-12 -29t12 -28.5 t29 -11.5z" />
    +<glyph unicode="&#xc6;" horiz-adv-x="979" d="M943 0h-489v96h-221l-54 -96h-196l400 667h560v-150h-317v-104h310v-150h-310v-113h317v-150zM454 246v251l-141 -251h141z" />
    +<glyph unicode="&#xc7;" horiz-adv-x="692" d="M381 -194q-73 0 -114 33l28 58q41 -30 82 -30q19 0 33 7.5t14 20.5q0 22 -25 22q-16 0 -29 -13l-53 30l21 57q-137 15 -224.5 108.5t-87.5 233.5q0 153 102.5 249t258.5 96q201 0 291 -179l-148 -70q-17 41 -56.5 69t-86.5 28q-81 0 -133.5 -55.5t-52.5 -137.5 t52.5 -137.5t133.5 -55.5q47 0 86.5 28t56.5 69l148 -70q-85 -169 -270 -178l-14 -34q17 10 34 10q28 0 48 -20.5t20 -51.5q0 -40 -33 -63.5t-82 -23.5z" />
    +<glyph unicode="&#xc8;" d="M549 0h-489v667h489v-150h-317v-104h310v-150h-310v-113h317v-150zM367 723h-104l-159 144h136z" />
    +<glyph unicode="&#xc9;" d="M502 867l-159 -144h-104l127 144h136zM549 0h-489v667h489v-150h-317v-104h310v-150h-310v-113h317v-150z" />
    +<glyph unicode="&#xca;" d="M464 723h-92l-69 81l-66 -81h-91l90 144h135zM549 0h-489v667h489v-150h-317v-104h310v-150h-310v-113h317v-150z" />
    +<glyph unicode="&#xcb;" d="M492 782q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 23 55t55 23q33 0 56 -23t23 -55zM278 782q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 22.5 55t55.5 23t56 -23t23 -55zM549 0h-489v667h489v-150h-317v-104h310v-150h-310v-113h317v-150z " />
    +<glyph unicode="&#xcc;" horiz-adv-x="292" d="M232 0h-172v667h172v-667zM213 723h-104l-159 144h136z" />
    +<glyph unicode="&#xcd;" horiz-adv-x="292" d="M232 0h-172v667h172v-667zM344 867l-159 -144h-104l127 144h136z" />
    +<glyph unicode="&#xce;" horiz-adv-x="292" d="M305 723h-92l-69 81l-66 -81h-91l90 144h135zM232 0h-172v667h172v-667z" />
    +<glyph unicode="&#xcf;" horiz-adv-x="292" d="M332 782q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 23 55t55 23q33 0 56 -23t23 -55zM118 782q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 22.5 55t55.5 23t56 -23t23 -55zM232 0h-172v667h172v-667z" />
    +<glyph unicode="&#xd0;" horiz-adv-x="750" d="M364 0h-281v266h-75v131h75v270h280q160 0 260.5 -90t100.5 -243t-100.5 -243.5t-259.5 -90.5zM363 150q85 0 135 53.5t50 130.5q0 81 -48 132t-136 51h-109v-120h140v-131h-140v-116h108z" />
    +<glyph unicode="&#xd1;" horiz-adv-x="740" d="M422 721q-22 0 -40.5 8.5t-28.5 19t-22 19t-22 8.5q-30 0 -30 -49h-78q0 134 113 134q28 0 49 -13.5t36.5 -27.5t27.5 -14q30 0 30 49h78q0 -134 -113 -134zM680 0h-166l-282 386v-386h-172v667h177l270 -367v367h173v-667z" />
    +<glyph unicode="&#xd2;" horiz-adv-x="766" d="M449 723h-104l-159 144h136zM383 -12q-154 0 -255.5 97t-101.5 248t101.5 248t255.5 97t255 -97t101 -248t-101 -248t-255 -97zM383 140q81 0 131 55t50 138t-50 138t-131 55q-82 0 -132 -55t-50 -138t50 -138t132 -55z" />
    +<glyph unicode="&#xd3;" horiz-adv-x="766" d="M579 867l-159 -144h-104l127 144h136zM383 -12q-154 0 -255.5 97t-101.5 248t101.5 248t255.5 97t255 -97t101 -248t-101 -248t-255 -97zM383 140q81 0 131 55t50 138t-50 138t-131 55q-82 0 -132 -55t-50 -138t50 -138t132 -55z" />
    +<glyph unicode="&#xd4;" horiz-adv-x="766" d="M545 723h-92l-69 81l-66 -81h-91l90 144h135zM383 -12q-154 0 -255.5 97t-101.5 248t101.5 248t255.5 97t255 -97t101 -248t-101 -248t-255 -97zM383 140q81 0 131 55t50 138t-50 138t-131 55q-82 0 -132 -55t-50 -138t50 -138t132 -55z" />
    +<glyph unicode="&#xd5;" horiz-adv-x="766" d="M383 -12q-154 0 -255.5 97t-101.5 248t101.5 248t255.5 97t255 -97t101 -248t-101 -248t-255 -97zM383 140q81 0 131 55t50 138t-50 138t-131 55q-82 0 -132 -55t-50 -138t50 -138t132 -55zM437 721q-22 0 -40.5 8.5t-28.5 19t-22 19t-22 8.5q-30 0 -30 -49h-78 q0 134 113 134q28 0 49 -13.5t36.5 -27.5t27.5 -14q30 0 30 49h78q0 -134 -113 -134z" />
    +<glyph unicode="&#xd6;" horiz-adv-x="766" d="M571 782q0 -34 -23 -56.5t-56 -22.5q-32 0 -55 22.5t-23 56.5q0 32 23 55t55 23q33 0 56 -23t23 -55zM357 782q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 22.5 55t55.5 23t56 -23t23 -55zM383 -12q-154 0 -255.5 97t-101.5 248t101.5 248t255.5 97t255 -97 t101 -248t-101 -248t-255 -97zM383 140q81 0 131 55t50 138t-50 138t-131 55q-82 0 -132 -55t-50 -138t50 -138t132 -55z" />
    +<glyph unicode="&#xd7;" horiz-adv-x="507" d="M391 132l-137 137l-137 -137l-66 64l138 138l-138 138l66 64l137 -137l137 137l65 -64l-137 -138l137 -138z" />
    +<glyph unicode="&#xd8;" horiz-adv-x="766" d="M383 -12q-106 0 -190 48l-29 -36h-120l75 93q-93 95 -93 240q0 151 101.5 248t255.5 97q97 0 175 -40l24 29h120l-67 -83q104 -98 104 -251q0 -151 -101 -248t-255 -97zM383 140q81 0 131 55t50 138q0 68 -35 119l-235 -291q42 -21 89 -21zM201 333q0 -60 26 -106 l229 284q-33 15 -73 15q-82 0 -132 -55t-50 -138z" />
    +<glyph unicode="&#xd9;" horiz-adv-x="750" d="M376 -12q-156 0 -236 77t-80 205v397h175v-391q0 -61 36.5 -98.5t104.5 -37.5q67 0 103.5 37.5t36.5 98.5v391h174v-396q0 -129 -79.5 -206t-234.5 -77zM441 723h-104l-159 144h136z" />
    +<glyph unicode="&#xda;" horiz-adv-x="750" d="M572 867l-159 -144h-104l127 144h136zM376 -12q-156 0 -236 77t-80 205v397h175v-391q0 -61 36.5 -98.5t104.5 -37.5q67 0 103.5 37.5t36.5 98.5v391h174v-396q0 -129 -79.5 -206t-234.5 -77z" />
    +<glyph unicode="&#xdb;" horiz-adv-x="750" d="M540 723h-92l-69 81l-66 -81h-91l90 144h135zM376 -12q-156 0 -236 77t-80 205v397h175v-391q0 -61 36.5 -98.5t104.5 -37.5q67 0 103.5 37.5t36.5 98.5v391h174v-396q0 -129 -79.5 -206t-234.5 -77z" />
    +<glyph unicode="&#xdc;" horiz-adv-x="750" d="M564 782q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 23 55t55 23q33 0 56 -23t23 -55zM350 782q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 22.5 55t55.5 23t56 -23t23 -55zM376 -12q-156 0 -236 77t-80 205v397h175v-391q0 -61 36.5 -98.5 t104.5 -37.5q67 0 103.5 37.5t36.5 98.5v391h174v-396q0 -129 -79.5 -206t-234.5 -77z" />
    +<glyph unicode="&#xdd;" horiz-adv-x="655" d="M414 0h-172v269l-253 398h194l145 -246l143 246h195l-252 -398v-269zM524 867l-159 -144h-104l127 144h136z" />
    +<glyph unicode="&#xde;" horiz-adv-x="643" d="M232 0h-172v667h172v-102h162q108 0 170 -64t62 -159t-61.5 -157.5t-170.5 -62.5h-162v-122zM368 273q35 0 59 18.5t24 51.5t-24 52.5t-59 19.5h-136v-142h136z" />
    +<glyph unicode="&#xdf;" horiz-adv-x="665" d="M652 149q0 -72 -58 -116.5t-151 -44.5q-118 0 -202 74l61 106q21 -26 61.5 -45t79.5 -19q29 0 45 11t16 26q0 16 -25.5 25.5t-62 17.5t-72.5 21.5t-61.5 47t-25.5 85.5q0 34 17.5 62.5t38.5 43.5t38.5 30t17.5 26q0 20 -19.5 30.5t-47.5 10.5q-41 0 -66 -20.5t-25 -57.5 v-463h-154v463q0 90 67 152t181 62q90 0 155.5 -42.5t65.5 -111.5q0 -31 -12.5 -56.5t-30.5 -41.5t-36 -29t-30.5 -26t-12.5 -26q0 -14 25.5 -21t62 -14t73 -20.5t62 -49t25.5 -90.5z" />
    +<glyph unicode="&#xe0;" horiz-adv-x="551" d="M495 0h-154v48q-23 -27 -63.5 -43.5t-86.5 -16.5q-63 0 -114.5 41.5t-51.5 117.5q0 80 50 117.5t116 37.5q105 0 150 -56v58q0 32 -26 51t-72 19q-77 0 -137 -51l-55 97q88 75 219 75q46 0 84.5 -9.5t71 -30.5t51 -60t18.5 -93v-302zM255 89q62 0 86 35v43q-25 34 -86 34 q-33 0 -55 -14.5t-22 -41.5t22 -41.5t55 -14.5zM337 556h-104l-159 144h136z" />
    +<glyph unicode="&#xe1;" horiz-adv-x="551" d="M495 0h-154v48q-23 -27 -63.5 -43.5t-86.5 -16.5q-63 0 -114.5 41.5t-51.5 117.5q0 80 50 117.5t116 37.5q105 0 150 -56v58q0 32 -26 51t-72 19q-77 0 -137 -51l-55 97q88 75 219 75q46 0 84.5 -9.5t71 -30.5t51 -60t18.5 -93v-302zM255 89q62 0 86 35v43q-25 34 -86 34 q-33 0 -55 -14.5t-22 -41.5t22 -41.5t55 -14.5zM467 700l-159 -144h-104l127 144h136z" />
    +<glyph unicode="&#xe2;" horiz-adv-x="551" d="M495 0h-154v48q-23 -27 -63.5 -43.5t-86.5 -16.5q-63 0 -114.5 41.5t-51.5 117.5q0 80 50 117.5t116 37.5q105 0 150 -56v58q0 32 -26 51t-72 19q-77 0 -137 -51l-55 97q88 75 219 75q46 0 84.5 -9.5t71 -30.5t51 -60t18.5 -93v-302zM255 89q62 0 86 35v43q-25 34 -86 34 q-33 0 -55 -14.5t-22 -41.5t22 -41.5t55 -14.5zM434 556h-92l-69 81l-66 -81h-91l90 144h135z" />
    +<glyph unicode="&#xe3;" horiz-adv-x="551" d="M495 0h-154v48q-23 -27 -63.5 -43.5t-86.5 -16.5q-63 0 -114.5 41.5t-51.5 117.5q0 80 50 117.5t116 37.5q105 0 150 -56v58q0 32 -26 51t-72 19q-77 0 -137 -51l-55 97q88 75 219 75q46 0 84.5 -9.5t71 -30.5t51 -60t18.5 -93v-302zM255 89q62 0 86 35v43q-25 34 -86 34 q-33 0 -55 -14.5t-22 -41.5t22 -41.5t55 -14.5zM327 554q-28 0 -49.5 14t-36.5 27.5t-27 13.5q-30 0 -30 -49h-78q0 134 113 134q28 0 49 -14t36.5 -27.5t27.5 -13.5q30 0 30 49h78q0 -134 -113 -134z" />
    +<glyph unicode="&#xe4;" horiz-adv-x="551" d="M495 0h-154v48q-23 -27 -63.5 -43.5t-86.5 -16.5q-63 0 -114.5 41.5t-51.5 117.5q0 80 50 117.5t116 37.5q105 0 150 -56v58q0 32 -26 51t-72 19q-77 0 -137 -51l-55 97q88 75 219 75q46 0 84.5 -9.5t71 -30.5t51 -60t18.5 -93v-302zM255 89q62 0 86 35v43q-25 34 -86 34 q-33 0 -55 -14.5t-22 -41.5t22 -41.5t55 -14.5zM457 615q0 -34 -23 -56.5t-56 -22.5q-32 0 -55 23t-23 56q0 32 23 55t55 23q33 0 56 -23t23 -55zM243 615q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 22.5 55t55.5 23t56 -23t23 -55z" />
    +<glyph unicode="&#xe5;" horiz-adv-x="551" d="M495 0h-154v48q-23 -27 -63.5 -43.5t-86.5 -16.5q-63 0 -114.5 41.5t-51.5 117.5q0 80 50 117.5t116 37.5q105 0 150 -56v58q0 32 -26 51t-72 19q-77 0 -137 -51l-55 97q88 75 219 75q46 0 84.5 -9.5t71 -30.5t51 -60t18.5 -93v-302zM255 89q62 0 86 35v43q-25 34 -86 34 q-33 0 -55 -14.5t-22 -41.5t22 -41.5t55 -14.5zM274 525q-45 0 -77 32t-32 76q0 45 32 77t77 32q44 0 75 -32t31 -77q0 -44 -31 -76t-75 -32zM274 593q16 0 27.5 11.5t11.5 28.5t-11.5 29t-27.5 12q-17 0 -29 -12t-12 -29t12 -28.5t29 -11.5z" />
    +<glyph unicode="&#xe6;" horiz-adv-x="860" d="M840 193h-330q9 -36 39 -59.5t78 -23.5q67 0 108 41l68 -99q-34 -31 -87.5 -47.5t-103.5 -16.5q-117 0 -180 77q-33 -34 -85.5 -55.5t-114.5 -21.5q-90 0 -148.5 39.5t-58.5 117.5q0 76 49 116.5t123 40.5q107 0 158 -54v56q0 31 -28 50.5t-76 19.5q-81 0 -145 -52 l-55 98q88 75 221 75q116 0 162 -71q66 71 173 71q101 0 167 -74t66 -195v-33zM508 293h185q-4 32 -26.5 57.5t-66.5 25.5q-41 0 -64 -25t-28 -58zM355 161v5q-29 35 -94 35q-35 0 -59 -13t-24 -37q0 -25 22 -37.5t53 -12.5q41 0 71.5 19.5t30.5 40.5z" />
    +<glyph unicode="&#xe7;" horiz-adv-x="500" d="M292 -196q-73 0 -114 33l28 58q41 -30 82 -30q19 0 33 7.5t14 20.5q0 22 -25 22q-16 0 -29 -13l-53 30l22 58q-100 11 -163 80t-63 172q0 112 75 182.5t189 70.5q72 0 122.5 -26t75.5 -63l-100 -93q-31 46 -91 46q-49 0 -81 -31.5t-32 -85.5t32 -86t81 -32q58 0 91 47 l100 -94q-52 -76 -166 -87l-15 -37q17 10 34 10q28 0 48 -20.5t20 -51.5q0 -40 -33 -63.5t-82 -23.5z" />
    +<glyph unicode="&#xe8;" horiz-adv-x="548" d="M288 -12q-114 0 -189 69.5t-75 184.5q0 107 72.5 180t184.5 73q109 0 178 -73.5t69 -195.5v-33h-344q7 -36 39 -61t82 -25q28 0 64.5 11.5t55.5 29.5l65 -96q-35 -31 -89.5 -47.5t-112.5 -16.5zM381 293q-4 32 -28 57.5t-72 25.5q-45 0 -69 -25t-30 -58h199zM347 556 h-104l-159 144h136z" />
    +<glyph unicode="&#xe9;" horiz-adv-x="548" d="M477 700l-159 -144h-104l127 144h136zM288 -12q-114 0 -189 69.5t-75 184.5q0 107 72.5 180t184.5 73q109 0 178 -73.5t69 -195.5v-33h-344q7 -36 39 -61t82 -25q28 0 64.5 11.5t55.5 29.5l65 -96q-35 -31 -89.5 -47.5t-112.5 -16.5zM381 293q-4 32 -28 57.5t-72 25.5 q-45 0 -69 -25t-30 -58h199z" />
    +<glyph unicode="&#xea;" horiz-adv-x="548" d="M441 556h-92l-69 81l-66 -81h-91l90 144h135zM288 -12q-114 0 -189 69.5t-75 184.5q0 107 72.5 180t184.5 73q109 0 178 -73.5t69 -195.5v-33h-344q7 -36 39 -61t82 -25q28 0 64.5 11.5t55.5 29.5l65 -96q-35 -31 -89.5 -47.5t-112.5 -16.5zM381 293q-4 32 -28 57.5 t-72 25.5q-45 0 -69 -25t-30 -58h199z" />
    +<glyph unicode="&#xeb;" horiz-adv-x="548" d="M468 615q0 -34 -23 -56.5t-56 -22.5t-55.5 23t-22.5 56q0 32 23 55t55 23q33 0 56 -23t23 -55zM254 615q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 22.5 55t55.5 23t56 -23t23 -55zM288 -12q-114 0 -189 69.5t-75 184.5q0 107 72.5 180t184.5 73 q109 0 178 -73.5t69 -195.5v-33h-344q7 -36 39 -61t82 -25q28 0 64.5 11.5t55.5 29.5l65 -96q-35 -31 -89.5 -47.5t-112.5 -16.5zM381 293q-4 32 -28 57.5t-72 25.5q-45 0 -69 -25t-30 -58h199z" />
    +<glyph unicode="&#xec;" horiz-adv-x="266" d="M210 0h-154v483h154v-483zM200 556h-104l-159 144h136z" />
    +<glyph unicode="&#xed;" horiz-adv-x="266" d="M330 700l-159 -144h-104l127 144h136zM210 0h-154v483h154v-483z" />
    +<glyph unicode="&#xee;" horiz-adv-x="266" d="M293 556h-92l-69 81l-66 -81h-91l90 144h135zM210 0h-154v483h154v-483z" />
    +<glyph unicode="&#xef;" horiz-adv-x="266" d="M319 615q0 -34 -23 -56.5t-56 -22.5q-32 0 -55 23t-23 56q0 32 23 55t55 23q33 0 56 -23t23 -55zM105 615q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 22.5 55t55.5 23t56 -23t23 -55zM210 0h-154v483h154v-483z" />
    +<glyph unicode="&#xf0;" horiz-adv-x="576" d="M93 454l-28 69l103 45l-55 33l83 122q78 -48 129 -86l100 44l29 -66l-67 -30q164 -150 164 -330q0 -121 -70.5 -194t-193.5 -73q-118 0 -190.5 64.5t-72.5 167.5q0 101 61 165.5t151 64.5q104 0 160 -94q-28 73 -155 164zM287 124q50 0 78 27t28 69q0 41 -28.5 68 t-77.5 27t-76.5 -27t-27.5 -68q0 -42 27.5 -69t76.5 -27z" />
    +<glyph unicode="&#xf1;" horiz-adv-x="593" d="M537 0h-154v279q0 80 -79 80q-56 0 -94 -47v-312h-154v483h154v-59q61 71 167 71q80 0 120 -41.5t40 -111.5v-342zM352 554q-28 0 -49.5 14t-36.5 27.5t-27 13.5q-30 0 -30 -49h-78q0 134 113 134q28 0 49 -14t36.5 -27.5t27.5 -13.5q30 0 30 49h78q0 -134 -113 -134z " />
    +<glyph unicode="&#xf2;" horiz-adv-x="576" d="M287 -12q-119 0 -191 74t-72 180t72 179.5t191 73.5q120 0 192 -73.5t72 -179.5t-72 -180t-192 -74zM287 124q49 0 77.5 33.5t28.5 84.5q0 50 -28.5 83.5t-77.5 33.5t-76.5 -33.5t-27.5 -83.5q0 -51 27.5 -84.5t76.5 -33.5zM354 556h-104l-159 144h136z" />
    +<glyph unicode="&#xf3;" horiz-adv-x="576" d="M484 700l-159 -144h-104l127 144h136zM287 -12q-119 0 -191 74t-72 180t72 179.5t191 73.5q120 0 192 -73.5t72 -179.5t-72 -180t-192 -74zM287 124q49 0 77.5 33.5t28.5 84.5q0 50 -28.5 83.5t-77.5 33.5t-76.5 -33.5t-27.5 -83.5q0 -51 27.5 -84.5t76.5 -33.5z" />
    +<glyph unicode="&#xf4;" horiz-adv-x="576" d="M448 556h-92l-69 81l-66 -81h-91l90 144h135zM287 -12q-119 0 -191 74t-72 180t72 179.5t191 73.5q120 0 192 -73.5t72 -179.5t-72 -180t-192 -74zM287 124q49 0 77.5 33.5t28.5 84.5q0 50 -28.5 83.5t-77.5 33.5t-76.5 -33.5t-27.5 -83.5q0 -51 27.5 -84.5t76.5 -33.5z " />
    +<glyph unicode="&#xf5;" horiz-adv-x="576" d="M287 -12q-119 0 -191 74t-72 180t72 179.5t191 73.5q120 0 192 -73.5t72 -179.5t-72 -180t-192 -74zM287 124q49 0 77.5 33.5t28.5 84.5q0 50 -28.5 83.5t-77.5 33.5t-76.5 -33.5t-27.5 -83.5q0 -51 27.5 -84.5t76.5 -33.5zM342 554q-28 0 -49.5 14t-36.5 27.5t-27 13.5 q-30 0 -30 -49h-78q0 134 113 134q28 0 49 -14t36.5 -27.5t27.5 -13.5q30 0 30 49h78q0 -134 -113 -134z" />
    +<glyph unicode="&#xf6;" horiz-adv-x="576" d="M473 615q0 -34 -23 -56.5t-56 -22.5q-32 0 -55 23t-23 56q0 32 23 55t55 23q33 0 56 -23t23 -55zM259 615q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 22.5 55t55.5 23t56 -23t23 -55zM287 -12q-119 0 -191 74t-72 180t72 179.5t191 73.5q120 0 192 -73.5 t72 -179.5t-72 -180t-192 -74zM287 124q49 0 77.5 33.5t28.5 84.5q0 50 -28.5 83.5t-77.5 33.5t-76.5 -33.5t-27.5 -83.5q0 -51 27.5 -84.5t76.5 -33.5z" />
    +<glyph unicode="&#xf7;" horiz-adv-x="511" d="M324 510q0 -28 -20 -48.5t-49 -20.5q-28 0 -48 20t-20 49q0 28 19.5 48t48.5 20t49 -20t20 -48zM482 291h-453v92h453v-92zM324 163q0 -28 -20.5 -48t-48.5 -20t-48 20t-20 48q0 29 20 49t48 20q29 0 49 -20t20 -49z" />
    +<glyph unicode="&#xf8;" horiz-adv-x="576" d="M119 0h-90l60 69q-65 71 -65 173q0 106 72 179.5t191 73.5q81 0 144 -37l22 25h92l-60 -68q66 -71 66 -173q0 -106 -72 -180t-192 -74q-83 0 -145 38zM287 124q49 0 77.5 33.5t28.5 84.5q0 29 -11 56l-144 -163q19 -11 49 -11zM183 242q0 -32 10 -55l142 161 q-22 11 -48 11q-49 0 -76.5 -33.5t-27.5 -83.5z" />
    +<glyph unicode="&#xf9;" horiz-adv-x="592" d="M536 0h-154v58q-62 -70 -167 -70q-80 0 -119.5 40.5t-39.5 110.5v344h154v-281q0 -78 80 -78q55 0 92 47v312h154v-483zM362 556h-104l-159 144h136z" />
    +<glyph unicode="&#xfa;" horiz-adv-x="592" d="M492 700l-159 -144h-104l127 144h136zM536 0h-154v58q-62 -70 -167 -70q-80 0 -119.5 40.5t-39.5 110.5v344h154v-281q0 -78 80 -78q55 0 92 47v312h154v-483z" />
    +<glyph unicode="&#xfb;" horiz-adv-x="592" d="M457 556h-92l-69 81l-66 -81h-91l90 144h135zM536 0h-154v58q-62 -70 -167 -70q-80 0 -119.5 40.5t-39.5 110.5v344h154v-281q0 -78 80 -78q55 0 92 47v312h154v-483z" />
    +<glyph unicode="&#xfc;" horiz-adv-x="592" d="M483 615q0 -34 -23 -56.5t-56 -22.5q-32 0 -55 23t-23 56q0 32 23 55t55 23q33 0 56 -23t23 -55zM269 615q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 22.5 55t55.5 23t56 -23t23 -55zM536 0h-154v58q-62 -70 -167 -70q-80 0 -119.5 40.5t-39.5 110.5v344 h154v-281q0 -78 80 -78q55 0 92 47v312h154v-483z" />
    +<glyph unicode="&#xfd;" horiz-adv-x="524" d="M46 -188l22 137q16 -9 38 -9q54 0 65 27l11 26l-192 490h162l109 -306l110 306h163l-218 -552q-27 -71 -77 -98t-127 -29q-40 0 -66 8zM458 700l-159 -144h-104l127 144h136z" />
    +<glyph unicode="&#xfe;" d="M353 -12q-85 0 -143 69v-241h-154v851h154v-240q56 68 143 68q94 0 153 -67t59 -186q0 -120 -59 -187t-153 -67zM302 124q46 0 76 32t30 86q0 53 -30 85t-76 32q-25 0 -51.5 -12.5t-40.5 -31.5v-147q14 -19 40.5 -31.5t51.5 -12.5z" />
    +<glyph unicode="&#xff;" horiz-adv-x="524" d="M46 -188l22 137q16 -9 38 -9q54 0 65 27l11 26l-192 490h162l109 -306l110 306h163l-218 -552q-27 -71 -77 -98t-127 -29q-40 0 -66 8zM447 615q0 -34 -23 -56.5t-56 -22.5q-32 0 -55 23t-23 56q0 32 23 55t55 23q33 0 56 -23t23 -55zM233 615q0 -34 -23 -56.5t-56 -22.5 t-55.5 22.5t-22.5 56.5q0 32 22.5 55t55.5 23t56 -23t23 -55z" />
    +<glyph unicode="&#x152;" horiz-adv-x="1073" d="M1037 0h-489v57q-31 -34 -82 -51.5t-102 -17.5q-147 0 -242.5 96t-95.5 249q0 152 95.5 248t242.5 96q51 0 101.5 -17.5t82.5 -49.5v57h489v-150h-317v-104h310v-150h-310v-113h317v-150zM548 234v199q-22 44 -63.5 68t-95.5 24q-86 0 -137 -54t-51 -138t51 -138.5 t137 -54.5q53 0 95 25t64 69z" />
    +<glyph unicode="&#x153;" horiz-adv-x="916" d="M896 193h-344q10 -36 41.5 -61t83.5 -25q69 0 114 40l68 -95q-73 -64 -203 -64q-65 0 -107 24.5t-79 66.5q-76 -91 -183 -91q-119 0 -191 74t-72 180t72 179.5t191 73.5q101 0 184 -92q73 92 179 92q109 0 177.5 -73.5t68.5 -195.5v-33zM551 293h198q-4 32 -28 58t-72 26 q-45 0 -69 -25.5t-29 -58.5zM393 242q0 54 -29 85.5t-77 31.5q-46 0 -75 -32t-29 -85q0 -54 29 -86.5t75 -32.5q48 0 77 32.5t29 86.5z" />
    +<glyph unicode="&#x178;" horiz-adv-x="655" d="M514 782q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 23 55t55 23q33 0 56 -23t23 -55zM300 782q0 -34 -23 -56.5t-56 -22.5t-55.5 22.5t-22.5 56.5q0 32 22.5 55t55.5 23t56 -23t23 -55zM414 0h-172v269l-253 398h194l145 -246l143 246h195l-252 -398v-269z " />
    +<glyph unicode="&#x2c6;" horiz-adv-x="318" d="M318 556h-92l-69 81l-66 -81h-91l90 144h135z" />
    +<glyph unicode="&#x2dc;" horiz-adv-x="334" d="M221 554q-28 0 -49.5 14t-36.5 27.5t-27 13.5q-30 0 -30 -49h-78q0 134 113 134q28 0 49 -14t36.5 -27.5t27.5 -13.5q30 0 30 49h78q0 -134 -113 -134z" />
    +<glyph unicode="&#x2000;" horiz-adv-x="452" />
    +<glyph unicode="&#x2001;" horiz-adv-x="904" />
    +<glyph unicode="&#x2002;" horiz-adv-x="452" />
    +<glyph unicode="&#x2003;" horiz-adv-x="904" />
    +<glyph unicode="&#x2004;" horiz-adv-x="301" />
    +<glyph unicode="&#x2005;" horiz-adv-x="226" />
    +<glyph unicode="&#x2006;" horiz-adv-x="150" />
    +<glyph unicode="&#x2007;" horiz-adv-x="150" />
    +<glyph unicode="&#x2008;" horiz-adv-x="113" />
    +<glyph unicode="&#x2009;" horiz-adv-x="180" />
    +<glyph unicode="&#x200a;" horiz-adv-x="50" />
    +<glyph unicode="&#x2010;" horiz-adv-x="300" d="M270 178h-240v129h240v-129z" />
    +<glyph unicode="&#x2011;" horiz-adv-x="300" d="M270 178h-240v129h240v-129z" />
    +<glyph unicode="&#x2013;" horiz-adv-x="593" d="M563 178h-533v129h533v-129z" />
    +<glyph unicode="&#x2014;" horiz-adv-x="833" d="M803 178h-773v129h773v-129z" />
    +<glyph unicode="&#x2018;" horiz-adv-x="268" d="M34 475q0 122 114 203l64 -52q-25 -12 -50.5 -40.5t-33.5 -54.5q12 3 23 3q33 0 55 -23t22 -59q0 -38 -27 -65.5t-64 -27.5q-42 0 -72.5 31.5t-30.5 84.5z" />
    +<glyph unicode="&#x2019;" horiz-adv-x="268" d="M234 561q0 -122 -114 -203l-64 52q25 13 51 41t34 55q-10 -4 -23 -4q-33 0 -55.5 23t-22.5 60q0 38 27 65t65 27q43 0 72.5 -31.5t29.5 -84.5z" />
    +<glyph unicode="&#x201a;" horiz-adv-x="268" d="M234 61q0 -123 -114 -203l-64 52q25 13 51 41t34 54q-15 -3 -23 -3q-33 0 -55.5 23t-22.5 59q0 38 27 65t65 27q42 0 72 -31t30 -84z" />
    +<glyph unicode="&#x201c;" horiz-adv-x="493" d="M33 475q0 122 114 203l64 -52q-25 -13 -51 -41t-33 -54q12 3 23 3q32 0 54.5 -23t22.5 -59q0 -38 -27 -65.5t-65 -27.5q-42 0 -72 31.5t-30 84.5zM258 475q0 122 114 203l64 -52q-25 -12 -50.5 -40.5t-33.5 -54.5q12 3 23 3q33 0 55 -23t22 -59q0 -38 -27 -65.5 t-64 -27.5q-42 0 -72.5 31.5t-30.5 84.5z" />
    +<glyph unicode="&#x201d;" horiz-adv-x="493" d="M460 561q0 -122 -114 -203l-64 52q25 13 50.5 41t33.5 55q-8 -4 -23 -4q-33 0 -55 23t-22 60q0 38 27 65t64 27q43 0 73 -31.5t30 -84.5zM234 561q0 -122 -114 -203l-64 52q25 13 51 41t34 55q-10 -4 -23 -4q-33 0 -55.5 23t-22.5 60q0 38 27 65t65 27q43 0 72.5 -31.5 t29.5 -84.5z" />
    +<glyph unicode="&#x201e;" horiz-adv-x="494" d="M234 61q0 -123 -114 -203l-64 52q25 13 51 41t34 54q-15 -3 -23 -3q-33 0 -55.5 23t-22.5 59q0 38 27 65t65 27q42 0 72 -31t30 -84zM460 61q0 -123 -114 -203l-64 52q25 12 50.5 40.5t33.5 54.5q-12 -3 -23 -3q-33 0 -55 23t-22 59q0 38 27 65t64 27q43 0 73 -31t30 -84 z" />
    +<glyph unicode="&#x2022;" horiz-adv-x="358" d="M304 242q0 -51 -36 -87t-88 -36t-88 36t-36 87q0 52 36 88t88 36t88 -36t36 -88z" />
    +<glyph unicode="&#x2026;" horiz-adv-x="807" d="M227 82q0 -38 -27.5 -65.5t-65.5 -27.5t-65.5 27.5t-27.5 65.5t27.5 66t65.5 28t65.5 -28t27.5 -66zM496 82q0 -38 -27.5 -65.5t-65.5 -27.5t-65.5 27.5t-27.5 65.5t27.5 66t65.5 28t65.5 -28t27.5 -66zM766 82q0 -38 -28 -65.5t-66 -27.5t-65.5 27.5t-27.5 65.5t27.5 66 t65.5 28t66 -28t28 -66z" />
    +<glyph unicode="&#x202f;" horiz-adv-x="180" />
    +<glyph unicode="&#x2039;" horiz-adv-x="359" d="M329 63h-139l-160 180l160 177h139l-160 -177z" />
    +<glyph unicode="&#x203a;" horiz-adv-x="359" d="M329 243l-160 -180h-139l160 180l-160 177h139z" />
    +<glyph unicode="&#x205f;" horiz-adv-x="226" />
    +<glyph unicode="&#x20ac;" horiz-adv-x="715" d="M411 -12q-124 0 -217 63.5t-127 170.5h-50v85h34q-1 13 -1 26q0 14 1 28h-34v85h50q35 107 127.5 169.5t216.5 62.5q201 0 291 -179l-148 -70q-17 41 -56.5 69t-86.5 28q-100 0 -154 -80h214v-85h-244q-2 -18 -2 -28q0 -18 1 -26h245v-85h-215q54 -82 155 -82 q47 0 86.5 28t56.5 69l148 -70q-38 -76 -109.5 -127.5t-181.5 -51.5z" />
    +<glyph unicode="&#x2122;" horiz-adv-x="454" d="M419 447h-28v182l-75 -182h-8l-75 182v-182h-28v220h43l64 -160l64 160h43v-220zM169 641h-62v-194h-28v194h-62v26h152v-26z" />
    +</font>
    +</defs></svg> 
    \ No newline at end of file
    diff --git a/stylesheets/ProximaNova-Xbold-webfont.ttf b/stylesheets/ProximaNova-Xbold-webfont.ttf
    new file mode 100644
    index 0000000..11e810f
    Binary files /dev/null and b/stylesheets/ProximaNova-Xbold-webfont.ttf differ
    diff --git a/stylesheets/ProximaNova-Xbold-webfont.woff b/stylesheets/ProximaNova-Xbold-webfont.woff
    new file mode 100644
    index 0000000..26ccb73
    Binary files /dev/null and b/stylesheets/ProximaNova-Xbold-webfont.woff differ
    diff --git a/stylesheets/home-bg.jpg b/stylesheets/home-bg.jpg
    new file mode 100755
    index 0000000..bf27238
    Binary files /dev/null and b/stylesheets/home-bg.jpg differ
    diff --git a/stylesheets/prettify.css b/stylesheets/prettify.css
    new file mode 100644
    index 0000000..f15603c
    --- /dev/null
    +++ b/stylesheets/prettify.css
    @@ -0,0 +1,52 @@
    +/* Pretty printing styles. Used with prettify.js. */
    +
    +/* SPAN elements with the classes below are added by prettyprint. */
    +.pln { color: #000 }  /* plain text */
    +
    +@media screen {
    +  .str { color: #080 }  /* string content */
    +  .kwd { color: #008 }  /* a keyword */
    +  .com { color: #800 }  /* a comment */
    +  .typ { color: #606 }  /* a type name */
    +  .lit { color: #066 }  /* a literal value */
    +  /* punctuation, lisp open bracket, lisp close bracket */
    +  .pun, .opn, .clo { color: #660 }
    +  .tag { color: #008 }  /* a markup tag name */
    +  .atn { color: #606 }  /* a markup attribute name */
    +  .atv { color: #080 }  /* a markup attribute value */
    +  .dec, .var { color: #606 }  /* a declaration; a variable name */
    +  .fun { color: red }  /* a function name */
    +}
    +
    +/* Use higher contrast and text-weight for printable form. */
    +@media print, projection {
    +  .str { color: #060 }
    +  .kwd { color: #006; font-weight: bold }
    +  .com { color: #600; font-style: italic }
    +  .typ { color: #404; font-weight: bold }
    +  .lit { color: #044 }
    +  .pun, .opn, .clo { color: #440 }
    +  .tag { color: #006; font-weight: bold }
    +  .atn { color: #404 }
    +  .atv { color: #060 }
    +}
    +
    +/* Put a border around prettyprinted code snippets. */
    +pre.prettyprint { padding: 20px;}
    +
    +/* Specify class=linenums on a pre to get line numbering */
    +ol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */
    +li.L0,
    +li.L1,
    +li.L2,
    +li.L3,
    +li.L5,
    +li.L6,
    +li.L7,
    +li.L8 { list-style-type: none }
    +/* Alternate shading for lines */
    +li.L1,
    +li.L3,
    +li.L5,
    +li.L7,
    +li.L9 { background: #eee }
    diff --git a/stylesheets/pricing-bg.jpg b/stylesheets/pricing-bg.jpg
    new file mode 100644
    index 0000000..9a4c828
    Binary files /dev/null and b/stylesheets/pricing-bg.jpg differ
    diff --git a/stylesheets/styles.css b/stylesheets/styles.css
    new file mode 100644
    index 0000000..c97f4d2
    --- /dev/null
    +++ b/stylesheets/styles.css
    @@ -0,0 +1,303 @@
    +html,body{margin:0;padding:0;}
    +h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,cite,code,del,dfn,em,img,q,s,samp,small,strike,strong,sub,sup,tt,var,dd,dl,dt,li,ol,ul,fieldset,form,label,legend,button,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-weight:normal;font-style:normal;font-size:100%;line-height:1;font-family:inherit;}
    +table{border-collapse:collapse;border-spacing:0;}
    +ol,ul{list-style:none;}
    +q:before,q:after,blockquote:before,blockquote:after{content:"";}
    +
    +/* Fonts */
    +
    +@font-face {
    +  font-family: 'ProximaNovaLight';
    +  src: url('ProximaNova-Light-webfont.eot');
    +  src: local('☺'), url('ProximaNova-Light-webfont.woff') format('woff'), url('ProximaNova-Light-webfont.ttf') format('truetype'), url('ProximaNova-Light-webfont.svg#webfont1IYZQmli') format('svg');
    +  font-weight: normal;
    +  font-style: normal;
    +}
    +
    +@font-face {
    +  font-family: 'ProximaNovaRegular';
    +  src: url('ProximaNova-Reg-webfont.eot');
    +  src: local('☺'), url('ProximaNova-Reg-webfont.woff') format('woff'), url('ProximaNova-Reg-webfont.ttf') format('truetype'), url('ProximaNova-Reg-webfont.svg#webfontahTfxwb5') format('svg');
    +  font-weight: normal;
    +  font-style: normal;
    +}
    +
    +@font-face {
    +  font-family: 'ProximaNovaSemibold';
    +  src: url('ProximaNova-Sbold-webfont.eot');
    +  src: local('☺'), url('ProximaNova-Sbold-webfont.woff') format('woff'), url('ProximaNova-Sbold-webfont.ttf') format('truetype'), url('ProximaNova-Sbold-webfont.svg#webfontaA1mSBzj') format('svg');
    +  font-weight: normal;
    +  font-style: normal;
    +}
    +
    +@font-face {
    +  font-family: 'ProximaNovaBold';
    +  src: url('ProximaNova-Bold-webfont.eot');
    +  src: local('☺'), url('ProximaNova-Bold-webfont.woff') format('woff'), url('ProximaNova-Bold-webfont.ttf') format('truetype'), url('ProximaNova-Bold-webfont.svg#webfontnr0MA2zn') format('svg');
    +  font-weight: normal;
    +  font-style: normal;
    +}
    +
    +@font-face {
    +  font-family: 'ProximaNovaExtrabold';
    +  src: url('ProximaNova-Xbold-webfont.eot');
    +  src: local('☺'), url('ProximaNova-Xbold-webfont.woff') format('woff'), url('ProximaNova-Xbold-webfont.ttf') format('truetype'), url('ProximaNova-Xbold-webfont.svg#webfont2rpW2ohz') format('svg');
    +  font-weight: normal;
    +  font-style: normal;
    +}
    +
    +body {
    +    background: url("pricing-bg.jpg") repeat-x scroll left top white;
    +    font-family: 'ProximaNovaRegular','ProximaNova',Arial,Helvetica,sans-serif;
    +    font-size: 15px;
    +    padding-top: 0 !important;
    +    font-weight: normal;
    +    line-height: 18px;
    +    color: #404040;
    +}
    +body.home {
    +    background: url("home-bg.jpg") repeat-x scroll left top #FFFFFF;
    +}
    +h1, h2, h3, h4, h5, h6 {
    +    font-family: 'ProximaNovaSemiBold','ProximaNova',Arial,Helvetica,sans-serif;
    +    font-weight: normal;
    +}
    +h1 {
    +    font-size: 54px;
    +}
    +h2 {
    +    font-size: 42px;
    +    margin: 12px 0 21px;
    +}
    +h3 {
    +    font-size: 30px;
    +    margin-bottom: 15px;
    +}
    +h4 {
    +    font-size: 19px;
    +    line-height: 24px;
    +    margin-bottom: 8px;
    +}
    +h5 {
    +    font-size: 17px;
    +    line-height: 21px;
    +    margin-bottom: 8px;
    +}
    +h6 {
    +    font-size: 14px;
    +    line-height: 20px;
    +}
    +a, .btn, button {
    +    outline: 0 none !important;
    +}
    +a {
    +    color: #008FCB;
    +    text-decoration: none;
    +}
    +a:hover {
    +    color: #006894;
    +    text-decoration: none;
    +}
    +strong {
    +    font-family: 'ProximaNovaSemibold','ProximaNova',Arial,Helvetica,sans-serif;
    +    font-weight: normal;
    +}
    +p {
    +    font-size: 18px;
    +    line-height: 27px;
    +    margin-bottom: 15px;
    +}
    +
    +.container{width:940px;margin-left:auto;margin-right:auto;zoom:1;}
    +
    +.container::before, .container::after {
    +display: table;
    +content: "";
    +zoom: 1;
    +}
    +
    +.container::after {
    +clear: both;
    +}
    +
    +.container::before, .container::after {
    +display: table;
    +content: "";
    +zoom: 1;
    +}
    +
    +.row{zoom:1;margin-left:-20px;}.row:before,.row:after{display:table;content:"";zoom:1;}
    +.row:after{clear:both;}
    +.row>[class*="span"]{display:inline;float:left;margin-left:20px;}
    +.span1{width:40px;}
    +.span2{width:100px;}
    +.span3{width:160px;}
    +.span4{width:220px;}
    +.span5{width:280px;}
    +.span6{width:340px;}
    +.span7{width:400px;}
    +.span8{width:460px;}
    +.span9{width:520px;}
    +.span10{width:580px;}
    +.span11{width:640px;}
    +.span12{width:700px;}
    +.span13{width:760px;}
    +.span14{width:820px;}
    +.span15{width:880px;}
    +.span16{width:940px;}
    +.span17{width:1000px;}
    +.span18{width:1060px;}
    +.span19{width:1120px;}
    +.span20{width:1180px;}
    +.span21{width:1240px;}
    +.span22{width:1300px;}
    +.span23{width:1360px;}
    +.span24{width:1420px;}
    +.span-two-thirds{width:620px;}
    +.span-one-third{width:300px;}
    +
    +#tab-navi {
    +float: right;
    +position:fixed;
    +height: 100%;
    +}
    +
    +@media screen and (max-height: 850px) {
    +  #tab-navi ul:nth-child(2){
    +    height: 50%;
    +  }
    +}
    +
    +@media screen and (max-height: 800px) {
    +  #tab-navi ul:nth-child(2){
    +    height: 45%;
    +  }
    +}
    +
    +@media screen and (max-height: 750px) {
    +  #tab-navi ul:nth-child(2){
    +    height: 40%;
    +  }
    +}
    +
    +@media screen and (max-height: 700px) {
    +  #tab-navi ul:nth-child(2){
    +    height: 35%;
    +  }
    +}
    +
    +@media screen and (max-height: 650px) {
    +  #tab-navi ul:nth-child(2){
    +    height: 30%;
    +  }
    +}
    +
    +@media screen and (max-height: 600px) {
    +  #tab-navi ul:nth-child(2){
    +    height: 25%;
    +  }
    +}
    +
    +#tab-navi ul {
    +background: none repeat scroll 0 0 #F6F6F6;
    +border: 1px solid #DDD;
    +font-family: 'ProximaNovaSemibold',ProximaNova,Arial,Helvetica,sans-serif;
    +margin-left: 0;
    +padding: 0;
    +overflow: scroll;
    +}
    +
    +ul, ol {
    +margin: 0 0 18px 25px;
    +list-style: none outside none;
    +}
    +
    +.ui-state-default {
    +border: none;
    +color: inherit;
    +font-weight: inherit;
    +background: none !important;
    +}
    +
    +li {
    +line-height: 18px;
    +}
    +
    +#tab-navi ul li a {
    +display: block;
    +padding: 10px 20px;
    +}
    +
    +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited {
    +color: #1C94C4;
    +text-decoration: none;
    +}
    +
    +.hero-unit h1 {
    +color: white;
    +float: left;
    +font-family: 'ProximaNovaLight','ProximaNova',Arial,Helvetica,sans-serif;
    +font-size: 48px;
    +text-shadow: 0 1px 1px #004661;
    +}
    +
    +.hero-unit {
    +background: none repeat scroll 0 0 transparent;
    +padding: 40px 0 110px;
    +}
    +
    +.topbar {
    +    height: 70px;
    +    position: relative;
    +    z-index: 10000;
    +}
    +.topbar .brand {
    +    background: url("telapi-logo.png") no-repeat scroll left top transparent;
    +    height: 39px;
    +    margin: 16px 0 0;
    +    padding: 15px 20px 0 0;
    +    text-indent: -999em;
    +    width: 138px;
    +}
    +
    +.topbar h3 a, .topbar .brand {
    +float: left;
    +display: block;
    +padding: 8px 20px 12px;
    +margin-left: -15px;
    +color: white;
    +font-size: 20px;
    +font-weight: 200;
    +line-height: 1;
    +}
    +
    +.ui-state-default{border:none;color:inherit;font-weight:inherit;background: none !important;}
    +.sortable{border:inherit;color:inherit;font-weight:inherit;}
    +.sortable a{border:inherit;color:inherit;font-weight:inherit;}
    +.ui-state-highlight{height:38px;margin-bottom:20px;}
    +
    +#tab-navi ul li.current a, #tab-navi ul li a:hover {
    +    background-color: #EEEEEE;
    +    box-shadow: 0 0 3px #DDDDDD inset;
    +}
    +
    +h1 {
    +  margin: 12px 0 21px;
    +}
    +
    +hr {
    +  margin-bottom: 30px;
    +  margin-top: 50px;
    +}
    +
    +pre {
    +border: 1px solid #DDD;
    +font-family: Monaco, Andale Mono, Courier New, monospace;
    +font-size: 13px;
    +line-height: 15px;
    +margin-bottom: 15px;
    +background: whiteSmoke;
    +max-height: 200px;
    +overflow: auto;
    +padding: 20px;
    +}
    \ No newline at end of file
    diff --git a/stylesheets/telapi-logo.png b/stylesheets/telapi-logo.png
    new file mode 100644
    index 0000000..3b4e601
    Binary files /dev/null and b/stylesheets/telapi-logo.png differ